Bookmarks
ブックマーク バー
Watch-1
- 受信トレイ - suigun1000@gmail.com - Gmail
- メール - Ichikawa Shin'ichi - Outlook
- ウォッチリスト - Wikipedia
- NHK NEWS WEB|NHKのニュースサイト
- Yahoo! JAPAN
- Slack | 進捗報告するところ | プログラミング言語処理系が好きな人の集まり
- Slack | random | search-tech-jp
- @tenpoku1000/WatchさんはTwitterを利用しています / Twitter
- Twitter / 通知
- tenpoku1000に関するツイートアクティビティアナリティクス
- サービス/ソフト サービス - INTERNET Watch
- GIGAZINE(ソフトウェア)
- GIGAZINE(セキュリティ)
- GIGAZINE(ハードウェア)
Watch-2
- Coelacanth's Dream
- 北森瓦版
- 自作PCユーザーがゲーム用PCの解説をします - 自作ユーザーが解説するゲーミングPCガイド
- 自作PCニュース|自作.com
- 自作 / テクノロジ | パソコン (PC) | マイナビニュース
- スパコンの解説|テクノロジー | TECH+
- ハードウェア - INTERNET Watch
- ソフトウェア/アプリ - PC Watch
- 半導体/周辺機器 - PC Watch
- 市場 - PC Watch
- ソフトウェア開発の最新ニュース、ビデオ、ブック
- Publickey - Enterprise IT × Cloud Computing × Web Technology / Blog
- ADMINISTRATOR STAGE|gihyo.jp … 技術評論社
- OSDN Magazine -- オープンソースの話題満載
Watch-3
- プログラミング プログラミング - 窓の杜
- システム・ファイル デスクトップ - 窓の杜
- システム・ファイル システム - 窓の杜
- システム・ファイル ファイル - 窓の杜
- システム・ファイル ランタイム - 窓の杜
- オフィス・ドキュメント フォント - 窓の杜
- WindowsUpdate | ニッチなPCゲーマーの環境構築Z
- Windows Weekly Reportのニュースまとめ 1ページ | マイナビニュース
- ASCII.jp:Windows Info
- Windows Developers Archives - Windows Developer Blog
- Category : Visual Studio
- C++ Team Blog
- Technical Documentation for Software Security
- Best Practices for Software Security
blog-1
- 記事一覧 - FPGA開発日記
- Archive - 豪鬼メモ
- C カテゴリーの記事一覧 - yohhoyの日記
- 記事一覧 - ASnoKaze blog
- 記事一覧 - in neuro
- 記事一覧 - Tociyuki::Diary
- 記事一覧 - w_o’s diary
- 記事一覧 - 借り初めのひみつきち
- 記事一覧 - uchan note
- 記事一覧 - モナドとわたしとコモナド
- 記事一覧 - nayuta-yanagisawa's blog
- 記事一覧 - Kampersanda's Blog
- 記事一覧 - 水底の血
- 記事一覧 - Write and Run
blog-2
- 記事一覧 - 未完成な論を綴るブログ
- 記事一覧 - shallowな暮らし
- 記事一覧 - 井山梃子歴史館
- 記事一覧 - kateinoigakukunのブログ
- 記事一覧 - type t (* void *)
- 記事一覧 - show log @yuyarin
- 記事一覧 - にせねこメモ
- 記事一覧 - Blog posts by @retrage
- 記事一覧 - Arantium Maestum
- 記事一覧 - チェシャ猫の消滅定理
- 記事一覧 - fetburner.core
blog-3
- 記事一覧 - hidekatsu-izuno 日々の記録
- 記事一覧 - そーだいなるらくがき帳
- 記事一覧 - やわらかテック
- 記事一覧 - 覚書
- 記事一覧 - arutema47's blog
- 記事一覧 - Fire Engine
- 記事一覧 - それが僕には楽しかったんです。
- 記事一覧 - 地方エンジニアの学習日記
- 記事一覧 - suzuzusu日記
- 記事一覧 - ローファイ日記
blog-4
- Lispエイリアンの狂想曲 | κeenのHappy Hacκing Blog
- ベインのブログ
- GitHub 出張所 – プログラム関係のブログはここに
- 本の虫@GitHub
- yubrot.github.io
- Too lazy to evaluate - Home
- 日記 | elpinal
- https://seiya.me/blog
- J’s Lab | PC廃人の実験レポート
- nhiroki's weblog
- 或るプログラマの一生
- 記事 · drumato.com
- Blog Archive
- bicycle1885's blog
blog-5
- won't fix
- Satoshi's note
- 日々の覚書
- 山市良のえぬなんとかわーるど
- Message Passing - はなしをふったりふられたり
- blog.jxck.io
- どてやの戯れ言
- HanpenBlog
- - うさぎ小屋
企業
- Project Zero
- Google Online Security Blog
- Blog · V8
- 技術情報 | IIJ Engineers Blog
- Wireless・のおと|サイレックス・テクノロジー株式会社
- 赤帽エンジニアブログ
- GMOグローバルサインブログ - SSL・電子証明書・認証などのセキュリティナレッジサイト
- Engineers' Blog | マネーフォワード エンジニアブログ
- クックパッド開発者ブログ
- Adwaysエンジニアブログ
- フロントエンドBlog | ナレッジ | ミツエーリンクス
- POSTD | ニジボックスが運営するエンジニアに向けたキュレーションメディア
- PR TIMES 開発者ブログ |
- goto | エンジニアブログ | GREE Engineering
規格
- The Unicode Blog
- PE Format - Windows applications | Microsoft Docs
- WebAssembly Specification — WebAssembly 1.1
- Specifications | Unified Extensible Firmware Interface Forum
- Download DWARF Standards
- ISO/IEC JTC1/SC22/WG14 - C
- Wayland
- Desktop Entry Specification
- Blog - Open Container Initiative
- Hardware Specification - PRMs | 01.org
- NVMe Specification – NVM Express
- INCITS: INCITS 558 - Information technology - ATA Command Set - 5 (ACS-5)
- Specifications - OpenMP
- Khronos SPIR-V Registry - The Khronos Group Inc
鉄道
- 旅行総合研究所タビリス
- 鉄道ニュースの最新記事一覧 - Traicy
- 鉄道ニュース | RailLab ニュース(レイルラボ)
- カテゴリー「鉄道」の記事一覧ページ | 乗りものニュース
- 鉄道ニュース|レスポンス(Response.jp)
- 記事一覧 | 鉄道チャンネル
- 鉄道ダイヤ改正ニュース
- JR東日本(1)|会社別の鉄道ニュース・イベントなど|鉄道ファン・railf.jp
- 関東エリアの運行情報・運休情報:JR東日本
- ニュースリリース:JR東日本
- ニュースリリース | JR北海道 - Hokkaido Railway Company
- jr北海道 - Google 検索
- jr 減便 - Google 検索
- jr 廃止 - Google 検索
その他
- カテゴリー「バス」の記事一覧ページ | 乗りものニュース
- ライフ - Impress Watch
- iOS | CoRRiENTE.top
- iPhone iPad Apple Watch Mac AirTag AirPods 最新情報! - iPhone Mania
- 秋葉原情報 スポット情報 ショップ - AKIBA PC Hotline!
- 秋葉原情報 価格情報 - AKIBA PC Hotline!
- 秋葉原情報 その他 - AKIBA PC Hotline!
- 格安スマホ/格安SIM 格安SIM/MVNO - ケータイ Watch
- ソフトアンテナブログ - Windows/Mac/iOSなどオンラインソフトのご紹介
- LIFESTYLE STAGE|gihyo.jp … 技術評論社
- f/x [エフエックス] ITメディア・タンク
- 日本国財政破綻Safety Net
- 世界のニュース トトメス5世
- スシロー To Go - Google 検索
経済
- マネー - Impress Watch
- サーチナ-searchina.net
- 大紀元時報 | グローバルニュース
- 田中宇の国際ニュース解説
- 不景気.com - 不況を乗り切る不景気ニュースブログ | 倒産・リストラ
- 2021年 (データを読む) : 東京商工リサーチ
- スイングトレード ★ 日記. - livedoor Blog(ブログ)
- 値上げ - Google 検索
- サービス終了 -ゲーム - Google 検索
- デビット 銀行 - Google 検索
- 銀行 商号変更 - Google 検索
- 縦割り110番 - Google 検索
- 規制改革 - 内閣府
- 増税 - Google 検索
市場
- BDIY 銘柄 - バルチック海運指数 名称 - Bloomberg Markets
- バルチック海運指数 - Google 検索
- 日経平均 - Google 検索
- topix - Google 検索
- ダウ平均 - Google 検索
- 元円 - Google 検索
- 債務 - Google 検索
- Secured Overnight Financing Rate - Federal Reserve Bank of New York
- 国債 | 国債利回り - Investing.com 日本
- 金融先物 - Investing.com 日本
- 株価指数先物 - Investing.com 日本
- 商品先物 | 商品価格 | 商品取引- Investing.com 日本
- 金先物 過去の価格推移-Investing.com
- エネルギー相場 - Investing.com 日本
気象
- 停電情報|東京電力パワーグリッド株式会社
- 天気 - Google 検索
- 東京アメッシュ
- 環境省熱中症予防情報サイト 暑さ指数(WBGT)ランキング
- 気象庁 | 台風情報
- 気象庁 | 天気図
- 気象庁|地震情報
- 運行案内|ほくほく線|北越急行株式会社
- トピックス | えちごトキめき鉄道株式会社
- しなの鉄道株式会社
- 北陸エリア 運行情報:JR西日本列車運行情報
- 列車運行情報 - JR四国
- 運行情報 | JR九州
- 鉄道運行情報(長期間運転見合わせ)|NHK NEWS WEB
書籍(候補)
その他
- プログラミングのための数学 | マイナビブックス
- プログラミング言語Standard ML入門 改訂版 / 大堀 淳 著 | 共立出版
- SML#で始める実践MLプログラミング / 大堀 淳 上野 雄大 著 | 共立出版
- 書籍詳細|株式会社 C&R研究所
- インサイドWindows 第7版 上 システムアーキテクチャ、プロセス、スレッド、メモリ管理、他|日経の本 日経BP
- 図解即戦力 暗号と認証のしくみと理論がこれ1冊でしっかりわかる教科書:書籍案内|技術評論社
- イベント・ヒストリー分析 / Paul D. Allison 著 福田 亘孝 訳 | 共立出版
- カルマンフィルタの基礎 - 東京電機大学出版局 科学技術と教育を出版からサポートする
- システム同定の基礎 - 東京電機大学出版局 科学技術と教育を出版からサポートする
- カルマンフィルタとシステムの同定|森北出版株式会社
- 論理学 - 株式会社昭和堂
- 論理と言葉の練習ノート――日々の思考とAIをつなぐ現代の必須科目
- みんなの圏論 ―演習中心アプローチ― / David I. Spivak 著 川辺 治之 訳 | 共立出版
- 仮説のつくりかた ―多様なデータから新たな発想をつかめ― / 石川 博 著 | 共立出版
- 作って理解するOS x86系コンピュータを動かす理論と実装:書籍案内|技術評論社
書籍
- Amazon.co.jp: 過去30日 または 90日以内 - コンピュータ・IT: 本
- Amazon.co.jp: 過去30日 または 90日以内 - 科学・テクノロジー: 本
- 検索結果 - 分類:情報・コンピュータ | 共立出版
- 検索結果 - 分類:数学 | 共立出版
- 書籍検索 - 株式会社昭和堂
- 書籍TOP|株式会社 C&R研究所
- BOOKS(書籍、電子書籍)|リックテレコム
- 工学書・技術書なら『設計技術シリーズ』|科学情報出版
- コンピュータ | マイナビブックス
- 新刊書籍のご案内|日経の本 日経BP
- 書籍一覧新刊|技術評論社
- 東京電機大学出版局 科学技術と教育を出版からサポートする
- お知らせ|森北出版株式会社
- 東京図書株式会社
雑誌
- Interface – CQ出版
- Software Design バックナンバー|gihyo.jp … 技術評論社
- WEB+DB PRESS バックナンバー|gihyo.jp … 技術評論社
- 検索結果|日本評論社
- 書誌検索 – 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 数理科学 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- SGCライブラリ - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- コンピュータソフトウェア | 岩波書店. | 雑誌/定期購読の予約はFujisan
- 情報処理 38%OFF | 情報処理学会 | 雑誌/電子書籍/定期購読の予約はFujisan
- 学会誌 – 人工知能学会 (The Japanese Society for Artificial Intelligence)
- Japan Military Review「軍事研究」
- イカロス出版オンライン書店 | 商品リスト
- ラジコンマガジン | バックナンバー | 八重洲出版 公式サイト
- 電波社 / ラジコン技術
Money
- Google カレンダー
Watch
- Amazon.co.jp : thunderbolt 4 ssd ケース
- thunderbolt 4 ssd ケース - Google 検索
- Amazon.co.jp : usb 3.2 gen2x2 hub
- usb 3.2 gen2x2 hub - Google 検索
- Amazon.co.jp : USB Audio Class 3.0
- USB Audio Class 3.0 - Google 検索
Wikipedia
その他
- JR北海道の車両形式 - Wikipedia
- JR東海の車両形式 - Wikipedia
- JR西日本の車両形式 - Wikipedia
- JR九州の車両形式 - Wikipedia
- 大糸線 - Wikipedia
- しなの鉄道北しなの線 - Wikipedia
- 両毛線 - Wikipedia
- 米坂線 - Wikipedia
- 磐越東線 - Wikipedia
- 磐越西線 - Wikipedia
- 東武鬼怒川線 - Wikipedia
- 陸羽東線 - Wikipedia
- 陸羽西線 - Wikipedia
- 北上線 - Wikipedia
- 花輪線 - Wikipedia
- 奥羽本線 - Wikipedia
- 秋田内陸縦貫鉄道秋田内陸線 - Wikipedia
- 常願寺川 - Wikipedia
- 早月川 - Wikipedia
- List of websites founded before 1995 - Wikipedia
- 阿南町 - Wikipedia
- 那覇市歴史博物館
- 未成線 - Wikipedia
- 常南電気鉄道 - Wikipedia
- 弾丸列車 - Wikipedia
- 下呂線 - Wikipedia
- 中津川線 - Wikipedia
- 昼神温泉 - Wikipedia
- 中津川温泉クアリゾート湯舟沢 - Wikipedia
- 宇都宮ライトレール - Wikipedia
四国
- JR四国の車両形式 - Wikipedia
- 松山高知急行線 - Wikipedia
- 久万高原町営バス - Wikipedia
- 久万高原町 - Wikipedia
- 仁淀川町 - Wikipedia
- 越知町 - Wikipedia
- 佐川駅 - Wikipedia
- 伊野駅 - Wikipedia
- どーらくさんはTwitterを使っています 「大歩危駅周辺。険しい山の頂上付近に人家が多いのは、まだ鉄道や道路がなかった頃、人々は山の尾根伝いに移動していた時の名残り。 現代ではそれが逆に不便になってしまった。 https://t.co/V5iEH5ljkY」 / Twitter
- 「うえまち駅」がオープンしました! | さかわのしおり[オフィシャル]さかわ観光協会
- 佐川文庫庫舎(旧青山文庫) | さかわのしおり[オフィシャル]さかわ観光協会
- 日本三大酷道を超えるやばい酷道ランキングTOP10!険道との違いは? | MOBY [モビー]
Wikipedia
- Help:早見表 - Wikipedia
- Wikipedia:拡張半保護の方針 - Wikipedia
- Skin:Vector-DarkCSS - MediaWiki
- Category:井戸端の話題 - Wikipedia
- Wikipedia:井戸端 - Wikipedia
- Toshiyasu ObaさんはTwitterを使っています 「SNSだけではなく、ウィキペディアも政治的プロパガンダの舞台に、という問題の指摘と、対応策の検討。ユーザ参加型コンテンツに共通の問題でもあるが、日本語による知識基盤に与える影響の大きさは格別かと。/ 日本語版ウィキペディアで「歴史修正主義」が広がる理由と解決策 https://t.co/xucg5bdSfs」 / Twitter
- 日本語版ウィキペディアで「歴史修正主義」が広がる理由と解決策 | 佐藤由美子の音楽療法日記
- Toshiyasu ObaさんはTwitterを使っています 「コメントでのやり取りも興味深い。投入するリソース(主に常にコンテンツの変更状況を監視できるだけの手段と人手)を確保すれば、ユーザ参加型のコンテンツをプロパガンダで汚染するのは容易、という問題でもあるかも。」 / Twitter
Suica
- 利用可能エリア|Suica:JR東日本
- お値段 | タッチでGo!新幹線:JR東日本
- IC入場サービス「タッチでエキナカ」の利用|利用方法|Suica:JR東日本
- Suicaが駅の入場券になるサービス、今までなかった理由は? JR東に聞く - ITmedia NEWS
- 入場券:JR東日本
- 入場券にもある定期券、誰がどんな目的で使っている? 背景にある駅の「構造」 | 乗りものニュース
列車予約
- 予約:JRおでかけネット
- サンライズ瀬戸・出雲 予約:JRおでかけネット
- お受け取り方法│e5489ご利用ガイド:JRおでかけネット
- 【検証】e5489で予約したサンライズのきっぷを東京駅で受け取る方法 - toremorの旅手帳
- えきねっと、EX予約の相互受取が可能に。「当たり前」がやっと実現 | タビリス
- 「ぷらっとこだま」乗り遅れの扱い変更。JR線遅延なら当日救済へ | タビリス
バス
- 一般路線バス運行情報 | ジェイアールバス関東
- 一般路線バス時刻表・路線図 | ジェイアールバス関東
- バスの居る風景(46~)
- 「日本一高いトンネル」路線バスで抜けられます! 東武が提案「秘境バスルート第二弾」 | 乗りものニュース
- 夜行バス「やまと号」運行再開 新宿~天理・五條 関東バス単独で | 乗りものニュース
- 河口湖の北側まで高速バス直行「バスタ新宿・秋葉原~河口湖」10月から2往復で路線延伸 | 乗りものニュース
- 東急バス最長路線「東京駅~等々力」11月から直通は朝夕夜のみに 乗継割引を新設へ | 乗りものニュース
- 東急バス最長路線「東京駅~等々力」、運行区間短縮へ。乗継割引を新設 | タビリス
- 予約システム「Sokko-bus」は高速バスをどう変えるか。乗車状況をリアルタイム表示 | タビリス
実店舗
- スシローのテイクアウト専門店『スシロー To Go』がJR戸塚駅(神奈川)と雑色商店街(東京)にオープン|株式会社FOOD & LIFE COMPANIESのプレスリリース
- お店を探す | To Go JR我孫子駅店 (テイクアウト専門店) | 回転寿司 スシロー
- お店を探す | To Go JR亀有駅店 (テイクアウト専門店) | 回転寿司 スシロー
- お店を探す | 八重洲地下街店 ※都市型店舗120円(税込132円)から ※To Go店舗併設 | 回転寿司 スシロー
- お店を探す | To Go 大山ハッピーロード店(テイクアウト専門店) | 回転寿司 スシロー
- お店を探す | To Go 大森店(テイクアウト専門店) | 回転寿司 スシロー
- 北千住にシブいおそば屋さん発見! と思ったら実は「歴史ある喫茶店」、ただよう“昭和感”に2.7万人が驚き「ジオラマかと思った」「ナポリタンがうまい」 | アーバン ライフ メトロ - URBAN LIFE METRO - ULM
- ミルクホール モカ - 北千住/喫茶店 | 食べログ
- 北千住・足立市場内の「しいはし食堂」、夫婦で新たなスタート切る - 足立経済新聞
- しいはし食堂 - 千住大橋/定食・食堂 | 食べログ
- 武寿司 (たけずし) - 千住大橋/寿司 | 食べログ
- 市場めし とくだ屋 - 千住大橋/海鮮丼 | 食べログ
- かどのめし屋 海鮮食堂 足立市場店 - 千住大橋/定食・食堂 | 食べログ
- 日暮里駅 - Wikipedia
- 千住大橋駅 - Wikipedia
- ごうだまりぽさんはTwitterを使っています 「先日、秋葉原大通り北・末広町駅前交差点が「軍拡交差点」と呼ばれているという情報を得た。ミリタリグッズやサバゲー用品の店が多いという実態を反映しているのだが、通るたびに思い出してちょっと笑う。 https://t.co/6mZjXv8C4U」 / Twitter
News
- 時速200キロ「準新幹線」は実現するか。国交省『幹線鉄道ネットワーク調査』を読み解く | タビリス
- JR東日本が「非電化、単線化」を推進へ。ローカル線の設備をスリムに | タビリス
- 磐越西線・会津若松~喜多方間を非電化に。JR東日本が地元に説明 | タビリス
- 東京の地下廃駅 京成「旧博物館動物園駅」に独占潜入 中にいたのは…ウサギ?【前編】 | 乗りものニュース
- 東京の地下廃駅 京成「旧博物館動物園駅」に独占潜入 時が止まったホームへ!【後編】 | 乗りものニュース
- JR東日本・JR西日本 「JR東日本アプリ」と「WESTER」の連携を拡大|鉄道ニュース|2021年9月29日掲載|鉄道ファン・railf.jp
- JR西のスマホアプリ「WESTER」、ICOCA残高確認や首都圏の駅情報拡充 - Impress Watch
- 地下鉄の混み具合がスマホでわかる東京メトロのサービス、新たに3路線で対応 - PC Watch
- 東京メトロ、相互直通運転する3路線でも号車ごとの混雑状況配信 - TRAICY(トライシー)
- シーズン別の指定席特急料金の改定について - 20211005_ho04.pdf
- 西暦和暦年齢一覧表
- VCTRADE
- ログイン画面/auカブコム証券
- eワラント証券|小額でできる追証なしのレバレッジ投資
- 商品検索 - お弁当・駅弁・おせちの株式会社ウェルネス伯養軒-通販ショップ
- 吉田屋の駅弁
- JR東海パッセンジャーズ(JRCP)オンラインショップ |
- 都まんじゅう - Wikipedia
- 販売受付 – RFA 鉄道貨物協会
- 横浜外国人墓地 - Wikipedia
- 横浜外国人墓地,Yokohama Foreign General Cemetery
- 三笠 (戦艦) - Wikipedia
- 世界三大記念艦「三笠」公式ホームページ | 神奈川県横須賀市
- デビットカード - Wikipedia
- ツインクルプラザ - Wikipedia
- 列車集中制御装置 - Wikipedia
- 2020年代のJRダイヤ改正 - Wikipedia
- JR東日本の車両形式 - Wikipedia
- 東京圏におけるホームドアの整備促進について - 20180305.pdf
- 2021年度のホームドア整備について - 20210406_ho01.pdf
- 総合 - NHKプラス
- SBI証券(旧SBIイー・トレード証券)-オンライントレードで株式・投資信託・債券を-
- 楽天証券 | ネット証券(株・FX・投資信託・確定拠出年金・NISA)
- 【楽天市場】Shopping is Entertainment! : インターネット最大級の通信販売、通販オンラインショッピングコミュニティ
- Amazon.co.jpショッピングカート
- Amazon.co.jp: 過去90日 - コンピュータ・IT: 本
- Amazon.co.jp: 過去90日 - 科学・テクノロジー: 本
- お気に⼊り一覧|PC専門店【TSUKUMO】公式通販サイト
- 『鉄道ファン』情報|鉄道ファン・railf.jp
- Amazon.co.jp : JTB時刻表
- 現状のまとめ - JR東日本車両更新予想スレッド 倉庫Wiki
- バス待合所mini
- 公共交通(路線バス) | 稲敷市公式ホームページ
通信
- 楽天モバイル メンバーズステーション
- 通信・エリア | 楽天モバイル
- 楽天ブロードバンド: プロバイダ・インターネット接続
- 個人向けSIM・インターネットサービスのIIJmio
- IIJmio:DS-Liteについて
- IIJmio、ギガプラン専用アプリ「My IIJmio」を提供開始 - ケータイ Watch
- IIJmioギガプランの各種機能を試してみた話 - ケータイ Watch
- IIJmioの新アプリ「My IIJmio」がサービス停止中、他人の請求金額などが誤表示 - ケータイ Watch
- 総務省、個人情報漏えいのIIJに行政指導 - ケータイ Watch
- サービス情報サイト
- フレッツのIPv6パケットフィルタが筒抜けだった件(ひかり電話あり/なしで異なる結果に) – アキバではたらくプログラマのBlog
- 本の虫: CloudflareのDNSからArchive.isが解決できない問題について
- 1.1.1.1 — the Internet’s Fastest, Privacy-First DNS Resolver
- What Is My IP Address - See Your Public Address - IPv4 & IPv6
- スピードテスト - Google 検索
- 郵便局 | 日本郵便株式会社
- 94円普通切手・スミレ: 切手・はがきストア|郵便局のネットショップ
- レターパックライト(370円)(20部セット): 切手・はがきストア|郵便局のネットショップ
- 【国認定】パソコンの無料回収(処分・廃棄)サービス「リネットジャパン」
- 主な取扱不可製品
- DeepL Pro:テキストの他、Wordなどの文書をセキュアに翻訳
- 📱すまほん!!📶5GさんはTwitterを使っています 「ヤベー条件入ってるから遠隔勤務の自宅ガチ勢はメイン電話番号でpovoはやめとけよ それなら楽天 https://t.co/M3KI0yRqla」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あーなるほど。Slack の DNS 障害は、再帰リゾルバのキャッシュから問題のエントリが消えるまで待つ必要があるけど、既に消えてる再帰リゾルバを使うという解決策もあるという話。そりゃそうだ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「逆に考えると、今slack使えている人もリゾルバを変えることで 「つらいわーslackつながらないから仕事できないわー」 って言うことができるかもしれない。ちょっと試してみるか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「運用の問題とか DNSSEC の問題というより、DNS プロトコルに cache invalidation がないってのが今時設計古いんじゃないの? だからこそ「浸透待ち」とか言うんでしょ? という視点は必要だと思う」 / Twitter
- GmailやiPhoneのメールアプリでスパムからのトラッキングを防ぐための方法とは? - GIGAZINE
- 在宅勤務で「従業員の監視」が加速してプライバシーが危険にさらされている - GIGAZINE
- au「povo2.0」で深刻なトラブル続く。強制解約、番号消失、絶対繋がらないサポート・・・ - Skyblue
Money
- SBI証券|株・FX・投資信託・確定拠出年金・NISA
- ログイン|住信SBIネット銀行
- 楽天銀行(旧イーバンク銀行)|ネットバンク
- 楽天ウォレット会員ログイン|暗号資産 (仮想通貨)の取引ならRakuten Wallet | 楽天ウォレット
- Blockchain Wallet - Exchange Cryptocurrency
- NFTは技術に精通したエリートによる「マルチ商法」に過ぎないとの指摘 - GIGAZINE
- JIS&TのiDeCo<イデコ>(個人型確定拠出年金)ポータル
- 日本インベスター・ソリューション・アンド・テクノロジー株式会社
- ゆうちょダイレクト ログイン(お客さま番号入力)
- 一部商品・サービスの料金新設・改定について-ゆうちょ銀行
- ログイン/マネックス証券 取引サイト
- ログイン | VALUE-DOMAIN(バリュードメイン)
- 日経平均採用銘柄の株価一覧 :株式 :マーケット :日経電子版
- インディカティブNAV・PCF情報 | 日本取引所グループ
- 営業時間・休業日一覧 | 日本取引所グループ
- 先物・オプション関連 | 日本取引所グループ
- 取引最終日 | 日本取引所グループ
- 大阪取引所障害時メール | 日本取引所グループ
- その他統計資料 | 日本取引所グループ
- 信用評価損益率 信用残 日経平均比較チャート
- 投資家が注目する「信用評価損益率」とは? | 東証マネ部!
- 株価移動平均線の見方・使い方(1)~移動平均線の基礎 | テクニカル分析指標 | 指標の見方・使い方 | 投資のノウハウ | 株の達人
- 移動平均線を使いこなす | みんなの株式
- 指数平滑法 - Google 検索
- 株探 | 【株式の銘柄探検】サイト - 株式投資の銘柄発掘をサポート | かぶたん
- 株探 | 株価注意報 - 本日のゴールデンクロス銘柄(5日と25日移動平均線)
- 株探 | 株価注意報 - 本日のデッドデンクロス銘柄(5日と25日移動平均線)
- インバースはなぜ減価するのか - room5110
- コンタンゴはなぜ減価するのか VXX(1552)が下がる理由 - room5110
- NAKAMURA Minoru's Diary (2012年7月)
決算短信
その他
- IR情報 | ステラケミファ株式会社
- 2020年度決算短信・説明会資料|楽天グループ株式会社
- 財務状況 | ディスクロージャー | 楽天銀行について | 楽天銀行
- 決算情報 | 開示情報 | 楽天証券
- 決算短信 | IR資料室 | 住友化学株式会社
- 財務情報 日本基準|三菱UFJフィナンシャル・グループ
- 太洋工業 IR情報
済
- 決算短信 | クリヤマホールディングス株式会社
- IRライブラリ : 決算短信 | 株式会社フェローテックホールディングス
- 決算短信 | 平河ヒューテック
- 決算短信 | IRライブラリー | 明電舎
- 決算短信 | 住友大阪セメント
- 決算短信 | 国際石油開発帝石[INPEX]
- 決算短信 | 株主・投資家情報 | レンゴー株式会社
- 決算情報|株主・投資家情報|営業紹介|株式会社関電工 | 株式会社関電工
- 財務情報 | IR情報 | トーモクグループ
- 決算短信|イノテック株式会社
- 決算短信 | 株主・投資家情報 | 日本精線株式会社
- 物流の山九株式会社|IR資料 | 山九株式会社
- IR情報 | 日本パレットプール株式会社
- 決算短信 | IR情報 | 化学メーカー、石原産業
- 決算関連情報|株主・投資家情報|株式会社ナカノフドー建設
- 決算短信・補足説明資料 | 東和薬品
- 決算短信|IR情報|小野建株式会社
- 決算短信|カルビー
- 決算短信 | プリント基板設計・製造・実装|5G基板ならキョウデン
- 決算短信 | ケミカルポンプと流体制御機器のイワキ
- 決算概況 | IR(投資家向け情報) | カワチ薬品
- 決算短信:株主・投資家情報:FREUND フロイント産業
- 投資家の皆様へ - IRライブラリー - 決算短信 | 暮らし、いきいき ジュンテンドー
- 決算短信・説明会資料 | IRライブラリ | 株主・投資家情報 | タツタ電線株式会社
- JMS | IR情報
公的機関等
その他
- 警視庁の業務に対する苦情・ご要望・ご意見
- 証券・金融商品あっせん相談センター
- 事故物件の売却なら【お困り不動産解決本舗】へ|事故物件はお任せください
- 海外から注文していない植物が郵送された場合は、植物防疫所にご相談ください:植物防疫所
- 「研究開発型スタートアップと事業会社のオープンイノベーション促進のためのモデル契約書ver1.0」を取りまとめました (METI/経済産業省)
- アルトア | スモールビジネスの新しい選択肢となるオンライン融資
- 支援情報検索サイト
- PowerPoint プレゼンテーション - 009_04_02.pdf
- 「まち」と読む町、「ちょう」と読む町(市区町村雑学)
- 「地震保険は損だ」という考えが危ない理由 | 家計・貯金 | 東洋経済オンライン | 経済ニュースの新基準
- 解約できない!マンション「サブリース」の罠 | 不動産 | 東洋経済オンライン | 経済ニュースの新基準
- 政府 復興庁を2031年まで10年間延長 新たな骨子案 | NHKニュース
- ウイルスの感染力を高め、日本人に高頻度な細胞性免疫応答から免れるSARS-CoV-2変異の発見 | 国立研究開発法人日本医療研究開発機構
- 202108161400_331.pdf
- 法令・ガイドライン等 |個人情報保護委員会
社会保障
- 住まいに困っている 東京都福祉保健局
- 「水害にあったら、どうすればいい?」 このチラシが、とてもわかりやすい
- 労働者健康安全機構 トップページ
- 中小企業庁:セーフティネット保証制度 概要
- がん相談支援センターにご相談ください|がんになったら手にとるガイド [国立がん研究センター がん情報サービス]
- 生活費等の助成や給付など:[国立がん研究センター がん情報サービス 一般の方へ]
- がん相談ホットライン | 日本対がん協会
- がんの「余命宣告」の正しい意味を知っていますか?(大須賀 覚) | ブルーバックス | 講談社(1/4)
- お金が無くても保険証が無くても病院受診する方法!(藤田孝典) - 個人 - Yahoo!ニュース
- 国や自治体からお金を借りられる、公的融資制度&給付金まとめ。キャッシングでお金を借りる前に、これらの貸付制度が使えないかの確認を! - クレジットカードの読みもの
- 一般社団法人 個人版私的整理ガイドライン運営委員会
- トップページ|全国社会福祉協議会
- NPO法人POSSE
- 法務省:「更生保護」とは
- 日本内科学会雑誌:新型コロナウイルス感染症特集の公開について | 日本内科学会の取り組みについて | 日本内科学会
- 生活保護を申請したい方へ
- 新型コロナワクチンについて | 首相官邸ホームページ
- 新システム、懸念払拭に躍起 旗振り役の河野・平井氏―ワクチン情報を一元管理:時事ドットコム
- オンライン資格確認等システムの導入に関する医療機関・薬局システムベンダ向け説明会_投影資料一式 - 000597524.pdf
- 保険料の6割増も それでも進む国保改革 その狙いは:朝日新聞デジタル
- フリーのITエンジニアやWebデザイナーも国の労災保険へ加入が可能に。業務や通勤での疾病、負傷、死亡など補償。国の労働政策審議会が了承。9月から - Publickey
- 000685273.pdf
- ネット含め医薬品など誇大広告に課徴金。改正薬機法が8月1日施行 - PC Watch
- ITフリーランスが労災保険の特別加入制度対象に。プログラマ/SE/Webデザイナーなど - PC Watch
- ITフリーランスを対象とした国の労災保険「特別加入制度」が今日からスタート。フリーランスでも通勤や仕事によるケガ、病気、障害、死亡など補償 - Publickey
- 1annai2.pdf - guideline-abstractPDF.pdf
日銀
- 国際収支統計(IMF国際収支マニュアル第6版ベース<2014年1月取引分~>) : 日本銀行 Bank of Japan
- 需給ギャップと潜在成長率 : 日本銀行 Bank of Japan
- 実効為替レート : 日本銀行 Bank of Japan
- 「支払又は支払の受領に関する報告書」の報告概要 : 日本銀行 Bank of Japan
縦割り110番
- 受け付けた提案及び所管省庁からの回答:「規制改革ホットライン」 : 規制改革 - 内閣府
- 内閣府共通意見等登録システム - 内閣府
- 縦割り110番、内閣府HPでも一時停止 河野規制改革相: 日本経済新聞
- 「縦割り110番」、受け付けの一時停止を検討 要望6000件超え 河野氏「霞が関の処理に限界」 - ITmedia NEWS
- 「縦割り110番」の裏側初潜入!どんなメンバーがどんな部屋で?明かされる“チーム河野太郎” のリアル
- EBPMの推進 - 統計等データの提供等に関する要望・提案募集
- 統計等データの提供等に関するユーザーからの要望・提案募集 応募フォーム|首相官邸ホームページ
- 分析AI「YOSHINA」で縦割り110番のデータ分析をしてみました - Retrieva OFFICIAL BLOG
- デジタル改革アイデアボックス
政府の情報処理システム
- 何故お役所ってオワコンIEが大好きなの?|楠 正憲(国際大学GLOCOM 客員研究員)
- Shiro KawaiさんはTwitterを使っています 「楠さんによるCOCOAの経緯の総括。後知恵で批判するのは簡単だけど、予算確保から契約まで関係各所を継ぎながら変化する状況にも対応するとなると、結局そういう開発プロセスがわかってる人が至るところにいる、という社会になってないと難しそう https://t.co/b6njHTfjmw」 / Twitter
- 接触確認アプリCOCOAからの教訓|情報処理学会・学会誌「情報処理」|note
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「最初はバーコードを読むつもりだったのですが、仕様がカッチリ決められておらず、自治体によってバーコードがあったりなかったり、埋め込まれている値もバラバラなので、仕方なく全団体共通のOCRラインを読むようにしたのです。接種券仕様をちゃんと決められていたら」 / Twitter
- 木曽崇@国際カジノ研究所:「飯テロ」注意報発令中さんはTwitterを使っています 「すげえなあ。隣りにバーコードがあるのに、わざわざOCRでその脇の数字を読み取らせるというミラクル仕様。」 / Twitter
- 神庭亮介さんはTwitterを使っています 「ワクチン接種記録システム(VRS)をめぐり「接種券のバーコードが読みとれない」「ピントが合わない」など自治体から苦情。 実は読み込むのはバーコードではなく数字。平井デジタル相は「誤解があった」と説明。 IT総合戦略室は段ボールや専用スタンドの活用を提案している。https://t.co/cjj0JAbN5r https://t.co/G1c5gBonDd」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「これはねー、時期によってコロコロ変わってるんですよ。APIリファレンスの改版履歴を追うとかなりトリッキーで、途中からAPIリファレンスがPDFからWebに変わって保全が面倒になり、更に秋から別の大きな仕様変更があり / “Android版COCOAがバグった理由 - DEVGRU” https://t.co/Ac18AUi34J」 / Twitter
- Android版COCOAがバグった理由 - DEVGRU
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「Cocoaに限らずクラウドもスマホもころころAPIが変わる時代、入札やって契約を結んだのだからちゃんとやってくれではなく、前提が変わったら予算を取り直して契約変更するから、くれぐれも品質第一に運用してくれとお願いできる制度・運用体制を組めるようにならないと厳しい。デジタル庁へ向けた課題」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「ベンダーロックイン排除、技術中立性のためには構成技術は指定せず要件で縛るのが美しい調達仕様書とされてきたけど、民間企業と同様に、十分な技術者を確保できるか、組み合わせの掛け算で母数が小さくなってないか、スタック構成をもっと丁寧に見て落とし穴を避ける努力も必要」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「ここ数年で「とりあえずやってみる」「数週間でシステムを立ち上げる」ところまではできるようになった。これからは「適切なKPIを設定してモニタリング」「継続的な改善」「Whyを問い直し止めるべき時に止める」を組織的に回せる体制が必要に。今はQAもSREもおらず全てを事務官がベンダーにやらせてる」 / Twitter
- zipperpullさんはTwitterを使っています 「@masanork 継続的な改善の一部かもしれませんが、とくに一般ユーザ向けのものなんかでは、不具合や改善点を見つけてくることをベンダーにまかせても最適解は黙って何もしないことに着地してしまうので、QAやサポート・運用データ調査などを開発保守のベンダーから分離して組織化するようなことが必要かと思います」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「@zipperpull 確かにその分割発注はアリですね。今は原課が気付くまでダンマリが最適解なので。参考になります」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「デジタル庁の関連議員、https://t.co/EUTbbS0ecK の人だらけという話本当だった。なんだそれ」 / Twitter
- デジタル・ニッポン2020~コロナ時代のデジタル田園都市国家構想~
- Noriatsu KudoさんはTwitterを使っています 「@makoto_kato 行き当たりばったりではなく、それなりに時間を使って準備してきたってことかと。庁ができてさあがんばるぞーって話じゃなくてよかったと思いたい。」 / Twitter
放送・通信
- 地デジ高度化実験受信対策センター トップページ
- チャンネル一覧 | 一般社団法人放送サービス高度化推進協会(A-PAB)
- 一般財団法人 日本電話リレーサービス
- 総務省|東海総合通信局|電波の人体に対する影響
- 急増する世界の「データ」流通量 | 地域・分析レポート - 海外ビジネス情報 - ジェトロ
- 活動・施策を知る|デジタル庁
- 官報決算データベース
- 資料8-2 - siryo8-2-2.pdf
- 月例経済報告 - 内閣府
- 今週の指標 - 内閣府
- 統計表一覧(本邦対外資産負債残高) : 財務省
- 本邦対外資産負債残高 : 財務省
- 政府統計の総合窓口
- e-Gov法令検索
- 登記情報提供サービス
- 登記・供託オンライン申請システム 登記ねっと 供託ねっと
- 政府の事業が検索できるサイトJUDGIT!(ジャジット)
- 会派名及び会派別所属議員数
- 会派別所属議員数:参議院
- 生命保険契約照会制度の創設(2021年7月1日開始)~確実な保険金請求のためのセーフティネット~ | 2021 | ニュースリリース | 生命保険協会
- Takuji HashizumeさんはTwitterを使っています 「当事者署名型/事業者署名型(立会人型)の違い、署名パネルの確認方法、タイムスタンプの重要性なども詳細解説。 IT委員会研究報告第59号「デジタルトラストの基礎知識と電子署名等のトラストサービスの利用に関するQ&A」の公表について | 日本公認会計士協会 https://t.co/jPLd9BvIlN」 / Twitter
- IT委員会研究報告第59号「デジタルトラストの基礎知識と電子署名等のトラストサービスの利用に関するQ&A」の公表について | 日本公認会計士協会
- Verifiable CredentialとBBS+署名(IIR vol.52 2章) | IIJ Engineers Blog
- 2. フォーカス・リサーチ(1)Verifiable CredentialとBBS+署名 | Internet Infrastructure Review(IIR)Vol.52 | IIJの技術 | インターネットイニシアティブ(IIJ)
税金
住民税
- 千葉市:市税過誤納金等の還付・充当
- 還付(住民税)について|東京都北区
- 市税の領収証書は何年保存したらよいのか。 | 市税の納付(口座振替) | 市税 | くらしの手続き | 西宮市ホームページ
- 上場株式等の譲渡損失の繰越控除や損益通算をしたら住民税の申告も検討しよう
- 株式等の譲渡益や配当に対する税金:練馬区公式ホームページ
- 現役税理士が所得税と住民税の控除額の計算方法の違いをわかりやすく解説 - 経営ハッカー | 「経営 × テクノロジー」の最先端を切り拓くメディア
- <税金の種類><個人住民税> | 東京都主税局
- 所得税と住民税の計算方法
- 住民税 税額シミュレーション
- 名古屋市:税額の計算方法(暮らしの情報)
- 名古屋市:市民税・県民税の計算例(暮らしの情報)
- 住民税はどうやって決まる? その計算方法とは - INTERNET Watch
- サラリーマンと個人事業主の税金の話まとめ:源泉徴収票の見方・年末調整の書き方から住民税の計算方法まで - INTERNET Watch
- 地方税申告の合理化 | 衆議院議員 河野太郎公式サイト
- ふるさと納税で紺綬褒章 所得2億5千万なら負担なし【川島会計事務所タックスニュース】
- 株式や配当などの確定申告と国民健康保険税/小牧市
所得税
国税庁
- No.1300 所得の区分のあらまし|国税庁
- No.1199 基礎控除|国税庁
- No.1240 外国税額控除|国税庁
- No.2240 申告分離課税制度|所得税|国税庁
- No.2260 所得税の税率|所得税|国税庁
- No.1250 配当所得があるとき(配当控除)|国税庁
- No.1330 配当金を受け取ったとき(配当所得)|国税庁
- No.1331 上場株式等の配当所得等に係る申告分離課税制度|国税庁
- No.1474 上場株式等に係る譲渡損失の損益通算及び繰越控除|国税庁
- No.1521 外国為替証拠金取引(FX)の課税関係|国税庁
- No.1522 先物取引に係る雑所得等の課税の特例|国税庁
- No.1523 先物取引の差金等決済に係る損失の繰越控除|国税庁
- No.1524 ビットコインを使用することにより利益が生じた場合の課税関係|国税庁
- 01.pdf
- [手続名]所得税及び復興特別所得税の更正の請求手続|国税庁
- No.2026 確定申告を間違えたとき|国税庁
- 新型コロナウイルス感染症に関連する税務上の取扱い関係
- No.1150 一定の寄附金を支払ったとき(寄附金控除)|国税庁
- マイナポータル連携可能な控除証明書等発行主体一覧|国税庁
- ビットコインの譲渡における消費税との税務関係について税理士が解説 - エキサイトニュース(1/2)
- ビットコイン・仮想通貨の「雑所得課税」に有利な材料? 副業の所得や年金などと通算 | ZUU online
- 遺産としての仮想通貨、鍵が不明で引き出せなくても相続税がかかる | 日経 xTECH(クロステック)
- 青色申告、電子なら控除10万円増 20年1月から :日本経済新聞
- 配当所得は所得税では総合課税で、住民税では申告不要にすれば有利になるケースとは? - やまばた税理士事務所
- みずほ証券:証券税制早わかり 株式の税金
- 松浦晋也さんのツイート: "これ、もっと前があるのだ(財務省ページからは消されているが、以前は載っていた)。1970年代初頭はもっと厳しい累進課税だったのである。その税制で、日本は高度経済成長を達成している。「意地悪ばあさん」で「昭和元禄浪花節」と歌った時代である。… https://t.co/3UDrmnNSGY"
- 貧富格差を拡大する方向に進んできた日本の税制 - WirelessWire News(ワイヤレスワイヤーニュース)
- 松浦晋也さんのツイート: "財務省は消しても国会図書館ウェブアーカイブには残っている、というわけで、このページである。 https://t.co/6xFPj5r5yY"
- 所得税の税率構造の推移 : 財務省
- 外貨預金の損失で「節税」できる? | ビジネスジャーナル
- 還付申告は1月から可能。還付でない確定申告も2月15日以前にできる? | 川越市【関田和弘税理士事務所】相続税申告・クラウド会計
- 含み益の課税検討で「積立NISA逝く」SNSで拡散 金融庁「関係ないので解約しないで」 - 税理士ドットコム
年金
- 日本年金機構
- 国民年金保険料|日本年金機構
- 国民年金前納割引制度(現金払い 前納)|日本年金機構
- 国民年金保険料の「2年前納」制度|日本年金機構
- 企業年金連合会(Pension Fund Association)
- 年金13万円、生活苦に悩む高齢者たちの実情 | 家計・貯金 | 東洋経済オンライン | 経済ニュースの新基準
- 悠々自適な老後は夢のまた夢。「70歳まで就業」案に失意の声 - まぐまぐニュース!
- 「年金積立金の減少」を騒ぎ立てる人が陥っているひどい勘違いとは | 自分だけは損したくない人のための投資心理学 | ダイヤモンド・オンライン
信用情報
- 信用情報 - Wikipedia
- 日本信用情報機構 - Wikipedia
- JICC 日本信用情報機構(指定信用情報機関)| HOME
- 全国銀行個人信用情報センター - 全国銀行協会
- 指定信用情報機関のCIC
マイナンバー
- 国税庁法人番号公表サイト
- 総務省
- 社会保障・税番号制度 - 内閣府
- マイナンバー社会保障・税番号制度
- 地方公共団体情報システム機構 地方公共団体情報システム機構
- マイキープラットフォーム
- サービストップ | マイナポータル
- マイナンバーカード総合サイト/トップページ
- 事前の準備 : 公的個人認証サービス ポータルサイト
- 証券会社へのマイナンバー登録・通知の義務化。通知しないとどうなる? | Money Lifehack
- 銀行の口座開設や既存口座でのマイナンバー(個人番号)の登録・通知の義務化のタイミングはいつ? | Money Lifehack
- CSS2017キャンドルスターセッション
- マイナンバー制度について-ゆうちょ銀行
- スイングトレード ★ 日記.:【悲報】マイナンバー提出期限3年延長が決定!提出するだけ無駄だった - livedoor Blog(ブログ)
- 【確定申告書等作成コーナー】-作成コーナートップ
- 確定申告期に多いお問合せ事項Q&A|国税庁
- 【税金の還付】|国税庁
- 振替納税の領収証書送付取りやめのお知らせ|国税庁
- クレジット販売の場合の領収書|国税庁
- No.7105 金銭又は有価証券の受取書、領収書|国税庁
- 国税クレジットお支払サイト
- 税収に関する資料 : 財務省
- 負担率に関する資料 : 財務省
- 財政に関する資料 : 財務省
- 予算 : 財務省
- 平成31年度財務省所管予算概算が決まりました : 財務省
- 日本銀行が国債の引受けを行わないのはなぜですか? : 日本銀行 Bank of Japan
- GDPとGNI(GNP)の違いについて - 内閣府
- フリーランス危うし? 「インボイス」制度に向け、適格請求書発行事業者の登録を - Impress Watch
- 久慈桃子@想いを翻訳する編集ライター🖋さんはTwitterを使っています 「Amazonやpaypalなど、オンライン決済の領収書を印刷保存していた人🙌 なんと2022年からそれがNGになります🤣 「うちはPDFで保存してる!」という人🙌 タイムスタンプ必須になりますよ!🤗 改正電子帳簿保存法でPDF領収書の印刷保存がNGに!経費処理をどうすればいい? https://t.co/lglCmZ3Yow」 / Twitter
- 改正電子帳簿保存法でPDF領収書の印刷保存がNGに!経費処理をどうすればいい? | おうちフリーランス手帳
Doc
- Bing
- Google Scholar
- Internet Archive: Digital Library of Free Books, Movies, Music & Wayback Machine
- 設計に悩みすぎる前に手を動かしてみる話
- JIROさんはTwitterを使っています 「これやると英訳がずっとやりやすくなります! 英訳するときは、何を伝えたいのか、どう伝えたいのか、が最優先なので元の日本文には基本こだわりません。」 / Twitter
その他
- (0)市川 真一にマシュマロを投げる | マシュマロ
- docin.com豆丁网-分享文档 发现价值
- Unified fj NetNews archive
- ancientfj Japanese USENET archive : Free Download, Borrow, and Streaming : Internet Archive
- 全国道路構造物マップシリーズについて(概要、利用上の注意点) | 全国Q地図(旧・九州Q地図)
その他
その他
- 「飲食店の制限だけでは1ヶ月で感染者は減らない」 8割おじさんが厚労省“非公開”のシミュレーションを公開
- 緊急事態宣言が効果を上げるか鍵を握る2つの変化 8割おじさんを悩ませる変数
- 小池都知事のアラビア語力をどう評価したらいいのかわからない方へ|jaber|note
- 「スペースコブラ」1話~10話
- ダム Advent Calendar 2020 - Adventar
- 足尾砂防堰堤 | ponkotuy-blog
- AIやロボットを導入した企業はむしろ雇用が増えるという研究結果 - GIGAZINE
- 学会の役割:難しい評価をすること
- 科研費の話
- 伊津野 英克さんはTwitterを使っています 「普通に面白い。ビッグバンが点じゃないとか、ビッグバンと宇宙の始まりは違うとか、結構知らないことが出てくる https://t.co/D1oB15LzHt」 / Twitter
- 宇宙は物理法則に従っている Our universe is dictated by the laws of physics | UTokyo OpenCourseWare
- 技術的負債とステークホルダと説明責任と / The Debt - Speaker Deck
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「伊達や酔狂に即時的利益を求めたらそりゃ無粋ってもんだよ。伊達も酔狂も一生かけて味わうもんだ。」 / Twitter
- ドリヤス工場さんはTwitterを使っています 「映画版に対してテレビ版を「アニメ」と呼ぶ人が増えたのと似たようで似てない話ではあるが、最近は「世界線」という言葉の使われ方が気になる。昔の作品の家電話や公衆電話が出てくるシーンに対し「携帯電話のない世界線」という言い方を見かけて、いやそれは単に過去なだけやんと思うのだが。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「期待値」みたいだよね。「期待」に「値」を付けただけ、みたいに「世界」に「線」を付けただけ、みたいな。本当はそれぞれ意味が違うのに >RT」 / Twitter
- no100
- 過去20年間のテクノロジーの進歩を分析して得られた8つの教訓とは? - GIGAZINE
- 何人いれば適切なの?:学術知と政策とテクノクラート - Take a Risk:林岳彦の研究メモ
- 人と同じものを作る - necobut 1週間遅れ日誌
- 酒居敬一さんはTwitterを使っています 「広島焼で盛り上がってるのか。 偏執狂がちらほらいるけど、よその地域の創作料理をとうやかく言うてもしょうがないと思うが。アメリカンコーヒーとか台湾ラーメンとかナポリタンとか、由来のよくわからん定義もよくわからんものは世の中にいっぱいあると思うよ。」 / Twitter
- 酒居敬一さんはTwitterを使っています 「それよりも、御座候でも回転焼きでも今川焼でもない、特定の地域の物を指すことがない一般的な名詞をだれか発明してほしい。御座候とそれ以外を区別したいときに、それ以外を表す名詞が欲しい。」 / Twitter
過剰な変更労力
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「便利な rc.local をパージとか、潔癖 or 原理主義による大きなお世話な変更のたぐい、ロートルな私は閉口すること多いなぁ。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「めんどくさくて、なんでも rc.local に書いちゃうクラスタです」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この件に限らず、潔癖/原理主義者は変更労力を惜しまないが、使えれば良い多数派は「消極的反対だけど、抵抗するのもダルい」という立場。 その非対称性によって、前者が現状を侵食する構造は多くの社会事象に見られる気がする。」 / Twitter
間違った情報の拡散
- LillianさんはTwitterを使っています 「分かっている人間が悪意で嘘をつくより、間違った理解をした不勉強な人間が情報を拡散しようとするのが、結果としては最も広範囲に害を及ぼすと思ってます。 本人は誠実な態度で、有益な情報を広めたいと思っているので、聞いた人が間違っていることを見抜けずに信じてしまう可能性が高いんですよね。」 / Twitter
- mumumuさんはTwitterを使っています 「うぅ…すみません…」 / Twitter
- mumumuさんはTwitterを使っています 「自分のことを棚上げすると、若者向けイベントとかで「アウトプットが大事」って主張するときに、同時にこれも説明すべきだと思う」 / Twitter
- mumumuさんはTwitterを使っています 「お前は間違った情報をアウトプットしとらんのか?→すみません…」 / Twitter
- mumumuさんはTwitterを使っています 「Qiitaのクソ記事を許さない会」 / Twitter
老害
- 7594591200220899443さんはTwitterを使っています 「たとえばgitを捨てられない人はgitにしがみつくしかなくなるし、そうなったらもはや老害に片足突っ込んだも同じである。今、我々が当たり前のように使っているgithub、newrelic、heroku、それらより良いものに明日、乗り換えられるか?常に新しいものを取り込んでいるか?」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「若者の足を引っ張る老害がいるのは事実だし対策も必要だが、過去の経験から言うと別にそれは老害自身が手遅れだからかどうかとはあまり関係ないと感じる。立派に成功した人や教育者にも老害はいた。手遅れだけ分断すれば万事解決という立場には与しがたい。」 / Twitter
- nishio hirokazuさんはTwitterを使っています 「@shyouhei 「Xした方が良い」は、それですべての問題が解決するという主張ではありません。「Xすれば万事解決」とは主張していないので、与しがたいという意見には同意します。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「@nishio はい。まあ若者に近付こうとする大人がそもそも全員ダメという可能性も自分としては感じるので、そういう方向性の主張の一部としてであれば割と納得できます。」 / Twitter
- nishio hirokazuさんはTwitterを使っています 「そういう人は若者が成功しそうになると嫉妬して足を引っ張って「俺が助けなければこいつはダメなんだ」という構図を作ろうとするから、若者のことを最優先で考えるならそういう人を近づけてはいけない」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「環境が違えば俺だってもっといい人生を送れたはずみたいに思ってる人はどうせお前らの人生なんかもう手遅れなんだからそれよりまだ今救えば間に合う若者の人生をどう救っていくかの方を真剣に考えなよ。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「むしろ我々だよ。若者が真に警戒すべきなのはさ。過去に他人に足を引っ張られてきた自覚がある我々。そういう経験が目を曇らせるんだ。「自分の経験が他人にも通用すると勘違いする」ってのが老害の構造なわけじゃん。そこ自分でも最近怖いよ。やっちまってないかな?っていうの。」 / Twitter
時代遅れ
- 7594591200220899443さんはTwitterを使っています 「「まったく同じシステムをPerlやらRubyやらで作るとJavaで作った時の10分の1とかの工数でも余裕で作れる」はさすがに十年前にはすでに鼻で笑われてたような主張で、今更言う人がいる事にそもそも衝撃を受けましたね。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「Bruce TateのFrom Java to Rubyが原著2006年とかだもんねえ。まあ十年前にはもう賞味期限切れてたよね。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「プログラマーは業務の他にずっと勉強していないと時代に取り残される、のだとしても、別に時代遅れだったからといって即死するわけではないのだなあ。なるほどなあ。」 / Twitter
テレビ
- 岡田龍太郎/クーロンさんはTwitterを使っています 「チコちゃんに叱られる、で出てくる知識が不正確かどうかは正直あんまり気にならなくて、「知識がないと叱られる」という精神性がものすごく嫌い。」 / Twitter
- 岡田龍太郎/クーロンさんはTwitterを使っています 「番組のためににわか仕込みで大して重要でもない知識を一つ身につけては、それを知らない人にマウントを取る、という構図、醜すぎるだろと思いますね。」 / Twitter
- 岡田龍太郎/クーロンさんはTwitterを使っています 「まあでも個人的には「モニタリング」に比べると全然見られる。」 / Twitter
- 表現者のために、抽象的なことを|山口尚|note
- ドキュメントを書くときの「メンタルモデルの原則」 - クックパッド開発者ブログ
- 【翻訳】技術的負債という概念の生みの親 Ward Cunningham 自身による説明 - t-wadaのブログ
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256 今読んだこの記事良いです。この記事で言う「ブラックボックス化」というのを意識すると,オリジナルのコンセプトにフォーカスできます。 https://t.co/8ZCiSB9QGW」 / Twitter
- 才能ない人を観察してどうやったらできるようになるか考えてみた|牛尾 剛|note
- Shiro KawaiさんはTwitterを使っています 「初期の恐れを乗り越える、Paulが挙げてない手法のひとつがあって、それは「ノルマを自分で決めてしまう」、例えば1日ひとつづつ何か作る、というのをしばらく続けるのは一定の効果があると思う。うまくできなくてもとにかく今日の分を上げないとならない、と言い訳できる。 https://t.co/AB5mfvCc4N」 / Twitter
- Early Work
- Shiro KawaiさんはTwitterを使っています 「注意点は、ある程度慣れると惰性で量産できる段階に達して、そうなってくると効果が薄れるから、ゴールを設定しなおさないとならない。」 / Twitter
- Vさんのツイート: "そういえばこの間「インターネットで作り上げた自分」と「実際の自分」の技術力の差がすごいあって色々辛い人が存在するという話を聞いた。"
- Shinya KatoさんはTwitterを使っています: 「最近思うんだけど「目標を達成するためのロードマップを描くために必要な情報を集める」ってだけで十分な成果だよなぁって」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「手順は言語化しやすく検索もしやすい。インターネットで公開されていう記事にコンピューターの分野が多いのは、コンピューターを扱っている人が書き手として多いからだけでなく、コンピューターに関する課題には「手順が分かればなんとかなる」ようなものが多いからかもしれない。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「検索エンジンからの流入という「読み手が能動的に情報を取りに行く世界における記事」の話なので、SNSのような世界における書き手には適用できないか。SNSで多いのは何と言っても時事を含むネタだしな…。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「前々職時代、「このコードなんでこうなってるんだろう意味わからん」と思ってgit blameしたら「なんとかを追加」みたいなコメントしかない超でかビッグバンコミットだったんでよく前任者を恨んだけど、ここ数年、新しいものを作るのが主になった今は気持ちがとてもわかる😰」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「幸いその「ここ数年」に私が書いたコードの大半は私しか触っていないので大きな問題はない😅」 / Twitter
- 首相官邸さんはTwitterを使っています 「2050年カーボンニュートラルへの挑戦は、日本の新たな成長戦略です。この挑戦を産業構造や経済社会の発展につなげ、経済と環境の好循環を生み出していきたいと思います。 温暖化対策推進本部を開催し、全閣僚に対し、「地球温暖化対策計画」などの見直しを加速するよう指示しました。 https://t.co/YdH3a31Vwt」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「ソフトウェアエンジニアリングといっても分野が広いので、僕は検索チームとかではあんまり活躍できなかったわ。小気味よく動くものをチョロっと作るみたいなのは得意だけど、データサイエンスっぽいのはいまいちだし。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「世の中実際、銀の弾丸で勝つんじゃなくて、ほとんどは、やるべきことを全部着実にこなして失敗しなかった人が勝つイメージ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「たまたまだけど CPU にせよ何らかのシステム設計に関してもそうなんじゃないの、というか、コンピュータエンジニアってだいたいアムダールの法則なんてだいっきらいだーーーーー わーーーーーんん」 / Twitter
- Hiromitsu TakagiさんはTwitterを使っています 「機械(データ処理)による判断は画一的で結果に偏りが生じて外れ値となった人間の尊厳が阻害されるというのが1970年代の懸念で、データ保護法につながった。 奥平康弘・戸松秀典「国連事務総長報告書(抄)人権と科学技術の開発」ジュリスト 589号(有斐閣, 1975.6.15)105頁 https://t.co/oTXNOfJ7eM」 / Twitter
- Atsushi Oshio / 小塩真司さんはTwitterを使っています 「推薦試験の面接も同じで,受け答えを人間が判断しているだけですよね。その回答と退学に本当に関連があって,そのデータを人間が学習するか機械が学習すれば予測に使えます。人間の場合「こういう受け答えをする受験生は退学するんだよね」みたいな曖昧な直感になり,機械に学習させると確率を出す。」 / Twitter
blog サービス
- Crieit - プログラマー、クリエイターが何でも気軽に書けるコミュニティ
- Zenn|プログラマーのための情報共有コミュニティ
- note ――つくる、つながる、とどける。
- DEV Community 👩💻👨💻
- Hashnode: A one-stop platform to start blogging as a developer.
- Medium – Get smarter about what matters to you.
企業
JR
- やわたじさんはTwitterを使っています 「流石に見に来たわ https://t.co/16Y9asS3gO」 / Twitter
- やわたじさんはTwitterを使っています 「WEST EXPRESS銀河一番列車 京都31番入線 https://t.co/nUhJoCxGZG」 / Twitter
人事
- Tsuyoshi Ide (井手 剛)さんはTwitterを使っています 「伝統的日本企業で、なぜ博士より、無知で無垢な若者の方が好まれるのか。それは年功序列の社内身分制度を前提にしているから。新入り<先輩、という不等式が成り立たないと秩序が乱れる。この不等式は、ビジネス上の市場価値とは無関係で、会社の村社会の秩序だけから来ている。それが問題。」 / Twitter
- Tsuyoshi Ide (井手 剛)さんはTwitterを使っています 「なぜ問題なのか。市場価値より村社会の秩序が優先されるような会社は(国は)、長期的に見て、必ず市場競争に負け、淘汰されるから。それこそ現に日本で起こりつつあること。死にたくなければ、既得権益死守勢力には退場願うしかない。企業はもちろん大学でもそうだよ。」 / Twitter
外資
- とっとと噛む太郎さんはTwitterを使っています 「あー、あと外資と日本企業の決定的な違いは、現場で出来る人を「管理職」にしない、ってことかな。 エンジニアとして優秀だからって、人のマネジメントが上手いとは限らないじゃん。 日本企業って、管理職にしたがるっていうか、そうしないと給与を上げられない仕組みだったりするでしょ。」 / Twitter
- とっとと噛む太郎さんはTwitterを使っています 「外資だと、IC、Individual Contributor、つまり「ヒラ」でも、1,000万、2,000万って珍しくないんじゃない?」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「外資は優秀なICがマネージャにさせられないと思うじゃないですか?外資だって今のマネージャ候補よりもチームにいる優秀なICをマネージャにした方がマシと思ったら、その人がマネージャにならざるをえない状況になるんですよ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「自分がいたチーム、マネージャは全員チーム内の元ICだし、自分もマネージャになりたいなんて一言も言ったことなかったのに、外堀埋められてらマネージャにならざるをえない状況になったけどな。いたチームはUSのチームとの連携をふくめ特殊事情が多かったからというのもある」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「外資の一番の違いはマネージャからICへ戻るパスがあるということと、給料がマネージャよりもICの方が高いかもしれないだけ。自分がマネージャの時にICでももっと給料を上げられる施策をHRと組んで実行してたけど」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「ただ実際マネージャからICに戻るか言えば、元のチームに戻るという事例は半分ないくらいかな?大概別へチーム移籍」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「もし自分会社に残る選択してたら、HQへ転籍しかありえなかったなぁ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「マネージャはICとは別の問題解決能力を問われるので、やったらやったで面白いロールではあった。ただ忍耐力は相当問われるから覚悟を決めてやるべき仕事」 / Twitter
企業文化
- Shinji KonoさんはTwitterを使っています 「この「これも自動化できるのではないか」ってのはTeal的な自律組織の特徴なんだよな。昔の日本な中小企業には普通にあった。破壊した人たちがいるんだよな。 https://t.co/wvJCNarQXe」 / Twitter
- 業務ハックしてクビにならないために|ふらふら|note
- エンジニアに独学を期待するのはもう時代遅れだと思う。 - ヨーロッパで働くIT土方社長のブログ
- Shinji KonoさんはTwitterを使っています 「経済止めてまでっていうけど、特に生活必需品には困ってないじゃん。 今までの消費競争とか無意味な仕事や通勤 がおかしかったってことでしょ。」 / Twitter
- ところてんさんはTwitterを使っています 「結局のところ、DXがわけわからん概念になっているのは、 経産省が2025年の崖レポートで、日本固有の問題をDXの一部だとしてしまったがために、グローバルにおけるDXの定義と、日本のDXの定義がズレてしまっていることにある なので、これを紐解いてあげると簡単な概念になる https://t.co/LyrKVA70bN https://t.co/MJfEGFN8J3」 / Twitter
- きしもとさんはTwitterを使っています 「ここから導き出される結論は、「IT業界」とはソフトウェア科学的な判断とは遊離した謎の予言だけをしてその予言の後始末さえしていないらしい、どこかにあるらしい謎の業界のことを指すらしい、ってことですよね」 / Twitter
- 備玉(36.7℃)さんはTwitterを使っています 「15年前にIT業界で言われてたこと ・開発はGUIベースになりコードは無くなりプログラマは不要になる 10年前にIT業界で言われてたこと ・ITはアジアにオフショアされ国内のプログラマは不要になる 5年前にIT業界で言われてたこと ・AIがコードを書くのでプログラマは不要になる」 / Twitter
- 成瀬さんはTwitterを使っています 「「プログラマ不要!」ってのをひっくり返すと「プログラマは不足してない!」になるわけですが、そう捉えるとΣプロジェクトの「1990年代にはプログラマが60万人不足する!」を思い出しますね」 / Twitter
CTO
- Keiji ARIYAMAさんはTwitterを使っています 「日本CTO協会の件、業界として政治に関わろうとする姿勢はとても良いと思うので、ぼくは今回の取り組みを応援しています。 また、この業界は、誰かの初手がイマイチだった時に厳しく当たりすぎるきらいがあるのは本当に改善した方がいい(Remember COCOA)と思っている。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「話題の提言をなんとなく読み始めたんだけど、「ITサービスで最初から完璧は不可能だからまずは最低限のベータ版を素早く利用者に届ける」という前提と、「技術的負債を生み出さぬようにしなければならない」とう話は、最近になった再発見された「技術的負債」という語の本来の含意にあっていないのでは」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「最初から全部はできないけどまずはリリースするために後で返せるところは負債にしておいて後でちゃんと返せばいい、というのが技術的負債だったはず。それを可能にするのは失敗を許容できる態度であり、透明性が必要なのもそれを可能にするため。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「次の「ソフトウェアファーストな法整備」の項目にある「要求仕様のリファクタリング」という表現も地味に引っかかりがある。法令を要求仕様としたら、これにはテストが書けないので、リファクタリングではなく単なる見直しであるはず。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「このへんのふわっとした用語は、かっちりした文書ではかっちりと使ったほうがいいです。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「少なくとも技術的負債とリファクタリングという専門用語の使い方が間違っているのでは、という指摘は置いておいて、おそらくCTO協会からの提言としてユニークな点は「デジタル庁長官にCTO人材を」にあると読みました。でもこれむしろ「CTO的な役割を置け」なんじゃないかなあ。https://t.co/aEPf70ubNw」 / Twitter
- デジタル庁の創設に向けた提言 | 一般社団法人 日本CTO協会
独禁法訴訟
- イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「Googleは独禁法に違反しているのか?という問題の本質を詳細に解説するとこうなる https://t.co/9BgKVa3TG7」 / Twitter
- Googleは独禁法に違反しているのか?という問題の本質を詳細に解説するとこうなる - GIGAZINE
- イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「"Googleは検索エンジンとしてデフォルトの位置を守り、取引先が競業他社と契約することを防ぐために、毎年、Apple、LG、Motorola、Samsungなどの人気のあるデバイスメーカーを含むディストリビューターや、(略)そしてMozilla、Opera、UCWebなどのブラウザ開発者に数十億ドル(数千億円)を支払います"」 / Twitter
- イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「この訴訟、意図に反してMozillaを潰しそう…という気がしてきた」 / Twitter
- 一ノ瀬 いろはさんはTwitterを使っています 「@syuu1228 未だに大きな収入源ですしねぇ。」 / Twitter
買収その後
- デジタルライブラリーのScribd、SlideShareをLinkedInから買収 - ZDNet Japan
- Welcome SlideShare to the Scribd community — Scribd Blog
- Microsoftが延命したYammerの今後は(上) - Microsoftが延命したYammerの今後は:CIO Magazine
- Microsoftが延命したYammerの今後は(下) - Microsoftが延命したYammerの今後は:CIO Magazine
- 【2018年6月版】プレゼンテーション共有サービス『Speaker Deck』の使い方 - 八雲文庫ブログ
- Fewer and Faster - Measure, Improve and Repeat
- 伊津野 英克さんはTwitterを使っています 「アジャイルソフトウェア宣言にはすごく同意するんだけど、結局、要件や仕様を決めるというソフトウェア開発の外部性が無視されている、あるいはそこに情熱がある人がいるという前提が抜けてんだろうね。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「大規模業務システムのPMだとプロジェクト終わるまで実際の画面を触ってみたことない人もいるし、それは客側も同様。」 / Twitter
教育・学習・スキル
体系化するスキル
- nishio hirokazuさんはTwitterを使っています 「これ重要なポイントで「体系的に学びたい」って言う人「誰かが体系化したものを鵜呑みにしたい」って言ってるも同然で、それで学んだ気になっても新しいものを体系化するスキルはまったく身についてない」 / Twitter
- 徳丸 浩さんはTwitterを使っています 「…一方、かつて上野宣(@sen_u)から、「なぜ徳丸は徳丸本が書けたのか」と質問されたことがあったのだけど、その時は答えられなかったけど、たぶん「徳丸が効率の悪い勉強法をし続けたので、自力で体系化する力が備わったから」ではないかと思う。当時ウェブセキュリティは体系化されていなかった…」 / Twitter
- 徳丸 浩さんはTwitterを使っています 「…なので、「効率の良い学習法」を聞かれたら、「それは大学のしかるべき学科に行って勉強してください。それ以上の方法はない」と答えます。いろいろな事情でそれができない場合は、たぶんの一つの答えはなくて、目標やら使える資源ならで変わりますね。漠然と質問されても答えられない。」 / Twitter
- nishio hirokazuさんはTwitterを使っています 「短期的に見ると効率が良く見えるが、それは「体系化するスキル」を習得するためのコストを支払ってないから支払いコストが安く見えるだけである」 / Twitter
プログラミング教育
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「プログラミング教育は数学に含めたほうが良い,は少なくとも数十年前からよくある意見で,実際に日本の高校数学教科書や,確かセンター試験数学にも含まれていた時期がありますが,日本の教育現場では残念ながらほぼ絶滅(?)したような.」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「絶滅」(?)した原因はいろいろあるかもしれませんが,やっぱり「数学とCS・プログラミングは共通部分も空ではないけど包含関係にはない」で,その包含されない部分の中核が「手続き」という理解.「計算」量とか,「計算手続き」の記述たる「プログラミング言語」とか.」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/JTdGG3lCfy」 / Twitter
- 高等学校共通教科情報科の大学入学共通テストでの実施に関する意見-情報処理学会
- 大学入学共通テストへの「情報」の出題について-情報処理学会
- 大学入学共通テストにおける教科「情報」の出題について | JSET NEWS | 日本教育工学会(JSET)
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@awellbottom https://t.co/bPYg7qbZmz とか https://t.co/IgLtwhathh とか https://t.co/i3p7Vr6kun とか声明が出ていますよね.」 / Twitter
- 原田 康徳(ビスケットスクール開講!)さんはTwitterを使っています 「@esumii 僕はプログラミングの数学以外の部分こそがコンピュータの大衆化のキモだと思ってます.たとえば,HTMLを守らないで解像度固定でWebを作ったり,神EXCELだったり.こっちをCS側はもっと真面目にとりくむべきで,それがviscuitの立場です.」 / Twitter
- 原田 康徳(ビスケットスクール開講!)さんはTwitterを使っています 「@esumii なので「プログラミング的思考」だとその側面が欠けているので,僕は「表現としてのプログラミング」も大事だと言ってます.それがいま小学校でビスケットがいろんな授業で使われている理由です.」 / Twitter
- 原田 康徳(ビスケットスクール開講!)さんはTwitterを使っています 「@esumii 表現の立場から見たときに,うちの渡辺さんは,いま執筆中の学位論文で,先生方の「手になじむ」という言い方をしています. https://t.co/N5vczA1Fyq」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@viscuit ありがとうございます.そういう部分も「プログラミング的思考」(≠「数学」)から排除されているものではないと思いますが,芸術表現等としての側面も確かに重要ですね!」 / Twitter
- Genichi KataokaさんはTwitterを使っています 「ITリテラシーって、「今知っている」ことより、見たこともないものも忌避せず使ってみるとか、知らないこともとりあえず調べてわかった範囲でやってみるとか、そういう姿勢のほうがずっと大切なんだな、ということを最近実感している。」 / Twitter
背景、原理、哲学的な意味を理解
- ytakanoさんはTwitterを使っています 「いい話。プログラミングも、手順だけじゃ無くて、背景、原理、哲学的な意味を理解してほしい。そうじゃないとエンジニアではなく、チェンジニアになってしまう。」 / Twitter
- MERさんはTwitterを使っています 「先日の講習会で根上先生が提示されていた「高校数学の負の影響」。非常勤先の工学部で教職課程とる学生さんたちに長く教えて見えてきたとのこと。数学を入試に使った学生さんでもこうなることにとても危機感を覚えているようでした。一つの大学の事例とはいえ、中高教員としては常に自戒したい実態。 https://t.co/uxzLApZTw2」 / Twitter
- MERさんはTwitterを使っています 「なお、先生は高校の数学授業を やり方を習う→そのやり方を練習する→そのやり方でできる問題を解く と見ていて、こうなるのはわかるが、意味の理解不足や学ぶ必要感不足を問題視されてました。要するに「上のやり方だと数学的に考える学生は(滅多に)育たない」と仰りたいのだと理解してます。」 / Twitter
- クロ・コーシさんはTwitterを使っています 「@MathEdr ものすごく同感します 個人的には小学生に◯✖️がすぐつく問題をさせるの禁止にすればと思ってます わかったかどうかより、あってるかどうかを気にする子が多すぎる…」 / Twitter
- thick_doomieさんはTwitterを使っています 「@MathEdr 大学受験を突破するにはそれが良いんですけどね」 / Twitter
- yamazaksさんはTwitterを使っています 「@MathEdr 中高でこれをしているところには猛省を促したいところですが、高校どころか初等教育の問題です。 小学校で6年かけて「理論的な正しさより、先生の言う通りに書かないと不正解」を叩き込まれてくる生徒がいるので、その呪縛を取るのには大変時間と労力がかかります。」 / Twitter
- さやか|オーガニック八百屋@東麻布さんはTwitterを使っています 「@MathEdr @manabist171 都合の良い構造を仮定する。。。に爆笑🤣問題として出されてる以上、それなりのスッキリした答えになるのでは?って言う小賢しさ!!(わたしもテストで考えたことあるなぁ。。。)」 / Twitter
- thick_doomieさんはTwitterを使っています 「@sayaka_merry @MathEdr @manabist171 逆に4択問題が全部Bとかだと不安になる」 / Twitter
教育
- ジロウさんはTwitterを使っています 「性にしても姓にしても、「自分の信じる価値観以外の価値観もOKになる」こと自体が耐えがたいストレスになる人がわりと多くて、自由や多様性そのものが人間にとってストレスをかける(不安にする)ということをスルーしていると、なかなかこれ以上前には進まないんじゃないかという気もしている。」 / Twitter
- 勝川 俊雄さんはTwitterを使っています 「リスクはゼロでも無限大でもないということや、様々なリスクが存在し、それらは往々にしてトレードオフの関係にあるということを理解できない人が多いですね。これは教育の失敗なので、リスク管理の考え方を学ぶ機会を作るべきと思います。」 / Twitter
- ytbさんはTwitterを使っています 「よく「学校で論理学を教えないから学生は論理的思考ができない」と言う人がいますが、論理学は人に論理的思考法を教える学問ではありません。論理的思考法そのものは論理学以外でも身につきます。 何をすれば「論理的思考」と言われるものをしたことになるのか、その条件を問うところです。」 / Twitter
- koji_nijikoさんはTwitterを使っています 「@ytb_at_twt @TigerSophia61 クリティカルシンキングってひと頃流行りましたが、何のことか説明できるひとは?と。」 / Twitter
- HBさんはTwitterを使っています 「@ytb_at_twt 教えるんやったらコンサルが使ってるような「思考のフレームワーク」使った方がいいやろな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「スタンフォードの授業で「え、ここまでそれわかってなくて聞いてたの?」という質問をしてる生徒はかなりいたし、教える方は驚くこともなく普通にそういう基本的な質問に答えていたので、ああいうのは見習いたい(どちら側も)。」 / Twitter
IPA
- hsjoihsさんはTwitterを使っています 「あー、そういう経緯で問題発生時に解決を図るための仕組みが2020年度は増えていたのですね。納得です」 / Twitter
- hsjoihsさんはTwitterを使っています 「2020年度に参加したとき「2018年度には影も形も存在しなかったやたら気合い入ったハラスメント通報システムが構築されてるな。問題発生時に解決を図る仕組みが整備されているのはとても素晴らしいことだけど、わざわざここまでしっかりやるということは何らかの前例あったのでは」とは実際少々思ってた」 / Twitter
- hikaliumさんはTwitterを使っています 「この件、正確に書いておくと、昨年の話ではなく、2019年の話です。(従って、昨年からシステムソフトウエア自作トラックのプロデューサーを担当されている @uchan_nos 氏は本件とは関係ありませんし、現在はこのような問題が発生した際にスムーズに対応できるよう仕組みが整備されています。念の為。)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「某キャンでCコンパイラゼミがなくなったのは、講師の上下関係(というほどのものは本来ないはずだが)でひどいイジメというか精神的追い込みがあったからですね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「子供(大学生含む)にはニコニコしてるとか、自分を師と仰ぐひとたちには慕われているみたいなのと、自分の下の人間(みたいな階層はないはずだけど)が少しでも気に食わないことをすると、ブラック企業の理不尽上司かというレベルで執拗に追い込むみたいな二面性って両立するんですねぇ・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「全員にとってあまりにも意外だったので対処がグダグダで、結局運営の方々には真剣に対処してもらえたとは思うけど、成り行き上さすがに続けるのが無理なのは仕方がないと思うのでご理解ください。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「この時期の某キャンの自分の周辺では「自分は応募倍率しか評価しません。中身は関係ありません。とにかく応募者を集めてください」と、営業マンの成績表みたいなものが掲示板に貼られて、繰り返し発破をかけられた講師がダービーさせられてたんだよな。ここらへんでやばさに気づくべきであった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「応募してくれるひとのこともバカにしている話である(が、そういうことをいった人がめちゃくちゃ反撃されているのとかを見ると、まあ何か言うのは難しい)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「そもそも応募者集めは講師の仕事ではないし、広報にはそりゃ協力するけど、「倍率が低いですよ! 来年から首にするかもしれませんよ! 真剣にやってください!!」みたいに詰められたりするのはほんと何って感じだし・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「他にもひたすら個人攻撃をして、私はあなたのためを思って、私が言っていることをあなたがやるまでまで私は叩き続けます、みたいなことをやったり・・って、なんというか今から思うとほんと意味不明で、これを読んでる人もこのスレの意味よくわからんな・・となっているんでしょうけど・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「念の為に言っておくと、そういうハラスメントをする人はごく一部で、管理体制の穴になっていたみたいですが、その後体制も改善されたようですので、今は理不尽な扱いを受けたときにはちゃんと対処してもらえると思います。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「ちゃんと対処してもらえない場合は、理不尽さには勝てないので、正そうとせずにさっさと逃げたほうがいいですね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「某キャンではないな、セキュリティ・キャンプですね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「「授業の内容も応募の内容も私は一切評価しません、応募倍率のみを評価します」と言われて、さすがにそれは本末転倒ではと言うと面罵される、みたいな意味不明なことをされていた。やっぱり改めて考えてみても完全におかしいよな・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「セキュキャンの話は2019年の話で、現役で教えている方(特に内田さん)は無関係(単に問題の人のツリーに属していない)か、むしろ被害を被ったほうですので、誤解なきよう・・(普通に内田さんは人格者です)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なぜ2年前のことを書いているかと言うと、また募集の時期がきて、何回も人格否定されていたのがフラッシュバックしたのと、なぜ悪意を持って人を攻撃する人が放置されてみんなが叩かれ続けなければならなかったのかという気持ちがこみ上げてきたからですね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「こういうことはあんまり書かないようにしていたのだけど、まあついに書いてしまったな。しかしその後運営も改善されたようですし、あんまり生産的でもないと思いますので、これくらいにします。」 / Twitter
- セキュリティ・キャンプ全国大会2018 プログラム:IPA 独立行政法人 情報処理推進機構
- セキュリティ・キャンプ全国大会2019 プログラム:IPA 独立行政法人 情報処理推進機構
- セキュリティ・キャンプ全国大会2020オンライン プログラム:IPA 独立行政法人 情報処理推進機構
- セキュリティ・キャンプ全国大会2021 オンライン プログラム:IPA 独立行政法人 情報処理推進機構
- Miura HidekiさんはTwitterを使っています 「いわゆる外面がいいって奴ですよね。凄くいっぱいいますよ(うちの親父もそうだった)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「身近に外面がいい人物がいたため、いくら社会的に評価が高くても、それだけでは完全な善人だとは思えなくなった。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 そもそもの「善人」「悪人」って基準は主観ですからね。「万人に対して善人」という行為自体も客観的には定義できない可能性すらあったり。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki 私の親父は大体誰に言わせてもいい人だったという評価を聞きます。相当ストレスがたまっていたんでしょうね。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 DV方面で話に聞くようなパターンですね...。うちの父はたぶん敵は作っているので外面が良いタイプではないです。商業的サービスの客として横柄だったりしますので :)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki DVとかは無かったですけどね。店とかでもよい客でした」 / Twitter
- hikaliumさんはTwitterを使っています 「セキュキャンのハラスメント防止宣言とCode of Conductが協議会のページで公開されたみたい。きちんと仕組みが整備されて、さらに外部に向けてもその内容が公開されたのは素直に良いことだと思う。(もちろん、これを実際にちゃんと回していく必要はあるけれどね。) #seccamp https://t.co/jBiQh7u9ko」 / Twitter
- セキュリティ・キャンプ協議会
評価基準
- Miura HidekiさんはTwitterを使っています 「学校って多様性とか個性とか言いつつ、きっちり全順序の評価基準を設定しているよね。社会もそうだけど」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 シリアライズしないと処理しきれないだけかと。ベストチームを編成する、みたいな場合にはシリアライズでうまくいかないってのは予想はつくけど組み合わせは爆発するから...」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki シリアライズして順位を付けてその順位で態度を変えるのは 処理しきれないに入りますか?」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 態度を変えるってのはまた別の問題で、そういう人は明確な順位つけなくとも理由をつけて態度変えるんじゃないでしょうか。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki たしかにそんな気がする」 / Twitter
裾野の涵養
- おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「ドローンにしても半導体にしても、その他の技術的な諸々ほとんど全ての「日本製」にロクなものがないんだよ。 それは、「裾野の涵養」を怠った結果だ。「○○については××研究所がやってる」じゃねーんだよ。それでは足りないんだよ。全てのことに「裾野の涵養」が足りてないんだよ。」 / Twitter
- おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「技術なんてのは、「世界的先端的研究所が1つある」ことより「その辺のガキが遊戯として遊んでる」ことの方が「未来」があるんだよ。「毎年××の大会があってママ達の目の色が変わってる」とかさ。 そーゆーのが「裾野の涵養」だよ。」 / Twitter
- おごちゃん™ / お仕事お待ちしておりますさんはTwitterを使っています 「ガキの興味を育み、そのための環境を整える。 これがおっさんどもの責務だと思う。 そして、女の子にも「女だてらに」とか否定しないこと。やりたい子にはやらせる。 日本の未来を心配するなら、こういったことを意識すべし。」 / Twitter
- Chuck TimberさんはTwitterを使っています 「半導体は,このあいだ経産省のなんとか課の課長が来て話してたけど,いまやってる研究所のアイテムを拾ってカタログにしてるだけだった.お金も2000億円つけるとかいってたけど,桁違いで足りない. まず先に,初ラ や ラ製 や EL が普通にある世の中に戻さないと.」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「目に浮かぶ…orz」 / Twitter
- もなかさんはTwitterを使っています 「「死に体の半導体業界ニッポン2021」とくに「ハンパにスジが悪い施策しか投入できず業界を凋落に導いた経産省」に 「裾野が大事!」 とかいうとなぁ…。 \国産 Raspberry Pi を GIGA スクールの目玉に/ とか言い出しかねないのでなぁ…。」 / Twitter
- もなかさんはTwitterを使っています 「そしてそれに乗ってくる国産半導体業界の姿も見えるのでなぁ…。圧倒的に出遅れた Arduino 互換ボードとかな…。(実名は挙げない)」 / Twitter
- 競技プログラミングの在り方 ~「競技プログラミングを我々が終わらせる」を受けて~ - chokudaiのブログ
- songmuさんはTwitterを使っています 「基本情報、MTTRとMTBF、RDBの正規化、OSI参照モデル、計算量、2進法とビット演算、などが網羅されてるので、何気にお得なのでは?」 / Twitter
- monaqaさんはTwitterを使っています 「これはいつも思ってるんですけど、科学的なリテラシーってのは「与えられた記事の真偽をすぐ見抜ける」ことじゃないんですよね。「与えられた記事が科学的に価値ある情報を含んでいるか判断できる」ことなんです。前者を目指そうとしてる人がいたらそれは筋が悪くて、本当に目指すべきは後者なんですよ」 / Twitter
- 出来るプログラマーやエンジニアの方でも「何をやっているか分からない」「何が分からないか分からない」状態に陥りますか?その時は、どの様にして対処・解決しますか?に対するYuki Sonodaさんの回答 - Quora
- Shiro KawaiさんはTwitterを使っています 「「登場人物の気持ち」については考えるに値する問題で(役者は常に考えてる)、回答に良し悪しは確実に存在する。「その解釈は無理ありすぎるだろ」から「作品に新たな光を当てる素晴らしい解釈」まで。まずいのはひとつの正解を当てるゲームにしてしまうことじゃないかと。」 / Twitter
- 河野真太郎/Shintaro Kono『暗い世界』発売中!さんはTwitterを使っています 「@mineotakamura @Cristoforou とりあえずこちらでしょうか。遠藤周作が自分の作品を使った入試問題(作者ではなく登場人物の気持ちを4択、みたいな)について全部正解だと言った話とか。https://t.co/85E7HE6t1r」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「解釈というか、演技では"choice"というんだけど。」 / Twitter
研究・論文
科学の発展
- Shinji KonoさんはTwitterを使っています 「間違いを正していくのが科学なのに間違ってる論文を撤回してしまったらダングリングポインタになると思うんだが。解法よりも問題提議の方が発展性があり重要なので、間違ってるというより問題提議した論文というのが良い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「科学ってのは正しいものの積み重ねて単調増加していくようなものとは違う。互いに相容れない理論が同時に進んでいく。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「矛盾からはなんでも出るのだが、矛盾を含む理論でも、矛盾のない部分を切り出すことができる。それを見つけるのは難しい。集合論でも矛盾を突きつけたカントルに対する風当たりはかなり強かった。ラッセルはうまく立ち回ったのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「科学は疑うからこそ科学なのであって、信じてる科学者は科学者じゃない。否定を信じるのもあり得ない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「科学技術系では再発見ってのがあるので、昔あるってだけで研究をやめるのは良くない。今と昔ではパラメーターが違う。そういう風に昔の論文から今のが研究のアイデアを探すのも可。」 / Twitter
- jicchoさんはTwitterを使っています 「「でもテストとは違って、研究には正解がない。 失敗を積み重ねて、少しでも良い答えを見つけていくしかない。 だからうまくいかなかったとしても、そのぶん研究は進むから良いのだ。」 試行錯誤の結果、うまくいかなくても、そのぶん研究は進んでいるんだよね。 最近やっと分かってきたような気がする」 / Twitter
- 森野キートスさんはTwitterを使っています 「研究で失敗するのが怖い - いつか博士になる人へ https://t.co/bdhQlW7oQu」 / Twitter
- 研究で失敗するのが怖い - いつか博士になる人へ
- Tsuyoshi MiyakawaさんはTwitterを使っています 「知らなかったのですが、電気が発見(?)される前まで、ロウソクの改良のための改善に多額の投資がなされていたそうです。日本の科学への投資の現状というのは、まさに「ロウソクの改良」を目指している感じではないかと。 「ロウソクの改良」 使えるフレーズですね。」 / Twitter
- Tsuyoshi MiyakawaさんはTwitterを使っています 「「科学の歴史をいろいろと詳しく調べてみると、実は、私たちの生活を本当に変えた大発見の大部分は、その問題を解決しようとしている人たちによって成し遂げられたものではない、ということがわかります。」」 / Twitter
誰もやっていないところをやる
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「大隅先生「みんながやっていると怖くない,というのが科学にも入ってきている」 #役に立たない科学が役に立つ」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「誰もやっていないところをやる」ではなく「価値が認められるとわかっている部分を誰よりも先にやる」の傾向が強かったのは何となく学生時代にも感じていた... 僕は科学者じゃないですが,「自分がやらなくてもどうせ成熟するだろう」と思う仕事には手を出さないようにしよう.」 / Twitter
バンディットの理論
- 加藤さんはTwitterを使っています 「そこに指導教官らしき人物の「正直であるならば,我々の手法よりももっと簡単に実装できて,性能も良いアルゴリズムがあることを言うべきだが」的なコメントもあって,さらに闇を感じた. https://t.co/xeqR6piSbL」 / Twitter
- 加藤さんはTwitterを使っています 「バンディットの理論でもっとも重視されている論文のとある一本(2016年から300引用されている),arXivからそのlatexコードを落としてみたら,コメントアウトされた実験結果があって,その結果を見ると提案手法がむちゃくちゃ悪くて,闇を感じた.」 / Twitter
- 加藤さんはTwitterを使っています 「その論文の手法を拡張した研究も,ICMLやNeurIPSに何本も通っているのだけれど,全て実験が怪しいことになるかもしれない.」 / Twitter
histric-1
- Shinji KonoさんはTwitterを使っています 「少しでも新しい問題が出ると手も足も出ない。そうならないような授業をしてるつもりだが、そこを突破できるのは1/10くらいな感じ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「授業中でも、わざと自分の知らない部分に突っ込んでいくのが好きなのはそういう狙いもあるけど、自分が面白がってやってるだけでもある。そこで行き詰まったりしてるのを心良く思わない学生もいるだろうな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「基礎からやるってのが間違ってる。それでは目標がない。最初にボスに当たって、それから必要な基礎をやるんだよ。基礎は無限にあるから優先順位がないと死ぬ。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 新規性は,闇雲に追求しても着想できるものではありません。先行研究を踏まえて,それで出来ていないことをあげていきます。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 新しく作るのはコンセプトやテーマが決まってからですね。」 / Twitter
- Sho YokoiさんはTwitterを使っています 「専門に近い話題ほど、普通の人よりずっと正確な知識を持っているはずなのに「迂闊なことは言えないぞ」感が増し、公の場で書けなくなる。一方で専門から離れた話題では経験と直観に任せて「俺の思い」を綴れてしまう(教育とか心理とかね)。…そしてインターネットには今日も床屋政談が溢れる。」 / Twitter
- Sho YokoiさんはTwitterを使っています 「病状が一歩進むと、ただの雑談であっても「この単語はどこかの世界ではテクニカル・タームなのでは?用法は問題ないだろうか?」などと疑いはじめ、ツイートの負荷はぐんぐん増加し、ついには駄洒落を言うか「にゃーん」とつぶやくだけのアカウントが爆誕する。」 / Twitter
- なんで論文なんか書くのか - いつか博士になる人へ
- 森野キートスさんはTwitterを使っています 「研究の進捗報告で意識するといいこと ・やったことを説明する前に、何が知りたくてやったのか言う ・方法の説明は、有名な方法との違いを言うとわかりやすいし勉強になる ・結果を説明する前に、どんな結果になると予想してたか言う ・データを見せたら、その解釈を言う」 / Twitter
- 森野キートスさんはTwitterを使っています 「研究をどこまででまとめるか、最後は自分で決めるしかない。10年後また読んだときに、自分で恥ずかしくない論文が書けたらそれでいいと思う。学生のうちにいろんな人の論文を読むといい。ここが好きとか嫌いとか思うのがいい。自分の判断基準を作るのが大事だと思う」 / Twitter
- jicchoさんはTwitterを使っています 「論文投稿した直後に論文整理するの結構いいかもしれないな」 / Twitter
- 森野キートスさんはTwitterを使っています 「卒業研究は不安になるのが普通だと思う。初めてやるわけだし。うまくいかないのも普通。簡単にうまくいくなら研究する意味があまりない。自分は何もわかってないとか、もっと勉強しないと、とか思ったら、卒研はほぼ成功してると思う。自分が知らないことや知るべきことがわかるほど学んだということ」 / Twitter
- 文化勲章を受章した私が、83歳になっても研究を楽しめる理由(甘利 俊一) | ブルーバックス | 講談社(1/2)
- 岩田健太郎 Kentaro IwataさんはTwitterを使っています 「独学には独学の価値があります。が、独学には陥穽が多いのもまた事実。それは知識の多寡の問題ではありません。例外はありますが、独学者は意欲に優れ、自信家で(自信がなければ独学なんてしません)、勤勉で勉強熱心だったりします。問題は「知っていること」ではなく「知らないことを知らないこと」」 / Twitter
- 競争的研究費における各種事務手続き等に係る統一ルールについて - toitsu_rule_r30305.pdf
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「そしてその製薬メーカーさんの技術力の凄さは、そんな有象無象の論文から重要な知見を取り出して実際に製薬に応用することができるところ。研究のビジネス応用は、論文を書く研究者だけの問題ではないということ。 https://t.co/d9JN80tFz1」 / Twitter
- 理系の人が研究室や実験、といいますが、そこらの学生がやる意味があるんですか?二流三流大学の研究とは、すでに発表されていることの単なる確認やトレースではないのですか?に対する藤巻 充 (Mitsuru Fujimaki)さんの回答 - Quora
- るくすさんはTwitterを使っています 「大学院時代、イノベーションの研究って何(笑)つってクソ馬鹿にしてたけど今になって割とまともな講義してたんだなって思い始めました ごめんな()」 / Twitter
- CLINAMEN @cosmologyさんはTwitterを使っています 「研究,脊髄反射的な思いつき程度でこうなりそうって思ったことって,とっくの昔に誰かがやり終えてるか,そもそも思い違いのどっちかだな.ここをどう乗り越えていくかが第一のハードルっぽい.あまり焦らずじっくりいくか.ここさえ越えられれば自力で成果出せるようになるのだしな.」 / Twitter
- ここ最近の計算社会科学の動向 - Sansan Builders Blog
- おしぼりさんはTwitterを使っています 「論文を読んでいるとググるだけじゃ見つけにくい情報がかなり見つかるのだけど、なぜこれをまとめたりする人がいないのだろう。著作権とかの問題があるのかな。」 / Twitter
- mumumuさんはTwitterを使っています 「@oshiborii モチベーションの問題ではないですかね?論文は出版物として評価されるし,ある程度信頼できる著作物として扱われますが,個人ブログは仮に有益であっても,業績にはカウントされにくいので... 個人のメモはともかく,時間をかけて調べたなら,せっかくなら業績にしたいという気持ちも理解できます.」 / Twitter
- Hideshi KagawaさんはTwitterを使っています 「「基礎研究は役に立たない」というのがよくわかんないのですが、我々応用研究開発しかしてないので、なにかあると基礎研究者のところへ教えを請いに行くわけで、聞きに行くところがあって良かった。日本って凄いな。と毎回思います。基礎研究は宇宙に役に立っていると積極的な発言が重要です。」 / Twitter
- norioさんはTwitterを使っています 「そもそも、論文書いてなくても、大学とか出て無くても 立派な研究をしてる人は一杯いる。 それを分かってない人が、あまりにも多過ぎなんですよ 肩書しか信用してない。 本当は言いたくないけど、 つまり肩書でしか判断出来ないアホしかいない」 / Twitter
- 【悲報】尾身会長をディスった茂木健一郎、「Google scholar」で論文を検索され実績がバレる | まとめまとめ
- Akinori ItoさんはTwitterを使っています 「その昔は夜中まで教授が激詰めゼミをやったりすることがままあったが、どうしてそんなに暇だったのか いまは半日もゼミやってる暇ないよ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「深夜12時から始まるゼミは激詰めゼミなんだろうか?JAISTで結構あった記憶がある」 / Twitter
- ytakanoさんはTwitterを使っています 「オリンピックは役に立たない事にジャブジャブ金・人・時間を使って良い事を示してくれて活力を与えてくれた。」 / Twitter
- ytakanoさんはTwitterを使っています 「役立たない研究にもジャブジャブ金・人・時間を使っていくぞ!」 / Twitter
- jicchoさんはTwitterを使っています 「良い資料だ。 自分も向上心を絶えず燃やし続けたい。 https://t.co/9vPizTn197」 / Twitter
- hara75.pdf
- 研究で詰まっている時におススメな本 - Seitaro Shinagawaの雑記帳
- 一流論文誌に採択される 研究戦略と論文執筆 - 2-3-1_washio.pdf
- ザキ研の研究室運営の今 2021年版 〜ZACKY's Laboratory 強み x 教育 研究室
- くとのさんはTwitterを使っています 「いろいろ作業していてふと思ったのですが、「余技の多い」人が本当に減ったなぁと感じます。約20年、抱えたままで引き継ぎできない雑用が多い一因が、人数削減とともに多分これ。(人文系に限ったことならよいのですけど)」 / Twitter
- くとのさんはTwitterを使っています 「評価が専門の研究に全振りされたから当然ではあるのですが、その結果、人数削減も相まってタコツボ化が進行し新しい研究も出てこない、教育も劣化するという悪循環になっていないか、という話です。(人数削減&業務増大で仕事が回らなくなったというだけでは説明が付かない何かがありそう)」 / Twitter
OSS
Open-source intelligence
- Masayuki HattaさんはTwitterを使っています 「つうか、厳密にはインテリジェンスの文脈でのOpen SourceのほうがソフトウェアのOpen Sourceより初出は早いよ」 / Twitter
- yosuke tanakaさんはTwitterを使っています 「https://t.co/epxAvDvH7t オープンソースインテリジェンスの記事を読んでいると、ソースをソースコードと決めつけるのも狭量だなという気がしてきた。「源」が公開されてるだけなんだからニュースソースやリソースの源とかでもいい。」 / Twitter
- Open-source intelligence - Wikipedia
- Masayuki HattaさんはTwitterを使っています 「ソフトウェアの文脈でのOpen Sourceという言葉が出来たのは1998年くらいだけど、例えば1995年の時点でOpen Source Intelligenceの論文ある https://t.co/91DKxhdT2z」 / Twitter
- STRATINT OSINT MIL.pdf
Code of Conduct
- Kazuho OkuさんはTwitterを使っています 「えっそうなのかな。今のやつはだいたい 2014 年頃からのカンファレンスでの問題に由来する系のものだと思ってた cf. https://t.co/5PG6H3a4iQ」 / Twitter
- The New Normal: Codes of Conduct in 2015 and Beyond by Coraline Ada Ehmke | Model View Culture
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「今では割とみかけるCode of Conductってのは、オープンソースの世界ではUbuntuが元祖なのだろうと思う。まあ、他にもあったのかもしれないが、2006年あたりの当時、Debianという世界でのフレームがあまりにひどい状態になって、そこへ救世主のようにやってきたので一気に受け入れられたのだろう。」 / Twitter
- Shuji SadoさんはTwitterを使っています 「俺オープンソースの話題が出ると思うことだが、単に定義があるので正しく使おう、ということではなく、当時の有力開発者、著名人(RMS除く)が揃って今後はオープンソースという新語を使っていくと宣言したプロセスを踏まえてほしいなと思う。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「オープンソースという概念が最初にあってOSIが出来たのではなくて、ソースコードの共有文化が最初にあり、それを開発者ごとロックインしたプロプライエタリソフトウェアが発生し、これに対抗するためのフリーソフトウェア活動が生まれ、」 / Twitter
- https://twitter.com/mhiramat/status/1301686434382766080
- History of the OSI | Open Source Initiative
- https://twitter.com/mhiramat/status/1301690040855089152
- Free and open-source software - Wikipedia
- ママレモンサワーさんはTwitterを使っています 「オープンソースの定義がどうこうの話時々聞くけどあれでどうにかなるのは著作権の話で、それとは別にパテントの問題が出てくるよね?」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「あの商標登録は「誰かがオープンソースという名称で登録して、この言葉を独占的に使おうとするアクションを起こされないように」という予防的な目的のみで行われているはずで、「オープンソース」という言葉の定義に権威を与える目的ではないはずだし、そもそもそんな機能は商標にはない。」 / Twitter
- https://twitter.com/kazuho/status/1302547623803379712
- https://twitter.com/kazuho/status/1302548910095777794
- https://twitter.com/kazuho/status/1302550762078105600
- https://twitter.com/kazuho/status/1302551524971696129
- https://twitter.com/kazuho/status/1302556326078234630
- https://twitter.com/kazuho/status/1302556975658487809
- https://twitter.com/n_soda/status/1302558887002873856
- Open Source Certification:Press Releases | Open Source Initiative
- 私とOSSの25年
- Kazuho OkuさんはTwitterを使っています 「そうそう。改変の自由であって、改変をレビューしてもらう権利でもマージしてもらう権利でもないという」 / Twitter
- 徳永広夢さんはTwitterを使っています 「OSS は fork どんどんできるのが醍醐味なのに~」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「最近、OS作ったとか言語作ったとかそういう人多すぎて界隈怖いのよね。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「「OSS活動」という表現がしばしば「既存の大きいライブラリや処理系などのソフトウェアにcontributeすること」*のみ* を指していて「ゼロから(多くの人が使える)大きいソフトウェアを実装していくこと」を含んでいないであろう使われ方をしているの若干片手落ちな感じがしないでもない」 / Twitter
IT
セキュリティ
- ドコモ口座問題 - OAuth.jp
- MiyahanさんはTwitterを使っています 「大企業でありがちな「面倒になるだけで効果がほぼ無い(どころかむしろ悪化する」セキュリティ施策を海外では "security theater" (劇場型セキュリティ)と呼ぶと知りセンスあるなぁと関心している。 日本語の "セキュリティごっこ" も極めて的を射ているが毒が強すぎて当事者への説得に使えないのが難」 / Twitter
システム障害
- 「絶対落ちないシステムを作れ」という要件に、開発者たちはどう対応したのか。東証arrowheadの当事者が語る - Publickey
- 東証、障害の原因を特定 設定値に不備、切り替え失敗 - ITmedia ビジネスオンライン
- 品川 高廣さんはTwitterを使っています 「東証のシステム障害の原因が設定ミスと聞いて、ああよくあることだねとしか言えない。https://t.co/sKKKoWe2ro」 / Twitter
- An empirical study on configuration errors in commercial and open source systems | Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles
- hrk先生さんはTwitterを使っています 「@utshina2 問題は、各パーツは品質が良いので多様な故障発生状況をあらかじめテストすることができないことと思います。故障解析で、通ってないパスが沢山あるのじゃないかな? 故障率が10000倍高いメモリとかストレージとかプロセッサチップが出来れば貢献するのかな?」 / Twitter
- 品川 高廣さんはTwitterを使っています 「@Prof_hrk 最近は software fault injection でソフトウェア的に擬似的な故障を発生させてエラー処理を検証する研究も幾つかなされていますね。手前味噌ながら、我々も BitVisor で実ハードウェア環境で疑似故障を挿入する研究をやっていました。https://t.co/yEaP5w4OXW https://t.co/u2AycsJCkf」 / Twitter
- Testing device drivers against hardware failures in real environments | Proceedings of the 31st Annual ACM Symposium on Applied Computing
- FaultVisor2: Testing Hypervisor Device Drivers Against Real Hardware Failures - IEEE Conference Publication
- hrk先生さんはTwitterを使っています 「@utshina2 それは知っているのですが、ソフトウェアは知っている壊れ方しか再現・擬似実現しないというところに限界があると思っています。 プロセッサ設計でも、ここが危ないと思ったところには普通バグが入らないです。」 / Twitter
- 品川 高廣さんはTwitterを使っています 「@Prof_hrk メモリの壊れ方を調べた empirical study はあるようですが(https://t.co/fwGYHNBfW8 等)、プロセッサの壊れ方を調べた論文はざっと見た限りはあまり見つからないですね。普通はあまり壊れなさそうな気がしますが、どんな壊れ方をするんでしょうか?」 / Twitter
- dsn07.dvi - hotdep2007.pdf
- (1) hrk先生さんはTwitterを使っています 「@utshina2 一番あるのは浮動小数点が温度や電圧の都合で値化けすること。次はPCIE等のI/Fかな?マザーボードによっては同じく温度・電圧でご機嫌がでそう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味深い。 同じCPU内で、整数演算系に比べて、浮動小数点が選択的に弱いとしたら、理由は何だろう?? (答えまでのパスが長くて、エラー検査間隔が長いとか?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと、科学技術計算(スパコンとAI?)とそれ以外(Web、金融、DB、業務系)では、前者が浮動小数点演算メイン、後者は整数演算メインという違いあると予想。 それが割当トランジスタ数と、実行時の処理割合にも反映して、確率的に前者なら浮動小数点エラー増え気味、とかはありそう?」 / Twitter
- 東京証券取引所様の株式売買システム「arrowhead」で発生した障害の原因と対策について : 富士通
- Shinji KonoさんはTwitterを使っています 「切り替えというけど、切り替わる条件は無数にあるので全部をテストするには、モデル検査するしかない。本番環境でのモデル検査は普通は不可能。この規模だと二系統は用意しないだろうし。」 / Twitter
- 10月1日に株式売買システムで発生した障害について | 日本取引所グループ
システムは自然と壊れる
- ところてんさんはTwitterを使っています 「企業の幹部向け研修用に、「ITシステムはなぜ『自然と壊れる』のか」というのを書かねばならん気がしてきたが、なんかいい資料ないかな…… - 外部環境の変化 - 脆弱性対応 - DBの肥大化、ディスク・メモリ容量不足 - 新規のコードの追加 - ハードウェア本体の故障 - ネットワークの故障 etc...」 / Twitter
- ところてんさんはTwitterを使っています 「2000年問題、2038年問題は分かりやすいので入れるとして、あとどーすっかなぁ OSのサポート切れ、開発言語のサポート切れ、あたりは入れるとして」 / Twitter
- 靴屋のスミスさんはTwitterを使っています 「@tokoroten 「サポートが切れるから」使えない、使ってはいけない、というのは、システムが自然崩壊する現象への対策が行えなくなるという、謂わば二次的な理由なので、システムが自然崩壊するのはなぜか、の理由の一覧に並列で記載しないよう、お願い申し上げたくござります。」 / Twitter
進捗・インクリメンタルな開発
- Yasunori GotoさんはTwitterを使っています 「あー… なんか似てるかも…。 テレワークになってから特に…。」 / Twitter
- ymmtさんはTwitterを使っています 「@satoru_takeuchi 1. こまめにアウトプットする。 2. 集中しないのがデフォルトだと割り切って焦らない。 なにがしかやってればそのうち興がのるタイミングがあって、そのとき大きく進捗します。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「私も,小さく試す,本格的に作る前にプロトタイピングするということをしょっちゅうしています。幼少の頃,レゴブロックで色々試行錯誤していたのと,小学校・中学校でプログラミングにて散々ハマりまくったので,自然とその習慣が身についたんだと思います。 https://t.co/O0okFVJ2gy」 / Twitter
- ついに達人がハマらない原因を見つけたかもしれない話|牛尾 剛|note
- 7594591200220899443さんはTwitterを使っています 「これだけは言っておかねばと思うのだけれど、右と左は別に品質面で差が出るような違いではない。ウォーターフォールが失敗した時には低品質の物が期限通りに出てくると思うべからず。そうなった時には期限日には何も出てこないのが実情である。」 / Twitter
- jMatsuzaki🔥さんはTwitterを使っています 「←期限ギリギリで低品質な物を作り上げる人のスケジュール →期限内に高品質な物を余裕を持って仕上げる人のスケジュール https://t.co/PUucITCacM」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「最後にジャーンと出来上がった物を比べた時にウォーターフォールが特段に低品質ということはないはずと理解している。ただ納期は破綻する。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「むしろ逆に低品質だろうが何だろうがともかく納期に何かが動いているというのが反復プロセスの特徴とも言える。」 / Twitter
クラウド == メインフレーム
- Shinji KonoさんはTwitterを使っています 「Cloudとか言ってるが、結局は課金制大型計算機センタなんだよな。JCLの代わりにLmbdaで戦ってるだけでさ。そこから抜け出したくて、マイコンミニコン、Unixだったのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「インターネット上のスケールする分散アプリの代わりにCDNってのは退化だと感じる。メインフレームの第n次オンライン的な。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Cloudのダウンは、httpsとCDNで囲い込んだ報い。本来は蜘蛛の巣的なキャッシュあるいは自律サーバネットワークで止まらないはず。ただし、updateはリアルタイムではないがな。リアルタイムを求めるなら、そこに行かなくては。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Playstationの予約でサーバダウンとかやってた頃を繰り返してる」 / Twitter
意味のある技術
- Hiromitsu TakagiさんはTwitterを使っています 「思い出すのは、大学で研究室に配属になった1988年頃の話。当時の一つのブームは「データフローコンピュータ」だった。指導教授がその道で名を上げかけた方(米国で見てきたものを国内で再現的な)で、当時の第五世代コンピュータのテーマの一つでもあった(教授は枠外)ので研究室のテーマはそれ。で…」 / Twitter
- Hiromitsu TakagiさんはTwitterを使っています 「…で、データフロー型の謳い文句は「ノイマン型コンピュータには限界がある。データのフローを直接処理することで問題が持つ並列性をそのまま並列実行できるのだ、と言うのだけども、コスト度外視なのね。連想メモリ(content addressable memory、データを入力するとアドレスが出る)の回路を使って…」 / Twitter
- Hiromitsu TakagiさんはTwitterを使っています 「…使って作るというのだけど、規模はどうするよとか、条件分岐は?とかいろいろ問題あり。M1の頃にはすでにおかしいと気づいており、fjに書くなどしていたら、学会の懇親会で偉い先輩(今の大ボス)に「君さあ」的なことを言われたwのであった。自分の研究は教授から与えられたネタで、それ自体は…」 / Twitter
- Hiromitsu TakagiさんはTwitterを使っています 「…それ自体は、なんというか、思いつきの一つの設計例にすぎず、その有用性を語るなんてできないわなと思って、学部の卒論の時点で、どうにか意味のある内容に変更(データフローコンピュータはトークン(データ)をキューに流すのだけども、データはメモリにおいてキューのカウンタだけ使う)して…」 / Twitter
- Hiromitsu TakagiさんはTwitterを使っています 「…して凌いだ。その後、Mではその方式を一般化して概念を確立させ研究会デビュー、ちょうど国際的にも似てるけどちょっと違う方式が出てきていたので、それらと比較して一つの小分野を構築することができ、どうにかD論に持って行けたのは、幸いだった。ちょっとした違いで人生大幅に違っていただろう。」 / Twitter
- 富岳てるみさんはTwitterを使っています 「「スパコンでなければならないのか?グリッドでいいのではないのか?」というのは、ある意味真だし、ある意味偽でもある。まぁ原理的にはグリッドですべて賄えるといえば賄えるけど。明日の天気予報に一か月とかかけていいなら」 / Twitter
- 宇賀智之さんはTwitterを使っています 「日本のスパコンにかける情熱は素晴らしい。 しかし、どれほど有効活用されているのだろう。 そして僕は常々思うことに、家庭のPCをつなぎ合わせて、一つのコンピューターとして見なすことで凄まじい情報処理ができるのではないだろうか。」 / Twitter
- Masakazu SekijimaさんはTwitterを使っています 「@telmin_orca @sacred_fox SETI@homeやFolding@homeとスパコンが計算している“ならでは”のものの区別がついていないというか後者を知らないだけかもしれません。」 / Twitter
- 富岳てるみさんはTwitterを使っています 「xxはどれほど有効に使われているのか?(xxには結構な高値のあれこれを入れよう) というのは、結局ポジショントークでしかないのでやめたほうがいいですよ。世の中には、自分は知らないけど活用されているものって山ほどあるわけで」 / Twitter
- 富岳てるみさんはTwitterを使っています 「まぁどこかの世界には、1Exaの計算を実現するのに1PFlopsの計算機を1000倍長く稼働させればいいとかいうことを言っていたヤツもいるので、みなさんはそういうアホにならないように気をつけてください。今必要な計算を1000倍の時間かけてやっても意味はないです」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「テクノロジーとは物を作る能力ではなく価値を具現化することだという結論に至った」 / Twitter
- 「早くリリースして、早く改善しよう」の落とし穴―― 開発畑のプロダクトマネージャーの失敗から学べ (1/4):ProductZine(プロダクトジン)
- Karuta HLS compiler (Scripting language for HLS)さんはTwitterを使っています 「古き良きLSI屋の会社はフルスタックで配置配線ツールやアナログのシミュレーターやら論理設計の言語と合成の処理系やらを内製してたんで、今どきの「低レイヤー」なんてのを「お高いんですね!」って鼻で笑えるレベルの低レイヤー。 あの部隊を何かに転用できなかったってのは割と国家的損失?」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「プログラミングというのはコンピュータに指示を出すこととよく言われるけど、実際には人間側の行動手順の規定しないといけないので、利用者も含めた処理手順を整理記述することなんだよな。」 / Twitter
- 今年新卒で大手のSIerに入社したものです。将来はPMの道に進みたいと思っているのですが、現在業務ではプログラミングをほとんどしません。業務時間外にプログラミングを勉強した方がよいでしょうか?に対するKuranami Koichiさんの回答 - Quora
- Shinji KonoさんはTwitterを使っています 「デジタル化とかDXとか仕事量を減らす楽にするとか考えてるのがいるのがなぁ。引き算としか考えてない。 もちろん、デジタル化DX化は高度化と生産性向上であって、ついていけないのは放り出されるんだよ。仕事が易しくなったりしない。 学ばない人の居場所はない。」 / Twitter
- take-cheezeさんはTwitterを使っています 「ものづくり、ものを作ってない時の方がずっと大事で、ものづくりだけ見ると全てを見失ってる」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「政治を「科学的事実」によって裏付けすることの危険性。もともと科学には完全な客観性などというものは存在しないにもかかわらず、人々はそれを期待している。そのため複数の相反する「科学的事実」が出てくると、人はどちらを信じるかをめぐってますます分断を深めてしまう。 https://t.co/gM5GfOEnox」 / Twitter
- Why Science Can't Settle Political Disputes | The MIT Press Reader
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「ある機能が欲しいか?」と聞かれるとユーザはほぼ例外なく "YES!" と答えるが、ユーザがすべての情報を与えてくれるわけではない。機能の仕様設計にはユーザのワークフローを理解することが不可欠で、それがないとたとえ実装しても全然使われないことがある。 https://t.co/ESq5f68UVc」 / Twitter
- When users never use the features they asked for - Austin Z. Henley
チェックデジット
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「これがチェックデジットあると1人1分が10秒以下になるんですよ…目視点検と読み合わせしなくても良くなるから。チェックデジットは正しく設計すると、入力誤りを極めて高率に捉えるのです。誤り混入率が1/10になるだけと思ってる人がいるようですが違います。人の入力誤りって奥深いんです(研究中)。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「単一桁誤りと、隣り合う数字の入れ替わりを確実に検出できるチェックデジットあるの知らなかった https://t.co/lKAhjNAxjZ」 / Twitter
- Verhoeff algorithm - Wikipedia
広く使ってもらうための戦略
- uint256_tさんはTwitterを使っています 「誰かに使ってもらえるものを作るにはどうすればいいんだろうね」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t ポイントは「巨人の肩」と「応用事例も作ること」そして「世界に向けて発信すること」だと思います。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「巨人の肩」というのは,既存のインフラとの親和性を良くすること,差別化点をはっきりすることが重要になってきます。既存のものに対する調査と,階層構造を踏まえることが大事になってきます。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「応用事例を作ること」は,自分が発信したいプログラムを活用した事例を作り,それも含めて発信することが大事なポイントです。そうすると,もともとのプログラムをどう改良していけばいいかの指針も得られます。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 「世界に向けて発信すること」は,単にGitHubに公開し,Twitterでつぶやいているだけでは,誰かの目に止まることは難しいということです。もっと広く情報を発信しないと,注目を集めません。」 / Twitter
情報発信の利益・不利益
- Rui UeyamaさんはTwitterを使っています 「自分が何年も苦労して獲得した技術的ノウハウを誰でも簡単に学べる親切なオンラインブック(無料)を書くみたいなの、何も得してないみたいだけど、ここだけの話すごく得なんですよ。今は得になってないけど。どう得になるのかもわからないけど、損得でいうと相当プラスになる気がする(根拠なし)。」 / Twitter
- ogiwaraさんはTwitterを使っています 「例えば「OSの基礎がわからない」って言われてOS自作入門をすすめるの、正直なところにわかだと思う OSのコンセプトとか、もっと適した教材が他にもたくさんある」 / Twitter
- いわんこ(小学生)さんはTwitterを使っています 「@designpatterngf これは本当にそう。 OS自作入門とかそのへんは、OSを作ってCPUとかメモリを理解しましょう、って感じですよね。 OSの勉強するならタスクの管理とか権限とか、仕組み的な感じのものを期待してる人が多そう。」 / Twitter
- ogiwaraさんはTwitterを使っています 「適切な教科書って作るのめっちゃくちゃ大変なんですね…」 / Twitter
- ogiwaraさんはTwitterを使っています 「楽しく読め、かつとてつもなく効率的にキャッチアップできるので、本当に感謝しかないです… いつか自分も書く側になりたい…」 / Twitter
- ロボ太さんはTwitterを使っています 「任意の分野Xで僕よりずっと詳しい人がたくさんいるんで、「僕がXについて解説書いたりしていいんだろうか」といつも思うんだけど、その「僕より詳しい人」がみんな解説書いてくれるわけではないので……」 / Twitter
- ロボ太さんはTwitterを使っています 「まぁ、情報発信なんていいことないよね……」 / Twitter
- 杉本啓さんはTwitterを使っています 「自転車の乗り方を本に書いたら、それは単に情報だ。実際にどうやれば自転車に乗れるのかは、それぞれがやってみて習得するしかないし、得た tacit knowing はその人だけのもの。我々が何かを出来るかは全面的に tacit knowing に依拠している。形式知=情報は、むしろそれを生成するためのよすがだ。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「プログラミング技術も同様で、習得する本人が自分の意思と試行から再発明するしかない。いくら教科書的なものを用意しても、それは練習メニューに過ぎない。練習する気がない人に練習メニューを見せても、うまくはならないんだよ。でも、世の中には、それで終っちゃってる「教育」が多い気がする。」 / Twitter
- ネオ高等遊民@哲学youtuberさんはTwitterを使っています 「YouTuberはいいですよ。 解説や研究を読んで知った面白い解釈を紹介すると 「受け売りしてすごいと言われて楽しいの?」などと言ってもらえますし、 自分で考えて面白いと思った解釈を話すと 「根拠のない思い付きより、最新研究分かりやすくかみ砕けよ」などと言ってもらえます。」 / Twitter
伝達・理解・認識
- MasaTamさんはTwitterを使っています 「英語圏の人達が主張が強いという印象は、主張が強いと言うより、情報が100%伝わるわけじゃないという前提で話してるということな気がする。伝わってないと思ったらI meanで噛み砕くし、paraphraseで違う表現したり。例も挙げるし、一つかそうでないかも明確にする。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「ちなみに実装コスト以前の問題として、「ロジックに誤りがないとはどういうことか」を人間が認識するところがボトルネックになりがち。訓練されていない人間は本人が思っている以上に、頭の中にある仕様を検証可能な形で表現することができない。」 / Twitter
- satさんはTwitterを使っています 「丁寧に書くと「冗長」、簡潔に書くと「説明不足」、詳細に書くと「難しすぎる」、わかりやすく書くと「わかった気になるだけ」と誰かしらは言うので個々の評で一喜一憂してたら身が持たない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「東証会見について、記者の質が低いって怒ってるエンジニアの人たちの気持ちが正直わからない。だって非専門家だよ? わからないことを確認するのは、記事を書く上で記者の義務だよ。社内でも、営業とか新米の人が理解しようと質問してきたら、そうやって怒ってるの?って思う」 / Twitter
- 古川英光(やわらか3Dプリンターサイエンティスト)(Hidemitsu Furukawa)さんはTwitterを使っています 「「なぜかが分からないと先に進めない人」と「役立つことが分からないと先に進めない人」。 私は理学部と工学部の両方の経験がありますが、前者が理学部型、後者が工学部型、みたいに思います。 良し悪しではなく「思考回路」の違いですね。 https://t.co/6SQiW7INl1」 / Twitter
- 若者の「それ、何の役に立つんですか?」に隠された驚きの事実(幻冬舎ゴールドオンライン) - Yahoo!ニュース
- nishio hirokazuさんはTwitterを使っています 「「正解が書かれたものがどこかにある」という思い込みを持ってる人はそれを得ようとするが、経験者は「しばしば世の中のどこにも正解が書かれたものが存在しない」と思ってるため自分で正解を導く方法を教えようとする。魚を得たい人に釣りの仕方を教えるので、魚を得たい人が不満に思うのは当然。」 / Twitter
- Sho YokoiさんはTwitterを使っています 「知的誠実さは居直り根性でもないし自主的な勉強の放棄の免罪符でもないよね。 離乳食のようなイントロが尊ばれ、本文に数式が一行でも入ると「わからないからもっと簡単に説明してほしい」とか「わからないけど難しいことしていて凄そう」とか宣うパーソンが散見される領域に居るからなおそう思う。」 / Twitter
- Sho YokoiさんはTwitterを使っています 「伝える側がその説明を分かりやすくするために工夫をこらすことが大切なのと同様、伝えられる側も新しいアイデアなり概念なりを理解するために脳を絞る必要があるに決まってるだろ。「私にも分かるように説明して」は分かるための努力をし続ける者だけに許される発話。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ノートは書き写すんじゃなくて、自分の再発明を書き下す。再発明しない限り理解に達してない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「プログラミングもそういうところがあって、ライブラリを使ってるだけで再発明しないようだと次の段階に進めない。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「言語の(最新の)機能をちゃんと活用した書き方とか、何とか指向とか何とか原則にきちんと従った書き方とか、そういうのを意識しているせいで、コードが不必要に難しくなってしまっているのをよく見る気がする。いいコードというのは別にそういうものではないと思うんだけど。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「難しいことをわかりやすく説明している文章みたいに、いいコードというのは、普通に読んで「なるほどわかりやすい」となるものだと思う。何とか原則に従っているかどうかみたいなのはどうでもいいし、あんまり最新の馴染みのない書き方をしても読者を置いてけぼりにするのでよくない。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「他の人が自分のコードを読んでわかりやすいと思うのかどうかが唯一の重要なポイントで、それ以外のことはそれを達成するためのヒントにすぎないと思うんだけど、なんか手段と目的が逆転しているのをよく見る気がする。」 / Twitter
- 質の高い技術文書を書く方法 - As a Futurist...
- 7594591200220899443さんはTwitterを使っています 「「これまでに体験した最も難しかったバグ」とは即ち「当人がバグと認識できる程度には簡単だったバグ」のことである。世の中には人類の精神ではどうにも理解できないことというものは数知れず存在する。問題が起こるというのと問題が認識できるというのには思っているよりも密接な関係がある。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「そもそもQiitaとかに書いてある話のいくつかは (参照が多くても) 間違った情報だったりするし、そもそも自分が困っているissueはそもそも英語でもWebで見つからない話なので、「初心者が技術記事書くな!」って話、誰が言ってるの?」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「人間の脳の記憶力から考えれば、文書でどこかに残すというのは正しいと思うし、それが間違った話でもいいと思うんだよね。問題は、それを見つけてきて検索結果の上位に置いてしまう検索エンジンではと。Google以前のAltaVistaとかの時代と変わらなくなってる」 / Twitter
- ++C++; // 管理人: 岩永さんはTwitterを使っています 「情報発信してみたいと思ってる人へのアドバイスとして言っておきたいの、「人に見られてる意識持ってやると自分の知識の延びもいいよ」、「何言われても『うるせー、だったらお前が書け』と思っとけ」、「何を見ようと『検索出るのこれだけかよ、だったら俺が書く』と思っとけ」の3点。」 / Twitter
- ++C++; // 管理人: 岩永さんはTwitterを使っています 「「だったらお前が書け/俺が書く」の行きつく先としてやっぱ技術文書もGitHubとかでpublicリポジトリ管理して静的サイト生成とかする方がいいんだろうなぁと思うんだけど、そうすると必要なのはレビューとかコミュニティマネジメントとか、より大変でできる人少なくて報われにくい仕事になるのよね。」 / Twitter
- 技術記事を書く人を大事にしよう
- 技術記事アウトプットの一事例
- 「仕事のコード」を残す際のチェックリスト|Uchio Kondo|note
- basic-operatability-checklist/ja at master · udzura/basic-operatability-checklist
- 池田紀行@トライバルさんはTwitterを使っています 「『本当に耳を傾けるべきは「プロのアドバイス」と「素人の感想」であって、最も耳を傾けてはいけないのは「プロの感想」と「素人のアドバイス」である』は本当に真理。さらに言うと『耳を傾けるべきは「ジャーニーのゴールに到着した人」と「途中で離脱した人」であり「無関心の人」ではない』とも。」 / Twitter
- 池田紀行@トライバルさんはTwitterを使っています 「マーケティングが仕事の人は自分の思考や発言が「個人の感想」なのか「プロとしての考察」なのか相当意識して使い分けないと大半が個人の感想になりキャリアが詰む。回避するには目や耳に入る具体を抽象化して本質を抽出する癖をつけなきゃならない。逆に言えば歳を取ったマーケターの仕事は抽象化のみ」 / Twitter
- jicchoさんはTwitterを使っています 「「頭がいい人はバカにも分かりやすく話せる」は偽で,「頭がいい人はバカにもなんとなく分かったような気にさせることができる」が真じゃないかな」 / Twitter
- 高須正和@NT深圳コミュニティ/TAKASU@NT ShenzhenさんはTwitterを使っています 「わかりづらさから逃げたほうがいい場合とマジメに立ち向かわないとならない場合は両方あり、どっちも大事」 / Twitter
- 羽山 祥樹@日本ウェブデザインさんはTwitterを使っています 「エンジニアの人、言葉の厳密さにこだわるけど、事象を正確に記述しているかだけ気にして、ユーザーに正しく伝わるかに頭が回ってないこと多い。複雑な文章(0.5秒以下で判断できないもの)は、ユーザーは読み飛ばすので、100%正しい記述も、伝わるのは 0%になる。書いてないのと同じ。伝わってなんぼ。」 / Twitter
- 高須正和@NT深圳コミュニティ/TAKASU@NT ShenzhenさんはTwitterを使っています 「エンジニアが用語の厳密さに敏感なのは、「細かいことより伝わることが大事」とおっしゃる人に仕事をひっかき回された(かつそういう人は難しい話になるとサッサといなくなる)トラウマがあるからじゃないかな。」 / Twitter
入門書
- ぱそほし(kzm)さんはTwitterを使っています 「いやそういうことじゃなくて、シェルだったり、アプリのインストールの方法だったり、インストールしたアプリのコードの読み方だったり、あるいはOSの機能(TCP/IP、ドライバ、DLL、メモリ、プロセス管理)だったり、GUIアプリケーションだったり、サウンドだったり、そういうのなんですよね https://t.co/xuUTaw9MZ1」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「「プログラミング入門書を読んでも、一般的に知られているソフトウェアの作り方みたいな事が書いてない」とありますが、プログラミング言語の処理系もまた「一般的に知られているソフトウェア」の一つなので、プログラミングの入門でプログラミング言語を作ればいいんですよ。 https://t.co/ompL0KjN6l」 / Twitter
- プログラミングというかITが理解できない。
用語・訳
- みんな大好き🐐ヤギのさくらちゃん(Kadzuya Okamoto)さんはTwitterを使っています 「IT界隈の人たちは楽屋ノリで「不正」って言葉をカジュアルに使いすぎ 世の中的にはほとんど「違法」と同義だから「不正な入力です」とか画面に表示しちゃダメだよ」 / Twitter
- chikoskiさんはTwitterを使っています 「recursiveを帰納と訳すこともあるのか」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「サーバーレスの-lessっていうやつ、個人的には、countlessの-lessと同じ意味合いだと思うと、むしろ、クラウド感があってよい。ないっていう意味じゃない。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「そうそう、あと WikipediaをWikiと略すのとか、 無限スコープ、動的エクステント を 動的スコープと略すのとかも取り締まるべき」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「技術的負債って言葉がなんか好きではなくて、実際にはコードの老化が正しいと思うんだけど。X年でやりかたとして正しかったこと (ビジネスも含めて) がY年で正しくない(もっといい方法がある)ってことでしかないと感じるんだよね、みんな言ってること」 / Twitter
- Ignacio Enriquez GさんはTwitterを使っています 「@makoto_kato @piro_or 老化は技術的負債の原因の一つだと思います。 最初から技術的負債はあると思います。メンターや経験者が近くにいなくて生まれる。または技術的な理由以外で(政治的なビジネス的な狭いビジョン的な理由)Y年数立たなくても直ぐに生まれると思います。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「それはさておき、プログラマかエンジニアか、というのは割と国内だけの話で、英語圏だとエンジニアという大カテゴリの中に開発者(デベロッパ)やSRE(サービスリライアビリティエンジニア)やCSE(カスタマーサポートエンジニア)といった様々なエンジニアが存在する、と理解するのが普通だと思う」 / Twitter
- Watching_Big_BroさんはTwitterを使っています 「これは記事化する際の用語選択のためのすり合わせなんだよな。非専門家である読者に、記事では専門用語を使わず事象を説明するにあたり、不適切な言い換えになるリスクを避けるために当事者の言葉を求めている。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「「日本語で」の質問について。実際専門用語に頼った説明は問題を生みがちで、今回も「フェイルオーバ」をactive-standby構成の説明を参考にしたのか「予備機に切替」という表現を使っている報道がある。自分の言葉で再説明する、というのはそういう問題を潰す効果がある cf. https://t.co/0m1aWv3ja8」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「障害が発生した記憶装置を切り離したあと、なぜ再起動が必要になったかについて明確な回答(うまく動作しなかったタスクが既に発生し、それらを確認修正するより再起動のほうが早い)を引き出した質問が「横文字を使わないで説明して」だったのは面白い」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「誤解を招くという意味で言えば、正規表現って誰が最初に訳したんだろ。もはや普及しすぎて変えられないけど、完全に誤訳だもんなぁ……」 / Twitter
- uncorrelatedさんはTwitterを使っています 「正規分布と同じノリですね」 / Twitter
編集者が必要
- keiichiro shikano λ♪さんはTwitterを使っています 「これはポジショントークですが、散文をGitHubなどで管理するうえで重要なのはPull Requestやtextlintといった仕組みの有無ではないということがまた明らかになってしまったな…」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「つまり編集者がいないと難しいのですよ(執筆者が編集者でもいいけれど)」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「もうちょっと具体的な話はこのへんで。 https://t.co/YSkxsbWcBB」 / Twitter
- k16's note: 執筆・編集のためのGit(GitHub)ワークフローを考えてみた
- keiichiro shikano λ♪さんはTwitterを使っています 「「俯瞰的な修正の作業は、かなり大きな範囲全体でコミットとして意味を持つので、他でコミットされたりPull Requestされた局所的な文章の修正をこのコミットの内容と調整するのはけっこう厄介です。」」 / Twitter
校正
- keiichiro shikano λ♪さんはTwitterを使っています 「これらの指摘をみた人がどう直すかが気になる。たとえばこの文の「思います」を断定にすればいいわけでないし、「サーバサイド」は文中で見えてる限りでは揺れてないし、「無い」が指摘されずに「例えば」が指摘されているのが気になるし(個人的には後者は許容できるが前者は許容しない)」 / Twitter
- suin❄️ TypeScriptが好きさんはTwitterを使っています 「textlintという、日本語のMarkdownを校正できるツールがあるのですが、これをVS Codeと組み合わせると、めっちゃ便利でした✨ あまり意識してなかった深いところまで、いろいろ教えてくれます。 ブログや社内文書を書くときなどに、一回textlint通すとよさげ。 https://t.co/BKnoBYi4yR」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「別のルールを使えばいいという話ではないと理解している。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「ルールベースの文章校正ツールに対する考え方をそのうちまとめたいと思っているのだけど、うまく言えないんだよなあ」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「「文意はシンタックスでだいたい決まる」としても、「書き手が意図している内容」と「シンタックスで決まってしまう文意」との溝を、当のシンタックスから取り出せるかどうかといったら、たぶん無理ではないか。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「一方、プログラミング言語のコードだと、「シンタックスで決まってしまう文意」はコンピューターで計算できる解釈であり、書き手の意図もまたコンピューターにおける動作として形式化されうるので、シンタックス自体を検査する意味が多分にある。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「たぶんこんな感じの断絶があると思っている」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「そんなわけで、プログラミング言語におけるlintのように使うこと(≃質の悪い文章のパターン発見に使うこと)にもやもやが残る、という感じなんだと思う。単なるシンタックスエラーの発見として使うぶんには、文章校正ツールは間違いなく武器になるんだけど。」 / Twitter
Knuth reward checks
- Sophie AlpertさんはTwitterを使っています 「Knuth check https://t.co/am9fQjV57d」 / Twitter
- クヌース賞金小切手 - Wikipedia
- Knuth reward check - Wikipedia
何をやってきたか、これでいいのか
- Kazuho OkuさんはTwitterを使っています: 「うらやましいなんて話じゃなくて、自分たちは何をやってきたんだ、これでいいのか、ってこと」 / Twitter
- 市川 真一さんはTwitterを使っています: 「. @kazuho さんが出張で使ってる航空機の運航を支えるシステムや、病院の運営に必要なシステムをやってきました。国のためになっているという自負はあります。私個人には、これで良いとしか言えないのです https://t.co/v3lGCi3CMX」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@tenpoku1000 社会を支える仕事をして「これで良い」と思えるのはすばらしいことだと思います。いろんな関わり方があると思うので」 / Twitter
- 航空:航空交通管制情報処理システム - 国土交通省
- cab20181001-2.pdf
- スライド 1
- Wayback Machine
トレードオフ・動機
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そもそもトレードオフ(とモチベーション)を考えた結果ならどちらもアリだよなぁ。 単に「今時古い」的な思考停止で判定する人見るとオイオイと思うことも。」 / Twitter
- Taisuke 'Jeff' Inoue #WFHさんはTwitterを使っています 「30年前、本業そっちのけでやったのが今になって役に立ってるから、むしろお勧めしたい。」 / Twitter
- MiyahanさんはTwitterを使っています 「技術力がない人ほどDNSサーバーやメールサーバーを自前で立てたがる現象に誰か名前をつけてほしい。」 / Twitter
美意識
- 渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「B1から配属可能な研究室の制度でやってきて感じることは、研究室で研究問わずまずは好きな活動やってもらって、教員側がそれを観察して、その学生がこだわる部分や強そうな部分を発見し、テーマからこういうのやってみたら?っていうマッチング測るのが良さそう。というのが見えつつ。」 / Twitter
- 渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「まずはディープな自己紹介みたいなことも大事だなと。どういう環境で生きてきたか、どういう遊びをしているのかとか。」 / Twitter
- 渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「ちょっと何かつくると、人によってこだわる部分が違う、つまりそういうことが美意識なんだと思うん。で、それって自分だと気づきにくかったりするんだけど、教員側は多くの学生を見ているから、すぐわかったりする。」 / Twitter
- 渡邊 恵太 / Keita WatanabeさんはTwitterを使っています 「教員のエゴが強いと、その美意識は潰されてしまうけどね。だってそれってどうでもいいことって思うわけでしょう。だから逆に積極的に潰していくタイプの人もいるんでしょうけど。」 / Twitter
競争ではない・正解のない世界
- yhara (Yutaka HARA)さんはTwitterを使っています 「一方で狂人たちがどう考えているかというと、彼らは別に競ってはないのですよね。プログラミングの世界には無限に「やること」があるので、みんなそれぞれ違うことをしている。競争ではない」 / Twitter
- 古都ことさんはTwitterを使っています 「プログラマ、無策に愚直に上目指そうとすると「仕事でプログラミングやってるし休憩時間は気分転換のプログラミングやってるし退勤後は息抜きのプログラミングやってるし休日は趣味のプログラミングに全ぶっぱ」みたいな狂人との電流金網デスマッチが始まるので、自分なりの目標と適度な割り切りが必要」 / Twitter
- Miura HidekiさんはTwitterを使っています 「もうちょっと遅く生まれて未踏だセクキャンだ外資系IT企業だと選択肢のある世界が良かったなと思っていたが、「正解」のある世界は私には不利なのでまだ正解の定まっていない私の世代に生まれたのはよかったのだなと気づいた」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ただ、正解がある世界は安定するが革新的な進歩は無くなる。今後のITの世界の明日はどっちだ」 / Twitter
簡単に使えるようにする
- 7594591200220899443さんはTwitterを使っています 「プログラムを書くのに計算機科学の素養が必要かどうかで言うと現状必要なのは事実だが必要でなくしていくべきです。おばちゃんの作ったキッチュなアップリケとかが人類史に決定的なインパクトを与える事ができるようになるべく専門家以外をエンパワーしていくのが我々の仕事である。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「これ」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「結局金突っ込んだやつが順当に勝つみたいなつまらない世界をやりたくてwebやってるんじゃなかったはずだろ。今よりももっと間口を広くすべきです。素人が適当に作ったもので相応に戦えるべき。」 / Twitter
圏論入門
- 七誌さんはTwitterを使っています 「話題の『圏論入門』を入手しました! https://t.co/fWei06kAEM」 / Twitter
- https://twitter.com/7shi/status/1297189240531382272
- https://twitter.com/7shi/status/1297474094892376065
統計学:認識論・主義
- Ohkubo YusakuさんはTwitterを使っています 「前半は基本的に同意で、数学と論理に基づく理解を目指すのが健全な統計学かと考えます。 ところが、残念ながら「“科学的”に“常識”であるとはどのようなことか」という点が科学者の間でも合意されていないという深刻な事実が見過ごされている。これこそ科学哲学という領域で研究されていることです。」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#統計 私は * 数学的道具への理解 * 通常の論理的推論 * 科学的な常識 * 自分自身の専門分野固有の知識 を組み合わせて統計学を使える人が増えれば素晴らしいことだと思っています。要求が必要最小限で穏健な立場だと思う。 「主義」の重要性を語る人達は危険な過激派に見えて仕方がない。」 / Twitter
- Dr. Dr. Ken McAlinnさんはTwitterを使っています 「統計学はそれ(数学)を通して世界を認識することだ、ということを忘れてしまうと「主義」の意味もわからなくなってしまう。大事なのは世界を認識することであって数学ではない。」 / Twitter
- Jun OtsukaさんはTwitterを使っています 「これらの「主義」は数理統計学的学説ではなく、数学的理論が経験的事象の探求になり得るのかのはなぜなのか、というメタ的な関心についての学説だという理解です。だからベイズ/頻度「主義」の外延とベイズ/古典「統計」の外延は必ずしも一致しません(し、実際にしないと明記してる)。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「例の論争を見てると、学者 or 研究者と言えども内なる信念からは逃れられないんだなぁ、と。ボルツマンは原子の実在性を巡って論争の果て自殺に追い込まれたし、相対論、量子論、確率概念と専門家は自身の科学観が揺るがされる度、強く反発してきた。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「どっちが正しいと言うつもりはないけど、争点が数学や理論、実用性とかそういうところにないことを冷静になって認識した方がいいんじゃないかなぁ、と。主観ベイズの争点は単に主観や主義の存在を受け入れるか否かだけに思えるのよね。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「最近読んだ「外来種は本当に悪者か?」なんてまさにそうで「外来種は悪である」という信念によっていかに学術的議論が歪められてるのか、って話だもんね。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「現状を踏まえれば、すでに統計学は主義も主観性も受け入れているけど、「でも、あなたは受け入れないんですか」という状況だったりするわけだよね。」 / Twitter
- 世界中で利用される「D3.js」の開発者が10年間で学んだこととは? - GIGAZINE
- 情報ではなく経験をアウトプットすること - lacolaco
書籍
その他
BOOTH
- 登録禁止商品の追加に関するお知らせ - BOOTH
- windhole booth - BOOTH
- Hello uchan world - BOOTH
- 海洋軟件 - BOOTH
- OtakuAssembly - BOOTH
- fadis_press - BOOTH
- galaxy-sixth-sensey - BOOTH
- マークアップ言語愛好会 - BOOTH
- すらりんラボ - BOOTH
- ドメイン駆動設計 モデリング/実装ガイド - little-hands - BOOTH
- GPSと仲良くなってNTPサーバを作ろう - 調布技研 - BOOTH
- seiya - BOOTH
- マイクロカーネルの設計と実装 - seiya - BOOTH
- だめぽラボ
- だめぽラボ - BOOTH
- 犬テトラ+
- イヌでもわかるCSS Houdini - 犬テトラ+ 出版社 - BOOTH
- 低レイヤを知りたい人のためのCコンパイラ作成入門 - - BOOTH(同人誌通販・ダウンロード)
- 低レイヤを知りたい人のための Cコンパイラ作成入門
- 「低レイヤを知りたい人のためのCコンパイラ作成入門」フィードバックフォーム
- 命題論理の魔導書 - Magia Librejo de Amaneko - BOOTH
ヘネパタ
- Hennessy & Patterson Computer Architecture 第6版 原著の問題点 | Amano Lab
Wikipedia
- 出版取次 - Wikipedia
- 日本出版取次協会|取協概況|沿革と現状
- フレデリック・ブルックス - Wikipedia
- 人月の神話 - Wikipedia
- 銀の弾などない - Wikipedia
Qiita
- ラムダノートの技術 Advent Calendar 2019 - Qiita
- 自作OSとかLinuxカーネルについて役立った本 - Qiita
- 低レイヤーを学ぶための技術書をまとめてみる - Qiita
Twitter
- ドッグさんのツイート: "おもちゃ実装の Git を自分でつくってみてオブジェクトなどの内部データ構造や merge, diff などのアルゴリズムの仕組みを理解できる書籍 Building Git が出るのか.使用言語は Ruby | 'Building Git' https://t.co/Ka8sIaDrno"
- Building Git – shop.jcoglan.com
- Ryou Ezoe(江添 亮)さんはTwitterを使っています: 「我々は紙の本を安価に全国共通の値段で手に入れることができた最後の世代になるだろう。次の世代に本はない。」 / Twitter
- mumumuさんはTwitterを使っています 「プログラミングHaskellを読んだ(というか斜め読みしつつ演習問題をつまんで最後のページにたどりついた) めっちゃ薄いわりに必要なことがまとまっていて良かったけど,モナドの周りだけはよくわからんかったな.ファンクタ->アプリカティブファンクタ経由で説明されたほうがわかりやすい希ガス」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「プログラミングHaskell、改訂版ではファンクタ→アプリカティブ→モナドで解説されるように改良されていて、実際わかりやすくなっています!」 / Twitter
- 日本の古本屋
- 寄付の方法 | つなぐ書店
- 就労継続支援B型 かみふくおか作業所さん (@2017kamisaku) / Twitter
- かみふくおか作業所 | 運営施設 | 社会福祉法人 入間東部福祉会|入間東部福祉会 ふじみ野市、富士見市、三芳町にて障害者支援施設・障害福祉サービス事業所の運営を行う社会福祉法人
- かみふくおか作業所の出張トトロ
- 販売中の書籍一覧 – 技術書出版と販売のラムダノート
- 1月と7月
- 既刊(数学) | ニュートンプレス
- 既刊(工学) | ニュートンプレス
- 既刊(その他) | ニュートンプレス
- 大神 祐真 (Ohgami Yuma) (サークル名:へにゃぺんて)
- BOOK TECH | トップ
- BareMetalで遊ぶ Raspberry Pi - 達人出版会
- p20190528a - K-kiwi
- 水晶雫
- 株式会社ロングゲート
- なぜ研究者は学術書を翻訳すべきなのか?|Daichi G. Suzuki|note
- Amazon | Handbook of Mathematical Functions: with Formulas, Graphs, and Mathematical Tables (Dover Books on Mathematics) | Abramowitz, Milton, Stegun, Irene A. | Pure Mathematics
- 自作OSとかLinuxカーネルについて役立った本 | Zenn
- Webpage: BEKKI Daisuke
- Amazon | Writing Compilers and Interpreters: A Software Engineering Approach (English Edition) [Kindle edition] by Mak, Ronald | Languages & Tools | Kindleストア
- 機関誌2019|公益社団法人 日本オペレーションズ・リサーチ学会
- 嘉田 勝 (Masaru Kada) - 出版関係 - researchmap
- 本を書ける人がなかなかいない:生涯現役のITエンジニアを目指して:エンジニアライフ
- 技術書典7: バイナリイーター 詳細
Unicode
- サポートページ:プログラマのための文字コード技術入門:|技術評論社
- [改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
- Unicode標準入門(Tony Graham 関口正裕 乾和志 海老塚徹)|翔泳社の本
- 文字符号の歴史:アジア編 正誤表
- 文字符号の歴史 アジア編 三上喜貴 著/2002.3
- 三省堂-世界の言語ガイドブック
- 世界のことば小事典 柴田 武(著/文)(大修館書店)| 版元ドットコム
- 国際化と日本語処理 : Javaプログラミング・ノート : Cafe Babe (アスキー): 2000|書誌詳細|国立国会図書館サーチ
アルゴリズム
その他
- CiNii 図書 - 定本Cプログラマのためのアルゴリズムとデータ構造
- 省メモリプログラミング―メモリ制限のあるシステムのためのソフトウェアパターン集 (Software patterns series) | ジェイムズ ノーブル, チャールズ ウィアー, James Noble, Charles Weir, 安藤 慶一 |本 | 通販 | Amazon
- 情報科学セミナー 遺伝的プログラミング - 東京電機大学出版局 科学技術と教育を出版からサポートする
- 計算の理論 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- みんなのデータ構造(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
- おすすめ書籍/プレアデス出版 Pleiades PUBLISHING
- The Art of Computer Programming Volume 4A... - アスキードワンゴ
- グラフ同型性判定問題 | あなたとともに100万人の仲間とともに
- CiNii 図書 - 情報学のための離散数学
- 情報科学のための 離散数学 | コロナ社
- 電子機器設計に活かすディジタル代数学|科学情報出版
- マグロウヒル大学演習 離散数学 コンピュータサイエンスの基礎数学 | 理工学専門書,理学,数学 | Ohmsha
- 近代科学社
エスアイビーアクセス
- 書店・アマゾン販売書一覧 | sibaccess公式ページ
- ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ジュニア, ヘンリー・S. ウォーレン, Jr., Henry S. Warren, 滝沢 徹, 鈴木 貢, 赤池 英夫, 葛 毅, 藤波 順久 |本 | 通販 | Amazon
シュプリンガー・フェアラーク
- グレブナ基底と代数多様体入門 : イデアル・多様体・アルゴリズム (シュプリンガー・フェアラーク): 2000|書誌詳細|国立国会図書館サーチ
- グレブナ基底と代数多様体入門 : イデアル・多様体・アルゴリズム (シュプリンガー・フェアラーク): 2000|書誌詳細|国立国会図書館サーチ
O'Reilly Japan
- O'Reilly Japan - 並行コンピューティング技法
- O'Reilly Japan - アルゴリズムクイックリファレンス 第2版
- O'Reilly Japan - Hadoop MapReduce デザインパターン
技術評論社
- サポートページ:正規表現技術入門 ――最新エンジン実装と理論的背景:|技術評論社
- 平成26年度 イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室:書籍案内|技術評論社
- [改訂新版]C言語による標準アルゴリズム事典:書籍案内|技術評論社
共立出版
- アルゴリズムと計算量 / 野崎 昭弘 著 | 共立出版
- グラフ理論とフレームワークの幾何 / 前原 濶 桑田 孝泰 著 | 共立出版
- 簡潔データ構造 / 杉原 厚吉 室田 一雄 山下 雅史 渡辺 治 編 定兼 邦彦 著 | 共立出版
- 近似アルゴリズムデザイン / David P.Williamson David B.Shmoys 著 浅野 孝夫 訳 | 共立出版
講談社
- 新装版 集合とはなにか | ブルーバックス | 講談社
- 逆問題の考え方 | ブルーバックス | 講談社
- 『「複雑ネットワーク」とは何か』(増田 直紀,今野 紀雄):ブルーバックス|講談社BOOK倶楽部
- 離散数学「数え上げ理論」 : 「おみやげの配り方」から「Nクイーン問題」まで (講談社): 2008|書誌詳細|国立国会図書館サーチ
森北出版
- 超高速グラフ列挙アルゴリズム|森北出版株式会社
- アルゴリズム理論の基礎 | 森北出版株式会社
岩波書店
- 「高速文字列解析の世界」サポートページ - daisuke.okanohara
- 高速文字列解析の世界 - 岩波書店
- 高速文字列解析の世界[読書メモ].rb
- 朱鷺の杜(IBIS)ブログ 高速文字列解析の世界
- 数値処理プログラミング (岩波書店): 1988|書誌詳細|国立国会図書館サーチ
コンパイラ
その他
その他
- lint (UNIXユーティリティライブラリ) | イアン・F. ダーウィン, 菊池 彰 |本 | 通販 | Amazon
- i386TMDXマイクロプロセッサプログラマーズ・リファレンス・マニュアル | |本 | 通販 | Amazon
- Prolog処理系を作ろう | 笹川賢一 | 工学 | Kindleストア | Amazon
- 書店・アマゾン販売書一覧 | sibaccess公式ページ
- S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル | 3世, サムエル・P. ハービソン, ジュニア, ガイ・L. スティール, 3, Samuel P. Harbison, Jr., Guy L. Steele, 玉井 浩 |本 | 通販 | Amazon
- SQLパフォーマンス詳解 | Markus Winand, Markus Winand |本 | 通販 | Amazon
- オブジェクト指向データベース入門―ポスト・リレーショナル・データベース (SRCハンドブック―STシリーズ) | 宇田川 佳久 |本 | 通販 | Amazon
- Prolog処理系を作ろう | 笹川賢一 | 工学 | Kindleストア | Amazon
- ファジィ・リレーショナル・データベース―エキスパート・システムへの鍵 | ツェマンコバ・リーチ,マリア, カンデル,エイブラハム, 政男, 向殿 |本 | 通販 | Amazon
- 数理論理学 (現代数学レクチャーズ B- 6) | 福山 克 |本 | 通販 | Amazon
- Adaコンパイラ実現のための中間言語DIANA入門 言語仕様 応用 | 僚一, 細谷 |本 | 通販 | Amazon
- Java仮想マシン仕様 (The Java series) | リンドホルム,ティム, イェリン,フランク, Lindholm,Tim, Yellin,Frank, 雅章, 村上 |本 | 通販 | Amazon
- Java分散オブジェクト入門―Java RMI、CORBA、IDL、Jini、JavaSpaces対応 | 中山 茂 |本 | 通販 | Amazon
- 書籍情報―Linux技術者のためのC言語入門
- CiNii 図書 - 論理プログラミングの基礎
- 1+2=3
- Miura HidekiさんはTwitterを使っています 「1+1=2じゃないのは、全加算器を導入したいからだな。たぶん」 / Twitter
- 筑摩書房 公理と証明 ─証明論への招待 / 彌永 昌吉 著, 赤 攝也 著
- 論理学をつくる « 名古屋大学出版会
- ゲーデルの世界 - 海鳴社
- 数理論理学の基礎・基本 (牧野書店): 2012|書誌詳細|国立国会図書館サーチ
- 内田老鶴圃/書籍詳細/数理論理学 使い方と考え方:超準解析の入口まで
- 形式論理探求 第1巻 古典論理のタブロー | やまなみ書房 Yamanami Books
- CiNii 図書 - 時間の論理
- NHK出版新書 394 数学的推論が世界を変える 金融・ゲーム・コンピューター | NHK出版
- 連続体仮説 (東京図書): 1990|書誌詳細|国立国会図書館サーチ
- ゲーデルの定理 | みすず書房
- ゲーデルは何を証明したか|白揚社 -Hakuyosha-
- 論理学への数学的手引き – 1月と7月
- 書籍詳細|株式会社 C&R研究所
- 筑摩書房 数とは何かそして何であるべきか / リヒャルト・デデキント 著, 渕野 昌 著, 渕野 昌 著
- 東京図書株式会社 math stories 計算とは何か
- 線型代数対話 第1巻圏論的集合論 集合圏とトポス | 株式会社 現代数学社
- モナドロジー 形而上学叙説|全集・その他|中央公論新社
- サクサクSmalltalk - 東京電機大学出版局 科学技術と教育を出版からサポートする
カタカナ社名の出版社
サイエンス社
- コンパイラの理論と作成技法 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- コンパイラ入門 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 人工知能の基礎 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 計算モデル論入門 : チューリング機械からラムダ計算へ (サイエンス社): 2006|書誌詳細|国立国会図書館サーチ
- プログラミング言語の意味論入門 (サイエンス社): 1993|書誌詳細|国立国会図書館サーチ
- プログラミング言語の基礎概念 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- モデルの記述と検証のためのプログラミング入門 – CafeOBJ
- プログラム意味論の基礎 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- リレーショナルデータベース入門[第3版] - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 離散数学 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
コロナ社
- コンピュータ数学シリーズ 超並列処理コンパイラ|コロナ社
- コンピュータ数学シリーズ 3 数理論理学 | コロナ社
- 並列処理シリーズ 命令レベル並列処理 プロセッサアーキテクチャとコンパイラ|コロナ社
- 計算論理に基づく 推論ソフトウェア論 | コロナ社
- 数理論理学 - 合理的エージェントへの応用に向けて - | コロナ社
- 計測・制御テクノロジーシリーズ 16 知識基盤社会のための人工知能入門 | コロナ社
- 1から始める Juliaプログラミング | コロナ社
オーム社
- GNU Autoconf/Automake/Libtool | コンピュータ・一般書,UNIX,UNIX | Ohmsha
- 新世代工学シリーズ システムソフトウェア | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
- Linkers & Loaders | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- 情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
- コンパイラ (情報系教科書シリーズ) | 湯浅 太一 |本 | 通販 | Amazon
- IT Text コンパイラとバーチャルマシン | Ohmsha
- IT Text プログラム仕様記述論 | Ohmsha
- 型システム入門 プログラミング言語と型の理論 | Ohmsha
- Scheme手習い | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- コンパイラ 作りながら学ぶ | 理工学専門書,情報科学,ソフトウェア・情報システム | Ohmsha
- 関数プログラミングの楽しみ | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- 計算できるもの、計算できないもの 実践的アプローチによる計算理論入門 | Ohmsha
- すごいErlangゆかいに学ぼう! | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- 並列コンピュータ 非定量的アプローチ | Ohmsha
- 関数プログラミング 珠玉のアルゴリズムデザイン | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- dRubyによる分散・Webプログラミング | 関 将俊 |本 | 通販 | Amazon
アスキー
- Amazon | エキスパートCプログラミング―知られざるCの深層 (Ascii books) | ピーター ヴァン・デ・リンデン, Peter van der Linden, 梅原 系 通販
- デバッガの理論と実装 (ASCII SOFTWARE SCIENCE Language) | ジョナサン・B. ローゼンバーグ, Jonathan B. Rosenberg, 吉川 邦夫 |本 | 通販 | Amazon
- Amazon | Panic!―UNIXシステムクラッシュの追求と対策 (サンソフトプレスシリーズ) | 福崎 俊博, Chris Drake, Kimberley Brown 通販
- C/C++ セキュアコーディング 第2版
- 純粋関数型データ構造 - アスキードワンゴ
- 『純粋関数型データ構造』のためだけの超いい加減な Standard ML 入門 - cafelier@SRM - TopCoder部
- じょんどろさんのツイート: "What's new in purely functional data structures since Okasaki? https://t.co/9xo0yqn1W0 純粋関数データ構造の原著が発売されて以降に生まれた純粋なデータ構造等のリスト"
- reference request - What's new in purely functional data structures since Okasaki? - Theoretical Computer Science Stack Exchange
- CiNii 図書 - Cプログラムブック
- Lisp処理系の作成 (アスキー出版局): 1986|書誌詳細|国立国会図書館サーチ
- アラン・ケイ (アスキー): 1992|書誌詳細|国立国会図書館サーチ
- アラン・ケイ (Ascii books) | アラン・C. ケイ, Kay, Alan Curtis, 雄二, 鶴岡 |本 | 通販 | Amazon
- Lisp処理系の作成 (Cプログラムブック) | 弘一, 小西, 剛, 清水 |本 | 通販 | Amazon
- Haskellによる関数プログラミングの思考法 - アスキードワンゴ
- NFSバイブル (ASCII Addion Wesley Programming Series) | ブレント カラハン, Callaghan,Brent, クイープ |本 | 通販 | Amazon
マイナビ出版
- Write Great Code〈Vol.1〉 プレミアムブックス版 | マイナビブックス
- Write Great Code〈Vol.2〉 プレミアムブックス版 | マイナビブックス
- 入門Common Lisp : 関数型4つの特徴とλ計算 (毎日コミュニケーションズ): 2006|書誌詳細|国立国会図書館サーチ
- 基礎からわかる Elm|Tech Book Zone Manatee
- 自作エミュレータで学ぶx86アーキテクチャ | マイナビブックス
ナノオプト・メディア
- モデル検査 (ナノオプト・メディア): 2010|書誌詳細|国立国会図書館サーチ
- モデル検査 : 基礎から実践まで4日で学べる (ナノオプト・メディア): 2009|書誌詳細|国立国会図書館サーチ
幻冬舎ルネッサンス新社
- 論理がはじめてわかる 新・論理考究 - 自費出版の幻冬舎ルネッサンス新社
- 「ならば」騒乱 - 自費出版の幻冬舎ルネッサンス新社
デザインエッグ社
- 数理論理の手法 - 証明の発見と背理法の除去 (MyISBN - デザインエッグ社) | 安部 直人, 中西 泰雄 |本 | 通販 | Amazon
- タブロー法による直接証明の発見 (MyISBN - デザインエッグ社) | 中西 泰雄 |本 | 通販 | Amazon
トッパン
- 注解C++リファレンス・マニュアル (トッパン): 1992|書誌詳細|国立国会図書館サーチ
- A=B : 等式証明とコンピュータ (トッパン): 1997|書誌詳細|国立国会図書館サーチ
- Concurrent Cプログラミング言語―並行プログラミング入門 | ゲハーニ, ナイレン, ルーム, ウィリアム・D., Gehani, Narain, Roome, William D., 正郎, 中村 |本 | 通販 | Amazon
ラムダノート
- プログラミングHaskell 第2版(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
- 定理証明手習い(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
秀和システム
- デバッガによるx86プログラム解析入門【x64対応版】|書籍情報|秀和システム
- Haskell 教養としての関数型プログラミング - 秀和システム あなたの学びをサポート!
- 実践Rustプログラミング入門 - 秀和システム あなたの学びをサポート!
リックテレコム
- リックテレコム 書籍情報
- リックテレコム 書籍情報
インプレスブックス
- リバースエンジニアリングバイブル ~コード再創造の美学~ - インプレスブックス
- Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド - インプレスブックス
- 真理・証明・計算 - ミネルヴァ書房 ―人文・法経・教育・心理・福祉などを刊行する出版社
- コンピュータ・サイエンス研究書シリーズ 17 : 関数型プログラミング (日本コンピュータ協会): 1985|書誌詳細|国立国会図書館サーチ
- サンライズ出版 » 論理と集合
- C++言語のカラクリ|SBクリエイティブ
- コネクションマシン : 65,536台のプロセッサから構成される超並列コンピュータ | 国立情報学研究所図書室 蔵書検索(OPAC)
O'Reilly Japan
並行プログラミング入門
- O'Reilly Japan - 並行プログラミング入門
- 分散処理に詳しいオタクさんはTwitterを使っています 「読み終わったので書評書いた! 書評:並行プログラミング入門 - Software Transactional Memo https://t.co/mQv1ngoN1D」 / Twitter
- 書評:並行プログラミング入門 - Software Transactional Memo
- 分散処理に詳しいオタクさんはTwitterを使っています 「発売日が8/24なのになんで手元に本があるかっていうとオライリーで注文したら普通に割と前に届きました。Amazonで買って発売日前に手に入るかは知りません。」 / Twitter
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』は、パフォーマンス評価やSTMのマニアックな話をしだすと、400ページを超えてしまって、初学者が一冊読み通す難易度が格段に上がってしまうので、思い切って削りました。」 / Twitter
- ytakanoさんはTwitterを使っています 「スケジューラの細かい話、パフォーマンス評価、形式手法を使った検証、RCUなど、他にも色々ありますが、そこら辺はこの本を読めば他の論文や専門書を読んでいけるようになるかなと。」 / Twitter
- 書評: 並行プログラミング入門 – さくらんぼの技術備忘録
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』正誤表 https://t.co/7dNwWlgbQj」 / Twitter
- conc_ytakano/errata.md at main · oreilly-japan/conc_ytakano
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』の正誤表を更新しました。重大な更新は次の2つです。 - 4.7 メモリバリアの dmb st の図と説明を修正 - 8章の「適用」の誤用を修正 https://t.co/7dNwWlgbQj」 / Twitter
- 2021-09-08 並行プログラミング入門』読書会 README - Google スライド
- ْさんはTwitterを使っています 「並行プログラミング入門,λ抽象の構文がキモ過ぎる.普通 λx. x x って書いたら λx. (x x) って解釈すべきだと思うんだけど,この本の内容を読むと (λx. x) x って解釈されるのを想定しているように見える」 / Twitter
- ْさんはTwitterを使っています 「λx の後の . は述語論理が元ネタで,. があったら入れ子の式はできるだけ広く解釈しましょうって意味なので,せめて λx x x と書いてほしい」 / Twitter
- ْさんはTwitterを使っています 「あと演算子の結合の強さがキモい.β簡約基つって (λx.M a) とかいう式が出てきた時は誤植かと思ったわ」 / Twitter
- ytakanoさんはTwitterを使っています 「P.269の構文定義通りに解釈すると、λ.x xや(λx.x) xはそもそも構文エラーで、カッコをつけた(e e)と言う形の(λx.x x)のみが関数適用の呼び出し構文になり定義にそえば間違いはないかと。よくある書き方と違うと言うのはご指摘通りですね。」 / Twitter
- ytakanoさんはTwitterを使っています 「λ計算のところはLispっぽくカッコを関数適用としたかったと言うのが理由で、スペースで関数適用にした構文だと、教えている時に結合で混乱する人がとても多かったからです。」 / Twitter
- ytakanoさんはTwitterを使っています 「λ計算のところはLispっぽくカッコを関数適用としたかったと言うのが理由で、スペースで関数適用にした構文だと、結合で混乱する人がとても多かったからです。」 / Twitter
- ytakanoさんはTwitterを使っています 「2個書いてしまった。」 / Twitter
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』の4.3 銀行家のアルゴリズムで、take関数のリソース数を指定可能にした修正を、読者の方に頂いたので、修正版のコードを掲載しました。 https://t.co/2EICrUfqGH」 / Twitter
- conc_ytakano/errata.md at main · oreilly-japan/conc_ytakano
- O'Reilly Japan - make 改訂版
- O'Reilly Japan - Hacking:美しき策謀 第2版
- O'Reilly Japan - リバースエンジニアリング
- O'Reilly Japan - Binary Hacks
- O'Reilly Japan - アンダースタンディング コンピュテーション
- O'Reilly Japan - Cクイックリファレンス 第2版
- O'Reilly Japan - プログラミングGauche
- O'Reilly Japan - Haskellによる並列・並行プログラミング
- だめぽラボ@技術書典9さんはTwitterを使っています 「「Haskellによる並列・並行プログラミング」は原著が2013年、邦訳が2014年の本だけど、古くなってる部分とかあるのかな(配列ライブラリーとしてrepaが紹介されてるけど、最近はmassivというのも出てきているらしいので)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「GPUプログラミングに関しては6章でaccelerateを扱っていて、その辺は2021年現在もそんなに変わらないと思う(accelerate自体のアップデートとかはあるだろうけど)」 / Twitter
- O'Reilly Japan - グラフデータベース
- O'Reilly Japan - インテル スレッディング・ビルディング・ブロック
- O'Reilly Japan - ビューティフルアーキテクチャ
- O'Reilly Japan - Go言語による並行処理
- O'Reilly Japan - 詳解 システム・パフォーマンス
- O'Reilly Japan - データ指向アプリケーションデザイン
- O'Reilly Japan - 詳説 データベース
- O'Reilly Japan - SQLアンチパターン
- O'Reilly Japan - プログラミングTypeScript
- O'Reilly Japan - デバッグの理論と実践
- O'Reilly Japan - Debug Hacks
CUTT System
- CUTT System:【改訂版】プロトコル構文規定言語ーASN.1
- CUTT System:AVX命令入門
- CUTT System:64ビットアセンブラ入門
- CUTT System:構造化並列プログラミング
- CUTT System: books
CQ出版
- データベース技術教科書
- 数値演算入門―8086による浮動小数点演算の実際と8087の使い方 (パラダイム・ブックス) | 大貫 広幸 |本 | 通販 | Amazon
- x86アセンブラ入門 : PC/ATなどで使われている80x86のアセンブラを習得 (CQ出版): 2006|書誌詳細|国立国会図書館サーチ
- [絶版1999.4] 8086ファミリ・ハンドブック
- [絶版2003.5.26] PostScript詳細解説
- 組み込みソフトへの数理的アプローチ
翔泳社
実践TLA+
- 実践TLA+ | SEshop.com | 翔泳社の通販
- ytakanoさんはTwitterを使っています 「♢Fは無いのか?」 / Twitter
- ytakanoさんはTwitterを使っています 「<>Fか。」 / Twitter
- ytakanoさんはTwitterを使っています 「≠が#、∀が\A、∃が\Eの記号なのがイマイチ慣れないなあ。」 / Twitter
- ytakanoさんはTwitterを使っています 「論理積と論理和の書き方が独特すぎる」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+は主にPlusCalを使うのか」 / Twitter
- ytakanoさんはTwitterを使っています 「言語はわかるがGUIがわからなかった。GUI難しい。」 / Twitter
- ytakanoさんはTwitterを使っています 「たしかに、生のLTL書くよりもPlusCalの方がわかりやすいな。」 / Twitter
- ytakanoさんはTwitterを使っています 「◇□PというLTLの式も出てくるので、知っておいた方がよさそうではある。」 / Twitter
- ytakanoさんはTwitterを使っています 「TLA+の演算子は一般的な関数で、関数が一般的なマップって感じかな。マップも関数も演算子もだいたい同じものだから、どう呼称しても良いからかな。」 / Twitter
- Danna@電網妄想さんはTwitterを使っています 「@ytakanoster その辺のTLA+の代数的構造がイマイチ分かりづらくて、その上、古いサンプルがテキストファイルだったりすると、もう読めない…修行が足らない…」 / Twitter
- ytakanoさんはTwitterを使っています 「@danna_2010 基本的に集合演算と述語論理なので、難しくはないんですが、構文がちょっと微妙な気がします。PlusCalは実践TLA+で初めて使ったのですが、時相論理を生で使うよりだいぶわかりやすい気もしました。」 / Twitter
- Danna@電網妄想さんはTwitterを使っています 「@ytakanoster PlusCalじゃないと分からんというのが私の感覚ですね…やっぱり修行が足らない…」 / Twitter
- ytakanoさんはTwitterを使っています 「『実践TLA+』を読み終わったら、『並行プログラミング入門』にあるアルゴリズムを検証してみるかな。」 / Twitter
- ytakanoさんはTwitterを使っています 「実践RLA+の3.3.2、 Flags = {“f1”, “f2”} で flags \in [Flags -> BOOLEAN] としたら、状態が15個になるってよくわからんな。」 / Twitter
- ytakanoさんはTwitterを使っています 「f1 |-> TRUE f1 |-> FALSE f2 |-> TRUE f2 |-> FALSE な気がするけれど。」 / Twitter
- ytakanoさんはTwitterを使っています 「わかった。検査を実行した後の状態か。」 / Twitter
- ytakanoさんはTwitterを使っています 「こうか。 [f1 |-> TRUE, f2 |-> TRUE] [f1 |-> TRUE, f2 |-> FALSE] [f1 |-> FALSE, f2 |-> TRUE] [f1 |-> FALSE , f2 |-> FALSE]」 / Twitter
- ytakanoさんはTwitterを使っています 「TLA+でナップザック問題をやってみて、PDFに出力してみたら綺麗になる。綺麗になるけれど使うかな? https://t.co/9j5oNIzk9R」 / Twitter
- ytakanoさんはTwitterを使っています 「記号が数式になってるのが利点か?」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+の6.1.1 「すべてのものはクラッシュする可能性がある」 の逆は 「すべてのものはクラッシュしない」 と言いたいのだろうけど、 P(x)を「xはクラッシュする可能性がある」とすると、元の文は ∀xP(x) となり、その否定は ¬∀xP(x)=∃x¬P(x) なので 「クラッシュしないものも存在する」となる。」 / Twitter
- ytakanoさんはTwitterを使っています 「まぁ、こんなのは、実際のところどうでも良いツッコミだけれどw」 / Twitter
- ytakanoさんはTwitterを使っています 「『並行プログラミング入門』の6.1.1と、『実践TLA+』の6.1で、弱い公平性と強い公平性について説明がある。 『並行プログラミング入門』の3.9でパン屋のアルゴリズムが、『実践TLA+』の6.4でデッカーのアルゴリズムがある。これらアルゴリズムはアトミック命令を使わない同期処理方法。」 / Twitter
- ytakanoさんはTwitterを使っています 「2冊読むと、実装とモデル検査が学べてお得感がある。」 / Twitter
- ytakanoさんはTwitterを使っています 「アトミック命令は必要なくても、メモリバリアは必要なので、アウトオブオーダーなRead/Writeとバリアもモデリングしないと。」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+、まさに実践でいいな。モデル検査の本て、やたら数学よりだったり、よくわからんパズル解いたり、自明な問題を解いたりという不満点があったがだいぶ解消されている気がする。」 / Twitter
- ytakanoさんはTwitterを使っています 「高専生が理解して使えるぐらいじゃないといけないが、述語論理のところわかるかな。どうだろう。」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+の7.4より。 二分探索のアルゴリズムの示されたのが1986年(https://t.co/Mj4OvWI9uM)で、それにオバーフローのバグがあると示されたのが2000年代(https://t.co/Uy8DQET5qi)。本では、そのバグを検証するコードもあって面白い。」 / Twitter
- Programming Pearls | ACM Other Books
- Google AI Blog: Extra, Extra - Read All About It: Nearly All Binary Searches and Mergesorts are Broken
- ytakanoさんはTwitterを使っています 「オーバフローは最近のコード検査機なら、入ってる気がするな。」 / Twitter
- ytakanoさんはTwitterを使っています 「リンクリストごときのモデリングが複雑すぎるな。」 / Twitter
- ytakanoさんはTwitterを使っています 「Haskellとかだとリンクリストのデータ型で循環構造が作れるのか。親を持たないノードも複数作れそう?Rustのリンクリストは非循環で親の持たないノードは必ず一つのみ。」 / Twitter
- ytakanoさんはTwitterを使っています 「集合演算と論理式で使用を記述する方法が、一般ITエンジニアまで浸透する未来はあるのかなあ。AIが自意識に目覚めるまで無さそう。」 / Twitter
- ytakanoさんはTwitterを使っています 「実コードとうまく融合できりゃあなあ」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+の9章読んだ。ゴースト変数の説明がちょっとわかりにくいかな?自分の認識だと、証明や検証に使うための変数で、ビジネスロジックには影響の与えない変数だが。」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+の10と11章は、手を動かしながらじゃ無いと理解が難しいな。」 / Twitter
- ytakanoさんはTwitterを使っています 「TLA+:PlusCalが直感的に書きやすい。デッドロックを自動で検査してくれる。時相論理でLiveness等も検査出来る。型エラーがわかりにくい。 Alloy:結果を図で表示してくれてとてもわかりやすい。型エラーがわかりやすい。通常のコードをモデリングするのに自分で状態遷移を書く必要があり面倒。」 / Twitter
- ytakanoさんはTwitterを使っています 「モデリングしても、モデリング自体が間違っている可能性が捨てきれない。その点、図で例を表示してくれるAlloyはいい。」 / Twitter
- ytakanoさんはTwitterを使っています 「並列処理はPlusCalが書きやすい。」 / Twitter
- ytakanoさんはTwitterを使っています 「実践TLA+一通り読んだ。11章はさすがに難しいので、今度実際にやってみるか。」 / Twitter
- 『実践TLA+』を読んだ - 未完成な論を綴るブログ
- ytakanoさんはTwitterを使っています 「形式手法、有用なんだがそれらを生業にしている人々が、リアルアプリケーションよりも、数学的な厳密さや証明ばかりに気を取られている印象。RFCなどのドラフトをバリバリ実装&検査していき、オープンソースで公開とかすればいくとかしないと、なかなか難しそう。」 / Twitter
- ytakanoさんはTwitterを使っています 「システム屋がやるべきか、理論屋がやるべきかは難しいところだ。両方やれば良いんだが。」 / Twitter
- ytakanoさんはTwitterを使っています 「システム屋的にはランニングコードで示してもらわないと、お話にならないしなあ。」 / Twitter
- ytakanoさんはTwitterを使っています 「両方をうまく融合できれば良いのだけれど、両方の会話をできる人が全然いない。Twitterには数名いそうだけど、ここは特殊空間すぎる。」 / Twitter
- ytakanoさんはTwitterを使っています 「一応補足しておくと、大学の研究室レベルでアプリケーションに対しても利用しているのは知っています。そうじゃなくて、高専の専門科目で普通に教えて、真面目に勉強した高専生なら普通に使えるぐらいにならないといけないよねという気持ちですね。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「私はこの意見には懐疑的で、実際に研究室どころか BigTech での採用が表に出てきています。「形式手法の実用は難しそう」というのは "実用" の範囲をそう決めているだけで、「三角関数なんて社会では使わない」と同タイプの言明に見えます。「高専生が使えるレベル」まで普及させる必然性がないです。」 / Twitter
- ytakanoさんはTwitterを使っています 「え、自分たちの力を入れている技術をもっと一般に広めようという気がない?せっかく良いものなのに、もったいないなあ。」 / Twitter
- ytakanoさんはTwitterを使っています 「線形型システムを真面目に実装してみているが、クロージャの変数キャプチャが難しい。他は多分できた。」 / Twitter
- ytakanoさんはTwitterを使っています 「概念はわかるんだが、実装がなあ。」 / Twitter
- u6k_yu1さんはTwitterを使っています 「形式手法は使いたいと思ってるけど、まず自分が習得するのが難しくて、次にそれを周囲に教育するのがもっと難しい…」 / Twitter
- ytakanoさんはTwitterを使っています 「そうなんだよなあ。使いたいのだけれど、AWSとかBigTech以外は使う必要なしって言われちゃうとなあ。」 / Twitter
- Kazuyoshi KatoさんはTwitterを使っています 「@ytakanoster AWS だと型式手法は結構使われていて、オープンソースになっているものだと、s2n-tls という TLS 実装の、HMAC がらみが https://t.co/WaX1j8NmK1 に、タイミングアタックに関するものが https://t.co/ApSaqZNelv にあります。」 / Twitter
- s2n-tls/tests/saw at main · aws/s2n-tls
- s2n-tls/tests/ctverif at main · aws/s2n-tls
- ytakanoさんはTwitterを使っています 「@kzys ありがとうございます!大学で簡単なモデル検査の講義をしていて、もっと大衆化するにはどうすればいいか悩んでいるところです。AWSなどの例は毎回説明はするのですが、それでもピンとこない人も多いので。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「修士でプログラム検証を専攻したけれども「形式手法の理論の発達に比して実際的なソフトウェアへ適用しやすくする方法はまだまだ貧弱でもうひと山ある」という感覚はとてもわかります(だから可能なら自分などが推し進めないといけないんだろうとは思っていますが……)」 / Twitter
- 画力・博士号さんはTwitterを使っています 「窮極的には,*実際的な* ソフトウェアとそれが満たしてほしい性質の何らかの述語的記述(可能な限り簡単に書けるとよい)とを入力しただけで OK・ダメ(+反例)・わからん のいずれかを出力するような検査器を実現すべきというヴィジョンはある」 / Twitter
- ガベージコレクション(RichardJones AntonyHosking EliotMoss 前田敦司 鵜川始陽 小宮常康) | 翔泳社の本
- ヘネシー&パターソン コンピュータアーキテクチャ 第5版 翻訳版ホームページ | Amano Lab
- 関数型リアクティブプログラミング 電子書籍(株式会社クイープ 株式会社クイープ AnthonyJones StephenBlackheath)|翔泳社の本
- 実用Common Lisp(Peter Norvig 杉本宣男)|翔泳社の本
- Scala逆引きレシピ(竹添直樹 島本多可子)|翔泳社の本
- 独習コンピュータ科学基礎II 論理構造(神林靖 James L. Hein)|翔泳社の本
- 最新コンパイラ構成技法(神林 靖 神林 靖 Andrew W. Appel 滝本 宗宏 滝本 宗宏)|翔泳社の本
- 入門Haskellプログラミング(Will Kurt 株式会社クイープ 株式会社クイープ)|翔泳社の本
- コンピュータプログラミングの概念・技法・モデル(Peter Van Roy Seif Haridi 羽永 洋 羽永 洋)|翔泳社の本
日経BP
- LINQテクノロジ入門 | 日経クロステック(xTECH)
- 日経BP SHOP|XQuery+XMLデータベース入門
- 日経BP SHOP|プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識
- 日経BP SHOP|チューリングを読む
- コンピュータの構成と設計 第5版 上|日経の本 日経BP
- コンピュータの構成と設計 第5版 下|日経の本 日経BP
- .NET&Windowsプログラマのためのデバッグテクニック徹底解説|日経の本 日経BP
放送大学教育振興会
- 「コンピューティング-原理とその展開-」 - 理学の本棚 - 東京大学 大学院理学系研究科・理学部
- コンピューティング-原理とその展開- - 放送大学教育振興会オンラインショップ
東京大学出版会
- 並列プログラミング入門 - 東京大学出版会
- 数理論理学 - 東京大学出版会
岩波書店
- システムプログラム入門 - 岩波書店
- 論理と意味 - 岩波書店
- アルゴリズムとプログラミング言語 - 岩波書店
- 論理とプログラム意味論 - 岩波書店
- Introduction to Computer Science
- プログラミング言語 (岩波書店): 1994-06|書誌詳細|国立国会図書館サーチ
- プログラミング言語処理系 (岩波書店): 1989|書誌詳細|国立国会図書館サーチ
- 記号処理プログラミング (岩波書店): 1988|書誌詳細|国立国会図書館サーチ
- 計算モデルの基礎理論 (岩波書店): 1991|書誌詳細|国立国会図書館サーチ
- プログラムの基礎理論 (岩波書店): 1991|書誌詳細|国立国会図書館サーチ
- モデルと表現 (岩波書店): 1992|書誌詳細|国立国会図書館サーチ
- ゲーデル 不完全性定理 - 岩波書店
- 論理学超入門 - 岩波書店
- 論理と計算のしくみ - 岩波書店
- 新版 バナッハ-タルスキーのパラドックス - 岩波書店
- 抽象数学の手ざわり - 岩波書店
- Prologのソフトウェア作法 - 岩波書店
近代科学社
- 近代科学社
- 近代科学社
- 近代科学社
- 近代科学社
- 演習プログラムの証明 (近代科学社): 1980|書誌詳細|国立国会図書館サーチ
- 近代科学社
- 近代科学社
- 近代科学社
- 近代科学社
- 近代科学社
- 近代科学社
- 近代科学社
- 近代科学社
- 近代科学社
技術評論社
- 80x86 80x87―ファミリー・テクニカルハンドブック | RobertL. Hummel, 槌田 浩一 |本 | 通販 | Amazon
- たのしいバイナリの歩き方:書籍案内|技術評論社
- プロセッサを支える技術 ― 果てしなくスピードを追求する世界:書籍案内|技術評論社
- コンピュータアーキテクチャ技術入門 ――高速化の追求×消費電力の壁:書籍案内|技術評論社
- 証明と論理に強くなる ~論理式の読み方から,ゲーデルの門前まで~:書籍案内|技術評論社
- WEB+DB PRESS Vol.60|技術評論社
- 「言語設計の基礎知識」本日発売! - 西尾泰和のはてなダイアリー
- プログラミング in OCaml 〜関数型プログラミングの基礎からGUI構築まで〜:書籍案内|技術評論社
- プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで
- WEB+DB PRESS総集編 [Vol.1~102]:書籍案内|技術評論社
- JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技:書籍案内|技術評論社
- はじめてのLisp関数型プログラミング――ラムダ計算からリファクタリングまで一気にわかる:書籍案内|技術評論社
- コーディングを支える技術――成り立ちから学ぶプログラミング作法(WEB+DB PRESS plusシリーズ)|gihyo.jp … 技術評論社
- 「コーディングを支える技術」著者公式ページ
- [増補改訂]関数プログラミング実践入門──簡潔で,正しいコードを書くために:書籍案内|技術評論社
- エキスパートのための MySQL[運用+管理]トラブルシューティングガイド:書籍案内|技術評論社
- MySQL Cluster構築・運用バイブル ~仕組みからわかる基礎と実践のノウハウ:書籍案内|技術評論社
- [改訂新版]内部構造から学ぶPostgreSQL 設計・運用計画の鉄則:書籍案内|技術評論社
共立出版
- 情報理論のための数理論理学 / 板井 昌典 著 | 共立出版
- スタックコンピュータ ―CISC/RISCとスタックアーキテクチャ― / Philip J.Koopman,Jr. 著 田中 清臣 監訳 藤井 敬雄 訳 | 共立出版
- 新しいプログラミング・パラダイム / 井田 哲雄 編 | 共立出版
- 続新しいプログラミング・パラダイム / 井田 哲雄 田中 二郎 編 | 共立出版
- 属性文法入門 | 今泉 貴史, 片山 卓也, 佐々 政孝, 篠田 陽一, 中田 育男, 西野 哲朗, 松田 裕幸, 情報処理学会 |本 | 通販 | Amazon
- プログラムスライシング技術と応用 / 下村 隆夫 著 | 共立出版
- 並列論理型言語GHCとその応用 / 淵 一博 監修 古川 康一 溝口 文雄 共編 | 共立出版
- プログラム変換 / 淵 一博 監修 古川 康一 溝口 文雄 共編 | 共立出版
- 制約論理プログラミング / 淵 一博 監修 溝口 文雄 古川 康一 J-L.Lassez 編 | 共立出版
- 応用論理 / 桔梗 宏孝 著 | 共立出版
- プログラム検証論 / 林 晋 著 | 共立出版
- プログラミング言語Standard ML入門 / 大堀 淳 著 | 共立出版
- 復刊 証明論入門 / 竹内 外史 八杉 満利子 共著 | 共立出版
- プログラミング言語の新潮流 / 井田 哲雄 著 | 共立出版
- 情報代数 / 小野 寛晰 著 | 共立出版
- 情報検索の基礎 / Christopher D.Manning Prabhakar Raghavan Hinrich Schutze 著 岩野 和生 黒川 利明 濱田 誠司 村上 明子 訳 | 共立出版
- 新装版 プログラミング言語の基礎理論 / 大堀 淳 著 | 共立出版
- 計算機代数の基礎理論 / 長坂 耕作 岩根 秀直 編著 北本 卓也 讃岐 勝 照井 章 鍋島 克輔 著 | 共立出版
- 新世代プログラミング / 淵 一博 黒川 利明 編著 | 共立出版
- 数学における証明と真理 ―様相論理と数学基礎論― / 菊池 誠 編 佐野 勝彦 倉橋 太志 薄葉 季路 黒川 英徳 菊池 誠 著 | 共立出版
- ヒルベルト数学の問題 ―ヒルベルトの問題― 増補版 / D.HILBERT 著 一松 信 訳・解説 正田 建次郎 吉田 洋一 監修 | 共立出版
- ペアノ数の概念について / G.PEANO 著 小野 勝次 梅沢 敏郎 訳・解説 正田 建次郎 吉田 洋一 監修 | 共立出版
- プログラム意味論 / 横内 寛文 著 | 共立出版
- 不完全性定理 / 菊池 誠 著 | 共立出版
- 計算科学のための並列計算 ―大規模計算への第一歩― / 金田 行雄 笹井 理生 監修 石井 克哉 編 | 共立出版
- 計算科学のための基本数理アルゴリズム / 金田 行雄 笹井 理生 監修 張 紹良 編 | 共立出版
- 数とは何か ―そしてまた何であったか― / 足立 恒雄 著 | 共立出版
- 計算で身につくトポロジー / 阿原 一志 著 | 共立出版
- 多変数関数論 / 若林 功 著 | 共立出版
- Transputer/occamによる並列プログラミング入門 / Ronald S.Cok 著 梅尾 博司 監訳 松田 稔 丸山 公雄 山本 正樹 訳 | 共立出版
- ソフトウェア千夜一夜物語 / Themsky 著 | 共立出版
- 続ソフトウェア千夜一夜物語 / Themsky 著 | 共立出版
- コンパイラ ―原理と構造― / 大堀 淳 著 | 共立出版
- コンパイラ ー 原理と構造
- 大堀 淳さんはTwitterを使っています 「ご指摘ありがとうございます.おっしゃる通り,p131の「トップレベルの導出:」の導出図の3つの(top)ラベルは誤りです.上からそれぞれ(nil),(val), (val)です.正誤表に反映させます.」 / Twitter
- 大堀 淳さんはTwitterを使っています 「これらの導出木などを含む誤りの修正の表示は、従来形式の正誤表では分かりにくいと思われるので、LaTeXML で正誤表を作成する予定です。GitHub PageにLaTeXMLの出力を埋め込むための環境を準備中です。」 / Twitter
- 大堀 淳さんはTwitterを使っています 「ちなみに、「コンパイラ 原理と構造」に関してでした。最初の引用ツイートに書き忘れので、追加のツイート。(twitterにあまり慣れていない...」 / Twitter
日本評論社
- 古森 雄一 のホームページ
- 圏論の歩き方|日本評論社
- 関数プログラミング|日本評論社
- 情報科学における論理|日本評論社
朝倉書店
- 朝倉書店| コンパイラの構成と最適化 (第2版)
- 朝倉書店| 数理論理学
- 数理情報学入門 : スコット・プログラム理論 (朝倉書店): 1982|書誌詳細|国立国会図書館サーチ
- 朝倉書店| パターンの発見 ―離散数学―
- 朝倉書店| パラドックスの不思議 ―論理と集合―
- 朝倉書店| コンピュータの思考法 ―計算モデル―
- 朝倉書店| コンピュータと数学
森北出版
- 形式的モデル化 離散事象/実時間/ハイブリッドシステムのモデル化と解析 | 森北出版株式会社
- 定理証明支援系とは何か、何ができるのか|森北出版|note
- Coq/SSReflect/MathCompによる定理証明 フリーソフトではじめる数学の形式化 | 森北出版株式会社
- 計算モデルとプログラミング | 森北出版株式会社
- 数学パズル ものまね鳥をまねる 愉快なパズルと結合子論理の夢の鳥物語 | 森北出版株式会社
- 定理のつくりかた | 森北出版株式会社
- よくわかるトポロジー | 森北出版株式会社
新潮社
- ジョージ・G・スピーロ、青木薫/訳 『ケプラー予想―四百年の難問が解けるまで―』 | 新潮社
- ロビン・ウィルソン、茂木健一郎/訳 『四色問題』 | 新潮社
遊星社
- 数学と新しい論理
- 述語論理・入門
- 構成的プログラミングの基礎
- 選択公理と数学
青土社
- 青土社 ||科学/数学/生物:コンピュータは数学者になれるのか?
- 青土社 ||科学/数学/生物:バナッハ=タルスキの逆説
裳華房
- <書籍紹介> 証明論と計算量(竹内外史 著)【数学】
- <書籍紹介> 本質から理解する 数学的手法(荒木 修・齋藤智彦 共著)【数学】
- <書籍紹介> 数学基礎論序説(田中一之 著)【数学】
- <書籍紹介> 手を動かしてまなぶ 集合と位相(藤岡 敦 著)【数学】
講談社
- 『数学にとって証明とはなにか ピタゴラスの定理からイプシロン・デルタ論法まで』(瀬山 士郎):ブルーバックス|講談社BOOK倶楽部
- 問題解決力を鍛える!アルゴリズムとデータ構造 | 書籍情報 | 株式会社 講談社サイエンティフィク
- 知の教科書 論理の哲学 (講談社選書メチエ) | 飯田 隆 |本 | 通販 | Amazon
- イラストで学ぶ 人工知能概論 | 書籍情報 | 株式会社 講談社サイエンティフィク
現代数学社
- 広がりゆくトポロジーの世界 —言語としてのホモトピー論— | 株式会社 現代数学社
- 数学の研究をはじめよう(Ⅳ)完全数の新しい世界 | 株式会社 現代数学社
丸善出版
- 数理論理学とタイプ理論 : 証明による真理へ (丸善): 1987|書誌詳細|国立国会図書館サーチ
- 統合化プログラミング環境―Smalltalk‐80とInterlisp‐D (ワークステーションシリーズ) | 上谷 晃弘 |本 | 通販 | Amazon
- ベーシック圏論 - 丸善出版 理工・医学・人文社会科学の専門書出版社
- プログラミング言語Go - 丸善出版 理工・医学・人文社会科学の専門書出版社
GUI
その他
Kindle
- Google Chrome ユーザーデータ自動軽量化Book | 柳井 政和 | 工学 | Kindleストア | Amazon
- 速習ECMAScript2018: 次世代の標準JavaScriptを今すぐマスター! 速習シリーズ | 山田祥寛 | 工学 | Kindleストア | Amazon
- curses―UNIXユーティリティライブラリ | ジョン ストラング, 菊池 彰 |本 | 通販 | Amazon
- The Craft of Text Editing―手作りのテキストエディタ | クレイグ・A. フィンゼス, Craig A. Finseth, 岩谷 宏 |本 | 通販 | Amazon
- HTML+スタイルシート徹底活用ガイド (SOFTBANK BOOKS) | 宮坂 雅輝 |本 | 通販 | Amazon
- 朝倉書店| GUIライブラリの仕組み ―ソフトウェア設計のケーススタディ―
- IBM PCビデオシステムプログラミング (ソフトバンク出版事業部): 1994|書誌詳細|国立国会図書館サーチ
- 秀和システム:フルスクラッチによるグラフィックスプログラミング入門
- 並列処理シリーズ 並列図形処理|コロナ社
- Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法 - インプレスブックス
- 書籍詳細|株式会社 C&R研究所
CQ出版
- [絶版2008.9.4] JPEG2000詳細解説
- [絶版2008.8.19] よくわかる動画・静止画の処理技術
- No.6(2010・SUMMER) 目次|ディジタル・デザイン・テクノロジ
技術評論社
- 検索エンジン自作入門 ~手を動かしながら見渡す検索の舞台裏:書籍案内|技術評論社
- Androidを支える技術〈Ⅰ〉──60fpsを達成するモダンなGUIシステム:書籍案内|技術評論社
- 2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー:書籍案内|技術評論社
- ブラウザのしくみ:書籍案内|技術評論社
- Webフロントエンド ハイパフォーマンス チューニング:書籍案内|技術評論社
- オンラインゲームを支える技術 ―壮大なプレイ空間の舞台裏:書籍案内|技術評論社
- クラウドゲームをつくる技術 ―マルチプレイゲーム開発の新戦力:書籍案内|技術評論社
- CSS設計完全ガイド ~詳細解説+実践的モジュール集:書籍案内|技術評論社
アスキー
- プログラミングWideStudio―オープンソース、マルチプラットフォーム対応統合開発環境 (ASCII SOFTWARE SCIENCE Language) | 平林 俊一, 末竹 弘之, 白沢 克年, 玉木 徹, 重 俊博, 山崎 亮, 金 泰斗, 山本 清, おぐら ともふみ |本 | 通販 | Amazon
- termcap&terminfo (NUTSHELL HANDBOOK) | ジョン ストラング, ティム オレイリー, リンダ ムイ, John Strang, Tim O’Reilly, Linda Mui, 鈴木 麗 |本 | 通販 | Amazon
- グラフィックファイルフォーマット・ハンドブック | David C.Kay, John R.Levine, MbCD |本 | 通販 | Amazon
O'Reilly Japan
- O'Reilly Japan - 初めてのJavaScript 第3版
- O'Reilly Japan - SVGエッセンシャルズ 第2版
- O'Reilly Japan - CSSシークレット
- O'Reilly Japan - CSSクックブック
- O'Reilly Japan - 実用Git
- O'Reilly Japan - PDF構造解説
- O'Reilly Japan - マイクロインタラクション
- O'Reilly Japan - Reactハンズオンラーニング 第2版
アンテナハウス
- 『PDFインフラストラクチャ解説 電子の紙PDFとその周辺技術を語り尽す』 | アンテナハウス PDF資料室
- 『タグ付きPDF 仕組と制作方法解説』Kindle版とプリントオンデマンド版発売になりました。 | 電子書籍、電子出版のCAS-UBブログ
- 目次:MathML 数式組版入門
マイナビ出版
- マイナビ ブックス - 目次
- 未来をつくった人々 : ゼロックス・パロアルト研究所とコンピュータエイジの黎明 (毎日コミュニケーションズ): 2001|書誌詳細|国立国会図書館サーチ
- 未来をつくった人々 - Wikipedia
- HTML&CSS―HTML4.01&CSS2対応 (速効!ポケットマニュアル) | 森 理浩 |本 | 通販 | Amazon
- CSSグリッドレイアウト デザインブック | マイナビブックス
OS
その他
Kindle
- Windows Installer技術 | 福間通人 | 工学 | Kindleストア | Amazon
- Amazon.co.jp: ディベロッパー・エクスペリエンス Linux Ext2ファイルシステム eBook: Nina Petipa: Kindleストア
- Bluetooth LE入門 スマホにつながる低消費電力無線センサの開発をはじめよう|書籍情報|秀和システム
- オペレーティングシステム入門 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- [改訂版]コンピュータと素因子分解
- はじめての数論 原著第3版[丸善出版]
- Inside Windowsファイルフォーマット (カットシステム): 1995|書誌詳細|国立国会図書館サーチ
- ソフトウェア実行/開発環境 (岩波書店): 1992|書誌詳細|国立国会図書館サーチ
- 分散オペレーティングシステム ―UNIXの次にくるもの― / 前川 守 所 真理雄 清水 謙多郎 編 | 共立出版
- ゼロからのOS自作入門 | マイナビブックス
- 『ゼロからのOS自作入門』に込めた思い - uchan note
ピアソンエデュケーション
- Solarisインターナル―カーネル構造のすべて | ジム モーロ, リチャード マクドゥーガル, Jim Maure, Richard McDougall, 福本 秀, 細川 一茂, 佐藤 敬, 兵頭 武文, 大嶺 朋之 |本 | 通販 | Amazon
- Amazon | Win32システムサービスプログラミング―Windows NT/95システムAPIリファレンス (Windows programming technique) | マーシャル・ブレイン, 郡司 芳昭, 三田 典玄 | Web構築・管理
トムソン
- プログラマーのためのDCE入門 | ワード ローゼンベリー, ゲリー フィッシャー, デビッド ケニー, Ward Rosenberry, Gerry Fisher, David Kenney, 中田 温朗 |本 | 通販 | Amazon
- DCEプログラミングガイド | ジョン シャーリー, デビット マギッド, ウェイ フー, John Shirley, David Magid, Wei Hu, 中田 温朗 |本 | 通販 | Amazon
- DCEとWindows NT―対応アプリケーションのプログラミング | ワード ローゼンベリー, ジム ティーグ, Ward Rosenberry, Jim Teague, 望月 康司 |本 | 通販 | Amazon
オーム社
- USBオーディオデバイスクラスの教科書 | コンピュータ・一般書,ハードウェア・自作,その他 | Ohmsha
- sonic1.biz/front_page.htm
- マスタリングTCP/IP SNMP編 | コンピュータ・一般書,ネットワーク構築,プロトコル | Ohmsha
- IT Text オペレーティングシステム(改訂2版) | Ohmsha
ラムダノート
- プロフェッショナルSSL/TLS(紙書籍+電子書籍) – 技術書出版と販売のラムダノート
- 書評:プロフェッショナルSSL/TLS - ぼちぼち日記
- プロフェッショナルSSL/TLS 1.2章
- OpenSSLクックブック(電子書籍のみ) – 技術書出版と販売のラムダノート
- プロフェッショナルIPv6 – 技術書出版と販売のラムダノート
SBクリエイティブ
- WinSock関連リンク集
- WinSock2 プログラミング 改訂第2版
- SBクリエイティブ:最新 Windows Vistaプログラミング徹底理解
- 『暗号技術入門 第3版 秘密の国のアリス』
- SBクリエイティブ:動かして学ぶセキュリティ入門講座
- UNIXカーネル内部解析―キャッシュとマルチプロセッサの管理 (プロフェッショナルコンピューティングシリーズ) | カート シメル, Curt Schimmel, 岩本 信一 |本 | 通販 | Amazon
- DNSがよくわかる教科書 | SBクリエイティブ
アスキー
- SOUND BLASTERオフィシャルブック (マルチメディアプログラミング―Disk book) | Richard Heimlich, Peter M. Ridge, David M. Golden, Ivan Luk |本 | 通販 | Amazon
- Panic!―UNIXシステムクラッシュの追求と対策 (サンソフトプレスシリーズ) | 福崎 俊博, Chris Drake, Kimberley Brown |本 | 通販 | Amazon
- Amazon | プログラミングWindows第5版〈上〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series) | チャールズ ペゾルド, Charles Petzold, 長尾 高弘, ロングテール | Web構築・管理
- プログラミングWindows第5版〈下〉Win32 APIを扱う開発者のための決定版! (Microsoft Programming Series) | チャールズ ペゾルド, Charles Petzold, 長尾 高弘, ロングテール |本 | 通販 | Amazon
- Amazon | Inside OLE (マイクロソフトプレスシリーズ) | Kraig Brockschmidt, エー・ピー・ラボ, 長尾 高弘 | ソフトウェア開発・言語
- Amazon | Inside COM―Microsoft’s Component Object Model (Microsoft programming series) | Dale Rogerson, バウングローバル株式会社 | ソフトウェア開発・言語
- termcap&terminfo (NUTSHELL HANDBOOK) | ジョン ストラング, ティム オレイリー, リンダ ムイ, John Strang, Tim O’Reilly, Linda Mui, 鈴木 麗 |本 | 通販 | Amazon
- UNIX Cプログラミング (NUTSSHELL HANDBOOKS) | デビッド・A. クリ, アスキー書籍編集部 |本 | 通販 | Amazon
- Xinuオペレーティングシステムデザイン 改訂2版 - アスキードワンゴ
コロナ社
- 実践サイバーセキュリティモニタリング|コロナ社
- 暗号ハードウェアのセキュリティ | コロナ社
O'Reilly Japan
- O'Reilly Japan - Bluetooth Low Energyをはじめよう
- O'Reilly Japan - 詳解 Linuxカーネル 第3版
- O'Reilly Japan - Real World HTTP
- O'Reilly Japan - 入門 監視
CQ出版
- 改訂新版 パソコン・インターフェース規格入門(SP No.94)
- PCI Express設計の基礎と応用
- FPGAでゼロから作るPCI Express
- 定番!超軽量マイコン用ファイル・システムFatFs
- 組み込み機器へのUSBホスト実装技法
- USB 3.0設計のすべて
- シリアルATAの基礎とFPGAへの実装
- [品切れ重版未定2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
- [絶版2011.9.8] リアルタイム/マルチタスクシステムの徹底研究
- 全部ネット接続!Ethernetマイコン・プログラミング
- USB Type-Cのすべて
工学社
- 書籍情報―OpenCV3ではじめる Windowsアプリ開発
- OpenCV3ではじめる Windowsアプリ開発
- 次世代OSアーキテクチャ―QNXオペレーティング・システムの世界 「マイクロカーネルOS」と「ネットワーク分散処理」 | 鈴木 治 |本 | 通販 | Amazon
- 書籍情報―「USB TypeC」の基礎知識
- 書籍情報―実践「USB TypeC」
翔泳社
- Amazon | Windows 98 APIバイブル シェル・シェルユーティリティ・印刷・IME・追加関数編 (Programmer’s Selection) | ガリバー, 長谷川 勝規 | Windows
- COM IDL&インターフェイスデザイン (Programmer’s SELECTION) | アル メジャー, 萩原 正義, Al Major, 夏目 大 |本 | 通販 | Amazon
- ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ第5版(鈴木貢 中條拓伯 John L. Hennessy David A. Patterson 天野英晴 吉瀬謙二 佐藤寿倫)|翔泳社の本
日経BP社
- プログラミングWindows Runtime|日経BPブックナビ【公式サイト】
- 日経BP書店|目次 -
- Advanced Windows : Microsoft Visual Studio 2008 (日経BPソフトプレス): 2008|書誌詳細|国立国会図書館サーチ
- APIで学ぶWindows徹底理解 (日経BPパソコンベストムック) | 安室 浩和, 日経ソフトウエア編 |本 | 通販 | Amazon
- APIで学ぶWindowsプログラミング (日経BPパソコンベストムック) | 安室 浩和, 日経ソフトウエア |本 | 通販 | Amazon
- 日経ソフトウエア 2010年 04月号 [雑誌] | 日経ソフトウエア |本 | 通販 | Amazon
- COM+テクノロジガイド (マイクロソフト公式解説書―最新テクノロジシリーズ) | デイビット プラット, David S. Platt, 豊田 孝 |本 | 通販 | Amazon
技術評論社
- 3分間HTTP &メールプロトコル基礎講座 : 世界一わかりやすいネットワークの授業 (技術評論社): 2010|書誌詳細|国立国会図書館サーチ
- Firefox OS 【決定版】 開発ガイドブック:書籍案内|技術評論社
- Androidを支える技術〈Ⅱ〉──真のマルチタスクに挑んだモバイルOSの心臓部:書籍案内|技術評論社
- [Web開発者のための]大規模サービス技術入門 ―データ構造,メモリ,OS,DB,サーバ/インフラ(WEB+DB PRESS plusシリーズ)|gihyo.jp … 技術評論社
- [増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎]:書籍案内|技術評論社
- GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎]:書籍案内|技術評論社
- TCP技術入門 ――進化を続ける基本プロトコル:書籍案内|技術評論社
森北出版
- 情報セキュリティの理論と技術 暗号理論からICカードの耐タンパー技術まで | 森北出版株式会社
- Javaで作って学ぶ暗号技術 RSA,AES,SHAの基礎からSSLまで | 森北出版株式会社
機械学習
その他
- 作品紹介:パターン認識と機械学習の学習普及版 :暗黒通信団
- 図解でわかる多変量解析 : データの山から本質を見抜く科学的分析ツール 涌井 良幸(著/文)…他1名(日本実業出版社)| 版元ドットコム
- 概念記憶システムの研究―概念記憶の意味ネットワークモデルと連想プロセッサによる実現法 (1982年) | 嶋津 好生 |本 | 通販 | Amazon
- 発語内行為の意味ネットワーク―言語行為論からの辞書的対話事例分析 (松山大学言語・情報研究センター叢書) | 久保 進, 越智 希美子, 向井 留実子, 阿部 桂子, 鈴木 光代 |本 | 通販 | Amazon
- CiNii 図書 - C言語によるエキスパートシステム : シェルの実例と知識表現
- CiNii 図書 - エキスパートシステムの設計と開発
- 近代科学社
- 知識と推論 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社
- 確率的言語モデル - 東京大学出版会
- 考えることの科学|新書|中央公論新社
- ニューロ・ファジィ・遺伝的アルゴリズム (産業図書): 1994|書誌詳細|国立国会図書館サーチ
- 1次近似で視る多変数の微分積分 (学術図書出版社): 2013|書誌詳細|国立国会図書館サーチ
- 統計分布を知れば世界が分かる|新書|中央公論新社
- ヒトの言葉 機械の言葉 「人工知能と話す」以前の言語学 川添 愛:一般書 | KADOKAWA
- 形式意味論入門 株式会社開拓社
- 書籍情報―ファジーで データを読む
- アブダクション - 株式会社 勁草書房
- <書籍紹介> 数理モデル入門(齋藤誠慈 著)【数学】
- リックテレコム 書籍情報
技術評論社
- Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド―:書籍案内|技術評論社
- Pythonクローリング&スクレイピング[増補改訂版] ―データ収集・解析のための実践開発ガイドー:書籍案内|技術評論社
- サポートページ:日本語入力を支える技術 ―変わり続けるコンピュータと言葉の世界:|技術評論社
- 機械学習を解釈する技術〜予測力と説明力を両立する実践テクニック:書籍案内|技術評論社
岩波書店
- 知識と推論 (岩波書店): 1988|書誌詳細|国立国会図書館サーチ
- 自然言語処理 (岩波書店): 1996|書誌詳細|国立国会図書館サーチ
- 認識と学習 (岩波書店): 1989|書誌詳細|国立国会図書館サーチ
- 言語の獲得と喪失 (岩波書店): 1999|書誌詳細|国立国会図書館サーチ
- キーポイント 多変数の微分積分 - 岩波書店
- サンプリングって何だろう - 岩波書店
共立出版
- 確率的グラフィカルモデル / 鈴木 譲 植野 真臣 編著 黒木 学 清水 昌平 湊 真一 石畠 正和 樺島 祥介 田中 和之 本村 陽一 玉田 嘉紀 著 | 共立出版
- 微分積分学講義 / 野村 隆昭 著 | 共立出版
- 数値計算の常識 / 伊理 正夫 藤野 和建 著 | 共立出版
- 線形代数入門 : 理論と計算法徹底ガイド 松本 和一郎(著/文)(共立)| 版元ドットコム
- 言語を獲得するコンピュータ / 日本認知科学会 編 錦見 美貴子 著 | 共立出版
- 最小二乗法・交互最小二乗法 / 森 裕一 黒田 正博 足立 浩平 著 | 共立出版
- 知識の帰納的推論 / E.Y.Shapiro 著 淵 一博 監修 有川 節夫 訳 | 共立出版
- 定性推論 / 淵 一博 監修 溝口 文雄 古川 康一 安西 祐一郎 共編 | 共立出版
- イプシロン‐デルタ / 田島 一郎 著 | 共立出版
- 線形代数セミナー ―射影,特異値分解,一般逆行列― / 金谷 健一 著 | 共立出版
- 欠測データ処理 ―Rによる単一代入法と多重代入法― / 高橋 将宜 渡辺 美智子 著 | 共立出版
- 点過程の時系列解析 / 近江 崇宏 野村 俊一 著 | 共立出版
- ファジィ時系列解析 / 渡辺 則生 著 | 共立出版
- 計算代数統計 ―グレブナー基底と実験計画法― / 青木 敏 著 | 共立出版
- データマイニングによる異常検知 / 山西 健司 著 | 共立出版
- EMアルゴリズム / 黒田 正博 著 | 共立出版
内田老鶴圃
- 内田老鶴圃/書籍詳細/統計学への確率論,その先へ
- Papers and Preprints
- sonosakie.pdf
オーム社
- 続・わかりやすい パターン認識 -教師なし学習入門- | 理工学専門書,情報科学,知識科学・人工知能 | Ohmsha
- 【書評】続・わかりやすいパターン認識 -教師なし学習入門- - old school magic
- 知的連想メモリマシン (オーム社): 1989|書誌詳細|国立国会図書館サーチ
- グッド・マス ギークのための数・論理・計算機科学 | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha
- IT Text データマイニングの基礎 | Ohmsha
- 進化計算アルゴリズム入門 生物の行動科学から導く最適解 | Ohmsha
森北出版
- フリーソフトでつくる音声認識システム(第2版) パターン認識・機械学習の初歩から対話システムまで | 森北出版株式会社
- はじめてのパターン認識 | 森北出版株式会社
- はじめての数理論理学 証明を作りながら学ぶ記号論理の考え方 | 森北出版株式会社
- 待ち行列と確率分布 情報システム解析への応用 | 森北出版株式会社
- Pythonではじめる 情報検索プログラミング|森北出版株式会社
丸善出版
- keiichiro shikano λ♪さんのツイート: "PRML、無償ダウンロードだと。。 https://t.co/vXEwlTZLnr"
- パターン認識と機械学習 上[丸善出版]
- PRML演習問題 全問解答 | 機械学習の教科書の決定版【パターン認識と機械学習】の演習問題の全てを詳しく解答・解説
- New Book: Knowledge Representation and Fast Inferences
- 情報学シリーズ2
- 機械学習の品質問題 - 丸善出版 理工・医学・人文社会科学の専門書出版社
CQ出版
- RFワールドNo.30 - 目次
- RFワールドNo.32 - 目次
- 改訂新版 データの符号化技術と誤り訂正の基礎
朝倉書店
- 朝倉書店| しくみがわかる深層学習
- 朝倉書店| サンプルサイズの決め方
- 朝倉書店| 機械学習 ─データを読み解くアルゴリズムの技法─
- 朝倉書店|入門 統計的因果推論
- 朝倉書店| しくみがわかるベイズ統計と機械学習
牧野書店
- 複雑系のための基礎数理 : べき乗則とツァリスエントロピーの数理 (牧野書店): 2010|書誌詳細|国立国会図書館サーチ
- 情報幾何学の基礎 = FOUNDATIONS OF INFORMATION GEOMETRY (牧野書店): 2015|書誌詳細|国立国会図書館サーチ
- 積分幾何学入門 (牧野書店): 2016|書誌詳細|国立国会図書館サーチ
講談社
- 『高次元空間を見る方法 次元が増えるとどんな不思議が起こるのか』(小笠 英志):ブルーバックス|講談社BOOK倶楽部
- 新しい微積分<上> | 書籍情報 | 株式会社 講談社サイエンティフィク
- データ分析のためのデータ可視化入門 | 書籍情報 | 株式会社 講談社サイエンティフィク
- 関係データ学習 | 書籍情報 | 株式会社 講談社サイエンティフィク
- サポートベクトルマシン | 書籍情報 | 株式会社 講談社サイエンティフィク
海文堂出版
- ソフトコンピューティング (海文堂出版): 1998|書誌詳細|国立国会図書館サーチ
- 海文堂出版株式会社
コロナ社
- 自然言語処理シリーズ 構文解析|コロナ社
- 自然言語処理シリーズ 10 文脈解析 - 述語項構造・照応・談話構造の解析 - | コロナ社
- 自然言語処理シリーズ 8 トピックモデルによる統計的潜在意味解析 | コロナ社
- 知能システム工学入門 | コロナ社
- マルチエージェントシステムの基礎と応用 - 複雑系工学の計算パラダイム - | コロナ社
くろしお出版
- 基礎日本語文法・改訂版|くろしお出版WEB
- 日本語文法の形式理論|くろしお出版WEB
ソシム
- データ分析のための数理モデル入門本質をとらえた分析のために(東京大学先端科学技術研究センター 江崎貴裕) | 書籍 本 | ソシム
- 分析者のためのデータ解釈学入門データの本質をとらえる技術(東京大学先端科学技術研究センター 江崎貴裕) | 書籍 本 | ソシム
O'Reilly Japan
- O'Reilly Japan - 仕事ではじめる機械学習 第2版
- O'Reilly Japan - word2vecによる自然言語処理
- だめぽラボ@技術書典9さんはTwitterを使っています 「確率を数学的に扱った本は「全測度が1の空間がどーのこーの」みたいな記述(定義)から始まり、確率をお気持ちで扱う本はそうではない」 / Twitter
- lotzさんはTwitterを使っています 「そんなあなたにゲーム論的確率論👀」 / Twitter
- クリーンアーキテクチャなんてものはない(クリーンアーキテクチャーの読み方) - プログラマのはしくれダイアリー
規格
JIS
DSSSL
- JIS X 4153:1998 文書スタイル意味指定言語(DSSSL) | 日本規格協会 JSA Group Webdesk
- JIS X 4153:1998/AMENDMENT 1:2002 文書スタイル意味指定言語(DSSSL)(追補1) | 日本規格協会 JSA Group Webdesk
- JIS X 4153:1998/AMENDMENT 2:2005 文書スタイル意味指定言語(DSSSL)(追補2) | 日本規格協会 JSA Group Webdesk
- CSSになり損ねた言語たち | POSTD
- Document Style Semantics and Specification Language - Wikipedia
- Document Style Semantics and Specification Language - Wikipedia
- DSSSL
- SGML/XML + DSSSL/CSS/XSL を活用する
- スタイルシート=CSSではない - パソコンQ&A
- ネクストソリューション株式会社SGML、XML、DSSSLに関するご質問|よくある質問 | ネクストソリューション株式会社
- 令掛ベインさんはTwitterを使っています 「CSSが定着する前のスタイルシートの話をみてる / [The Languages Which Almost Became CSS - Eager Blog](https://t.co/EIzEwXGNDY)」 / Twitter
- The Languages Which Almost Became CSS - Eager Blog
- 令掛ベインさんはTwitterを使っています 「いちからGUIツールキットのスタイルシートを設計するとしたらどういうものにすべきか、というのは興味ある」 / Twitter
長音符号
- jicchoさんはTwitterを使っています 「コンパイラーとかインタープリターとか書いちゃってる企業ブログは信じない方が良い technical termすら知らないようなきちんと学んだことない人が書いてるから」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 最後を長音にするからですか?」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 もしそうなら,最近規格が変わったので,最後を長音にしても間違いではないです。 https://t.co/loq6Pdnvb6」 / Twitter
- 外来語やカタカナ用語末尾に長音(ハイフン)をつけて伸ばした方が良い?29歳、離婚しました。
- jicchoさんはTwitterを使っています 「@zacky1972 間違いではないことは知っています。 長音は略しても略さなくても良いことになりましたが、依然として、「専門分野の標準」を用いることが推奨されています。 なので、コンパイラと表記する方がより正しいと思います。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 この場合の「専門分野の標準」とは具体的に何を指しますか?」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 これですか? https://t.co/Ah4sDEllsH」 / Twitter
- カタカナ語末尾の長音符号に対する情報処理学会の対応について-情報処理学会
- jicchoさんはTwitterを使っています 「@zacky1972 はい、情報処理学会もそういう流れですし、世界的名著であるドラゴンブックやタイガーブックは標準といっても差し支えないと考えています。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 ドラゴンブックやタイガーブックはもともと洋書なので,日本語表記をどう定めるというのは翻訳者の意向に依るものだと思います。翻訳の年を確認していませんが,おそらく規格が変わる前なのでは?とも思います。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 また情報処理学会の表記は「当面」「見直す」という言葉が使われていて,暫定的なものであることを臭わせています。したがって末尾の長音の使用を強く禁ずる立場ではないと推察できます。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 以上のような意図を汲んで「コンパイラー」というような表記をあえて使用するケースも想定されます。私自身あえて使用する場合もあります。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 「見直す」ではなくて「再検討する」でしたね。」 / Twitter
- jicchoさんはTwitterを使っています 「@zacky1972 もちろん僕も情報処理学会も長音の使用を禁止してはいませんよ。 ドラゴンブックなどを翻訳したのは僕のボスとボスのボスなので、そこまでおっしゃるならもはや流派の問題なのでしょうか? コンパイラーと意図的に表記する場合は具体的にどのような場合なのでしょうか?」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 基本どちらでも良いのですが,あえて使い分けるのでしたら,末尾長音を取るのは経産省の流儀で,つけるのは文化庁やその上部組織である文科省の流儀です。また役所の都合かと言われそうですけど。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 私が言いたかったのは「コンパイラーとかインタープリターとか書いちゃってる企業ブログは信じない方が良い」という判別法は,今は使えないということです。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 同じことがNVIDIAとかARMにも言えて,本家自身が表記揺れを出している状況です。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 表記で判別するのではなく,中身を見ましょうということです。」 / Twitter
- jicchoさんはTwitterを使っています 「@zacky1972 慣例でも学会でも主要な本や論文でも長音がなく、かつ、長音なしが推奨されているのにも関わらず敢えて使う理由が僕には見つかりませんね。 まぁ信じない方がいいというのは極論&ネタですが、慣例や推奨されているのを知った上で敢えて使い続けるのもどうかと思います。 読みづらいですしね。」 / Twitter
- jicchoさんはTwitterを使っています 「みなさん色々な意見をお持ちのようですが、「コンパイラー」という表記は間違いではないです。 ただ、慣例では「コンパイラ」の表記であり、学会や主要な文献でも長音がなく、どっちでもいいとはいえ慣例に従うのが推奨されているので、「コンパイラ」の方がより適切だと言うのが僕の考えです。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 威勢が良くていいですね。 自分で書く分には好きな記法で書けば良いと思います。」 / Twitter
- 「サーバー」「サーバ」どっち? ~外来語の長音”ー”表記 | The Material World
- JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk
- JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
- JIS X 4156:2005 ハイパテキストマーク付け言語(HTML)
- JIS X 4168:2004 段階スタイルシート 水準1(CSS1)
- JIS X 5603:1990 開放型システム間相互接続の抽象構文記法1(ASN.1)仕様/Open Systems Interconnection -- Specification of Abstract Syntax Notation One (ASN.1) 日本規格協会 JSA Webdesk
- JIS X 3017:2013 プログラム言語Ruby | 日本規格協会 JSA Group Webdesk
- JIS X 3061:2021 JSONデータ交換フォーマット | 日本規格協会 JSA Group Webdesk
- JIS X 0301:2002 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記 | 日本規格協会 JSA Group Webdesk
- JIS X 0301:2002/AMENDMENT 1:2019 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記(追補1) | 日本規格協会 JSA Group Webdesk
- JIS X 0612:2015 ユニバーサルディスクフォーマット(UDF)1.50 | 日本規格協会 JSA Group Webdesk
- JIS X 0611:2018 ユニバーサルディスクフォーマット(UDF)2.01 | 日本規格協会 JSA Group Webdesk
- JIS X 6235:2015 DVD-レコーダブルディスク(DVD-R)のボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
- ODF 1.3 approved as OASIS Committee Specification - The Document Foundation Blog
- JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
- JIS X 0836:2005 ダブリンコアメタデータ基本記述要素集合 | 日本規格協会 JSA Group Webdesk
- JIS X 4158:2005 XML名前空間 | 日本規格協会 JSA Group Webdesk
- JIS X 4159:2005 拡張可能なマーク付け言語(XML)1.0 | 日本規格協会 JSA Group Webdesk
- JIS X 4169:2007 XSL変換(XSLT)1.0 | 日本規格協会 JSA Group Webdesk
- JIS X 4176:2005 XMLリンク付け言語(XLink)1.0 | 日本規格協会 JSA Group Webdesk
- JIS X 4177-2:2005 文書スキーマ定義言語(DSDL)―第2部:正規文法に基づく妥当性検証―RELAX NG | 日本規格協会 JSA Group Webdesk
- JIS X 4177-2:2005/AMENDMENT 1:2007 文書スキーマ定義言語(DSDL)―第2部:正規文法に基づく妥当性検証―RELAX NG(追補1) | 日本規格協会 JSA Group Webdesk
- JIS X 4178:2007 XMLフォーム言語(XForms)1.0 | 日本規格協会 JSA Group Webdesk
- JIS X 5810-1:2008 多目的インターネットメール拡張(MIME)―第1部:インターネットメッセージ本体のフォーマット | 日本規格協会 JSA Group Webdesk
ICN
- IoT向けの新技術を既存のTCP/IPと共存、国内発の技術が国際規格に承認:IoTの大量導入で起こるネットの混雑を防止 - @IT
- IPアドレスに縛られない新しい通信識別技術と既存のインターネットが共存するための国際規格が発行されました (METI/経済産業省)
- 電気電子工学科の横谷哲也教授が主導してきたIoTプラットフォームが国際標準として出版。IoTの普及促進に向けIoTプラットフォームを規定。大学院生も調査分析及び原理検証に貢献 | ニュース | KIT 金沢工業大学
- ISO - ISO/IEC 30161:2020 - Internet of Things (IoT) — Requirements of IoT data exchange platform for various IoT services
- 研究会 - IoT関連技術の国際標準化動向とIoT DEPの提案
- Publicly Available Standards
- 日本規格協会 - JSA Webdesk
- JIS公示 | IPSJ/ITSCJ
- JIS(日本工業標準)関係
- MCPC-モバイルコンピューティング推進コンソーシアム
- CIPA 一般社団法人カメラ映像機器工業会: ホーム
- JEITA 電子情報技術産業協会
- 標準規格(放送分野)一覧表|一般社団法人 電波産業会
- JIS法改正(産業標準化法)(METI/経済産業省)
- 工業標準化法 - Wikipedia
- 日本工業規格 - Wikipedia
- 総務省|標準化の推進|デジュール及びフォーラム標準に関する標準化活動の強化に資する調査
- ISO - ISO/IEC 646:1991 - Information technology — ISO 7-bit coded character set for information interchange
- ISO 80000-2:2019 量及び単位-第2部:数学 | 日本規格協会 JSA Group Webdesk
- ytakanoさんはTwitterを使っています 「身体的性別は、ISO 5218だと、不明、男性、女性、適用不能なのか。 https://t.co/wkLype3FKm」 / Twitter
- ISO 5218 - Wikipedia
- Keigo ImaiさんはTwitterを使っています 「プログラミングの例題でササっと住所とか名前とか年齢を扱うことはままあるだけど、このようにすれば性別も気兼ねなく扱ってよいのかもしれない https://t.co/48YYSEmWWN」 / Twitter
- ISO/IEC 5218 - Wikipedia
- 【ゴダイゴ】銀河鉄道999をピアノで弾いてみました - YouTube
- Justin Bieber, Mariah Carey - All I Want For Christmas Is You (SuperFestive!) (Shazam Version) - YouTube
- 国立国会図書館サーチ(NDL Search)
- 【無料】PDFをWordに変換 - Adobe 公式 | Adobe Acrobat
- LibreOffice Writer のショートカットキー - LibreOffice Help
- Libreoffice Writer ページ移動:ubuntu & LibreOffice:So-netブログ
- Text to Speech | Microsoft Azure
- ビジネスインテリジェンスおよび分析ソフトウェア
- Overleaf, オンラインLaTeXエディター
翻訳
- DeepL翻訳
- Linguee | Dictionary for German, French, Spanish, and more
- Google 翻訳
- Google翻訳コミュニティの間違った使い方 - アラフォー女子大生キャリアカウンセラー日記
- 英語翻訳 - エキサイト翻訳
- Grammarly: Free Writing Assistant
- OmegaTのHTMLファイルフィルターを移行した話 - 水底の血
- Firefoxにローカルで動作する自動翻訳機能が追加される - GIGAZINE
- Software – Bergamot
- chikoskiさんのツイート: "GitLocalize使ってみてるんですが、結構MLによる自動翻訳の精度が高くて驚いてる。https://t.co/GNzX93qosX ローカライズ前のファイル名とローカライズ後のファイル名の対応ルールを、もう少し柔軟にかけたら、もっといいのになー、って思いながら、1つずつファイルを追加してる。"
- GitLocalize – Continuous Localization for GitHub Projects
- chikoskiさんのツイート: "新規の翻訳は本当に楽でいい。更新された時の差分表示がわかりやすいといいなあ。MDNは差分の把握が本当に大変で、そのせいで原文の更新の反映作業をやろうって気になかなかなれずにいるし…"
- chikoskiさんのツイート: "GitLocalizeでローカライズ→GitLocalize場でレビュー→GitHubへpull request送信→GitHubでマージ、とういう流れ。自分でやった翻訳と、MLによる翻訳は別のコミットとして扱われている点が興味深かった。よくできてるな。"
- 腾讯翻译君 - 在线翻译
- オープンソースのコミュニティにNICT「みんなの自動翻訳」を提供 | NICT-情報通信研究機構
- 英語論文読みを爆速にする、超便利ツール集 - Qiita
- PDFやWord、Excelファイルを読み込み、レイアウトなどはそのまま内容だけを翻訳。Google Translation APIに新機能 - Publickey
- 小原圭司さんはTwitterを使っています 「PDFの英語論文をDeepLを使って日本語に訳して読んでいる方へ。Shaperという便利なサイトが改良され、PDFをコピペした際に自動で邪魔な改行記号を削除してくれるだけでなく、ワンクリックでDeepLのサイトに貼り付けることが可能になりました。素晴らしいサービスに感謝です!https://t.co/9WhVG7zqiu」 / Twitter
- Shaper
Wayback Machine
- Internet Archive: Digital Library of Free Books, Movies, Music & Wayback Machine
- Internet Archive: Search Engine
- インターネット上のあらゆる情報を記録・保存する「インターネット・アーカイブ」はどのように運営されているのか? - GIGAZINE
- ウェブ上の情報を記録・保存する「インターネット・アーカイブ」の存続をひっそりと脅かしているものとは? - GIGAZINE
- 「インターネット・アーカイブのウェイバックマシンが記録した過去のウェブサイトの情報」に証拠能力があると裁判所が認める - GIGAZINE
- Cloudflareとインターネットアーカイブがウェブの信頼性をさらに高めるため提携 - GIGAZINE
- 新型コロナウイルスの影響で「インターネット・アーカイブ」の通信量が秒間60ギガビットに到達、月間通信量は20ペタバイト以上 - GIGAZINE
- フェイクニュースと戦うインターネットアーカイブの取り組みと問題 - GIGAZINE
- The University of Tokyo - General Library : Free Texts : Free Download, Borrow and Streaming : Internet Archive
- General Library | University of Tokyo Library System
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「https://t.co/8gek9rrKSO Internet Archiveにstackexchangeの情報をmachine redableなXMLでダウンロードできるとは知らなかった。日本語サイトの情報もあるけど全体から見ると本当に小さいな」 / Twitter
- stackexchange directory listing
検索
その他
- AndroidのEUにおけるデフォルト検索エンジン指定に批判多数 | TechCrunch Japan
- Lumen
- DuckDuckGo — Privacy, simplified.
- HotBot - The Private Search Engine
- ウェブを検索
- Qwant - The search engine that respects your privacy
- Yandex
- GMX International - Search Engine
- Seznam – najdu tam, co neznám
- Givero - Search the web to raise money for good causes.
- PrivacyWall
- Ecosia - the search engine that plants trees
- 元Google幹部による広告ゼロの検索エンジン「Neeva」がスタート、検索エンジンとして異例のサブスク方式を採用 - GIGAZINE
Searchfox
- Searchfox
- bgrins/searchfox: Mozilla code search web site
- Searchfox | Bill McCloskey's Blog
日本
- 国立国会図書館デジタルコレクション
- 国立国会図書館インターネット資料収集保存事業
- サクラチェッカー | やらせ・サクラレビューを見抜けるレビューチェックシステム
- 特許情報プラットフォーム|J-PlatPat
- 全国法人リスト - 全国約500万件の法人企業を一覧で検索
Twitter
- Twitterの高度な検索
- Takashi OkumuraさんはTwitterを使っています 「有益な情報。弊アカウントの過去ツイセレクションはこちら。面白い。歴史も感じる。 RT 過去にどんな発言をしてきたアカウントなのかチェックしたい時は、"from:user min_retweets:100"とすると、過去に100以上RTされた発言がざっと読めて、だいたい把握できる https://t.co/cGFZer4K0G」 / Twitter
- Twitter検索コマンド全まとめ。日付指定やアカウント内検索など23個 -Appliv TOPICS
- GitHub · Where software is built
- Stack Overflow - Where Developers Learn, Share, & Build Careers
- everyRFC
- 【本日のできるネット】【これは便利!!】Googleで「ライセンスフリー画像」を検索できるの知ってる? - PC Watch
- Google Scholar
- Google 検索オプション
- Masaki HaraさんはTwitterを使っています 「Google検索、日本語の内容を優先して表示してほしいときと英語の内容を優先して表示してほしいときがあるんだけど、ユーザー設定とかじゃなくて一時的に変えられないのかな」 / Twitter
- くりんぺっとさんはTwitterを使っています 「@qnighy URLに&hl=enを付けるとかでできませんか」 / Twitter
- Search Console - ホーム
- Dataset Search
- Bing
- researchmap
- Welcome | Computer History Museum
- メインページ - ウィクショナリー日本語版
- Mapbox
- 5star opendatamap
- TIMEMAP
- Microsoftが過去14年間・2億5000万件分のカスタマーサービスの記録をネット上に流出させてしまったことが判明 - GIGAZINE
- BinaryEdge
- Googleが機械学習用のデータセットをインターネット上から検索可能な「Dataset Search」を正式公開 - GIGAZINE
- Dataset Search
- AWS S3の膨大な公開データを検索できるQuilt Dataが脱ステルス、無料利用も可 | TechCrunch Japan
- Quilt is a versioned data portal for AWS
図形
- draw.io
- VSCodeでDraw.ioが使えるようになったらしい! - Qiita
- Free AWS, Azure, GCP, Kubernetes Architecture Diagram Tool | CloudSkew
- クラウドのアーキテクチャ図作成ツール「CloudSkew」、Webブラウザから無料で利用可能。AWS/Azure/GCP/Kubernetes/Oracle Cloudなどマルチクラウド対応 - Publickey
- AWS Perspective | Implementations | AWS Solutions
- AWSがアーキテクチャ図を自動作成できるソリューション実装「AWS Perspective」を公開 - GIGAZINE
- AWSがダイアグラムエディタの開発に便利なライブラリ「Diagram Maker」を公開 - GIGAZINE
- 最近のアイコンが似通ってきている問題 | デザイン会社 ビートラックス: ブログ freshtrax
- 最近のロゴが似通ってきている問題 - 第2弾 | デザイン会社 ビートラックス: ブログ freshtrax
- 無料&YAMLで豊富なアイコンからネットワーク構成図が書ける「drawthe.net」レビュー - GIGAZINE
- Excalidraw | Hand-drawn look & feel • Collaborative • Secure
数式
- 数式用字体
- Mathpedia
- MathWills - 数式に特化した情報共有サービス
PDF 等
O'Reilly Japan
- jr4qpv/GNU_Make_3rd_jp: The GNU Make 3rd edition PDF of Japanese.
- O'Reilly Japan - GNU Make 第3版
- O'Reilly Japan - Real World HTTP ミニ版
- Real World HTTPミニ版 - Google スライド
情報Ⅱ
- データ分析のはじめの一歩を無料で学べる 総務省監修の高校教材『データサイエンス・データ解析入門』がpdfで公開
- Rejouiが制作した「高等学校における「情報II」のためのデータサイエンス・データ解析入門」の補助教材が公開されました | 株式会社Rejoui
- 高等学校学習指導要領の改訂のポイント - 1421692_2.pdf
- 【情報編】高等学校学習指導要領(平成30年告示)解説 - 1407073_11_1_2.pdf
- https://www.stat.go.jp/teacher/index.html
- https://www.stat.go.jp/teacher/model.html
- https://www.stat.go.jp/teacher/learning.html
- https://www.stat.go.jp/teacher/comp-learn-04.html
CS50x
- 米ハーバード大学のプログラミング授業 日本語訳が無償公開 誰でも聴講可 | ツギノジダイ
- CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。
- LABOT Inc. | 株式会社LABOT
- CS50 for Japanese: コンピュータサイエンスの入門 – 当ウェブサイトは、Creative Commons ライセンスに基づいて管理されています。
機械学習
- 000607858.pdf
- KOBA789さんはTwitterを使っています 「この言葉がかなり好き。もちろんこれは、まずはちゃんと勉強するということが前提なんだけれども。 「多くの場合ですね、理論が教えてくれるのはですね、よく考えればわかる程度のことなので、あんまり期待すると裏切られるんで注意してください」 https://t.co/bFJcXc9pGY」 / Twitter
- 裏口からのカルマンフィルタ入門 - YouTube
- 日本統計学会75周年記念出版
- 2021-3-3Open(S).pdf
- 国友直人のホームページ
- えるエルさんはTwitterを使っています 「東大の講義で使われている量子コンピューティングの入門教材が公開されています https://t.co/y2s46VJ8En 基礎となる数理的な部分の丁寧な解説に加え,「4兆通りの足し算を同時に行う」等の量子コンピューティングの課題をPythonで実装する部分など,無料で参照できる資料としては最も充実しているのでは https://t.co/B0ZTISDkVP」 / Twitter
- 量子コンピューティング・ワークブックへようこそ! — 量子コンピューティング・ワークブック
- 技術選定の際には絶対に知っておきたいウェブ開発・機械学習・科学計算に役立つ便利な技術を動画でサクッと学び始められる「Udemy」新生活応援セール【Julia・GraphQL・BERTなど】 - GIGAZINE
- 「数理科学」記事
セキュリティ
- 無料で読めるセキュリティ定期発行物のまとめ - 午前7時のしなもんぶろぐ
- セキュリティ情報の集め方 ~しなもんの場合~ - 午前7時のしなもんぶろぐ
- 役に立つセキュリティ情報の宝庫! 「JPCERT/CC」発信の情報まとめ! - 午前7時のしなもんぶろぐ
- 脆弱性の情報収集! 「JVN」の見方を教えます! - 午前7時のしなもんぶろぐ
- クラウドを支えるこれからの暗号技術
- 『OpenSSLクックブック』提供開始のお知らせ – 技術書出版と販売のラムダノート
- セキュリティに関する情報源を整理してみた 2020年版 - トリコロールな猫/セキュリティ
- 2020年上半期に公開されたセキュリティ関連文書まとめ - トリコロールな猫/セキュリティ
Net
- HTTP/3 explained - The book
- 「プロフェッショナルIPv6」- 窓の杜
- LambdaNote/errata-professional-ipv6-1-1: 『プロフェッショナルIPv6』正誤情報
- 徹底解説 v6プラス | 日本ネットワークイネイブラー株式会社
GUI・組版
- Ray Tracing in One Weekend Series
- ロボ太さんはTwitterを使っています 「NVIDIAの研究者、Peter Shirleyが書いた「週末でレイトレーシングを(Ray Tracing in One Weekend)」という本がソース(C++)込みで完全無料公開されてる。すごい。続編「次の週(THE NEXT WEEK)」と、「残りの人生(THE REST OF YOUR LIFE)」もある。 https://t.co/eX2YJ1JHfl」 / Twitter
- XML関連出版物トップ - AH Formatter V6
- 多言語組版について | 多言語フォント | モリサワのフォント | 株式会社モリサワ
- コンピュータグラフィックス特論Ⅱ 講義情報ページ
Git・ファイルシステム
- Git - Book
- Amazon.co.jp: ディベロッパー・エクスペリエンス Linux Ext2ファイルシステム eBook: Nina Petipa: Kindleストア
論理・ソフトウェア
- 計算機プログラムの構造と解釈 第二版
- SICP Web Site for the Japanese Edition
- OpenDataStructures.jp
- ソフトウェアの基礎
- オンラインで入手できる数理論理学・数学基礎論のテキスト
- 導入 -
- サークル詳細 | 海洋軟件 | 技術書典
- free-programming-books/free-programming-books-ja.md at master · EbookFoundation/free-programming-books
- Microsoft Japan Code Labs
- JOSYORI|IPSJ情報処理カタログ|情報処理の用語をわかりやすく解説
- IDPro Body of Knowledge 日本語化プロジェクト | bok
- Kazuho OkuさんはTwitterを使っています 「宣伝しとくと、ロングマン英英辞典は、約2000語の基礎語彙を使って全ての単語を説明していて、英語を英語のニュアンスで学ぶ際の決定版とも言われる英英辞典です。英和だと、どうしても単語の一対一対応になりがちで、文脈による言い回しに対応しづらいから、学習用として英英辞典が勧められる認識」 / Twitter
- Longman Dictionary of Contemporary English | LDOCE
- Online OXFORD Collocation Dictionary of English
- Aho/Ullman Foundations of Computer Science
- The Architecture of Open Source Applications
- クォータニオンとは何ぞや?:基礎線形代数講座 - SEGA TECH Blog
- 基礎線形代数講座
- 2021年のエンジニア新人研修の講義資料を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
- ミクシィの21新卒技術研修の資料と動画を公開します! - mixi developers
- 【全編無料】GoogleやAdobeなど実力ある講師が多数登場、マーケ・デザイン・プログラミング・ゲーム作成などが学べるオンライン学習プラットフォーム「Udemy」のおすすめ無料講座7選 - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「インタラクティブ線型代数。内容は普通の線型代数の教科書だが、各所にある例は実際に値を入れて3Dで視覚化できるようになっている。 https://t.co/W2FyonfL9M」 / Twitter
- Front Matter
- ABAB↑↓BAさんはTwitterを使っています 「ワイが真の初学者の為の学習サイトを立ち上げたる! ってことで、まだGatsbyの初期設定の残り香があるけどテスト投稿。 モットーは、初学者に環境を用意させない。その場で試せる。練習問題で必ずコードを触らせる。ツイートでコード共有しやすく。 感想とか指摘をください https://t.co/zreGEngtGz https://t.co/Ut3cobMtf1」 / Twitter
- Home | Gatsby Default Starter
論文
その他
- 【プレスリリース】アンモニアをクリーンで画期的な燃料に変える新しい触媒を開発 | 日本の研究.com
- プラスチックを「食べる」酵素、研究室で偶然作成 | ナショナルジオグラフィック日本版サイト
- 遠山 祐典さんのツイート: "Nature公式、論文要旨の書き方。 授業でこれを扱うと国籍問わず大半の大学院生が知らなかったと言うので簡易和訳版を作成。 もちろん、Nature以外の論文にも流用する事が可能。 注目は、[結果]に使える文の少なさ(2~3文。全体の20~25%)。 和訳の修正案、大歓迎です。 英語版:https://t.co/RQEbeOWoNX… https://t.co/zdu9I9J24b"
- 2c_Summary_para.pdf
- F1000とビル&メリンダ・ゲイツ財団、オープンアクセス出版のためのプラットフォーム“Gates Open Research”を2017年の第3四半期に開始 | カレントアウェアネス・ポータル
- Gates Open Research
- 松田 栄治 Eiji Matsudaさんのツイート: "Nature Researchの松田と申します。このアブストラクトの書き方について、Nature日本法人の方で作っているPDFもありますので、よろしければご自由にお使いください。下記URLのp11となります。 https://t.co/7ze0gbfpCW… "
- Yasunori GotoさんはTwitterを使っています 「作り方でもあるけど、論文のサマリの読み取り方でもあるよね。」 / Twitter
- 遠山 祐典さんのツイート: "ありがとうございます。 既にNature日本法人公式の日本語版があるとは存じあげませんでした。 公式版の方が、はるかに分かりやすいですね。 皆さま、こちらの公式版をお使い下さい。 Nature投稿案内: https://t.co/Nr1VZzaLjG… https://t.co/8u0eAdgbnV"
- gta-2017.pdf
- SIGのスポンサーになって、プログラミングの英語論文を読みまくろう! - Fight the Future
- OS & システムソフトウェアの一流国際会議 - 品川高廣(東京大学)のブログ
- 工学系大学4年生のための論文の読み方
- 小川雄太郎さんはTwitterを使っています 「PyTorch Hubで各種メジャー論文のモデルをPyTorchで実行するためのデモコードが掲載されました 例えばYOLO v5は以下のページ https://t.co/6IrgskhHpK 有名モデルを使用したい場合は、このPyTorch Hubで検索して、使用方法などを確認するのが早そうです。 (リンク) https://t.co/EeNhpgj41j」 / Twitter
- For Researchers | PyTorch
- 小川雄太郎さんはTwitterを使っています 「Papers with Codeに「Reproducibility Reports」機能(再現性レポート機能)が追加されました その論文内容を別の人が実装してみて、きちんと結果が再現できるかなどが今後報告される(できる)ようになります 論文内容をうまく再実装できないときの調べ先として、重宝しそうな機能です」 / Twitter
- Papers with CodeさんはTwitterを使っています 「🎉 Reproducibility Reports are LIVE! Papers now link to reproducibility reports. Alongside code, this is a new signal for how reproducible a paper's findings are. Thanks to RC2020 participants, reviewers and ACs for their hard work! Example: https://t.co/wdm89qswKc https://t.co/EE6CkYNd8C」 / Twitter
- Training Binary Neural Networks using the Bayesian Learning Rule | Papers With Code
- Papers with CodeさんはTwitterを使っています 「You can find all the reproducibility reports for RC2020 on Papers with Code: https://t.co/NlLpIrL5At and on ReScience: https://t.co/LQihKp3y7p」 / Twitter
- RC 2020 | Papers With Code
- ReScience C
- CiNii 論文 - 出版における言説構成過程の一事例分析:―「江戸時代の識字率は高かった」という"常識"を例として
欧文
- arXiv.org e-Print archive
- ACL Member Portal | The Association for Computational Linguistics Member Portal
- AAAI Publications
- Open Access to ACM Digital Library During Coronavirus Pandemic
- ACM Digital Library
- Home - Springer
- Home | Microsoft Academic
ResearchGate
- ResearchGate | Find and share research
- ResearchGate News
- ResearchGate - Wikipedia
- ResearchGate - Wikipedia
- ResearchGate (リサーチゲート) | お役立ち情報ページ | レタープレス株式会社
- 研究者向けSNS「ResearchGate」で研究者間のつながりや議論はどう変わるのか | 英文校正と論文翻訳の医学英語総合サービス
- ResearchGate 170万本の閲覧制限から見える著作権問題ー学術英語アカデミー
- 第303号 ResearchGateをめぐる動き(2) |ユサコニュース詳細 | 学術情報・論文作成支援【ユサコ株式会社】
- ResearchGateによる無許可掲載 | エディテージ・インサイト
賞
- Abel Prize - Wikipedia
- アーベル賞 - Wikipedia
- 数学ブレイクスルー賞 - Wikipedia
- Breakthrough Prize - Wikipedia
- ゲーデル賞 - Wikipedia
- Gödel Prize - Wikipedia
- ゴードン・ベル賞 - Wikipedia
- Gordon Bell Prize - Wikipedia
- チューリング賞 - Wikipedia
- Turing Award - Wikipedia
- フォン・ノイマンメダル - Wikipedia
- IEEE John von Neumann Medal - Wikipedia
- システム系論文の情報収集方法 - 睡分不足
- CiNii Research
- 日本の研究.com
- CiNii Articles - 日本の論文をさがす - 国立情報学研究所
- J-GLOBAL 科学技術総合リンクセンター - 科学技術振興機構
- J-STAGE トップ
- JAC複製利用許諾システム |
- Kenichi Asai
- FrontPage - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)
- IEICE ソフトウェアサイエンス研究会 (SIGSS)
- 情報処理学会 プログラミング研究会
- 情報学広場:情報処理学会電子図書館
- コンピュータ ソフトウェア
- 人工知能学会論文誌
- 情報通信学会誌
- 電子情報通信学会 基礎・境界ソサイエティ Fundamentals Review
- 電子情報通信学会 通信ソサイエティマガジン
- 情報学広場:情報処理学会電子図書館
- 無料で読める記事-情報処理学会
- 解説・論文等-コンピュータ博物館
- トップページ|日本漢字学会(Jsccc)
- JAIRO : Japanese Institutional Repositories Online
素材
アイコン素材
- IcoMoonの使い方・ライセンス一覧など!Webフォントで扱えるアイコン素材サイト | ホームページ大学
- FLATICONの使い方・ライセンスなどをご紹介!無料でも利用できるフリーアイコン素材サイト | ホームページ大学
- オリジナルのアイコンをWEBフォント化して使う【fontello.com】
- Network Topology Icons - Doing Business With Cisco - Cisco
- 図面とともにあらんことを!:第二面 - ネットワークのゲンバ(2014) | Interop Tokyo 2014
- Dia Shape Repository
- Bootstrapにとって初めての独自アイコン集「Bootstrap Icons」バージョン1.0が初公開 - Publickey
- Lorem ipsum - Wikipedia
- NHKクリエイティブ・ライブラリー 素材をさがす
- ニューヨーク・メトロポリタン美術館、パブリックドメインになった芸術作品のデジタル画像をオープンアクセス化 | スラド オープンソース
- The Metropolitan Museum of Art makes 375,000 images of public domain art freely available under Creative Commons Zero – Wikimedia Blog
- ポーズビューワ | デッサンポーズ
- 無料ダウンロード&商用利用もOKなクラシカルな装飾を集めた「Handbook of Ornament」作品集 - GIGAZINE
- 無料でゲーム・アプリの開発に使えるアイコンが2800種類以上ある「Game-icons.net」 - GIGAZINE
- Googleが機械学習用データとして利用できる手書きイラスト5000万点をオープンに利用できる形で公開 | スラド オープンソース
- Quick, Draw! The Data
- googlecreativelab/quickdraw-dataset: Documentation on how to access and use the Quick, Draw! Dataset.
- 英BBC、個人および研究目的なら無料で使える約1万6000種類のサウンドライブラリーを公開中【やじうまWatch】 - INTERNET Watch
- ご利用について | いらすとや
- クラシック音楽mp3無料ダウンロード 著作権切れ、パブリックドメインの歴史的音源
- 今月から、スタジオジブリ作品の場面写真の提供を開始します - スタジオジブリ|STUDIO GHIBLI
- WEB会議などで使える背景画像 - 古典に親しむ | 国文学研究資料館
- 「いらすとや」が1月で定期更新を停止 「今のペースで全てをやり続けるのは難しい」(1/2 ページ) - ねとらぼ
- 今後のサイトの更新について | かわいいフリー素材集 いらすとや
- ELYZA, Inc.さんはTwitterを使っています 「深層学習で使われる関数や手法,アーキテクチャの画像フリー素材が200種類以上あるリポジトリ。ブログやプレゼンなどで活躍しそう。 https://t.co/2kNs7FdiIG https://t.co/hL0I6foznV」 / Twitter
- dvgodoy/dl-visuals: Over 200 figures and diagrams of the most popular deep learning architectures and layers FREE TO USE in your blog posts, slides, presentations, or papers.
- Sangmin @ChoimiraiSchoolさんはTwitterを使っています 「海外で流行っているフリー素材のサイトが、storyset(👉https://t.co/1EiYU5SlBU)。日本ではまだメジャーではないけど検索に加え、ブラウザ上で色を変えれるのが最高です👏。 https://t.co/slNCZbNGSN」 / Twitter
- Storyset | Customize, animate and download illustration for free
- Sangmin @ChoimiraiSchoolさんはTwitterを使っています 「フリー素材のツールとして他にもよく使っているのが、 @unDraw_co (👉https://t.co/JO5vk9nVhu)。自分の好みとしては storyset より unDraw の方が好き😇。 https://t.co/rer16AqTRD」 / Twitter
- Illustrations | unDraw
- 今月から、スタジオジブリ作品の場面写真の提供を開始します - スタジオジブリ|STUDIO GHIBLI
- 新しく、スタジオジブリ5作品の場面写真を追加提供致します - スタジオジブリ|STUDIO GHIBLI
- 無償。明治時代の郡地図。Googleマップのマイマップ版も - PC Watch
- 郡地図 Ver 1.0 - 郡地図研究会 - BOOTH
予約済みドメイン等
- Example Domain
- Example Domain
- Example Domain
- Example Domain
- 予約済みドメイン (.example, .localhost, .test) について | blog.jxck.io
- RFC 7042 - IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters
- RFC 3849 - IPv6 Address Prefix Reserved for Documentation
- RFC 5737 - IPv4 Address Blocks Reserved for Documentation
チェックリスト等
- 技術書、それも売れるやつを書きたい人へ、編集者からのアドバイス | ツチノコブログ
- 技術系ブログを書いてくれてる人に申し上げたいこと6つ
- 論文等、書き物を他人に見せる前のチェックリスト – 上田ブログ
- ブログを書くときのアンチパターン集【Agent Grow Advent Calendar 2016:25日目】 | 自主的20%るぅる
- 第3回プロから学ぶ「わかりやすい文章の書き方」
- PDCAと5W1Hと4S
- k16's note: 執筆・編集のためのGit(GitHub)ワークフローを考えてみた
- ドキュメントの構造化による,良いドキュメントの作成方法:新春特別企画|gihyo.jp … 技術評論社
- 読まれるテキストは読者へのおもてなしの構造を持っている - mizchi's blog
- 失敗を学びに変える「障害報告書」の書き方 ─ RettyのCTOがGoogleで学んだ「問題を隠さない文化」 - エンジニアHub|若手Webエンジニアのキャリアを考える!
- 本の虫: Bjarne Stroustrupのプログラミング入門書の査読の感想
- わかりやすい文章の10大原則(第2回) | Web文章入門(全7回) | Web担当者Forum
- sogitani / baigie inc.さんのツイート: "話が分かりにくい人の条件 ・前提の説明がない ・結論を先に言ってない ・質問に答えてない ・全体→部分という構造になってない ・抽象的な言葉が多い ・相手に合わせて使う言葉を選んでない ・言葉を省略しすぎてる ・事実と解釈がごちゃまぜ ・話が拡散したり脱線したりする"
- sogitani / baigie inc.さんのツイート: "分かりやすい文章の条件 ・前提の説明を丁寧にする ・結論をなるべく先に書く ・読み手の疑問を想定しそれに答える ・全体→部分という構造にする ・抽象的な言葉を避けて具体的に書く ・読み手に合わせて使う言葉を選ぶ ・言葉を省略しすぎない ・事実と解釈を区別して書く ・話の拡散、脱線を避ける"
- これだけ守れば見やすくなるデザインの基礎 - Speaker Deck
- Kazuho Okuさんのツイート: "どんな仕事でもそうだと思うけど、ソフトウェア開発でも実装の「how」でなく設計の背後にある「why」を共有しちゃえば、PRを細かく見る必要がなくなって楽になるんだよなーと思ってる"
- 事業計画書の作り方、新規ビジネスの考え方
日本語
読み
- 【みんなの知識 ちょっと便利帳】記号/符号の種類・名称・読み方 =キーボードの記号=
- 等幅フォントは「とうふく」「とうはば」どっち? - しろもじメモランダム
- 括弧 - Wikipedia
- 混乱する括弧の呼び方(パーレン?ブラケット?ブレース?) - ポンコツWebエンジニアのかっこ悪く生きる日記
- ハイアラーキー(はいあらーきー)とは - コトバンク
- 日本人が間違った覚え方をする「得意ではない」言葉について - GIGAZINE
- ハッシュタグ記号は「シャープ」じゃない? | 毎日ことば
- 既存(キソン)とは - コトバンク
- アキバで恥をかく禁句ワード Vol.5:アムド【あむど】 - ITmedia PC USER
- 不思議な読み方をするあの漢字 : KODOMO : 読売新聞(YOMIURI ONLINE) 1/2
- なかのん&マジックさんのツイート: "Wikipediaはwikiという聞き慣れない単語を固有名詞内に含めた時点で、マーケティング的には「wikiと略すな」は、逆に何言ってんのという感じある(言ってるのは外野なんだと思うけど)。"
- なかのん&マジックさんのツイート: "むしろ、wikiと言われてWikipediaが連想される状況って、Wikipediaにとっては誇らしい状況だと思うんだけど。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "昔からダイヤル、ワイヤレス、のように本来Yが発音にないのに「ヤ」と表記する由来は何かと思ったが、母音連続を避ける「介入子音」という概念があり、英語でも冠詞aがanとなったり、idea ofと発音する際、aとoの間にr音が発生するという話…面白い。 https://t.co/fZBTMBj0cF"
- contentscinii_20180414235118.pdf
- なかのん&マジックさんのツイート: "交野市私市って、大阪の人間でも読めない人多そうで、なんて地名だ。"
- なかのん&マジックさんのツイート: "かたのし、きさいち"
- 大西科学さんのツイート: "同じ難読市名でも、「まいかたかな……?」と間違って読んでしまうものも難読と言えますが、そもそも読めない、どう読んでよいかわからない市が千葉にあります。そこを訪れて初めて出会ったので、まったく読めない字というのがまだあるのだな、私はまだまだだなと思いました。匝瑳市というのですが。"
- suzakiさんのツイート: "「ちょうふく」と「じゅうふく」の読み方はMemory Deduplication (LinuxではKSM:kernel shared memory)を日本語で説明するのに苦労しました。 どちらを使っても大抵もう一方を指摘されました。… "
- まさみさんは語りたいさんのツイート: "代替と代替の議論も(笑)… "
- Shiro Kawaiさんのツイート: "「定数」はどっちがどっちだろう https://t.co/tYqmgeXybX"
- 「稟議=りんぎ」「消耗=しょうもう」ではない? 現代人には分からない“漢字の本来の読み方”(ねとらぼ) - Yahoo!ニュース
- 羊頭狗肉(ようとうくにく)の意味・使い方 - 四字熟語一覧 - goo辞書
- 三省堂 WORD-WISE WEB -Dictionaries & Beyond-
毎日ことば
- 辞書にはない「大宗」の意味 | 毎日ことば
- 「訳」と「わけ」 | 毎日ことば
- 「多いに」 | 毎日ことば
- 「ありがたい」と「有り難い」 | 毎日ことば
- 「よい」と「良い」 | 毎日ことば
- 「多数」と「大多数」 | 毎日ことば
- 「任期を迎える」 | 毎日ことば
- 「臨む」と「望む」 | 毎日ことば
- 「なぜ新聞は閉じカッコの前に句点を付けないのか。」 | 毎日ことば
- 「濃(こま)やか」と「細やか」 | 毎日ことば
- 「無実」と「罪のない」の違い | 毎日ことば
- 「司令」と「指令」 | 毎日ことば
- 「シャッターを押す」 | 毎日ことば
- 「ため」とよむ「為」 | 毎日ことば
- 「目線に立って」 | 毎日ことば
- 「固定概念」 | 毎日ことば
- 「排外」と「拝外」 | 毎日ことば
- 各上位2位までが | 毎日ことば
- 辞書を、言葉をなんだと思っているのか | 毎日ことば
- なぜ新聞は「想う」を使わないか | 毎日ことば
- 約1万3249基 | 毎日ことば
- 「鋭い目線」を「鋭い視線」に直す理由 | 毎日ことば
- 「薄皮をはぐように」忘れる? | 毎日ことば
- ネットの類語辞典は辞書といえるか | 毎日ことば
- コトバ解説:「終息」と「収束」の違い - 毎日新聞
blog
- 医療法人申請における当用漢字 | yasuokaの日記 | スラド
- 恣意的の誤用
- ”たてつけ”??その使い方はあり?? : 生活・身近な話題 : 発言小町 : 大手小町 : YOMIURI ONLINE(読売新聞)
- 日本語は何故、どこが難しいのかー外国人から見る日本語のムズカシイ - 昭和考古学とブログエッセイの旅へ
- シャベルとスコップの呼び方が東日本と西日本で逆だと話題に 「小さい方がシャベル」「え、スコップだろ?」 - ねとらぼ
- ひとりふたりという数え方はなぜ三人めから「……り」とならないのか?→実は三人以上にも “り” はあるらしい「へぇ! 知らなかった」 - Togetter
- k16's note: 日本語の編集をしていてよく直すパターン15選(増えるかも)
- 漢字研究ブログ: 「函数」が音訳というデマと、本当の語源
- 「させていただけないでしょうか」禁止令 | ウェブ電通報
- 「なう」は接尾辞だけなのか?|まつーらとしお|note
- 「なう」小考 - 誰がログ
- 日本語の乱れの話|astral|note
Wikipedia
- 誤謬 - Wikipedia
- 以上・以下 - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「() {} [] について。 ---- 世界的には {[()]} の順で用いられる方式が多数派。 JIS Z 8201-1981 においても「小括弧」「中括弧」「大括弧」という名称は廃止され、現在は「丸括弧」「角括弧」「波括弧」と表記。 https://t.co/vkCHgAkObS」 / Twitter
- 括弧 - Wikipedia
Twitter
ピンハネ
- chokudai(高橋 直大)🍆さんはTwitterを使っています 「COCOAの件で多重請負を問題視する人が結構居るけど、「中抜きが問題だ!」って言ってる人は業界を全く知らないので無視して良いとおもう。 中抜きは中間業者をすっ飛ばすことを指すのであって、ピンハネのことではない。意味的には真逆なのよね。」 / Twitter
- chokudai(高橋 直大)🍆さんはTwitterを使っています 「ピンハネがどれくらい発生してるかは論点として成立するとは思うけど、そこはお金の流れを見ないとなんとも。大きいプロジェクトを分割する時に多重請負構造は必要になるはずだし、構造自体が絶要らないと言えるものでは絶対に無い。」 / Twitter
- kokiさんはTwitterを使っています 「@chokudai 中抜きててそういう意味だったんですね。。ピンハネの方の意味なんだと思ってました。」 / Twitter
- 野生の男 WILDMANさんはTwitterを使っています 「@chokudai 日本語的には「中身を抜くこと」としての中抜きが先に存在していてその後に「中間業者を抜くこと」を中抜きと呼ぶ用法が生まれた感じですね https://t.co/V0jljdZ009」 / Twitter
- 中抜き/中貫き(なかぬき)の意味 - goo国語辞書
- Fumiaki Nishihara(西原史暁)さんのツイート: "これ、本当にそうで、なぜか「標本」のことを「母集団」と呼んでいる人、ネット上でも実社会でもよく見ます。たぶん、分母と混同しているんだと思うんですよね。 - 「母集団」の意味間違えてる奴多すぎ問題 https://t.co/0efNkMvOon"
- 「母集団」の意味間違えてる奴多すぎ問題
- 統計学における「母数」は"parameter"の訳語だってみんな知ってた?―訳語選択の失敗例
- なかのん&マジックさんのツイート: "「無学」だと知らないレベルのものが「共通の」言語プロトコルなのかというところには同意しかねますなぁ。… "
- 棚旗 織さんのツイート: "正しい敬称での呼び方は、敬意だけでなくそれ以上に、共通の言語プロトコルで会話できる旨を示します。わざわざ変な呼び方をして、己を育ちの悪い無学だと他者に思わせて何がしたいのでしょう。聞いてもらえる話も聞いてもらえなくなります。… "
- なかのん&マジックさんのツイート: "人それぞれ掘り下げたところ、掘り下げずに行ったところはあるわけで、「無学」という言葉自体、得意分野でマウントとりたい場合に使われるものと私は認識しています。"
- なかのん&マジックさんのツイート: "極端に言えば、昨今Twitterで叩かれてる「マナー講師の作り出すマナー」と何の違いがあるんだろうかと。言葉は誰かが作り出して広まるものなので。"
- Yusuke Teradaさんのツイート: "有名な「横書き句読点の謎」という文書https://t.co/8YjP40ma83 があるけれど,最新の調査結果として文化庁の「国語に関する世論調査」の資料 https://t.co/dOLJQfC4Wj が興味深い。うちの業界では「カンマ・マル」方式が主流だけれど,世間では「テン・マル」方式が主流になりつつある流れを感じる。… https://t.co/2wL2IsIPsG"
- ten.dvi
- r1393038_01.pdf
- Yusuke Teradaさんのツイート: "理数系の専門書では「カンマ・ピリオド」方式が圧倒的に感じるけれど,この調査では2.3%しかない。むしろ2.7%もあることになっている「テン・ピリオド」方式は一度も見たことがない気がする……(「横書き句読点の謎」では「まずないでしょう」と切り捨てられている)。"
- ショーンKY(ネット論客)さんはTwitterを使っています 「なまじ一般語と同じ言葉を使っているために勘違いされやすそうな言葉の例 医学「清潔・不潔」 数学「高々」 化学「雰囲気」 あと他に専門の方頼む」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「情報工学だと、低レベルとか。」 / Twitter
- 松野美穂💮さんはTwitterを使っています 「「そうゆう」を使う方は私は警戒してしまいます。お仕事の依頼のメールに使われていたらお引き受けしない可能性がグンと上がります…。言葉を扱う仕事の方には使ってほしくありません😢 この他に「延々と」を「永遠と」とされるのも嫌です… https://t.co/RkXhBeSPeT」 / Twitter
- マカオさんはTwitterを使っています 「@matsunom @kotoyoshi_y 一応をいちようと言われるのが個人的には苦手ですね。 言葉でいちようと言われて文字でどう書くんだろうって思ったら「いちよう」で苦笑いしました。」 / Twitter
- まこ🐁きめつ沼さんはTwitterを使っています 「@matsunom 『言わざるおえない』と書く人も結構多くて……どんなにいい文章を書かれるかただったとしても『ウッッ』ってなってしまいます。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ら抜き言葉みたいに、「間違い」(名詞)を「間違え」って言う/書くのもどっかの方言なんかな?」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「日本語の書き下しという問題をめぐっては、これまでに思考を何周も回してしまった結果、読み手に対して誤解がなさそうなら何でも正解でいいという心境にあり、あらゆる意味で「正解」の存在が怖い。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「いまのところの好みは、文部省がなんか昭和に出したやつを原則としつつ、副詞とか接尾辞はひらがなに倒して、ただし漢字による強い語感がほしい場合には漢字を使うことをいとわない、かなあ。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「これもどっかで文書化しておかないとなんだよな」 / Twitter
- 公文書の読点「,」から「、」に 半世紀以上前の通知変更へ | 共同通信
- Sho YokoiさんはTwitterを使っています 「句読点に「,.」を使うのは欧米かぶれだとか “理系” の論文ではそれが普通だとかいう声が飛び交っているので、みなさん是非まずこちらを: 渡部 善隆「横書き句読点の謎」(PDF) https://t.co/N9DvYZA5gs」 / Twitter
- ten.dvi - ten.pdf
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「英語だとboundになるのだがこの表現や律速の語源、どこからきたんだろう。 https://t.co/fatIw7nzhN」 / Twitter
- ドクター・べじぱみゅさんはTwitterを使っています 「嫁(統計屋さん?)に「律速」が通じなかった。(電車の乗り換えを何回もするけど)「結局◯◯線律速だからここを急いでも着く時間変わらん」と言ったら「リッソク??」だった。 「律速」って理科系の方言なんか。普通に日常会話で使ってたわ。てか「りっそく」漢字変換で出ない。。。」 / Twitter
- あきぽち@とくになしさんはTwitterを使っています 「@dr_vegepamyu 理系だけど律速はじめて聞きました! ニュアンスが分からない😅 よく使う理系方言は、さちる。です笑」 / Twitter
- ドクター・べじぱみゅさんはTwitterを使っています 「@pochicoh 元は複数の化学反応が同時に起こる際の反応速度などに使う用語で、パンピー用語に直すと「ボトルネック」らしい。 個人的な印象だけの話ですが、例えば書類のスタンプラリーで部長があんまり席におらず判子がもらえない時「部長がボトルネック」というと「判子押しが一番遅いのは部長」という名詞?」 / Twitter
- 飯間浩明さんはTwitterを使っています 「「ことばの正誤を判定しないで、辞書が作れるのか」とよく聞かれます。私は、不確かな基準で正誤を認定するより、「この言い方は俗語的」「何年頃からの言い方」「文章では使わない」「すでに古い」などの情報を示したいと考えます。このほうが、ユーザーが主体的に使うかどうか判断できるからです。」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「メモ: いまの義務教育用漢字は1,026字。日本語能力試験N2の漢字数は1,000字程度。当用漢字表選定まえにつくった常用漢字表案は1,295字。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「「現地語」としての日本語は残るでしょう。危ういのは(1/3が事実なら)「国語」としての日本語。 「現地語」だけでも生活は送れるけど学問、知の蓄積がしにくい。かつてそれを「普遍語」が担ってた。近代になって「普遍語」で記述される高度な知を「現地語」で書けるようにすることで「国語」が生まれた」 / Twitter
- 林 譲治さんはTwitterを使っています 「日本人の3分の1は日本語の文章が読みとれない というのが事実とすると、日本語はほぼ存在しないことになる。社会の構成員の三分の一が理解できないのでは言語の役割を果たしていないも同然。 二人の人間が日本語がわかる確率は4/9つまり半分以下。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「「日本語」という単一の言語が最初から存在してたわけじゃないってこと。知の蓄積ができなくなっても、日常生活やメディアにはずっと現地語としての日本語が使われ続けるでしょう。」 / Twitter
- News Up コロナ カタカナ 多いかな?ワクチン予約がディフィカルト! | 新型コロナウイルス | NHKニュース
- 員数 - 国語 解決済 | 教えて!goo
- 若者ことばの「やばみ」や「うれしみ」の「み」はどこから来ているものですか | ことばの疑問 | ことば研究館
- 15.変換機能のイタズラ――間違われやすい「同音異義語」 - 間違えやすい日本語表現(澤田慎梧) - カクヨム
- 25.間違えるのには理由がある「にもかかわらず」の漢字表記 - 間違えやすい日本語表現(澤田慎梧) - カクヨム
- 「5人のなかでCの“次に”背が高い人は?」 解釈の分かれる質問にあなたならどう選ぶ? - ねとらぼ
- 敷衍 - ウィクショナリー日本語版
- 文章作成の基本を学ぶための記事・学習コンテンツのまとめ - Qiita
英語
Qiita
- IT業界で横行する恥ずかしい英語発音 - Qiita
- コードに頻出する語形変化が難しい英単語: register, success, fail, data, statusなど - Qiita
- 要注意な技術英語 - Qiita
- 英語の技術文書を早く読むには - Qiita
- 英語(1) プログラマが知っているとよい英単語の語源 - Qiita
Wikipedia
- コンピュータ略語一覧 - Wikipedia
- List of computing and IT abbreviations - Wikipedia
- ISV - Wikipedia
- OSV型 - Wikipedia
- Numeronym - Wikipedia
- ヌメロニム - Wikipedia
- 和製英語 - Wikipedia
フォニックス
- ヒーホーくんさんのツイート: "英語でこれを教えないせいでどんだけ今まで無駄な時間を費やしてたのか… "
- 梓弓さんのツイート: "米国駐在中、娘がキンダーでフォニックスを叩きこまれてたのを見て目から鱗。 表音文字のくせにスペルと音が一致しない凶悪な英語でフォニックスを教えないのはアイウエオ表の読み方知らずに日本語(しかも旧仮名使い)習う様なモノ。てふてふでせうの読み方知らないんだから会話上手くなるはずない。… https://t.co/A7iF1p5teM"
- 梓弓さんのツイート: "小学生から英語を、で週一でハローとかやる全く時間の無駄。 文科省のアホ。 意味のない事を暗記出来るうちに九九の様に、フォニックスとサイトワードを関連付けて徹底的に暗記させるなら意味がある。 例えばcook, book, lookの塊、oil, off, openの塊でスペルの並び方と発音の法則を覚える。"
- まさみさんは語りたいさんのツイート: "フォニックスっぽい言い方はなんとなく身に着いちゃったなあ。多分文科省の人とかもそういう非自覚的な学び方しかしてないから、自覚的な学び方を教えられないのだろう。"
- ”delete”と”remove”の使い分けについて | SDNA ローカライズチームブログ
- mappedの意味 - 英和辞典 Weblio辞書
- 圧倒的腹落ち感!英語の発音と綴りが一致しない理由を専門家に聞きに行ったら、犯人は中世から近代にかけての「見栄」と「惰性」だった。 | DMM英会話ブログ
- どうしても英語の綴りが覚えられない! 難しい「スペル」を覚えるための7つのヒント | DMM英会話ブログ
- TBAとTBD、TBCの違いがどうしても覚えられないのでメモ - インターネットの備忘録
- 日本人が陥りがちな英文メールの罠 - 人生の難易度が高すぎるのですが
- 【英語論文の書き方】第24回 because, since, as など 理由を表す表現 論文翻訳・英文校正 研究者専門の翻訳会社 ワールド翻訳サービス
- ゲタ子🇺🇸国際結婚ネバダ州🏜️ベガスじゃないよさんのツイート: "中高の英語、こういう英語教えてほしかったわ… "
- 英語では「0個の」もの(名詞)は複数形で表現する | Weblio英会話コラム(英語での言い方・英語表現)
- Manabu Uenoさんのツイート: "18の時にアメリカに留学してまずESLのクラスに入った。そこで驚いたのは、日本の中高で習った発音は完全に間違いだったということ。そもそも母音の違いが分かってなかった。そこでアメリカ英語の母音16個を徹底的に練習した。そしたらどんな単語もだいたい通じるようになった。今も発音は褒められる。… https://t.co/icY1ZBPV5s"
- Manabu Uenoさんのツイート: "外国語の発音についてはどうしても子音の違いに注目しがちだけど、日本人が英語についてまず注目すべきは、母音の数が3倍もあるという点だと思っている。この「音の多さ」に自覚的でなければ、第二言語としてうまく習得できないだろう。発音にしても、聞き取りにしても。"
- Manabu Uenoさんのツイート: "英語の発音を練習する際は、自分が知っている全ての単語について、日本語の母音ベース=カタカナで覚えている音を一度全部「捨てる」こと。そして英語の母音を練習して、その母音ベースで全ての単語の音を一から知り直す。例えば bat とbut をはじめから違う音として覚える。"
- gr4vit0nさんはTwitterを使っています: 「今回の海外遠征でヨーロッパの人達が発音していた専門用語で驚いた発音は 「Ghidra」->「ジーハイドラ」 「ioctl」->「アイオクタル」 がダントツでした。 全員微妙に発音違うのにちゃんと会話がすぐに通じてるのすごい」 / Twitter
- pseudo とは 意味・読み方・表現 | Weblio英和辞書
- mappedの意味・使い方 - 英和辞典 WEBLIO辞書
- hikaliumさんはTwitterを使っています 「まじか、OOBEはうーびーなのか、文字は見たことがあったけど、発音したりそれを聞いたことがなかった…。(えいごむずかしい。)」 / Twitter
- 今更聞けない会社の英語表記「Co., Ltd.」「Inc.」「LLC」「Co.」を解説!【保存版】 | English Lab(イングリッシュラボ)┃レアジョブ英会話が発信する英語サイト
- 青子守歌さんはTwitterを使っています 「「キリル文字の」という意味の英単語Cyrillicはセリリックと発音することを覚えた(ずっとキリリックって読んでた)」 / Twitter
- 英語の発音について概説する - Amosapientiam
- Anki - powerful, intelligent flashcards
- ELSA - Speak English fluently, easily, confidently
- 英語ミーティングを乗り切るために身につけたバッドノウハウ - knqyf263's blog
Install
MS
- あなたの Microsoft アカウントにパスワードレスの未来を - News Center Japan
- Microsoft Docs
- Windows 開発者向けドキュメント | Microsoft Docs
- Windows 開発者向けドキュメント - Windows drivers | Microsoft Docs
- Microsoft Learn | Microsoft Docs
- Download Windows 10 Insider Preview ISO
- Download Windows Insider Preview SDK
- Visual Studio Preview
- マイクロソフト脆弱性報告窓口 ガイド (日本語) – Microsoft Security Response Center
- YurikaさんはTwitterを使っています 「英語の窓口は不安、という場合はMSの場合は英語の窓口に投げる時に「日本語対応希望」と一言書いていただだければコミュニケーション自体は日本語で対応します! 困ったこととか相談とかあればお気軽に https://t.co/y6tGB9UMf4」 / Twitter
- 日本語でマイクロソフトに脆弱性を報告する方法 – Microsoft Security Response Center
- Yosuke HASEGAWAさんはTwitterを使っています 「経験的には、マイクロソフト製品の脆弱性は直接英語窓口に届けるのが楽。細かな記載事項の形式的な不備とか気にしなくても最低限の手順などが書かれていれば受け入れてくれる。直接的な脆弱性とまで言えない挙動でも(修正されるか否かは別として)「報告ありがとう」という姿勢なのでこちらも気持ちいい」 / Twitter
- Download the Windows Driver Kit (WDK) | Microsoft Docs
- Ubuntu 20.04 LTS を入手 - Microsoft Store ja-JP
- Ubuntu を入手 - Microsoft Store ja-JP
- Ubuntu on Windows Community Preview を入手 - Microsoft Store ja-JP
- Windows 11 をダウンロードする
- 次の作業が必要です、Windows 10、セットアップ、通知
- KB5007125: Compatibility hold when you upgrade to Windows 11 with Oracle VirtualBox installed
- Windows 10 のダウンロード
- Windows 10 仮想マシンをダウンロードする - Windows アプリ開発
- Microsoft Edge Insider Channels をダウンロード
- Windows のリリースの正常性 | Microsoft Docs
- Windows release health | Microsoft Docs
- Visual Studio Feedback
- Visual Studio 2022 Preview リリース ノート | Microsoft Docs
- Ways to install Windows 11
Tools
その他
その他
- OSの検索機能を完全に置き換え ~「EverythingToolbar」に待望の機能が実験搭載 - 窓の杜
- stnkl/EverythingToolbar: Everything integration for the Windows taskbar.
- 「Windows Hello」の顔認証は赤外線画像で突破できると判明 - GIGAZINE
- Windows 10の顔認証機能は赤外線写真の低解像度カラーコピーでだませることが判明 - GIGAZINE
- 簡単な操作で作業の内容や作業時間の記録が出来る「TimeTagger」を使ってみた - GIGAZINE
- Bridge - Uniant
- Windowsの「robocopy」コマンドでフォルダをバックアップ/同期させる:Tech TIPS - @IT
- Robocopyより高機能。ファイル同期ツールの決定版「FreeFileSync」:知っトクWindowsツール(1/2 ページ) - @IT
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Intel用CPUに特化されたPython。NumPy, scikit-learn等を含んでいる。バイナリはかなりデカいらしい。conda/dockerから利用可能。 https://t.co/CDSptqqCeB」 / Twitter
- Intel® Distribution for Python
- JDKMon - JDKの検出と更新を行う新ツール
- マイクロソフトは、アカウントからパスワードを削除できるようにします。|自作.com
- 入谷 優さんはTwitterを使っています 「certutil.exe を使うと HRESULT 値を解読できるとは! https://t.co/kIobiZqDy5」 / Twitter
- The CertUtil program will decode Windows error codes, and in a variety of formats - The Old New Thing
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy.exe は Win32 GUIアプリなので(=EXEのPEヘッダ subsystem=2、なおコンソールだと 3)、起動した瞬間、親プロセスから detach されます。 (start "" /wait fastcopy.exe とやれば、終了まで待ちますが、Ctrl-C は効かないままですね) https://t.co/377ByMZIOA」 / Twitter
- PE(Portable Executable)ファイルフォーマットの概要
UDF・ISO9660
- 富士通Q&A - [Windows 10] ディスクにデータを書き込む方法を教えてください。 - FMVサポート : 富士通パソコン
- 富士通Q&A - ファイルシステムの「ISO9660 LEVEL1」と「JOLIET」の違いを教えてください。 - FMVサポート : 富士通パソコン
- windows10でISO9660(レベル1)形式のCD-Rを作成したい - Microsoft コミュニティ
- CD-R書込形式について - Microsoft コミュニティ
GIGAZINE
- 無料で自動文字起こししてくれるMicrosoft製アプリ「Group Transcribe」を使ってみた - GIGAZINE
- PCのハードウェアの信頼性を確かめる負荷試験を行う「PassMark BurnInTest」レビュー - GIGAZINE
- Chrome 89で音声からリアルタイムに字幕を生成する「自動字幕起こし」機能が追加されたので使ってみた - GIGAZINE
- Windowsのパスワードを「chntpw」で強制リセットしてログインできなくなったPCを使えるようにする方法 - GIGAZINE
- Windows 10でオーディオやグラフィックスアプリを含むLinuxのGUIアプリを使用可能にする「WSLg」機能が登場 - GIGAZINE
- 完璧にパスワードを設定するための4つの方法 - GIGAZINE
- 「次世代のWindows」をまもなく配信予定だとMicrosoftのCEOが発言 - GIGAZINE
- 見落とされがちなWindows 10の便利機能5選 - GIGAZINE
- Microsoftは2025年までにWindows 10のサポートを終了する予定 - GIGAZINE
- 「Microsoft 365」が2022年3月に値上げ予定、その対象プランとは? - GIGAZINE
- Microsoftアカウントのサインインでパスワードが完全不要に - GIGAZINE
窓の杜
- え、こんな機能が? Windows 10のマイナー機能を活用しよう! 2018年 記事一覧
- 「TCPView」がメジャーアップデート ~検索ボックスやダークモードに対応したv4.0が公開 - 窓の杜
- Windows 10で[同期の設定]が機能しないケースについてMicrosoftが案内 - 窓の杜
- Windows 10のセキュリティの質問って覚えてる?思い出せないなら「SecurityQuestionsView」【レビュー】 - 窓の杜
- Windowsのドライバー検証が強化 ~2020年10月更新以降、導入時にエラーが発生することも - 窓の杜
- “セーフガードホールド”ってなに? ~Microsoftがサポートページで詳細を案内 - やじうまの杜 - 窓の杜
- ぇ、それだけでよかったの? Windowsのユーザーフォルダーを開く最速の技 - やじうまの杜 - 窓の杜
- Windows 10の[スタート]画面が再編中? 確かにプログラムフォルダーはスッキリしたけど、あのツールはどこ行った! - やじうまの杜 - 窓の杜
- Linux GUIアプリがWindowsで動作 ~Microsoft、新しいWSL 2機能「WSLg」を初期プレビュー - 窓の杜
- AACに対応、Bluetoothオーディオの強化を図ったDev版Windows 10 Build 21370 - 窓の杜
- システムフォント「Segoe UI」が可変フォントに生まれ変わる ~Dev版Windows 10 Build 21376に導入 - 窓の杜
- 「Python 3.10」のベータ版が登場、「Python 3.8」系は最後のメンテナンスリリース - 窓の杜
- 「sexe」が10年ぶりにバージョンアップ ~通常のアプリを無理やりWindowsサービス化するツール - 窓の杜
- Web版「Excel」の新しいマクロ機能「Office スクリプト」が一般リリース - 窓の杜
- 「Python 3.9.6」が登場、「Python 3.8」系はセキュリティのみの修正へ移行 - 窓の杜
- 人気の開発環境「IntelliJ」が完全日本語化 ~同梱プラグインまでローカライズ - 窓の杜
- 「Excel」でMapやReduce~ラムダを引数にとる7つの関数がテスト導入 - 窓の杜
- 「Excel」にラムダ関数、ベータ版でテスト中 ~Excelの数式はチューリング完全な言語に - 窓の杜
- Microsoft、Windows 10で迷惑アプリのブロック機能をデフォルト有効に - 窓の杜
- Windowsの「B」、「C」、「定例外」リリースってなに? ~更新プログラムの仕組み - やじうまの杜 - 窓の杜
- Microsoft、Apple M1向け「Java 16」を一般公開 ~ARM64版「Java 11」「Java 16」も - 窓の杜
- 【窓の杜、vPro入れました!】テレワークで困った「会社に置かなきゃいけないPC」問題、本格リモート制御で解決してみた - 窓の杜[Sponsored]
PC Watch
- 【レビュー】Windows 10に実装予定の新ライセンス認証機能を試す ~パーツ交換を行なっても、オンラインで再認証が可能に - PC Watch
- 【笠原一輝のユビキタス情報局】なぜ日本のMicrosoft 365 Personalは高いのか? 個人/法人で買うべきOfficeをアドバイス - PC Watch
- Microsoft、Intel CPUの脆弱性を修正するWindows 10用マイクロコードを公開 - PC Watch
- Windows 10プレビューでついにLinuxのGUIアプリが動作。オーディオやGPUも対応 - PC Watch
- 箱を開けた状態で“Windows史上最強の安全性”が実現されている「Secured-Core PC」をじっくり解説 ~大企業はもちろんIT専任者がいない中小企業でも手軽に安心して使える設計- PC Watch[Sponsored]
- AACコーデック対応のWindows 10プレビュー版登場。BTヘッドセットの表示統合で使い勝手も改善 - PC Watch
- サイバー犯罪からあなたと会社を守るための、いまさら人に聞けないパスワード管理術 ~ブラウザの新機能や2段階認証の活用法を丁寧に解説。Windows Hello対応機ならより便利に- PC Watch[Sponsored]
- 【ニュース・フラッシュ】Windows 10プレビュー版、Segoeフォントに視認性向上の新書体 - PC Watch
- Web版Excel、業務自動化スクリプトに対応 - PC Watch
- Windows 10は2025年にサポート終了? - PC Watch
- 「Windows Autopilot」で、PCもスマホのように手軽に“機種変”しよう ~買ったPCを箱から出してすぐに環境が再現可能- PC Watch[Sponsored]
- Microsoftアカウント、パスワードのサインインを無効化する新機能 - PC Watch
- Office 2021がWindows 11と同じ10月5日より提供開始。Excelに「XLOOKUP」実装など - PC Watch
マイナビニュース
- プレビュー版「コンパクトモード」から見るエクスプローラーの進化 - 阿久津良和のWindows Weekly Report | マイナビニュース
- アイコン変更とキーバインド修正から見る次期Windows 10への期待 - 阿久津良和のWindows Weekly Report | マイナビニュース
- プロアクティブな設定「Customize your device」への期待 - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 10ミニTips(204) コマンドラインからWindows Updateを実行する | マイナビニュース
- このタイミングでデバイスマネージャーに改良を加えるMicrosoftの狙い - 阿久津良和のWindows Weekly Report | マイナビニュース
- また消えた「Windows」の文字 - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 11でリニューアルされるSnipping Tool - 阿久津良和のWindows Weekly Report | マイナビニュース
- Microsoftアカウントがパスワードレスになった - 阿久津良和のWindows Weekly Report | マイナビニュース
ASCII.jp
- ASCII.jp:Windows 10の標準アプリが動かなったときの対処法 (1/2)
- ASCII.jp:Windowsキー絡みのショートカットは徐々に増えて、減って、また増えている (1/2)
- ASCII.jp:Windowsでファイルやフォルダーに「使わない方がいい」文字 (1/2)
- ASCII.jp:Windows 10におけるキーボードの秘密 (1/2)
- ASCII.jp:Windows Updateを飼い慣らして、都合のいい時間に再起動させる方法 (1/2)
- ASCII.jp:Windows 10のデバイスドライバーで見えた、今秋の大型アップデートの可能性 (1/2)
- ASCII.jp:年2回のWindows 10のアップデートに要する時間に大きな差 フルアップデートとサービステクノロジーアップデート (1/2)
- ASCII.jp:Windows 10は好きな文章を合成音声で簡単に喋らせることができる (1/2)
- ASCII.jp:デスクトップアプリとしてのIEは終了するが、2029年までは完全に無くなるわけではない (1/2)
- ASCII.jp:BOMなしUTF-8によってWindowsでもたらされる困惑 (1/2)
- ASCII.jp:Windows 10が起動しない場合の最終手段「Windows RE」の基本 (1/2)
- ASCII.jp:WindowsのコマンドでLAN内のデバイスを探す (1/2)
- ASCII.jp:Windows 11ではARM版も改良が進んだ (1/2)
Publickey
- [速報]マイクロソフト、無料でRPA機能「Power Automate Desktop」をWindows 10ユーザーに提供開始。Microsoft Ignite 2021 - Publickey
- マイクロソフト、「Universal Print」正式リリースを発表。プリンタサーバをクラウド化し、プリンタドライバを不要に。Microsoft Ignite 2021 - Publickey
- 「Windows Server 2022」プレビュー版が登場、安全なブートなどセキュリティ強化。Microsoft Ignite 2021 - Publickey
山市良のえぬなんとかわーるど
- 山市良のえぬなんとかわーるど: "About your PC" を検索せよ
- 山市良のえぬなんとかわーるど: Windows Sysinternals 更新情報 (2021 年 4 月 22 日) - Procmon v3.70、Sysmon v13.10、Autoruns v13.99、TCPView v4.01、WinObj v3.03
@IT
- Windows 10のエクスプローラを便利に使うTIPS 10本:Tech TIPS - @IT
- 面倒な“Windows 10の更新”をスクリプト化できる新たな選択肢(その1):企業ユーザーに贈るWindows 10への乗り換え案内(29) - @IT
- 面倒な“Windows 10の更新”をスクリプト化できる新たな選択肢(その2):企業ユーザーに贈るWindows 10への乗り換え案内(30) - @IT
- SSE2非対応の古いプロセッサがWindowsに見捨てられたというウワサは本当? (1/2):その知識、ホントに正しい? Windowsにまつわる都市伝説(113) - @IT
- Windows 10 バージョン2004の隠れた新機能、クライアントOSでもシリアルコンソール(SAC)が利用可能に:企業ユーザーに贈るWindows 10への乗り換え案内(77) - @IT
- WindowsUpdateProviderモジュールとWindows Update WMIプロバイダーの廃止によるWindows Update自動化への影響:企業ユーザーに贈るWindows 10への乗り換え案内(78) - @IT
- Windows 10の登場から6年で削除された機能、廃止予定機能のざっくりまとめ:企業ユーザーに贈るWindows 10への乗り換え案内(97) - @IT
- 刷新された「Windowsのリリースの正常性」サイトの歩き方:企業ユーザーに贈るWindows 10への乗り換え案内(99) - @IT
- 「Windows 10 バージョン21H1」が正式リリース、Windows Updateによる機能更新プログラム配布をコントロールする2つの方法とは:企業ユーザーに贈るWindows 10への乗り換え案内(100) - @IT
午前7時のしなもんぶろぐ
- セキュリティ調査に役立つブラウザ拡張機能のまとめ - 午前7時のしなもんぶろぐ
- CyberChef 超入門 (例題付き) - 午前7時のしなもんぶろぐ
- 怪しいファイル・サイトを検査! 「VirusTotal」の安全な使い方教えます! - 午前7時のしなもんぶろぐ
- KB4589212: Intel microcode updates for Windows 10, version 2004 and 20H2, and Windows Server, version 2004 and 20H2
- Makoto Kato ︎︎さんはTwitterを使っています 「嘘書いてなぁ。 "USBキーボードは、デバイスに関する情報を返すことが可能で、メーカー名やキーボード名を取得することが可能で、これを使ってレイアウトを判別することは可能なのだが" https://t.co/OqzdTpJJDy」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Windows 2000のリリース時はそういう意図でDesignされていたんだけど、実際世の中で発売されるキーボードはUSレイアウトと日本語レイアウトで同じIDを返すものがほとんどだった。だから不可能だったんだよ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「最終的にはHotfixを作って、自動に選択されないようにした (たしか*.infに入っている情報消すようなHotfixだった記憶) 。2000年くらいのお話ですね。」 / Twitter
- 入谷 優さんはTwitterを使っています 「因みに、スタート メニューの検索結果でも、Ctrl + Shift + Enter でアプリを管理者として起動できます。」 / Twitter
- Windowsエクスプローラー特殊Tips【5選】 ― 開発者/クリエイターにおすすめ - Build Insider
- 文字の消滅から11年、Windowsの「スタートボタン」が最近のユーザーには通じないという指摘【やじうまWatch】 - INTERNET Watch
- Windows 8 で ISO の「マウント」が出来くなってしまったら | The Simplest Essence
- 第661回 リモートデスクトップビューアー,Remminaを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- Windowsのコマンドライン引数でのクォートの話 | Qrunch(クランチ)
- Googleの2FAは2FAを必要とせずに無効にできる
- Otter Voice Meeting Notes - Otter.ai
- 自称IT企業があまりにITを使わずに嫌になって野に下った俺が紹介するWindowsの自動化の方法 - Qiita
- pipとpipenvとpoetryの技術的・歴史的背景とその展望 - Stimulator
- とほほのSELinux入門 - とほほのWWW入門
- Install Docker Desktop on Windows | Docker Documentation
- Docker for Windows release notes | Docker Documentation
- 第590回 Windows/macOS/Linuxで使える仮想マシン管理ツール『multipass』:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- Windows Insiders gain new DNS over HTTPS controls - Microsoft Tech Community
Chocolatey
Packages
主要なソフトウェア
- Chocolatey Gallery | 7-Zip 16.4.0.20170506
- Chocolatey Software | Atom 1.50.0
- Chocolatey Gallery | Beyond Compare 4.2.3.22587
- Chocolatey Gallery | Everything 1.4.1877.20170915
- Chocolatey Gallery | Git 2.15.1.2
- Chocolatey Software | GitHub Desktop 2.5.3
- Chocolatey Gallery | MSYS2 20161025.0.0
- Chocolatey Gallery | NetWide Assembler 2.13.02
- Chocolatey Gallery | Node.js LTS (Install) 8.9.4
- Chocolatey Software | Python 3.8.5.20200721
- Chocolatey Gallery | Tera Term 4.97
- Chocolatey Software | VirtualBox 6.1.12
メディア関連
- Chocolatey Software | Adobe Acrobat Reader DC 2020.012.20043
- Chocolatey Gallery | Avidemux 2.7.0
- Chocolatey Gallery | MediaInfo 17.12
- Chocolatey Gallery | PowerISO 7.0
- Chocolatey Gallery | Screen To Gif 2.10
- Chocolatey Gallery | VLC media player 2.2.8
- 無料でオープンソースのメディアプレイヤー「VLC」で簡単にPCの画面を録画する方法 - GIGAZINE
- Chocolatey Gallery | Packages
配布元
主要なソフトウェア
- 圧縮・解凍ソフト 7-Zip
- Atom
Beyond Compare
- Scooter Software: Home of Beyond Compare
- Beyond Compare Technical Support
- WindowsでgitのdiffとmergeのツールをBeyond Compareに設定するメモ (Git, GitHub for Windows, Beyond Compare 4, difftool, mergetool) - いろいろ備忘録日記
- Beyond CompareでCSVのデータを比較する - プログラマーな日々
Everything
- 人気の高速ファイル検索ソフト「Everything」v1.4が正式版に ~“ReFS”をサポート - 窓の杜
- Downloads - voidtools
- Git - Downloads
- GitHub Desktop | Simple collaboration from your desktop
MSYS2
- MSYS2 homepage
- Package: mingw-w64-x86_64-lld - MSYS2 Packages
- MSYS2
- MSYS2でclang(64bit版)
- WindowsでClangを使うならmsys2が便利 - Qiita
- Download LLVM releases
- msys2とC++で特定のDLLに依存しないwindowsバイナリを作る - siunのメモ
- zig/Findllvm.cmake at master · ziglang/zig
- NASM
Node.js
RobotJS
- RobotJS - Node.js Desktop Automation
- octalmage/robotjs: Node.js Desktop Automation.
- ダウンロード | Node.js
- ドキュメント | Node.js
- Node.js 日本ユーザーグループ
- node.js npm - Google 検索
- ドッグさんはTwitterを使っています 「LTS でないバージョンの node 使ってても npm install は気にせず LTS 向けの npm を入れてるっぽい.そういうもんか…」 / Twitter
Oracle VM VirtualBox
- Downloads – Oracle VM VirtualBox
- ストレージ設定 | VirtualBox Mania
- 共有フォルダ設定 | VirtualBox Mania
- 共有フォルダのマウント | VirtualBox Mania
- Virtual Box 共有フォルダの権限 | Ubuntu初心者の集いブログ
- Chapter 3. Configuring virtual machines
- DSAS開発者の部屋:VirtualBoxのファイルシステムを10倍速くする ~ page cache編 ~
- Ubuntu 16.04のVagrantでpublic Vagrant boxにアクセスできなくなった問題 - 覚書
- 2018年3月1日 Oracle,Linux 4.15をサポートした「VirtualBox 5.2.8」をリリース:Linux Daily Topics|gihyo.jp … 技術評論社
- Chapter 12. Troubleshooting
- VirtualBox VM debugger TIPS
- 保護種さんはTwitterを使っています 「VirtualBox の File->Export Appliance... から生成される *.ova (Open Virtualization) ファイルは tar 形式になっていたのか。しかも、iso イメージも含めることが出来るってのは面白い。ただ iso イメージ md5sum ファイル、それぞれの tar ヘッダを含めるので、その分サイズも増える」 / Twitter
Python
- Download Python | Python.org
- Python製のマルウェアが台頭してきているという指摘 - GIGAZINE
- pipでパッケージの更新をしたらアンインストールエラーが出た話|ジャンク松本|note
- ドッグさんはTwitterを使っています 「pip の,1つのパッケージは依存関係内に1つのバージョンしか存在できない制限がなかなかキツい」 / Twitter
- 小川雄太郎さんはTwitterを使っています 「Pythonで実装した処理ファイルを他人に渡したり、活用してもらう際に、Python環境を用意してもらうや、Google Colabなどは面倒なので、exe化したいです。 いくつか方法はあるのですが、その一つが紹介された記事になります。 https://t.co/TwydGZD8Fu」 / Twitter
- How to Easily Convert a Python Script to an Executable File (.exe) | by Frank Andrade | May, 2021 | Towards Data Science
- ぽんたさんはTwitterを使っています 「Pyinstaller で exe化したもの (onefile オプション付) って起動に数秒かかる印象があるんだけど、実際どうなんだろう」 / Twitter
- 〒みやらん🐶❄ゆきんこさんはTwitterを使っています 「色々と方法あるんやなぁ。 Windows であれば、 WinPython が全部固めて渡せる最強だと思っている(´・ω・`)」 / Twitter
- fkubota 🦉さんはTwitterを使っています 「まじでマジックコマンドの"%debug"便利なのでjupyter使ってる人で知らない人いたら一度使ってみてほしい。。。 「知らんかった!!」っていう人があまりにも多い。。。 わざわざgif作ったよ! 「エラー出た!!」で後出しでデバッグできるんだから使わない手はないよね。 https://t.co/t2yjMqn1vV」 / Twitter
- fkubota 🦉さんはTwitterを使っています 「デバッガの使い方は、pdbやipdbと同じなのでこの当たりが参考になります。 https://t.co/C3iiywUdAG」 / Twitter
- Pythonにおけるデバッガ: pdb, ipdb - Qiita
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「IPython とか Jupyter やるなら SageMath もいいですよ」 / Twitter
- てらモス♋️さんはTwitterを使っています 「Windows でプログラミングを始めようとして Python を入れようとすると - python org > 公式だよ! - Windows Store > Windows の公式だよ! - Visual Studio > Microsoft 公式の開発環境だよ! - anaconda > 必要な環境全部そろってるよ! - ... とかでしょ」 / Twitter
- 「JupyterLab」のデスクトップアプリ「JupyterLab App」がリリース。Pythonなどに対応した統合開発環境 - Publickey
- プログラミング言語のコードを逐次実行できるノートブック環境「JupyterLab」がスタンドアロンアプリに - 窓の杜
- Tera Term Open Source Project
メディア関連
- PDFリーダー、PDFビューア | Adobe Acrobat Reader DC
- Avidemux - Downloads
- MediaInfo
- PowerISO - Create, Burn, Mount, Edit, Compress, Encrypt, Split, Extract ISO file, ISO/BIN converter, Virtual Drive
- Releases · NickeManarin/ScreenToGif
- Official download of VLC media player, the best Open Source player - VideoLAN
- Chocolatey
- Installation
- Pricing
- ChocolateyFAQs
- chocolatey/choco: Chocolatey CLI
- Home · chocolatey/choco Wiki
- 久しぶりにWindowsの環境構築をした · 電子雪原ちほー
- Chocolateyの自作パッケージ入門(1) · 電子雪原ちほー
- Chocolatey にパッケージを公開する #1 全体手順 - Qiita
- spp5: Chocolateyでカスタムパッケージを作成する
- ChocolateyとSetting Syncで開発環境をサクっと整える | フロントエンドBlog | ミツエーリンクス
MS
廃止・非推奨
- Windows 10 - Features that have been removed - Windows Deployment | Microsoft Docs
- Windows 10 features we’re no longer developing - Windows Deployment | Microsoft Docs
- Microsoft、OEM向けWindows 10は今後32bit版を提供せず - PC Watch
- 「Snipping Tool」は廃止へ ~「Windows 10 RS5」でスクショの取り方はこうなる! - やじうまの杜 - 窓の杜
- 次期Windows 10で非推奨となる「ペイント」アプリ、“ストア”で無償提供されることに - 窓の杜
- 「ディスク クリーンアップ」は非推奨に ~“ストレージ センサー”への移行を - 窓の杜
- 「Windows To Go」は終了へ ~「May 2019 Update」で削除・置き換え予定の機能が発表 - 窓の杜
- 「Windows 10 Fall Creators Update」で廃止・非推奨となる機能が明らかに - 窓の杜
- Microsoft、「Windows 10 October 2018 Update」で削除・開発終了となる機能を案内 - 窓の杜
- 「Windows 10 November 2019 Update」で開発が終了する機能、削除される機能が発表 - 窓の杜
- Silverlightは時間切れ
- Microsoft、「October 2020 Update」で削除・開発終了となる機能を案内 - 窓の杜
- 旧「Edge」、「IE11」、wmicコマンド……「Windows 10 バージョン 21H1」で削除・非推奨となる機能たち - 窓の杜
Visual Studio
vswhere.exe
- Visual Studio インスタンスの検出および管理用のツール | Microsoft Docs
- Locating MSBuild on a machine - Meziantou's blog
- シンクリッジ - : 技術系備忘録/C++/VisualStudio/MSBuild.exeのパスを解決して実行
- Visual Studio 201x の devenv.com はどこにある? - Qiita
窓の杜
- 「Visual Studio 2019」はパフォーマンスが大きく向上 ~Microsoftが詳細を解説 - 窓の杜
- Microsoft、「MSVC」のSTL実装をオープンソースとしてリリース - 窓の杜
- 「Visual Studio 2019」にタブを縦並びにする機能 ~プレビュー版でテスト中 - 窓の杜
- Microsoft、「Visual Studio 2019」v16.4を正式公開 ~「.NET Core 3.1」を同梱 - 窓の杜
- Microsoft、「Visual Studio 2019」v16.5を正式リリース - 窓の杜
- 「Git」連携を刷新、メインメニューにも追加 ~「Visual Studio 2019」v16.6.0が正式公開 - 窓の杜
- 「Visual Studio 2019」v16.7が正式公開 ~「Git」関連の機能を引き続き強化 - 窓の杜
- Microsoft、「Visual Studio」の「Unity」解析ツールをオープンソースに - 窓の杜
- 「.NET 5.0」に対応した「Visual Studio 2019」v16.8.0が正式公開 ~新しいGit機能もプレビュー卒業 - 窓の杜
- 「Visual Studio 2019」v16.9が正式公開 ~4番目の長期サポートリリース - 窓の杜
- 待望の64bit化 ~Microsoft、「Visual Studio 2022」を発表 - 窓の杜
- 「Visual Studio 2019」の最新プレビュー版がC++20機能の実装を完了 - 窓の杜
- 「Visual Studio 2019」v16.10が正式公開 ~コンパイラーとSTLライブラリがC++20に対応 - 窓の杜
- 64bit化された「Visual Studio 2022」、初のプレビュー版がリリース - 窓の杜
- 「Visual Studio 2019」の最終版、v16.11が正式リリース - 窓の杜
infoQ
- Microsoft、Bridge to Kubernetesをリリース
- MicrosoftがVisual StudioでGit Experienceをリリース
- Diablo IV:Visual StudioでLinuxのデバッグ
- MicrosoftがVisual Studio 2019 v16.9をリリース
- Microsoftが64ビットのVisual Studio 2022を発表
- MicrosoftがVisual Studio 2022の最初のプレビューをリリース
- Visual Studio 2022プレビュー2は即時フィードバックにフォーカスしたものに
- MicrosoftがVisual Studio 2022の最初のプレビューをリリース
blog
- Visual Studioで64bitコンパイラツールセットを使う方法。C1060への対処。 - 賢朽脳瘏
- [C++]コンソール出力にchar8_t文字列を出力したい! - 地面を見下ろす少年の足蹴にされる私
- 山市良のえぬなんとかわーるど: Visual Studio 2022(の Preview 予定)
- Visual Studio で UTF-8 でC++を書いたら心が折れそうになった件 - Hikware.Tech
- Improving developer security with Visual Studio 2022 | Visual Studio Blog
- 次期Visual Studio 2022はマルチリポジトリ対応になるとマイクロソフトが明らかに - Publickey
- Visual Studio 2022 Preview 4が公開。CSSの変更がすぐプレビューに反映されるホットリロードなど新機能 - Publickey
Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@uint256_t 作者の思い込みを炙り出す Property Based Testing は Example Based Testing を書くよりも少し作成 cost が高い。Fuzzing は『あらゆる入力に対して適切な対応が出来る・落ちない』という property を探る PBT だけど、問題空間が大きくなるとつらくなって行く…」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@uint256_t fuzzing の方が導入が簡単ってのはあるんだろうなあ(そういえば MSVC も fuzzer 入れてきたな https://t.co/RgKU1yOgIZ )」 / Twitter
- Visual Studio 2022 Preview 4 is now available! - Visual Studio Blog
- 入谷 優さんはTwitterを使っています 「特定箇所を通った時だけブレークしてほしい、という場合は頻繁に有るので、Visual Studio 2022 Preview 4 の Dependent breakpoints は期待大です。」 / Twitter
- Microsoft Visual Studio - Wikipedia
- dotnet/cli-lab: A guided tool will be provided to enable the controlled clean up of a system such that only the desired versions of the Runtime and SDKs remain.
- Releases · Microsoft/VisualStudioUninstaller
- Visual Studio のロードマップ | Microsoft Docs
- Visual Studio 2017 15.9 リリース ノート | Microsoft Docs
- Visual Studio 2019 リリース ノート | Microsoft Docs
- ダウンロード | IDE、Code、Team Foundation Server | Visual Studio
- Microsoft C++ Build Tools - Visual Studio
- Download the Windows Driver Kit (WDK) | Microsoft Docs
- Download Debugging Tools for Windows - WinDbg - Windows drivers | Microsoft Docs
- VsVim - Visual Studio Marketplace
- EditorConfig - Visual Studio Marketplace
- EditorConfig Language Service - Visual Studio Marketplace
- Use Bridge to Kubernetes with Visual Studio | Microsoft Docs
- ドッグさんはTwitterを使っています 「Visual Studio 2019 v16.9 で address sanitizer (asan) がフルサポートされた (/fsanitize=address).試験実装として元々入っていたのが安定版になった https://t.co/RbdxBIufev」 / Twitter
- Address Sanitizer for MSVC Now Generally Available | C++ Team Blog
- AddressSanitizer | Microsoft Docs
- インストールに使用するコマンド ライン パラメーターの例 - Visual Studio | Microsoft Docs
- コマンド ライン パラメーターを使用して Visual Studio をインストールする | Microsoft Docs
- Visual Studio 2022 | Visual Studio Blog
- /STACK (スタック割り当て) | Microsoft Docs
- Microsoftが提供する統合開発環境「Visual Studio 2022」の詳細が発表 - GIGAZINE
- Prevent automatically inserting of /IMPLIB - Visual Studio Feedback
- Visual Studioでも最新のClangが使いたい! - Qiita
Visual Studio Code
VS_Code-Extensions
Publickey
- Visual Studio Code 1.35安定版リリース。リモート開発を可能にする「Remote Development」拡張機能が利用可能に - Publickey
- 「Docker for Visual Studio Code」が正式版に、Visual Studio Codeの拡張機能。WSL 2環境のDockerコンテナに対応 - Publickey
- VS Code内でブラウザ画面プレビューとDevTools表示、そのままコード編集もできるVS Code拡張「Microsoft Edge Tools for VS Code」正式版に - Publickey
窓の杜
- 「Visual Studio Code」で“Markdown”テーブルを扱う際は必携「Text Tables」【レビュー】 - 窓の杜
- Visual Studio Code向け「PowerShell」拡張機能がメジャー更新、「ISE」互換モードを搭載 - 窓の杜
- Microsoft、「Visual Studio Code」向け「Docker」拡張機能を正式リリース - 窓の杜
- C/C++言語のVisual Studio Code拡張機能がv1.0に到達、初の一般リリース - 窓の杜
- 型ヒントでPython開発を加速 ~Microsoft、VS Code向けの拡張機能「Pylance」を発表 - 窓の杜
- Microsoft、「Visual Studio Code」の新しい拡張機能「Jupyter」を発表 - 窓の杜
- Pythonの新しい言語サーバー「Pylance」がプレビューを卒業 ~「Visual Studio Code」でリッチな開発支援を実現 - 窓の杜
- 「Visual Studio Code」に「TensorBoard」を統合 ~Python拡張機能の2021年2月リリース - 窓の杜
- 「Visual Studio Code」の拡張機能「PowerShell」がセマンティックハイライトに対応 - 窓の杜
- GitHubリポジトリをVisual Studio Codeで「読む」のに便利な拡張機能が登場 - 窓の杜
- 「Visual Studio Code」上で直接“GitHub”のプルリクエストを作成可能に - 窓の杜
blog
- たったの3ステップでライブリロードが可能になるVisual Studio Codeの拡張機能「Live Server」がすごい! | フロントエンドBlog | ミツエーリンクス
- Visual Studio Code拡張機能「Polacode」でソースコードを手軽にキャプチャ | フロントエンドBlog | ミツエーリンクス
- Visual Studio Code 入門~オススメ設定と拡張機能編~ - 雀巽の日記帳
- Eclipse Open VSX: A Free Marketplace for VS Code Extensions | The Eclipse Foundation
- Visual Studio Codeの設定をバックアップして同期する Settings Sync - -ろぐれこーど-
- Rust IDE に化ける VSCode - OPTiM TECH BLOG
- 波形を書くときにJSONベースで書けるWaveDromがとても便利だった - FPGA開発日記
Qiita
- VSCodeの拡張機能「GIST」が便利すぎてHackMDを使うのをやめた - Qiita
- VSCodeで俺々言語モードを作る - Qiita
- usm-takl/vscode-oreore-mode: a tiny sample of a programming language mode of VSCode
- VS CodeのPython拡張がJupyterをネイティブサポートしたそうなので早速使ってみた。 - Qiita
- Python 3.7とVisual Studio Codeで型チェックが捗る内作Pythonアプリケーション開発環境の構築 - Qiita
- なぜ我々はいまだに文字列でコメントを書いているのか - Qiita
Twitter
- ymmtさんはTwitterを使っています: 「VSCode の GitHub Pull Requests 拡張というのがあるんですが、大きな pull request のレビューに大変便利です。ブラウザと異なり、ファイルをひとつずつ差分確認できます。ファイルも全体が表示されるので差分周辺のコードも手間なく確認できます。控えめに言って神。 https://t.co/SY83r2XBK3」 / Twitter
- microsoft/vscode-pull-request-github: GitHub Pull Requests for Visual Studio Code
- Kohei SuenagaさんはTwitterを使っています 「Grammarly を VSCode から使うための extension が market place から消えていたのだが,どうも公式からのリクエストがあって unpublished 状態になっていたらしい. https://t.co/EbR3SD4v3V https://t.co/xsXLSrERiW から VSIX ファイルを使って入れられるそうな.」 / Twitter
- Release Version 0.12.2 · znck/grammarly
- 七誌さんはTwitterを使っています 「ionide-fsharp(VS Codeの拡張機能)でパイプラインの途中の型が表示されるようになったのに気付いた。これは便利! (コメントの形で挿入されているが、自動表示されたもので入力したコードではない) https://t.co/VSK6YZe5c1」 / Twitter
- 入谷 優さんはTwitterを使っています 「#vscode 拡張機能のどれかが悪さをしているときに、二分探索で原因を簡単に探すことができることを知りました。拡張機能が多いと助かります。 https://t.co/LdConjDU6D」 / Twitter
- Visual Studio Code extension bisect utility
- ぬるぽへさんはTwitterを使っています 「デバッガの起動をめちゃめちゃ簡単にするツールを公開しました!デバッグ対象をCLIから起動すると、Tmuxでガッとgdbが起動したり、VSCodeからlaunch.jsonなしでアタッチできたりします あと、debuggeeが起動したときに自動でデバッガが立ち上がるようにする機能もあって便利 https://t.co/m2U7VjVDVT https://t.co/k3uf3ZDR8L」 / Twitter
- nullpo-head/dbgee: The zero-configuration debuggee for debuggers. Handy utility that allows you to launch CLI debuggers and VSCode debuggers from the debuggee side.
- ぬるぽへさんはTwitterを使っています 「あ、これなんか公開までに何度か言及してたこれのやつですね https://t.co/RfgnNQeTbY」 / Twitter
- ぬるぽへさんはTwitterを使っています 「これめっちゃ便利じゃない?ゼロコンフィグでターミナルから普通に起動したプログラムをデバッガでデバッグできる 普通の開発フローと親和性が高くて、プログラム引数を頻繁に変えたり入出力をリダイレクトしても設定をいじったりする必要がない https://t.co/yNlP0vHbeQ」 / Twitter
- ぬるぽへさんはTwitterを使っています 「どっちかっていうとこっちだった https://t.co/k2XYLQuIr9」 / Twitter
- ぬるぽへさんはTwitterを使っています 「デバッガがいまいち誰もが使う選択肢になり切れてないのって、使うのが気軽じゃないからだと思うんですよね 例えば1. 引数渡しづらい 2. 何ならラッパースクリプトからバイナリが起動されるのでデバッガから起動できない 3. ビルドシステムが大きくてデバッグビルドがやりづらい とかはよくある」 / Twitter
- こりん@VRさんはTwitterを使っています 「Visual Studio CodeでUML書くのにPlantUML拡張使ってたんだけど、Markdown Preview Enhancedに替えたら図が自動で更新されるの便利すぎる」 / Twitter
- Markdown Preview Enhanced - Google 検索
- kodai 🕊🪐🌸🐿🏮さんはTwitterを使っています 「VS Code では VSCoq っていう拡張機能入れたら Coq IDE みたいな機能が使えるようになるんだね より快適に証明が書けるようになった Alt+↑/↓で先の行に進んだり巻き戻したりできる https://t.co/bOndAg5dXJ」 / Twitter
- Extensions for Visual Studio family of products | Visual Studio Marketplace
- Code Outline - Visual Studio Marketplace
- EditorConfig for VS Code - Visual Studio Marketplace
- PrintCode - Visual Studio Marketplace
- Settings Sync - Visual Studio Marketplace
- Sort lines - Visual Studio Marketplace
- Vim - Visual Studio Marketplace
- vscode-clangd - Visual Studio Marketplace
- Bracket Pair Colorizer - Visual Studio Marketplace
- hexdump for VSCode - Visual Studio Marketplace
- Windows Terminal Utility - Visual Studio Marketplace
- Announcing Support for Native Editing of Jupyter Notebooks in VS Code | Python
- Use Bridge to Kubernetes with Visual Studio | Microsoft Docs
- VSCode rdbg Ruby Debugger - Visual Studio Marketplace
- microsoft/pyright: Static type checker for Python
- Microsoft、Bridge to Kubernetesをリリース
- Markdownでスクショ画像をペーストする(VS Code)
Terminal tabs
- Takashi KawasakiさんはTwitterを使っています 「どこにあるのかわからん。今日の段階ではまだ出てこない?? No "terminal tabs" on the command palette... How to enable it?」 / Twitter
- Daniel ImmsさんはTwitterを使っています 「Terminal tabs are available for testing in @code Insiders, we'd love to hear your feedback! Check out the screenshot put together by @sagebind which shows off the new feature 😍 https://t.co/Ipnn0mLRvY」 / Twitter
- Daniel ImmsさんはTwitterを使っています 「@espresso3389 If you're on insiders you can drag your tabs into the editor or right click them and select "Move to Editor Group" https://t.co/bamqqSJ9n5」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「ここまでなってくると、割とWindows Terminalも要らなくなってくる感じではある。まぁ、まだ細かな制限はあるだろうけど。 https://t.co/aMvoA0m67X」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「Windows TerminalにはSetting Syncがないのが問題なんだよなぁ。VSCodeは設定はSyncされるから、こっちでカスタマイズをするといろんなところで使えてうれしい。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「VSCodeの良いところはVSCodeの開発者はVSCodeを間違いなく使ってるというところだよな。かゆいところがよくわかる。」 / Twitter
窓の杜
- 「Visual Studio Code」が設定の同期に対応、Insider版でテスト中 - 窓の杜
- 「Visual Studio Code」の2020年1月更新が公開 ~リファクタリングリネームにプレビュー機能 - 窓の杜
- グローバル検索を追加、列モード選択でさらに使いやすく~「Visual Studio Code」の2020年2月更新 - 窓の杜
- 「Visual Studio Code」の2020年3月更新、ファイルの変更履歴を表示する“タイムライン”を追加 - 窓の杜
- シンタックスハイライトを最大で3倍高速化 ~「Visual Studio Code」の2020年4月更新 - 窓の杜
- 待望の設定同期機能が安定版に ~「Visual Studio Code」2020年7月更新 - 窓の杜
- 「Visual Studio Code」2020年8月更新、「Git」でのトラブルを防止する新オプションを追加 - 窓の杜
- 「Edge」の開発ツールを統合し「Visual Studio Code」でWebアプリの開発を完結 - 窓の杜
- 「Visual Studio Code」2020年10月更新、Python開発に必要な一式をセットアップする「Coding Pack for Python」も提供 - 窓の杜
- トラブルの原因となる拡張機能を素早く特定 ~「Visual Studio Code」の2020年11月更新 - 窓の杜
- 無償コードエディター「Visual Studio Code」の2021年1月更新、v1.53が正式リリース - 窓の杜
- GitHubのURLをちょろっと書き換えるだけでコードを「Visual Studio Code」で閲覧できる素敵なサービスが話題に - やじうまの杜 - 窓の杜
- Microsoft、「Visual Studio Code」v1.54を公開 ~Apple Silicon(M1)に対応 - 窓の杜
- Microsoft、「Visual Studio Code Installer for Java」をリリース - 窓の杜
- 無償コードエディター「Visual Studio Code」v1.55が公開 ~「Raspberry Pi OS」に正式対応 - 窓の杜
- 「Visual Studio Code」の4月更新 ~タブ切り替えのターミナルをプレビュー提供 - 窓の杜
- 「Visual Studio Code」に不審なリポジトリを安全に扱える「制限モード」 - 窓の杜
- ターミナルをエディター領域へ作成・移動 ~「Visual Studio Code」2021年6月更新 - 窓の杜
- 「Visual Studio Code」に内蔵サーバーでWebアプリをプレビューできる拡張機能が登場 - 窓の杜
- 貼り付けたコードの言語をAIが自動で推測 ~「Visual Studio Code」の2021年8月更新 - 窓の杜
blog
- vscodeで重複行の削除 - 誰にも見えないブログ
- パイプを使って標準出力をvscodeのウインドウに表示する - 誰にも見えないブログ
- ほにゃさんはTwitterを使っています 「vscode, gnuplotが見れるのか https://t.co/jT52ja9c60」 / Twitter
- ドッグさんはTwitterを使っています 「VS Code 内でデータを可視化してデバッグできる VSCode Debug Visualizer 便利そう | 'Visualize Data Structures in VSCode' https://t.co/ji7DCFPJyD」 / Twitter
- AddyOsmani.com - Visualize Data Structures in VSCode
- 「Visual Studio Code」2020年3月版の新機能、時系列でファイルへの操作履歴「タイムラインビュー」、PC間で設定の同期、Undo/Redoがファイル再開後も有効など - Publickey
- Visual Studio Codeが正式にRaspberry Piに対応。Notebook内のMarkdownレンダリングを強化、絵文字やKaTexによる複雑な数式など拡張可能に - Publickey
- VS Code Remote - Containers を Docker Compose で使うのだー! - Mitsuyuki.Shiiba
- VSCode Remote Containerで複数コンテナに接続する │ wonwon eater
- Visual Studio Codeの設定ファイルを共有してチーム開発をより快適にする | フロントエンドBlog | ミツエーリンクス
- EmacsユーザがVSCode だけで開発するようになって1ヶ月が経った - type t (* void *)
Qiita
- Visual Studio Code チートシート - Qiita
- VS Code の便利なショートカットキー - Qiita
- 【Visual Studio Code】 日本語のメニュー画面で使う方法 - Qiita
- VSCode devcontainerを使って面倒な開発環境を作る - Qiita
- VSCode Remote Containerが良い - Qiita
- Anaconda Python/R Distribution - Anaconda
- Visual Studio Code – コード エディター | Microsoft Azure
- Microsoft/vscode: Visual Studio Code
- Visual Studio Code - Code Editing. Redefined
- Documentation for Visual Studio Code
- Visual Studio Live Share
- Integrating Debuggers into Visual Studio Code
- 超融合!時空を越えた絆 Neo Vim(VSCode)を試してみた
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「docker desktop for win+vscode + devcontainerをどうにかしようとしたがどうにもならない(bind mountで失敗)するのでx11経由でnative vscode + devcontainerにしたらあっさり動いた。初めからそうすればよかったのか…」 / Twitter
- VSCode devcontainerでローカルを汚さずに、快適なGo言語の開発環境を整える
- 戦国時代だったテキストエディタ界をVisual Studio Codeが天下統一しつつある - GIGAZINE
- Visual Studio CodeがJava IDEの能力を強化
- ColabCodeを使って、Google Colabの上でVS Codeを使ってみよう:Visual Studio Codeで快適Pythonライフ(1/2 ページ) - @IT
- Takashi KawasakiさんはTwitterを使っています 「昨日、まさにどこかで話してた話で、今時、クラウドでAPI提供するならVSCodeの拡張は必要だよなぁとか言ってたらやっぱりこういう感じだよな。Stripeは別件でもないが見てただけなんだが。 https://t.co/Gk5QVMwvo9」 / Twitter
- Visual Studio Code をご利用の場合
Edge
拡張
- Create Link - Chrome ウェブストア
- Google 翻訳 - Chrome ウェブストア
- PDF Viewer - Chrome ウェブストア
- Tracking Token Stripper - Chrome ウェブストア
- Wayback Machine - Chrome ウェブストア
- Google アナリティクス オプトアウト アドオンのダウンロード ページ
- テキストエンコーディング - Chrome ウェブストア
- ドキュネオさんはTwitterを使っています 「tenntennさんに収録のテクニック教えてもらいました 🙏 * 録画中に喋りをミスった場合、そのまま喋り直して、編集でカット * QuickTimeで録画して.movで保存 * Picture-in-Picture Extensionを使えばセルフィ埋め込みが可能 * カメラ横に人形を置いてそれに話かける * カメラ横にカンペを表示」 / Twitter
- Picture-in-Picture Extension (by Google) - Chrome ウェブストア
- Vimium - Chrome ウェブストア
- ふりがな付与機能・サテライトオフィス - Chrome ウェブストア
- Twitterで消せない「おすすめ」を消すChrome拡張
- Chromeの操作を記録してPuppeteerやPlaywrightのコードに置き換えてくれる「Headless Recorder」レビュー - GIGAZINE
- iCloudパスワード - Chrome ウェブストア
- Microsoft Power Automate - Microsoft Edge Addons
- GhostText: 好きなブラウザでの入力を好きなエディタで行う
- URLについてくる不要なパラメーターを消してくれる拡張機能「ClearURLs」レビュー - GIGAZINE
- PDF Translator - Chrome ウェブストア
- PDF Translator 使い方 - pipbcmsi’s diary
- yoshinobc/PDF-Translator: PDF Translator Chrome-extension
- 2000件以上のGoogle Chrome向け拡張機能がセキュリティを低下させているという指摘 - GIGAZINE
- 「Google Chrome」の「保護強化機能」を有効化して鉄壁のセキュリティに - 窓の杜
- Webブラウザの拡張機能を標準化へ、Apple、Google、Mozilla、マイクロソフトらがW3C WebExtensions Community発足 - Publickey
- Microsoft エディター、スペルと文法のチェック
- 無料で文章やコードを校正できる「textlint」にブラウザ拡張機能「textlint editor」が登場したので使ってみた - GIGAZINE
- 大量に開いたタブをURLに応じて自動的にグループ化してくれるChrome向け拡張機能「Acid Tabs」レビュー - GIGAZINE
- Microsoft Edge アドオンストアの開発者ポリシー - Microsoft Edge Development | Microsoft Docs
- Chromeブラウザ拡張機能の調査により、人気のある拡張機能のパフォーマンス影響が明らかに
- Google、「Manifest V2」準拠のChrome拡張を段階的に廃止 ~2023年には利用不能に - 窓の杜
- 無料でJavaScriptによるトラッキングを防げるマルウェア対策拡張機能「JShelter」をフリーソフトウェア財団が発表 - GIGAZINE
- 早過ぎる新「Microsoft Edge」のリリースサイクルを緩和する「延長安定版チャネル」とは:企業ユーザーに贈るWindows 10への乗り換え案内(98) - @IT
- IE11 サポート終了の歴史 | blog.jxck.io
- Microsoft、「Internet Explorer 11」のサポート終了を発表、~猶予期間は約1年、2022年6月15日まで - 窓の杜
- Internet Explorer 11のサポートが2022年6月で終了 - PC Watch
- マイクロソフトは、2022年までにInternet Explorer 11を廃止します。|自作.com
- 文書作成など、Chromeのアドレスバーからコマンド呼び出し可能に - PC Watch
- Edgeのタブ共有機能を1カ所に集約した「Desktop Sharing Hub」- 阿久津良和のWindows Weekly Report | マイナビニュース
- 「Microsoft Edge 91」からダウンロードファイルへの警告が強化 - 窓の杜
- 「Microsoft Edge」でダウンロードしたアプリに警告が……実行して大丈夫? - やじうまの杜 - 窓の杜
Microsoft Store
- Windows File Recovery を入手 - Microsoft Store ja-JP
- HEIF 画像拡張機能 を入手 - Microsoft Store ja-JP
- HEIC Image Converter を購入 - Microsoft Store ja-JP
- HEVC ビデオ拡張機能 を購入 - Microsoft Store ja-JP
- Raw Image Extension を入手 - Microsoft Store ja-JP
- AV1 Video Extension を入手 - Microsoft Store ja-JP
- ProcDump - Windows Sysinternals | Microsoft Docs
- DebugView - Windows Sysinternals | Microsoft Docs
- RAMMap - Windows Sysinternals | Microsoft Docs
- A5:SQL Mk-2 (x64) を入手 - Microsoft Store ja-JP
- Microsoftがアプリストア「Microsoft Store」の一新を図っている - GIGAZINE
- Microsoft Store のポリシーの変更履歴 - UWP applications | Microsoft Docs
- Microsoft Store ポリシー - UWP applications | Microsoft Docs
- Microsoft Store ポリシー改訂、Chrome や Firefox の公開が可能に | スラド デベロッパー
WSL
その他
- ifconfigコマンドとipコマンドの違いと比較 – エラーの向こうへ
- linux debugfs - Google 検索
- Darling | macOS translation layer for Linux
- 1Password for Linux beta is now open 🎊 🐧 🎊 | 1Password
- X.Org Serverは見捨てられたソフトウェアなのか | スラド オープンソース
- Linuxで発表動画を撮る | κeenのHappy Hacκing Blog
- AppArmor - Ubuntu Wiki
- Security - AppArmor | Server documentation | Ubuntu
- Yubikey覚書 | teqblog
- 超入門USDT - ローファイ日記
- Fedora/CentOS Stream/CentOS/RHELの関係性 - 赤帽エンジニアブログ
- Linux カーネルでの Sphinx 利用法を見てみよう - Hack like a rolling stone
- The Linux Kernel documentation — The Linux Kernel documentation
- Enterキーが押されるのを待たずに、標準入力から文字をキャプチャします
- if0604_60.pdf
- Windowsマシンを使う - in neuro
- Ubuntu 20.04 LTS : NVIDIA ドライバーインストール : Server World
- remmina - Google 検索
- Ss systemdのwslディストロを作る kernelvm探検隊online part 3
- Ansible Collections を使ってみよう! - 赤帽エンジニアブログ
- screen serial - Google 検索
- Ubuntuのインストール時に設定すること | OsaruSystem
- fbiとfbvのインストール・設定 | ペンギンの道しるべ
- 【systemd】Type=notifyについて調べたメモ - 地方エンジニアの学習日記
- WindowsにWSL2とDockerをインストールする手順 | カフーブログ
- Verilatorのリグレッションテスト用にWSL2上にDocker環境を構築する試行 - FPGA開発日記
- WSL2でMySQLを起動するときは mysqld --daemonize を使う - そーだいなるらくがき帳
- WSL2のUbuntuにpdftkをインストールするためのsnapのためにsystemdを起動する(必要はない)
- リモートマシンのルートファイルシステムをぶっ飛ばした話 - 覚書
ssh
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「vs code remoteでhostがWindowsの時にssh + agent forwardってどうするのがいいんだろうな。そもそもwindowsでのssh-agentが魔境っぽい https://t.co/qpQrmejS2h」 / Twitter
- 混沌を極めるWindowsのssh-agent事情 - Qiita
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「https://t.co/8iPT8zgYvf そして今ならなんと標準サービスでssh-agentが動くことを知る」 / Twitter
- わたなべごうさんはTwitterを使っています 「@knok こちらの stream-connector を使うと、Win標準の ssh-agent から、msys or cygwin/wsl1 or wsl2 いずれにも一発でソケットトンネルつくってくれるので集約できますね。https://t.co/g03ftElHB9 鍵管理系アプリだと KeePassXC とかが Win標準の ssh-agent への鍵登録に対応してたりします」 / Twitter
- stream-connector - Programming Field
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「@wtnbgo KeePassXC使えるのはいいですね。情報ありがとうございます」 / Twitter
- Kaz Nishimura, C++UnitX (cppunitx) 作者さんはTwitterを使っています 「@knok WSL 上では ssh.exe を使うことにするといろいろ楽」 / Twitter
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「@kazssym ssh_configのwildcardの扱いがちょっと面倒なんですよね… 当初git for winのssh.exeを使ってたのですが、利用可能なセッション数に上限があるようで、今はwin10標準にしています。wildcardはgit bash経由で処理させています」 / Twitter
- [Windows] VSCode で使うssh-agentについて VSCode Remote Development - Boards - Crieit
tmux
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今更ながらの tmux、PuTTYが切れて再接続しても、tmux a で、バックログを含めたセッション再開できるのがとても良いね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「二つのターミナルから、tmux a とやると、相互ミラーリング的な表示になるのね…何の役に立つか判らないけど面白い。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@shirouzu レッスンに使えそうですね」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「TeraTerm愛用してるから普通に腹立つんだけど💢 以前、タブ式のターミナルを使った事あるんだけど、ありゃダメだった。 cscopeでソース見ながら、emacsで自前コードを書いて、シェルでゴニョゴニョする感じなので、いちいちタブを切り替えるワンステップ入るのがね。 https://t.co/N2AFuiX4zc」 / Twitter
- 時代遅れなソフトウェア達
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「タブ式だの画面分割だので頑張るくらいなら、横長のウルトラワイド液晶ディスプレイ買えばいいじゃん(煽」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@kkaigai タブ式のターミナル、面倒なのよくわかります。参照しながら仕事するから、常に3つのターミナル画面立ち上げてますが、ブラウザと被ってしまって…。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「tmux の Ctrl+B は「他のショートカットに被らない」を優先と思うのだけど、多用する場合は使いづらい。 先人の定番とかあるのかな?」 / Twitter
- 鯉江さんはTwitterを使っています 「@shirouzu わたしはC-l(える)にしてます。tmux外の環境でおしてしまっても被害が少ないのが理由です。 一般的にはC-]が多いんじゃないかと(個人的想像です)。ほかとキーバインドがかぶりにくいので。わたしはviのタグジャンプでつかうので避けました。 https://t.co/u9LZFsR4Hd」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@koie なるほど、良いかもですね。 ありがとうございます。」 / Twitter
- QGBCSさんはTwitterを使っています 「@shirouzu Ctrl+`」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「とほほ氏は Ctrl-j かな? https://t.co/SsAqQuE8fL https://t.co/Ird5pasp0h」 / Twitter
- tmux入門 - とほほのWWW入門
- Using tmux for automating interactive reverse shells | by Ulisses Alves | Jul, 2021 | InfoSec Write-ups
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「メモ 設定リロード: tmux source-file ~/.tmux.conf tmux.conf で カレントディレクトリ付で新規ペイン: bind - split-window -v -c '#{pane_current_path}' bind \\ split-window -h -c '#{pane_current_path}' (私は -,\ を水平,垂直セパレータにしてる)」 / Twitter
シェル
zsh
- .zshrcに書いておくべきこと - sanoto_nittc’s diary
- SODA NoriyukiさんはTwitterを使っています 「@kazuho これは zsh の echo が、デフォルトだと System-V /bin/echo と同様な動作をするせいですね。 setopt bsdecho しておけば、echo が \ を解釈するのを止められると思います。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho zshのデフォルトって、他のBourne shell系シェルとの違いが結構大きいので、~/.zshenv に setopt bsdecho globsubst ksharrays nonomatch shwordsplit あたりを設定しておいた方がいいかもしれません。 (詳しいことは @satoh_fumiyasu さんの https://t.co/hGCN2f3Dmd 参照)」 / Twitter
- zsh でシェルスクリプトを書くときの留意点 - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog
- ふみやす@シェルまおう(自称でない) FGO:838,149,789さんはTwitterを使っています 「@n_soda @kazuho zsh を Bourne shell 互換設定にすると動かない zsh 拡張機能もあるので、それらを有効にして利用していると困ることあるかも。昔、いろいろカスタマイズしている自分の .zshrc で試したとき何かが動きませんでした。デフォルトなら影響ないと思うけど、たぶん。」 / Twitter
- hkobaさんはTwitterを使っています 「.oO(…少数派の zsh 主義者からの意見ですが、せっかく zsh 使うのに setopt shwordsplit してしまうのは、 zsh の設計思想に逆行してる感があって残念と思ってますん…もちろん進歩より posix sh 互換性という優先順位もあるとは思いますが…)」 / Twitter
- hkobaさんはTwitterを使っています 「せっかく配列をまともに使えるモードが用意されたのに、それを殺すなんて勿体ない、という考えです。 (正確に言えば、スカラー変数を配列代わりに使う機能をオフにするモード)」 / Twitter
- hkobaさんはTwitterを使っています 「@n_soda やはりそこは使いますよね~ で、 "$file" を単に $file と書いても完全に安全なのが、 zsh の良いところかなと。 ファイル配列への追加も argv+=($newfile) 辺りで。」 / Twitter
- Zshで環境変数とその値を補完する
- oilshell/oil: Oil is a new Unix shell. It's our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!
- シェルスクリプトを書くときにいつもやるやつを調べた - Please Sleep
- あなたはps -ef派なのか、auxf派なのかをちょっとだけまとめてみた | ten-snapon.com
- 2020年5月20日 リモート接続でいつものシェルを! ssh越しでポータブルなシェル環境を実現する「xxh」:Linux Daily Topics|gihyo.jp … 技術評論社
- satさんはTwitterを使っています 「shell(bashなどの特定のshellだけかも)で"$_"が「直前に実行したコマンドの最終引数」と言うことを知っていたかどうか。たとえば以下のようにすると一行目で作ったディレクトリに移動できる ``` $ mkdir -p path/to/dir $ cd $_ ```」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@satoru_takeuchi meta-.で直前の行の最後の引数が入力できるというのは。」 / Twitter
- グロブ - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「bash でワイルドカード引数でコマンド実行すると、マッチしない場合は bash がエラーメッセージを出してコマンドは実行されないという挙動という認識だった。 最近気づいたのは、展開できないとワイルドカードをそのままコマンドに渡す、みたいな挙動になっているのね…危ない例とか無いのかしらん?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「すごいわかる。実行したコマンドの history は覚えてるんだし、結果も覚えておいてくれたらいいやん。どうせテキストだし、メモリ富豪な現代においては、常に覚えておいてほしい」 / Twitter
- _ko1さんはTwitterを使っています 「shell よく知らないんですが、nantoka shell で、スクリーンに出てきた stderr/out の出力を、コマンド実行後に得る、みたいな方法ってありますかね。裏で勝手に stdout/err をいい感じにファイルとかメモリにのっけておく、でもいいんだけど。数千行、毎回 terminal からコピペしてるのがつらい。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「こういう用途には Emacs のシェルモードがおススメ! (CTRL-c CTRL-s で直前に実行したコマンドの出力だけをファイルへ書き出せます)」 / Twitter
- ざぎん 𒎎𒍝𒆳さんはTwitterを使っています 「@shinji_kono axiom は古代ギリシャ語 at-幹名詞 ἀξίωμα axioma が、フランス語の axiome を経由して語尾が取れてしまった形なので、ラテン語やギリシャ語の o-幹名詞(例 datum, criterion)とは違いますね。 もし axioma のまま入ってきていたら、 lemma のように axioma, axiomata みたいになっていたはずです」 / Twitter
- わたなべごうさんはTwitterを使っています 「tee とかで自前で記録とるのではなく、shell 側の機能としてほしいやつですね。Jupyter Notebook で bash カーネルがたぶんやりたいことに近いと思われる。参考記事 https://t.co/RFBvh5JwZ9 今だとnushell カーネルとかをためしてもいいかも」 / Twitter
- シェル芸人のためのJupyter環境 - A painter and a black cat
- SODA NoriyukiさんはTwitterを使っています 「Emacsのシェルモードでコマンドの出力を切り出す場合だと TAB や 制御文字の多くがそのまま保存されてるってのも地味に嬉しい。 xtermからのコピペだとダメ(TABはスペースに展開、制御文字は消える)だし、tmux show-buffer でもダメっぽい。 ただシェルモードでもESCシーケンスはダメ。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@BsdHacker 直前のコマンドの出力だけを手軽に切り出したいってことなので、scriptだと切り出すのが不便じゃないかと。 ・macOS iTerm2 + shell integration: https://t.co/QfGzCbR4eB ・zsh preexec: https://t.co/pKjj3GWbiu ・Jupiter Notebook: https://t.co/5upu4eTh2o ・emacsシェルモード あたりですかね」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「これ、知人と話してたら https://t.co/8h0hxJIYhw を作ってくれたけど自分でやりたくなって https://t.co/Ytm1P64Ixw を作って使ってる。 screen が動いてる前提の作りで、 less /tmp/tanlog/make/P とかで前に使った make の出力が残ってる https://t.co/5tEBimWAJI」 / Twitter
- omakoto/zenlog
- test/tanlog.rb at master · shinh/test
- shinichiro hamajiさんはTwitterを使っています 「端末レベルで記録すると ssh とかも残るから便利なんだよなあ。このへんは UNIX 哲学とか忘れて、端末+shell+screen は単一のアプリにした方が便利だしやれること増えるんじゃないかな、と思ってる。 ref: https://t.co/uTVKnmy9xj」 / Twitter
- はじめてのにき(2020-06-30)
- Miura HidekiさんはTwitterを使っています 「teeでリダイレクトするとかそのままリダイレクトするとかあるけど、逆にこういうことしたい時はファイルが巨大になり過ぎるきらいがあるから、何らかのリミッタが欲しい所」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「bash乃バージョン間の差異で悩まされた経験があるのであまり同意できない…」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「最近、bashが最強のプログラミング環境であると思い始めている。圧倒的なポータビリティとスケーリングを実現できる。」 / Twitter
- fish の始め方 – GitHub 出張所 – プログラム関係のブログはここに
- Kazuho OkuさんはTwitterを使っています 「シェルってだいたい dynamic scope なんじゃないの? (というかperlのlocalはシェル由来だったりしないのかしら)」 / Twitter
- matsuu (ウー馬場ーイー2)さんはTwitterを使っています 「せやな。自分もmanで-exec {} +を見つけてから積極的に使ってる。めちゃ高速だし。削除については-exec rmではなく-deleteを使ってます。わいわい。 / “POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita” https://t.co/LLaKsOIh9M」 / Twitter
- POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき! - Qiita
- Kazuyoshi KatoさんはTwitterを使っています 「ブログを書きました。我々中年プログラマ諸氏はPerl書けるけど封印しているじゃないですか。シェルスクリプトもそろそろ封印したら良いのではという話です。インターンの人に「この比較のところ、空白が入ると壊れるからクオートして...」とかコードレビューでやりたくない。 https://t.co/K9igYPQiqy」 / Twitter
- シェルスクリプトを書くのをやめる - blog.8-p.info
- 伊津野 英克さんはTwitterを使っています 「シェルスクリプトが色々あれなのは事実だけど、ランタイムが最初から入っててライブラリの依存性がローカルに閉じてて、ファイル操作が容易で grep 相当の機能が必要となるとあんまり選択肢がないんだよなぁ。」 / Twitter
- ぬるぽへさんはTwitterを使っています 「一時期Bashスクリプトにコンパイルするまともな文法のalt bash scriptみたいなのを作ってたことがあるんですが、結果として何が起きたかというとめちゃくちゃシェルスクリプトに詳しくなってシェルスクリプトが書けるようになった」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「とりあえずシェルスクリプトは文法がクソすぎてダメってのはあのBill Joyですら二十代のころに同じ発想でcsh書いて失敗したやつだからな。はしかみたいなもんです。みんな一度はやる。」 / Twitter
- 環境変数 PATH に空文字があるとカレントディレクトリが指定されているのと同じ意味になる
- Rui UeyamaさんはTwitterを使っています 「tacコマンド(catの反対だからtac)の新たな使い方を知った。コマンドfooの出力を全部バッファリングしたいときは foo | tac | tac とすればいい。」 / Twitter
- ドッグさんはTwitterを使っています 「このページに載ってるシェル起動時のスクリプト読み込みフローが便利🙄 | 'Shell startup scripts' https://t.co/k16JJX3Y8v https://t.co/7PkE0kjYuY」 / Twitter
- Shell startup scripts — flowblok’s blog
- ダウンローダーGNU Wgetの後継となる「GNU Wget2 2.0」が公開 | OSDN Magazine
- ファイル/シェル/テキスト操作のユーティリティ集「coreutils-9.0」が公開 | OSDN Magazine
apt
- 第327回 aptコマンドを使ってみよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- aptコマンドチートシート - Qiita
- Ubuntu 16.04 / Debian 8: aptコマンドの使い方 - Narrow Escape
- 「apt-get」はもう古い?新しい「apt」コマンドを使ったUbuntuのパッケージ管理 | Linux Fan
- WSLのUbuntu環境で「apt」コマンドを使ってパッケージを更新/管理する:Tech TIPS - @IT
- KeN's GNU/Linux Diary(2018-07-28)
- 第675回 apt-keyはなぜ廃止予定となったのか:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第676回 aptコマンドの最新機能あれこれ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第677回 aptで使うsources.listのオプションいろいろ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
ASCII.jp
- ASCII.jp:20H1の完成とともにWindows Subsystem for Linux 2が来る (1/2)
- ASCII.jp:Windows 10のWSL2からGPUが使えるようになった (1/2)
- ASCII.jp:WSL2にCUDA on WSLをインストールする (1/2)
- ASCII.jp:WSL2で外部ストレージをマウントできるようになった (1/2)
- ASCII.jp:Windows 10の最新ビルドを用い、WSL2で仮想マシン環境を使う (1/2)
- ASCII.jp:LinuxのGUIアプリケーションに対応するWSL2 (1/2)
- ASCII.jp:WSL2ではRDPでLinux GUIアプリのウィンドウを表示する (1/2)
- ASCII.jp:WSL2の2つの設定ファイル「.wslconfig」と「wsl.conf」 (1/2)
- ASCII.jp:WSL2でのGUIアプリ対応がプレビュー版で開始 実際に動かしてみた (1/2)
- ASCII.jp:WSL2でのGUIアプリケーションを動かす「WSLg」の仕組み (1/2)
窓の杜
- Canonical、「Ubuntu 20.10」の提供を開始 - 窓の杜
- “wsl --install”で「WSL」を一発セットアップ ~Dev版「Windows 10」Build 20246 - 窓の杜
- プレビュー版「Windows 10」のタスクバーにニュース機能 ~WSL起動時のコマンド実行にも対応 - 窓の杜
- 「Docker Desktop 3.0.0」が正式リリース ~差分更新によりアップデートが手軽に - 窓の杜
- WSL 2 GPUをサポートした「Docker Desktop」が開発者向けにプレビュー - 窓の杜
- 「Docker Desktop 3.3」が公開 ~アップデート通知を行い、勝手に更新しないように - 窓の杜
- 「Docker Desktop 3.4」が公開 ~有償版でないと更新スキップできないと誤解を招くリマインダーを改善 - 窓の杜
- WSLがコマンド一発でインストール可能に - 窓の杜
- 「Windows 10 バージョン 21H2」の新機能が実装、Release Previewチャネルで提供開始 - 窓の杜
- 「Ubuntu 14.04」と「Ubuntu 16.04」のライフサイクルが計10年へ延長 - 窓の杜
- 完全な互換性と改善されたI/Oパフォーマンス ~Canonical、「Ubuntu」の「WSL 2」対応を発表 - 窓の杜
- ストアにある3つの「Ubuntu」の違いは? ~WLSの「Ubuntu」をアップグレードする方法 - やじうまの杜 - 窓の杜
PC Watch
- Windows 10プレビュー版、WSLでのGPUコンピューティング対応やWi-Fiセキュリティ強化を実施 - PC Watch
GIGAZINE
- MicrosoftがBuild 2020でWSL2のGUIアプリ動作やパッケージマネージャー「winget」などを発表 - GIGAZINE
- Linuxを生み出したリーナス・トーバルズが考える「優れたコード」とは何か? - GIGAZINE
Publickey
- Windows 10のファイルエクスプローラがWSL機能を統合。Linuxを示すペンギンアイコンが登場 - Publickey
- 個人開発者はRed Hat Enterprise Linuxを無料で最大16システムまで利用可能に、本番環境もOK。Red Hatが開発者向けプログラムの拡大を発表 - Publickey
- Ubuntu 21.04正式リリース。Active Directoryとネイティブ統合、最適化されたSQL Server対応、Flutter用SDK搭載、Waylandがデフォルトに、など - Publickey
- Kubernetes環境をWindows 10/macOSへ簡単にインストール。「Rancher Desktop」がオープンソースで公開 - Publickey
- 第671回 パッケージのアップデートとアップグレードを制御する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
技術評論社
- 第633回 字幕ファイルを作成し,動画に焼き込む:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第663回 Ubuntu 21.04の主な変更点:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第667回 Warpinatorでお手軽LAN内ファイル転送:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第669回 Ubuntuとデスクトップフォルダー機能:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第680回 LXDコンテナ上のWindowsでWSL環境を整える:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
マイナビニュース
- WSL 2に特化した「Ubuntu on Windows Community Preview」とは - 阿久津良和のWindows Weekly Report | マイナビニュース
- WindowsとLinuxの融合をさらに進めたマウントオプション - 阿久津良和のWindows Weekly Report | マイナビニュース
- Linux GUIアプリが動作する最新Windows 10 Insider Preview - 阿久津良和のWindows Weekly Report | マイナビニュース
- Linuxとの統合を目指すWindows 10 - 阿久津良和のWindows Weekly Report | マイナビニュース
infoQ
- zx - より良いスクリプトを書くためのツール
- Microsoftが保有する社内用のLinuxディストリビューションビルダーCBL-Marinerとは
Qiita
- WSL2によるホストのメモリ枯渇を防ぐための暫定対処 - Qiita
- WSLでWindows側とLinux側のパイプの使い分けについて - Qiita
- 待ってました CUDA on WSL 2 - Qiita
- WSL上でDocker Engineが動くようになっていたっぽいという話 - Qiita
- WSLのディストリビューションの切り替えに関するメモ - Qiita
Twitter
- すずかさんはTwitterを使っています 「\\wsl$ でWSLのfsに入れることを知っているだけで効率が100倍くらい変わる https://t.co/4Ar76maM3R」 / Twitter
- 高梨陣平さんはTwitterを使っています 「あまり話題になっていないですが、WSL1と異なりWSL2はNW通信がWindows Firewallを経由しません。 WSL2はHyper-V上でWindowsと同格のゲストOSです。WSL2上でfirewallの設定が必要なので注意しましょう。」 / Twitter
- FadisさんはTwitterを使っています 「WSL2でGUIなアプリケーションを動かす為に、Microsoftが独自のWaylandコンポジタを実装している、という話。このコンポジタはWestonをベースに、ルートレスでリモートのウィンドウを表示するRDP-RAILを喋れるように拡張したものらしい https://t.co/MWNdc2GCWF」 / Twitter
- Microsoft Is Writing Its Own Wayland Compositor As Part Of WSL2 GUI Efforts - Phoronix
- FadisさんはTwitterを使っています 「マイクロソフトがWSLの新機能WSLgの解説を行なっている話。WSLgはWSL2で動くLinux環境にWaylandとXとPulseAudioを生やし、映像、音双方でWindowsネイティブなアプリケーションと同じ感覚でLinux向けGUIアプリケーションを動かせる。GPUによるアクセラレーションにも対応。 https://t.co/FjCoG2Puwo」 / Twitter
- Microsoft Posts WSLg Preview - GUI App Support With Windows Subsystem For Linux - Phoronix
- knj08aさんはTwitterを使っています 「CPU依存ぽいね https://t.co/4wko9X80ZE」 / Twitter
- After most recent WSL update, WSL won't start · Issue #33 · microsoft/wslg
- knj08aさんはTwitterを使っています 「問題が発生している環境は i7-3770K ivy bridgeか・・・古いな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「未だにSandy Bridge搭載マシンを使っているのがいけなかったか」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「WSLg、IMEもwaylandプロトコル実装すればいけると思うんだけど、まぁ大変そう」 / Twitter
- Taku KudoさんはTwitterを使っています 「ホストIMFの動作をブリッジする疑似IMEをfcitx上に作ればいけるかな。Mozc限定なら、fcitx-mozc のプロセス間通信の接続先をホストOS上のソレにつなげれば動きそう。いずれにせよ UIは fcitx になるので、見た目的には現状と変わらない。 https://t.co/DWVs1rio7x」 / Twitter
- Taku KudoさんはTwitterを使っています 「windows の商用 xserver は ximp とか kinput2 経由でブリッジしてた記憶がある。それでいけるのかな。あまりにも古い知識なのでよくわからん。」 / Twitter
- Akihiko OtaさんはTwitterを使っています 「「Windowsからならファイルエクスプローラーを開いた上で,「Ctrl-l」を押し,アドレスバーに「\\wsl$」と入力します。これでディストリビューションごとのファイルシステムがネットワークファイルシステムとしてアクセスできます。」 しらんかった…毎回WSL2側からcpでもってきてた…」 / Twitter
- hitoさんはTwitterを使っています 「@skywalker_37th WSL2側でexplorer.exe起動してもいいんやで……」 / Twitter
- Akihiko OtaさんはTwitterを使っています 「@_hito_ まじか…めっちゃキモい…」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「有用な ls* コマンド群。lsblk, lscpu, lshw, lsmod, lsof, lspci, lsusb, lslocks など。lslogins とか初めて知った。しかも util-linuxに含まれている。」 / Twitter
- hackerbot.ethさんはTwitterを使っています 「ls* Commands Are Even More Useful Than You May Have Thought: https://t.co/G6ragdRv60」 / Twitter
- ls* Commands Are Even More Useful Than You May Have Thought - nixCraft
- WSL CUDA - Google 検索
- DirectX ❤ Linux | DirectX Developer Blog
- 日記 (2020 年 7 月)
- Linux との Windows の相互運用性 | Microsoft Docs
- WSLg Architecture | Windows Command Line
PowerToys
- 「PowerToys」にMarkdown/SVGプレビューと画像リサイズ、検索ベースのタスク切り替えが追加 - 窓の杜
- MS、Windows 10向け「キー割り当て変更ソフト」開発中。軽量なUIを約束 - Engadget 日本版
- Releases · microsoft/PowerToys
- PowerToys/KeyboardManager.md at feature/keyboardmanager · microsoft/PowerToys
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「むー。たぶんこれ、対応しないと今のGeckoではリマッピングに対応できないだろうな。Windows標準のショートカットキーハンドリングはVKに従うっぽいけど、Geckoは入力文字の方を見てるんだよね……」 / Twitter
- ASCII.jp:Windows 10用ユーティリティ「PowerToys」がv0.16.1に 新機能をチェック (1/2)
- キー割り当て変更ユーティリティを統合した「PowerToys v0.18.0」 - PC Watch
- 無料で使用可能なクイックランチャー機能「PowerToys Run」がMicrosoft公式のWindows 10拡張ソフト「PowerToys」に登場 - GIGAZINE
- ASCII.jp:キーやショートカットキーの変更にも対応したWindows 10用ユーティリティ「PowerToys」の新バージョン (1/2)
- 【山田祥平のRe:config.sys】あらゆるアプリを同じ操作で - PC Watch
- ASCII.jp:正式版は年内と延びるも、完成度は高まっているWindows 10向けPowerToys (1/2)
- 「PowerToys」を使いこなして効率UP! プレビュー版を一足先に体験 2020年 記事一覧
- PowerToys、PCを起動しっぱなしにできる機能でCPU高負荷となる問題を修正 - PC Watch
- PowerToysがWindows 11っぽい見た目に。Fluentデザイン採用の最新版公開 - PC Watch
- OSの使い勝手を改善する「PowerToys」がWindows 11にピッタリのモダンスタイルに - 窓の杜
- PowerToysがWindows 11向けにストアで配信 - PC Watch
Power Apps
- 自動化ツール「Power Automate Desktop」の無償化はMicrosoftの英断 - 阿久津良和のWindows Weekly Report | マイナビニュース
- 【Windows 10版でどこまでできるか】Power Automate Desktop のライセンスやできることや気になることまとめ【随時更新】 - Qiita
- デバイスで Power Automate Desktop を設定する - Power Automate | Microsoft Docs
- Set up Power Automate Desktop on your device - Power Automate | Microsoft Docs
- ASCII.jp:Windows 10で無料で使える、デスクトップ操作の自動化ツール「Power Automate Desktop」を試す (1/2)
- [速報]マイクロソフト、自然言語をプログラミング言語にAIで変換、新ノーコード機能をPower Appsに搭載。AI言語モデル「GPT-3」を採用。Microsoft Build 2021 - Publickey
- Excelの数式をベースにしたプログラミング言語が登場、「Microsoft Power Fx」。オープンソースで公開予定。Microsoft Ignite 2021 - Publickey
- Excelの新機能「Lambda関数」によって「Excelの数式がチューリング完全になった」とナデラCEO。プログラミング言語としてのExcel数式であらゆる計算が可能に - Publickey
- Microsoftが文章生成AI「GPT-3」をビジネスアプリ作成ツールに統合すると発表、文章形式でアプリ作成が可能に - GIGAZINE
- [速報]マイクロソフト、自然言語をプログラミング言語にAIで変換、新ノーコード機能をPower Appsに搭載。AI言語モデル「GPT-3」を採用。Microsoft Build 2021 - Publickey (1)
- 話し言葉でプログラミング Microsoft、ノーコード進化: 日本経済新聞
- Dataverse のドキュメント - Power Apps | Microsoft Docs
- 「Power Automate Desktop」の6月更新 ~フローから別のフローを呼び出せるように - 窓の杜
- 3800万件分の個人情報がMicrosoftのツールから流出 - GIGAZINE
- Analyze and resolve Portal Checker diagnostics results - Power Apps | Microsoft Docs
- Important changes coming in Power Apps portals - Power Apps | Microsoft Docs
Terminal
ASCII.jp
- ASCII.jp:正式版が登場したWindows Terminalをカスタマイズする (1/2)
- ASCII.jp:Windows Terminalのカスタマイズを研究【キーボード編】 (1/2)
- ASCII.jp:プレビュー版で開発が進められているWindows Terminal (1/2)
- ASCII.jp:Windows 10で標準で用意されるようになったcurlを使ってみる (1/2)
- ASCII.jp:Windows 10の新コンソール、Windows Terminalが完成直前のv0.11に (1/2)
- ASCII.jp:機能的にはほぼ完成されたWindows 10の新コンソール、Windows Terminal v0.9 (1/2)
- ASCII.jp:Windowsのパス区切り文字は、なぜ逆スラッシュになったのか?|Windows Info
- ASCII.jp:Preview版でv1.5まで進化したWindows Terminalの新機能を確認 (1/2)
- ASCII.jp:v1.6まで進化し、GUIでの設定ページも用意されたWindows Terminal (1/2)
- ASCII.jp:コマンドラインからウィンドウの制御が可能になったWindows Terminal v1.7 (1/2)
- ASCII.jp:あらためて「PowerShell」の現状と登場後の経緯を整理する (1/2)
- ASCII.jp:Windows Terminalは安定版v1.8、Preview版v1.9が登場 v2.0に向け進化が続く (1/2)
- ASCII.jp:Windows PowerShellからスクリプトの完了をトースト通知で知らせる (1/2)
- ASCII.jp:Windows Terminalのコマンドラインを極める (1/2)
- ASCII.jp:v2.0が近づいてきたWindows Terminal プレビュー版1.11の新機能を解説する (1/2)
窓の杜
- 「Visual Studio」に「Windows Terminal」を合体 ~Microsoft、「VS Terminal」を発表 - 窓の杜
- ジャンプリスト対応の「Windows Terminal 1.4」が正式版に ~次期版は改良されたハイパーリンク機能を搭載 - 窓の杜
- 「Windows Terminal」に待望の設定GUI ~v1.6プレビュー版で先行導入 - 窓の杜
- 「Windows Terminal 1.7」プレビュー、GUI設定画面が既定に。JSONスニペットの共有でカスタマイズも簡単 - 窓の杜
- 「Windows Terminal 1.7」が正式リリース、設定GUIを安定版に - 窓の杜
- 「Quake」モードを追加した「Windows Terminal Preview 1.9」 ~既定のターミナルも「conhost」から「Windows Terminal」に切り替え可能 - 窓の杜
- 既定のターミナルを「Windows Terminal」に変更 ~プレビュー版Windows 10でテスト - 窓の杜
- 「PowerShell 7.2」は「Microsoft Update」経由でアップデート可能に - 窓の杜
- 「Quake」モードを追加した「Windows Terminal 1.9」が正式版に ~既定ターミナルの置き換えは搭載見送り - 窓の杜
- プレビュー版「Windows Terminal」のタブバーにアクリル効果、スタイリッシュな見栄えに - 窓の杜
Qiita
- PowerShell 使い方メモ - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PuTTY から RLogin に移行…サーバ群の一括ログイン(復元)が出来て、ログイン時tmux起動と組み合わせでコンテキスト復元まで出来るのが良い。 (コンテキスト維持は大事。その意味で WindowsUpdateの邪悪さ…) https://t.co/UtVgljvR4V」 / Twitter
- ログイン時にtmuxを自動起動したい! - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「RLoginって、設定変更中とか結構な頻度で落ちるのね。 (tmux上で作業する分には影響少ないけど)」 / Twitter
- SETX コマンドで環境変数を永続的に設定する - Qiita
Twitter
- ドッグさんはTwitterを使っています 「pip はもう古い.これからは python -m pip」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「Windows Terminal Previewがconemu OSCというものでタイトルバーとタスクバー上のプログレスバーに対応しているということなので、うちの会社で作ってる変換君もそれに対応してみた。 https://t.co/KKrDDbK4oj https://t.co/6YDxsmaZSG」 / Twitter
- ConEmu | ANSI X3.64 and Xterm-256 Support
- 入谷 優さんはTwitterを使っています 「PowerShell で関数の引数をそのまま別の関数に渡すにはどうしたら良いのかなと思って調べたら、$PSBoundParameters なる変数が使えることを学びました。 https://t.co/Y5me0pqH6l」 / Twitter
- about_Splatting - PowerShell | Microsoft Docs
- 入谷 優さんはTwitterを使っています 「#PowerShell 7.2.0-preview.5 にしてから、cmd を呼ぶスクリプトがエラーを吐くようになってしまいました。どうやら二重引用符の扱いが変わっているようです。 https://t.co/63eduvIkL1」 / Twitter
- Experimental feature PSNativeCommandArgumentPassing breaks cmd /c calls with embedded double quotes · Issue #15239 · PowerShell/PowerShell
- mattnさんはTwitterを使っています 「豆知識: C: は C ドライブのカレントディレクトリという意味です。 C:. と同じ。」 / Twitter
- yuyabu🍥さんはTwitterを使っています 「よくコマンドでないものコンソールにコピペしてしまうことがあるけど有効なコマンドとして解釈されたら怖いなぁと思ってる」 / Twitter
- Windows Terminal を入手 - Microsoft Store ja-JP
- microsoft/terminal: The new Windows Terminal and the original Windows console host, all in the same place!
- PowerShell/PowerShell: PowerShell for every system!
- 山市良のえぬなんとかわーるど: 新しくなった WUA_SearchDownloadInstall.vbs(自動化やオフラインスキャンに対応)
- Searching, Downloading, and Installing Updates - Win32 apps | Microsoft Docs
- パス名にスペースのある実行ファイルの指定方法
- ファイル共有とシンボリックリンクの利用について – Ask the Network & AD Support Team
- Windowsの「robocopy」コマンドでフォルダをバックアップ/同期させる:Tech TIPS - @IT
- Windows Terminalの使い方
- プロファイル、複数のペイン、Unicode文字をサポートするWindows Terminal 1.0がリリース
- Microsoft、Windows Terminalプレビュー版。設定UIの標準化や読み取り専用モードを追加 - PC Watch
- Windows のコマンド | Microsoft Docs
- Windows で sudo なことをする。 | みむらの手記手帳
winget
- microsoft/winget-cli: Windows Package Manager CLI (aka winget)
- まちカドおるみんさんはTwitterを使っています 「パッケージの依存解決したり追跡・アンインストールするための機能がないしこいつは何も管理してないじゃんかという批判。ごもっとも。 >> Not a package manager · Issue #223 · microsoft/winget-cli https://t.co/Z4fyQ0jG1n」 / Twitter
- Not a package manager · Issue #223 · microsoft/winget-cli
- ASCII.jp:Windows 10のパッケージマネージャーであるwingetのプレビュー版を試す (1/2)
- ASCII.jp:Windows用アプリのインストールがコマンドラインで可能なパッケージマネージャー「winget」はどうなった? (1/2)
- Windows環境再構築をコマンドラインで自動化可能にするMicrosoft製ツール「winget」とは:Windows 10 The Latest(1/2 ページ) - @IT
- “Microsoft Store”のアプリもコマンドラインで導入 ~Microsoft、「winget」を更新 - 窓の杜
- 「winget」の最新プレビュー版v0.3が公開 ~importコマンドとグループポリシーに対応 - 窓の杜
- ASCII.jp:Windowsで開発中のパッケージマネージャー「winget」がv0.3に (1/2)
- コマンド一発でアプリをセットアップ ~CUIのアプリ管理ツール「winget」がv1.0に - 窓の杜
- アプリ インストーラー を入手 - Microsoft Store ja-JP
- リポジトリにマニフェストを送信する | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MSさんによってFastCopyの winget用manifestが作られていて、wingetでインストールできるようになっていた…へぇ。 https://t.co/tXLsSZyl9r」 / Twitter
- winget-pkgs/manifests/f/FastCopy/FastCopy/3.92 at master · microsoft/winget-pkgs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ちゃんと /SILENT という、(私が用意した)インストーラ・オプションが指定してある)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IP Messenger も winget できるよう、MS に pull request を送ってみた…何がしか進んでいるっぽい。 https://t.co/8II9HlIFCV」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「無事、マージされた様子。 インストールには winget install ipmsg で OK。 https://t.co/JvaoPvROYs https://t.co/nleokvHdC2」 / Twitter
- Create FastCopy.IPMsg.yaml by shirouzu · Pull Request #19575 · microsoft/winget-pkgs
ライフサイクル
- Search Product and Services Lifecycle Information - Microsoft Lifecycle | Microsoft Docs
- Windows 10 Home and Pro | Microsoft Docs
- Windows ライフサイクルのファクト シート - Windows ヘルプ
- サービスとしての Windows のクイック ガイド (Windows 10) - Windows Deployment | Microsoft Docs
- Windows 10 UWP アプリのライフサイクル - UWP app developer | Microsoft Docs
- ライフサイクルに関する FAQ - Windows 製品 | Microsoft Docs
- ライフサイクルに関する FAQ - Internet Explorer および Microsoft Edge | Microsoft Docs
- ライフサイクルに関する FAQ - モダン ポリシー | Microsoft Docs
- モダン ライフサイクル ポリシー | Microsoft Docs
- Office と Windows のサービスとサポートの変更 - Windows Blog for JapanWindows Blog for Japan
- Tech TIPS:一目で分かる、Visual Studioの各バージョンのサポート期限 - @IT
- マイクロソフト、2025年までにWindows 10のサポートを終了する|自作.com
- ASCII.jp:今秋にはWindows 10もアップデートするが今回も小規模? 21H2のプレビュー開始
マルチブート
- Tech TIPS:Windowsのbcdeditでブートメニューの項目を追加する - @IT
- [Windows10]マルチブート(デュアルブート)起動時のオペレーティングシステム(OS)名称を変更する:初心者のためのHTMLとWindows(ウィンドウズ)、エクセル講座。HTML・CSSを使ったホームページ作成やWindows(ウィンドウズ)、エクセル(EXCEL)・メール(outlook)・フォトショップ(Photoshop)入門
- (UEFI環境 編)Microsoft Windows10 と Ubuntu 14.04 LTS とのデュアルブート環境の構築 | えび天サーバ ( abten server )
- FreeBSDのWindows8.1マシンでのデュアルブートのやりかた - Qiita
- デュアル ブート PC でブート メニューを修復する - Windows 10 hardware dev
- grub にWindows10起動メニューを追加する(Boot-Repairを利用する) - Qiita
Process Monitor
- Process Monitor
- Process Monitor – Japan WDK Support Blog
- Process Monitor で OS 起動時のログを採取する手順 – Japan WDK Support Blog
- 「ProcMon」がダークモードに対応 ~Microsoft製のプロセスモニタリングツール - 窓の杜
Process Explorer
- Process Explorer - Windows Sysinternals | Microsoft Docs
- Process Explorer が Paging List 統計情報の表示に対応していた件 - NyaRuRuが地球にいたころ
- Process Explorer で探る Windows Vista メモリ管理戦略 - NyaRuRuが地球にいたころ
- 3 分ぐらいでわかる,Process Explorer による Windows Vista メモリ使用状況の調べ方 - NyaRuRuが地球にいたころ
- メモリ周りを見るときの Process Explorer の準備 - NyaRuRuが地球にいたころ
- 「Process Explorer」v16.4はプロセスのフィルタリングが可能に ~セキュリティ機能「CET」にも対応 - 窓の杜
- Handle - Windows Sysinternals | Microsoft Docs
パフォーマンス診断
- パフォーマンス診断コンソール - NyaRuRuが地球にいたころ
- pfmon.exe - NyaRuRuが地球にいたころ
- Perforator とは - NyaRuRuが地球にいたころ
- Xperf : Event Tracing for Windows frontend - NyaRuRuが地球にいたころ
- Download DTrace On Windows from Official Microsoft Download Center
- Microsoft Learn | Microsoft Docs
- Microsoft サービス規約
- よく寄せられる質問
- Microsoft アカウント | ホーム
- アカウントの一時停止
- Flight Hub | Microsoft Docs
- Windows 10 IP
- Windows Insider Program の結果 - マイクロソフト コミュニティ
- tenpoku1000
- Microsoft Insiders
- Discussions - Microsoft Tech Community
- Microsoft Edge issue tracker - Microsoft Edge Development
- Process Hollowing/Herpaderping攻撃の検出に対応した「Sysmon」v13.00が公開 - 窓の杜
LibreOffice
- Home | LibreOffice - Free Office Suite - Fun Project - Fantastic People
- Details for crash report: dad46271-da1e-4651-9069-8fa026a75616
- Reports for signature: ScDocument::HasTable(short)
- Crash reporting for the LibreOffice project
- LibreOfficeのバグ報告方法 - The Document Foundation Wiki
- How to get a backtrace with WinDbg - The Document Foundation Wiki
- How to debug - The Document Foundation Wiki
- Users - Calc でコピー・アンド・ペーストを繰り返すとハングアップする問題
- Users - Windows 版 LibreOffice の更新インストール時に権限の問題で処理が完了しない事象
- LibreOffice 日本語チームさんはTwitterを使っています: 「最近、不具合の話が目に付くので皆様にお願いです。 LibreOfficeの不具合はBugzilla(バグ管理システム)に登録されて問題として認識されます。逆に言うと登録されない限りは誰も気がつかないので、もし不具合を見つけたらBugzillaで検索もしくはバグ報告をお願いします https://t.co/dqFnj2kBsZ」 / Twitter
- LibreOffice 日本語チームさんはTwitterを使っています: 「Twitterを見ていますが中の人も拾うには限界があって、先日のMacの不具合のような大きな問題でなければ動くことはできないので、Twitterでつぶやいた後は検索と報告もよろしくお願いします🙇♂️」 / Twitter
- LibreOffice 日本語チームさんはTwitterを使っています: 「メーリングリストなので基本的にメールでやりとりですが、Webから掲示板のように書き込めるNabbleというシステムもあります。こちらもアカウントを作る必要はありますがメーラーを使わなくていいので楽に使えると思います https://t.co/w3RzbkOUxw」 / Twitter
- Document Foundation Mail Archive - Users | Mailing List Archive
- Bugzilla Main Page
- メーリングリスト | LibreOffice - オフィススイートのルネサンス
- Mail Index - The Document Foundation Mailing List Archives
- Mail Index - The Document Foundation Mailing List Archives
GitHub Desktop
Qiita
- GitHub Desktopの使い方 - Qiita
- Github Desktopを使った開発の流れ(入門) - Qiita
- desktop/desktop: Simple collaboration from your desktop
- Sample reports | GitHub Desktop
- Set Up Git - User Documentation
- GitHub Desktop 1.5でマージコンフリクトの解決が容易に
- よくあるうっかりミスを防止する機能が2つ導入された「GitHub Desktop 2.3」 - 窓の杜
- プロキシを自動検出・設定、イシューの作成にも対応した「GitHub Desktop 2.4」がリリース - 窓の杜
- 待望の差分の分割表示をサポートした「GitHub Desktop 2.6」 - 窓の杜
- 「GitHub Desktop 2.7」でD&Dによるチェリーピッキング(git cherry-pick)が可能に - 窓の杜
- 差分表示にちょっとうれしいオプションを追加した「GitHub Desktop 2.8」 - 窓の杜
Atom
Atom-Packages
- Atom
- Packages
- auto-encoding
- clipboard-plus
- document-outline
- editorconfig
- ex-mode
- highlight-line
- japanese-menu
- japan-util
linter
- linter
- AtomLinter
- linter-textlint
- linter-ui-default
- intentions
- busy-signal
- print-atom
- project-manager
- show-ideographic-space
- simple-drag-drop-text
- sort-lines
- sublime-style-column-selection
- vim-mode-clipboard-plus
- vim-mode-plus
窓の杜
- テキストエディター「Atom」v1.10.0、パッケージマネージャーやシェル統合を強化 - 窓の杜
- ベンチマーク機能を搭載、オープンソースのテキストエディター「Atom」v1.13.0 - 窓の杜
- 64bit版インストーラーだけじゃない! 次期「Atom」にはWindows向けの改善が多数 - 窓の杜
- “ドック”をサポートした「Atom」v1.17.0、次期バージョンでは「GitHub」を統合 - 窓の杜
- 「Git」と“GitHub”を統合した「Atom」v1.18が正式版に ~GitHub製の無償エディター - 窓の杜
- GitHub、無償コードエディター「Atom」v1.19を正式公開 - 窓の杜
- GitHub、「Atom」v1.21を正式リリース。“Language Server”プロトコルをサポート - 窓の杜
- フリーのコードエディター「Atom 1.22」、パフォーマンスと使い勝手をさせる - 窓の杜
- GitHub、「Atom 1.28」を正式公開 ~プロジェクト内検索の結果ビューを刷新 - 窓の杜
- 無償コードエディター「Atom 1.29」が正式公開 ~新しい構文解析の導入が最終段階に - 窓の杜
- GitHub、フリーのコードエディター「Atom 1.44」をリリース - 窓の杜
- GitHub、フリーのコードエディター「Atom 1.47」を公開 - 窓の杜
OSDN
- GitHubがChromiumベースのテキストエディタ「ATOM」を発表 | OSDN Magazine
- 米GitHub、テキストエディタ「Atom」をオープンソース化 | OSDN Magazine
- 米Facebook、「Atom」エディタにリモート開発機能などを追加するパッケージ「Nuclide」を発表 | OSDN Magazine
- 米GitHub発のテキストエディタ「Atom 1.0」リリース | OSDN Magazine
- 操作性にフォーカスしたテキストエディタ「Atom 1.7」が公開 | OSDN Magazine
- 性能と安定性を強化した「Atom 1.11」がリリース | OSDN Magazine
- 「Atom 1.12」が公開 | OSDN Magazine
- テキストエディタ「Atom 1.13」が公開、ベンチマーク機能を導入 | OSDN Magazine
- 「Atom 1.15」が公開、操作性を改善 | OSDN Magazine
- オープンソースのテキストエディタ「Atom 1.16」リリース | OSDN Magazine
- 性能を強化した「Atom 1.19」リリース | OSDN Magazine
Qiita
- ATOM Editor をそろそろ始めようか - Qiita
- ATOM(windows版)と拡張子の関連付け - Qiita
- Atomエディタで行末の空行を自動削除する設定を無効化する - Qiita
- Atom Editorでインストールしているおすすめパッケージ一覧 - Qiita
- 【Atom Editor】マウス操作不要!キーボードだけで矩形選択をする方法 - Qiita
- GitHub for Atom の機能とできること、できないこと - Qiita
- Atomの設定・パッケージを複数端末で共有したいメモ - Qiita
- ATOMエディタにインストールしているパッケージ 2017 - Qiita
- Account
- atom/atom: The hackable text editor
- atom/atom-languageclient: Language Server Protocol support for Atom
- Atom (テキストエディタ) - Wikipedia
- Atom のススメ
- Atom をちゃんと始める。 - Corredor
- Atom(GitHub製エディタ)に乗り換えて最初にやっておきたいこと | maesblog
- Atomの便利なパッケージ管理方法 – GitHubやスターを利用して他の開発環境でも使えるようにしておく | maesblog
- 職業別!ATOMエディタの作業が超捗る便利パッケージ24選 | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト
- 確実に参考になる!Atomひと通りの使い方(Windows・Mac編) | コムテブログ
- Atom で Git を利用するのに便利なプラグイン | Lonely Mobiler
- atomをつかってみる - ynishimura blog
- ベターVimとしてAtomを使う - Kesin's diary
- ATOM vim-mode-plusのESCで、autocomplete-plusのポップアップのみ閉じる方法 | mzgkworks.com
- Atomでインデント設定に困ったらEditorConfigを使用する | webic
- Atomのおすすめパッケージ61個 - はてな村定点観測所
メディア関連
技術評論社
- 第662回 Docker+Selenium ServerでWebブラウザ自動操作環境を作る:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第664回 スマートフォンをWebカメラとして使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
GIGAZINE
- 無料&手軽にソースコードを可視化できる「Sourcetrail」、大規模開発やレガシーコードの理解に役立ちそう - GIGAZINE
- 無料の音声編集ソフト「Audacity」のバージョン3.0.0がリリース - GIGAZINE
- 画像の解像度を「2倍」にするPhotoshopの新機能「スーパー解像度」の使い方&仕組みはこんな感じ - GIGAZINE
- サブスク途中解約でAdobeから2万円以上請求されたユーザーが支払いを回避した方法とは? - GIGAZINE
- Amazon | CLIP STUDIO PAINT PRO 公式ガイドブックモデル改訂版 セットモデル | イラスト・ペイント | ソフトウェア
- イラスト マンガ制作ソフト・アプリ CLIP STUDIO PAINT(クリップスタジオペイント)
- 画像・ムービー・PDFを1つの画面で連続表示できるオンライン配信向けメディアプレイヤー「Sanscadre」を使ってみた - GIGAZINE
- 無料&簡単に画像を使ったオシャレなHTMLメールを「テンプレートを選ぶだけ」で作成できる「Mail Studio」を使ってみた - GIGAZINE
- イラストを線画に変換する「Anime2Sketch」が登場 - GIGAZINE
- ライブ配信ソフト「OBS Studio」でNVIDIAのノイズ除去フィルタが利用可能に、実際に使ってみるとこんな感じ - GIGAZINE
- 無料の音声編集ソフト「Audacity」が「法執行に必要なデータを収集する」と発表、開発者は「データ収集なしのAudacityのフォーク」に着手 - GIGAZINE
- 無料でオープンソースのライブ配信ソフト「OBS」で画面を録画&ビデオ会議で画面を簡単にキャプチャーする方法 - GIGAZINE
- 1兆6000億円超でオンライン会議ツールのZoomが買収した「Five9」とは? - GIGAZINE
- 無料で文章から自動で読み上げ音声を合成してくれるソフト「VOICEVOX」を使ってみた - GIGAZINE
- 無料でPC上でシンセサイザーを構築できるオープンソースのソフトウェアモジュラー「BESPOKE」が登場 - GIGAZINE
- 軽量動作&簡単操作でPC画面をキャプチャーできる「wcap」レビュー - GIGAZINE
PC Watch
- プロジェクトファイルが分割されなくなった「Audacity 3.0.0」 - PC Watch
- Microsoft、AIがプレゼンのうまさを評価/指導してくれる機能 - PC Watch
- Windows 10に既存ゲームを自動でHDR化する機能 - PC Watch
- Windows版「mmhmm」のオープンベータ3公開。一括管理できる法人向けプランも登場 - PC Watch
- 【特集】デフォルト設定で使ってる人は注意。配信ソフト「OBS」で見落としがちな高画質化/フレーム落ち対策のポイント - PC Watch
- OBS StudioにNVIDIA Broadcast相当のノイズ抑制や“元に戻す”機能が追加 - PC Watch
- Zoom、Internet Explorer 11のサポートを9月末で終了 - PC Watch
- Premiere Pro、自動文字起こし機能が正式公開。日本語含む13言語対応でテロップ配置支援も - PC Watch
- 無料のAI音声合成ソフト「VOICEVOX」公開。商用利用も可 - PC Watch
- Zoomで会議中のシームレスなデバイス間移動をサポート - PC Watch
窓の杜
- 厳密なCDリッピングが行える「AccurateRip」に対応した「fre:ac」v1.1.5が公開 - 窓の杜
- 時間無制限・透かしなしの無償デスクトップ録画ツール「TapeX」 ~Windows/Mac対応【レビュー】 - 窓の杜
- Windows 11では「Snipping Tool」のデザインも刷新 ~モダンな使い勝手に - 窓の杜
- 新スクショツール「Screen Sketch」に遅延撮影機能が追加、「Snipping Tool」は延命? - やじうまの杜 - 窓の杜
- 「Snipping Tool」もストアでアップデートできるように ~Windows 10 Build 21354 - 窓の杜
- OS標準アプリ「ペイント」がストア経由で更新可能に ~Windows 10でプレビュー - 窓の杜
CDDB
- 音楽CDのメタ情報を提供するCDDBサーバー“freeDB.org”が、3月31日で終了 - やじうまの杜 - 窓の杜
- 「freeDBTagger」楽曲長の組み合わせでアルバムを特定して楽曲情報を自動入力 - 窓の杜
- MusicBrainz - The Open Music Encyclopedia
- 「foobar2000」ユーザーインターフェイスや機能を自由にカスタマイズできる音楽プレイヤー - 窓の杜
- foobar2000: Components Repository - MusicBrainz Tagger
- CDDBサーバーのfreeDB.orgが遂に停止してしまったので代わりにfreedb 日本語を使ってみた | DevelopersIO
- freedb 日本語
Wget
- wgetが超絶便利なwebクローラー、クローリングツールだとは知らなかった・・・! - ばうあーろぐ
- Wget - GNU Project - Free Software Foundation
Wireshark
- 無料&オープンソースで大規模なネットワークを常時グラフィカルに監視できる「Moloch」 - GIGAZINE
- Wireshark · Go Deep.
- status:open | code.wireshark Code Review
- wireshark/wireshark: Read-only mirror of Wireshark's Git repository. GitHub won't let us disable pull requests. ☞ THEY WILL BE IGNORED HERE ☜ Please upload them at https://code.wireshark.org/review/ .
- CloudShark - The easiest way to analyze and share network capture files. | CloudShark
- CaptureSetup/USB - The Wireshark Wiki
- GolangでUDPサーバー&クライアントを作成してWiresharkで検証する - Yabu.log
- Golangで書かれたWebサーバーでHTTP/1.1のkeep-aliveを検証する - Yabu.log
- Golangで作成したWEBサーバーのTCP通信(HTTP GET)をWiresharkで検証 - Yabu.log
- Wiresharkでlocalhost(127.0.0.1)宛のパケット送受信をキャプチャする方法 - Yabu.log
- USBPcap
- WiresharkのUSBPcapのログの見方 - Qiita
- WiresharkでUSBメモリのパケットキャプチャしてみた! | LoT ラブオンテック
- msaitohさんはTwitterを使っています 「てゆーか、新しいのゲットしたら MII ID1, ID2 を繋げてbitreverse したものを IEEE OUI.txt から検索するよね。最近は Wireshark OUI Lookup Tool もあるけど https://t.co/ZIMUOyt0YK」 / Twitter
- Wireshark · OUI Lookup Tool
- Wireshark Tutorial: Wireshark Workshop Videos Now Available
SuperPuTTY
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「うーん、やっぱりどーにも合わない。 マルチタブ機能のあるPuTTYを探そう…良いのあるかな。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「とりあえず、SuperPuTTY という PuTTY wrapper を試してみる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「SuperPuTTY はwrapperなのでアレなところあるけど、基本 PuTTY なので扱いやすい。」 / Twitter
PGP
- gpg (GNU Privacy Guard)の使い方 - Qiita
- GnuPG チートシート(簡易版) - Qiita
- SKS OpenPGP Public Key Server
- ytakanoさんはTwitterを使っています 「GPGで署名したコードがGitHub上でunverifiedになって悩んでいたら、副鍵を相互署名していないからだった。GPG難しい。」 / Twitter
- Web Compatibility | webcompat.com
- SlideShareで公開されているスライドをpdfでダウンロードするコマンド - A painter and a black cat
- Ubuntu18.04にImageMagickをインストールするには | Ninton
- 新しい RealPlayer(RealTimes)無料 Windows
- Miro Video Converter FREE - Convert any video to MP4, WebM (vp8), iPhone, Android, iPod, iPad, and more.
- XMedia Recode - Download
- 17 Free Audio Converter Software Pieces [2019] Check now >
- TuneBrowser – TuneBrowser は Windows 用の音楽管理・再生ソフトです.
- Amazon.co.jp: Kindle for PC (Windows) [ダウンロード]: ソフトウェア
- calibre - E-book management
- Releases · apprenticeharper/DeDRM_tools
- ダウンロード | らくちんプリント2.0
- Rufus - 起動可能なUSBドライブを簡単に作成できます
- gnuplot - Google 検索
- gnuplot FAQ
- matpyplot - Google 検索
- matplotlib - Google 検索
- Yutori/ゆとりんさんはTwitterを使っています 「OBSのやべープラグイン出てた! Windowsのアプリケーションの音声をデスクトップキャプチャを使わずにそのままOBSに入力出来るプラグイン まさにこれを求めてた https://t.co/tYAfu16pzO」 / Twitter
- win-capture-audio | OBS Forums
- ASCII.jp:テキストの入った画像を「ImageMagick」を用いてコマンドライン上で作る (1/2)
- オンラインイベントのバーチャルスタジオ作りに使えるTeamsのNDI対応 (OBSレイヤーの組み方サンプルあり) | IIJ Engineers Blog
ハードウェア関連
FreeDOS
- FreeDOS | The FreeDOS Project
- FreeDOS/Vページ
- RawWrite for Windows: FDをイメージ化したりイメージをFDに戻すツール - ぼくんちのTV 別館
- chrysocome.net - RawWrite for Windows
- OpenGEM - Opendawn
- shanecoughlan/OpenGEM: OpenGEM is a non-multitasking 16-bit graphical user interface (GUI) for DOS. It is an extended distribution of FreeGEM that includes features of the original Digital Research GEM. Learn more here: http://www.opendawn.com/opengem/
- ibiblio FreeDOS Package -- OpenGEM desktop (Utilities)
- FreeDOS 1.2 がリリースされたので FreeDOS/V 化してみた: Aiming Off のブログ
- FreeDOS 1.2正式版がリリース - 新しいインストーラーやコマンドが追加
- DosUSB - providing USB support for DOS
- http://bretjohnson.us/forum • View topic - FreeDOS and USB Flash Drives
- Karellen's Unix Blog: Basic networking with FreeDOS
- Antique Software
- FreeDOS 1.3 Release Candidate Available For Retaining MS-DOS Compatibility In 2019 - Phoronix
- FreeDOSの仮想マシンを構築してTCP/IPスタック・8086開発環境を整備する - Qiita
- 日記 (2014 年 3 月下旬)
- DOSBox, an x86 emulator with DOS
- File Cabinet - JamesOnline - Electrical Controls
- open-watcom-v2/usage.sp at master · open-watcom/open-watcom-v2
- DJGPP
- MS-DOS Player for Win32-x64 謎WIPページ
- microsoft/MS-DOS: The original sources of MS-DOS 1.25 and 2.0, for reference purposes
- Graphics Environment Manager - Wikipedia
- GEM (desktop environment) - Wikipedia
- MS-DOSに続いてGW-Basicがオープンソースに
- microsoft/GW-BASIC: The original source code of Microsoft GW-BASIC from 1983
- FirmwareTablesView
- Core Temp
- Coreinfo
- CPU-Z | Softwares | CPUID
- PCI-Z detect unknown PCI devices
- GPU-Z Video card GPU Information Utility
- HWiNFO - Hardware Information, Analysis and Monitoring Tools
- iPerf - The TCP, UDP and SCTP network bandwidth measurement tool
- CrystalDiskInfo – Crystal Dew World
- MemTest86 - Offical Site of the x86 Memory Testing Tool
- 無料&インストール不要で32GB以上でもFAT32フォーマット可能な「FAT32 Format」 - GIGAZINE
- ASCII.jp:Windowsマシンの電源関係を制御する「Powercfg」コマンドを極める (1/2)|Windows Info
- ASCII.jp:Windows 10で電力プラン情報を取得する
- USB Device Tree Viewer
- バッテリー残量や電圧が規定値以下のときメールを送ったり基準放電速度との比較ができたりするバッテリー監視ソフト「PassMark BatteryMon」レビュー - GIGAZINE
- 端末が機械学習アプリに適しているか測定する「Geekbench ML」 - GIGAZINE
Arm
- Announcing ARM64EC: Building Native and Interoperable Apps for Windows 11 on ARM - Windows Developer Blog
- ARM 上の Windows 11 アプリ用 ARM64EC - UWP applications | Microsoft Docs
- Overview of ARM64 ABI conventions | Microsoft Docs
- 64-Bit Office for Windows on ARM
- ARMネイティブの速度とx64相互運用を両立 ~Microsoft、「ARM64EC」を発表 - 窓の杜
Android
- 2021年7月第1週 Windows Subsystem for Androidが登場:Android Weekly Topics|gihyo.jp … 技術評論社
- 【山田祥平のRe:config.sys】なぜWindowsにAndroidアプリが必要なのか - PC Watch
Docker
- Install Docker Desktop on Windows | Docker Documentation
- Docker Desktop for Mac and Windows | Docker
- 料金プランも刷新 ~「Docker Desktop 4.0」が正式リリース - 窓の杜
- Docker Desktopが無料プランを個人・小規模法人向けに限定、大企業向け新プランを設定 - GIGAZINE
- Docker Desktopが有料化へ、ただし250人以下かつ年間売り上げ1000万ドル(約11億円)以下の組織や個人やオープンソースプロジェクトでは引き続き無料で利用可能 - Publickey
- Dockerが大規模ビジネス向けに有料サブスクリプションを開始
- DockerDesktopからWSL2上のみで動くDockerに移行する
- Docker Desktop for Linuxを開発中とDocker社が表明。有料化の発表が好評だったとして機能強化など加速 - Publickey
- 「Docker Desktop 4.1」が公開、ボリューム管理が全ユーザー向け機能に | OSDN Magazine
- Microsoft アカウントへのサインイン
- プライバシー
- サービスの状態
- Microsoft 365 Service health status
- Skype Status | Skype Support
- Skype | 友達や家族への無料通話
- Microsoft、wushowhide.diagcabを再公開。署名をSHA-2へと変更 | ニッチなPCゲーマーの環境構築Z
- ViVi web site
- オンラインスキャン for Home Network - トレンドマイクロ
- Windows10 設定変更ツール
- 小規模CSIRT向けWindowsイベントログで押さえておくこと|セキュリティブログ
- Microsoft、「Autoruns」v14.0を公開 ~不審なスタートアッププログラムの炙り出しツール - 窓の杜
- WindowsをUSBメモリに入れて持ち運べる「EaseUS OS2GO」が発売開始 ~Macでも起動 - 窓の杜
- EaseUS OS2GO - Windows 11、10、8、7向けの最高の起動可能なポータブルUSBドライブを作成するツール
- Latest topics > Windows 10で「デスクトップの解像度」と「アクティブな信号解像度」が一致しない現象が発生したときの解決方法 - outsider reflex
- 「Acronis True Image」が「Acronis Cyber Protect Home Office」にリブランド - 窓の杜
- 無料で個人データのダミーを大量に生成できるジェネレータ。住所やマイナンバーなど - PC Watch
- 米MSのLinuxディストリビューション「CBL-Mariner Linux」、最新版ではISO提供 | OSDN Magazine
- microsoft/CBL-Mariner: Linux OS for Azure 1P services and edge appliances
Windows 11
その他
- Windows 10はなぜ最後じゃなかった?次世代の「Windows 11」がリリースされた理由 - CNET Japan
- 北森瓦版 - 各社のマザーボードのWindows 11対応状況
- Windows 11のisoを入手する方法(公式から) | FascodeNetwork Official Blog
- Windows 11、ダークモードをデフォルト設定に - 記事詳細|Infoseekニュース
- MS「Windows 11は手動なら古いPCにも導入可能」と説明 - Engadget 日本版
Publickey
- [速報]マイクロソフト「Windows 365 Cloud PC」正式発表。Windowsをクラウドサービスとして月額定額料金で提供、デスクトップ仮想化をベースに - Publickey
- Windows 11にRPA機能の「Power Automate」標準搭載、インストール不要で利用可能に。マイクロソフトが発表 - Publickey
ソフトアンテナブログ
- Windows 11アップデート後もWindows 10のタスクバーが表示される怪現象が発生 - ソフトアンテナブログ
- AMD、Windows 11でパフォーマンスの問題が発生することを認識 - ソフトアンテナブログ
- Microsoft、「このPCではWindows 11を実行できません」の誤判定を認める - ソフトアンテナブログ
- 【Tips】Windows 11でMicrosoftアカウントをローカルアカウントに切り替える方法(逆も) - ソフトアンテナブログ
iPhone Mania
- Windows 11で誤った「最小システム要件を満たしていない」との判定ケースが確認 - iPhone Mania
- Windows 11、エクスプローラーにメモリリークの不具合が残っていることが判明 - iPhone Mania
- Windows 11、Windows 7/8.1からはクリーンインストール必須? - iPhone Mania
GIGAZINE
- Windows 11の使い勝手と電力効率を向上させる「ダイナミックリフレッシュレート」とは? - GIGAZINE
- 「Windows 11」はIntelチップ搭載のMacを公式にはサポートせず - GIGAZINE
- Windows 11でブルースクリーンは「ブラックスクリーン」に変わる - GIGAZINE
- Microsoft StoreにまもなくFirefoxが登場予定、SteamやEpic GameStoreも利用可能に - GIGAZINE
- Androidアプリのコードを書き換えずにほぼそのままWindows 10で利用できるようにする「Project Latte」が進行中 - GIGAZINE
- Windows 11では規定のブラウザを変更するのが面倒くさくなっている、初回のブラウザ起動が一括設定のラストチャンス - GIGAZINE
- Windows 11はシステム最小要件を満たさない古いPCにもインストール可能、システム最小要件も更新される - GIGAZINE
- Windows 11のリリースが2021年10月5日に決定 - GIGAZINE
- Windows 11の「フォト」アプリを開発者がチラ見せ - GIGAZINE
- 広告取得システムのバグによりWindows 11が一部応答不能に - GIGAZINE
- Windows 11の導入可否を調べる「PC正常性チェック」が「導入できない理由」を教えてくれるように進化、実際に使ってみた - GIGAZINE
- 「Windows 11」の海外レビューまとめ、洗練されたデザインや複数ウィンドウを並べる「スナップレイアウト」はどうなっているのか? - GIGAZINE
- Windows 11環境でRyzenなどの性能が低下する問題があるとAMDが発表 - GIGAZINE
窓の杜
- 「Windows 11」は32bit CPUをサポートせず ~セキュアブート、TPM 2.0も必須に - 窓の杜
- 「Windows 11」へ更新できない原因の調査ツール「ReadySunValley」 ~親切なUIが魅力【レビュー】 - 窓の杜
- Windows 11の要件チェックツール「WhyNotWin11」がダークモードと日本語UIに対応 - 窓の杜
- 「Windows 11」へ更新できない原因を調査する「ReadySunValley」、UIを一新 - 窓の杜
- Windows 11の右クリックメニュー・共有ダイアログはスッキリと使いやすく - 窓の杜
- Windows 11統合の「Microsoft Teams」チャット機能がテスト開始 - 窓の杜
- Windows 11の目玉機能の1つ「DirectStorage」は「Windows 10 バージョン1909」以降でも利用可能 - 窓の杜
- 「Windows 11」Build 22000.100が公開 ~タスクバー・通知センターをブラッシュアップ - 窓の杜
- Windows 11の「ストア」アプリに「Microsoft Edge」が登場 - やじうまの杜 - 窓の杜
- プレビュー版「Windows 11」がBetaチャネルでも利用可能に - 窓の杜
- Windows 11のタスクバーを上・右・左へ配置できる「Winaero Tweaker」v1.30 - 窓の杜
- プレビュー版「Windows 11」でBetaチャネルに切り替えられない問題 - 窓の杜
- OS標準のアラームアプリもWindows 11で刷新 ~新機能「フォーカスセッション」を導入へ - 窓の杜
- プレビュー版「Windows 11」に新しい「ファミリー セーフティ」ウィジェット - 窓の杜
- OS標準のアラームアプリもWindows 11で刷新 ~新機能「フォーカスセッション」を導入へ - 窓の杜
- 「Microsoft Teams」ベースのOS統合チャット機能がBetaチャネルにも ~Windows 11 Build 22000.132 - 窓の杜
- Windows 11の標準スクショアプリは「Snipping Tool」に ~OS標準アプリのアップデート第一弾がお披露目 - 窓の杜
- PCがWindows 11へ更新できるか確認する「ReadySunValley」が「Microsoft Store」に上陸 - 窓の杜
- Stardock、Windows 10/11のスタート画面をクラシックスタイルにする「Start11」をベータ公開 - 窓の杜
- Windows 11に搭載予定の新しい「ペイント」アプリがお披露目 - 窓の杜
- 新しい「クロック」アプリを追加したプレビュー版Windows 11 Build 22000.160 - 窓の杜
- Windows 11のISOイメージファイルが配布開始 ~プレビュー版Build 22000.132 - 窓の杜
- Microsoft、「Azure Virtual Desktop」でプレビュー版「Windows 11」の提供を開始 - 窓の杜
- Windows 11へ更新できるかチェックするMicrosoft公式ツール、プレビュー版が再公開 - 窓の杜
- 「Windows 11」のチャット機能が日本語に対応 ~プレビュー版Build 22000.168が公開 - 窓の杜
- 「Visual Studio 2019」「Visual Studio Code」がWindows 11のストアアプリから入手可能に - 窓の杜
- Windows ストアにアプリやゲームを公開する – Develop for Microsoft
- Windows 11が第7世代Intel Core CPUの一部に対応 ~Surface Studio 2も更新可能に - 窓の杜
- 「Windows 11」の提供は10月5日より開始 ~Androidアプリ対応は初期版に搭載されず - 窓の杜
- 「Windows Update」でWindows 11へ更新可能かチェックする機能がひそかにテスト中? - やじうまの杜 - 窓の杜
- ほぼ完成版の「Windows 11」がBeta公開 ~Dev版はBuild 22000→22449、新機能の実験を加速 - 窓の杜
- 「Windows 11」「Windows 10 バージョン 21H2」の商用プレビューが開始 - 窓の杜
- Microsoft、ARM64向け「Windows 11」仮想マシンを公開 - 窓の杜
- 「Windows Subsystem for Android」がMicrosoft Storeに登場 ~Windows 11のAndroidアプリ実行機能? - やじうまの杜 - 窓の杜
- Windows 11の要件を満たさないPCでのテストは終了……Windows 10の再インストールを - やじうまの杜 - 窓の杜
- Dev版Windows 11がアップデート ~[ごみ箱]アイコンの右クリックメニューがモダンに - 窓の杜
- 「Windows 11」は操作への応答が高速化 ~Microsoftがその秘密を解説 - やじうまの杜 - 窓の杜
- Dev版「Windows 11」Build 22454のISOイメージファイルが公開 - 窓の杜
- Windows 11の新しい「フォト」アプリが提供開始 ~Windows Insider Devチャネルでテスト - 窓の杜
- アクリル効果をまとった新しい「ヒント」アプリがプレビュー版Windows 11でテスト導入 - 窓の杜
- Amazonが秘密裏に「Amazon Appstore」プレビュー版を「Microsoft Store」に登録! ただし…… - やじうまの杜 - 窓の杜
- 「Windows 11 Insider Preview」Build 22463がDevチャネルで提供開始 - 窓の杜
- Windows 11の仕様変更で様々な影響 ~フリーの高機能テキストエディター「Mery」ベータ版で暫定修正 - 窓の杜
- VPNの統計情報をリアルタイムで確認 ~「Windows 11 Insider Preview」Build 22468 - 窓の杜
- 「Windows 11」が正式リリース ~対応デバイスへ無償アップグレードを順次提供 - 窓の杜
- 「Windows 11」で既知の問題は3件 ~「VirtualBox」やIntel「Killer」NICで互換性問題 - やじうまの杜 - 窓の杜
- 「Windows 365」クラウドPCで「Windows 11」が選択可能に - 窓の杜
- 「Epic Games Store」がWindows 11の「Microsoft Store」に登場 - 窓の杜
- Windows 11からWindows 10に戻りたい? アップグレード後10日以内ならやり直せます! - やじうまの杜 - 窓の杜
- 注意! Windows 11のチャット機能では職場・学校のTeamsアカウントを使えない - やじうまの杜 - 窓の杜
- Windows 11は「Power Automate Desktop」を標準搭載 ~インストール不要でRPAを始められる - 窓の杜
PC Watch
- Windows 11発表。年内提供予定でWindows 10からは無償アップグレード - PC Watch
- Microsoft公式の互換性確認ツールでも非対応の理由が分かるように。現時点では英語のみ - PC Watch
- 【特集】Windows 11の新機能を早速試してみた!Windows 10との違いをまとめて紹介 - PC Watch
- 各マザーボードメーカーがWindows 11対応状況を報告 - PC Watch
- GIGABYTE マザーボード製品 Windows 11 対応設定 | ニュース - GIGABYTE Japan
- 【笠原一輝のユビキタス情報局】Armにとって劇的転換点となるWindows 11 - PC Watch
- Microsoft、月額制クラウドPC「Windows 365」を8月提供開始。Windows 11にも対応 - PC Watch
- Windows 11プレビューが“開発者向け”から”ベータ向け”に進歩 - PC Watch
- Windows 11プレビュー最新版に大規模修正 - PC Watch
- Windows 11インサイダー更新で、一部標準アプリが新版に - PC Watch
- Windows 11の「ペイント」が再設計でUI刷新 - PC Watch
- Windows 11インサイダーのISOファイルが配布開始 - PC Watch
- Windows 11インサイダー新ビルド、新時計アプリやWindows Updateの所用時間算出機能など - PC Watch
- Windows 11プレビュー版、Devチャネルは今後不安定に。Betaチャネルへの移行を推奨 - PC Watch
- Windows 11プレビュー版、Teamsチャットが日本語対応 - PC Watch
- Windows 11の対応Intel CPUが拡大、AMD CPUは変更なし。互換性チェックアプリも更新 - PC Watch
- 【速報】Windows 11が10月5日にリリース決定。無償アップグレードも同日開始 - PC Watch
- Windows 11商用プレビュー版提供開始。Betaチャネルにもあわせて公開 - PC Watch
- Windows 11に使いやすく再設計された「写真」アプリが搭載 - PC Watch
- Windows 11 Insider、開発者チャネル更新でゴミ箱の右クリックメニュー変更 - PC Watch
- Windows 11 Insiderビルドに新Snipping Toolや電卓が搭載。仮想マシンでの実行時も要件引き上げ - PC Watch
- Windows 11、新しいフォトアプリを利用可能に。マルチビュー機能追加など - PC Watch
- 10月5日のWindows 11発売前にPCをチェック。互換性確認ツールが誰でも入手可能に - PC Watch
- Windows 11 Insiderビルド22000.194のISOが配布開始 - PC Watch
- Epic GamesやDiscord、ZoomなどがWindowsのストアから利用可能に - PC Watch
- Windows 11向け新「ペイント」アプリ。Insider向けに公開 - PC Watch
- 「¯\_(ツ)_/¯」が正しく表示されない問題に対処。Windows 11 Devチャネル向け新ビルド - PC Watch
- 【特集】Windows 11がリリース間近!10月5日のアップグレードに備え、確認すべき注意点とは? - PC Watch
- ビックカメラ、Windows 11搭載PC購入で特典。体験コーナーも設置 - PC Watch
- 【緊急生配信】正式リリースされたWindows 11のインストール手順をライブ実況! - PC Watch
- 自動化ツールのPower AutomateがWindows 11標準搭載に - PC Watch
- 【特集】Windows 11正式リリース!気になる新機能をまとめて解説 - PC Watch
- Windows 11、ついに本日提供開始。メディア作成ツール、ISOファイル公開 - PC Watch
- 祝Windows 11リリース! 正式版の動作をライブでチェック! 手持ちPCのアップグレードやPC自作の勘所も解説 ~10月6日(水)21時より生配信 - PC Watch
- パンデミックを機に生まれたWindows 11。Microsoftパノス氏が語る新OSの狙いとは - PC Watch
- 入谷 優さんはTwitterを使っています 「以前 Windows Blog for Japan で公開した記事に対するご意見を受けて、#WindowsInsiders 向け最新ビルドでは TabletInputService が TextInputManagementService に改名されました。これでサービス停止による諸問題が無くなることを願っています。 https://t.co/VNRaEEwqEd」 / Twitter
- Windows 11 Insider Preview Build 22471公開。日本語タッチキーボード修正など - PC Watch
- Microsoft、TPM 2.0チェックを回避してWindows 11をインストールする方法を公開 - PC Watch
- AMD CPUでWindows 11が重くなる不具合。ゲームでは1割の性能低下 - PC Watch
ASCII.jp
- ASCII.jp:Windows 11にアップグレード可能なCPUは基本はやっぱり第8世代/Zen+以降になりそう? (1/2)
- ASCII.jp:Windows 11は古いPCやWindowsと一旦線引きするのが1つの役目か (1/2)
- ASCII.jp:中身は大きく変わらないようにも見えるWindows 11だが、では何が変わった?
- ASCII.jp:Windows 10や11のサポートやアップデートは今後どうなる? (1/2)
- ASCII.jp:Windows 11では、Windows 10で追加された数々の新機能が早くもリストラされる (1/2)
- ASCII.jp:Windows 11へのアップグレード可なCPUが微妙に追加&Windows 10の寿命について (1/2)
- ASCII.jp:Windows 11のリリースは10月5日に決まったが、今後のスケジュールは?
- ASCII.jp:Androidアプリの提供だけではないWindows 11のMicrosoftストアの進化点 MSIやEXEインストーラーにも対応 (1/2)
マイナビニュース
- システム要件を緩和したWindows 11 Insider Preview - 阿久津良和のWindows Weekly Report | マイナビニュース
- なぜWindows 11のタスクバーはデスクトップ下部に固定? - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 11のコンテキストメニューはシンプルに - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 10がクラウド化する可能性 - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 11は新規PCで迎えるのが得策か? - 阿久津良和のWindows Weekly Report | マイナビニュース
- デバイスを問わないニュース購読環境「Microsoft Start」- 阿久津良和のWindows Weekly Report | マイナビニュース
- Oracle VirtualBoxでWindows 11を利用できず、現在対応中 | TECH+
- 「Windows 11」正式リリース、無償アップグレードも順次始まる | マイナビニュース
- Windows 11、AMD搭載PCでパフォーマンス低下、10月中に修正アップデートを予定 | マイナビニュース
ニッチなPCゲーマーの環境構築Z
- 悲報 Ivy Bridge以前のハードウェアはWindows11非対応。システム要件はかなり厳しめ | ニッチなPCゲーマーの環境構築Z
- Windows11はTPM 1.2でもいける?どちらが正しい? | ニッチなPCゲーマーの環境構築Z
- Windows11対応CPUリスト公開。Coffee Lake / Zen+以上が必須?SkylakeやKaby Lakeでは正常性チェックが通らず | ニッチなPCゲーマーの環境構築Z
- Microsoft、Windows11はIntel第8世代以降が必要と発言。しかしBroadwell-Eはサポート?現場は混乱か | ニッチなPCゲーマーの環境構築Z
- 純正よりも高機能なWindows11互換性確認アプリ『WhyNotWin11』が登場! | ニッチなPCゲーマーの環境構築Z
- Microsoft、早くもWindows11のスケジュールを変更。Windows10からのアップグレードは2022年以降 | ニッチなPCゲーマーの環境構築Z
- WhyNotWin11の偽公式サイトが公開される | ニッチなPCゲーマーの環境構築Z
- Windows11の発売日は2021年10月20日か。Microsoftが示唆 | ニッチなPCゲーマーの環境構築Z
- Windows11でKaby LakeとZen 1をサポートする可能性。Microsoftが発表 | ニッチなPCゲーマーの環境構築Z
- 不出来を理由に『PC正常性チェック』を取り下げ。改善して秋の一般発売までに再公開予定 | ニッチなPCゲーマーの環境構築Z
- Microsoft、Windows11のライフサイクルを発表。大型アップデートは年1回に | ニッチなPCゲーマーの環境構築Z
- Windows11への無料アップグレード期限はいつまで?Microsoftが回答 | ニッチなPCゲーマーの環境構築Z
- Windows11のタスクバー位置はレジストリから変更可能。ただし左右への移動はバグる | ニッチなPCゲーマーの環境構築Z
- Windows11のスタートメニュー変更レジストリが無効化される | ニッチなPCゲーマーの環境構築Z
- Windows11で時計の秒数表示が無効化される | ニッチなPCゲーマーの環境構築Z
- Windows11では既定のブラウザの変更が面倒になる | ニッチなPCゲーマーの環境構築Z
- Microsoft、Windows11 Insider PreviewのISOを公開 | ニッチなPCゲーマーの環境構築Z
- Windows11、非サポート環境でもインストールが可能な模様 | ニッチなPCゲーマーの環境構築Z
- Windows11、非サポート環境にはWindowsUpdateが降ってこない恐れ | ニッチなPCゲーマーの環境構築Z
- Microsoft、2021年10月5日にWindows11を正式リリース | ニッチなPCゲーマーの環境構築Z
- Microsoft、『PC 正常性チェック』を一般向けに再公開 | ニッチなPCゲーマーの環境構築Z
- Windows11、非サポート環境にはWindowsUpdateを提供しない模様 | ニッチなPCゲーマーの環境構築Z
- Windows11 バージョン21H2にいくつかの既知の不具合がリストアップ | ニッチなPCゲーマーの環境構築Z
- VBSがWindows11のゲームパフォーマンスを低下させる。無効化方法あり | ニッチなPCゲーマーの環境構築Z
- Microsoft、Windows11のISOファイルを公開 | ニッチなPCゲーマーの環境構築Z
- Windows11は7のプロダクトキーでも認証できるのか | ニッチなPCゲーマーの環境構築Z
- Windows11のインストール中に『0x8007007f』エラー。対処方法あり | ニッチなPCゲーマーの環境構築Z
- 非サポートPCにWindows11をインストールする方法 | ニッチなPCゲーマーの環境構築Z
- Ryzen等でWindows11を実行するとゲーム性能が低下。2021年10月中に修正 | ニッチなPCゲーマーの環境構築Z
- Windows11 バージョン21H2にいくつかの既知の不具合がリストアップ [Update 1] | ニッチなPCゲーマーの環境構築Z
- 要求スペックを満たしているのにWindows11非対応と表示される不具合 | ニッチなPCゲーマーの環境構築Z
- TPM 2.0 / CPUチェックを回避してWindows10からWindows11へとアップグレードする方法 | ニッチなPCゲーマーの環境構築Z
自作.com
- Windows 11では、デスクトップにダイナミックなリフレッシュレートが搭載されます。|自作.com
- Windows 11ストアでWin32アプリのアップデートができない|自作.com
- マイクロソフト Windows 11の要件を回避することはできません|自作.com
- Windows 11のInsider Buildがベータチャネルに登場|自作.com
- Microsoft、Windows 11の新しいSnipping ToolとWordのダークモードを発表|自作.com
- 新しいシステムツールでWindows 11のブロートウェアを無効にする|自作.com
- マイクロソフト、Windows 11のCPU互換性リストを拡大|自作.com
- マイクロソフト、愛好家にWindows 11を非対応PCにインストールさせると報道|自作.com
- マイクロソフトは、サポートされていないWindows 11をインストールした場合、アップデートを無効にします。|自作.com
- マイクロソフト、サポート対象外のハードウェアでのWindows 11のテストを正式に中止|自作.com
- マイクロソフト、Windows 11をWindows 10よりも高速化した方法を詳述|自作.com
- 新しいWindows 11 Insider Buildsは、発売に向けてバグ修正に焦点を当てます。|自作.com
- 更新されたWindows 11 PC Health Appは、Windows 11に更新できない理由を詳しく説明|自作.com
- Microsoftは、アプリ「Stubs」とオプションのドライバで、Windows 11の難点の一部を取り除きました。|自作.com
- Windows 11発売:まだアップグレードする必要はありません|自作.com
- AMD: Windows 11でCPUが最大15%遅くなる、パッチが来る|自作.com
- Windows 11 の仕様 - Microsoft
- What's new in Windows 11 | Microsoft Docs
- 新しい Windows 11 OS へのアップグレード | Microsoft
- Windows lifecycle and servicing update - Microsoft Tech Community
- Planning for Windows 11: best practices for organizations - Microsoft Tech Community
- Windows Processor Requirements Windows 11 Supported Intel Processors | Microsoft Docs
- Windows Processor Requirements Windows 11 Supported AMD Processors | Microsoft Docs
- Windows Processor Requirements Windows 11 Supported Qualcomm Processors | Microsoft Docs
- On Windows 11, Win32 apps can not be updated via the Microsoft Store - MSPoweruser
- UEFI CPPC2 - Google 検索
- Home | endoflife.date
- Identify CPU features (beta)
- Sony Japan | FeliCa | 個人のお客様 | ダウンロード
- Sony Japan | FeliCa | 個人のお客様 | ダウンロード | SFCard Viewer 2
- HL-L2360DN | 日本 | ブラザーサポート
- 日本 | ブラザーサポート | ブラザー製品調査・サポートプログラムのダウンロードとインストール
- IME Cursor
- IME Cursor Forum - Google グループ
- Home | LibreOffice - Free Office Suite - Fun Project - Fantastic People
- ダウンロード:WindowsとmacOSへDeepLを組み込む
- Download Ubuntu Desktop | Download | Ubuntu
- iCloud を入手 - Microsoft Store ja-JP
- iTunes を入手 - Microsoft Store ja-JP
- ダウンロードセンター - Zoom
- X410 を購入 - Microsoft Store ja-JP
- アプリ インストーラー を入手 - Microsoft Store ja-JP
GitHub
- tenpoku1000 (市川 真一)
- GitHub · Where software is built
- Trending C repositories on GitHub today
- Trending C repositories on GitHub this month
- Ando's Microprocessor Information
- 最新のJIS情報 (METI/経済産業省)
- Digital Security Tips and Solutions - Microsoft Security Blog
- News - ArkEdge Space
- 記事一覧 - Jicchoの箱
- 記事一覧 - DrumatoのBlog
- 記事一覧 - りんごがでている
その他
不適切な名称
- Easily rename your Git default branch from master to main - Scott Hanselman
- VMwareがコネクターの「オス/メス」表記を非推奨にするとの報道 | スラド ハードウェア
- ゆうくさんはTwitterを使っています 「git 2.28 がリリースされて init.defaultBranch が追加されたらしい。git init で最初に作られるブランチ名を master から変えられるやつ。 https://t.co/fcG82vjppd」 / Twitter
- Highlights from Git 2.28 - The GitHub Blog
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「もう英語を避けようぜ。 git push origin master のかわりに クソ野郎 突き倒す お前 俺 にしよう。」 / Twitter
- ギズモード・ジャパンさんはTwitterを使っています 「Github、人種差別を連想させるコーディング用語の見直しへ https://t.co/1EaS8H8esF」 / Twitter
- Github、人種差別を連想させるコーディング用語の見直しへ | ギズモード・ジャパン
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「クソ野郎 侮辱 クソ野郎 状態 頭 もがれたぞ」 / Twitter
- Twitter、コードやドキュメント内の用語「Whitelist/Blacklist」「Master/Slave」「Dummy value」などを好ましい用語へ置き換え、具体例も発表 - Publickey
- Linuxカーネルでの「master/slave」と「blacklist」禁止、トーバルズ氏が承認 - ITmedia NEWS
- Ichinose ShogoさんはTwitterを使っています 「すごい提案がやってきた 「"pull" はいじめに関連しており、気分を害する人がいるので、"pull request" を "get request" に変更しましょう」 https://t.co/VmLWY6PuM6」 / Twitter
- Renaming "Pull requests" into "Get requests" by fengertao · Pull Request #15 · github/renaming
- sksatさんはTwitterを使っています 「GitHubポリコレ部についていつも思うのは、「いやGitはいいんかい」ということですね」 / Twitter
- sksatさんはTwitterを使っています 「ポリコレ部のみなさん、Linux Kernelの不適切なコメント除去活動などに参加されるとよいのでは。知らんけど。」 / Twitter
- GitHub、これから作成するリポジトリのデフォルトブランチ名が「main」に。「master」から「main」へ変更 - Publickey
- 新しいGitHubリポジトリではmainブランチがデフォルトに
GIGAZINE
- GitHubのソースコードがGitHub上にリークされる、公開した人物は「GitHubのCEO」を偽装 - GIGAZINE
- オープンソースプロジェクトのセキュリティを1発で自動評価してくれる「Security Scorecards」が登場 - GIGAZINE
- GitHubがGit操作時のパスワード認証を廃止、今後はトークンによる認証が必須に - GIGAZINE
- GitとGitHubの機能をひとつのバイナリに詰め込んだ「Fossil」レビュー - GIGAZINE
- GitHubのサービスを駆使してウェブサイトの死活監視が無料で行える「Upptime」 - GIGAZINE
- Googleが提案するオープンソースプロジェクトのセキュリティを高めるための「Know, Prevent, Fix」とは? - GIGAZINE
- SSH接続でGitHubにアクセスする際にセキュリティキーによる認証が利用可能に - GIGAZINE
- Gitの操作を間違ってしまった時に簡単に元に戻せる「git undo」を使う方法 - GIGAZINE
- プログラマーの書いたソースコードの続きを自動で記述する「GitHub Copilot」はエンジニアを駆逐してしまうのか? - GIGAZINE
- GitHubのソースコードで学習したプログラミングAI「Copilot」は著作権侵害なのか? - GIGAZINE
- GitHub開発チームの開発環境がCodespacesに移行、セットアップ時間が45分から10秒に - GIGAZINE
- 田中裕一(Yuichi Tanaka)さんはTwitterを使っています 「Codespacesと似てるんですが、GitHubのリポジトリで "." を押すと、ブラウザ上のVS Codeがエディタとして起動します。これでブラウザ上でコードをさくっと編集できます。Codespacesと違ってこちらはエディタが起動するだけなので、ビルド等を行う環境が必要な場合はCodespacesを使うイメージです。」 / Twitter
窓の杜
- GitHub、中核機能をすべて無償化 ~チーム開発も無料で始められるように - 窓の杜
- Microsoft、「Visual Studio Codespaces」を「GitHub Codespaces」に統合 - 窓の杜
- GitHub、“Open Source Guides”の日本語訳を公開 ~OSSコミュニティのベストプラクティスを集約 - 窓の杜
- 「GitHub」がMP4/MOVビデオのアップロードに対応 ~不具合や要望の投稿に - 窓の杜
- 「GitHub Copilot」がプレビュー公開 ~関数名やコメントをみたAIが勝手にコーディング - 窓の杜
- 「GitHub Codespaces」が法人向けに提供開始 ~[.]キーでリポジトリを「Visual Studio Code」開くショートカットも - 窓の杜
- 「GitHub CLI 2.0」が公開 ~カスタムコマンドで機能を自由に拡張できるように - 窓の杜
Publickey
- 「GitHub Container Registry」パブリックベータとしてサービス開始。無料でコンテナのパブリックイメージ公開可能 - Publickey
- CNCF、Kubernetes用ソフトウェアパッケージなどの公開リポジトリ「CNCF Hub」を公開 - Publickey
- CircleCIがAWSやGoogle Cloud、Kubernetesなどへ自動デプロイするための共有パッケージ「Orb」を公開。クラウドへの自動デプロイが容易に - Publickey
- GitHub、コードの脆弱性などを発見してくれる「GitHub Code Scanning」正式版が提供開始。パブリックリポジトリには無料 - Publickey
- GitHub、電子掲示板でコミュニティ機能を実現する「GitHub Discussions」パブリックベータを開始。GitHub Universe 2020 - Publickey
- GitHub、自動でマージが実行される「Pull request auto-merge」機能を発表。GitHub Universe 2020 - Publickey
- Google、オープンソースソフトウェアの脆弱性をバージョンごとにデータベース化する「OSV」(Open Source Vulnerabilities)プロジェクトを開始 - Publickey
- GitHubが動画のアップロード機能に正式対応。バグの再現手順や機能のデモなどの説明が動画で容易に - Publickey
- AIとのペアプロへまた一歩前進、「GitHub Copilot」登場。AIがコメントからコード生成、書きかけのコードを補完、コードを見てテストコード自動生成など - Publickey
- マイクロソフト、オープンソースプロジェクトにAzureの無償クレジットを提供開始 - Publickey
blog
- VSCodeのGitHubリポジトリに対する不正なPushアクセス - RyotaK's Blog
- Semantic Versioningの闇 - knqyf263's blog
- セマンティック バージョニング 2.0.0 | Semantic Versioning
- 日記 (2020 年 5 月)
- 日記 (2020 年 6 月)
- 日記 (2020 年 7 月)
- git で並列 fetch するオプション - HsbtDiary(2021-02-03)
- Gitのワークフローについての私のスタンス | おそらくはそれさえも平凡な日々
- 同じソースツリーでテストが通っていたらテストをスキップする | おそらくはそれさえも平凡な日々
- 大きなGitリポジトリをクローンするときの工夫を図解します - DeNA Testing Blog
- リリースノートからコミットログを調べる
- Git管理下でローカル編集した差分を検知除外したい時にはgitignoreではなくgit update-indexを使おう | DevelopersIO
- MDN日本語版の覚え書き | フロントエンドBlog | ミツエーリンクス
- 新しいGitHubベースシステムにおけるMDN日本語版の翻訳が凍結解除 | フロントエンドBlog | ミツエーリンクス
- まともに使えるソフトウェアを作るためのチェックリスト - うさぎ小屋
- Keep a Changelog
- GitHub開発チームでのCodespacesの利用 - GitHubブログ
- Verilatorのリグレッションテスト用にGitHub Actionsの設定を試行 - FPGA開発日記
- Verilatorのリグレッションテスト用にGitHub Actionsの設定を試行 - FPGA開発日記
- コミットはスナップショットであり差分ではない - GitHubブログ
- Takafumi IkedaさんはTwitterを使っています 「ついに仕事用アカウントを個人とは別に作れるようになった / “Enterprise managed users are now generally available for GitHub Enterprise Cloud | The GitHub Blog” https://t.co/SoVcB3Vj2c」 / Twitter
- Enterprise managed users are now generally available for GitHub Enterprise Cloud | The GitHub Blog
OSDN
- オープンソースプロジェクトと開発者を結びつけるサービス「OSS Port」 | OSDN Magazine
- Microsoft、オープンソースプロジェクトにAzureクレジットを付与するプログラム | OSDN Magazine
infoQ
- GitHubとnpmをより活用するためのJavaScriptコーダ向けガイド - GitHub Satellite 2020より
- GitHubコードスキャンはベータ版終了
- GitHubは、CodespacesとDiscussions、およびその他のセキュリティ機能を導入
- Visual Studio CodespacesはGithub Codespacesに
- Githubが不必要なCookieをすべて削除
- GitHubが依存性グラフとセキュリティ警告を導入
- GitHubの依存関係グラフ~ 開発ワークフロー全体をセキュアに - GitHubブログ
- Git Cloneの脆弱性の分析
- Git 2.31がリリース、メンテナンスがバックグラウンドで実行可能に
- GitHubはトークンフォーマットを変更して、識別性、シークレットスキャン、エントロピーを改善
- GitHub、DMCAに対して開発者をサポートする独立的な法的支援機関を設立
- CodespacesがEmacsとVimをサポートしてGitHubの新しい開発プラットフォームになった
- エクステンションをサポートしたGitHub CLI 2.0
Zenn
- 個人からチームまで、Notion での情報・タスク管理一元化完全解説
- ブラウザだけでOS自作入門しよう
- Docker ではじめる "ゼロからのOS自作入門"
- Check! GitHub の監査ログを知る
- Gitのインデックスの中身
- Gitのブランチの実装
- Gitのオブジェクトの中身
Qiita
- Ubuntu Desktop で OVMF と QEMU をソースコードからビルドする - Qiita
- Visual Studio で日中韓台文字表示 UEFI アプリ作成のメモ - Qiita
- GitHubのClone数をAPIで取得する - Qiita
- GitHub「Personal access tokens」の設定方法 - Qiita
Twitter
ARCHITECTURE.md
- ドッグさんはTwitterを使っています 「ARCHITECTURE.md ファイルのすすめ.コア開発者とコントリビュータの間の知識差を埋めるために,プロジェクトの構造を把握して「◯◯の処理をやっているのはどこか」が大体分かる小さいドキュメントを置く | 'ARCHITECTURE.md' https://t.co/3QL0196l8E」 / Twitter
- ARCHITECTURE.md
- ドッグさんはTwitterを使っています 「https://t.co/EP0qzByMt3 rust-analyzer の architecture.md がよく書けてるらしい.そういえば少し前に話題になっていたような」 / Twitter
- rust-analyzer/architecture.md at d7c99931d05e3723d878bea5dc26766791fa4e69 · rust-analyzer/rust-analyzer
- ブックマーク
- プログラムの「アーキテクチャに関するドキュメント」は面倒でも書くべき、ではどのように書くべきか? - GIGAZINE
- ARCHITECTURE.mdというものを書いてみた - maru source
Code of Conduct
- Tomoya Matsuura 松浦知也さんはTwitterを使っています 「@uint256_t Berlin Code of Conduct https://t.co/B814f6XJom とContributor Covenant https://t.co/xuKT4crnu0 辺りが日本語もあるし参考にしやすいと思います。とはいえ、CoCってライセンスと違ってどういうコミュニティを目指すかの表明みたいなもんなんで、参考にしつつオリジナル作った方がよいかなとも」 / Twitter
- ベルリン行動規範
- Contributor Covenant:
key already in use
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「githubで key already in use になった場合、「どこで使われてる?」というのが判らないと詰む。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ssh -T -ai ~/.ssh/id_xxx git@github.com と実行して "username/repo" と出る場合はそのdeployキー登録されてる、というFAQあった。 https://t.co/UA4LJC2RJl」 / Twitter
- Error: Key already in use - GitHub Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「もう少し詳細な議論 https://t.co/Gb2q4n4F93」 / Twitter
- git - GitHub Error: Key already in use - Stack Overflow
- κeenさんはTwitterを使っています 「パッチベースの分散バージョン管理システムのPijulが1.0に向けた展望を示してる(まだ読んでない) Towards 1.0 https://t.co/SkAsUabx6Z」 / Twitter
- Pijul
- 👻 道化師 🃏さんはTwitterを使っています 「GitHub Desktop のイヤなバグを見つけてしまったなぁ。 GitHub 上で作りたてのリポジトリを GitHub Desktop でクローンすると、他の環境でコミット&プッシュした内容をプルできなくなる。」 / Twitter
- 👻 道化師 🃏さんはTwitterを使っています 「あ、ブランチを切り替えようとする操作で問題を回避できた!」 / Twitter
- ドッグさんはTwitterを使っています 「https://t.co/dfdNpNQKQn ずっと欲しかった GitHub の通知を org と author でフィルタできる機能が入ってる.これで通知の流量の多いリポジトリを watch してても,自分のリポジトリ宛の通知を見落とさなくなるはず.早速 Filters に登録した https://t.co/Y2YJHLLUQw」 / Twitter
- Organization and Author Filters for GitHub Notifications - GitHub Changelog
- 井山梃子歴史館さんはTwitterを使っています 「cherry-pickがidentityを保つの,達成されてほしい性質なんだよな」 / Twitter
- FadisさんはTwitterを使っています 「ちなみにGitHubはAPIの/metaに機能ごとに使用する可能性があるアドレスの範囲が書かれているので、hooksに列挙されている範囲のアドレスをallowする設定を生成するスクリプトをcronで時々走らせておけば良い感じに「GitHubは通って良し」が出来る」 / Twitter
- 入谷 優さんはTwitterを使っています 「GitHub Codespaces が dotfiles リポジトリから自動的に設定ファイルを引っ張ってきていることに気付きました。配慮が行き届きすぎていて怖いぐらいです。 https://t.co/dlYQP1pCZP」 / Twitter
- Personalizing Codespaces for your account - GitHub Docs
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ZeroVer運動。ソフトウェアにメジャーバージョンをつける時代は終わった。これからはつねに 0. で始まるバージョンにせよ。実際、オープンソースでは ZeroVerを使っているものが多い。たとえば React Native は6年以上開発されているが、最新バージョンは 0.65.0-rc.2である。 https://t.co/Hxaf0wiDVo」 / Twitter
- ZeroVer: 0-based Versioning — zer0ver
- Shiro KawaiさんはTwitterを使っています 「情報とメタ情報の線引きの問題かも。 メタ情報を全部情報内に含めようとするとすぐ破綻する(例: $Log$)。なので程度問題になるけど、メタ情報が手に入る前提なら情報は極力スリムにする方が良い。 ただ現状だと、ファイルとリポジトリが泣き別れしちゃうことを防げない。」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「gitで管理されているファイルはファイルのデータを見ただけでは作成日付すらわからない。太古のSCCSからSubversionに至るまで、ファイルの中身を見ただけで雰囲気はわかるようになっていたのに。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「ファイル自体にリソースフォークのようにメタ情報を付加する発想もあったけど、ファイルシステムによってサポートされてなかったり、複数のファイルに関連するメタ情報どうすべ、とか悩みは多い。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「git使い始めた頃は、$Header$相当が無いとtarballからコピーされてったファイルがどのリビジョンか分からなくなって管理むちゃくちゃにならない? とか不安だったんだけどいつしかそこは割りきるようになった気がする。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「ただChangeLogの慣習はまだ捨てられてない。やっぱtarballだけ見て何が起きてるかどうか把握できるのはメリットだと思うし。 複数人分散開発だと衝突が起きまくるので少人数開発でしか使えないけど。(GaucheではPRにChangeLog変更は含めず、マージ後にメンテナである自分が適宜追加する運用)」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「CIのお世話、とても大変だし、多分他にも出来る人いるでしょ…俺がやらないといけないのはもっと他に…って気持ちになる」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「おそらく他で役に立たないヘッドレスmacOS運用の知見が溜まっていく」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GitHubのURLさ、Git内部の仕様を考えたら /tree/branch-name/path/to/dir がディレクトリーで /blob/branch-name/path/to/file がファイルのパスなのは 至って自然なんだけど、直接URL書いてアクセスするときは結構めんどいよね。」 / Twitter
- ドッグさんはTwitterを使っています 「@igrep /tree/ の URL はファイルだと勝手に /blob/ にリダイレクトしてくれる(逆もしかり)ので,常に /blob/ 使っておくとかで良いと思います」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Linda_pp なんと!ホントだ!ありがとうございます!」 / Twitter
- GitHub Copilot · Your AI pair programmer
- J
- 0から作るソフトウェア開発
- GitHub Codespaces
- GitHub の基礎 - 管理の基本と製品の機能。 - Learn | Microsoft Docs
勉強会等
- takuya-aさんはTwitterを使っています 「検索技術に関する情報交換を目的とした Slack を立ち上げました!こちらの招待リンクからご参加ください。 https://t.co/Tca70vuMff」 / Twitter
- 第一回関数型プログラミング(仮)の会 - connpass
- 第2回『Implementing functional languages』勉強会 - connpass
- ss2021 - 日本ソフトウェア科学会 プログラミング論研究会 (JSSST-SIGPPL) (Special Interest Group on Programming and Programming Languages)
- プログラミング言語処理系が好きな人の集まり
- プログラミング言語が好きな人が集まるSlack・定期ミートアップ - YouTube
- prog-lang-sys-ja
- ruby-jp
- Computers-and-Mathematics
- いい感じにリンク化するPopup Menu - daiiz
- smalltalk-users.jp
- osdev-jp
- ゼロからの OS 自作入門 | ゼロからのOS自作入門
- uchan-nos/os-from-zero: 『ゼロからのOS自作入門』(内田公太著、マイナビ出版)のサポートサイトです
- uchan; MikanOSにUSB CDCドライバを追加してシリアル通信 · uchan-nos/os-from-zero Wiki
- uchanの電子工作ラボ
検索
- -from:tenpoku1000 github.com/tenpoku1000 - Twitter検索 / Twitter
- 自作OS gui - Google 検索
- 自作OS コンパイラ - Google 検索
- 自作OS UTF-32 - Google 検索
- OS開発予定 - Google 検索
- 自作OS ドキュメント - Google 検索
- 自作OS レガシー規格 - Google 検索
- 自作OS 仮定義 - Google 検索
- 自作OS NMI - Google 検索
- x64 uefi os自作 - Google 検索
- freetype uefi - Google 検索
- ovmf qemu ビルド - Google 検索
- コンパイラ WebAssembly JIT 自作 - Google 検索
- コンパイラ WebAssembly 自作 - Google 検索
objdump
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 Unixの起源がPDP-7あたりからだったおかげで、現在にいたるまで od(1) のお世話になっているという... ごく最近 od -t x1 を覚えた :)」 / Twitter
- ElectrelicさんはTwitterを使っています 「@y_futatuki @miura1729 od -t x1 -A x も良いですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@electrelic @y_futatuki なるほど。これないとオフセットが8進数になるんですね。勉強になります。」 / Twitter
- ElectrelicさんはTwitterを使っています 「@miura1729 @y_futatuki です。片方だけ16進数にするのは間違いの元な気がします。」 / Twitter
Gist
2017
- 2 年以上かけて自作 OS 開発のための資料を集めた話
資料
- ワナビとは (ワナビとは) [単語記事] - ニコニコ大百科
- 日本規格協会 JSA Group Webdesk
- JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
- JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk
- JIS X 5603:1990 開放型システム間相互接続の抽象構文記法1(ASN.1)仕様 | 日本規格協会 JSA Group Webdesk
- JIS X 0606:1998 情報交換用CD-ROMのボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
- JIS X 0607:1996 非逐次記録を用いる追記形及び書換形の情報交換用媒体のボリューム及びファイルの構造 | 日本規格協会 JSA Group Webdesk
- JIS X 0607:1996/CORRIGENDUM 1:2001 非逐次記録を用いる追記形及び書換形の情報交換用媒体のボリューム及びファイルの構造(追補1) | 日本規格協会 JSA Group Webdesk
- JIS X 0610:2006 DVD-再生専用ディスクのボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
- JIS X 0610:2006/AMENDMENT 1:2017 DVD-再生専用ディスクのボリューム構造及びファイル構造(追補1) | 日本規格協会 JSA Group Webdesk
- JIS X 6235:2015 DVD-レコーダブルディスク(DVD-R)のボリューム構造及びファイル構造 | 日本規格協会 JSA Group Webdesk
- JIS X 0612:2015 ユニバーサルディスクフォーマット(UDF)1.50 | 日本規格協会 JSA Group Webdesk
- JIS X 0611:2018 ユニバーサルディスクフォーマット(UDF)2.01 | 日本規格協会 JSA Group Webdesk
- JIS X 0613:2015 ユニバーサルディスクフォーマット(UDF)2.50 | 日本規格協会 JSA Group Webdesk
- JIS X 0614:2015 ユニバーサルディスクフォーマット(UDF)2.60 | 日本規格協会 JSA Group Webdesk
- JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
- JIS X 4197:2012 変倍ベクタグラフィックス | 日本規格協会 JSA Group Webdesk
- JIS X 4156:2005 ハイパテキストマーク付け言語(HTML) | 日本規格協会 JSA Group Webdesk
- JIS X 4168:2004 段階スタイルシート 水準1(CSS1) | 日本規格協会 JSA Group Webdesk
- JIS X 3005-1:2014 データベース言語SQL 第1部:枠組(SQL/Framework) | 日本規格協会 JSA Group Webdesk
- JIS X 3005-2:2015 データベース言語SQL 第2部:基本機能(SQL/Foundation) | 日本規格協会 JSA Group Webdesk
- JIS X 8341-1:2010 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第1部:共通指針 | 日本規格協会 JSA Group Webdesk
- JIS X 8341-6:2013 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第6部:対話ソフトウェア | 日本規格協会 JSA Group Webdesk
- JIS X 8341-7:2011 高齢者・障害者等配慮設計指針―情報通信における機器,ソフトウェア及びサービス―第7部:アクセシビリティ設定 | 日本規格協会 JSA Group Webdesk
- CIPA 一般社団法人カメラ映像機器工業会: CIPA規格類
- 自作 OS で USB デバイスに対応するための調査メモ
自作 OS で USB デバイスに対応するための調査メモ
- BSUSRC06 USBシリアル変換ケーブル : USBケーブル | バッファロー
- USB-LAN100R|PLANEX
- USB-LAN1000R|PLANEX
- USB-LAN2500R
- ETX3-US2 | LANアダプター | IODATA アイ・オー・データ機器
- LAN-TXU2C - ロジテック株式会社
- HL-L2360DN | レーザープリンター・複合機 | ブラザー
- MFC-J960DN-B/W MFC-J960DWN-B/W | インクジェットプリンター・複合機 | ブラザー
- BonjourPrinting
- Raspberry Pi3を無線LANコンバータにする -blog SkyofFantasy-
- Raspberry Piでイーサネットコンバータを作る
- Raspberry Piで無線LAN
- iPhone 6 Plus - 技術仕様
- BluetoothテクノロジWebサイト
- Launch Studio - Listing Search
- PIC
- HIDP ‐ 通信用語の基礎知識
- A2DP ‐ 通信用語の基礎知識
- PAN (Bluetooth) ‐ 通信用語の基礎知識
- BNEP ‐ 通信用語の基礎知識
- L2CAP ‐ 通信用語の基礎知識
- HOGP ‐ 通信用語の基礎知識
- IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- Diego Giagio :: Personal Website - iPhoneEthernetDriver
- iPhone/iPadを有線LAN(Ethernet)で接続しよう
- if_ipheth(4)
- [MS-WINPROTLP]: Archive Documents | Microsoft Docs
- LTE対応USBドングル PIX-MT100 | 株式会社ピクセラ
- PIX-MT100を接続するとWindowsの反応が悪くなる - ぷろじぇくと、みすじら。
- URoad-Stick│超速モバイルネット WifiサービスはUQ WiMAX
- stick_linux_info_v1.0.pdf
- Huawei WiMAX 2+モデムをLinuxで使う
- 自作派の人のためのコンパイラ関連規格のメモ
自作派の人のためのコンパイラ関連規格のメモ
Unicode
- [改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
- Unicode標準入門(Tony Graham 関口正裕 乾和志 海老塚徹)|翔泳社の本
- JIS X 0221:2020 国際符号化文字集合(UCS) | 日本規格協会 JSA Group Webdesk
C
- www.gnu-darwin.org/www001/ports-1.5a-CURRENT/devel/mcpp/work/mcpp-2.6.4/doc-jp/cpp-test.html
- C++でCプリプロセッサを作ったり速くしたりしたお話
- ISO/IEC 9899:201x - n1570.pdf
- ISO/IEC 9899:2017 - c17_updated_proposed_fdis.pdf
- Clarification Request Summary for C11
LSP
- language server protocolについて (前編) - Qiita
- Specification
アセンブリ/WebAssembly
- Linux のアセンブラー: GAS と NASM を比較する
- WebAssembly Specifications
- WebAssembly High-Level Goals - WebAssembly
ABI
- x64 software conventions | Microsoft Docs
- System V Application Binary Interface - DRAFT
- gabi41.pdf
- mpx-linux64-abi.pdf
PE/ELF/UEFI
- PE Format - Win32 apps | Microsoft Docs
- The Linux EFI Boot Stub | Intel® Architecture Firmware Resource Center
- Linux Foundation Referenced Specifications
- Microsoft UEFI CA の署名ポリシーが更新されました | Microsoft Docs
- mjg59 | Secure Boot bootloader for distributions available now
- SecureBootとLinux
- openSUSE:UEFI - openSUSE Wiki
- HIRT-PUB14002:Authenticode 署名:Hitachi Incident Response Team:日立
- RFC 2315 - PKCS #7: Cryptographic Message Syntax Version 1.5
- CUTT System:【改訂版】プロトコル構文規定言語ーASN.1
- Internet X.509 PKI Certificate and Certificate Revocation List (CRL) Profile
- RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
- RFC 6818 - Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
テスト・log
- 第1回 Perlにおけるテストの概要/TAPとは?:Happy Testing Perl|gihyo.jp … 技術評論社
- TAP
- LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイアリー
- Labeled Tab-separated Values (LTSV)
Debug
- デバッグ情報の歩き方 - Qiita
- DWARFファイルフォーマット - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- Download DWARF Standards
- LLVM Project Blog: LLDB is Coming to Windows
- 本の虫: MicrosoftがPDBフォーマットの構造体定義のソースコードを公開
- 本の虫: LLVMがWindowsのデバッグ情報フォーマットのPDBをサポート
- The PDB File Format — LLVM 9 documentation
- microsoft/microsoft-pdb: Information from Microsoft about the PDB format. We'll try to keep this up to date. Just trying to help the CLANG/LLVM community get onto Windows.
- CodeView.pdf
- x64 exception handling | Microsoft Docs
セキュリティ
- MR201502_Intel_Memory_Protection_Extensions_JPN.pdf
- Software Design 2015年5月号|技術評論社
- SEH_Overwrite.pdf
- EMETReport.pdf
- /GS (Buffer Security Check) | Microsoft Docs
- スライド 1 - bh-japan-08-Ishiyama.pdf
- MR201412_Control_Flow_Guard_JPN.pdf
ECMAScript
- ECMA-262 Edition 5.1を読む - 秀和システム あなたの学びをサポート
- ECMAScript® 2018 Language Specification
- asm.js: 仕様と実装の今 - Qiita
- asm.js
- Rockridgeさんのツイート: "Firefox、Edge、Chromeの各開発ツールが利用するリモートデバッグ用のプロトコルを統合する動きがあるという。 / “Implementing a Chrome DevTools Protocol server in …” https://t.co/BuXEkgpQRS"
- ソースマップを使用する - 開発ツール | MDN
- Safx: JavaScriptのSource Mapの内部表現について
- Wayback Machine
- HAR ファイルの生成と Web リクエストの分析 - アトラシアン製品ドキュメント
- HTTP Archive (HAR) format
- HAR 1.2 Spec | Software is hard
- JavaScript ASTを始める最初の一歩 | Web Scratch
- estree/estree: The ESTree Spec
- tc39/proposal-binary-ast: Binary AST proposal for ECMAScript
- Il y a du thé renversé au bord de la table !
- binast/binjs-ref: Reference implementation for the JavaScript Binary AST format
- [2015-02] 最近のJavaScript AST標準化の動き | Web Scratch
- getify/concrete-syntax-tree: Defining a standard JavaScript CST (concrete syntax tree) to complement ASTs
Web IDL
- ESウェブブラウザ通信 - ESウェブブラウザでのWeb IDLの利用 | Shiki’s weblog
- Web IDL (第 2 版 — 日本語訳)
- Web IDL
- 自作 OS の GUI 開発のためのメモ
GUI
書籍
- 朝倉書店| グラフィクスの仕組み
- 朝倉書店| GUIライブラリの仕組み ―ソフトウェア設計のケーススタディ―
- マイナビ ブックス - 目次
- フルスクラッチによるグラフィックスプログラミング入門 - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
- 2Dグラフィックスのしくみ ――図解でよくわかる画像処理技術のセオリー:書籍案内|技術評論社
- Androidを支える技術〈Ⅰ〉──60fpsを達成するモダンなGUIシステム:書籍案内|技術評論社
GUI ライブラリ
- Immediate-Mode-UI/Nuklear: A single-header ANSI C immediate mode cross-platform GUI library
- SL-RU/MakiseGUI: Graphics and GUI library for embed systems.
- lc-soft/LCUI: A small C library for building user interfaces with C, XML and CSS.
- xamarin/flex: Flex is a flexible box layout system written in C, designed to be easy to consume from other languages
- lvgl/lvgl: Powerful and easy-to-use embedded GUI with many widgets, advanced visual effects (opacity, antialiasing, animations) and low memory requirements (16K RAM, 64K Flash).
Desktop Entry Specification
- Desktop Entry Specification
- 本の虫: Desktop Entry Specification
EditorConfig
- EditorConfig
- EditorConfigで文字コード設定を共有して喧嘩しなくなる話。(Frontrend Advent Calendar 2014 – 14日目) | Ginpen.com
文字コード
- Downloading ICU - ICU - International Components for Unicode
- International Components for Unicode - Wikipedia
- google/compact_enc_det: compact_enc_det - Compact Encoding Detection
フォント
- Google、オープンソースフォント「Noto」がUnicode標準をフルサポートしたことを明らかに - 窓の杜
- googlefonts/noto-fonts: Noto fonts, except for CJK and emoji
- The FreeType Project
レイアウトエンジン
- fribidi/fribidi - GNU FriBidi 0.19 series, an implementation of the Unicode Bidirectional Algorithm
- fribidi/fribidi: GNU FriBidi
- GNU FriBidi - Wikipedia
- HarfBuzz – Y.A.M.A.P
- HarfBuzz - Wikipedia
- HarfBuzz - Wikipedia
- Page not found · GitHub Pages
文書・PDF
- JIS X 4401:2014 オフィス文書のためのオープン文書形式(OpenDocument)v1.1 | 日本規格協会 JSA Group Webdesk
- PDF.js
- mozilla/pdf.js: PDF Reader in JavaScript
- PDF.jsを設置する - Qiita
- Google Chrome PDFエンジンがオープンソース化
- pdfium Git repositories - Git at Google
- Issues - pdfium
- Full PDF SDK Developer Guides | Desktop, Mobile & Web
- にっき♪: PDFium
画像
- Independent JPEG Group
- libjpeg-turbo/libjpeg-turbo: Main libjpeg-turbo repository
- libjpeg-turbo-2.0.5
- CIPA 一般社団法人カメラ映像機器工業会: CIPA規格類
- The libexif C EXIF library
- libexif-0.6.22
- libpng Home Page
- libpng-1.6.37
- GIFLIB download | SourceForge.net
- giflib-5.2.1
- memononen/nanosvg: Simple stupid SVG parser
- SVG 1.1 仕様 (第2版) 日本語訳
- JIS X 4197:2012 変倍ベクタグラフィックス | 日本規格協会 JSA Group Webdesk
- memononen/nanovg: Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations.
- NanoVG で HTML5 Canvas の力を C/C++ にも - Qiita
- NanoVG を CPU で描画する - Qiita
- NanoVG のソースコードを読んでみた - lriki’s blog
- Favicon - Wikipedia
- Favicon - Wikipedia
- ICO (ファイルフォーマット) - Wikipedia
- ICO (file format) - Wikipedia
- https://twitter.com/rockridge07/status/868125619963314176
- https://twitter.com/rockridge07/status/905787835357077504
音声
- WAV - Wikipedia
- WAV - Wikipedia
- Resource Interchange File Format - Wikipedia
- Resource Interchange File Format - Wikipedia
- Wave File Specifications
- WAVファイルフォーマットの読み込み – NecoTech
- wav ファイルフォーマット
- Waveフォーマット・PCM・サンプリング周波数・ビット数・チャンネル数とは、SoundEngine・RadioLineを例にわかりやすく解説 | 豆知識
- Vorbis - Wikipedia
- Vorbis - Wikipedia
- Ogg - Wikipedia
- Ogg - Wikipedia
- Xiph.org: Downloads
- git.xiph.org
- libvorbis-1.3.7
- git.xiph.org
- libogg-1.3.4
- The WebM Project | Developer Overview
- Opus (音声圧縮) - Wikipedia
- Opus (audio format) - Wikipedia
- Development – Opus Codec
- Opus-1.3.1
- git.xiph.org
- libogg-1.3.4
- The WebM Project | Developer Overview
- FLAC - Wikipedia
- FLAC - Wikipedia
- FLAC - download
- xiph/flac: Free Lossless Audio Codec
- FLAC-1.3.3
- 2017年5月9日 Fedora,まもなくMP3をフルサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社
動画
- https://twitter.com/vyv03354/status/701022560759066624
- https://twitter.com/vyv03354/status/702818242482405377
- OpenH264
- Theora - Wikipedia
- Theora - Wikipedia
- Theora.org :: downloads - Theora, video for everyone
- git.xiph.org
- libtheora-1.1.1
- VP8 - Wikipedia
- VP8 - Wikipedia
- VP9 - Wikipedia
- VP9 - Wikipedia
- WebM - Wikipedia
- WebM - Wikipedia
- The WebM Project | Developer Overview
- webmproject/libvpx: Mirror only. Please do not send pull requests.
- libvpx-1.9.0
- AV1 - Wikipedia
- AV1 - Wikipedia
- AV1 specification を読む 2018-03-26 .. 04-17 - Qiita
- AOM-AV1-Video-Tech-meet-up.pdf
- aomedia Git repositories - Git at Google
- The WebM Project | Developer Overview
- UTF-32 でも固定長で処理出来るわけではない
UTF-32
- [改訂新版]プログラマのための文字コード技術入門:書籍案内|技術評論社
- 符号点 - Wikipedia
- Unicode Terminology: English - Japanese
- 結合文字 - Wikipedia
- 異体字セレクタ - Wikipedia
- 表に出て来ない凄い人は、実在性の確認が困難である
2018
- x64 の 64 ビットモードのエンコーディング概略
x64
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol1_Online_i.pdf
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2A_i.pdf
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2B_i.pdf
- EM64T_VOL1_30083402_i.pdf
- EM64T_VOL2_30083502_i.pdf
- Intel® 64 and IA-32 Architectures Software Developer Manuals
- インテル関連ドキュメント・リンク集
インテル
書籍
- Amazon.co.jp: 新装改訂版 Linuxのブートプロセスをみる (アスキー書籍) eBook: 白崎 博生: Kindleストア
- 自作エミュレータで学ぶx86アーキテクチャ | マイナビブックス
- ゼロからのOS自作入門 | マイナビブックス
- 作って理解するOS x86系コンピュータを動かす理論と実装:書籍案内|技術評論社
- 30日でできる! OS自作入門 | マイナビブックス
- コンピュータの構成と設計 第5版 上|日経BPブックナビ【公式サイト】
- コンピュータの構成と設計 第5版 下|日経BPブックナビ【公式サイト】
- ヘネシー&パターソン コンピュータアーキテクチャ 定量的アプローチ第5版(John L. Hennessy David A. Patterson 吉瀬 謙二 佐藤 寿倫 中條 拓伯 中條 拓伯 天野 英晴 天野 英晴 鈴木 貢)|翔泳社の本
- プロセッサを支える技術 ― 果てしなくスピードを追求する世界:書籍案内|技術評論社
- コンピュータアーキテクチャ技術入門 ――高速化の追求×消費電力の壁:書籍案内|技術評論社
- [増補改訂]GPUを支える技術 ――超並列ハードウェアの快進撃[技術基礎]:書籍案内|技術評論社
- PCI Express設計の基礎と応用
- FPGAでゼロから作るPCI Express
- USB 3.0 ホストドライバ自作入門 - Hello uchan world - BOOTH
- USB 3.0設計のすべて
- USB 3.2のすべて
- USB Type-Cのすべて
- 販売終了
- USBオーディオデバイスクラスの教科書 | コンピュータ・一般書,ハードウェア・自作,その他 | Ohmsha
- O'Reilly Japan - Bluetooth Low Energyをはじめよう
- Bluetooth LE入門 スマホにつながる低消費電力無線センサの開発をはじめよう - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
- シリアルATAの基礎とFPGAへの実装
- [絶版2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
- CrystalDiskInfo Internals ~S.M.A.R.T.を極める~ | バラエティ,水晶雫 | OLIOSPEC
- CUTT System:64ビットアセンブラ入門
- CUTT System:AVX命令入門
- 低レベルプログラミング(Igor Zhirkov 吉川 邦夫 吉川 邦夫)|翔泳社の本
- ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ウォーレン, ジュニア, ヘンリー・S., Warren, Jr., Henry S., 徹, 滝沢, 貢, 鈴木, 英夫, 赤池, 毅, 葛, 順久, 藤波 |本 | 通販 | Amazon
- Linkers & Loaders | コンピュータ・一般書,UNIX,UNIX | Ohmsha
- リンカ・ローダ実践開発テクニック
- 【Code Reading Tシャツ付き】Write Great Code〈Vol.1〉 プレミアムブックス版 | マイナビブックス
- 【Code Reading Tシャツ付き】Write Great Code〈Vol.2〉 プレミアムブックス版 | マイナビブックス
- リバースエンジニアリングバイブル ~コード再創造の美学~ - インプレスブックス
- O'Reilly Japan - リバースエンジニアリング
- O'Reilly Japan - Hacking:美しき策謀 第2版
- O'Reilly Japan - Binary Hacks
- たのしいバイナリの歩き方:書籍案内|技術評論社
- デバッガによるx86プログラム解析入門【x64対応版】 - 秀和システム あなたの学びをサポート! おかげさまで40周年を迎えました
SDM
- https://twitter.com/InstLatX64
- instlatx64
- Intel® 64 and IA-32 Architectures Software Developer Manuals
- EM64T_VOL1_30083402_i.pdf
- EM64T_VOL2_30083502_i.pdf
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol1_Online_i.pdf
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2A_i.pdf
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol2B_i.pdf
- IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル - IA32_Arh_Dev_Man_Vol3_i.pdf
データシート・エラッタ・拡張命令
- Intel® Core™ Processors Technical Resources
- Intel® Xeon® Processors Technical Resources
- 6th Generation Intel® Processor Family Specification Update - 332689-025_6th Generation Intel Processor Family Spec Update.pdf
- Intel® Architecture Instruction Set Extensions Programming Reference - architecture-instruction-set-extensions-programming-reference.pdf
llvm-mca・oneAPI
- llvm-mca - LLVM Machine Code Analyzer — LLVM 12 documentation
- Intel® Architecture Code Analyzer
- Intel® Architecture Code Analyzer Download
- Intel® oneAPI: A Unified X-Architecture Programming Model
- インテル® oneAPI ツールキットで FPGA を開発してみる
- インテル oneAPI ツールキット | 統一されたクロスアーキテクチャー・プログラミング・モデル | XLsoft
- インテル® oneAPI ツールキット | iSUS
- インテル® oneAPI 最新情報 | iSUS
- インテル VTune プロファイラー | C++ C# Fortran Java Python プロファイラー
チップセット
- Intel Chipset Products
- Intel® 100 Series Chipset Family PCH Datasheet, Vol. 1
- Intel® 100 Series and Intel® C230 Series Chipset Family Platform Controller Hub (PCH) Datasheet - Volume 2 of 2 - 100-series-chipset-datasheet-vol-2.pdf
- Intel® 100 and C230 Series Chipset Family PCH Specification Update
- Datasheet, Vol. 1: Intel® 200 and Z370 Series Chipset Families PCH - 200-series-chipset-pch-datasheet-vol-1.pdf
- Datasheet, Vol. 2: Intel® 200 and Z370 Series Chipset Families PCH - 200-series-chipset-pch-datasheet-vol-2.pdf
- Intel® 200 and Z370 Series Chipset Families Platform Controller Hub (PCH) Spec Update - 200-series-chipset-pch-spec-update.pdf
- Intel® 300 Series and Intel® C240 Series Chipset Family Platform Controller Hub (PCH) - 300-series-chipset-pch-datasheet-vol-1.pdf
- Intel® 300 and Intel® C240 Series Chipset Families Platform Controller Hub (PCH) Datasheet, Vol 2 - 300-series-chipset-pch-datasheet-vol-2.pdf
- Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 1
- Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 2
- Introduction - 1.2 - ID:615146 | Intel® 400 Series Chipset On-Package Platform Controller Hub
GPU
- Hardware Specification - PRMs | 01.org
- Igalia/intel-osrc-gfx-prm: Intel Open Source Graphics Programmer Reference Manual (PRM)
- Intel® Processor Graphics
- インテル® プロセッサー・グラフィックス | iSUS
UEFI・ACPI・I/O 等
- Specifications and Tools | Unified Extensible Firmware Interface Forum
- Links to ACPI-related Documents | Unified Extensible Firmware Interface Forum
- ACPICA Documentation | The ACPI Component Architecture Project
- IA-PC HPET (High Precision Event Timers) Specification 1.0a - software-developers-hpet-spec-1-0a.pdf
- eXtensible Host Controller Interface for Universal Serial Bus (xHCI) - extensible-host-controler-interface-usb-xhci.pdf
- USB Type-C Connector System Software Interface Specification
- Specifications – NVM Express
- AHCI Specification
- Specifications | Bluetooth® Technology Website
その他
- 技術資料 | iSUS
- x64 アセンブリーの概要 | iSUS
- x64 の 64 ビットモードのエンコーディング概略
- 投機的実行サイドチャネルハードウェア脆弱性
- レガシー規格 SATA を振り返る
SATA
後半
- 忘却の彼方: SATA LPMって知ってますか?
- 忘却の彼方: SATA LPMの設定方法
- 忘却の彼方: Intel Driver V11.5以降のSATA LPMの設定
- 忘却の彼方: DEVSLP(Device Sleep)機能とは
- 【パワレポ連動企画】実測1GB/sec超! M.2 PCI Express x4接続のSSD「Samsung XP941」を試す ~システム起動は要注意 - PC Watch
- Samsung HM020GI 1. Specification Summary
- Support policy for 4K sector hard drives - Windows Server | Microsoft Docs
- アドバンスド・フォーマット4Kセクター・ハードディスク・ドライブへの移行 | Seagate 日本
- HDDの512E、4Kセクター、AFT、非AFT、4Kネイティブ(4Kn)の違い - ぼくんちのTV 別館
- HDDのセクタサイズ~512セクタと4Kセクタ【パソコン購入術】
- Toshiba MK6034GSX - hard drive - 60 GB - SATA-150 Series Specs & Prices - CNET
- Toshiba MK3276GSX - hard drive - 320 GB - SATA-300 Series Specs & Prices - CNET
- MQ04 シリーズ | 東芝デバイス&ストレージ株式会社 | 日本
- Toshiba MG04ACA500A - hard drive - 5 TB - SATA 6Gb/s Specs - CNET
- MG04ACA シリーズ | 東芝デバイス&ストレージ株式会社 | 日本
- HDD が AV コマンド対応か調べたい: ひでのブログ
- Seagate Mobile ST1000LM035 - hard drive - 1 TB - SATA 6Gb/s Specs & Prices - CNET
- Seagate Laptop Thin SSHD ST500LM000 - hybrid hard drive - 500 GB - SATA 6Gb/s Specs - CNET
- 玄人志向 | SATA3-PCIE-E2:Marvell社製 88SE9128搭載 eSATA インターフェースカード(PCI-Express x1接続)
- シンプルBOX2.5 USB3.0+eSATA SATA6G (CSS25EU3BK6G) ハードディスク(HDD)ケース - 株式会社センチュリー
- TK-ESATA-05【eSATAケーブル(0.5m)】eSATA3.0Gb/s対応ケーブル。0.5m。 | サンワサプライ株式会社
- Amazon.co.jp: オウルテック 5.25インチベイ内蔵専用HDDケース 2.5インチ&3.5インチHDD各1台簡単増設 SATA接続 Windows8.1対応 ガチャポンパッダイレクト ブラック OWL-IE5CB: パソコン・周辺機器
- ASCII.jp:WDがSATA Express接続の3.5インチHDDをCOMPUTEXで展示中
- 4Tバイトの「Caviar Black」をベースにしたSATA Express対応ハイブリッドドライブ最新版をWDが公開 - ITmedia PC USER
- ASCII.jp:mSATA SSDって、フツーのSSDとなにが違う? (1/3)
- CFastって何?
- コンパクトフラッシュ協会がCFexpress* 1.0仕様を発表 | Business Wire
- 最大転送速度2GB/sを実現する次世代カード規格「CFexpress 1.0」発表 ~将来的に8GB/sを目論む - PC Watch
- Storage Reviews - CNET
- Purchase SATA Specification | SATA-IO
- シリアルATAの基礎とFPGAへの実装
- [絶版2015.6.25] 改訂版 ATA(IDE)/ATAPIの徹底研究
- AHCI Specification
- AHCI Memo · osdev-jp/osdev-jp.github.io Wiki
- AHCI_code_example · osdev-jp/osdev-jp.github.io Wiki
- Microsoft Word - dg_sataahciip_refdesign_jp.doc - dg_sataahciip_refdesign_jp.pdf
- Microsoft Word - dg_sata_achi_ip_data_sheet_jp.doc - dg_sata_achi_ip_data_sheet_jp.pdf
- Reconf 201506
- CrystalDiskInfo Internals ~S.M.A.R.T.を極める~ | バラエティ,水晶雫 | OLIOSPEC
- CrystalDiskInfo – 参考文献 – – Crystal Dew Blog
- USB-HDD 対応はなぜ難しいのか? – Crystal Dew Blog
- 忘却の彼方: Linuxを使用したSecureEraseの手順
- 忘却の彼方: Crucial M500/M550/MX100とSecure Erase
- 一方、ふうえんさんちでは… Secure Eraseを回復不可能セクタに試す
- ALL about Linux: SecureErase を実施してみた
- ALL about Linux: SecureErase のために frozen 状態を解除する方法
- ALL about Linux: 中古 SSD の SecureErase
- ASCII.jp:SSDサポートにさらなる一歩を踏み出したWindows 7 (1/2)
- ASCII.jp:Windows 7の実像 Part 5 OSのSSD対応とエンハンスドストレージ (1/2)
- 【元麻布春男の週刊PCホットライン】SSDに関するWindows 7の3つの特徴 - PC Watch
- HDDのATA8-ACS規格について色々調べてみる - ぼくんちのTV 別館
- AT Attachment 8 - ATA/ATAPI Command Set - D1699r4a-ATA8-ACS.pdf
- AT Attachment 8 - ATA/ATAPI Command Set - d2015r2-ATAATAPI_Command_set_-_2_ACS-2.pdf
- 内蔵SSD | 2.5" SSD | SATA-III 6Gb/s SSD220S - トランセンド|メモリ製品のスペシャリスト
- AT Attachment 8 - ATA/ATAPI Command Set - d2161r5-ATAATAPI_Command_Set_-_3.pdf
- CSSD-S6i256HG7V:CFD Intel®製3DNAND採用SSD 256GB | CFD販売株式会社 CFD Sales INC.
- di529r14-ATAATAPI_Command_Set_-_4.pdf
- Samsung 860 EVO MZ-76E250B - solid state drive - 250 GB - SATA 6Gb/s Specs & Prices - CNET
- INCITS: INCITS 558-202x - Information technology - ATA Command Set - 5 (ACS-5)
- C のグローバル変数の仮定義とは
C
- JIS X 3010:2003 プログラム言語C | 日本規格協会 JSA Group Webdesk
- 45977 – "warning: 'i' initialized and declared 'extern'" could use a separate warning flag controlling it
- 仮定義
- C言語のグローバル変数とexternについて - Gobble up pudding
- NMI に割り込まれたい
NMI
- bochs.sourceforge.net/techspec/PORTS.LST
- Intel® 300 and Intel® C240 Series Chipset Families Platform Controller Hub (PCH) Datasheet, Vol 2 - 300-series-chipset-pch-datasheet-vol-2.pdf
- Low Pin Count - Wikipedia
- Wayback Machine
- [絶版2016.10.4] 改訂新版 PCIバス&PCI-Xバスの徹底研究
- PCI Express設計の基礎と応用
- FPGAでゼロから作るPCI Express
- カーネル ダンプまたは完全なクラッシュ ダンプを生成する - Windows Client Management | Microsoft Docs
- ASRock Rack > E3C236D2I
- Amazon | KONDOLEN ブレッドボード?ジャンパーワイヤ(メス-オス)(20cm)40本 1 個 | KONDOLEN | PCパーツ 通販
- Amazon | アイネックス 実験用スイッチ・LEDセット KM-01 | AINEX | インターフェースカード 通販
- 32 ビット整数式の x64 JIT コンパイラを試作する
2019
- x64 の電力管理についてのメモ
2020
Intel
ALL
- Guidance for System Administrators to Mitigate Transient Execution...
- Loading Microcode from the OS
- Security Best Practices for Side Channel Resistance
- Guidelines for Mitigating Timing Side Channels Against Cryptographic...
- How to Assess the Risk of Your Application
- CPUID Enumeration and Architectural MSRs
- Indirect Branch Restricted Speculation
- Single Thread Indirect Branch Predictors
- Indirect Branch Predictor Barrier
- Spectre mitigations in MSVC | C++ Team Blog
- Analyzing Potential Bounds Check Bypass Vulnerabilities
- Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community
- Retpoline: A Branch Target Injection Mitigation
- KVA Shadow: Mitigating Meltdown on Windows – Microsoft Security Response Center
- Kernel page-table isolation - Wikipedia
- Meltdown (security vulnerability) - Wikipedia
- Rogue System Register Read / CVE-2018-3640 / INTEL-SA-00115
- Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Microsoft Security Response Center
- Speculative Store Bypass / CVE-2018-3639 / INTEL-SA-00115
- L1 Terminal Fault
- Foreshadow - Wikipedia
- Microarchitectural Data Sampling (Fallout/Zombieload/RIDL)
- Microarchitectural Data Sampling - Wikipedia
- Intel® Transactional Synchronization Extensions (Intel® TSX)...
- Speculative Behavior of SWAPGS and Segment Registers
- CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
- More Information on Spoiler
- Spoiler (security vulnerability) - Wikipedia
- INTEL-SA-00145
- Lazy FPU Save/Restore (CVE-2018-3665) - Red Hat Customer Portal
- NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供
- まさみさん⋈語りたいさんはTwitterを使っています 「Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d」 / Twitter
- Cyberus Technology - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
- x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
- uchanさんはTwitterを使っています 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter
- L1D Eviction Sampling / CVE-2020-0549 / INTEL-SA-00329
- Processors Affected: L1D Eviction Sampling
- CacheOut
- Vector Register Sampling / CVE-2020-0548 , CVE 2020-8696 /...
- Processors Affected: Vector Register Sampling
- LVI: Hijacking Transient Execution with Load Value Injection
- An Optimized Mitigation Approach for Load Value Injection
- Load Value Injection
- Processors Affected: Load Value Injection
- Snoop-assisted L1 Data Sampling / CVE-2020-0550 / INTEL-SA-00330
- Snoop-Assisted L1 Data Sampling
- Processors Affected: Snoop-assisted L1 Data Sampling
- Special Register Buffer Data Sampling
- SRBDS Mitigation Impact on Intel® Secure Key
- Processors Affected: Special Register Buffer Data Sampling
- PLATYPUS: With Great Power comes Great Leakage
- Running Average Power Limit Energy Reporting CVE-2020-8694,...
- INTEL-SA-00389
- Affected Processors: Transient Execution Attacks & Related Security Issues by CPU
- Guidance for System Administrators to Mitigate Transient Execution Side Channel Issues
Secure Coding
- Loading Microcode from the OS
- Security Best Practices for Side Channel Resistance
- Guidelines for Mitigating Timing Side Channels Against Cryptographic...
- How to Assess the Risk of Your Application
CPUID/MSR
- CPUID Enumeration and Architectural MSRs
- Indirect Branch Restricted Speculation
- Single Thread Indirect Branch Predictors
- Indirect Branch Predictor Barrier
(1) CVE-2017-5753 Variant 1 Bounds Check Bypass
- Analyzing Potential Bounds Check Bypass Vulnerabilities
- Spectre mitigations in MSVC | C++ Team Blog
(2) CVE-2017-5715 Variant 2 Branch Target Injection
- Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community
- Retpoline: A Branch Target Injection Mitigation
(3) CVE-2017-5754 Variant 3 Meltdown:Rogue Data Cache Load
- Meltdown (security vulnerability) - Wikipedia
- Kernel page-table isolation - Wikipedia
- KVA Shadow: Mitigating Meltdown on Windows – Microsoft Security Response Center
(3a) CVE-2018-3640 Variant 3a Rogue System Register Read
- Rogue System Register Read / CVE-2018-3640 / INTEL-SA-00115
(4) CVE-2018-3639 Variant 4 Speculative Store Bypass
- Speculative Store Bypass / CVE-2018-3639 / INTEL-SA-00115
- Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Microsoft Security Response Center
(5) CVE-2018-3615/CVE-2018-3620/CVE-2018-3646 L1 Terminal Fault
- Foreshadow - Wikipedia
- L1 Terminal Fault
(6) CVE-2018-12126/CVE-2018-12127/CVE-2018-12130/CVE-2019-11091 Microarchitectural Data Sampling
- Microarchitectural Data Sampling - Wikipedia
- Microarchitectural Data Sampling (Fallout/Zombieload/RIDL)
(7) CVE-2019-11135 Transactional Asynchronous Abort
- Intel® Transactional Synchronization Extensions (Intel® TSX)...
(8) CVE-2019-1125 Spectre SWAPGS gadget vulnerability
- Speculative Behavior of SWAPGS and Segment Registers
(9) CVE-2019-0162 Spoiler
- Spoiler (security vulnerability) - Wikipedia
- More Information on Spoiler
- CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
(10) CVE-2018-3665 Lazy FPU Save/Restore
- INTEL-SA-00145
- Lazy FPU Save/Restore (CVE-2018-3665) - Red Hat Customer Portal
- NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供
- まさみさん⋈語りたいさんはTwitterを使っています 「Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d」 / Twitter
- Cyberus Technology - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
- x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
- uchanさんはTwitterを使っています 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter
(11) CVE-2020-0549 L1D Eviction Sampling
- CacheOut
- L1D Eviction Sampling / CVE-2020-0549 / INTEL-SA-00329
- Processors Affected: L1D Eviction Sampling
(12) CVE-2020-0548 Vector Register Sampling
- Vector Register Sampling / CVE-2020-0548 , CVE 2020-8696 /...
- Processors Affected: Vector Register Sampling
(13) CVE-2020-0551 Load Value Injection
- LVI: Hijacking Transient Execution with Load Value Injection
- An Optimized Mitigation Approach for Load Value Injection
- Load Value Injection
- Processors Affected: Load Value Injection
(14) CVE-2020-0550 Snoop-assisted L1 Data Sampling
- Snoop-assisted L1 Data Sampling / CVE-2020-0550 / INTEL-SA-00330
- Snoop-Assisted L1 Data Sampling
- Processors Affected: Snoop-assisted L1 Data Sampling
(15) CVE-2020-0543 Special Register Buffer Data Sampling(SRBDS)
- Special Register Buffer Data Sampling
- SRBDS Mitigation Impact on Intel® Secure Key
- Processors Affected: Special Register Buffer Data Sampling
(16) CVE-2020-8694/CVE-2020-8695 With Great Power comes Great Leakage(PLATYPUS)
- PLATYPUS: With Great Power comes Great Leakage
- Running Average Power Limit Energy Reporting CVE-2020-8694,...
- INTEL-SA-00389
- 投機的実行サイドチャネルハードウェア脆弱性
- 独自拡張 WebAssembly を生成し、UEFI アプリを出力するバックエンドを試作する
2021
- WSL・Windows Update・Visual Studio・Chocolatey の更新をコマンド 1 行で一括で実行
- 新線計画
- コンパイラ・IDE・OS・VMM・IME の開発のためのメモ
- WSL・Windows Update・Visual Studio・Chocolatey の更新をコマンド 1 行で一括で実行
- OS 開発予定(基本機能)
- やらないこと・低優先度のリスト
- 正規表現を学習した際の問題点を掲載
- keybase.md
- MIT PGP Key Server
- C++ でグローバル定数を宣言する場合のイディオム。定数の唯一の定義をマクロ HEADER_H_ で指示することで実現する
- EFI 内部変数の CustomMode に CUSTOM_SECURE_BOOT_MODE:1 を書き込み後に再起動し、値を取得すると常に STANDARD_SECURE_BOOT_MODE:0 が返る
- Affected Processors: Transient Execution Attacks & Related Security Issues by CPU | 01.org API
リポジトリ
tenpoku-book
chapter-2
2.3
- 最近のruby-core (2017年3月) | Money Forward Engineers' Blog
- 引退するメインフレームプログラマたち - その対策は?
2.4・2.5・2.6
- 情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
- 岩波講座 ソフトウェア科学〈〔環境〕5〉プログラミング言語処理系 | 佐々 政孝 |本 | 通販 | Amazon
- CiNii 図書 - 定本Cプログラマのためのアルゴリズムとデータ構造
- 手書きLLパーサにおける左結合性を持つ演算子の左再帰をループで解決する - ふるつき
- Kazuho's Weblog: C言語で可変長引数をとる関数を、型安全に書く方法
- 最近のruby-core (2016年3月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年11月) | Money Forward Engineers' Blog
2.7
- プログラミング言語処理
- プログラミング言語処理
- WebAssembly Specifications
- Binary Format — WebAssembly 1.1 (Draft 2021-07-16)
- Binary Encoding - WebAssembly
- WebAssembly/wabt: The WebAssembly Binary Toolkit
- WABT: The WebAssembly Binary Toolkitを使ってみる - Qiita
- 【WebAssembly初心者必読】バイナリコードを使って「 WebAssembly 」の基礎を徹底解説してみた! | 株式会社ヌーラボ(Nulab inc.)
- WebAssembly(wat)を手書きする | Kabuku Developers Blog
- Writing WebAssembly By Hand
- WebAssembly逆アセンブルして調べるテスト
- WebAssemblyをはじめよう | WEBASSEMBLY USUI BOOK
- LEB128な数の表現 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- LEB128 ‐ 通信用語の基礎知識
- 平成26年度 イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室:書籍案内|技術評論社
2.8
Intel
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
- IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
- EM64T_VOL1_30083402_i.pdf
- EM64T_VOL2_30083502_i.pdf
- Intel® 64 and IA-32 Architectures Software Developer Manuals | Intel® Software
書籍
- 情報系教科書シリーズ コンパイラ | 理工学専門書,情報科学,情報科学・工学基礎 | Ohmsha
- Advanced Windows : Microsoft Visual Studio 2008 (日経BPソフトプレス): 2008|書誌詳細|国立国会図書館サーチ
- ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか | ジュニア, ヘンリー・S. ウォーレン, Jr., Henry S. Warren, 滝沢 徹, 鈴木 貢, 赤池 英夫, 葛 毅, 藤波 順久 |本 | 通販 | Amazon
- [絶版1999.4] 8086ファミリ・ハンドブック
- 80x86 80x87―ファミリー・テクニカルハンドブック | RobertL. Hummel, 槌田 浩一 |本 | 通販 | Amazon
- x86アセンブラ入門 : PC/ATなどで使われている80x86のアセンブラを習得 (CQ出版): 2006|書誌詳細|国立国会図書館サーチ
- x64 アセンブリーの概要 | iSUS
- Node.js
- x64 の 64 ビットモードのエンコーディング概略
- x64 でのソフトウェア規約 | Microsoft Docs
- x64 での呼び出し規則 | Microsoft Docs
- x64 でのスタックの使用 | Microsoft Docs
- x64 でのプロローグとエピローグ | Microsoft Docs
- Gamasutra - In-depth: Windows x64 ABI: Stack frames
- Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
- Saving Space When Saving Space - emsea
- データ構造アライメント - Wikipedia
- linux - How do I disassemble raw 16-bit x86 machine code? - Stack Overflow
- Writing WebAssembly By Hand
2.9
- 引退するメインフレームプログラマたち - その対策は?
chapter-4
4.1.1・4.1.2
- Windows7でもFastBootが効くってホント? - 週刊アスキー
- Interface (インターフェース) 2011年 11月号 [雑誌] | |本 | 通販 | Amazon
- Play with UEFI
- UEFI時代のブートローダ
- UEFI Spec 2_6.book
4.1.3
- Windows 10で素早くUEFIの設定画面を起動する:Tech TIPS - @IT
- GUIDとは何?Weblio辞書
4.1.4
- FreeType使用記録
4.1.5
- Microsoft UEFI CA の署名ポリシーが更新されました – Windows ハードウェア認定ブログ
- SecureBootとLinux
- mjg59 | Secure Boot bootloader for distributions available now
- openSUSE:UEFI - openSUSE Wiki
- Playing with UEFI Secure Boot – Part 2: Basic Authenticode signing with MS Tools | Al's Website
- ハードウェアリセット方法 パソコン鳥のブログ/ウェブリブログ
- ACPI BGRT - 借り初めのひみつきち
- Advanced Configuration and Power Interface Specification
- Windows bitmap - Wikipedia
- Inside Windowsファイルフォーマット (カットシステム): 1995|書誌詳細|国立国会図書館サーチ
- グラフィックファイルフォーマット・ハンドブック | David C.Kay, John R.Levine, MbCD |本 | 通販 | Amazon
- まえがき - x64 UEFI 対応 OS 自作入門 ~実機で動作する OS を作ってみよう~
- Spaces - GitBook
- tenpoku1000/tenpoku-book: 電子書籍: x64 UEFI 対応 OS 自作入門 https://www.gitbook.com/book/tenpoku1000/tenpoku-book/details
- Zephyrがおもしろい~OSSのRTOS~ - Qiita
- 数式の再帰的下向き構文解析
- FOLLOW()の計算を間違えにくくする工夫 – knsm.net
- 気まぐれな戯れ言の部屋 バックナンバー12
- LL(1) Parser Generatorを作ろう(1) – 腐った牛乳
- review-1.pdf
UEFI
- tenpoku1000/UEFI_Start: DevicePath 文字列などの情報取得結果の表示・保存を行う UEFI アプリケーションです。
- tenpoku1000/UEFI_SetupScreen: UEFI セットアップ画面への画面遷移を行う UEFI アプリケーションです。
- tenpoku1000/UEFI_FreeType_MSVC: UEFI アプリケーションで、英日中韓台のアウトライン・フォント表示を行うサンプル・プログラムです。
- tenpoku1000/UEFI_SecureBoot: UEFI セキュアブートのサンプル UEFI アプリケーションです。
- tenpoku1000/UEFI_SecureBootMode: UEFI セキュアブートのモード表示を行う UEFI アプリケーションです。
- tenpoku1000/UEFI_ACPI_Table_Disp: ACPI テーブルの取得結果の表示・ファイルへの保存を行う UEFI アプリケーションです。
- tenpoku1000/UEFI_Ver_CPUID: UEFI version 等と CPUID 命令の取得結果の表示を行う UEFI アプリケーションです。
- tenpoku1000/PE_COFF: 独自拡張 64ビット WebAssembly と、PE32+ DLL や UEFI アプリを出力する C コンパイラ試作版
外部プロジェクト
Unicode
- Unicode License Agreement
- Unicode Terms of Use
- Unicode Character Database
- UAX #44: Unicode Character Database
- Unicode 12.1.0
- Index of /Public/12.1.0
UEFI
TianoCore
UDK
- UDK · tianocore/tianocore.github.io Wiki
- UDK2014 · tianocore/tianocore.github.io Wiki
- UDK2015 · tianocore/tianocore.github.io Wiki
- UDK2017 · tianocore/tianocore.github.io Wiki
- UDK2018 · tianocore/tianocore.github.io Wiki
- What is TianoCore?
- tianocore/edk2: EDK II
- EDK II · tianocore/tianocore.github.io Wiki
- BSD Plus Patent License · tianocore/tianocore.github.io Wiki
- EDK II Specifications · tianocore/tianocore.github.io Wiki
- Tasks · tianocore/tianocore.github.io Wiki
- Windows systems · tianocore/tianocore.github.io Wiki
- EDK II BaseTools User Guides · GitBook
- Getting Started Writing Simple Application · tianocore/tianocore.github.io Wiki
OVMF_DEBUG
- Hosts/Linux - QEMU
- Re: [edk2] Filesystem issues since "OvmfPkg: enable SATA controller"
- How to run OVMF · tianocore/tianocore.github.io Wiki
- How to build OVMF · tianocore/tianocore.github.io Wiki
- QEMU - ArchWiki
- [edk2] source level debugging of OVMF with gdb
- [edk2] using gdb on OVMF with symbols
- SYS$OUTPUT: GDB scripting example: reloading symbols for UEFI target
- SYS$OUTPUT: Using GDB to debug UEFI.
- Windows を EFI ベースのコンピュータにインストールする
UEFI shim loader
- mjg59 | Secure Boot bootloader for distributions available now
- Index of /~mjg59/shim-signed
- mjg59/shim: UEFI shim loader
- rhboot/shim: UEFI shim loader
- gnu-efi | SourceForge.net
- Specifications and Tools | Unified Extensible Firmware Interface Forum
- The FreeType Project
- musl libc
- adobe-fonts/source-han-sans
- Doug Lea's Workstation
- ReactOS Project
- NASM
- LibreSSL
- MinGW - Minimalist GNU for Windows download | SourceForge.net
- MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net
参考資料
WinDbg
MSDN_Driver
- テンプレートを使ったユニバーサル Windows ドライバー (KMDF) の作成 (Windows Drivers)
- コンピューターの手動ドライバー展開の準備 (Windows Drivers)
- Setting Up Kernel-Mode Debugging over a Serial Cable Manually - Windows 10 hardware dev
- Kernel-Mode Debugging in Visual Studio - Windows 10 hardware dev
- DevCon Install (Windows Drivers)
- DevCon Remove (Windows Drivers)
- アプリケーションからSCSIコマンドを発行する方法 - Japan WDK Support Blog - Site Home - MSDN Blogs
- KMDF のディスパッチルーチンについて - Japan WDK Support Blog - Site Home - MSDN Blogs
- KMDF Toaster で I/O Control を受け取る - Japan WDK Support Blog - Site Home - MSDN Blogs
- フレームワークを使用したドライバーの開発 (Windows Driver Kit)
- フレームワークベースのドライバーにおけるデバイスへのアクセスの制御 (Windows Driver Kit)
- 制御デバイス オブジェクトの使用 (Windows Driver Kit)
- デバイス インターフェイスの使用 (Windows Driver Kit)
- Defining I/O Control Codes (Windows Drivers)
- SDDL for Device Objects (Windows Drivers)
- デバイス オブジェクトのセキュリティ - Japan WDK Support Blog - Site Home - MSDN Blogs
- デバイス オブジェクトのセキュリティ その2 - Japan WDK Support Blog - Site Home - MSDN Blogs
- I/O コントロール発行に使うハンドルに必要なアクセス権限 - Japan WDK Support Blog - Site Home - MSDN Blogs
- Device Object と Device Stack - Japan WDK Support Blog - Site Home - MSDN Blogs
- KMDF デバイス ドライバーの更新 - Windows 10 hardware dev
- KdPrint function - Windows 10 hardware dev
UserMode
- Communications Resources (Windows)
- Named Pipes (Windows)
- ハンドラ関数
- Amazon.co.jp: Windows95通信プログラミング (Microsoft programming series): Charles A.Mirho, Andre Terrisse, 梅原 系: 本
構造体
- windbg で EPROCESS 構造体と遊ぶ:Book of Days
- kernel-mode memusage - NyaRuRuが地球にいたころ
- ダンプ解析 (Windows) - 08th SE's Wiki
- WinDbg - マイクロソフト系技術情報 Wiki
- Debugger Commands - Windows 10 hardware dev
- Kernel and remote debuggers - tutorial - developer Fusion
- KD Extension DLLs & KDCOM Protocol
- j00ru//vx tech blog : Attacking the Host via Remote Kernel Debugger (Virtual Machines)
- https://www.blackhat.com/presentations/bh-usa-07/Stewart/Presentation/bh-usa-07-stewart.pdf
- ChangeLog-0.3.11 - ReactOS Wiki
- アプリケーションからのデバイスドライバの呼び出し、制御方法について
- 管理者権限でしかアクセスできません | WDDDC
- IoCreateDeviceSecure problem | Windows Vista Tips
- 0と1の欠片 : [Visual Studio]ドライバをビルドすると、"22.9.7: DriverVer set to a date in the future (postdated DriverVer not allowed) in \xxxx.inf."というエラーになる
TOML
- toml/toml-v0.4.0.md at master · toml-lang/toml
- TOML仕様和訳 - Qiita
- TOMLは人に優しい設定ファイル言語 - Qiita
- Cool Python Tips: TOMLを使ってみよう
- TOMLの日時形式
- Masaki Haraさんのツイート: "素朴なiniは原始的すぎて人間用ではなく、JSONは単純すぎて人間用ではなく、XMLは冗長すぎて人間用ではなく、YAMLは複雑すぎて人間用ではないので、そう考えるとTOMLは人間用の汎用設定記述言語としてかなりいい線いってると思う"
- 最強のC++実装TOMLパーサーが完成した - in neuro
- toml11を60倍高速化した話 - in neuro
- toml11をバージョンアップした - in neuro
- toml11 v3ができてきた - in neuro
- TOMLで浮動小数点数の指数部分でleading zeroが許可される - in neuro
- toml11をマイナーアップデートした - in neuro
- TOMLで型の異なる要素を持つ配列が許可された - in neuro
- Play with UEFI
- 技術者見習いの独り言: SecureBootとLinux
- openSUSE:UEFI - openSUSE
- Playing with UEFI Secure Boot – Part 2: Basic Authenticode signing with MS Tools | Al's Website
- UEFI - PhoenixWiki
- www.uefi.org/sites/default/files/resources/UEFI 2_5.pdf
- ぽこつん研究所 » メモリ管理について考える#09 dlmallocの設定項目
- FreeType使用記録
- www.uefi.org/sites/default/files/resources/EDK_II_SW_debugger_v0.1_lj-Plugfest.pdf
- https://firmware.intel.com/sites/default/files/UDK_Debugger_Tool_User_Manual_V1.11.pdf
- www.uefi.org/sites/default/files/resources/ACPI_6.0.pdf
ライセンス
その他
- GPLやMITやCCなど主要ライセンスの内容と意味のまとめ | ITキヲスク
- Google v. Oracle API著作権裁判
- ライセンスについての紹介 | VINTAGE Blog
- いまアメリカのソフトウェア特許に起きていること - what`s the 446?
- 【Cases & Trends】 アメリカ特許訴訟が急減 - ここにも見える最高裁Alice判決の影|知財情報|日本技術貿易株式会社
- Coop Lights - About
- fixedpoint.jp - なぜGCCのドキュメントはDebianでnon-freeなのか
- あなたのコード、違法かも? エンジニアも知りたい、弁護士が教える著作権と開発契約の法知識 - エンジニアHub|若手Webエンジニアのキャリアを考える!
- よく見かけるあの©表示って何の意味なのかな? 【よくわかる音楽著作権ビジネス】 - INTERNET Watch
- GoogleやYahoo! JAPANでさえ間違ってる、Copyright(コピーライト) の正しい書き方 - 2016年版 | hajipion.com
- OSSライセンスとは~著作権法を権原とした解釈
- mjg59 | The Commons Clause doesn't help the commons
- Microsoft、OINに参加し、6万件以上の特許をオープンソース化 「Linuxを保護する」 - ITmedia NEWS
- MongoDBもクラウド事業者に対抗してライセンスを変更、AGPLから独自作成のSSPLへ | OSDN Magazine
- 他人の著作物を使用したアイコンの法的リスクについて(栗原潔) - 個人 - Yahoo!ニュース
- 上山浩 「OSSライセンス遵守のための基礎知識」 知財管理 Vol.68 No.5(NO.809)に掲載 | 日比谷パーク法律事務所
- c484e7e1251d2ed577a08fc47179d1e4.pdf
- GoogleとOracleが「APIの著作権」を巡って最高裁判所の口頭弁論で対決、Googleが不利との見方 - GIGAZINE
- 09 f9: A Legal Primer | Electronic Frontier Foundation
ライセンス
- さまざまなライセンスとそれらについての解説 - GNUプロジェクト - フリーソフトウェアファウンデーション
- Welcome to The Open Source Initiative | Open Source Initiative
- オープンソースライセンスの比較 | YOSBITS
- オープンフォントライセンス | YOSBITS
- SIL Open Font License - Wikipedia
- License Library
- SPDX License List | Software Package Data Exchange (SPDX)
- 著作権の保有と譲渡
日本
ガイドライン事例
- サイボウズのオープンソースソフトウェアポリシーを紹介します - Cybozu Inside Out | サイボウズエンジニアのブログ
- Kazuho Okuさんのツイート: "僕としては、OSSガイドラインの導入にあたっては社員が無意識の時間外労働をしないよう会社側に留意してほしい、そのことは会社のリスク管理と、社会全体の労働者保護につながることであるし、労務管理について理解することは社員本人にとっても有益であろう、というあたりかしら… "
- Kazuho Okuさんのツイート: "あ、ちなみに株主です… "
- Kazuho Okuさんのツイート: "ありがとうございます。労働にあたることを明示した上で社員に自由に休日労働する権利を認めるの、あまりにホワイト企業で素晴らしすぎる / “業務利用しているOSSの休日個人開発は業務か? - Cybozu Inside Out | …” https://t.co/Gk9woMzDrA"
- 業務利用しているOSSの休日個人開発は業務か? - Cybozu Inside Out | サイボウズエンジニアのブログ
- 授業目的公衆送信補償金にかかる著作権法の改正 | yasuokaの日記 | スラド
- 「TPP11関連法成立で、著作権の非親告罪化と保護期間延長が確定」「漫画家個人がCloudflareに漫画村運営者の情報開示請求提訴」など出版業界関連の気になるニュースまとめ(2018年6月25日~7月1日):見て歩く者 by 鷹野凌
- 著作権の保護と制限の規定がもうすぐ変わる ~ 保護期間延長、非親告罪化、柔軟な権利制限、教育の情報化対応など、まとめて解説 – HON.jp News Blog
- Inada Naokiさんのツイート: "日本の著作権法にはフェアユース規定はないものの、基本的に親告罪だから、著作者の利益を損なわない、著作者が文句を言わない範囲での著作権違反の多くが明確な許諾なしに黙認されていて、それを前提に色んなことが成り立ってる。 その黙認されてるエリアに丸ごと網をかけちゃうような法律はNGと思う"
- DL違法化「文化庁は与党に正確な情報を提供していない」知財法専門家が批判レポート - 弁護士ドットコム
- 「これでいいのか! 2018年著作権法改正」出版にあたり――日本版フェアユース再考のすすめ - INTERNET Watch
- マンガワンのチート事案についてまとめてみた - piyolog
- 「知人の弁理士に相談した」、Pythonを商標登録した企業が理由を説明 | 日経 xTECH(クロステック)
- 著作権法改正の概要と「写り込み」に係る権利制限規定の対象範囲の拡大 - BUSINESS LAWYERS
- オープンソースのプロジェクトに商標登録の支援などを行い、不適切な利用から守る、「オープンソース商標イニシアチブ」が国内で発足 - Publickey
- heatwave_p2pさんはTwitterを使っています 「今回の騒動の発端になった井上大臣の会見。政府がコスプレイヤーをクールジャパン大使に任命して、著作権の啓蒙までさせるものだから、コスプレの適法性に疑義があっては困る。そりゃ「法的な整理が必要」になるよね。全然クールじゃない。 https://t.co/wNzAkQlgAh」 / Twitter
- 井上内閣府特命担当大臣記者会見要旨 令和2年11月27日 - 内閣府
- 「Python」の登録商標、米Python Software Foundationが再出願。アーク社の登録商標に対しては不使用取消審判を請求 - Publickey
EU
GDPR
CCPA
- 2020年から施行される個人情報保護法「CCPA」はGDPRよりも企業に厳しい内容である - GIGAZINE
- 日本企業も大きな影響を受ける「GDPR」--まずは「対象か」の確認を - ZDNet Japan
- GDPRの施行によりUnroll.meとPinterestのInstapaperはヨーロッパで利用不可に
- Do Not Track and the GDPR | W3C Blog
- GDPR:その目的と企業の責任 – カスペルスキー公式ブログ
- GDPRとは – カスペルスキー公式ブログ
- 結局何をすべき?GDPR対応3つの優先事項と解消すべき6つの疑問
- 知らないとマズい - 最大約 26 億円の制裁金や個人情報利用停止措置を伴う「GDPR」施行まであと一週間 | トレンドマイクロ セキュリティブログ
- GDPR 施行直後の対応に伴うリスクや、便乗したサイバー犯罪の可能性とは? | トレンドマイクロ セキュリティブログ
- 一般データ保護規則(GDPR:General Data Protection Regulation) - フォーティネット
- GDPR対策関連ホワイトペーパー集 | 日本オラクル | Oracle JP
- Rockridgeさんのツイート: "EUのGDPRやePrivacy Regulationに合わせて、Do Not Track(DNT)の仕様や実装もアップデートされていくようだ。 / “Do Not Track and the GDPR | W3C Blog” https://t.co/ajgFvTzRvF"
- GDPR変更でユーザトラッキングへの影響が際立つ
- SaaSがGDPRに準拠するには、オンプレミスが望ましいのか?
- ブラウザ新興企業Brave、グーグルなどによるGDPR違反を申し立て - CNET Japan
- Kazuya Gokitaさんのツイート: "GDPR、いろんなサイトで「当サイトでは利便性向上のためにcookieを…」みたいなダイアログが開いて、こんなの事実上同意せざるを得ないので、ただただインターネットが不便になっただけだな"
- Nerry さんのツイート: "なんちゃらなんちゃら法のせいで最近やたらとクッキーを受け入れますかって画面に表示されるサイト増えたけど、これって拒否選んでも選んだことがクッキーに保存されないから永遠に聞いてくるってこと?"
- ハイパーリンクを貼るだけで著作権料がかかる通称「リンク税」がEUで導入されようとしている - GIGAZINE
- EUがインターネットをめちゃめちゃにする | ギズモード・ジャパン
- 「オープンソース開発に重大危機」--GitHubがEUの著作権法改正に反対する理由 - ZDNet Japan
- 欧州議会、著作権関連規則の改正案を否決 | スラド YRO
- Rockridgeさんのツイート: "MozillaはEUの著作権指令の改正に反対の立場。包括的なアップロードフィルターの導入はインターネットの文化を貧しいものにしてしまうし、リンク税の導入は知識へのアクセスと共有を困難にするからだという。 / “Mozilla r…” https://t.co/8qOcIgeUze"
- 出た、Google最終兵器。EU著作権法改正後の白抜き画面がリーク | ギズモード・ジャパン
- 「リンク税」などを含むEUの改正著作権指令案への大規模な反対運動が勃発 - GIGAZINE
- Tomoko Uchidaさんのツイート: "これ通っちゃったんか。。。meme と GIF は除外とされたらしい / EU passes divisive Article 13 copyright law https://t.co/mtlfHGMAKl"
- EU passes divisive Article 13 copyright law
BSDL
@kazuho
- Kazuho OkuさんはTwitterを使っています: "BSDL、昔は特許の使用権も付随してるに決まってるだろJKと思ってたけど、IIRC最近VP8とかFacebookとかBSDL+特許ライセンスの構成をとるものが増えてきてるので、そういう前提がいつか通用しなくなる可能性が出てきてるんじゃないかなと嫌な気分になってる"
- Kazuho OkuさんはTwitterを使っています: "BSDL は特許ライセンスが付属するか怪しい、MITL は暗黙に付随していると考えられる、Apache License は明確に付随する、の差"
- Kazuho Okuさんのツイート: "特許の使用許諾を別につけることが一番妥当なOSSライセンスがBSDLだし(文言内でライセンサーを意味する単語が「copyright holders」なため)、利用者としてもライセンサーとしてもBSDLは紛らわしいので避けるべき"
- Kazuho Okuさんのツイート: "BSDLなソフト見つけたらまず特許条項の存在を疑う。2010年代の常識です"
- Kazuho Okuさんのツイート: "AndroidにバンドルされてるOSSであるVP8がBSDL+特許ライセンスで、(電気機器メーカーが多い)MPEG4陣営がG社を特許侵害で訴えらづらくする毒饅頭として機能している話とか"
- Kazuho Okuさんのツイート: "以前にも炎上して改訂されてたんだけど、今回は改訂されず https://t.co/GkOqd1NRXb / “Facebookの特許条項付きBSDライセンスが炎上している件について | こんぴゅ | note” https://t.co/3xK1JwnNuA"
- Facebookの特許条項付きBSDライセンスが炎上している件について | こんぴゅ | note
- Kazuho Okuさんのツイート: "BSD+特許ライセンス問題にASFが介入いしてくるの、なるほどその手があったのかって感じ"
- https://www.apache.org/legal/resolved.html#category-x
- Kazuho Okuさんのツイート: "fbの特許ライセンス問題に耳目が集まっているうちに言っておくと、BSDLは主要OSSライセンスのうちで唯一、ライセンス提供者が「作者」でなく「著作権所有者」になっているがゆえに、特許ライセンスを別途指定しやすいという問題があり、それがゆえにBSDLを使うのは避けるべき"
- Kazuho Okuさんのツイート: "あと、パテントトロールに対してはOSSの特許条項は役に立たない(トロールは自社でOSSを使った業務をやらないので、OSSの使用権を失っても困らない)から、パテントトロール対策だって言い訳は説得力ない"
- Kazuho Okuさんのツイート: "つまりOSSの特許条項は、競合他社との競争において意味をもつものです"
- Kazuho Okuさんのツイート: "件の特許ライセンスについては、ああいうライセンスをBSDLにつけること自体は各個の自由だし、OSS配布は社会貢献活動ではないという立場からもアリだと思う。一方で、ああいうライセンスのソフトを使いたくないケースもあるから、もっとゆるい条項になるといいなとfbの中の人たちのために思う"
- Kazuho Okuさんのツイート: "Fbに限らずGoogleのvp8やwebmもそうだし、BSDLみたらpatent grantを疑えって話ですよ。その認識が広まるなら今回の騒ぎはいいことだと思う #毎回言ってる"
- ASFがReact.jsなどが使うFacebookのオープンソースライセンスを禁止、Facebookは「変更しない」と発表 | OSDN Magazine
@mhiramat
- まさみさんは語りたいさんのツイート: "OSSライセンスのMITライセンスやBSDライセンスについて、著作者の表示をすれば自由に使えるのだけど、これ多人数で開発するプログラムに適用した場合、全ての人のCopyright表記をするのか、ライセンスファイルにあるものだけでいいのかでもめそう。"
- KaiGai Koheiさんのツイート: "BSDライセンスのPostgreSQLの場合、Copyright表記は全て「PostgreSQL Global Development Group」になってるんだけど、『PGDGとはPostgreSQLの開発に貢献した全ての人です』という定義になってる。… "
- まさみさんは語りたいさんのツイート: "なるほど、comittersとかdevelopersとか、個人を特定しない方法がありますね。その辺り、個人の表記をどうしたいのかは本当ははっきりさせたほうが良い・・・。… "
- まさみさんは語りたいさんのツイート: "コントリビューターの一人が著作者名をどうしても表記して欲しいって言った場合は問題が起きちゃうんですよね。だから厳密には事前に方式を決め、コミット前に同意を取ったことを確認する手段(signed-offとか)も用意する必要があるんだけど、全部のOSSでやるのは難しいよなあと。… https://t.co/9KtW4HsTl6"
- KaiGai Koheiさんのツイート: "なので、"How to contribute"でも良いので事前にルール化・文書化しておく必要はありますね。アップストリームに入れたいのであれば、その流儀に従ってくださいと。… "
- まさみさんは語りたいさんのツイート: "この辺りのノウハウ、大手のOSSプロジェクトはみんな持ってると思うんで、そこからテンプレを起こして広めるのと、揉めた時の相談先としてLFなりが第三者機関として動けるようになると凄くありがたいですね。 Githubはライセンスファイルのテンプレしか用意しないし。… "
- Satoru Uedaさんのツイート: "このスレッド、大切な問題提起を含んでいると感じます。著作権表記をどうするかもOSSの配布をするシーンで悩みとして浮かび上がる。配布のシーンに直面する事が圧倒的に多い組み込み系は特に気をつかいたいところ。… "
- Satoru Uedaさんのツイート: "GPLだと、著作権表記もライセンス表記もソースコードと一緒に全部開示することになる。この点からも、Linuxのような大規模OSSに向いていると言えるのかも知れませんね。… "
- まさみさんは語りたいさんのツイート: "はい。しかし一般に寛容型と言われているライセンスはこの辺りがあやふやなので、大規模になった時に、「ライセンスの外側」で貢献同意の裏付けを取るプロセスとしてOpenStackとかでContributor License Agreement を交わすという方法がありますね。 https://t.co/ax5gG9REfC… https://t.co/lAKOcwx7Xh"
- まさみさんは語りたいさんのツイート: "このあたりは、OSSプロジェクトを進める上でのライセンス外だけどライセンスに絡む重要なノウハウなので、他の寛容型ライセンスを使う際の注意点と回避策として標準化していかないといけないんじゃなかろうかと思います。… "
- Satoru Uedaさんのツイート: "そのとおりだと思います。短いメッセージでは書ききれないことがたくさん思い当たります。BoFネタですね。… "
- まさみさんは語りたいさんのツイート: "昨日知ったというか理解したのは、寛容型ライセンスは法務的には全く寛容型とは言い切れない面倒くさいライセンスであるということだった。特に著作人格権が存在する日本では・・・。"
- nishio hirokazuさんのツイート: "著作者人格権はベルヌ条約を批准している地球上ほとんどの国に存在しているわけだが、一体どこの国の話をしているのか…… "
- henrichさんのツイート: "これはdebian/copyrightファイルでも悩む所であり、どうすればいいのかはまだベストプラクティスがない…。… "
- まさみさんは語りたいさんのツイート: "これはいいまとめ。やはりプロジェクト毎にライセンスがどう扱われるかをきちんと決めておけという話になるのかな? (CLAで。)… "
- Igaguriさんのツイート: "(まちがい) 日本には著作者人格権があるからめんどくさい (ただしい) なぜか米国は条約で保証しなければならない著作者人格権の制度がなく、米国法しか考えずに作られたOSSライセンスが多い… "
- まさみさんは語りたいさんのツイート: "なるほど米国だけ例外的で、例外的な条件に基づいてライセンスを作ってしまったから、本来保護されるはずの著作人格権の行使のあたりの取り決めが別途必要なのか。"
- nishio hirokazuさんのツイート: "僕の理解をまとめました https://t.co/KvOucRXa5p… "
- すぎむら45さんのツイート: "> ライセンスも「著作者が、他の人に、どういう条件で利用を許諾するか」を書いたものに過ぎないので、著作者が誰であるかを定めるための手続きではない。 この観点はとても重要だと思いました。 使用許諾の話と、著作者人格権の行使の話は混じっているのはよくないですよね。… https://t.co/3JGcfxruVs"
- 多人数で開発するOSSの著作者表記 - 西尾泰和のScrapbox
- mongrelP@もんぐれさんのツイート: "わかりやすいところだと旧GPLとかが該当するみたいね(記事による。今のGPL3とかはどうなってるかはわからぬ) https://t.co/X7HcTVFF8X… "
- GPLは契約として成り立つか---日本法との整合性を検証する - CNET Japan
- MAEKAWA Masahideさんのツイート: "著作「者」人格権ですね。… "
- 姉崎 章博さんのツイート: "あまり意識されていないが「多人数で開発する」は「全員、共同著作権者とは限らない」し「(元著作者以外が)二次的著作権者とは限らない」。 Contributer=(二次的)著作権者と思い込んでいる人が多い? 「二次的著作物として何を創作した」に答えられるプログラム記述が残っていれば権利者と言えるかな… https://t.co/th1z91D2vg"
- 姉崎 章博さんのツイート: "もちろん、プロジェクトリーダをやっている元著作者は、そんな厳しいことを言わずに、Contributeしてくれた人をリスペクトして、Copyrightを追加してくれている人が多いけど。 記述が類似性をもって取り込まれたわけでもないとか、著作物と言える規模でもないのに、著作権を主張するのはどうなんだろう… https://t.co/W2dxp1gV5y"
- 姉崎 章博さんのツイート: "「第三者から見て決める基準」が無いから、親告罪になっていると思っています。 釈迦に説法になりそうですが、 どのくらい他人のウチに踏み入れたら住居侵入罪になるか、何センチって決まっていないのと同じではないでしょうか。 どちらにしろ所有者(権利者)しだいかと。… "
- ぉゅぅさんのツイート: "姉崎さんに教示いただいたと思いますが、LGPLの3項に参考になりそうなサイズはありますね。10行以下のインライン関数やマクロ程度ならLGPLとしてのライセンスを要求していません。 とはいえ、それをもって著作権有無を判断できないでしょうけれど(各国の判例があれば もっと参考になるのかな)。… https://t.co/xDMyYhIJW9"
- ぉゅぅさんのツイート: "https://t.co/7BcoewUTMP 3. Object Code Incorporating Material from Library Header Files. >small macros, inline functions and templates (ten or fewer lines in length) このあたりがそういってるのかな、と。… https://t.co/Dt9PxcUpQj"
- 姉崎 章博さんのツイート: "親告罪になっている理由にももう一つあって、著作者本人が許している(お目こぼししている)のに、第三者の検察が問題視するものではないかららしい。 そういう意味でも、著作者次第。 著作者を無視したルール(基準)があるわけではない。… "
- vyv03354さんのツイート: "歴史的にはむしろBSDLはGPLがパクれない条文だった(宣伝条項付きだった)ところを、FSFからの働きかけに応じてわざわざパクれるように修正した(宣伝条項を外した)という経緯があるわけだが、哲学とか本来の意図とか一体何の話をしているのだろう。 #エアリプ"
Artistic License
- Artistic License - Wikipedia
- Artistic License - Wikipedia
MPL
- Mozilla Public License - Wikipedia
- Mozilla Public License - Wikipedia
- Mozilla Public License, version 2.0
- MPL 2.0 FAQ — Mozilla
- MPLの概要 | easy labo
- MPL2.0ライセンスのライブラリを使った開発 -MPL2.0ライセンスをうたっ- オープンソース | 教えて!goo
- Mozilla Public License(MPL)2.0が公開 | オープンソース・ライセンスの談話室
- Mozilla、Mozilla Public License(MPL)を10年ぶりにアップデート | OSDN Magazine
- MPL 2.0, copyleft, and license compatibility | Opensource.com
- Kazuho Okuさんのツイート: "MPL 1.1にあった、著作者に対し(その著作物に無関係でも)特許侵害訴訟を起こしたら、その著作物に含まれる著作者所有特許のライセンスがrevokeされるってのは割と好きなんだけど、なんで2.0で廃止されたのかしら"
GPL
Linux
- まさみさんは語りたいさんのツイート: "StackOverflowにGPLとカーネルモジュールについての詳細な引用回答を見つけた。結構具体的にソースを示して見解を示しているのが良い。しかも技術的な話だから、これは多分法務の人だけでは理解できない。 https://t.co/XPsEGkhyIm"
- how to make my own linux kernel driver closed(not open source)? - Stack Overflow
- まさみさんは語りたいさんのツイート: "GPLとしての要件は派生物であるかどうか。Linusの意見も派生物としてのカーネルモジュールはGPLにすべきであるという意見。ただし、他のOS向けに書かれたドライバを、単純に移植しただけである場合についてのみ、Linusの見解としては派生物でないからGPL出ないドライバも受け入れられると言う。"
- まさみさんは語りたいさんのツイート: "おそらく厳密に言えば、そのハードウェアが他のGPLでないOSで動くことが証明されていて、そのOS向けに書かれたドライバであるということが証明できるのであれば、GPLを適用しなくてもLinuxカーネルについてだけ言えば受け入れても良い。ただし他のGPLソフトウェアはそれぞれの事情で判断すべき。"
- まさみさんは語りたいさんのツイート: "ライセンスは書面の字面だけでは解釈が別れるものがあって、それをきちんと解釈しようとすれば、ライセンサに確認するしかないが、ここではライセンサ(Linus)の意志が明確に表現された発言がリンクされているのがポイント。"
- まさみさんは語りたいさんのツイート: "ちょっとややこしいのは、元々以前の世代のハードウェアはLinux以外のOSを動かしていて、Linuxもサポートするために移植したが、今世代のハードウェアではLinuxしか動かしておらず、しかも新世代のために修正を加えている場合はどうなるのかということ。"
- まさみさんは語りたいさんのツイート: "今ならいくらでもユーザ空間にドライバの機能を追い出す手段があるので、わざわざカーネルドライバにプロプラコードを突っ込むのは相当のマゾかN○IDIAだと思ってる。"
- まさみさんは語りたいさんのツイート: "armのmaliドライバはカーネル部分はGPLだし、まあ妥当でしょうこれ。"
- まさみさんは語りたいさんのツイート: "OSSライセンスに関わる話って見方が何種類かあって、Linuxのモジュールに関わるものはもう少し細かくて、あまり外野から口を挟むべきではないよなと思ったり。(なんでLGPLではなくてGPLv2だけどEXPORT_SYMBOL_GPLなど入れることになったのか、等の苦しさを汲み取れなければ止めたほうがいい)"
- まさみさんは語りたいさんのツイート: "このあたりの苦しさが伝わってくるから、いろいろ言われても「OSSライセンスの教科書」は好き。"
- Naoya HoriguchiさんはTwitterを使っています 「GPL が感染するというような表現する人がいるけど、Linux カーネル内ではプロプラのモジュールに対して tainted (汚染) フラグを立ててえんがちょしているので、実はどっこいどっこいなのではないか。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「プロプラのモジュールがあったら、ライセンス上解析できない(RE禁止)かもしれへんやん?そういうのをLKMLに送ってくんなよ、送っても無視する(か、最低優先度にする)ぞ、という意味のtaintedです。ライセンス違反で汚染されてるとかそういう話ではないです。」 / Twitter
- licenses/GNU_General_Public_License_version_3.0 - Open Source Group Japan Wiki - Open Source Group Japan - OSDN
- GNU General Public License - Wikipedia
- 姉崎 章博さんのツイート: "#osc18tk 世界中の弁護士が「GPLは契約」と言う愚かな理由 https://t.co/nGALPIVDHJ 一時限目より、ちょっと、ディープな話ですが、聞いていただけると幸いです。 言葉だけを鵜呑みにせずに、人がどういう認識で何のためにそういう話をしているのか調べると、結構あまり考えていないことがわかる:-(… https://t.co/BrJ52LdBvf"
- オープンソースカンファレンス2018 Tokyo/Fall - イベント案内 | 2018-10-27 (土): 世界中の弁護士が「GPLは契約」と言う愚かな理由
- GNUライセンスに関してよく聞かれる質問 - GNUプロジェクト - フリーソフトウェアファウンデーション
- Kazuho Okuさんのツイート: "@yukihiro_matz FSFは商用ソフトを「マルウェア」「ユーザを虐待するように設計された機能を有している」と非難している(https://t.co/0krqdpAztY)わけですし、松本さんの感情は別としてウイルスと呼ばれるくらいのことを問題視してもしょうがないかと"
- トーバルズ氏がLinuxとGPLについて真に思うこと - ZDNet Japan
- 「GPLv3」公開から10周年 | OSDN Magazine
- 米Red HatやGoogleなど、GPLv2やLGPL違反時の「治癒期間」の権利を約束へ | OSDN Magazine
- 本の虫: 自由ソフトウェア財団が技術的な指導力を失いつつある
- 米Red Hat、GPLv2やLGPLv2.1を利用するソフトウェアに対してもライセンス違反時の「猶予期間」を提供へ | OSDN Magazine
- 「Qt 5.7」リリース、本リリースよりLGPLv3およびGPLv3での提供へ | OSDN Magazine
- まさみさんは語りたいさんのツイート: "B2BのビジネスでGPLのソフトウェアを使った場合、ソースコードの提供義務はそのソフトウェアの頒布先になるんだけど、戦車とかにLinux使ったら自衛隊にだけに公開すればいいという話で、そこから先は組織の機密保持のため公開されることはない、という話になるな。"
- まさみさんは語りたいさんのツイート: "GPLは頒布に際してソースコードの公開を要請するけど、更に踏み込んで、レポジトリの公開を要請するライセンスって言うのはどうだろうか。"
- fjのYog教祖様さんのツイート: "GPLv4 としてRMSに提案する ( w )/… "
- まさみさんは語りたいさんのツイート: "WindowsやRTOSドライバとコア部分を共有したい場合はBSDとかMITにするのが良いと思いますね。GPL互換だし問題がない。… "
- だよもんフレンズは転職したいさんのツイート: "だからBSD(とMIT)ライセンスが無難。GPLは極端過ぎる。… "
- まさみさんは語りたいさんのツイート: "だけどBSDだと「このドライバはBSDだからソースコードは配布しないで下さい」とかいうB2B契約をしようとする輩が出てきてやっぱり炎上するかもなので、よっぽど隠したい理由がない限りGPLにしておくのが良いと思うよ。要するに、Linuxを育てた人たちの成果にフリーライドして平気かどうかという話。"
- まさみさんは語りたいさんのツイート: "過激と言われるかもだけどさ、そこの筋を通せるかどうかって、その会社が単なる寄生虫として生きるのか、社会のリーダー格として生きるのかの分岐点だと思うんだよね。 寄生虫は大きくなれないし日陰に生きるしかない、それで良いの?"
- まさみさんは語りたいさんのツイート: "https://t.co/tCtMZVhFk8 ごめん、Linusもアカンって言ってる。"
- Linusのカーネルモジュールのライセンスへのスタンス | スラド
- GNU GPL登場前夜 | OSDN Magazine
- 2019年9月27日 リチャード・ストールマン「FSFは辞めてもGNUは辞めない」:Linux Daily Topics|gihyo.jp … 技術評論社
- 著名なフリーソフト活動家が一通のメールで役職辞任に追い込まれたことに「危険な動きだ」と批判が寄せられる - GIGAZINE
- FadisさんはTwitterを使っています: 「FSFとGNUは今までRichard M. Stallman氏が双方のトップを兼任していた為その連携は必然だった。が、先の騒動でFSFを追い出された氏が依然としてGNUのトップを続けている状況で、今後FSFがGNUとどう付き合うべきかが悩ましい問題になっているらしい https://t.co/rgKBMGwEzg」 / Twitter
- The FSF Is Re-Evaluating Its Relationship With The GNU - Phoronix
- Stallman氏、GNU Projectトップを引き続き務めることを表明。プロジェクト内からは反発の声も | OSDN Magazine
- SNKのあまりにもデタラメな対応のせいで GPL違反状態になっているNEOGEO Arcade Stick Proの解析情報 - honeylab's blog
- SNKによるNEOGEO Arcade Stick ProのGPL逃れの手口と彼らのミス - honeylab's blog
- FadisさんはTwitterを使っています: 「GNUの主要なプロジェクトのメンテナが名を連ねてRichard Stallman氏をGNUのトップから降ろすように求めている声明文。なんというか、GNUの方も時間の問題って感じだ https://t.co/Xk8QSmFHbq」 / Twitter
- Joint statement on the GNU Project — 2019 — Blog — GNU Guix
- KOSAKI MotohiroさんはTwitterを使っています 「GPLはバイナリを使える正当所有者はソースコードも入手可能でなければならないというライセンスですが、そのソースコードを自分でコンパイルしたものを利用可能かどうかはその国の法律によります。ほとんどの先進国では Red Hatみたいな他者の商標は勝手には使えません。CentOSみたいな商標削除作業要」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「Xを静的にリンクしたバイナリYを配布したら私がXのバイナリを再配布した扱い?(ライセンス苦手おじさん)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「現代のストレージ事情において、共有ライブラリを使う必要性はほぼ無く、あげるとすれば暗号系のライブラリの更新だけど、これは本来OS側で面倒を見るべき事で、実際RHEL などは suite として提供している」 / Twitter
- てらモス♋️さんはTwitterを使っています 「@Hishinuma_t それは再配布した扱い(もちろん共有ライブラリを同梱しても再配布扱い)。ただし誤解が多いけど、GPL のバイナリと MIT なバイナリを同梱したら全部 GPL にしないといけないわけじゃないからな」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「@termoshtt そこが難しい、、、 再配布するときは元の…みたいなやつに頭を悩ます」 / Twitter
- てらモス♋️さんはTwitterを使っています 「@Hishinuma_t CUDAが結構ややこしくて、リンクしたやつを再配布する場合はCUDAのライブラリはその本体を動かすためになら使って良いという条項がある」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「@termoshtt なるほど、、、、、」 / Twitter
- 2021年6月2日 もうFSFにとらわれない ―GCC運営,FSFへの著作権移譲を開発者に求めないポリシーに:Linux Daily Topics|gihyo.jp … 技術評論社
- Grafana LabsがGrafana、Loki、TempoのライセンスをAGPLv3に変更
- FadisさんはTwitterを使っています 「GNU C Library(glibc)がコントリビュート時に著作権をFSFに譲渡する事を求めなくなったらしい。FSF発のプロジェクトの多くはコントリビュート時にFSFへの著作権の譲渡を求めていたが、少し前にGCCがこの条件を撤廃しており、glibcもこれと同じ方式に移行する形になる https://t.co/VbIX7X4TrK」 / Twitter
- GNU C Library Looking To Drop FSF Copyright Assignment Policy - Phoronix
- nishio hirokazuさんはTwitterを使っています 「CopilotとGPLの話、少なくとも日本の著作権法においては30条の4の「著作物に表現された思想又は感情を自ら享受し又は他人に享受させることを目的としない場合」について著作権が制限され自由に使える件を踏まえてない発言はミュートしたい https://t.co/AL7rRWALgn」 / Twitter
- 著作物に表現された思想又は感情の享受を目的としない利用 - 西尾泰和のScrapbox
- 7594591200220899443さんはTwitterを使っています 「github copilot はgplのコードを学習してんならgithub copilotが生成するコードはgplなコードのderivative worksでしかあり得ねえだろうが、という指摘がされており一考の価値がある」 / Twitter
- eeveeさんはTwitterを使っています 「github copilot has, by their own admission, been trained on mountains of gpl code, so i'm unclear on how it's not a form of laundering open source code into commercial works. the handwave of "it usually doesn't reproduce exact chunks" is not very satisfying https://t.co/IzqtK2kGGo」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「元来GPLとはソフトウエアを自由化する運動だってわけだが。謎のAIとやらをかますだけでGPLの自由が毀損されて不自由なコードに化けてしまって良いのか。」 / Twitter
CDLA
- Linux Foundation、機械学習やAI時代をにらみデータのための新ライセンスを発表 | OSDN Magazine
- Home - CDLA
Bluetooth
- Bluetooth ブランドを使用する - 登録
- Bluetoothロゴを使用するためには?〜①Bluetooth SIGメンバー登録編〜 | 無線化.com
- Bluetooth認証 | BLEDocs
- a10.pdf
Creative Commons
- クリエイティブ・コモンズ・ライセンスとは | クリエイティブ・コモンズ・ジャパン
- Creative Commons — CC0 1.0 全世界
- クリエイティブ・コモンズ・リーガル・コード
- Creative Commons — CC0 1.0 Universal
- Creative Commons Legal Code
- Creative Commons — 表示 4.0 国際 — CC BY 4.0
- クリエイティブ・コモンズ (Creative Commons) — 表示 4.0 国際 — CC BY 4.0
- Creative Commons — Attribution 4.0 International — CC BY 4.0
- Creative Commons — Attribution 4.0 International — CC BY 4.0
- 本の虫: このブログのライセンスをCreative CommonsからGFDLに変更
- 本の虫: 邪悪なクリエイティブ・コモンズで起こるべくしておきた事件
- 本の虫: ますますクリエイティブコモンズが変な方向へ
- Choose a License
- Creative Commonsライセンスの作品は無条件で使って良いわけではない - yanok.net
- データ・資料 | クリエイティブ・コモンズ・ジャパン
DMCA
- 漫画村が使っているCloudflareというCDNが著作権侵害ほう助で苦境に陥っている件 - orangeitems’s diary
- 楠 正憲さんのツイート: "CloudflareがDMCAで海賊版サイトをテイクダウンしないのは札付きだったのか / “Cloudflare: We Can't Shut Down Pirate Sites - Slashdot” https://t.co/w0PVacszQh"
- Cloudflare: We Can't Shut Down Pirate Sites - Slashdot
- フェアユースに対する不当なDMCA削除要請をめぐる「Dancing Baby」裁判、和解に達する | スラド IT
- まさみさんは語りたいさんのツイート: "DMCA申請する際に、予め誤った申請だった場合の保証金を積み立てる仕組みと、申請自身が正当な申請者により行われたことを保証する仕組みが必要なのでは。虚偽住所や詐称申請はできない仕組みを作ったら儲かる気がする。"
- 辻正浩 | Masahiro Tsujiさんのツイート: "私の投稿を検索結果から消そうと先月から色々やっている方へ。 私のブログを装った盗用ブログを作ってそれを元に私の投稿にDMCA申請するのは全部Googleに拒否されてるにしてもやりすぎですよ?全部気づいてますよ?既に警察からも指導されていますよね?まだ続けるならそろそろ動きますよ?"
- 光のインターネットの闇さんのツイート: "侍エンジニア塾、批判していたサイトをDMCAクレーム申請してGoogle検索に出さなくしている。。。 https://t.co/gn0UJ341JK"
- DMCA (Copyright) Complaint to Google :: Notices :: Lumen
- 高梨陣平さんのツイート: "インターネットアーカイブ、Waback MachineがDMCA対応で削除を開始。 とうとう個々人での保存が重要になりつつある。腐ったDMCA申告に対抗するのはコストが高過ぎる。… "
- 「最後の砦」崩れる? Internet ArchiveでDMCAによる削除要請に対応した痕跡見つかる【やじうまWatch】 - INTERNET Watch
MS
- Microsoft Public License (MS-PL) | Open Source Initiative
- 使用条件
- Microsoft 開発者サービス契約
- マイクロソフトの主要なシェアードソースライセンスに関して « 来栖川電算
- 米Microsoft、オープンソースライセンス準拠の管理のためのOpenChain Projectに参加 | OSDN Magazine
- 2019年12月19日 欧CERNが進める脱Microsoftプロジェクト「MALT」,代替ソリューションが一部公開:Linux Daily Topics|gihyo.jp … 技術評論社
本の虫
- 本の虫: 高度に発展した特許業界はヤクザと見分けがつかない
- 本の虫: Javaの権利にまつわるまとめがすごい
- 本の虫: fair use権利を侵害するYouTubeのContent IDと戦うために著作権侵害するゲーム批評家の話
GIGAZINE
- Googleが「コードが著作権の対象になる」という裁判所判断はソフトウェア開発の未来を左右するとして対Oracle訴訟について嘆願書を提出 - GIGAZINE
- GoogleとOracleが繰り広げる訴訟で「APIは著作権保護対象か否か」について最高裁判所が審理に乗り出すことに - GIGAZINE
- Googleを著作権侵害で訴えているOracleもAmazonのコードをパクっているという指摘 - GIGAZINE
- 約1兆円の賠償金を巡るGoogleとOracleの10年にわたる訴訟が決着、「APIのコピー」は結局違法なのか? - GIGAZINE
技術評論社
- 2018年10月11日 Linuxとオープンソースを守るために ― Microsoft,「Open Invention Network」に参加:Linux Daily Topics|gihyo.jp … 技術評論社
- 監訳者解説 山形浩生:ハードウェアハッカー ~新しいモノをつくる破壊と創造の冒険|技術評論社
- 2019年1月17日 SSPLはオープンソースライセンスにあらず!? Fedora,リポジトリからSSPLソフトを削除へ:Linux Daily Topics|gihyo.jp … 技術評論社
TechCrunch Japan
- MongoDBがそのコードのオープンソースライセンスを改定、オープンソースの“食い逃げ”に むかつく | TechCrunch Japan
- 世界を手中に収めたオープンソースソフトウェア | TechCrunch Japan
Publickey
- Redis、MongoDB、Kafkaらが相次いで商用サービスを制限するライセンス変更。AWSなどクラウドベンダによる「オープンソースのいいとこ取り」に反発 - Publickey
- クラウドベンダなどによるサービス利用を制限したMongoDBの新ライセンス「SSPL」を理由にDebian、Fedora、RHELがMongoDBのバンドル取りやめを表明 - Publickey
- [速報]10年にわたる著作権訴訟でGoogleがオラクルに勝訴、米連邦最高裁判所で判決。Java SEのコードのコピーはフェアユースの範囲 - Publickey
スラド
- OpenSSL、ライセンス変更に向けて貢献者の合意を求める | スラド オープンソース
- OSSを利用する多くのソフトウェアで脆弱性対応の不備やライセンス問題が存在する | スラド セキュリティ
- 著作権法における「引用」と「技術の開発又は実用化のための試験の用に供するための利用」と「情報解析のための複製等」 | yasuokaの日記 | スラド
- なかのん&マジックさんのツイート: "これはGoogleを支持するわ。APIの模倣がダメなら、プラットフォーム間等の移植の際に、元のAPI叩いてたところに抽象化したレイヤーをはさむこと自体が違法ってことになるよな。 / Google、最高裁に対しソフトウェアインターフェースに対する著作権の扱いについて再考を求める https://t.co/UIoIwVmEZ0"
- Google、最高裁に対しソフトウェアインターフェースに対する著作権の扱いについて再考を求める | スラド IT
- なかのん&マジックさんのツイート: "API呼び出し部分を同じ形のメソッドなりでラップして、自動テストでプラットフォームの色んな動作をエミュレートしてもやっぱり違法になるのかな?"
infoQ
- OSSライセンスの遵守を簡単にするGitHub Licensed
- グーグル、オラクルへの支払いは数十億の可能性も
- Bank of Ameriaのブロックチェーンデータストレージ特許が公開
- 最高裁判所は、GoogleによるJava APIの使用は公正利用であると判決
OSDN
- licenses/MIT_license - Open Source Group Japan Wiki - Open Source Group Japan - OSDN
- オープンソースライセンス管理団体OSI、ライセンス情報を提供するAPI「Open Source License API」を公開 | OSDN Magazine
- スタッフ解雇を理由にFSFと対立していた「Libreboot」、GNU Projectから正式に離脱 | OSDN Magazine
- Black Duckが企業アプリで使われるOSSに関する調査結果を公表、6割以上で脆弱性が放置されているという結果に | OSDN Magazine
- 米Facebook、批判を受けて「React」のライセンスから特許条項を削除へ | OSDN Magazine
- 米GitHub、依存性ライセンス情報のキャッシュと確認を行う「Licensed」を公開 | OSDN Magazine
- オープンソース商標についての解説と不使用取消審判への対応のお願い | OSDN Magazine
- Redisがモジュールのライセンスを変更、商用利用に制限 | OSDN Magazine
- Kazuho Okuさんのツイート: "周辺モジュールをAGPLよりもリベラルなApache Licenseにしつつ、それ自体を商品として提供するのは禁止する、と。これは果たしてOSSなんだろうか... / “Redis’ License is BSD and wil…” https://t.co/K4IcvZRQrQ"
- Kazuho Okuさんのツイート: "変更前のライセンスがAGPLなので、クラウド事業者も開発に協力していたわけだし、今後も協力すると期待されるからこそApache License+αに変更したんじゃないのかしら… "
- Kazuho Okuさんのツイート: "AGPL+著作権譲渡でやりつつ、「別ライセンスは有償提供ね♡」といういつものモデルで始めてればよかったんじゃないの感は感じる"
- 米Redis LabsがRedisモジュールのライセンスを再変更、独自のRedis Source Available License(RSAL)へ | OSDN Magazine
- 分散SQLデータベース「CockroachDB」、「as a Service」としての提供を制限するライセンスに変更 | OSDN Magazine
POSTD
- MITライセンスを1行1行読んでいく | プログラミング | POSTD
Qiita
- 公開ライセンスの話 - Qiita
- そのライブラリは、本当にその著作権表記だけで良いのか? - Qiita
- githubでライセンスを設定する - Qiita
- ライセンスの選択を恐れる必要はありません - Qiita
- ちょっとユニークなライセンスたち・まとめ - Qiita
- Facebookと係争中の他社はReact.jsが使えない - Qiita
- プレゼン資料やアイコンやLGTMに、漫画・アニメを無許可で使うと日本では著作権侵害です - Qiita
- ライセンスをつけないとどうなるの? - Qiita
Twitter
特許
- Shirouzu Hiroaki(白水啓章)さんのツイート: "2000年以降の出願で、特許として認められないもの。 「特許出願前に(略)外国において(略)電気通信回線を通じて公衆に利用可能となった発明」 https://t.co/YKhdZvBu4Y 例えばRFC等で既知の場合は、特許として認められない、となるはず。 (なのに特許成立している例が…無効審判にできそう)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "1999年以前の出願については、「外国において頒布された刊行物に記載された発明」が認めない条件となっていて、出版されているものに限っていた様子。"
- Kazuho Okuさんのツイート: "自己防衛とかナイーブすぎる。基盤技術をばらまいて他社に依存させて、それら他社の特許を自由に踏めるようにするための戦略でしょ。Androidを販売したければVP8のサポートが必須だから動画関係の特許侵害でGoogleを訴えることができなくなる、的な… https://t.co/QT8nIgkS7j"
- mattnさんのツイート: "PATENTS は特許侵害に対する自己防衛だと思います。Google は OPN にサインしています。 https://t.co/fBee4IHiw3 https://t.co/LyrpQBWQx0"
- Kazuho Okuさんのツイート: "まあGolangの特許条項はApache Licenseと同様の温和なものだとは思うけど"
著作権
- OS作れないマン 技術書典3 あ11企さんのツイート: "社内リポジトリにあるソースコードに著作権表示があって、編集するたびに年号の部分を書き換えるの面倒だから、米国も無方式主義となった現在では著作権表示を削除しても良いのではないかと提案した。"
- ぬるぽへさんのツイート: "著作権のこと全然考えてなかったんだけど、特に譲渡とかの取り決めをしてない状態でプルリクエストをどんどん受け付けると、ライセンスを例えばMITから独自のものに変えようみたいな話が出たときに全著作権者にコンタクトを取って了承を得なければいけなくなるのか、なるほどなー"
- Kazuho Okuさんのツイート: "著作権譲渡契約(CLA)がなくてcopyright書き換えられたのなら文句言うの分かるけど、CLAがあるのにsquash mergeのオーサー欄がとか言われるの辛い。そんなに自分の名前載せたいならCLAがあるプロジェクト避ければいいのに、と正直思います"
- Kazuho Okuさんのツイート: "なお僕はCLA嫌いです"
- Kazuho Okuさんのツイート: "実務的な話をすると、squash mergeをする場合というのは、複数人の変更を単一のコミットに変換するというケースが当然に想定されるわけで、その際、CLAで著作者の表示が不要であるにもかかわらず著作者の確認を行わなければならないとなると、作業上の負担が大きくなります"
- Kazuho Okuさんのツイート: "僕は 1) @mattn_jp さんの気持ちはわかる 2) MSのやり方が間違っていたわけではないし、実務上のメリットもある(https://t.co/NAYpIxbEAH) 3) である以上、謝罪と修正を要求すべき問題ではない という認識です"
- Kazuho Okuさんのツイート: "「僕はこうしてほしい」という希望を伝えるのはもちろんいいんだけど、どっちが正しいとか間違ってるとかそういう問題ではないということ… "
商標権
- Kazuho Okuさんのツイート: "商標権は製品の識別を保護するものだから、ソフトウェアやサービスとして商標登録がされているものを紹介する「書籍」を出したとしても商標権侵害にはならないんじゃないの? 教えて偉い人 / “ライセンスからみたOSSの商業出版の話。 -…” https://t.co/Q3qvGRmgek"
- ライセンスからみたOSSの商業出版の話。 - @rdlabo
- 成瀬さんのツイート: "その通りで、「商標的使用」じゃないので侵害にはなりません… "
OSSライセンスの教科書
- もうすぐ夏休み終わりさんのツイート: "OSSライセンスの教科書買ってきた。 JSONライセンスを実務上当然認めるべき、という主張には断固としてNoと言いたい。理解しかねる"
- まさみさんは語りたいさんのツイート: "JSONライセンスの言うEvilかどうかって主観的だし、ソフトウェアというツールを作った時点では保証しかねる。例えばカワンゴのOP53Bに利用されたらどうするか。これはインターネットの自由にとってはEvilだが、カワンゴにとってはGoodなのである。要するに確信犯に対しては全く意味がない。"
- まさみさんは語りたいさんのツイート: "その上意図的に差別的に自由を侵害しているのでフリーソフトウェアライセンスとしてもダメっていうね。似たような話にNihon Linuxで起きたGGPL騒動がある。 https://t.co/9XATNlB83S"
- nihonLinux - Wikipedia
- まさみさんは語りたいさんのツイート: "JSONライセンスよりGGPLの方が日本ローカルで騒動に面白みが会って良いんだけど、如何せん2002年のことだからみんな忘れちゃってるんだよなあ。"
- まさみさんは語りたいさんのツイート: "実務的に見てJSONライセンス使ったソフトウェアがあったとして、製品に使えるかどうかと言うと、製品がevilな使い方をされるはずはないから使っていいことになるのではないか?ただ、巡り巡って偵察兵器に使われる可能性は無いといえないが、ライセンス受けた時点で判断はできないよな。"
- まさみさんは語りたいさんのツイート: "後になって著作権者から、「それは俺にとってevilだ」とか言われたら著作権違反で訴えられる可能性もあるから、やはり判定に主観が入り込む可能性があるのは実務的にも無理だな。"
- まさみさんは語りたいさんのツイート: "これと全く同じ状況に陥るのは、ライセンスが付いてないソフトウェアね。誰かが書捨てたコードはすごく危うい。しかしそういうのを考えないで依存関係で勝手に使われるものもあるからなあ。"
- もうすぐ夏休み終わりさんのツイート: "全くそうです。Evilな人はそもそもライセンスなんて無視するから意味ないんですよ… "
- まさみさんは語りたいさんのツイート: "オープンソースの皮をかぶったハニーポットトラップ、というのも実は存在しうる。"
- もうすぐ夏休み終わりさんのツイート: "JSONライセンス大喜利〜 アジアの某大国では顔識別ソフトで人民を監視している。さて、この顔識別ソフトにJSONライセンスが使われていた場合、これはライセンス違反であると言えるか?違反である・違反ではない、それぞれに根拠を述べよ… "
スタックオーバーフロー
- κeenさんはTwitterを使っています 「スタックオーバーフローの問答はクリエイティブコモンズのなんかのライセンスで自由に使えたはず。あれを勝手に自動翻訳したサイトを作るのはライセンスの範囲内。問題なのはそれを上位に出すサーチエンジンの方では」 / Twitter
- κeenさんはTwitterを使っています 「> 2018-05-02 (UTC) 以降に投稿されたコンテンツは、CC BY-SA 4.0 の条件に基づいて配布されます。 投稿した内容のライセンスは? https://t.co/Lz5qMSG7Qm」 / Twitter
- 投稿した内容のライセンスは? - ヘルプ センター - スタック・オーバーフロー
- Makoto Kato ︎︎さんのツイート: "OSSってのはソースコードを公開するということがOSSじゃなくて、コードのコントリビュートや意見が開かれているということに使うべきだと思ってるんだよね。zlibとかその点ダメな部類だけど"
- まさみさんは語りたいさんのツイート: "OSSによらず、ソフトウェアのライセンスの話は、プログラミングを小学生から教えるのならば、リテラシとして扱わねばならない話なんですよ。これだけ気軽にweb上に文書を公開できるなら、著作権の知識がリテラシであるように。"
- まさみさんは語りたいさんのツイート: "何かを表現する権利とそれに付帯する注意点は、その表現方法の知識と、本来であれば表裏一体であるべき。これは道徳なんかより遥かに重要。"
- まさみさんは語りたいさんのツイート: "未だに読み書き算盤から基本のリテラシが進歩していないことが、日本の教育の問題だと思う。識字率が高いけど、バランスのいい互恵権利意識(fairness)の普及率はどうだろうか? 社畜の問題も、男女格差の問題も、OSSフリーライドの問題も、同根なのではないか。"
- まさみさんは語りたいさんのツイート: "道徳はそれを書いた人間や文化を背景にした「善悪」を教える教科なので、ここで言いたいfairnessとは真逆ですね。一方が善きことと思っても、他方はそう思わないかもしれない。これだけだと文化を同質に保つ事は出来ても、異文化との交流にとっては障害になります。… https://t.co/DFJPxQjwM9"
- ところてんさんのツイート: "超かっこいいEULAだ。そりゃー同意するよ。… "
- まさみさんは語りたいさんのツイート: "Copyright表記のオリジナル年と名前以外の部分については、つまり更新年のところについては不要な表記なので著作物の一部とみなせるので、つまりそこだけを毎年書き換えても、更新年記述の更新があったことを更新とみなせるから嘘は書いていないことになる。"
- まさみさんは語りたいさんのツイート: "ExFATだ。間違えた。ちなみにExFATのページにはまだ「製品適用にはMSの特許ライセンスを必要とする」旨書かれている。 https://t.co/Gsv0lRDAiA"
- まさみさんは語りたいさんのツイート: "MSがOINに提供したパテントにはexFAT関連の特許は含まれていないが、彼らの「善意の兆し」があるのだろうと期待してSoftware Freedom ConservancyがMSに話をし始めたようだ。 https://t.co/pj22b4ImKy"
- Shinji Konoさんのツイート: "マイクロソフトって「特許で訴えない契約」を強要してた会社なんだよな。結局、特許はクロスライセンスで相殺される方向。薬でも特許が切れるのを待つ的なところがあって。"
- 傳智之さんのツイート: "“知的財産権は,もともとイノベーションを促進するための手段ではある(「保護してあげるから,みんなに公開してくださいね」というのが知財だ)。でも,欧米日の先進国ではそれがいまや,既得権益の保護に使われるだけになっている。” https://t.co/DyBFWEerTC"
- henrichさんのツイート: "TechcrunchのMongoDB記事、タイトルから妙な匂いだなと思ったらやっぱりのhiwa案件(viewが増えてもアレなのでリンクなし)。MongoDBは風評被害で訴えてもいいと思うよ…あと本家Techcrunchのライターも。"
- まさみさんは語りたいさんのツイート: "マイクロソフト、Linuxをめぐる特許戦争で「休戦」の真意 @wired_jp https://t.co/Z2fOfGDJE1 まだだ、exFatが含まれていない限り、見せかけだけに過ぎないよ。"
- Thoughts on Microsoft Joining OIN's Patent Non-Aggression Pact - Conservancy Blog - Software Freedom Conservancy
- マイクロソフト、Linuxをめぐる特許戦争で「休戦」の真意|WIRED.jp
- Hideyuki Tanakaさんのツイート: "わかっててBSDとかMIT採用してたんじゃなかったのか。やっぱストールマンの言ってたことは正しかったんだなあ(´・_・`) / “redismongodbkafkaaws.html” https://t.co/VI6EnMNvCC"
- Hideyuki Tanakaさんのツイート: "オープンソースなんか広まったらソフト産業死ぬぞ ↓ これからはサービスで儲ける時代。ライセンスも緩くていいぞ。まだこの時代に適応できてへん企業おる? ↓ 結局IaaS持ってるとこしか儲かんないじゃん… ↓ 謎ライセンスでクラウド業者の利用を縛るぞ!フリーライドは許さん! (´・_・`)"
- henrichさんのツイート: "ふむ。『「今更聞けないシリーズ」にOSSの利用に関する法的リスクや係争事例の紹介およびOSSライセンス違反を生じさせないための基礎的な知識の解説が掲載されました。』 https://t.co/0QNkSNSCa1"
- κeenさんはTwitterを使っています 「著作権にあまり詳しくないので他人のコードの一部を拝借してきたときにどういう著作権表示したらいいのかよく分かってない。 元がMITライセンスとかならLICENSEファイルもってきてauthorに自分加えればよい?」 / Twitter
- よんたさんはTwitterを使っています 「@blackenedgold わからないのわかる。「一部のコードはこのかたのでライセンスはこれだよ」みたいな説明もあると良さそう。ライセンス表記をするヘルプ項目いれたり、他の人のコードとライセンスでディレクトリ切ったり、ソースコードコメントに書いたりかなあ。引用サイズによる。」 / Twitter
- ドッグさんはTwitterを使っています 「Rust の標準ライブラリのソースコードを使う場合,ライセンスは Apache 2.0 か MIT だけど,Apache 2.0 で取り込んだソースを大きく変更したら変更内容を書く義務があるのか」 / Twitter
- NPRさんはTwitterを使っています 「Just in: The U.S. Supreme Court, in a 6-2 opinion, found that Google’s use of Oracle's lines of code when creating its Android operating system constituted “fair use” under the copyright laws.」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「今回のグーグルvsオラクル著作権訴訟の米最高裁判決は、API以外の用途(同人等の二次創作含む)にも影響がありそうというスレ」 / Twitter
- Charles DuanさんはTwitterを使っています 「Wow--SCOTUS doesn't just rule in favor of Google in @googlevoracle, but says that API reimplementation is fair use *as a matter of law*, meaning that the decision applies to all APIs https://t.co/AwRBGtZ5Pp」 / Twitter
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「パブリックドメインのような法的解釈とかではなくオープンソースの定義の自由的にも自由/フリーの4条件にも反する形でオープンソースではなくなったソフトウェア/ライセンスを何と呼ぶか?単純な話でプロプライエタリと分類している。」 / Twitter
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「オープンソースにしたいけどこれが困るので一部制限かけます、というのは大昔からプロプライエタリと呼んでいる。気に入らない何かを差別するライセンスはその時々の時代の情勢で出現するので珍しいことではない。」 / Twitter
- tenpoku1000/tenpoku
- tenpoku1000/int_calc_compiler: WebAssembly を中間言語に採用した、32 ビット整数式の x64 JIT コンパイラ
- Github新项目快报(2018-11-26) - 《统计学习方法》的代码实现
- tenpoku1000/first_follow_set: C 言語で文法の First 集合と Follow 集合を出力するサンプルコード
- tenpoku1000/OPML_bookmarks: コンパイラ・IDE・OS・VMM・IME の開発のための OPML・ブックマーク HTML ファイル
- tenpoku1000/jp-books: コンパイラ・IDE・OS・VMM・IME の開発のための和書
- tenpoku1000/Chocolatey.pkg.config: Chocolatey パッケージマネージャの pkg.config XML 設定ファイル
- tenpoku1000/.atom: テキストエディタ Atom の設定ファイル
- tenpoku1000/test: テスト用リポジトリ
- tenpoku1000/windbg_logger: カーネルデバッグ中の Visual Studio 内蔵 WinDbg の通信内容を記録するアプリケーションとデバイスドライバです。
- visualstudio · GitHub Topics · GitHub
- 602+ Best Webassembly Open Source Software Projects
- 電子書籍: x64 UEFI 対応 OS 自作入門 https://tenpoku1000.gitbook.io/tenpoku-book/ | LaptrinhX
- Uefi_freetype_msvc
- 格安のトラックパッド付き無線キーボード – Boot macOS
- Linux - PCのVRAMに直接アセンブリ言語でデータを書き込む。|teratail
- linux - write data in assembly language directly to pc vram
Help
- GitHub.com Help Documentation
- Creating a commit with multiple authors - GitHub Docs
- GitHub Deceased User Policy - GitHub Docs
- ブランチの自動的削除を管理する - GitHub Docs
Git
その他
cherry-pick
- 4. cherry-pick【チュートリアル3 コミットを書き換えよう!】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
- cherry-pickコマンド備忘録 - Qiita
- git cherry-pickで特定のコミットのみを適用する| Gitテックラボ | [Smart]
- SourceTreeでgit cherry-pickを使う | アライドアーキテクツ エンジニアブログ
- [git]複数のcommitをまとめてcherry-pickする - dackdive's blog
reflog
- いざという時のためのgit reflog - Qiita
- `git reflog` についてまとめてみる
- Git - git-reflog Documentation
- [git]git reset を取り消す(git reflogの使い方) - dackdive's blog
- 【翻訳】Gitで様々なUndoを行う方法 - はらへり日記
- Git/git reflog (git resetを取り消す) - yanor.net/wiki
- Git Undo エイリアスを定義する | POSTD
- git log - What's the difference between git reflog and log? - Stack Overflow
docx
- 渋川よしきさんのツイート: "gitの内部構造的に、バイナリファイルの過去のすべてのバージョンをgzipしてローカルに保存していくのと変わらないので、これやるとgit clone数時間みたいなリポジトリができあがる。zipされているxlsxはgzipしてもファイルサイズほとんど変わらないし。git LFSはわかっている人じゃないと/でもつらい… https://t.co/mYRLJW2HP3"
- アーさん@疾風の雑魚プログラマさんのツイート: "WordやExcelが内部的にGit対応を行い、ファイルを保存すると自動的にGithub上のリポジトリにPushされるようになり、世界から日付管理されたExcelファイルを撲滅することができた日には、後世までMicrosoftを称える準備がある。"
- Arseny Tolmachevさんのツイート: "今でもできますけど https://t.co/Cl9b1IPGqV… "
- Gaelan/WordGit: Git diff and merge on Word docs, using Word's native support.
- TortoiseGit/contrib/diff-scripts at master · TortoiseGit/TortoiseGit
- 渋川よしきさんのツイート: "git、正確にはバイナリdiffで保存する仕組みはあるんだけど、まあそれが発動するときはgit gc起こりまくりの極限状態なことが多いはずで、ストレスフルなのは変わりない。"
stgit
- stgit Tutorial - エンジニアきまぐれTips
- まさみさんは語りたいさんのツイート: "stgit使ってるからなあ・・・… "
- Masaki Haraさんのツイート: "アンケート: gitでブランチを切り忘れてmasterにコミットしてしまったとき 1. masterをtopicにリネーム 2. topicにコピーしてmasterに戻ってreset 3. resetしてtopicを作って再コミット 4. その他"
- まさみさんは語りたいさんのツイート: "stgitのあかん所、CC: stableに # が使えんのじゃー。"
- ~/.gitignore_global を指定するのをやめ、デフォルトの置き場に置こう
内部構造
- Amazon.co.jp: エンジニアのためのGitの教科書[上級編] Git内部の仕組みを理解する eBook: 河村聖悟: Kindleストア
- Git の仕組み (1) - こせきの技術日記
- やさしいGitの内部構造 - yapcasia2013
- 内部構造から見るGit - Qiita
- Git の内部データ構造 - SSSSLIDE
- Git の内部構造を知っていたら、リモートリポジトリへアクセスできないホストへ差分を適用できた話(実話) - Qiita
- Gitのリポジトリの中身をなるべく正確に理解する | To Be Decided
- Git のコマンドだけでなく、その仕組みを学ぶ
- Gitの基礎知識をまとめたよ - tasuwo blog
- Gitを支える内部構造についての話 - Timers Tech Blog
- 「GitHub トレーニングチームから学ぶ Git の内部構造」のノートです。 曖昧なところもあるので、間違いがあったら教えてください! http://connpass.com/event/3808/
- Gitレポジトリはパッチの集積ではなくてスナップショットの集積である。 · DQNEO起業日記
- [Git].git/indexのデータ構造を詳しく調べてみた · DQNEO起業日記
- git graphを使ってターミナルで Git のツリー構造を表示する | ワードプレスのホームページ制作|新宿区のフリーランスWeb制作 ピクセルデザイン
- » Gitの最低限必要な基礎知識
- 参加レポート【GitHub トレーニングチームから学ぶ Git の内部構造@名古屋】 - ton-tech-ton
ProjFS(GVFS)
- WalkingCatさんのツイート: "it looks like GVFS (Git Virtual File System) has been renamed to ProjFS🧐"
- GVFS: Git at Enterprise Scale
- Microsoft/GVFS: Git Virtual File System: Git at Enterprise Scale
- GVFS/Protocol.md at master · Microsoft/GVFS
- Releases · Microsoft/GVFS
- RavenFile | Windows Weekly 558: 150 Bottles of Ranch Dressing on the Wall
- 米Microsoft、Gitリポジトリのファイルシステムを仮想化する「Git Virtual File System」を公開 | OSDN Magazine
- Makoto Kato ︎︎さんのツイート: "SDのレポジトリにはSLM時代 (Windows 2000 RTMまで)のデータ入ってないから、言ってること間違ってるよ。 https://t.co/Yms96KiRhz"
- 大規模リポジトリの問題を解決するGit Virtual File System
- Gitのスケーリング(と、その背景) | プログラミング | POSTD
- SATO Naoki / さとうなおきさんのツイート: "WindowsのソースがGitに移行。350万ファイル、300GB、開発者4,000人、1,760デイリービルド。GVFSのおかげ。 The largest Git repo on the planet https://t.co/22nMZ9j6OH"
- The largest Git repo on the planet | Brian Harry's blog
- MicrosoftがWindowsのコードリポジトリをGitに移動
- 「Windows」開発にもオープンソース浸透--変わりゆくマイクロソフトの現場 - ZDNet Japan
- Microsoft、Windowsの開発におけるGitの活用状況を説明 | マイナビニュース
- Where is GvFlt filter driver source code? · Issue #5 · Microsoft/GVFS
LFS
- 大容量ファイルもGitで管理。 Git LFSの使い方
- git-lfs/docs at master · git-lfs/git-lfs
- 過去のコミットでgit LFSを使うように歴史改変をする - 簡潔なQ
- すらりん日記 » Blog Archive » Git LFS を使ってみる|No:4390|すらりん日記
- 渋川よしきさんのツイート: "git lfsのファイルロックの仕様がわからん。.git/lfs/lockcache.db というファイルができる。ロック・アンロック時にHTTPのリクエストをサーバーに飛ばしている。リモートとローカルというモードがありそう。わからん。"
- 渋川よしきさんのツイート: "で、これロックしたところでだれがこの状態を見て「このファイルを編集しちゃダメだよ」って言ってくれるのか。そしてどうやってリモートとこのステータスを共有するのか。"
- 渋川よしきさんのツイート: "なるほど。lock対象にすると全部がreadonlyになるのか。"
- 渋川よしきさんのツイート: "あーわかった。積極的にはロック情報を取りに行かないのかもしれない。"
- 428Hさんのツイート: "git-lfs が 2.x だと認証を拾ってくれない気がする。 1.5.6 だとすんなり通る。 たぶんこれと同じ症状。 https://t.co/F946bdlsNZ"
- Git LFS on Windows requires credentials to be cached · Issue #1763 · git-lfs/git-lfs
- fu-jinさんのツイート: "git lfsは失敗する。というかもう失敗に終わった感がある。… "
- squirrelsさんのツイート: "この間ついにsouce treeが見限っていたような。 本家がバグありのまま更新止まってたしね。… "
- beepcap@エビからくり民(成年済)さんのツイート: "git lfsはそのアイデアが出回り始めた頃は期待してた。 まさか、lfsを追加してないgitからpushするとリポジトリ全体が崩壊するとは思わなんだ"
gitattributes
- .gitattributesをいじって特定のファイルをgithubのPRのdiffの対象から外す方法のメモ - podhmo's diary
- Customizing how changed files appear on GitHub - GitHub Help
gitignore
- Git - gitignore Documentation
- github/gitignore: A collection of useful .gitignore templates
rebase
- あのコミットをなかった事に。git rebase -i の使い方 – karakaram-blog
- git svn rebase で conflict したときの解消手順 - 日曜プログラマがダラダラ書く
- Esewvi LoveさんはTwitterを使っています 「git squashとrebaseでいつもハマって、めんどくさいからgit push -f でごまかす」 / Twitter
- yoh2さんはTwitterを使っています 「せめて --force-with-lease にして😖」 / Twitter
filter-repo
- git filter-repoってなんぞ - Qiita
- Gitの履歴のメールアドレスを一括変更 (git-filter-repo) - Qiita
- git-filter-repo/INSTALL.md at master · newren/git-filter-repo
- newren/git-filter-repo: Quickly rewrite git repository history (filter-branch replacement)
- git-filter-repo(1)
switch/restore
- git checkout の代替としてリリースされた git switch と git restore - kakakakakku blog
- Git 2.23.0のswitchとrestoreについて - DEV
- git switchとrestoreの役割と機能について - Qiita
- Git - git-restore Documentation
- Git - git-switch Documentation
- Git - Gitの基本
git worktree
- git worktreeを使ってみる - Qiita
- ブランチの切り替えをしなくてよくなるコマンド git worktree がすごい! - Qiita
- 複数ブランチの同時並行作業にはGit Worktreeを - astamuse Lab
- git worktree についてのメモ - Webdelog
- worktree - [Reference/Git] ぺんたん info
- git worktreeで複数ブランチを並行させて作業する - いろいろ備忘録日記
- git-worktree を使って時間のかかる処理を別の作業ディレクトリで行う - アジャイルSEの憂鬱
- Goリポジトリでgit worktreeは使えるか. gitの比較的新しい機能としてworktreeがあります。普段利用する機会はなか… | by Masaki Yoshida | Medium
- ワークツリーとインデックス|サル先生のGit入門【プロジェクト管理ツールBacklog】
- まさみさんは語りたいさんのツイート: "この問題、実は切実。確かにある程度のgotoはレビューしやすい差分ができるのでwelcomeなんだけども、後で最適化のためのパッチも作って欲しい。… "
- Urabe, Shyouheiさんのツイート: "個人的には「diffが小さくなるから」という理由によりgit以降でgotoは復権しつつあると肌感覚で感じるんだけど、どうなんだろうな。ちゃんと調査してみると面白いかも"
- まさみさんは語りたいさんのツイート: "個人的には原則として、機能追加とコードの最適化は別パッチにして欲しい。但し機能追加が完全な関数実装の変更を伴う場合は一緒にして欲しい。この当たり微妙な書き方だけど・・・。"
- まさみさんは語りたいさんのツイート: "あー、splitdiffはhunkレベルに分割してくれないのか・・・。"
- まさみさんは語りたいさんのツイート: "git add -pで手動でhunkに分けながらcommit"
- まさみさんは語りたいさんのツイート: "どうもkconfigに怪しい所があるのでうまく行くパターンと行かないパターンをgitに放り込み、hunk毎に別コミットにした上でgit bisectしつつカーネルビルドとテストを繰り返している。"
- まさみさんは語りたいさんのツイート: "gitのデータベースだけシンボリックリンクにして、複数の異なるバージョンをチェックアウトできないだろうか・・・。"
- Hiroaki Nakamuraさんのツイート: "git worktreeというサブコマンドで出来るらしいですよ。 https://t.co/IBtaqaj1gv… "
- Multiple working directories with Git? - Stack Overflow
- Hiroaki Nakamuraさんのツイート: ""Git - git-worktree Documentation" https://t.co/PuTHA6F6Dj さっきまでこれ知らなくて、gitの複数ブランチを並べて見たいときにgitのワークスペースディレクトリをまるごとコピーして片方ブランチ切り替えとかやってたんですが、これを使えばさくっと出来たんですね。"
- Git - git-worktree Documentation
- まさみさんは語りたいさんのツイート: "カーネルのgitが4つぐらい入っていて無駄すぎたので助かる。"
blog
- cron から自動で git push する [Tipsというかメモ]
- git pushで本番環境に“自動デプロイ”できる環境を作ってみよう! | vdeep
- gitのコミットの記法 - Fixstars Tech Blog /proc/cpuinfo
- git grep を使う - Fixstars Tech Blog /proc/cpuinfo
- Github を Windows で利用する(Git GUI編): 小粋空間
- git入門 (全22回) - プログラミングならドットインストール
- Gitで特定のcommit idを指定してcheckoutする方法
- Git で現在チェックアウトしているコミットのID | そんなこと覚えてない
- Gitのインラインdiff (word-diffの進化型) - quattro_4's diary
- TortoiseGit で git add -p 相当できた
- Gitのdiffで差分の場所をメソッド/関数名で表示させる - 理系学生日記
- GPG鍵を作って運用し、Git(hub)やMercurialで自分が書いたコードに署名をする - kuenishi's blog
- Windows 10の開発環境を整えた - YAMAGUCHI::weblog
- 本の虫: gitの10周年を記念したLinus Torvalsへのインタビューの翻訳
- Git 2.x シリーズの 6 つの素晴らしいフィーチャー | Atlassian Blogs
- Gitのリモート操作を5倍から50倍高速化するには | Yakst
- ブランチ、タグを指定してgit cloneする|DIGITAL SQUADブログ
- 「新機能作成時に開発ブランチに細かくmergeしていく戦略」について社内勉強会で発表しました - Hatena Developer Blog
- apt-get upgrade gcc considered harmful - NyaRuRuが地球にいたころ
- 本の虫: git submoduleを含むレポジトリをGitHub Pagesで公開するときのsubmoduleのURLはhttpsでなければならない
- Kazuho's Weblog: Git で全ブランチから検索
- 本の虫: GCCのgit移行が難航中
- gitのrebaseでsquashをワンライナーで | κeenのHappy Hacκing Blog
- globalのgitignoreの設定をdotfilesでやるようにした - 脱力系日記
- gitでアレを元に戻す108の方法 - TIM Labs
- git logでソースのdiffを見る - 誰にも見えないブログ
- bare repositoryの初期化時に入り込んだ余計なファイルの削除 - 誰にも見えないブログ
- commitとpushしかできない人のためのgithubの使い方まとめ - Just $ A sandbox
- 過去の Git コミットのコミッタを変更するには - Corredor
- Kazuho's Weblog: git blameでプルリクエストの番号を表示する
- gitで2つのリポジトリを混ぜる戦略を考える - golden-luckyの日記
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「強制的に共有させるような仕組みを作るとセキュリティー上の問題も発生するだろうし、これくらいが落とし所なんだろうなぁ / 1件のコメント https://t.co/TPYdzttmoN “チームで共通のフックスクリプト(Git hook)を使っています - ファーエンドテクノロジー株式会社” https://t.co/VAsGejhr9v」 / Twitter
- チームで共通のフックスクリプト(Git hook)を使っています - ファーエンドテクノロジー株式会社
News
- “master”は不適切? デフォルトブランチ名の変更に対応した「Git for Windows」v2.28.0 - 窓の杜
- 「Git for Windows 2.29.0」が公開 ~セットアップ時にデフォルトブランチ名を設定可能 - 窓の杜
- プログラムの実行時間を99%短縮した「たった1行のコード」とは? - GIGAZINE
- 「Windows Terminal」「Sublime Text 4」連携を追加した「Git for Windows」v2.32.0 - 窓の杜
infoQ
- Facebookの大規模で高速なリリース方法
- Git2.17は移動したコードに対する差分表示やオブジェクト検索機能が向上した
- Git 2.18がGitプロトコルバージョン2のサポートを追加
- diff, branch、grepなどが改善されたgit 2.19
- ワークフローとパフォーマンスを改善したGit 2.20
- トポロジの保存とインタラクティブなりベースが可能になったGit 2.22
- MicrosoftがWindowsのコードリポジトリをGitに移動
- Git 2.26でプロトコルバージョン2がデフォルトに
- Git 2.29でSHA-256の実験的サポートを導入
OSDN
- 分散バージョン管理システムGitの使い方入門 | OSDN Magazine
- Gitを使いこなすための20のコマンド | OSDN Magazine
- Git 2.10リリース、表示の改善や細かい設定強化などが行われる | OSDN Magazine
- 「Git 2.9」リリース、「git diff」や「git log」での表示変更などが行われる | OSDN Magazine
- 「Git 2.8」リリース、「CRLF」改行コードへの対応強化や細かい機能追加などを含む | OSDN Magazine
- 「Git 2.7」リリース、多数の機能強化などが行われる | OSDN Magazine
- 「Git 2.6」リリース | OSDN Magazine
- 「Git 2.5.2」リリース、軽微な修正が中心のメンテナンスリリース | OSDN Magazine
- 「Git 2.5」がリリース | OSDN Magazine
- 「Git 2.3.3」リリース、バグ修正が中心のメンテナンスリリース | OSDN Magazine
- 「Git 2.3」がリリース、リモートリポジトリ側でチェックアウトしされているブランチへのプッシュが可能に | OSDN Magazine
- 「Git 2.2」リリース、細かな機能強化や性能改善が行われる | OSDN Magazine
- ワークフローを強化した「Git 2.1」がリリース | OSDN Magazine
- 1.9系のメンテナンスリリース「Git 1.9.1」がリリース | OSDN Magazine
- 分散バージョン管理システム「Git 1.9」が公開 | OSDN Magazine
- 分散バージョン管理システム「Git 1.8.3」がリリース | OSDN Magazine
- 認証ヘルパ機能や細かい機能強化が加えられた「Git 1.8」がリリース | OSDN Magazine
- 「Git 2.14」リリース、細かな変更が多数加えられる | OSDN Magazine
- 「Git 2.16」リリース | OSDN Magazine
- 「Git 2.17」が公開 | OSDN Magazine
- 「Git 2.19」リリース | OSDN Magazine
- 「Git 2.20」リリース | OSDN Magazine
- 「Git 2.21」リリース | OSDN Magazine
- 「Git 2.22」が公開 | OSDN Magazine
- 「Git 2.23」リリース、「git switch」や「git restore」コマンドを実験的に導入 | OSDN Magazine
- 「Git 2.24」公開、複数の新機能が導入される | OSDN Magazine
POSTD
- コードの半減期とテセウスの船 | 開発手法・プロジェクト管理 | POSTD
- モノリシックなバージョン管理の利点 | プログラミング | POSTD
- GitトラブルをGetしてしまったら:バージョン管理のお話 | POSTD
Qiita
- gitでシンプルなデプロイ環境を作る - Qiita
- AdventCalendar - git bisect で問題箇所を特定する - Qiita
- Git blameを使って効率の良い犯人探し(w - Qiita
- インデントコミットで真犯人がわからなくなった場合の git blame - Qiita
- 気をつけて!Git for Windowsにおける改行コード - Qiita
- Git コマンドまとめ - Qiita
- Gitでやらかした時に使える19個の奥義 - Qiita
- detached HEAD から脱出する方法を git の内部構造から探る - Qiita
- gitで文字列検索、git grepとgit log -Sがとっても便利 - Qiita
- git grepでディレクトリを限定して検索 - Qiita
- git diff -bとgit diff -wの違いを調べた - Qiita
- git-lfsでコンフリクトしたらどうなるか - Qiita
- Git リポジトリの内容を zip ファイルにする - Qiita
- 【Git】ブランチの切り替えとかプルとか出来ないときの対処法 - Qiita
- 基本的なGitコマンドまとめ - Qiita
- ブランチ切って更新してマージするまでの流れ - Qiita
- git configをプロジェクトによって使い分ける - Qiita
- GitでVisual Source Safeの使い勝手を再現する!ロック機能 - Qiita
- gitのremote urlを変更する(レポジトリ移行時) - Qiita
- git tagの使い方まとめ - Qiita
- Git リポジトリに上がっているファイルを履歴ごと消すには? - Qiita
- Githubのリポジトリからファイルを削除 - tanaka's Programming Memo
- git最強のオプション filter-branch - Qiita
- Git ファイルの履歴を完全に削除する
- あのコミットをなかった事に。git rebase -i の使い方 | karakaram-blog
- git reset --hard の復元 - Qiita
- まだ git push origin するときに current branch 名を入力して消耗しているの? - Qiita
- Git で変更を patch ファイルにする / patch コマンドで適用する - Qiita
- [git reset (--hard/--soft)]ワーキングツリー、インデックス、HEADを使いこなす方法 - Qiita
- [git]マージ時のコンフリクトで片側の変更だけ適用する方法 - Qiita
- git tagの使い方まとめ - Qiita
- GitコミットメッセージにMarkdownを使えるようにする - Qiita
- Gitで日本語長文のdiffをとる方法 - Qiita
- Git Subtree 事始め - Qiita
- git-subtree移行メモ - Qiita
- git format-patchなどで複数のコミットを別のリポジトリーに変換して移植する - Qiita
- GitHub Desktopで新規リポジトリ作成後、Push/Pull/同期エラーが出たときの対処 - Qiita
- GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~ - Qiita
- git gcの限度設定 - ゲームエンジニアな日々
- git fetch の裏側では何が起こっているか - 詩と創作・思索のひろば
GitHub
- Setting your username in Git - User Documentation
- Setting your email in Git - User Documentation
- Taeung/git-training: Don't think about git, just do git
- rgburke/grv: GRV is a terminal interface for viewing git repositories
- 瑣末u 🗹さんのツイート: "javascript実装のgit。ほう。ブラウザでも動作 / “isomorphic-git · A pure JavaScript implementation of git for node and browsers!” https://t.co/RSQhQv23Rq"
- isomorphic-git · A pure JavaScript implementation of git for node and browsers!
- isomorphic-git/isomorphic-git: A pure JavaScript implementation of git for node and browsers!
Twitter
その他
- Ryou Ezoeさんのツイート: "非プログラマーのためのgit入門書、割と切実に啓蒙のために出版されてほしいし、実際私が書いてもいいんだけれど、gitを効果的に使うためには、プレインテキストで書く、CLIツールを使うといった作業も出てくるので、果たしてこれをどうすればいいのか。"
- にゃおきゃっとさんのツイート: "git diff で --color-words オプション付けると単語単位でdiffしてくれるのか!!!!めっちゃ便利!!!!!行単位じゃないから本当に変更点だけが分かりやすく出る!!!!もっと早く知りたかった!!!!"
- くまぎさんのツイート: "ふははは、貴様には git submodule init --update git submodule update --init のどっちが正しいか定期的にわからなくなる呪いをかけた。"
- なかのん&マジックさんのツイート: "バージョン管理システムってGUI化すると面倒すぎて使えたものではない印象がある。基本的には各アプリがそういう機能を内蔵するなり、連携するなりして自動化しないとあかんのだろうなと(そして意味が分からずに使ってもらえないオチ)。"
- 水島宏太さんのツイート: "実名は挙げませんが、プログラミング能力が高くて、コンピュータ・サイエンスの分野でとても高名な偉い人でもgitほとんど使えないか使いこなせない人ときどきいるんですよ。そういう人の肩の上に乗っている自覚があるので、たかがツール一つでそういった方々を馬鹿にするとか恐れ多くてできないです。"
- 水島宏太さんのツイート: "もちろん、情報系学生がgit触れないのが主題というのは理解してますが、git触れないこと程度のことを馬鹿にするってのはそういうのとたいして変わらないと思ってます。"
- qwerty2501さんのツイート: "git使ってるとここからここまでのcommitを一つにまとめたものを一つのcommitとして見れる単位が欲しくなる"
- vyv03354さんのツイート: "changesetのidは内容や更新日時などをもとに生成される(改竄防止の為) その情報の一部として「親changesetのid」も含む(途中だけ差し替える攻撃を防ぐため) なので途中を変えるとそれ以後も必然的に再計算が必要 gitも同様の仕様だったはず。分散バージョン管理では避けようがないのでは… https://t.co/t7AbIGY9ON"
- ドッグさんのツイート: "Git で 4b825dc642cb6eb9a060e54bf8d69288fbee4904 は特別なコミットハッシュで,最初のコミットの前の空のツリーを指すというのを初めて知った"
- ドッグさんのツイート: "特別なコミットハッシュというか,空のツリーだから常に同じハッシュになると言ったほうが正しいのかな(よく分かってない)"
- クニワッさんのツイート: "そうだと思います。オブジェクトの型ごとに prefix がつくので、先頭に tree でバイト数でみたいな感じになりますが、後続の内容が空なので一意になるはずです。https://t.co/SnjiyWYkYF にわかりやすい作成方法が載ってました。… "
- Is git's semi-secret empty tree object reliable, and why is there not a symbolic name for it? - Stack Overflow
- ドッグさんのツイート: "分かりやすいリンクありがとうございます.なるほど,first commit のツリーの sha は空だから固定値になるけれど first commit オブジェクトの sha は他の諸々が考慮されて別の値になるという感じですね… "
- あずりえるさんはTwitterを使っています: 「検索すると色々なことができることがわかるが、如何せん難しすぎる。 (コミットメッセージを上書きする方法、リモートにあるブランチ名を強制的に書き換える方法、プッシュを取り消す方法など)」 / Twitter
- nhoriguchiさんはTwitterを使っています: 「リリース用のタグは git-tag -a オプションで annotate tag (タグオブジェクト) 付きにして、ちょっと仮のタグを打ちたいときは -a なしにするのがよくある運用じゃないかな。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「git の GUI frontend はボタンとかメニューには、(git xxx)の様に対応するコマンドを書いてほしい。何を言ってるのかわからんのじゃ。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Gitで、特定のコミットにおける特定のファイルの中身を表示する / 1件のコメント https://t.co/eIlTIibqL4 “git commands - How can I view an old version of a file with Git? - Stack Overflow” https://t.co/XvuO10xxR1」 / Twitter
- git commands - How can I view an old version of a file with Git? - Stack Overflow
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「git format-patch... まさに今欲しいコマンドじゃないか!」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「コミットをきれいにするために歴史を改変する文化はよくわからない。」 / Twitter
- tomoyaさんはTwitterを使っています 「違うちがう。本当に綺麗な人は、綺麗にしようとしてるんじゃなくて、息を吐くように普通にコミットしたら自然と綺麗になっているんですよ。生産性とか関係なく、単純にスキルレベルの話ですね。」 / Twitter
- yoh2さんはTwitterを使っています 「履歴をありのままに、それこそコミット直後の push 前に気付いた typo 修正のような fixup 的なものまで記録して、履歴の追いにくさははツールでカバーというのが理想なんだろうけどあいにくツールもそれを扱う人間もそこまで賢くないからまあまあ見れた形に直してる。」 / Twitter
- yoh2さんはTwitterを使っています 「あと、PR/MR 直前の rebase はそれとは違う理由でやってる。 コンフリクト起こしてるから直してと連絡受けて作業するのはロスがでかい。」 / Twitter
- ドッグさんはTwitterを使っています 「過去の履歴も含めて全てのテキストを git grep するには git rev-list --all と組み合わせれば良いのを知った https://t.co/N07vFEsV67」 / Twitter
- How to grep (search) committed code in the Git history - Stack Overflow
- Takashi KawasakiさんはTwitterを使っています 「gitの一番良いのは、とりあえず何も考えずにgit initしておけばいいということだと思う。」 / Twitter
- ぬるぽへさんはTwitterを使っています 「これ今更聞けないGit入門的な質問だと思うんですが、Gitってあるコミットのコミットハッシュが同じだったらそれ以前の歴史も全部常に同じだと言えるんですっけ?確かに昔の歴史書き換えたらそれ以降のコミットも書き換わりますよね普通」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@nullpo_head 同じですね」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「理解し難いのは、デフォルトでcloneが--recursiveになってないこと、そしてsubmoduleがdetachedになる事。僕に言わせれば、内部設計こそ良くても、UI設計では間違えられるところを全部間違ってる。」 / Twitter
blame
- SODA Noriyukiさんのツイート: "cvs には blame はなくて「cvs annotate」なんだけど、少なくとも1999年の10月には、NetBSD 関係の chat で「cvs annotate」のことを「cvs blame」と呼んでたし、解説されなくても意味が通りました。1999年10月はsvnやgit… https://t.co/ZqtuAGmtrV"
- _さんのツイート: "SVN も svn blame だけど、どこらへんに由来するだろう"
- SODA Noriyukiさんのツイート: "この辺の話は、オッサン達にはジェラルド・M・ワインバーグの「プログラミングの心理学」のエゴレスプログラミング関係の記述で広まってる。名著なので若者にも読んで欲しい(最近の版の翻訳の質について悪い評判があるのが気になるけど。昔の版だと訳者は別の方) https://t.co/Db45ZlpKc6"
- _さんのツイート: "ちなみに一連の blame についての話は SRE 本に `Best Practice: Avoid Blame and Keep It Constructive` という項目があったことで呟きました。人を blame するのはやめよう。… https://t.co/z0we6tGJCq"
- Atsushi EnoさんはTwitterを使っています 「質問の意図はよくわからないけどgit blameしたらcommit出てくるのでそこから辿って意図を調べるのには十分だったかな…コードに書いてあってもいいけど邪魔な時もあるしコメントが適切に更新されないこともある(そしてそれをコードレビューで検出するのはきびしみある)ので一長一短」 / Twitter
- qwerty2501さんはTwitterを使っています 「コードでなぜそうなってるか説明したいときにcommit logでその説明を書くって人にそれで開発ちゃんと回せるのか聞きたいんだけど だれに聞けばよいのだろう」 / Twitter
- qwerty2501さんはTwitterを使っています 「@atsushieno git blameだとcommit後にファイル内の別のところを変更してフォーマッタかけると影響でてそれをcommitしてしまうとcommit logが隠れてしまいますよね。 あとファイル移動してcommit前にそのファイルに更新かけてしまうとrenameじゃなくてdelete/addになってしまって後で追うのが難しくなるかなって」 / Twitter
- qwerty2501さんはTwitterを使っています 「@atsushieno それと単純にチームメンバーがgit の履歴見ない文化だったりするとなぜそうなってるかが伝わらずその後の改修に影響を与えるリスクがあると感じてるのでそういう場合もコメントに書いて見られないよりはマシな状態にしてます。 コメントメンテされないよねってのはそれはそう」 / Twitter
bisect
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「bisect がちゃんと機能するようにいい感じにコミットしてるの、えらい」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「コミット粒度の問題とか、開発ブランチで常にコンパイルが通るようにしておくとか、意識すべきことがそこそこある」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「より正確には「テストが実行可能なように」か」 / Twitter
- Miura HidekiさんはTwitterを使っています 「それ。あと、bisectがうまく動くようにテストが書いてあるってのも追加で」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「1st parentが常に本流だ、という運用ができない人に、mainブランチのコミット権限渡したらダメ」 / Twitter
- 非実在naka akiさんはTwitterを使っています 「そいや(よく知らんのだけど)、過去ブランチ(名)情報を消しちゃうgit文化だと、どの支流を辿るべきかを機械的に決定できる可能性がかなり減って、つまりbisectしづらい…ような気がするんだけど、違うんだろうか?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「コマンドラインからgit使うマンだけど、bisectはgit bisect使わずに手動でコミットチェックアウトしてコード動かすことのが多いな」 / Twitter
- 非実在naka akiさんはTwitterを使っています 「@kazuho あーそうやって判別してるんですね…。 mainかあ。俺よりエライ人が変なマージしない人だった経験が無い人生だったorz」 / Twitter
@fadis_
- Fadisさんのツイート: "gitに唯一guiが欲しくなる瞬間がある。大和西大寺駅みたいになったgit log --graphを目の当たりにした時だ"
- Fadisさんのツイート: "gitプロトコルv2: gitの通信は「通信路を確保する方法(http?ssh?)」と「通信内容の表現方法」の2層で構成されているが、後者についてGoogleが提案している新しいプロトコル。v2ではクライアントが関心の無いブランチをサーバでフィルタしてfetchできる。git-2.18から使える https://t.co/I1es9C2UOQ"
- Git Has A New Wire Protocol Yielding Much Greater Performance - Phoronix
- Fadisさんのツイート: "ローカルに転がっているgitリポジトリを今すぐgitwebで見たくなった時は、git instawebでgitwebを動かすためのhttpdが上がってきてブラウザが開いてそのリポジトリをgitwebで見れるようになる。git instaweb --stopしないとhttpdが上がりっぱなしになる https://t.co/3zqarBV1cR"
- Git - git-instaweb Documentation
- Fadisさんのツイート: "で、従来git instaweb時にgitが呼び出そうとするhttpdはapacheかlighttpdかmongooseかplackup(Perlモジュール)かwebrick(Rubyモジュール)だったけど、新たにPythonのモジュールhttp.serverにも対応したらしい https://t.co/lvKyQey3Z4"
- FadisさんはTwitterを使っています: 「gccのsvnからgitへの移行が今週末にも完了するらしい。gccのリポジトリをgitに移す試みは2018年からなされているが、20世紀から続く巨大な歴史相手に既存のツールではRAM 64GBでも足りずgcc移行ツールが新規に作られる、gitでの解釈が悩ましい歴史が発掘される等難航していた https://t.co/W7pmpA2kro」 / Twitter
- It Looks Like GCC's Long-Awaited Git Conversion Could Happen This Weekend - Phoronix
@shibu_jp
- 会社員さんのツイート: "@shibu_jp `git checkout -` で前のブランチに戻れますよ"
- 渋川よしきさんのツイート: "github、まちがって自分でマージボタンを押してしまって、revertコミットPRを作る機能を使ってもどしたんだけど、それだと最初に出そうとしたPRがマージ済みだと判定してしまうので再度PR出すのができなかった(ので歴史改変して完全になかったことにした)"
- 渋川よしきさんのツイート: "githubのsquash and mergeするとハッシュが変わっちゃう?git pullしてgit branch -dで消すときにハッシュが違うと、違うブランチ扱いになって強制削除じゃないとダメになるのかな・・・"
- INADA Naokiさんのツイート: "squash はまとめた別コミットを作るのでハッシュ変わりますね。1コミットだけのプルリクをハッシュ変えずにマージしたいなら rebase and merge 使うのかな。 master が1つでも進んでたら rebase もハッシュ変わるので、 -D になれるしか無いかと。… https://t.co/4OHb6teyDZ"
- INADA Naokiさんのツイート: "Github上でマージ後にプルリクのブランチを消して、git fetch methane --prune して、 deleted branch があったら git branch -v して git branch -D するという習慣を付けてます。もう少しうまくやりたい気持ちはある。… https://t.co/4YrVReKx3p"
- 渋川よしきさんのツイート: "git rebaseでコンフリクト →修正しているうちに乗ってきて、rebase中なのを忘れて作業してコミット(detachヘッダー発生) →git checkout →コミットが虚空に消える"
@msdmairitan
- Masaru Iritaniさんのツイート: "Windows ソースコードが Git に移行しました。計画を最初に聞いた時には夢物語のように思えましたが、日本の開発チームでもあっという間に Git が当たり前になったように感じます。 https://t.co/9ZYv3gvwRZ"
- Masaru Iritaniさんのツイート: "因みに Git の前は Team Foundation Server ですらなく、Source Depot と呼ばれる内製の集中型バージョン管理システムを使っていました。社外の豊富な情報が活かせるのも Git の大きな魅力です。"
- Masaru Iritaniさんのツイート: "GVFS で Windows のリポジトリを複製中です。Git が導入されてから開発ツールの更新も早くなったので、嬉しい反面追い付くのが大変です。"
@blackenedgold
- κeenさんのツイート: "コミット、ほぼ -mでやってる。むしろ複数行に跨らないといけないのはコミットが大きすぎるから分割しろって習った。"
- κeenさんのツイート: "そういえば世の中にはコマンドラインからgitを使わない人がいるらしいですねって言おうとしたけどgitって-m付けなかったらデフォルトでエディタが立ち上がるんだっけ。"
- κeenさんのツイート: "commit前にgit diff --cachedしてた"
@kazuho
- Kazuho OkuさんはTwitterを使っています 「規模というより、正確にはブランチの構成の複雑度によるんじゃないかなぁ。squashは特に、コミット粒度が大きくなって元の変更の意図が曖昧になるので、必然性がない限りやらないほうがいいと思う」 / Twitter
- はむこさんはTwitterを使っています 「色々言われて「大規模 OSS で cherry pick と revert がしにくくなるので、メンテナが泣いちゃう」は非常に理解できた。 僕も割と泣く係なんですが、隕石級確率の泣き案件のために、毎日の commit コストを上げるとのは、チーム全体の機動性が下がって生産性への影響があるかなというイメージでした。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「たとえば、なぜpr単位でcherry-pickしたいかっていうと、master以外にもリリース用のブランチが(場合により)複数あって、バックポートが大量にあるからなんだと」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「github flowで開発してる分にはrebaseもsquashもなくて大丈夫だと思う。first-parentだけ辿ることは大抵のgitコマンドで可能だし。フローが違うと、、、(ツイートはここで途切れている)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「PRレビューがしやすいように、PR作る段階でコミット群が汚いなら整理してもいいと思う。やっちゃダメなのは、PRレビューが始まった後にforce pushとかrebase。文脈が消える」 / Twitter
- Kazuho Okuさんのツイート: "まさか-mで一行コミットログとかしたことのない真面目クンなの???"
- Syohei YOSHIDAさんのツイート: "git commit -mでエディタを立ち上げないというより, みなさん git commit -vで差分を見ながらコミットメッセージを書かないのかしら ?"
- Kazuho Okuさんのツイート: "git checkoutで別のブランチにうつるときに、submoduleのバージョンも切り替えてくれるハックってないのかな"
- hkobaさんのツイート: ".oO(… --recurse-submodules …?)… "
- Kazuho Okuさんのツイート: "ありがとうございます!!!!! gitをアップデートしながら… "
- 画力・博士号さんはTwitterを使っています 「(gitの操作的意味論書き下しはやりたいことの1つだったけど既にやっている人がいた!)」 / Twitter
- 吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@bd_gfngfn データタイプアラカルテの著者(?)がバージョン管理の意味論に関する論文を発表していて、僕もバイナリファイルとテキストファイルで一体何が違うのか?というのは長年の疑問です。 https://t.co/WhwdodFGO7」 / Twitter
- 2014-onward.pdf
- Git - リベース
- Gogs
- Git - タグ
- Git - Git as a Client
- リリースプロセス | Yarn
- Git チュートリアルとトレーニング | Atlassian Git Tutorial
- Gitea - Wikipedia
GitBook
プラグイン
- GitBookで外部ファイルの読み込み | 技術文書をソフトウェア開発する話
- azu/gitbook-plugin-include-codeblock: GitBook plugin for including file
- 練習問題の解答を折りたたんで表示できないか?(in HTML版) · Issue #63 · dwango/scala_text
- ymcatar/gitbook-plugin-sectionx: A GitBook plugin created for you to separate the page into sections, and add buttons to allow readers to control the visibility of each section
- gitbook-plugin-regexplaceを利用して、ブロックレベル要素でMarkdownを囲む - kmizuの日記
- markomanninen/gitbook-plugin-regexplace: Replace (RegEx) page section texts with given substitutes
- 書いた文章をレビューしてGitHubにIssueを切るためのGitBookプラグイン | Web Scratch
- GitbookIO/plugin-mathjax - JavaScript
- gitbook-plugin-japanese-support
- gitbook-plugin-mermaid-2の導入 - Qiita
- mermaid.jsが素晴らしいけどなかなか使ってる人見かけないので実例晒す(追記あり) - Qiita
- ローカルにGitBookの環境を構築してmermaid.jsをプラグインで導入する | つくるログ
- gitbookのmathjaxプラグインが突如動かなくなる - in neuro
Qiita
- GitbookとGithubを連携して電子書籍を自動Publishする方法 - Qiita
- GitBookローカル開発環境セットアップ - Qiita
- GitBook MarkdownからPandoc+LaTeXで美しいPDFを生成する - Qiita
- [GitBook] GitBookから生成されるPDF・HTMLのデザインを変更する方法 - Qiita
- Gitbookインストール - Qiita
- GitBookでAnkerを使ったLinkのURLを使えるようにする - Qiita
- GitBookで体制図を書きたい - Qiita
- gitbookを使ってみてわかったこと - Qiita
- AsciiDoc入門 - Qiita
- GitBookのPDF出力で日本語フォントをIPAGothicにする - Qiita
- GitBook
- What is GitBook - GitBook
- GitHub - GitBook
- GitbookIO/gitbook: 📝 Modern documentation format and toolchain using Git and Markdown
- mizunashi_mana/TIL/tools/doc-aboutgitbook - 電気通信大学MMA
- Markdown · GitBook Toolchain Documentation
- Configuration · GitBook Toolchain Documentation
- Plugins for GitBook
- autocover | GitBook Plugins
- Introduction · GitBook Starter Kit
- Introduction | 技術文書をソフトウェア開発する話
- 技術文書をソフトウェア開発する話 - GitBook
- GitBook Starter Kit - GitBook
- Can I host my content on GitHub? · GitBook Help Center
- Kindle形式の電子書籍(.mobi)を手動でデバイスへ転送してプレビューする方法 | Thinking Salad
- gitbookで楽々ドキュメント作成
- VPC内のGitlabで管理しているGitbookのドキュメントをCodePipelineとCodeBuildでS3にデプロイする話
- Gitbookで生成したファイルがGitHub pagesに無視される - in neuro
- How to fix HTTP 404 on Github Pages? - Stack Overflow
- ドキュメントは何で書けば良いのか - in neuro
Markdown
Graphviz
- Graphviz - Graph Visualization Software
- graphviz / graphviz · GitLab
- graphviz / webdot · GitLab
- Graphvizとdot言語でグラフを描く方法のまとめ - Qiita
- Graphviz - Wikipedia
- テキストデータをグラフ画像に変換するツール「Graphviz」ことはじめ | DevelopersIO
- データのビジュアル化を最少の労力で: Graphviz
- Python上でGraphvizを使って綺麗なグラフを描く - プログラミング原人の進化論
- sphinx.ext.graphviz -- Graphvizのグラフを追加 — Sphinx documentation
- graphvizを使ってみる | ぬの部屋(仮)
PlantUML
- シンプルなテキストファイルで UML が書ける、オープンソースのツール
- PlantUML使い方メモ - Qiita
- Visual Studio Code で UML を描こう! - Qiita
- PlantUMLの基礎 | tracpath:Works
- PlantUMLの実践応用(シーケンス図) | tracpath:Works
- VSCodeで始めるPlantUML生活 | GMOインターネットグループ 次世代システム研究室
- OSSテストツールを知ろう「PlantUML」 | ハートランド・ザ・ワールド
- PlantUML - Wikipedia
- PlantUMLのレイアウトのコツと指定方法についてのまとめ
- チームで機能設計するためのPlantUML標準化 | フューチャー技術ブログ
Mermaid
- Takashi KawasakiさんはTwitterを使っています 「おや、今までMarkdown Preview Enhanced使ってたけど、GitHub形式の```mermaid しか対応してなくて、面倒なことをしていたんだけど、こっちだとAzure形式の::mermaidもサポートしているのか。」 / Twitter
- 稀Jr.さんはTwitterを使っています 「VSCode に "Markdown Preview Mermaid Support" がありあますね。編集はこれで十分かも。 https://t.co/axch2xz0cw」 / Twitter
- Yoshiyuki NakamuraさんはTwitterを使っています 「@moonmile VS Codeで編集されたMermaidダイアグラムですけど、Wikiの方ではちゃんとグラフィカルに表示される手段があるんでしょうか? …と思って自分で調べてみたところ、一応ちゃんとあるんですね。これは良いなあ…😇 https://t.co/1iMlJIrQXn」 / Twitter
- SimonKenyonShepard/mermaidjs-github-svg-generator: This project allows you to generate and render mermaidJS diagrams and automatically include them in github README files
- 稀Jr.さんはTwitterを使っています 「@nakayoshix chrome だと GitHub + Mermaid 拡張があって SVG 表示してくれたりします。 https://t.co/Hn09aLHs5g ↓の図は見えるはず。 https://t.co/gi6SuQILFw」 / Twitter
- GitHub + Mermaid - Chrome ウェブストア
- COCOAシーケンス図
slideship.com
- slideship.com - Create a slide, ship immediately
- Markdownで手軽にスライドが作成・公開できるサービス「slideship.com」が始動:ニュースリリース|gihyo.jp … 技術評論社
Marp
- Marp - Markdown Presentation Writer
- yhatt/marp: Markdown presentation writer, powered by Electron.
- Markdown スライド作成ツール『Marp』の開発経緯裏話 - Speee DEVELOPER BLOG
- Electron で Markdownプレゼン作成ツールを作って公開するまで - Qiita
- 無料でプレゼンのスライドをマークダウン記法で作成できる「Marp」 - GIGAZINE
- marp - Google 検索
remark
- Remark
- gnab/remark: A simple, in-browser, markdown-driven slideshow tool.
- Home · gnab/remark Wiki
- Remark使い方メモ(Markdown でスライドを作るやつ) - Qiita
- markdown + remark.js + gh-pages でプレゼン資料を公開する - Qiita
- markdownからスライドを作るツールを調べてみた - UNIX的なアレ
- Remark.jsにMathJaxの数式を入れる方法 – はむかず!
reveal.js
- reveal.js – The HTML Presentation Framework
- hakimel/reveal.js: The HTML Presentation Framework
- Reveal.js、Markdown、Githubでスライドを作成する。 - Qiita
- hakimel/reveal.js: The HTML Presentation Framework
Marked
- chjj/marked: A markdown parser and compiler. Built for speed.
- Marked.js で Markdown をクライアント側でパースして表示する - Qiita
- markdownをリアルタイムプレビューするWEBエディタを作ってみました(シンタックスハイライト、サニタイズあり) - Qiita
- 『marked.js』 を使ってブラウザ上で markdown を html に変換する方法 | phiary
- JavaScript - Markdownパーサーのshowdown.js、markdown-js、markedを簡単比較 - ぼっち勉強会
- Marked.jsを使って社内ドキュメントを書きやすくしよう! – cybozu developer network
- node.jsでmarkdownからHTMLを生成する [2014-2-28 17:18]
highlight.js
- highlight.js
- marked.js で変換したコードを highlight.js でハイライト表示する方法 | phiary
- コードのハイライト表示用 JS ライブラリ highlight.js の使い方 - Qiita
- ソースコードをハイライトする軽量ライブラリ、Highlight.jsの使い方
- highlight.jsを言語毎にカスタマイズして使う
- highlight.jsの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適 | エス技研
- highlight.jsを全ての言語に対応させる - ncaq
- ソースコードをシンプルきれいにハイライト!highlight.jsを使ってみた | ぶちねこどっとうぇぶ
- WordPress に Markdown と highlight.js を導入 – アカベコマイリ
markdown-headings
- Markdownの見出しを抽出するツールを作った - EagleLand
- markdown-headings
- 1000ch/markdown-headings: Get headings in markdown.
markdown-it
- markdown-it demo
- markdown-it/markdown-it: Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed
- Markdown it!
- markdown-it
- markdown-it - cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!
- Node.jsでmarkdown-itを使ったMarkdown→HTML変換を行う - 情報アイランド
- Markdownをクライアント側でパースする(markdown-it利用) - LionHeart SD BLOG
- Markdown-Itで独自レンダリングする方法 – 踊る犬.netブログ (旧)
blog
- Markdown in 2016 - Hack like a rolling stone
- Markdownに目次(TOC)を表示させる - tsunokawaのはてなダイアリー
- Markdownテキストを整形するAngular Markedとコードをハイライト整形するAngular Highlightjs (1/3):CodeZine(コードジン)
- 【レビュー】「Excel」の選択セルをMarkdownのテーブル記法でコピーできる「CopyToMarkdownAddIn」 - 窓の杜
- Big Sky :: GitHub 等で Markdown に画像を貼る時は代替テキストを意識しようと思った。
- k16's note: Markdown原稿をGitHubで管理して本にする仕組みが出版社で導入されないわけ
- k16's note: TeXと10年戦ってわかったこと
- AlminのサイトをOSSドキュメントツールのdocusaurusで作り直した | Web Scratch
- 機能紹介 - HackMD
- Markdown+CSS組版での技術系同人誌制作時の環境 | 吉川ウェブ
- MKDocsを使ってFPGA開発日記の記事まとめページを作り直した - FPGA開発日記
- MarkdownエディタならTyporaが最強であるという話 - FPGA開発日記
- Markdown ブロックの WikiWikiWeb 方式での書式変換 - Tociyuki::Diary
- Markdown ブロックの WikiWikiWeb 方式での書式変換 (その2) - Tociyuki::Diary
- Markdown ブロックの WikiWikiWeb 方式での書式変換 (その3) - Tociyuki::Diary
- 大量のテキストを食っても速い Markdown Editor 作った - mizchi's blog
- MarkdownBuffer の実行時間の計測とパフォーマンスチューニングの余地 - mizchi's blog
- mdbuf v1.0.0: 最高の Mardkown Preview を目指して - mizchi's blog
- Markdown コードブロックの JavaScript を bundle して実行するエディタを作ってみた - mizchi's blog
- MDX eXtended = MDXX | AMP対応 Markdown Compiler と静的サイトジェネレーター - mizdev
- MDsveX - Svelteの中のMarkdownの中のSvelte
- markdownがもっと捗るキーボード設定:全角入力時も記号はなるべく半角になるようにする - Yabu.log
- WordPressをMarkdownで執筆、あるいはMarkdown→HTML変換とGitHub Pagesの自動更新 | IIJ Engineers Blog
- MarkdownエディタTyporaでMarkdownテキストを用いて図を書く方法 - FPGA開発日記
Zenn
- 開発者のためのスライド作成ツール Slidev がすごい
- slidevjs/slidev: Presentation Slides for Developers (Public Beta 🎉)
- Markdown を拡張する MDX はドキュメント作成の新たな可能性?
Qiita
- Qiita - Markdown記法 チートシート - Qiita
- GitHub Markdown + TeX記法で数式を任意の位置で合わせたい - Qiita
- GitHub Markdown + Tex記法で任意の数式番号を書きたい - Qiita
- GitHub Markdown + TeX記法で数式に空白を入れたい - Qiita
- Markdownテキストでシーケンス図とフローチャートを描く - Qiita
- マークダウン中にコメント行を入れる - Qiita
- Markdown文法まとめ - Qiita
- GitHub Flavored Markdown は何であって何でないか - Qiita
- CommonMark
- CommonMark Spec
- A formal spec for GitHub Flavored Markdown - The GitHub Blog
- GitHub Flavored Markdown Spec
- QiitaやGitHubのコメントで折りたたみ要素を作る方法 - Qiita
- GitHub 上のマークダウンを Travis CI 経由で Qiita に記事として投稿する - Qiita
GitHub
- README.mdファイル。マークダウン記法まとめ | codechord
- markdown-cheatsheet-online
- higuma/markdown_cheat_sheet: Markdown cheat sheet
- markdown-memo/markdown.md at master · owlat7/markdown-memo
- OS作れないマンさんのツイート: "Atomのmakrdown-previewが使っているライブラリを使う手もあるか?https://t.co/vEBD63YBKL"
- gjtorikian/roaster: Turns a raw and crunchy Markdown file into nice and smooth output
- syntax-tree/mdast: Markdown Abstract Syntax Tree format
- github/markup: The code we use to render README.your_favorite_markup
- remark - markdown processor powered by plug-ins
- wooorm/remark: Markdown processor powered by plugins
- EFMarkdown on CocoaPods.org
- EyreFree/EFMarkdown: A lightweight Markdown library for iOS.
- commonmark/cmark: CommonMark parsing and rendering library and program in C
- thlorenz/doctoc: 📜 Generates table of contents for markdown files inside local git repository. Links are compatible with anchors generated by github or other sites.
- joeyespo/grip: Preview GitHub Markdown files like Readme locally before committing them.
Twitter
画像追加
- 電子計算機の沼さんはTwitterを使っています 「記事(markdown)とか書いてるとき,スクリーンショットを撮って,保存してGUIでフォルダに置いて,gitに追加するのが死ぬほど面倒なんですけど,なんかいい方法ないですかね.. githubにCtrl + Vで貼り付けてUpできたりせん?」 / Twitter
- @yosukesand🐗さんはTwitterを使っています 「@Hishinuma_t xwd で出力して、.png に convert とかは?」 / Twitter
- xwd - Google 検索
- 電子計算機の沼さんはTwitterを使っています 「@yosukesand あー.....いけそう? ちょっと検討しますありがとうございます」 / Twitter
- 🍤🐟🦐🍤🦀🔝🌈🍽🇰🇵💻🎣さんはTwitterを使っています 「@Hishinuma_t git hubのissueにMarkdownモドキ書いてgithub wikiにコピペするっていうゴミ手法なら自分のところではやったことがあります(GithubWikiはなぜか画像のctrl+vができねえ)」 / Twitter
- おそろしく速い手刀さんのツイート: "MarkdownコンパイラがGithubと違う動きをする!このMarkdownはクソ!って言うまえに、Github Flavored Markdown という規格がいかに Commonmark から逸脱しているかをな…"
- ( ꒪⌓꒪)さんのツイート: "markdown でコマンドラインのコードハイライト指定する時に ```sh より ```console の方が良いという知見を得た。 https://t.co/PgYsVYYRXy"
- ドッグさんはTwitterを使っています 「Issue や PR に何か stats をコメントするタイプの bot でコメントを適宜更新する必要がある場合,生成する markdown テキスト内に <!-- ... --> で bot 向けの情報を JSON あたりで埋めておくの良さそう」 / Twitter
- 広江 克彦さんはTwitterを使っています 「文中の改行は無視してくれればいいのに、ブラウザが半角スペースとして表示してくれてしまうのはCSSで制御できるのだろうか?」 / Twitter
- yoh2さんはTwitterを使っています 「Markdown もこれなので、そのままでも読みやすいようにと適宜改行を入れてるとレンダリング結果にポツポツ空白が挟まって残念な気持ちになる。」 / Twitter
- yoh2さんはTwitterを使っています 「改行前後の文字種 (行頭の空白は無視) によって空白を入れるかどうか判断するようになるといいのかな。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「脚注をサポートしているmdの実装そのものは、Markdown Extra、Pandoc’s Markdown、Kramdownなどなど、たぶん有名どころがかなりある(ところでCommonMarkの脚注の現状はどうなってるんでしょうか…?)」 / Twitter
- ドッグさんはTwitterを使っています 「ついでに GitHub の markdown の描画のバグも見つけた. a <!-- -- --> この行でなぜかコメントがそのまま描画されてしまう.コメント内の -- を削除すると正しく動くので,コメントのパースのミスかな」 / Twitter
- ドッグさんはTwitterを使っています 「仕様見る限りでは -- は含んで良さそうに見える https://t.co/9rYbYED8fA コメントの中のテキストが <!- で終われないのと -> で始まれないの知らなかった」 / Twitter
- HTML 5.2: 8. The HTML syntax
- ドッグさんはTwitterを使っています 「結論から言うとこれは仕様だった.HTML 5.2 までに仕様変わったのかな? CommonMark の仕様には -- は含んではいけないと明示的に書いてあった > An HTML comment consists of <!-- + text + -->, ...(省略)... and does not contain --. https://t.co/tbbSWAgEvT」 / Twitter
- ドッグさんはTwitterを使っています 「"does not contain --" の後に HTML5 spec へのリンクが載ってるけど,そのリンク先にも -- を含んではいけないとは書いてないので,多分どこかで変わったんだろうなぁ」 / Twitter
- ドッグさんはTwitterを使っています 「HTML 5.1 → 5.2 の間で変わったのか.5.1 では -- は含められない仕様になってた https://t.co/xJzQODmbbv > nor contain two consecutive U+002D HYPHEN-MINUS characters (--)」 / Twitter
- HTML 5.1 2nd Edition: 8. The HTML syntax
- HTML Standard
- ドッグさんはTwitterを使っています 「例えば今回の <!-- -- --> みたいに markdown として不正な文字列に対してレンダラがどう動くべきなのか謎い.今回のだと,テキストの後だと一連のテキストノードとして扱われて,行頭とかだとコメント扱いになってる(コメントの終端が無い扱い?)っぽいのでパーサの気分次第にみえる」 / Twitter
- ドッグさんはTwitterを使っています 「markdown ではリンクのラベルをラベル定義より先に書けるから,そこを正しくパースしようとするとインクリメンタルパースができないのか.例えば [foo][bar] がある時,bar が存在するとリンクにしないといけないし,存在しないと [foo][bar] 全体をただのテキストノードにしないといけない」 / Twitter
- クロスリファレンスとは 「相互参照」 (cross-reference, x-ref, xref): - IT用語辞典バイナリ
- CommonMark Spec
- Markdown Variants
- RFC 7763 - The text/markdown Media Type
- Daring Fireball: Markdown Syntax Documentation
- Markdown - Wikipedia
- StackEdit – In-browser Markdown editor
- Simplenote
- なぜScrapboxはMarkdownを採用していないのか - 増井俊之
- Kibela キベラ| 人と情報に自由を|個人の力を組織の力にする情報共有ツール
- HackMD - Markdownで知識ベースを共作
- FadisさんはTwitterを使っています 「I❤️LA: 分数、添字、行列、積分等の面倒な表記を伴う数式をテキストで書く新しい言語。このような言語としては従来からLaTeX等があるが、I❤️LAはUnicodeの豊富な数学記号を活用して、一意に解釈できる記法でありながらテキストのままでも読める「数式のMarkdown」を実現する https://t.co/2yD1m5yv6r」 / Twitter
- I❤️LA: Compilable Markdown for Linear Algebra
Releases
- GitHubのリリース機能を使う - Qiita
- GitHubのリリース(Releases)を削除する - Qiita
- GitHubのAPIを使ってReleaseの最新バージョンを取得する - Qiita
reject(CVE)
- Hiroshi SHIBATAさんはTwitterを使っています 「@__gfx__ @bulkneets 「脆弱性じゃない」というのを、https://t.co/jrxvm1HXa2 から reject というのを出すのが良いと思います。油断するとこの CVE id をもとに dependabot が動いたり、期待しない FUD なども出てきます(本当にだるい...)」 / Twitter
- CVE - Common Vulnerabilities and Exposures (CVE)
- FUJI GoroさんはTwitterを使っています 「@hsbt @bulkneets そうそう、dependabotとかが動き出すのを懸念してます。 ほぼメンテされてないモジュールだし、さらにいうとぼくはあまり関係もないのですが、エコシステムに対する攻撃…とまではいかないものの雑すぎるムーブでだるいですね…。」 / Twitter
Compiler
- Compiler Explorer
- WebAssembly Studio
- WebAssembly/proposals: Tracking WebAssembly proposals
- memory64/Overview.md at main · WebAssembly/memory64
- FadisさんはTwitterを使っています 「gccでcall-used register wipingできるようになった話。call-used register wipingは関数からretする直前にその関数が使ったレジスタの値を消す処理を挿入する。ROPを難しくする効果と漏れてはいけない情報が関数の外に漏れるのを防ぐ効果があり、LLVMは以前から対応していた https://t.co/9uWZxg2ddJ」 / Twitter
宣言型(関数型)言語処理系
その他
その他
- haskell-shoen
- Esolang, the esoteric programming languages wiki
- トップページ - nothingcosmos wiki
- The Missing Semester of Your CS Education (日本語版) · the missing semester of your cs education
- Medley Interlisp Common Lisp
- recover-rtti: Recover run-time type information from the GHC heap
- Functions | Documentation (Version 2.3) | AtoM: Open Source Archival Description Software
- delphi - Strange behavior with a record as a result of the function - Stack Overflow
- Abstract vs. Concrete Syntax Trees - Eli Bendersky's website
- Introduction - Counterexamples in Type Systems
- アセンブリ言語や機械語、高級言語といったものがなんなのかよくわかりません。それぞれに該当する言語を教えて欲しいです。C言語やPythonはどの部類に入るのでしょうか?に対する大島 芳樹 (Yoshiki Ohshima)さんの回答 - Quora
- Haskell入門 | haskell
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「各言語実装が、自家製の構文解析器を使っているか、あるいはYacc的なパーサジェネレータを使っているかの調査。 自家製: GCC, Clang, JS V8, TypeScript, OpenJDK, Go, C# Roslyn, Lua, Swift, Julia Yaccもどき: Ruby, PHP, Bash, R, PostgreSQL, MySQL, SQLite PEG: CPython https://t.co/TlguNesqEu」 / Twitter
- Parser generators vs. handwritten parsers: surveying major language implementations in 2021 | notes.eatonphil.com
- Miura HidekiさんはTwitterを使っています 「少なくともcrubyはraccではなくbisonを使っていると思うのだけど」 / Twitter
- スタック使用量の算出 | CS+ V4.01.00
- 微分方程式と差分方程式(漸化式)
- TCD CS David Gregg
- プレースホルダとは - IT用語辞典
- lifeLOG + REPOsitory: 2^64 (2 の 64 乗) って、どれぐらい?
- linux - ARG_MAX は何故必要?(あるいは、ARG_MAX はどう決まる?) - スタック・オーバーフロー
- 情報理論の父と呼ばれるクロード・シャノンの功績とは? - GIGAZINE
- Clojure - Learn Clojure - Functions
- プレースホルダ構文完全解説
- プログラミング言語を作る!?自作言語にハマる理由と"Shiika"のこだわり | Offers Magazine
- approximate computing survey - Google Scholar
- 新規開発でnull安全が既定になった「Dart 2.13」「Flutter 2.2」 - 窓の杜
- リードタイム MTTR 変更失敗率 - Google 検索
- Raku 入門
- チューリング完全性について詳しく教えてください。に対するShiro Kawaiさんの回答 - Quora
- 国内航空機製造業界にモデルベース開発は浸透するのか、MBACの挑戦:MATLAB Expo Japan 2021(1/2 ページ) - MONOist
blog
その他
- Egison - ブログ
- Nervesの新機能mix firmware.patchの(偏った観点からの)ご紹介 / An Introduction to mix firmware.patch from my own view point - Speaker Deck
- またまたまがる: どうして Julia を作ったか
- 7594591200220899443さんはTwitterを使っています 「Rubyみたいな古い言語が嫌われるのは当然ですよね(それは劣っているからというよりも古いからだ)、という話。定量評価つき https://t.co/0uyHfoVubq」 / Twitter
- Green Vs. Brown Programming Languages - Earthly Blog
- ブログ: 継承はパフォーマンス・ハックとして発明された
- Googleの並列ログ解析向け言語「Sawzall」が公開されたので使ってみた | Preferred Networks Research & Development
- Sawzall (programming language) - Wikipedia
- 本の虫: うっかりチューリング完全になっちゃったもの
- 関数型プログラミングとは結局何なのか | 黒曜の吹き溜まり
- 形式手法でデータ構造を記述・検査してみよう:Alloy編 - DeNA Testing Blog
- 競技プログラミングの問題を自動で解きたい - うさぎ小屋
- AWS Lambdaの裏側をなるだけ詳しく解説してみる - Sweet Escape
- システムの複雑さはどこから来るのか – Out of the tar pitを読む - Uzabase Tech
- [WIP] 処理系Slackのミートアップに参加しました - yhara.jp
- 「さよなら Flaky 。不安定なテストの探し方」というお話 - Cybozu Inside Out | サイボウズエンジニアのブログ
- プログラミング言語処理系の作り方 (競プロer向け) - うさぎ小屋
- 眼力 玉壱號さんはTwitterを使っています 「https://t.co/POTxocHqtR ほぼほぼ普段考えてる事と同じだた… コメント書いて情報量が増えるなら書く、増えないなら書かない。コメントは常にコードとの乖離の危険をはらむので書かずに済むのなら書かない方を選ぶ(i.e. code 側を理解しやすい様工夫する)」 / Twitter
- Best practices for writing code comments - Stack Overflow Blog
- リーダブルなコードを書く習慣の身に付け方・実践の仕方 - 2021-09-22 - ククログ
- mod_poppoさんはTwitterを使っています 「一般受けする言語を作りたかったらC言語ライクな波括弧ベースの文法にして関数呼び出しには括弧を強制するようにしてメソッドをドットで呼び出せる構文をつけた方が良さそう(偏見)」 / Twitter
- mod_poppoさんはTwitterを使っています 「配列にアクセスするためのシンタックスシュガーもあると良いですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「nullは「10億ドル規模の損失をもたらす過ち」と言われるの、NaNでも同じこと言われてるんだろうか? それとも浮動小数扱う能力がある人には問題ないんだろうか。どうナンだろう? cf. https://t.co/o42ORrxFJc」 / Twitter
- nullが生まれた背景と現在のnullの問題点 ― null参照問題(前編) - Build Insider
κeenのHappy Hacκing Blog
- 自作コンパイラをブラウザ上で動かす | κeenのHappy Hacκing Blog
- マクロやコンパイラプラグインの実装方法色々 | κeenのHappy Hacκing Blog
- 新しいコンパイラバックエンドcretonne | κeenのHappy Hacκing Blog
- Graal/Truffleについて軽く | κeenのHappy Hacκing Blog
- κeenさんはTwitterを使っています 「Standard MLのwithtypeの挙動 https://t.co/tv2kGfi26c」 / Twitter
- Standard MLのwithtypeの挙動
- Summary of proposed changes · SMLFamily/Successor-ML Wiki
- F-ing Modules, yabaitech.tokyo vol.5
- κeenさんはTwitterを使っています 「Erlangの歴史を紐解きつつJIT導入への道程を示している。過去に高速化の話はいくつかあったがそれぞれ問題を抱えていた The Road to the JIT – A Blog from the Erlang/OTP team – The Erlang/OTP team at Ericsson, the implementors and maintainers of Erlang/OTP. https://t.co/f1z09Cijsk」 / Twitter
- The Road to the JIT – A Blog from the Erlang/OTP team – The Erlang/OTP team at Ericsson, the implementors and maintainers of Erlang/OTP.
- シャドイングの嬉しさ | κeenのHappy Hacκing Blog
- 【プログラミング言語速度比較】Collatz数列ベンチマークを言語別比較しよー! - 関数型言語で競プロ精進!
- 論文メモ:The Third Homomorphism Theorem | κeenのHappy Hacκing Blog
- 2020年振り返り | κeenのHappy Hacκing Blog
- 2021年抱負 | κeenのHappy Hacκing Blog
- プログラミング言語の未来はどうなるか | κeenのHappy Hacκing Blog
- 今さら聞けないアヴィウムプルヌス入門 | κeenのHappy Hacκing Blog
- 今さら聞けないアヴィウムプルヌス入門のタネ明かし | κeenのHappy Hacκing Blog
- 論文メモの続き:The Third Homomorphism Theorem | κeenのHappy Hacκing Blog
井山梃子歴史館
- 『トポスと高階論理』を読んでいる - 井山梃子歴史館
- どうしようもなくnaive realism - 井山梃子歴史館
- 数学に正解は一つしかないのか? - 井山梃子歴史館
Message Passing
- Message Passingという内輪のブログ的な何かを始めた | なーんだ、ただの水たまりじゃないか
- バグのはなし - Message Passing
- 言語のはなし - Message Passing
- Re: Re: Re: 言語のはなし - Message Passing
FPGA開発日記
- コンパイラのための新しい中間表現 MLIR の論文を読む - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(1. Getting Started) - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(2. MLIRに関するコード生成を試す) - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(3. MLIRに関する発表資料を読む) - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(4. MLIRに関する発表資料を読む) - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(5. MLIRに関する発表資料を読む) - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(5. MLIRに関する発表資料を読む) - FPGA開発日記
- LLVMの新しい中間言語表現 MLIRを試す(6. MLIRに関する発表資料を読む) - FPGA開発日記
- QEMUが分岐命令を処理する仕組み(Relocationによるラベルの解決) - FPGA開発日記
Sine Lite Dies
- Computing/Orphosの実装Mullosを支える予定の技術 - Sine Lite Dies
- Computing/Orphosの実装Mullosを支える予定の技術 - Sine Lite Dies
- Computing/Orphosの実装Mullosを支えつつある技術 - Sine Lite Dies
- Computing/Orphosの実装Mullosを支えつつある技術 - Sine Lite Dies
- Computing/Truffle言語の実装例KinokoMLをつくった - Sine Lite Dies
- Computing/Truffle言語の実装例KinokoMLをつくった - Sine Lite Dies
ゆびてく
- 関数型つまみ食い: 関数型とはプログラミング言語ではなく、プログラムデザインの問題であることに気づく – ゆびてく
- 関数型つまみ食い: 関数型プログラミングの何が嬉しいのか? – ゆびてく
- 関数型つまみ食い: モナドが難しいと思われている理由 – ゆびてく
- Elixir試飲録 (3) – マルチコア危機によるパラダイムシフト: オブジェクト指向から並行指向へ – ゆびてく
- オブジェクト指向とは何だったのか? – ゆびてく
本の虫
- 本の虫: また初心者にプログラミングを教える機会があった
- 本の虫: Erlangについて思うところ
ベインのブログ
- HSP3 でスクリプト言語の処理系を書く - ベインのブログ
- nullはポインタだがリファレンスではない - ベインのブログ
- 値とストレージの区別 - ベインのブログ
クックパッド開発者ブログ
- Ruby に Software Transactional Memory (STM) を入れようと思った話 - クックパッド開発者ブログ
- Ruby 3 の静的解析ツール TypeProf の使い方 - クックパッド開発者ブログ
- Ruby 3の静的解析機能のRBS、TypeProf、Steep、Sorbetの関係についてのノート - クックパッド開発者ブログ
- プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ
- ruby/NEWS.md at v3_0_0 · ruby/ruby
- プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ
- プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ
- Ruby 3.0 の Ractor を自慢したい - クックパッド開発者ブログ
- ISMM 2019 で発表してきました - クックパッド開発者ブログ
- コード生成を用いたiOSアプリマルチモジュール化のための依存解決 - クックパッド開発者ブログ
Publickey
- マイクロソフト、マイクロサービス開発を容易にする「Dapr」をオープンソースで公開。サービス間呼び出し、ステート管理、サービス間メッセージングなど提供 - Publickey
- Ruby 3.0.0RC1が登場、型の記述や静的型推論ツールなど新機能。12月25日の正式リリースに向け - Publickey
- Ruby 3.0正式版リリース。「Ruby 2の3倍速」到達、型の記述、スレッドセーフな並列処理など新機能 - Publickey
- Node.jsの新LTS版となる「Node.js 16」正式リリース。Apple M1チップ対応、JavaScriptエンジン「V8 9.0」搭載など新機能 - Publickey
- マルチプラットフォーム対応が進むKotlin。「Jetpack Compose for Web」登場、Webアプリ対応のUIフレームワーク - Publickey
- JavaScriptツールチェインの統一を目指す「Rome」開発チームが起業、「Rome Tools, Inc.」を立ち上げ - Publickey
- Rome Toolchain
- マテリアルデザインを簡潔に記述できる「Jetpack Compose」がバージョン1.0に到達、本番環境で安心して利用可能に - Publickey
- KotlinでAndroid/Web/DesktopアプリのUI開発を統一するフレームワーク「Compose Multiplatform」がアルファ版に - Publickey
はてなブログ
その他
histric-1
- Pony言語を触ってみよう前編 - 虎の穴開発室ブログ
- 新雑誌「n月刊ラムダノート」の『「コルーチン」とは何だったのか?』の草稿を公開します - まめめも
- 一緒に学ぼう,Rustで作る単相型システム - Explore cs in depth!
- Big bag of pagesで型情報を節約する - 思考録++
- compilium v2 (in progress)の工夫点 - /var/log/hikalium
- 仕様を変えられる言語bittnのメモ - Re:t0kが知ったこと
- 詳説コンピュテーション式 - ぐるぐる~
- メタ関数のカリー化 - yaito3014のブログ
- ループを使わず配列の和をとる方法 (日本語解説) - MoreBeerMorePower
- 自作プログラミング言語Malgoがかなりそれっぽくなってきた - ギークもどきの日記帳
- 世の中間言語を集める - ギークもどきの日記帳
- 多相からプログラミング言語を見る - 趣味はデバッグ……
- Hanson & SussmanのSoftware Design for Flexibilityを読み始めた - Arantium Maestum
- クライアントサイドのモデルとは何か 後編 ~ 単方向データフローと参照透過性 - mizchi's blog
- NODE_MASGN / 多重代入 - ひとり勉強会
- Deforestation で強連結成分分解を改善する - fetburner.core
- nameofの罠 - ぐるぐる~
- Notions of Computations and Effects - Just $ A sandbox
- Call-by-needを採用した言語のインタプリタの実装 - fetburner.core
- LLVMのAttributorというパス - 日記
- monadからeffectへ - Just $ A sandbox
- 『形式意味論入門』を Haskell に書き下す (前編) - ryota-ka's blog
- 『形式意味論入門』を Haskell に書き下す (後編) - ryota-ka's blog
- ユースケース層が投げうるエラーの型を「量化した open union」にしておけば複数のユースケースを合成したときに上の層でエラーハンドリングが楽にできて最高です! - ryota-ka's blog
- Concurrent Cプログラミング言語―並行プログラミング入門 - hidemonのブログ
- mRPC - mikutter blog
- 3imp ヒープ・ベース・コンパイラ/VM と CEK マシンの関係 (2) - Tociyuki::Diary
- シンボル集合のリストによる安直実装 - Tociyuki::Diary
- 配列のスライスで cdr - Tociyuki::Diary
- proper-list? 手続きのアセンブリ記述 - Tociyuki::Diary
- Malgo開発記録:型シノニムとimport - 星にゃーんの日記帳
- C++でファイルを後ろ向きに読み込むときはバッファリングに気をつけようって話 - Kampersanda's Blog
- JavaScriptでパーサコンビネータのコンセプトを理解する(「正規表現だけに頼ってはいけない」の続き) - id:anatooのブログ
- Typescriptでパーサコンビネータを書いてみる - teruuuのブログ
- jicchoさんはTwitterを使っています 「> GPUのコア1つで256スレッド扱えるため、スレッド数は256から増やすとどんどん高速化できそうだ。 コア1つで256スレッド扱える?🤔」 / Twitter
- arutema47さんはTwitterを使っています 「公開しました。おまたせしました。。 https://t.co/WJl1rQdARB」 / Twitter
- CPUとGPUのマルチスレッディングの違いについて - arutema47's blog
- jicchoさんはTwitterを使っています 「そんなに詳しくないけど、CPUのとこもよく分からん記述になってる気がする。 GPUのとこは明らかにおかしいので書き直してほしいね。」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「ちなみにTPUは「NNの行列演算に特化するならそもそも複数のスレッド(プログラムカウンタ)要らなくね?」って発想で、数万個の演算器を数珠つなぎして演算途中のメモリアクセスもばっさり無くした巨大なシングルスレッド構成。 https://t.co/rvmEVWkR7d」 / Twitter
- PHPとPythonとRubyの連想配列のデータ構造が同時期に同じ方針で性能改善されてた話 - hnwの日記
- SATySFiで数式を生成する ~ラムダ計算編~ - * *scrap*
- 小さなlisp処理系を作った - in neuro
- Idrisとはじめる型駆動開発 - console.log( ME );
- タイガーブックを読む:LR(0)構文解析は先読みするのか - uchan note
- 【Linux】JVM系言語以外でも暖気運転は効果があるのかの考察(修正版的な感じ) - 地方エンジニアの学習日記
note
- 定理証明支援系とは何か、何ができるのか|森北出版|note
- Ractorで並列処理を試みる|グロービスデジタルプロダクト開発組織|note
- Rが好きすぎてRでJVMを実装したnoteエンジニアに話を聞いてみた|note株式会社
Medium
- Ruby 3.0 JIT and beyond | by k0kubun | Dec, 2020 | Medium
- OCaml でコンパイラに入門するための2冊. この記事は言語実装 Advent Calendar… | by zenwerk | Medium
- 任天堂 NPNS における Erlang/OTP. Erlang & Elixir Fest 2019… | by V | Medium
- Erlang/OTP と ejabberd を活用した Nintendo Switch(TM)向け プッシュ通知システム 「NPNS」の 開発事例 - Speaker Deck
PDF
- Homepage of Kazushige TERUI
- 五十嵐 淳 (Atsushi IGARASHI)
- famc.pdf
- module_patterns.pdf
- Exception Handling and Classical Logic - PPDP19.pdf
- Tronso_35_16.pdf
- 階層グラフ書換えモデルに基づく統合プログラミング言語LMNtal
- Strong normalizability of the non-deterministic catch/throw calculi - ScienceDirect
- simple_ml_modules.pdf
- LR構文解析の原理
- 情報学広場:情報処理学会電子図書館
- 配信講義 計算科学技術特論A (2019)(4月11日~7月25日) | 理化学研究所 計算科学研究センター(R-CCS)
- 整数の不思議(その1) - prog_languages2.pdf
- 06gun_04hen_07.pdf
- 名称未設定 - part2.pdf
- 超限帰納法
- 超限帰納法 - transfinite-induction-20210725.pdf
- slpj-book-1987.djvu - slpj-book-1987-small.pdf
- tfp12.pdf
Google 検索
- 二村射影 - Google 検索
- 多段階計算 - Google 検索
- MIMD - Google 検索
- double dispatch - Google 検索
スライド
- 実行時のデータ型の表現手法
- 20210530-meetup-unno - Google スライド
- Kmkm プログラミング言語処理系が好きな人の集まり 定期ミートアップ 第5回 2021.07.25 - Google スライド
- OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
GitHub
zx
- Teppei SatoさんはTwitterを使っています 「UNIX的なシェルコマンド、パイプの強さを活かしつつ、プログラミング部分はJSで書けるっていういいとこ取りのバランスが良い。コンソールのアウトプットもきれいい / “GitHub - google/zx: A tool for writing better scripts” https://t.co/DFhZf07nr1」 / Twitter
- google/zx: A tool for writing better scripts
- Teppei SatoさんはTwitterを使っています 「チームで使うかっていうとあれだけど、JS系のプロジェクトでちょっとしたビルド系のスクリプト書くときは良さそう。特殊な知識なくても読めるし。npx zx script.mjs ワンコマンドでいけるし」 / Twitter
定理証明支援系
- こたつがめさんはTwitterを使っています 「できた。とりあえず、正しくて単純な証明をやらせようとすると動く。 https://t.co/k5eUB8p0Jh」 / Twitter
- kotatsugame/proof_assistant
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「定理証明支援系を書くの、いいよね」 / Twitter
Jikka
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「競プロの問題を自動で解いてくれるソルバ Jikka を作っています https://t.co/gwZuWGCdbu」 / Twitter
- kmyk/Jikka: an automated solver for problems of competitive programming
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「「競プロの問題を自動で解く」にも様々な形がありますが、この問題を「プログラムを入力として受け取り、これを最適化して時間計算量を落としたプログラムを出力する」という問題へと整理し、Jikka はこれを解きます 競技プログラミングの問題を自動で解きたい - うさぎ小屋 https://t.co/WMmYRK6QMB」 / Twitter
- 競技プログラミングの問題を自動で解きたい - うさぎ小屋
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「具体的には、Jikka はかなり aggressive に計算量レベルの最適化をする Python から C++ へのトランスパイラになっています。ただしその Python 部分は競プロで問題にならない範囲でいくらか制限されていて、静的型付き純粋関数型プログラミング言語となっています」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「たとえば Fibonacci 数を求める愚直 O(N) の Python コードを行列累乗 O(log N) の C++ コードに変換してくれます https://t.co/XYulILOxpk」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「自動でセグメント木も貼ってくれます。愚直 O(N^2) が勝手に O(N log N) になります https://t.co/vBO9bUqzDM」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「もちろんなんでも解けるわけではなくて、解ける問題と解けない問題とがあります。具体的にはいわゆる「実家 DP」のあたりが得意です 行ってくれる最適化の一覧は docs/optimization.ja.md にあります https://t.co/2262Fn4NNm」 / Twitter
- Jikka/optimization.ja.md at master · kmyk/Jikka
Sorbet Compiler
- Miura HidekiさんはTwitterを使っています 「Rubyは静的型付け言語、そう言う処理系が作れたのだから間違いない >RT」 / Twitter
- Sorbet Compiler: An experimental, ahead-of-time compiler for Ruby · Sorbet
- Miura HidekiさんはTwitterを使っています 「https://t.co/o5E1Ypvew7 パーサーもバイトコードを解析する部分も見つからなくて、悩んだけど説明見たらsorbetの解析結果が型情報つきの特製IRとあってなるほどと思った。」 / Twitter
- sorbet/compiler at master · sorbet/sorbet
- Miura HidekiさんはTwitterを使っています 「Rubyで単純に機械語やLLVM IRに変換しても余り速くなる気がしないのだが、Sorbetだと静的型情報を持っているわけなのでこれがどう効いてくるのか興味がある」 / Twitter
histric-1
- ein-lang/ein: The functional programming language for scalable development
- raviqqe/ssf: Structurally-typed strict functional core language
- raviqqe/fmm
- nikosai/lambda-friends: Web上で動作するラムダ計算のインタプリタ「らむだフレンズ」
- セルフホスト可能なCコンパイラを書く – GitHub 出張所 – プログラム関係のブログはここに
- 自作コンパイラ基盤の内部構造を書くところ - uint256_t's blog
- 日刊Coroutines(0) コルーチンのおさらいと近年の動向(若干) - lilyum ensemble
- 先読み付き正規表現の微分について
- ELVM Scratch 3.0 backend | Reinventing Square Wheels - algon's blog
- Algebraic EffectsとExtensible Effectsの違いってなんや? 関係あんの? - lilyum ensemble
- ML Advent Calendar 2020 20日目
- GitHub - miura1729/mruby-meta-circular: mruby by mruby
- yuk1ty/learning-systems-programming-in-rust: 「Rustならわかるシステムプログラミング」
- ab25cq (DAISUKE MINATO)
- maekawatoshiki (uint256_t)
- mir/MIR.md at master · vnmakarov/mir
- 手を動かせばできるLLVMバックエンド チュートリアル
- TypeScriptでカリー=ハワード同型対応(?)
- aalhour/awesome-compilers: Curated list of awesome resources on Compilers, Interpreters and Runtimes
- Alternative names · coq/coq Wiki
- kousoz80 ( スーザン・キャルヴィン)
- Program Analysis Resources (WIP draft)
- hpi-swa/trufflesqueak: A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.
- OpeLa Register Assignment · osdev-jp/osdev-jp.github.io Wiki
- jonsequitur/dotnet-repl
- Standard MLと型生成性
- Yosuke FurukawaさんはTwitterを使っています 「最高かよ... Rust のライフタイムと所有権のメカニズムを可視化して見せてくれる本 / “GitHub - rustviz/rustviz: Interactively Visualizing Ownership and Borrowing” https://t.co/0fYBUNJtg6」 / Twitter
- rustviz/rustviz: Interactively Visualizing Ownership and Borrowing
- ytakano/baremetalisp
- kspalaiologos/malbolge-lisp: A lightweight (150MB) Lisp interpreter in Malbolge Unshackled, often dubbed the hardest turing complete programming language.
- daem0nc0reさんはTwitterを使っています 「Reverse Engineeringの無料教材。x86系だけじゃなくて、ARM系も含まれています。 https://t.co/aRGAcGCM9b」 / Twitter
- mytechnotalent/Reverse-Engineering: A FREE comprehensive reverse engineering course covering x86, x64, 32-bit ARM & 64-bit ARM architectures.
- Go FujitaさんはTwitterを使っています 「『Pharo by Examples』はPharo Smalltalkのテキスト。 現行バージョン(9.0)対応の文章が少しずつ公開されているので、それを毎週追いかけています。 2018年版(ver 5対応)はひと通りよみましたが、その差分から学ぶことも多いと感じ」 / Twitter
- Release Release v1.7.5 · guillep/PharoBootstrap
- malbolge - Google 検索
- Malbolge
infoQ
- GitHubがすばやく安全にリリースを行うためにどのようにフィーチャーフラグを利用しているか
- Crystal言語がRuby構文リリース1.0でCパフォーマンスを目指す
- 「Align-Define-Design-Refine」を使ったAPI設計ファーストプロセス
Zenn
その他
- サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 2 - 新機能と変更点の総まとめ
- Language Server Protocol に対応したミニ言語処理系を作る
- 複雑なアニメーションをプログラムする 〜Reanimate入門〜
- Prattパーサであらゆる演算子をパースする
- re2c の使い方
- クラスメソッド、技術情報共有サービス「Zenn」の買収に関する契約を締結〜誰かのために、自分のために知見を共有するプラットフォームの開発を加速〜 | ニュース | クラスメソッド
- Only My Rails Way
- Miura HidekiさんはTwitterを使っています 「Only My Rails Way|yukito ohira https://t.co/uGGI1qHVC9 #zenn 大部分は分からいけど、「最初の記述と矛盾するようだが基本的にRubyは遅くないしRailsも遅くない。遅いのは99%自分が書いたIOかSQL」だけはものすごく同意した」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Rubyは遅くない、良く分かっているのだが、それでもマイクロベンチマークを数倍速くすると言う余り意味の無いことに貴重な余暇時間を溶かしてしまう性を持っているアカウントがこちらになります」 / Twitter
- プログラミング書籍を10年ぶりに改訂して気がついたこと
- 自作言語
- Intel oneAPIのIntelコンパイラやDPC++についてちょっと調べた
- Intel oneAPIを入れるとClangが死ぬかもしれない
- ZennとClassmethod | Cat Knows
Qiita
その他
- Hello World くらいしかできない言語のアセンブラをつくる - Qiita
- OneLang32の話でも - Qiita
- Qiitaでたぶんもっとも参考にしてはいけないPythonの導入方法 - Qiita
- 「HTMLはプログラミング言語か」問題に終止符を打つ - Qiita
- 素朴な自作言語Pricのコンパイラをセルフホストした - Qiita
- 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita
- C++やPythonのいいとこ取りをしたいなら必ず考えるべきこと。 - Qiita
- Linuxカーネルにおけるstrn系関数の挙動のまとめ - Qiita
- デバッグは「うまく動かないピタゴラ装置の原因調査」だと考えてみよう - Qiita
- DI って何のためにするのかわからない人向けに頑張って説明してみる - Qiita
- プログラマーを惑わせる3種類の委譲(委譲・Delegation/転送・Forwarding/.NET Delegates) - Qiita
- 形式言語理論における3つの『密』概念 - Qiita
- コンパイラの中間表現いろいろ - Qiita
- 宣言型プログラミングとは何かをJavaとElmで考えてみる(前編) - Qiita
- 関数型言語のウソとホント - Qiita
- CPS/DS変換 - Qiita
- 120行で書いた CPS変換/Prolog出力 while言語コンパイラ - Qiita
- Coq/SSReflect/MathCompの資料 - Qiita
- Coq/SSReflect/MathCompの資料 - Qiita
- ラムダ式プログラミング一時間体験講座(Python/Ruby/JavaScript同時並行版) - Qiita
- 10行LISP評価器の実装例(各言語まとめ) - Qiita
- スケールする要求を支える仕様の「意図」と「直交性」 - Qiita
- 共変戻り値と反変引数 - Qiita
- 無名相互再帰の記述例(各言語まとめ) - Qiita
- AWSにおける形式手法 - masateruk’s blog
- Parallel Commits: An Atomic Commit Protocol For Globally Distributed Transactions
- PGConf.Online 2021 - Consensus, Postgres, Multimaster
- 「形式手法はなぜ流行っていないのか」に対する異論 - interdb’s blog
- 000005272.pdf
- 000045158.pdf
- swest13-S3-b.pdf
- 形式手法はなぜ流行っていないのか - Qiita
- 大学の数学の入試問題を量化子消去でサッと解く - Qiita
- TeX言語で型なしλ計算を評価するVMを書いた話 - Qiita
- 最近見つけたおもしろ自作言語の紹介 - Qiita
- 25年前の未来の言語の話 - Qiita
- Swiftコンパイラで採用されているパターンマッチの網羅性チェックの理論と実装 - Qiita
- ウワサのBlawnを触ってみた - Qiita
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「これはテーブル定義含めて1時間っていう想定なのかな。テーブルの定義もまたすごく大変だけど... / 1件のコメント https://t.co/fawNL99DX7 “もうAPIを自分で開発するのは古い?Hasuraの強烈な有効性について紹介する - Qiita” https://t.co/rv9yHhQSse」 / Twitter
- もうAPIを自分で開発するのは古い?Hasuraの強烈な有効性について紹介する - Qiita
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「文脈が明確で1カ所しか使わないなら敢えて定数にしない、ってのは確かにそうだなぁ。 / 他5件のコメント https://t.co/rTe0uOhbG3 “マジックナンバー使うな? どんどん使え! - Qiita” https://t.co/nhLIVGUJ7u」 / Twitter
- マジックナンバー使うな? どんどん使え! - Qiita
- ifとswitchどっちがいいのか問題 - Qiita
Wikipedia
論理
- 第五世代コンピュータ - Wikipedia
- Guarded Horn Clauses - Wikipedia
- KL1 - Wikipedia
- Concurrent Prolog - Wikipedia
- 並行論理プログラミング - Wikipedia
- 論理プログラミング - Wikipedia
- カリー=ハワード同型対応 - Wikipedia
- コンビネータ論理 - Wikipedia
- ゲーデルの完全性定理 - Wikipedia
- 述語論理 - Wikipedia
- 様相論理 - Wikipedia
- 古典論理 - Wikipedia
- 非古典論理 - Wikipedia
- 様相論理 - Wikipedia
- 時相論理 - Wikipedia
- 計算木論理 - Wikipedia
- 線形時相論理 - Wikipedia
- 義務論理 - Wikipedia
- 直観主義論理 - Wikipedia
- ゲルハルト・ゲンツェン - Wikipedia
- Gerhard Gentzen - Wikipedia
- 論理記号の一覧 - Wikipedia
- Microsoft PowerPoint - HITproplogic.ppt - HITproplogic.pdf
- 量化 - Wikipedia
- 存在記号 - Wikipedia
- 全称記号 - Wikipedia
- パースの法則 - Wikipedia
- ボトム型 - Wikipedia
- 垂直記号 - Wikipedia
言語
- Rust (プログラミング言語) - Wikipedia
- LISPマシン - Wikipedia
- シンボリックス - Wikipedia
- Rust (programming language) - Wikipedia
- Julia (プログラミング言語) - Wikipedia
- Julia (programming language) - Wikipedia
- TLA+ - Wikipedia
- 弱い参照 - Wikipedia
- CLU - Wikipedia
- CLU (programming language) - Wikipedia
チャーチ=チューリングのテーゼ
- チャーチ=チューリングのテーゼ - Wikipedia
- Church–Turing thesis - Wikipedia
- 決定可能性 - Wikipedia
- Decidability (logic) - Wikipedia
- 宣言型プログラミング - Wikipedia
- 制約プログラミング - Wikipedia
- 項書き換え - Wikipedia
- Haskell/Denotational semantics - Wikibooks
- 自明性 (数学) - Wikipedia
- プロセス計算 - Wikipedia
- アクターモデル - Wikipedia
- セル・オートマトン - Wikipedia
- コラッツの問題 - Wikipedia
- 決定問題 - Wikipedia
- コンパクト性定理 - Wikipedia
- クワイン (プログラミング) - Wikipedia
- 値 (情報工学) - Wikipedia
- 無限降下法 - Wikipedia
- 数学的帰納法 - Wikipedia
- 契約プログラミング - Wikipedia
- ボイラープレートコード - Wikipedia
- ALTQ - Wikipedia
- 形式科学 - Wikipedia
- Formal science - Wikipedia
- スペースカデットキーボード - Wikipedia
- PAL (programming language) - Wikipedia
- Pattern matching - Wikipedia
- Functional programming - Wikipedia
Twitter
その他
- こんばんわChern-Simons汎関数ですさんはTwitterを使っています 「生成消滅演算子とか昇降演算子思いついた人ほんとすごいわ」 / Twitter
- こんばんわChern-Simons汎関数ですさんはTwitterを使っています 「作って減らして減らしたら増やしてとやってると神になった気持ちになれる」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「"if-then-else"という表現は発明だった。通常の英語では、elseを接続詞として使うことはできない。初期のプログラミング言語では "if not" とか "otherwise" などと書かれていたが、ALGOL60の時代には"else"が一般化していた。しかし最初に使いだした人物とその理由は不明。 https://t.co/TYJgdIIuip」 / Twitter
- if-then-else/if-then-else.md at master · e-n-f/if-then-else
- しいたけさんはTwitterを使っています 「forだろうがmap/filter/reduceだろうが、何の意図でそのコレクション操作してるのかが読み手にわかるようになってるコードであるかが大事だと思います map{}.filter{}.reduce{} ってつなげまくって書いた結果、本人しか理解出来ないコードとか山ほどあるし、自分もそういうのをたくさん生み出してきた」 / Twitter
- KanatokoさんはTwitterを使っています 「go言語にmap/filterが無い理由、みなさんきちんと理解しましたか?僕はロブ・パイク先生の口からはっきりとききました。「forの方が速い(軽い)から。」現場からは以上です。」 / Twitter
- KanatokoさんはTwitterを使っています 「Rubyなんかはコンピュータリソースよりプログラマの人的リソースの方が貴重、っていう考えでああなっているので、Ruby好きな人がgo言語好きになるわけないって話でしたね…」 / Twitter
- KanatokoさんはTwitterを使っています 「go経由でRustにたどり着いた人がJavaを選ばなかった理由について一言。「メモリ喰いすぎ」。やっぱそこか〜w」 / Twitter
- KanatokoさんはTwitterを使っています 「IoTみたいなのとかメモリ消費量を気にしたいケースだとRustが良いみたいね。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「ところで現代のプログラミング言語はバグを出しづらく設計されるべきです。実行速度みたいなのはオマケ。バグが一番困るからバグを出さないべき。ただ普通の人はCoqでwebアプリが書けたりはしないわけで、バグさえ出なきゃ書きづらくてもいいかというとそれも極端。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「「普通にスラスラと書いたプログラムが自然とバグのないプログラムになっているプログラミング言語」が現時点での良いプログラミング言語であると言えよう。スラスラ書けないのはダメだがバグまみれなのもいかん。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「※JavaやらRubyは現代にカウントしてません。」 / Twitter
- 令掛ベインさんはTwitterを使っています 「木を巡回しながら配列やマップにデータを集めて最後に構築するという流れ (いわゆるWriter) は頻出なのに言語側でサポートがなく書きづらいという問題がある #milone_lang」 / Twitter
- 令掛ベインさんはTwitterを使っています 「次は型検査を並列化したい。メタ型ごとにserialを発行する部分があって、その数を事前に予測するのが難しい (モジュール内の関数に推論された型スキームに依存してるから)。メタ型のアイデンティティを (モジュールID, serial) にすればいけるか #milone_lang」 / Twitter
- 令掛ベインさんはTwitterを使っています 「並列化作業の意図: データ構造をイミュータブルに保つことで並列化しやすいという話を実際にやったことがないので試してる #milone_lang」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「良いOOPLには凄いパワフルな性質があるのに、それが顧みられないままFPL良い!というのはちょっと違うと思うのですよ(OOPが良い論とはまた別な事に注意)。 特にモジュールシステムという点でいうと、クラスとモジュールがある程度一致してるとかは便利な事多いと思うんですよ。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「逆にパワフル過ぎる故に使いづらいのではないかという疑いもあったりするのですが、それはそれとして。」 / Twitter
users
その他
その他
histric-1
- phenanさんはTwitterを使っています 「構文解析で印象深いのは * Adaptive LL(*): 先読みテーブルを実行時に作ればテーブルサイズが発散しないという神の発想。目から鱗だった。 * Valiant parsing: CYK parsing って行列積の冪乗だよねから始まり、最終的には行列積の計算量まで落としてしまう変態アルゴリズム。騙された気持ちになる」 / Twitter
- すぱすぱさんはTwitterを使っています 「第一段階できた感 #mercari_intern https://t.co/wXvBj9jOMZ」 / Twitter
- わいさわ 澤 良弘さんはTwitterを使っています 「Pythonいいなと思う点は、標準で集合(set)を実装していることかなって最近思う。差集合 {1,2,3} - {3,4} => {1,2} が数学で使うリテラルと演算子だけで定義されているだけで素晴らしい。そして、適切に使うことで条件式や繰り返しが減るし読みやすい。」 / Twitter
- AzubnerさんはTwitterを使っています: 「母からのLINE。 卒論の研究でナンプレを扱っていた私が言えることはこれしかない。 「空いてるマスに変数x₁, x₂,...を対応させて、変数が満たすべき条件から連立方程式を構成し、各方程式の右辺を0としたときの左辺の多項式が生成するイデアルのグレブナー基底を求めればできるよ!」 https://t.co/5ARtN8qoXX」 / Twitter
- 白山風露@🔴👁️👁️🔴🔴👁️🔴さんはTwitterを使っています 「インターフェイスは継承して良い、データ構造は継承してはいけない、データ構造の継承に相当する処理はデリファレンスで実装しても良い なんだRustじゃん」 / Twitter
- ラジオ2さんはTwitterを使っています 「任意の密着空間への写像は自動的に連続写像であり、連続写像は当然写像なので、忘却(位相空間→集合)と密着位相(集合→位相空間)は互いにそれぞれ左随伴と右随伴 https://t.co/a98TeSYaxL」 / Twitter
- トデス子'\さんはTwitterを使っています 「TypeScriptの異様なときめきがある型システムがデファクトな選択肢として受け入れられている状況が直感に反するというのはある。ああいうことしてもユーザはついてくるという事実に勇気づけられる」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「純粋関数型言語が並列化に向いてるってのはどこから出てきた話なんだろう?(密結合になりがちなので雑に考えても難しそうなんだけどな)」 / Twitter
- 水無麻那さんはTwitterを使っています 「Haskell、データ依存でしか実行順序を制御できないわけで、IO アクションとか実行順序を明示的に制御したくなると困るわけだが、そこで phantom data の State 使ってデータ依存入れたら実行順序制御できるやんってなるの、何度見ても賢いなあってなる」 / Twitter
- Hiroki FukagawaさんはTwitterを使っています 「数学を知っていると、数学に悩まないので、何かを勉強する時に障害が少ないってことかな。それと、それぞれの領域には、それぞれの考え方があり、数学にならない部分がある。それをそれとして学べることが重要で、定義がどうのこうのとか言っているようではダメ。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「わかる。数学にならない部分があるかどうかは証明できないので、数学になってない部分、かな(すぐに数学っぽくしたがる、だめ)」 / Twitter
- mumumuさんはTwitterを使っています 「Lightweight Preemptible Functions [OSDI '20] Thread等より軽量に厳密なTimeout処理を実行できるように,Preemptible(Promiseのようにcooperativeではない)なユーザランドのライブラリを実装.launch/resume/cancelがIF.実はプ言語に詳しくなくて,十分理解できていないので,今度再挑戦したいわね」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t Elixirはtry catchよりも戻り値で:ok, :errorを返すか,プロセスごと落として再起動するという方針です。」 / Twitter
- エヌユルさんはTwitterを使っています 「MLのことは知らないけどHaskellでトップレベルに型書かなくてもHaddockでドキュメントにした時には推論した型を出すから矛盾してないと思うよ まあ普通警告されるからGHCの提出する型を問題なさ… 続きは質問箱へ #Peing #質問箱 https://t.co/GMg2WmtgcN」 / Twitter
- OSSタダ乗りおじさんさんはTwitterを使っています 「プログラミングやってて思うのは、すべてを副作用ありのStateと捉えてる人と、不変性を基礎においてる人の溝が大きすぎる」 / Twitter
- 弩.netさんはTwitterを使っています 「@mizchi 僕も似たようなことを感じることがあります。 やりたいことを処理の流れでとらえる人と、瞬間瞬間を切り出してとらえる人がいるようです。 脳内で動画を再生しているのか四コマを再生しているのかの違いといえるかもしれません。」 / Twitter
- 入田 関太郎(らむだ ふぁんたろう)さんはTwitterを使っています 「抽象化手法、継承とかミックスインとかインターフェースとか構造的部分型とか沢山あるけど、結局型クラス(Rustでいうトレイト)だけで良かったんだっていろんな言語を触って思うなどしている。 3年したら変わるかもしれないけど今はこれが一番だなー」 / Twitter
- kaorutさんはTwitterを使っています 「かつて情報系学徒だったので、さまざまなプログラミングパラダイムが存在するのは承知しているけど、でも結局は最も低い層で機械語の「命令」を逐次実行しているだけやん・・・とも思ってしまう。」 / Twitter
- Kazuki MoriyamaさんはTwitterを使っています 「Applicative Functor(2008)やExtensible Effects(2015)は関数型の近年の発展と言っていいのでは」 / Twitter
- Kohei SuenagaさんはTwitterを使っています 「数学的ゾンビ:定義とステートメントが与えられると証明支援系を動かして証明はできるが,これらのお気持ちは分からない者のこと.」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「C++から半年ぐらい離れてErlangをやっている。いつ戻ってこれるかな。とりあえずC++にはネイティブtupleリテラルとパターンマッチがほしい。」 / Twitter
- ICHIRO SATOHさんはTwitterを使っています 「pi-calculus自体は同期通信ですが、メッセージをプロセスでモデル化すると非同期メッセージも書けます。ただpi-calculus自体は副作用あります。基本的に名前渡し通信というのはポインタと同じなので。@ashigeru 同期やメッセージング関係を直感的に書けると言うのは…」 / Twitter
- nemさんはTwitterを使っています 「数学書読んでてCoqで形式化したいときに集合論を自分で形式化していないと不便なので今日から夜は松坂集合位相を形式化をしていきたい。」 / Twitter
- retrageさんはTwitterを使っています 「Rust、Cほどではないにしろstructとかがどう配置されるか想像しやすいし、値の参照とコピーが明示的なのでどこでコピーがされるかがわかるのでやっぱりシステムプログラミングに向いている」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「Rubyではまさにその処理の名前が決まらずに4年くらいも名前で揉めた結果ごくごく最近になってtallyという名前で採用者された https://t.co/i8PC7V13xl」 / Twitter
- 高卒工員プログラマーさんはTwitterを使っています 「数学の弊害は数式の記述法と10進数かな もし数式が16進数逆ポーランド記述だったら数式=操作だからプログラム言語の制御構造と数式の違和感がなくなったという妄想。」 / Twitter
- ぽんこつさんはTwitterを使っています 「再帰が問題なのは読みづらいではなく末尾最適化されなかったときに、意図せずStackOverflowする可能性がある方で、そこでScalaのtailrecでコンパイラに末尾最適化を保証させる手法が(単なるScalaのステマ」 / Twitter
- mr-csceさんはTwitterを使っています 「偶にPrivateの関数をテストしたい時があるけど(テストがないコードのリファクタリング中に、ある関数の振る舞いを変えていないか確認したいなど)、Clojureなら#'付けるだけで良いのでこれもちょうどいい感じ。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「.@EzoeRyou 氏がJulia民の逆鱗に触れておるgkbr (Juliaは数学・数値計算方面が大ユーザなので添え字の下限が 0 じゃなくて 1 の方が自然」 / Twitter
histric-2
- tabasconianさんはTwitterを使っています 「oO(以前社内で使った形式仕様記述についての資料の焼き直しを晒しておこう・・・ https://t.co/7whT8Y21iU)」 / Twitter
- yksym.github.io/memo.md at master · yksym/yksym.github.io
- 29さんはTwitterを使っています 「Promiseについて、端的な解説をみつけた。 https://t.co/jwm29dvU5R https://t.co/byS58dc6GE」 / Twitter
- Promiseを使う - JavaScript | MDN
- yutakang_jpさんはTwitterを使っています 「帰納法の自動化についての論文をTACAS2021へ提出しました。原稿はarXivで入手可能です。大雑把に説明すると、FMCAD2020で発表したソフトウェアと比べ、精度を90%向上させつつ、しかも計算に必要な時間が62%短縮できました。https://t.co/VMwi96gngJ https://t.co/IRvqUGIXME」 / Twitter
- [2009.09215] Faster Smarter Induction in Isabelle/HOL
- msyksphinz_devさんはTwitterを使っています 「除算が乗算に置き換わる話、LLVMを勉強したときに出てきた。b%12をllcが 0x2AAAAAABの乗算とシフト演算に置き換えたときは本当に頭が狂いそうになった。https://t.co/C0WeVzHRYS」 / Twitter
- Arithmetic and logic instructions — Tutorial: Creating an LLVM Backend for the Cpu0 Architecture
- fumieval/urgeopts: getopts (shell) replacement
- ふみ(𓆑𓅱 𓅓𓏭𓇌𓅱𓄿𓂋)さんはTwitterを使っています 「コマンドラインオプションの定義をYAML形式で読み込んで与えられた引数をパースし、シェルスクリプト向けにevalできる形で出力する、単体で動作するclapのラッパーを作った(要するに超豪華なgetopts) https://t.co/POoZ8bP1UP #Rust https://t.co/Odg4tW2hRd」 / Twitter
- kinabaさんはTwitterを使っています 「https://t.co/0NWgVox1bo λ計算の式を、値のレベルでなく型をとって型を返す的な型レベルの計算だと抽象解釈的に無理矢理解釈しちゃって最後まで計算できたら型チェック完了!!ってするスタイルと、普通のλの型システムとの等価性証明を、既知のプログラム変換7つに分解して完全理解する論文結構好き」 / Twitter
- type-reduction-ipl12.pdf
- o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「PFDS 5.2 章の刹那的純粋関数的キューを Haskell で GHC の線形型を使って実装してみた。値を複数回使うと償却計算量 O(1) が成立しなくなるので、線形型を使ってそれをできなくできたはず。 https://t.co/kNeIYgcMoX https://t.co/AfiP1u18k1」 / Twitter
- ephemeral-linear-data/Ephemeral.hs at 998b768f27560fc1134685b14726de855c568465 · kakkun61/ephemeral-linear-data
- ガラスボーさんはTwitterを使っています 「Rustが本当にメモリ安全性を高めているのかをCVEから分析するという論文。ちゃんとした会議に出したものではないっぽいけど、おもしろそう https://t.co/IhrfDkGc1J」 / Twitter
- [2003.03296] Memory-Safety Challenge Considered Solved? An In-Depth Study with All Rust CVEs
- mugiさんはTwitterを使っています 「自分が使いたくてRBSからTypeScriptの型定義に変換するgemを作ってるんだけど、超基本的な変換はできるようになった https://t.co/zdbfowngDo https://t.co/iIPu7YGn0C」 / Twitter
- rbs2ts | RubyGems.org | コミュニティのGemホスティングサービス
- 艮 鮟鱇/うしとら あんこうさんはTwitterを使っています 「そういやLLVMバックエンドのチュートリアル記事を書く書くいいながら1ミリも書いていませんが、卒論が終わったらLLVM 11に対応させて書く計画があります。あとLLVM 9時代の下書きはすでに公開してあります。 https://t.co/y3eRf4w0kW」 / Twitter
- ushitora-anqou/write-your-llvm-backend: 手を動かせばできるLLVMバックエンド チュートリアル(WIP)
- akiraさんはTwitterを使っています 「ニューラルネットワーク(NN)は確率的にモデルのフィッティングを行うが、決定木系は決定論的にフィッティングを行う。画像のように0/1で表現できないものや自然言語のように曖昧で例外が多いものはNNが強いが、多くの事象はYes/Noで処理できるため決定木系が強い、と提議 https://t.co/P9c9odkGxA」 / Twitter
- When and Why Tree-Based Models (Often) Outperform Neural Networks | by Andre Ye | Towards Data Science
- α改さんはTwitterを使っています 「setjmp/longjmpでユーザーコンテキストを切り替えるのうまく行かなかったけど、ucontext_tと{get,make,swap}contextをつかったらうまいこと実現できた。 https://t.co/LFy8OTWfGV」 / Twitter
- context switching using ucontext_t and context family functions
- ruichiさんはTwitterを使っています 「“borrowシステムはその性質上、あるvが関数fによってborrowされていたら、fが処理を終えるまでvを保持しないといけない。そのため、tail-call eliminationができない” へえ / “HaskellのLinearTypes言語拡張について少し調べた - TSUGULOG” https://t.co/YZwUwg0dro」 / Twitter
- HaskellのLinearTypes言語拡張について少し調べた - TSUGULOG
- GHCの線形型プロトタイプを試すだけ - syocy’s diary
- 城戸 (Legalscape)さんはTwitterを使っています 「厳格に法を記述できるプログラミング言語を作った研究。F*を使った証明付きで、実際にフランスの税法関連のソフトウェアに法と食い違いがあるバグを発見できた。著者らはINRIAとMSR。 "[2103.03198] Catala: A Programming Language for the Law - https://t.co/gEZV4hZd7N" #みてる https://t.co/QZpzt9azqN」 / Twitter
- [2103.03198] Catala: A Programming Language for the Law
- ノーンさんはTwitterを使っています 「完全に決定論的に意識を計算できたら、 - 初期値を宣言する - 時間発展を宣言する であとは数学的帰納法によって、意識が任意の時間計算されたことになるので、宇宙の熱的死を回避(?)することができる。(イーガンの塵理論)」 / Twitter
- 入田 関太郎(らむだ ふぁんたろう)さんはTwitterを使っています 「オブジェクト指向はモジュール設計ぐらいにしか思ってないし、関数型はイミュータブルプログラミングぐらいにしか思ってないので人生がめっちゃ楽」 / Twitter
- みんな大好き🐐ヤギのさくらちゃん🎯さんはTwitterを使っています 「@lambda_funtaro 一方は巨視的な設計手法で、もう一方は局所的な要素技術なのに、なぜか両立できないと思ってる人が多いですよね」 / Twitter
@qnighy
- Masaki HaraさんはTwitterを使っています 「システムの正しさを還元主義的な部分と量的な部分に分けるという見方は重要そう。たとえばループなら不変条件とループ変量の2つの道具に分けられる。量的な問題として他にわかりやすいのはメモリリソース(スタックを使い切らないこと、ヒープを使い切らないこと)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「前者は余帰納的な証明、後者は帰納的な証明と対応してるとか考えられそう。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「RustコンパイラはそもそもノードにID振ってHashMap<NodeId, RefCell<SomethingResolved>> みたいなmapをそこかしこに持つという構造になっていて、構文木を純粋データとして扱う気がさらさらない感じでやっている」 / Twitter
- Masaki HaraさんはTwitterを使っています 「なので、型推論とかでも制約作る段階でNodeIdに型変数のID紐付けといてあとで全部展開みたいな感じでできるはず」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「Rustのジェネリクスの文法 struct Point<T> { x: T, y: T, } let point = Point::<i32>{x:1, y:2}; なんでPoint<i32>じゃなくてPoint::<i32>ていう気持ち悪い感じになってるの?」 / Twitter
- Hoshi NyanさんはTwitterを使っています 「@uchan_nos https://t.co/B76t5Jgc3i (f<t,u>(a))みたいなケースで曖昧になっちゃうから、らしいです」 / Twitter
- Rustのturbofishを理解する | κeenのHappy Hacκing Blog
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@takoeight0821 @uint256_t さんからもその記事を教えてもらいました。(f<t,u>(a))は、2つのboolを持つタプル型なのか、t,uという型で具体化したジェネリック関数fの呼び出しなのかが分からないということですよね。ただ、fが値なら前者、型名か関数なら後者、と確定するような気がしますが。」 / Twitter
- Hoshi NyanさんはTwitterを使っています 「@uchan_nos @uint256_t その通りです。ただ、それを許すと、意味解析をするまでASTが確定しないので、パーサを書くのがとても大変になります(実際、C++のパーサはかなり大変なことになってるはずです) このスレッドが参考になるかも:https://t.co/XiaSZgvsq5」 / Twitter
- Turbofish operator `::<>`, why is it ambiguous? - help - The Rust Programming Language Forum
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@nishio 先読みが面倒というのはその通りだと思うのですが、しかしRustは関数を定義する前に使うのが合法なので、結局先読みしてるんですよね。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「「関数を定義するより前に使える」は2パスというだけで構文的な先読みではないからなあ」 / Twitter
- Masaki HaraさんはTwitterを使っています 「あと曖昧な例として ( A < B , C > ( D ) ) が知られている」 / Twitter
- Masaki HaraさんはTwitterを使っています 「コンパイラのアーキテクチャの話ってこういう「なぜ◯◯を実装しないのか」の理解に結構ダイレクトに役に立つんだなあ」 / Twitter
- Masaki HaraさんはTwitterを使っています 「実例ベースだとC++とかいう力技の塊によって誤解を生んでしまうという……」 / Twitter
- 🍣さんはTwitterを使っています 「これ、逆にTypeScriptとかはなんでターボフィッシュなしでパースできてるんだよと思うようになった(実際めっちゃ大変そう)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「少し前にTypeScriptのBNF書こうとしたときにあの辺りが行きあたりばったりすぎて、宣言的に条件を書くのは厳しいなと思った」 / Twitter
- Masaki HaraさんはTwitterを使っています 「これも出てくる例は同じで ( A < B , C > ( D ) ) やその亜種なんですが、ジェネリクスを持つことと比較演算の対象になることが両立することはほぼないので実際に動く曖昧なコードを構成するのは難しそうだなと思った」 / Twitter
- Masaki HaraさんはTwitterを使っています 「修正って言ったけど「TSがJSの上位互換になっていない」ことが修正されたわけではない」 / Twitter
- Masaki HaraさんはTwitterを使っています 「Rustコンパイラの <<, >>, &&, || などの分割処理はアドホックだけど、確かproc-macroのAPIでは独立したトークンにしておいて空白情報を保持するようになってたような記憶がある (これで貪欲な字句解析の振る舞いを再現するの大変そうだけどどうしてるんだろう)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「あの辺りは実際厳密にはJSの上位互換になっていない点があって、最近のTypeScriptで修正がありましたね (.js のときはJSのルールに忠実にパースする)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「https://t.co/pyO3cTPaQo」 / Twitter
- Announcing TypeScript 4.2 | TypeScript
- Masaki HaraさんはTwitterを使っています 「パーサーの先読み云々というのは実装の複雑性よりは仕様の複雑性の話だと思っていて、仕様を複雑化することのメリットよりも単純に保つメリットを取るという設計判断に対して無能って言ってしまうのは理解不足だと思う」 / Twitter
- Masaki HaraさんはTwitterを使っています 「普通は「常に f<T> のほうが単純じゃない?」ってなりそうだけど、それで単純になるのはユーザーマニュアルであって仕様ではない。もちろんユーザーマニュアルが単純であるに越したことはないけどそこにはトレードオフがある」 / Twitter
- Masaki HaraさんはTwitterを使っています 「少なくともRustの場合、ユーザーにより親切なエラーメッセージを出すために実装上は先読みをしていたと記憶している。これなら言語仕様の複雑性には影響しないので。」 / Twitter
- kinabaさんはTwitterを使っています 「これはまあその通りだと思うんだけど、しかし人類の総体として考えてみると。自然にこうあって欲しいと思うような文法を定めると仕様が複雑になってしまうのは、現在の人類の持つ文法や構文解析記述のパラダイム(CFGとか)の無能感がすごいと思わなくはない。」 / Twitter
- kinabaさんはTwitterを使っています 「形式的な記述言語(プログラミング言語とか)を人類に作らせると、なんかゆるく木構造を作りつつ、その木の親子構造に沿って宣言とか属性とかを伝搬させつつ、木の末端近くではその属性とかを大いに使って多少複雑な記述をする、みたいなものが自然と発生しがちなのであるが、」 / Twitter
- kinabaさんはTwitterを使っています 「チョムスキーとかがいわゆる"""自然言語"""を分析したみたいに、"人類が設計しがち言語"をちゃんと分析して統一した理論にするみたいな話」 / Twitter
- yukiさんはTwitterを使っています 「Turbofishはrustcのtestのところに物語が書いてあって面白いです。その名もBastion of the Turbofish(Turbofishの砦)。ある人が::<>を<>にしようとしたけど、結局こてんぱんにされてPRを閉じたので、後世の人が同じ過ちをしないように書いた、みたいな感じらしい(?) https://t.co/w5iXSekbVa」 / Twitter
- rust/bastion-of-the-turbofish.rs at master · rust-lang/rust
- FadisさんはTwitterを使っています 「テンプレート引数のカッコに<>を使うと演算子かどうか判断するのが難しくなる問題の解決に真面目に取り組んだD言語のことを覚えている人は居るだろうか」 / Twitter
@takoeight0821
- Hoshi NyanさんはTwitterを使っています 「カリー化された関数や型は、あまり変わらない引数を前に、よく変わる引数を後ろにすると便利」 / Twitter
- Hoshi NyanさんはTwitterを使っています 「カリー化されてないなら逆の方が直感的」 / Twitter
- Hoshi NyanさんはTwitterを使っています 「でもprintfとかは前者だしな…」 / Twitter
- Hoshi NyanさんはTwitterを使っています 「Q:なぜ? A:部分適用を多用するから」 / Twitter
@__pandaman64__
2020
2020-11-20
- 井山梃子歴史館さんはTwitterを使っています 「今回はMLスタイルの関数適用をバックトラック無しで書くことに成功したのでパーサが完全にpredictiveかつ線型時間になりました」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「Rust Analyzerのinlay hints(型推論結果が見えるやつ)のフォントが小さく見やすくなってキュートだね」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「こんな感じで変数の型とか引数名が分かる.メソッドチェインの途中型も分かったりする https://t.co/lF9lGKTeXM」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「こういう表示があれば型推論の問題とかキーワード引数欲しい!というのも低減されるよね」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「https://t.co/OFHgCq7GTy」 / Twitter
- pratt/lib.rs at 80e9bd67295602da91489ec18ddd34815ba442fb · pandaman64/pratt
- 井山梃子歴史館さんはTwitterを使っています 「空白の扱いでLL(2)かな」 / Twitter
2020-11-26
- 井山梃子歴史館さんはTwitterを使っています 「パーサのイベントとしてalternateイベントを吐く」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「パーサコンビネータのalt, とりあえず全部動かしきってからエラーの度合いでどれ選ぶか選択すればいいな」 / Twitter
2020-12-06
- 井山梃子歴史館さんはTwitterを使っています 「JITパーサコンビネーター発明してしまったかもしれん」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「これ筑波で研究してるやつっぽいな」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「https://t.co/YMJdWEyLaM これかもしれん」 / Twitter
- ry08-4.pdf
2020-12-18
- 井山梃子歴史館さんはTwitterを使っています 「証明はテストを代替できないね」 / Twitter
- ノーンさんはTwitterを使っています 「@__pandaman64__ やっぱり実行時エラーの可能性ですか?」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「@nkowne63 間違っている可能性が高いものに証明を与えるのはムズい 実用的にも重めのlinterぐらい(アノテーション無し、健全でなくてもok)じゃないとなあ」 / Twitter
- ノーンさんはTwitterを使っています 「@__pandaman64__ 確かに、何でも証明できるほど人類は賢くないですもんね」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「proptestか精々モデル検査ぐらいじゃない?」 / Twitter
- proptest - Google 検索
2020-12-22
- 井山梃子歴史館さんはTwitterを使っています 「型システムとか実はいかに「ゆるい」かが重要なんじゃないかと最近思っている」 / Twitter
2020-12-23
- 井山梃子歴史館さんはTwitterを使っています 「参照カウンタを全く使わないBoxの方がRc/Arcよりも使われている Box: https://t.co/MlHhR5L0ib Rc + Arc: https://t.co/sZELuSyx2t」 / Twitter
- YutakaAokiさんはTwitterを使っています 「@a4lg Heapから確保するメモリーの自動解放は、Rustでは参照カウンタで行っているだけで、所有権は余り役立っていません。所有権や(Rust独自の)ライフタイムなど、Rust独自の機構が役立っているのはローカルオート変数の参照型の危険防止にほぼ限定されていると私は思っています。」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「所有権システムは決定的なリソース確保・開放を提供する(PythonのwithやC#のusingを見よ) メモリに対して所有権を考えることによってGCレスのメモリ管理が可能となるので,所有権がGCを取り除くための重要なコンポーネントであるとはいえるだろう」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「参照のライフタイム解析と可変・不変参照のエイリアス制限を組み合わせることによってデータレースおよびイテレータ無効化といった難しい問題(JavaやGoでは扱えていない)を解決しているという点も忘れてはならない」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「VecやStringも当然参照カウンタ(部分的な所有権)を使わずにメモリの自動解放を実現しており,Rustにおいて主要な部分は単一の所有権に基づいている」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「ここでの話題はunique_ptrとshared_ptrのどっちがメジャーなのか(そしてC++ではshared_ptrの方が良く使われていることも多いでしょう)(C++の参照は弱いからね)なので」 / Twitter
2021
2021-01-01
- 井山梃子歴史館さんはTwitterを使っています 「Linear Haskellでin-placeな変更?ができてるっぽいのどういう理屈なのかきになる」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「RGAやCausal Tree, GHCに導入されたCompact Normal Formっぽいな」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「Linear Haskell論文にLinear functionでmutationをやる話があるっぽい」 / Twitter
2021-01-02
- 井山梃子歴史館さんはTwitterを使っています 「Isabelleのwf, inductionで直に定義されてるな」 / Twitter
2021-01-08
- 井山梃子歴史館さんはTwitterを使っています 「プログラミング言語の設計はトレードオフの集まりなので,デザインパターンは言語の欠点というよりも相補的な存在と捉えるのが良いと思うな. 例えばRustはxxx()とxxx_mut()の両方を実装する「パターン」を要求するけどこれも型システムをシンプルにして推論をtractableにするという利点もあるわけで」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「それはそれとして優れていることが知られてる言語設計(代数的データ型の採用とか)入れろや!!!となるのも最もとは思う」 / Twitter
2021-01-24
- 井山梃子歴史館さんはTwitterを使っています 「証明ではなくrefinementはいかが」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「開発コミュニティがデカくてモダンな環境の方がええ」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「LeanかCoqやっとけ」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「反例チェッカがとりあえず食い違うケースだけ探索するとか面白そう」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「ちなみに定理証明支援系(あとPony)では1/0=0だけどそれは利便性のためで人間の数学とは関係ないからね https://t.co/JzwzKbhBAx」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「Irisには複製できる命題あったな」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「機械学習ってやつで証明の「惜しさ」みたいのがわかんないかな」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「ポインタに対する様々な操作(キャスト,オフセット)を許容したまま最適化と組み合わせるとコーナーケースで爆発するのじゃ」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「反証可能性は科学理論の必要条件でも十分条件でも無いよ(よさを見積もる指標ではある)」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「「機能が正しいこと」のwitnessってどんなものなんだろう」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「今日のIsabelle: definitionの等号がイコール2つ(==)を使うべき.イコール1つ(=)だとなぜか型がboolに推論されて物故割れる」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「簡約がいつまで経っても終わらない…STLCは停止性が証明されてるはずでは…?」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「定式化に対するロックインなる概念,初めて目にした」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「Thus we are led to conclude that, although everything mathematical is formalisable, it is nevertheless impossible to formalise all of mathematics in a single formal system, a fact that intuitionism has asserted all along. とのこと」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「妄想が止まらなくて本業に支障をきたすので封印です https://t.co/c21ocd1wYR」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「ぜひ作ってみてね ぼくがやるならまずRacketと継続触るとことからかなあ」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「vtableとfat pointer, あとdirectory passingとかか?」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「Dictionary」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「手書きパーサでML-style function application(f x)をパースするときの王道って何なのか気になる 今は式パースしたあともう一回式パースしてみて駄目だったらバックトラックしてる」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「MinCamlは引数に来れる式の形を制限してた」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「webml/parser.rs at master · KeenS/webml https://t.co/KFl2JLAPed やっぱ手モナに回帰するのか…」 / Twitter
- webml/parser.rs at master · KeenS/webml
- 井山梃子歴史館さんはTwitterを使っています 「Intrusive list(という名前)広く知られてないんだなあ」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「ところで正則性が成り立つ、って証明はどこにもないよね やっぱ論理学における実験と定式化のプロセス学んでから、機械学習の研究した方がいいんじゃないの?という気がしてならない」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「論理体系を考えるの一種の実験科学だと思ってるからね」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「いやーバックトラックが必要ならもうLRに逃げちゃおかな」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「Haskellのundefinedはある意味矛盾を導入してるけどIsabelle/HOLのundefinedは無矛盾なの面白いな」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「GCがない言語ではasync/awaitはただの糖衣構文以上の意味を持つのじゃ」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「コンパイルエラーをチャンネルで集めてるのはエラーが発生しても中断したくないからじゃないかなあ(エラーは一度に出てほしいので) https://t.co/hH2pfry7cp」 / Twitter
- Go コンパイラのコードを読んでみよう | ebiebievidence.com
- 井山梃子歴史館さんはTwitterを使っています 「関数を返す関数の階数が高くなるとカリー化と組み合わせたときにill-definedにならない? 例: int -> int -> intの階数は1っぽいがint -> (int -> int)の階数が2になる」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「カリー化しない言語ならいいが…」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「今でも判然としないな」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「まあでもβ簡約でも保たれないしな」 / Twitter
@yhara
- yhara (Yutaka HARA)さんはTwitterを使っています 「バックエンドはRubyでフロントはTypeScriptだけど、データの型はどっちから触る場合も同じなので共通のチェックをしたい。ということですね。なるほどなあ。」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています 「@tenpoku1000 そうですね、それがやりたいんですが、種類別にスタックを分けてしまったのでできなくなったなあという話でした。経緯→ https://t.co/SoFaN932M6 別の書き方をするとスタック分けなくて済みそうなのでちょっと試してみます。」 / Twitter
- a.md
- yhara (Yutaka HARA)さんはTwitterを使っています 「Rust、こんなに書き換えに厳しいのに、structの要素が全部書き換え可能なのはなんでなんだろう?ここも「mut付けない限りreadonly」で良かったんじゃないか。」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています 「・モナドを実装するには高階多相(かそれに代わるもの)が要る ・F#のコンピュテーション式ではモナドを実装できるらしい ということはF#には高階多相がある?と思ったんですが、どうやら無いっぽいんだよな。どうなってるんだろう。」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています 「Crystalがクロージャに対応するllvm funcの名前に「どのメソッドにあったか」みたいな情報を含めてるの、ふーんと思って見てたけど、含めないとデバッグの時に泣くことがわかったので #shiika もそうした https://t.co/unfQoowYSC」 / Twitter
@nalsh
- 成瀬さんはTwitterを使っています 「アランケイの「オブジェクト指向」は現代でいう「マイクロサービス」のこと定期」 / Twitter
- みょうがさんはTwitterを使っています 「@nalsh アクターは?」 / Twitter
- 成瀬さんはTwitterを使っています 「@mrkn 確かにアクターと言ってもよいですね」 / Twitter
- 成瀬さんはTwitterを使っています 「オブジェクト指向プログラミング言語も「オブジェクト指向」の後に出来ているので、逆かはあんまり論点じゃなくて、アランケイの「オブジェクト指向」に合致するものは何かという問いに対して、マイクロサービスやアクターは該当するけど、OOPのオブジェクトは違うよねというおはなし」 / Twitter
- 天重誠二さんはTwitterを使っています 「「Smalltalkのオブジェクトはコンピュータの可能性全体の再帰」といっているので、彼の考える "Object" というのはコンピューティングリソースをメモリやらCPUやらに分解しないで「コンピュータ」という形に統合したときの全体性とその可能性のことを指している https://t.co/AgU5MlkAc1」 / Twitter
- The Early History Of Smalltalk
- 天重誠二さんはTwitterを使っています 「> Instead of dividing "computer stuff" into things each less strong than the whole—like data structures, procedures, and functions which are the usual paraphernalia of programming languages—each Smalltalk object is a recursion on the entire possibilities of the computer.」 / Twitter
- 天重誠二さんはTwitterを使っています 「このあたりの発言とマクルーハンからの影響などを考えたときに、彼の考えるコンピュータとは他のメディアをシミュレートするようなメタメディウムであり(これが「コンピュータの可能性全体」)、これに観念としてつけられた名前こそが"Object"だとおもう。」 / Twitter
- 天重誠二さんはTwitterを使っています 「メタ・メディウム特性をもった"Object"はおそらくコンピュータ以外にもいくつか考えることができ、それが彼のたとえで出てくる「細胞」であるとか「レゴブロック」であるとかだろう。このあたりが「オブジェクト指向」という観念の形成に影響しているだろうことはわかる。」 / Twitter
@bd_gfngfn
- 画力・博士号さんはTwitterを使っています 「OCamlのように高級に書く “モード” もあるしRustのように安全性を保証されて低級に書く “モード” もあるような計算機言語が創りたいような気もしてきた」 / Twitter
- 画力・博士号さんはTwitterを使っています 「モジュールごとに高級か低級かのモードが選べて,高級側から低級側を見るとインターフェイスとしては所有権など低級側の実装の都合による註釈が漏れていないことが保証されるような言語のイメージ」 / Twitter
- Jun InoueさんはTwitterを使っています 「モジュール単位で切り替えだと、単にFFIが便利な二つの言語を使う感じになってしまいそうな気がする。 Staging的なインターフェースで低級層のメタプロを高級層からできるとすごく便利そう」 / Twitter
- 画力・博士号さんはTwitterを使っています 「ああーなるほど,やはり多段階計算最強伝説」 / Twitter
- Jun InoueさんはTwitterを使っています 「@bd_gfngfn 結構挑戦した人はいるけど、大体中途半端で終わっちゃってます。あんまよく知らないけど、 二階層とも違う言語(heterogeneous staging)→型設計・FFI的部分の設計が大変+学習曲線が鬼畜に 二階層とも同じ言語(homogeneous staging)→被生成コードが低級層に上手くマッピングしない みたいです」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@jun0inoue 情報ありがとうございます,現実的に使いやすい言語になるか以前に理論的にも型システムの「FFI的部分の設計」はかなり手間を要しそうだなと想像します」 / Twitter
- Jun InoueさんはTwitterを使っています 「@bd_gfngfn そうですね。大体みんなEDSLにするような方向に進むんですけど(例: ETHのlightweight modular staging)、Haskellのモナドプログラミングみたいな煩雑さがつきまとってしまって、どうも上手くない。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「OCamlでも低級に書く手段があることは把握しているけれども,あまり本格的に使ったことがないので “安全” なのかについては個人的に知見が足りてない」 / Twitter
- 画力・博士号さんはTwitterを使っています 「“複数の目的意識の言語が混合できる” 体系,少し前にこういうのを見つけていたんだった(まだ途中までしか読んでない): FabULous interoperability for ML and a linear language [Scherer, New, Rioux & Ahmed 2018] https://t.co/XDVC3FKdBO」 / Twitter
- [1707.04984] FabULous Interoperability for ML and a Linear Language
- κeenさんはTwitterを使っています 「低級と高級を使い分ける話だとCommon Lisp最強ってずっと言ってる(gotoがある)(マクロでラップしてloop式とか提供できる)。安全かどうかは君の目で確かめてくれ!」 / Twitter
- Miura HidekiさんはTwitterを使っています 「私も、「低級と高級を使い分ける話だとCommon Lisp最強」だと思うけど、その理由はコンパイラマクロとMOPだと思っている」 / Twitter
@blackenedgold
- κeenさんはTwitterを使っています 「Rustで型レベルペアノ数からの証明。そうか、const proof: Type1 = Option::<Type2>::None;で Type1 == Type2が表現できるんだ。 Proving that 1 + 1 = 2 in Rust https://t.co/orBRi4KywG」 / Twitter
- Proving that 1 + 1 = 2 in Rust
- κeenさんはTwitterを使っています 「ん、違う。 const proof: Option<Type1> = ...だ。」 / Twitter
- κeenさんはTwitterを使っています 「継続的にRustコンパイラを高速化してそのレポートブログを書いてきたNicholas Nethercote氏がMozillaの体制変更でブログを書く時間がとれなくなるからと、いままでの総括を書いてる。 How to speed up the Rust compiler one last time – Nicholas Nethercote https://t.co/pbs3CzbyFT」 / Twitter
- How to speed up the Rust compiler one last time – Nicholas Nethercote
- κeenさんはTwitterを使っています 「どのツールを使ってどういう変更をしたかとかのコンパイラに限らない高速化一般の知見がまとまってるのですごく参考になる」 / Twitter
- κeenさんはTwitterを使っています 「propertyテストの表明をそのままsymbolic executionエンジンに食わせて証明できるよねって話。こういうのやってる人いるんだ。symbolic executionエンジンはLLVMのSEエンジンのKLEE。 Rust testing or verifying: Why not both? – Alastair Reid – Researcher at Google https://t.co/BzQgfwNeYa」 / Twitter
- Rust testing or verifying: Why not both? – Alastair Reid – Researcher at Google
- κeenさんはTwitterを使っています 「> 興味を持った方はぜひこの命題の逆「(¬a)∧(¬b)⟹¬(a∨b)(¬a)∧(¬b)⟹¬(a∨b)」を証明してみてください。 鬼かな? Idris で理解するカリー・ハワード対応 - Qiita https://t.co/BMDHYxuU4Z」 / Twitter
- Idris で理解するカリー・ハワード対応 - Qiita
- κeenさんはTwitterを使っています 「排中律を仮定すれば em: {a: Type} -> Either a (a -> Void) em = assert_unreachable」 / Twitter
- κeenさんはTwitterを使っています 「証明できる deMorganAnd : {a, b: Type} -> ((a, b) -> Void) -> Either (a -> Void) (b -> Void) deMorganAnd {a} {b} h = case (em {a = a}, em {a = b}) of (Left pa , Left pb) => void $ h (pa, pb) (Right pa, _) => Left pa (_ , Right pb) => Right pb」 / Twitter
- κeenさんはTwitterを使っています 「ブログ書いてるときのκeen「依存型使うと誤りがないことを保証できるんですよ、便利でしょう」 コード書いてるときのκeen「なんでベクタを操作したいだけなのに証明書かなきゃいけないの!」」 / Twitter
- κeenさんはTwitterを使っています 「あー、plus n (minus m n) = mって成り立たないのか(m < nのときminus m n = 0で定義されているため)」 / Twitter
- κeenさんはTwitterを使っています 「うおー、悩んだ証明めちゃくちゃ簡単だった。定理がないと思ったらby definitionだった。定義はちゃんと確認しましょうね。」 / Twitter
- κeenさんはTwitterを使っています 「あ、ステートメント勘違いしてた。普通に直観主義で証明できわ。 deMorganOrRev : (Pair (a -> Void) (b -> Void)) -> ((Either a b) -> Void) deMorganOrRev (na, _) (Left a) = na a deMorganOrRev (_, nb) (Right b) = nb b」 / Twitter
- κeenさんはTwitterを使っています 「すわIdrisのバグか?と思った挙動を色々調べていったらautoの指定が抜けてた。」 / Twitter
- κeenさんはTwitterを使っています 「n + (m - n) は成り立つ。何故なら m - nはn < mの証明を要求するから。」 / Twitter
2020-12-06
- κeenさんはTwitterを使っています 「自然数の加法の交換法則 by Idris - コラッツ予想がとけたらいいな2 https://t.co/m84SHZc44l」 / Twitter
- 自然数の加法の交換法則 by Idris - コラッツ予想がとけたらいいな2
- κeenさんはTwitterを使っています 「xだけの分岐と再帰で証明できるね comm : (x, y : Nat) -> x + y = y + x comm Z y = rewrite plusZeroRightNeutral y in Refl comm (S x) y = rewrite sym $ plusSuccRightSucc y x in rewrite comm x y in Refl」 / Twitter
- κeenさんはTwitterを使っています 「標準ライブラリの証明も同じ方針。 https://t.co/Ro97lHgzkK」 / Twitter
- Idris-dev/Nat.idr at master · idris-lang/Idris-dev
- κeenさんはTwitterを使っています 「Idris面白機能:if then elseはオーバーロード可能 ifThenElse: Maybe a -> (a -> b) -> b -> b ifThenElse (Just a) f _ = f a ifThenElse Nothing _ b = b λΠ> if Just 1 then (+1) else -1 2 : Integer λΠ> if Nothing then (+1) else -1 -1 : Integer」 / Twitter
2020-12-24
- κeenさんはTwitterを使っています 「すごく丁寧。DSTとかtransparentとかのメモリ表現もだけど、一通り使えるものを作るのに必要なプラクティスがまとまってるのって中々ないよね。 Rust で独自のスライス型や文字列型を定義する - 何とは言わない天然水飲みたさ https://t.co/sYzYFYNKym」 / Twitter
- Rust で独自のスライス型や文字列型を定義する - 何とは言わない天然水飲みたさ
- κeenさんはTwitterを使っています 「Tokio 1.0に対応したhyper 0.14もリリース。hyperもRustのデファクトといっていい(基礎的な)HTTPライブラリ。 hyperの方はまだやることが残っているので1.0ではないが、1.0へのロードマップは立てているとのこと hyper v0.14 - seanmonstar https://t.co/bHcDinZ5fk」 / Twitter
- hyper v0.14 - seanmonstar
- κeenさんはTwitterを使っています 「Rustのデファクトといっていい非同期ランタイムのTokioが1.0をリリースした 🎉 向こう3年は2.0のリリースはしないし、5年は1.0のメンテナンスを続けると約束。 来年はStreamやio_uring、トレーシング、Tokio周辺のエコシステムに取り組むらしい Announcing Tokio 1.0 | Tokio https://t.co/AwOJIKOI7V」 / Twitter
- Announcing Tokio 1.0 | Tokio
- κeenさんはTwitterを使っています 「Tokioは今のところネットワークIOを非同期化するのがメインで、ファイルIOについては裏でIOスレッドを作って動作し、それっぽく動いているだけだった。io_uringを使えばOSサポートによるファイルIOの非同期化ができる」 / Twitter
- κeenさんはTwitterを使っています 「赤黒木が速いのでよく使われるとは聞くけど現実のライブラリではあんまみないなぁ。Rustはキャッシュパフォーマンス意識してB木だしOCamlはAVL木。Haskellもサイズベースの平衡木らしい。SMLのcmlibに入ってるくらい?」 / Twitter
- κeenさんはTwitterを使っています 「Idrisは2-3木だった。これはギリ赤黒木判定していいのでは」 / Twitter
- そすうぽよ(カス)さんはTwitterを使っています 「@blackenedgold C++の標準ライブラリの実装で使われていたりしますね 規格の制約上、B木を採用するのが難しいのが主な理由だと思います。」 / Twitter
- k0kubunさんはTwitterを使っています 「@blackenedgold 🤔 https://t.co/pXsOihoOle」 / Twitter
- Search · red-black
- κeenさんはTwitterを使っています 「C++は知らないから仕方ないとして、Javaの実装に気づかなかったの草」 / Twitter
- ぐらふぃさんはTwitterを使っています 「@blackenedgold https://t.co/lVD7BGQFG2 メジャーな C++ ライブラリの Abseil ではほぼ drop-in で使える B-tree があって、大体 std::map よりも速かったりはするみたいです」 / Twitter
- abseil / Abseil Containers
- あめ玉/もわもわさんはTwitterを使っています 「興味あったので調べてみただけですが、Linux KernelのComplete Fair Schedulerとか https://t.co/Z4g7Y2dzCD」 / Twitter
- What are some real-world applications of Red-Black trees today? - Quora
- あめ玉/もわもわさんはTwitterを使っています 「レーザプリンタだそうです。手元のアルゴリズム本では「2色木」となってました。 https://t.co/eXpByqtOlt」 / Twitter
- Red–black tree - Wikipedia
- κeenさんはTwitterを使っています 「パラドックスという言葉、理論的には正しいんだけど直感に反するものにも、理論的に正しくないんだけどマズいところをわかりにくくして上手くペテンしてるやつにも、直感に反するけど証明も反証もされてない未解決問題にも使われててカオス」 / Twitter
- κeenさんはTwitterを使っています 「SMLのbefore演算子はe1 before e2のように書いて、e1を計算したあとe2の処理をして、e1の結果を返すんだけどこれOCamlだと定義できないことに気付いた。SMLは引数の評価順序保証があるけどOCamlはないからダメだ。」 / Twitter
- κeenさんはTwitterを使っています 「「無名」オブジェクトをデバッグプリントすると名前が表示される話?」 / Twitter
- κeenさんはTwitterを使っています 「個人的に数学の記号の過剰なオーバーロード、一文字変数/一文字関数、上付き/下付きのパラメータあたりはやめてほしいと思ってる」 / Twitter
- κeenさんはTwitterを使っています 「AndroidプロジェクトがRustを採用へ。メモリ関連のバグや脆弱性を抑えるのが目的。バグは新規コードに多いので既存のコードはそのままで新規コードをRustにシフトしていくよう。 Google Online Security Blog: Rust in the Android platform https://t.co/KmlU4RuY7d」 / Twitter
- Google Online Security Blog: Rust in the Android platform
@ytakanoster
2021-01-02
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「async/awaitだいぶわかった気がした。コンパイラが状態機械に変換してる操作どうやってんねんこれとは思った。変換アルゴリズムつくるの大変そう。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「コルーチンあれば簡単だろうけど、無いためにすごく頑張っている。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「カーネル内async/awaitを使うにはスケジューラと処理系を自前で作らないとダメそう」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「スケジューラを作るにはロックフリーキューかRCUから必要かな。めんどくさすぎる。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「継続かコルーチンがあれば楽なのに」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Rustのasync/await、コルーチンもGCも無くて所有権という言う縛りプレイで良くつくったな。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「コルーチンが 1958年で、promise、futureが1976、1977年か」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「asyncがFutureのモナド でawaitがbindって感じかな。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「async/awaitのexecuterと非同期関数を作ってみたけれど、コルーチンが無いとやっぱり面倒だった。 https://t.co/tmXOTlG1e8」 / Twitter
@shinji_kono
2020-10
2020-10-26
- Shinji KonoさんはTwitterを使っています 「田中先生の公理的集合論で学んだのに、あの頃は順序数定義可能集合の重要性に気がつかなかった。残念過ぎる話。自然演繹も学んでいたのに…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HODは今でもあんまり納得してないけどさ。bounded ODとして扱ってるが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「pairからordered pairを導出するのは煩雑なのだが、Agdaは割とそのまま形式化できる。当時は、その必然性が良くわかってなかった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そんなこんなで、学部生の頃は数学をまったくわかってなかったと思うよ。そして、それは集合論の古典的な構成ではわからないのが当然だとも思う。推移集合モデルで理解したのもかなりあと。VでもUnionとか使うので怪しいんだよな。それは公理で保証されていると言われても。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ガロア理論の五次対称群の交換子群が三次対称群を含むってのもアルティンあるいは他の本でも、わりとさらっと書いてあってさ。でも実際にはそれなりの計算が必要。まぁ、手で計算しなかったのがあほだったが。ガロアも計算しまくってたはず。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「圏論も登場する概念のレベル合わせがかなり大変。多分、証明しまくってるうちに頭にAgda的な回路ができる感じ。教科書見てても、そういう記号的な処理、特に、Unifucationが導入されてる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「合同則 x ≡ y → f x ≡ f y はSets以外では自明ではなくて、証明が必要とかはAgdaでないとわからない。これは選択公理にも関係してて、同値類が自明に取れるなら不要になる。なので、選択公理や同値類の構成に疑問を持ってると、そこで落ちてしまう。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そんなこんなで、学部の数学(数学科のって意味だが)でも落ちる要素はたくさんある。チコノフの定理、まだ、片付けてないし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「線形代数や機械学習にはそういう集合論的、証明論的な問題はない。なので、そっちからやるのが良いね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「圏論的アプローチというよりは、直観主義論理で数学を構築していけば、選択公理や集合論は不要で、排中律や二重否定に気を付けて、非構成的な仮定を明示して議論するだけになる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そうすると選択公理と集合論は廻り道に見える。もちろん、それは時代的に必要な廻り道だったわけだけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「KunenにはODは極めて非構成的で得られるものがないと書いてある。田中先生の本ではODと順序数の準同型をゲーデル数を使って導入してるが、それは厳密にやる必要がある。まぁ、いろいろ面白い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そもそも集合はUnionで上界を取ってこれるので、極めて非構成的。集合の選択には任意の方程式を使えるから… なのにODが非構成的と文句を言うのは面白い。シェーンフィールドもそうなんだけど、どうも、集合をかなり具体的な既に存在するモデルとして認識しているみたいなんだよな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「物理学者も数学者も普段は実在論者としてある方が便利だからそうなる。」 / Twitter
2020-10-27
- Shinji KonoさんはTwitterを使っています 「これはちょっとあるな。何人かこのタイプを見た気がする。自分でないものになろうとしてる。コミュニケーションやコネクションを持ってる人がなりやすい感じ。プログラミングは極めて内向的な仕事なので… QT プログラマーになろうとしている時点で向いていない https://t.co/GJFYXN7TuD」 / Twitter
- 文系でプログラマーになったけど色々失敗して3年半で会社を辞めた話|denkigai|note
- Shinji KonoさんはTwitterを使っています 「プログラミングは操作的意味論を理解する作業があるのだが、それがなんなのかがわかってない。なにがプログラミング言語やAPIを理解する時のゴールなのかがわからない。そうすると、それらは無限に異なるものを覚える賽の河原になってしまう。そういう人がPythonを覚えてもすぐ使えなくなるとかいう。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「プログラミング言語の操作的意味論がわかれば、大抵の言語は皮層的に違うだけなので、すぐにわかる。そういう人が初心者から、わからないと言われても「なんでわからないの?」ってことになる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まぁ、いっぱしのプログラマでもHaskell/Prologをやってみれば、その「操作的意味論がわかってないと、さっぱりわからない」感覚はわかるかも。1週間、触ったくらいでは、まったくの謎でしかない。そんな感じ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ところが、その手の言語を学んだばかりの人から手解きを受けると、これが信じられないくらい高速に習得できる。ほげほげnativeな感じ。そして、その人は他の人がわからないのが何故かさっぱりわからない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「プログラミングがまったくできない人に「まずなにをどういう手順でやるか日本語で書いてみて」といって、それをプログラミング言語に翻訳してみせる。ほとんどは関数に置き換えることになる。そうすると「あ、そういうことですか」ってことになる場合がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「プログラミング言語は言語なのだが、それがわかってないわけね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Haskellの操作論的に意味論を聞いてみると、ある人はβ簡約とか言い出すかも。僕は計算のきっかけはcase文による分解から始まるとかいうだろう。それを知らないでプログラミングするのはかなり難しいのだが、雰囲気でなんとかなることもある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HaskellのMonadを自分で書いてみた時の「まったくわからない感じ」は久しぶりだったな。Haskellは表示できない項とかあるし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Prologは最初のネックはBacktrackとcutで、それから単一化による差分リストの嵐に突入する。無限に巨大なリストの一部だけをみてプログラミングやデバッグしていく感覚は手続き型とはかなり違う。Stream型なわけなのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Prologで、どこにバックトラックするか聞いてみて、最も最近のチョイスポイントと答えればわかってることになる。そして、 p :- q, !, r. で、r が失敗した時にqのチョイスポイントはどうなるというのに答えられれば。 めんどくさいから全部の選択肢に!を一つ付けるというのはプロっぽい。」 / Twitter
2020-10-30
- Shinji KonoさんはTwitterを使っています 「(可算)無限個の集合のUnionは、実は集合論の公理にはない。クラス、つまり述語ではかける。なので、それが集合であるかどうか(=集合論の公理から構築できるかどうか)を調べる必要がある。例えば順序数全部のUnionは集合じゃない。それはVだから。ℵωまでなら集合になる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「上限が集合で抑えられれば集合になる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「このクラスで書いて集合かどうか調べるってのは集合論の本では良くある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合でないクラスはProper Classとかいうのだが、最初に上がる例は順序数全体かな。ODとかLも全体は集合じゃない。その要素は集合。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「クラスと集合の区別はOD(順序数方程式)で考えるとわかりやすい。解に上限があれば集合、なければProper class。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ってわけなので集合論の本に{x| ...}と書いてあっても集合とは限らない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「その部分にODを写像すると、ODはある順序数以下になるので集合になる。この時、外のODと中のODの二つがあるが、それはもちろん同型にできる。これが集合で作った集合論のモデルになる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まだ、非可算ちゃんとやってないので、その辺りで矛盾が出る可能性がほのかにあるな。可算順序数の中で非可算順序数を定義する的なことをするので…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「順序数は公理的に定義して良い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「微妙に順序数を公理的に扱うのを避けてるんだが意味不明。ここに出てくる性質を公理にして、可算順序数を構成してみせるので十分だと思うんだけど。ただ、注意しないと非可算を作れなくなるかも知れない。 https://t.co/ZBxpWyRbUa」 / Twitter
- 順序数 - Wikipedia
- Shinji KonoさんはTwitterを使っています 「順序数は直後順序数ってのは出てくるんだが、直後極限順序数ってのは出てこない。いや、そういくのあるだろとは思うけど。直後順序数を無限個含む順序数があれば、それ以下の順序数は順序数の公理(性質)を満たす。なのて順序数の部分で順序数に対応するものがある。無限なんだからおかしくない。」 / Twitter
2020-11
2020-11-02
- Shinji KonoさんはTwitterを使っています 「型検査はメタレベルでやるべきというしごく当たり前のことが降ってきた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「構文に型を入れるなってことか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「スローガンとしては良いかも」 / Twitter
2020-11-05
- Shinji KonoさんはTwitterを使っています 「超速って、超実数な速度だよな」 / Twitter
- Shinji KonoさんはTwitterを使っています 「超実数は無限小と無限大だけではなくて、普通の実数+無限小とかもある。なんと .99999... と 1 を区別できる。見かけが違うから違うと主張できる。なので、普段見てる速度と超速な可能性が。いや、見てる分には実数と変わらんのだが。」 / Twitter
2020-11-07
- 解答略さんはTwitterを使っています 「代数構造を習った時はハイハイそういう議論はやるべきですよねって思ったし、順序構造もまぁせやなって感じやったけど、位相構造は極めて奇異なものに感じられた。開集合を決めるだけで、近さとか連続性とか収束の概念がええ感じに定まるというのが、どうにも非直感的に思えた。今も怪しいと思っとる」 / Twitter
- Shinji KonoさんはTwitterを使っています 「位相構造ねぇ。基本的には極限の概念の延長だけど… 今は圏論的な理解の方が普通?」 / Twitter
- Kazunori ANDOさんはTwitterを使っています 「@shinji_kono 結晶として対称性を論じるなら空間群の話になる。X線結晶構造解析はそのまま3次元逆フーリエ変換なんで超格子構造なんかは衛星反射として見える。まぁ位相構造だわなw」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@ando_Tw 固体は量子力学的な扱いもあるからなぁ。フォノンとかバンドとか。」 / Twitter
- Kazunori ANDOさんはTwitterを使っています 「@shinji_kono BE凝縮とか近藤効果とかもねw」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@ando_Tw 力学と数学で位相空間がぜんぜん違うのなんとかして欲しいです」 / Twitter
- Shinji KonoさんはTwitterを使っています 「coinductionは全然勉強できなかった。構文的な問題だけだと思うんだが。Fresh Listには合うはずなんだが。」 / Twitter
2020-11-12
- Shinji KonoさんはTwitterを使っています 「真偽にSetを使う方法、automaton はちょっと変くらいだったが、languageとNFAになって、level hellを食らってる。状態が Q → Set nなので levelが上がってしまうんだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Q → Bool でできるんだが、Bool 演算とその推論をいろいろ入れることになるのがあれ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まだ証明の意味がわからない。DFA/NFAのtrace書かないとだめだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「automaton の trace (じゃないよな、状態の履歴)は一発で書けたが、NFA側が自明じゃないな。(Q → Set) → List Q が必要なのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「trace が自明じゃないのは気まづい。間違ってるかも。」 / Twitter
2020-11-13
- Shinji KonoさんはTwitterを使っています 「昼間の証明はあれで良いってのが降ってきた。Automatonの有限性は (Q → Set) → Set という決定性。NFAを Automaton に変換した時 ((Q → Set)→ Set) → Set になるんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「去年は有限性をData.Finでやってたんだが、かなり煩雑。欲しいのはdecidabilityなので。で、→ Set を増やしても同じもので良いらしい。謎過ぎる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんか良くわからん。まだ、NFAのtraceが書けない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「あ、そうか。subset construction して DFA として trace を出すのは簡単なんだ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「確かに出力は出たが、しかも正しそうだが、これはなんなの。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「やっぱり逆順だな」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いや、そんなことはないな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Dec を引数で持ち歩くってのが降ってきた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「それで、できそうだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「正確にはDecじゃないな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「NFAのtraceはあともう少しだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「恥ずかしいことに、subset construction してtraceするコードをNFAに書き直した。だって、合わないんだもの。subset construction という言い方は正しくなくて、状態集合のautomatonへの変換だな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「あとは二重リストに変換すれば良いのだが、それにはDecが必要。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Dec やっぱり、微妙に合わないな。割と良くある。」 / Twitter
2020-11-14
- Shinji KonoさんはTwitterを使っています 「かなり、型が合ってきた。結果は簡単なんじゃないかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「だいぶ進んだ。しかし、まだ、どうすれば良いかわからん。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「coinduction と違ってindictionは automaton のお尻から構築する感じになるのだが、traceは最初から辿る方が簡単。もっとも、まだ、Decが書けてない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一応、できた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Q → Set にすると、状態をリストで表すには Dec を書かないとだめで、しかも、前の状態に依存するのでかなりしんどいことがわかった。 List (Q → Set) を見たいだけなのに。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので、subset construction の正しさの証明が少し微妙。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「このSetは実行時に指定してるので、それを工夫することができるかも。not empty な List Q とか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「継続で書くと良いのかも。」 / Twitter
2020-11-15
- Shinji KonoさんはTwitterを使っています 「NFAは教科書では Automaton を言語/正規表現の結合に対応できないという理由で導入してる。NFAが結合に対して閉じることの証明は去年やったのだが、Data.Finでやったので、かなり煩雑。今回はどうなんだろ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Q → Bool ではなく、Q → Set なので、Data.Boolのめんどくささは消えてる。しかし、それはDecに押し付けられてる。Data.Finの代わりに (qs : Q → Set) → (q : Q ) → Dec ( qs q ) を定義する必要がある。Qが有限なら qs q の真偽を決定する手続きがある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「去年の証明だと、Aだけ、AとB混在、Bだけみたいな状態にわけてた。作るのは簡単なんだが、それが結合になってるのを示すのがしんどい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Listを二つに分割する組み合わせを全部生成するのはData.Fin抜きでできる。NFAからData.Finを落とせたので、簡単になる可能性はある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「教科書ではNFAの結合が言語の結合に対応するのは自明扱いなんだよな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaのcoinduction はrecordの構成構文を使う。 p : AB → AB p ab = record { a = ? ; b = ? } の代わりに p : AB → AB a (p ab) = ? b (p ab) = ? という構文。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「induction だとデータ構造を分解して[]なったら終了。coinductionだと、[]から始めて、recordを大きくしていって、欲しい大きさで終わりな感じ。終了条件 Termination はAgdaの推論の外にあって、 あるデータ構造が常に小さくなってる なのだが、余帰納だと常に大きくなってるになるわけだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これをFresh Listに使うって話なんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いきなり二重否定しか証明できない的な直観論理丸出しの話をもってきて欲しくはなかった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まぁ、一応、正規言語の結合に閉じるのは、少し簡単になるっぽい。でも、本質は変わらんな。そこそこ長い。しかし、かなり、わからなくてびびりました。Set で受けるのは良し悪しなんだよな。そこに触れないので、何か作るしかない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「予想通り、Bool 代数関連の細かい推論は全部吹っ飛ばせた。Data.Finも出てこない。素晴らしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「それを少し簡単になったというのは、あれだが、その分、個別の証明する自明なのが増えてるので… まだ、十分に複雑だしな。」 / Twitter
2020-11-16
- Shinji KonoさんはTwitterを使っています 「terminatingで書いて、あとからterminationを付け加える方法があれば。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「こんな議論があるな https://t.co/yT86zAan9R」 / Twitter
- functional programming - Assisting Agda's termination checker - Stack Overflow
- Shinji KonoさんはTwitterを使っています 「やっぱりcoinduction 使え的な」 / Twitter
- Shinji KonoさんはTwitterを使っています 「正規表現のderivativeは書けたが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「dfaからregexは「状態を一つとって」みたいなことをするんだよな。微分の逆だから積分できないの? accept dfa q [] を調べて accept dfa q t ⇔ regex t → ∀ x → accept dfa q (x :: t) ⇔ (add1 regex) (x :: t) で、無限にやるんだが、add1が変更なくなったら終わりとか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「状態を取り除いていく方式は遷移関数を毎回手直しだからなぁ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これ、結局、すべての状態についてやるので、おんなじようなものだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「微分は正規表現を状態とする automatonを作るが、積分はautomaton の状態に正規表現を付加していく感じか。 add1 : (Q → Rex) → (Q → Rex) かな。 sumup : (Q → Rex) → Q → Rex sumup f q with dec f (add1 f) ... | yes _ = f q ... | no _ = sumup (add1 f) q 停止が見えない。」 / Twitter
2020-11-17
- Shinji KonoさんはTwitterを使っています 「DFAからRegex変換はあんなのではできないので、Regexで遷移するNFAにして状態減らす方式なのだろうな。手計算ではやったことがあるが… 状態をListにして減らしていくのが良さそう。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「遷移先の一つを融合するのだが、遷移関数を新しく作ることになる。 q1 → a → q2 → b → q3 を q1 → ab → q3 するみたいな。 q1 → a → q2 → b → q1 だと (ab)* が出てくる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「遷移条件がregexだから排他にはならないからNFAになる。でも状態は一つまで減らすので問題ない。遷移関数の書き換えのイメージがわかないが… (Q → Regex → Q →Set) → (Q → Regex → Q →Set) だよな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「隣でないとだめ、関係ないものを一緒にしてはいけないってのがあるが… どうせつながってる部分しか意味はないから。 t : ( Q → Regex → Q → Set ) → Q → Regex → Q → Set t qs q1 ( a * ) q2 = qs q1 a q3 みたいに直接書き換えできるように見える。でも、q1は変数になるから…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「(Q → Regex → Q → Set) というdataを作るのかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そうではないな」 / Twitter
2020-11-18
- Shinji KonoさんはTwitterを使っています 「え、それ? 資源管理と同期が見えないHaskellの並列処理は結構厳しい。 Haskellによる並列・並行プログラミング」 / Twitter
- Shinji KonoさんはTwitterを使っています 「昔書いたHaskell/MultiThreadなDB。今はどう書くんだろ。 https://t.co/xzca7Z4JeN」 / Twitter
- Members/toma/Jungle-haskell: log
- Shinji KonoさんはTwitterを使っています 「来週はNFA。」 / Twitter
2020-11-21
- Shinji KonoさんはTwitterを使っています 「Boolで対角線論法やると面白いな。見つかった反例を加えて、もう一回とやりたくなるが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「N→BoolはNのPower Setでℵ1なのだが、これと濃度が同じな順序数があると仮定する。Power Setは公理で存在が仮定されている。この二つの仮定には差がない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんとなく、超実数のモデルをやりたい気分もある。選択公理仮定することになるので構成的ではないけど。Nat → Nat → Bool に順序を決定する公理を入れれば良いだけ。これは超自然数になるけど、小数点と考えれば0から1の超実数に同相なの? 集合的にはℵ2でしかないが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「去年は集合論散々やったので、だいぶわかった気になってる。ただ、標準的な方法とはだいぶずれてしまった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「対角線論法やるには、双射をちゃんとしないとだめなんだな。散々やっただろと思うが… ℕ と ℕ → Bool の双射が矛盾することを示せば良いんでしょ。 ℕ → Set でもできるのかな。 これは集合の濃度の問題そのものだからな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まだ途中なんだよな。集合の濃度。 https://t.co/uoRLnPh2NA」 / Twitter
- Members/kono/Proof/ZF-in-agda: 9b0630f03c4b cardinal.agda
- Shinji KonoさんはTwitterを使っています 「AgdaのBijectionはPermutationでも使ってる。それとは別だが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaの標準のをそのまま使って問題ないはず。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「⟨$⟩ˡ とか inverseˡ を使うんだよな。上添字のrとlは厳しい。いや、標準を使うべきだというのはあるが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Permutation で散々やったので、もはや問題ないと思われる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「順序数は可算モデルを持つので無矛盾なのはわかる。極限順序数ももちろん。そのrecord、つまり公理系で定義される数学的構造物が ℕ → Bool にBijection を持つというのは要請だが、Power Setがあるという公理があれば許される。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「それは自分のだと、順序数内のSupの存在になる。もちろん、それは構成的なものではない。けど、それは可算順序数に埋め込まれるわけだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「可算順序数自体はℕ→Boolを含むことはできない。含むのは公理的に定義された順序数で、しかもそれは仮定だ。順序数は超限帰納法を公理として持っていて、それは可算順序数モデルで恒真。なので無矛盾。それはℕの整合性の証明に使って良い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ℕ→BoolはAgdaでは構成されるものだけを表す。それは可算なので可算順序数に含まれる。構成されないものは二重否定で言明できる。」 / Twitter
2020-11-22
- Shinji KonoさんはTwitterを使っています 「で、レーベルハイムスコーレムはAgdaで書けるの? というか、Agda自体がレーベルハイムスコーレムの定理そのものなんじゃないの?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「¬ (Bijection ℕ (ℕ → Bool))を示せば良いのだな。 Turing : (Σ : Set) → List Σ → Bool で Bijection ℕ (Turing Σ) はUTM Bijection ℕ (List Σ) は数え上げ で halt : Turing Σ → Bool が Turing Σ だとすると、停止問題になるはずだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「UTMはこれなんだが、入力が0/1なので、任意の入力文字を受け入れるようにしないと自分自身を食えない。 https://t.co/sEh1bELmRA」 / Twitter
- Members/kono/Proof/automaton: 4c3fbfde1bc2 agda/utm.agda
- Shinji KonoさんはTwitterを使っています 「この辺りのTuring Machineの拡張は難しくはなくて、状態遷移を増やせば良いだけ。しかし、それを、証明する必要がある。この証明はHoare logicでやる必要がある。なので、継続形式にした方が良い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そんなわけなので、Automaton は継続形式で書き直した方が良いんじゃないか説。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「record Turing ( Q : Set ) ( Σ : Set ) : Set where field tδ : Q → Σ → Q × ( Write Σ ) × Move tend : Q → Bool なのだが、 tδ : {t : Set} → Q → Σ → ( Q × ( Write Σ ) × Move → t) → t みたいな感じで。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「fresh list を sized にするのは簡単だったが...」 / Twitter
- Shinji KonoさんはTwitterを使っています 「あれ、別にsize いらないんじゃないの?」 / Twitter
2020-11-23
- Shinji KonoさんはTwitterを使っています 「a < a' を要求しているのに a' < a が出てきて、そもそも a = a' ならしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「別な方をやって、問題点が別なことがわかった。取り尽くしたことを確認して⊥を返さないとダメなのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「文系な人は、ちゃんとチェックすれば大丈夫みたいな信仰があるみたいなんだよな…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「有限二分木で定義して、それを深さ優先で取り尽くすみたいな。間になかったらおかしい的な。」 / Twitter
2020-11-25
- Shinji KonoさんはTwitterを使っています 「普通に作ってソートされて、間に割り込まれない。なので、全部入ってる。それを示したいだけだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Natとのbijectionはどうだろう?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「でも問題なのはAnyの型変換なんじゃないの?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Anyなのにthereって書くと文句言ってくるのひどい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「n で再帰ですか? すでにやったはずだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「でも、0からnまで含んでることを示せば良いのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「型の段階でhere/thereがわからないとだめってことね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Listを二段に展開してるな。それか。」 / Twitter
2020-11-26
- Shinji KonoさんはTwitterを使っています 「まだ、証明が終わってない部分があるけど、計算部分はできたから良いかな。(良くない) できる自信がないが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いたるところ不連続な関数を積分して発散しなければ、いたるところで微分不可能な関数ができるじゃん。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これ、もっと劇的に簡単になるはず。CommutatorをFLで計算するとか。計算した結果をstaticに変換するとか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Anyが簡単に示せないのも変なんだよな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「1234をPermutationしたのを見てFLを生成とかできないの?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「FLだけで群を作ってそこで計算する方が速いが、計算表を生成して、計算させないことはできるのか?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いろいろ疑問はあるな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Fresh ListからAnyを作れない理由もよくわからん。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「FLがCommの生成について閉じてるのを示すのはFLが群を構成してることをしめせばすむはずだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「でも、もう時間切れなのでわからないままでいいか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「でも、Anyが示せてないので、割と残念なことになってるのがなぁ…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「おっと、AnyのListを持ち歩くなんてのが降ってきたが… Anyを返す関数なら、まぁ。 x f<?y → Any x L みたいな感じか。だから、時間切れなんだって。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「FLを順列として0123を置き換える関数のinjectionを示せば良いだけなんだ。それでFLから順列へのinjectionが一発ででる。しかし、簡単に示せるとは言ってない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「しかも、それができてもAnyとは関係ない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「五次はそこそこ時間かかった。五次が可解でないのをFLのListが不変から導出しても良い。良くわからないが可解でないという証明になる。不可解な証明だな。(ここ笑うところなので」 / Twitter
- Shinji KonoさんはTwitterを使っています 「FLからList N 割と簡単そうな気もする。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「でも、やってないとは考えにくいんだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「確かにめんどうなみたいだな。」 / Twitter
2020-11-27
- Shinji KonoさんはTwitterを使っています 「今までで一番まともな気がする。どうせ Any の型変換の問題はでるだろうが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一昨年のOS9は結構楽しかったが、今年のTL/1 Self Compiler は、盛り上がりに欠けるまま放置中。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「定義おかしいじゃんと直してみたら、元のが正しいことを確認して終わった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「[ g , h ] = g ⁻¹ ∙ h ⁻¹ ∙ g ∙ h でしょ。 [ g , h ] [ i , j ] = g ⁻¹ ∙ (h ⁻¹ ∙ g ∙ h ∙ i ⁻¹ ∙ j ⁻¹ ∙ i) ∙ j = g ⁻¹ i ⁻(¹ j i h ⁻¹ g ⁻¹ ) h j = [ g , i ] [ j , h ] になるのか。でもそれでは足りないが…」 / Twitter
2020-11-28
- Shinji KonoさんはTwitterを使っています 「[[a,b],[c,d]]は含まれてる。これは [b,a][d,c][a,b][c,d] のこと。これから前半を消すのは簡単だ。 [a,b][c,d]= [c,d][a,b][[a,b],[c,d]]ってことか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これでも足りんな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「[a,b][c,d]=[x,y]なx,yを見つけるのだが… 本見れば載ってるとは思う。対称群の場合をやれば良いけど、一般的に可能なのかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「[ g , [h ,i]] = g ⁻¹ ∙ i ⁻¹ ∙ h ⁻¹ ∙ g ∙ h ∙ i = g ⁻¹ ∙ h ⁻¹ ∙ h ⁻¹ ∙ g ∙ i ∙ i = g ⁻¹ ∙ h ⁻¹ ∙ g ∙ i か。交換子だからi ∙ i=i。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いや、そういうことではないのか。欲しいのは [a,b][c,d]=e なので、[a,b]=[c,d]=eならそうなる。逆にその時に限るってのは必要なのか。いや、要らんのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ってことは手直しが必要なのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「もしかして、単純に積を落とせば良い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「交換子群は積が必要なんだが、交換子群が単位元になるのを示すには積は不要ってことね。なるほど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「やっぱり、Any の型の問題にぶちあたった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これ、リストを最後まで取り尽くさないと何が戻ってくるのか確定しないのだった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので見つけた後も最後までたどる必要がある」 / Twitter
2020-12
2020-12-02
- Shinji KonoさんはTwitterを使っています 「TMはUniversalityがあんまり自明じゃないんだが、もっと自明なものってあるのかな。あ、非構成的なものはかんべん。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「むしろCPUの方が自明だよな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「LISP 1.5 もそれほど自明じゃない。SKIはどうだろう?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これだな https://t.co/SecYyDYSJC」 / Twitter
- 不動点定理が結ぶ ラッセルの逆理とYコンビネータの関係 - Qiita
- Shinji KonoさんはTwitterを使っています 「対角線論法、今回も少し挑戦したんだが、あんまりよろしくなく。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「SKIだとSKI食ってSKI返す感じか。Y combinator でいいの? Agdaで即座に書けそうだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Y combinatorはAgdaでは型が合わない。合うと矛盾をくらうので。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Nat → SKI → Nat があるとY combinatorが構成できて矛盾みたいな感じか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「SKIは大雑把にSystem Fなので…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので、そもそもAgdaのUniversalityが使えるはずだろ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Nat → Set → Nat で良いってことか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「やっぱり、NFAのSetは諦めるべきだな。Bool の方がまし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Set で受けると、bool 代数のめんどくささは避けられるが、そのかわり、Dec の嵐が降ってくる。おそらく、bool 代数のめんどくささを避けつつ工夫するのが良い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「対角線論法はできた。でも、List BoolとNatの対応は割とめんどいのだった。上位に1を足したバイナリで良いのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「たしか、finite作ったな。あれはList Boolだろ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Vec Bool n だな。ゲロゲロに複雑だ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「List はexp 計算してた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ああ、そうか。足し算を定義して、それから作ってるんだな。勉強になるな。自分が昔書いたものだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「isoも足し算でやってしまうのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これをコピれば良い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習が予測する理屈は人間が理解できなくてもOK」っていうのは分からんでもない気がしますが、「理解」という事柄についてもう少し掘り下げる必要があると思います。続く」 / Twitter
- Shinji KonoさんはTwitterを使っています 「TMは数え上げができるのでNと一対一になるのだが、それは対角線論法には引っかからない。その中に、TMの白黒を全部識別できる奴がいると引っかかる。でも全部白とか黒なら引っかからない。Bijectionだと、その条件は要らないのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「対角線論法経由と自己参照経由と両方の証明があり、異なるのだが、対角線論法は自己参照から導出できる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「haltとutmからBijection示すの面倒そう…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「片方で良いかもしれん」 / Twitter
- Shinji KonoさんはTwitterを使っています 「複雑なのは Fin からBoolへの関数を作る方だった。List Boolはそれほどでもない。」 / Twitter
2020-12-03
- Shinji KonoさんはTwitterを使っています 「NFAのSetにいろいろ入れてって思うがうまくできない。やっぱり、継続かcoinductionなのだろうな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Data.Fin は扱いがあれなので、Bijectionを使うのだが、∨とかBoolへの関数とかのを作るのが結構大変。まぁ、できてるので良いのだが。でも、Subset construction では使わない。UTMのはFinじゃない。安易に書いたらTerminationくらったが、なんとかならんのか、あれ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Manna先生の本にdeductionがあって、Terminationばっかり書いてあった。そういえば実家に置いてきた。まだ、残ってるかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Size型の引数を追加して、それが単調減少していれば、止まるとか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ああ、そうか。 TM : List Bool → Bool tm utm : TM encode : TM → List Bool で utm (encode tm ++ x ) ≡ tm x は言えるんだが、encode (utm x) ≡ x にはならない。しかし、 halt : TM ∧ List Bool → Bool を入れると、その違いが吸収されてしまってBijectionになるのだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「というのをAgdaで、ちゃんと書こうという話」 / Twitter
- Shinji KonoさんはTwitterを使っています 「x ─── + z x + y ってのを定義できるパーサってのが降ってきたが。(実在するらしい」 / Twitter
2020-12-04
- Shinji KonoさんはTwitterを使っています 「あ、なんかFLinsertから始めるってのが降ってきたよ。」 / Twitter
2020-12-05
- Shinji KonoさんはTwitterを使っています 「Coq はintros がかなり許せなくてな… まぁ、変数名考えなくて良いってのはあるが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaはプログラミング言語なので良い。ホールも良いアイデアなんだが、いかんせん、それにあうUIがな。」 / Twitter
2020-12-06
- Shinji KonoさんはTwitterを使っています 「Agda 、なんだこれ。 _430 != section of type」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なるほど。Any _ Q で there とかやる時には Q を cons に分解しないとだめっていうあれか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ということは、めどがついたってことか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんか今のを片付けて、抽象化すると、もう一つも片付くらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Zipは内積みたいなものだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんか、片付いたと思ったが、かなり微妙な感じ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「くそ、独立に書き出してみたが、やっぱり通らないじゃん。 Cannot instantiate the metavariable _491 to solution section since it contains the variable section which is not in scope of the metavariable when checking that the inferred type of an application」 / Twitter
- Shinji KonoさんはTwitterを使っています 「何言ってるんだか、わからないんですけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これ相談すると、internal parametricity だと言われるパターンだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ほぼ同じなんだが、通る時と通らない時がある。入力の型を明確にするとむしろ通らない。謎過ぎる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「workaround で良いんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんとかなるのかな、これ。割と致命的なんですが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いったん関数はさむと通ることがある」 / Twitter
- Shinji KonoさんはTwitterを使っています 「この差か。 anyc07 : (x b : FL n) → (L : FList n) → Any (x ≡_ ) L → Any (x ≡_ ) (FLinsert b L) anyc07 a b L any = insAny L any anyc06 : (x y : FL n) → ( z : FList n ) → Any (_≡ x) z → Any (_≡ x) (FLinsert y z) anyc06 x y z anyz = insAny z anyz」 / Twitter
- Shinji KonoさんはTwitterを使っています 「間違えてもいいのかと思ってたが、だめなのか。」 / Twitter
2020-12-07
- Shinji KonoさんはTwitterを使っています 「57箇所以上なおしたところで力尽きてる。x ≡_ と書くのが正しいらしい。λ y → x ≡ y の意味。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「他に _≡_ x と ≡_ x の書き方があって、適当に書いてたので混在してた。一緒だろと思ったのが間違いだった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「問題なく通るやん...」 / Twitter
- Shinji KonoさんはTwitterを使っています 「順調だが、ここどうやるんだったかな。ちゃんと処理したはずだが。」 / Twitter
2020-12-08
- Shinji KonoさんはTwitterを使っています 「また、振り出しに戻るをやってるな」 / Twitter
- Shinji KonoさんはTwitterを使っています 「やっぱり、劇的に簡単になった。どうせ、そんなこったろうと思ってましたよ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ここまで、一直線なはずなのに何故廻り道した。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「今日は進捗した気がする」 / Twitter
- Shinji KonoさんはTwitterを使っています 「あと、もう少しでてきるはず。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ああ、確かに A x B だとBの方が攻めとみえるな。加群でしょ。」 / Twitter
2020-12-09
- Shinji KonoさんはTwitterを使っています 「三ヶ月もかかったが片付いた。ガロア理論、むしろ、正規拡大とかの方がAgdaでは楽かもね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「この三ヶ月かかった話はオンラインのプロシンで話します。」 / Twitter
2020-12-10
- Shinji KonoさんはTwitterを使っています 「Fresh List 、mapとappendはあったような。だったら、それで書けるんじゃないの?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんか、All があれば append できるらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Any を作りたいので無意味だな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので、役に立たないらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いや、そうとは限らんな。[]から作っていけるかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Any の append は、すでに自分で書いたやつだな。そんなもん。書いてからライブラリにあることに気がつく。わからんし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ようするに、Any の前後に append しても Any の性質は保存されると。Any ってのは「これを満たすものはすべて入っている」みたいな意味だから。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「map もAny/Allに対して定義されてるので役に立たない。っていうか、自力で証明した部分だな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「やっぱり、任意のFLの組みから、全部のFLを導出することができるのか。もっと考えれば良かった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「CommAny の問題に気がついたのは11/26なので、これを前に思いついてても、それほど時間の差はないな。でも9/13あたりに思いついてれば9月中に片付いてたかも。insert 書けた時にできたと思ったが、その後がな。ちゃんと考えろよ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Anyのappendに気づいたのが11/30なので、やっぱり、理解度が足りてなかったってことだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まぁ、そもそも「これでできるな」と思ったのでプロシンに出したのだが、思ったより時間がかかった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Any の append とかドキュメントとかは一応見てはいたんだが、それが何かには気がつかなかった。そんなもん。自分で必要になると自分で再発見してしまう。それが理解ということなので、まぁ、そういうもの。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これでわかれと言われても。 https://t.co/zx918v5Cxg」 / Twitter
- Data.List.Fresh.Relation.Unary.Any
- Shinji KonoさんはTwitterを使っています 「まぁ、親切なドキュメントだこと... https://t.co/6TfTz2wQLs」 / Twitter
- agda-stdlib/README/Data/List at master · agda/agda-stdlib
- Shinji KonoさんはTwitterを使っています 「Coq 側では Fresh List はどういう扱いなんだろう? うまくググれない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「交換子群の定義を data で書くのは瞬時だったんだが、書けた後、どう使うかしらばくわからなかった。Agdaはそういうところがある。 data C (P : Carrier → Set ) : (f : Cr) → Set ) where comm : {g h : Cr} → P g → P h → C P [ g , h ]」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まぁ、なんだかわからないよな。Cr から始めて交換子を作るのを繰り返すだけ。 deriving : ( i : ℕ ) → Cr → Set deriving 0 x = ⊤ deriving (suc i) x = C (deriving i) x」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これとか面白い。普通の述語論理だと気にしない部分だが、照明が必要。 comm-resp : {g h g1 h1 : Carrier } → g ≈ g1 → h ≈ h1 → [ g , h ] ≈ [ g1 , h1 ] comm-resp {g} {h} {g1} {h1} g=g1 h=h1 = ∙-cong (∙-cong (∙-cong (⁻¹-cong g=g1 ) (⁻¹-cong h=h1 )) g=g1 ) h=h1」 / Twitter
- Shinji KonoさんはTwitterを使っています 「群の等号と同じは違うので自明には置き換えできない。適用した関数(この場合は交換子)が、等号を保存するとは限らないから。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「( f ⁻¹ ) ⁻¹ ≈ f とか意外に証明めんどくさい。equalizer 使わないとな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「[ h , g ] ≈ [ g , h ] ⁻¹ とかも証明したが使ってない。交換子群には必要なんだけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「可解の話には交換子群は必要ないってことね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一度できると、より良い方法が見えるようになるもの。もっとも、その前に見えるようになりたいものだ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「実際にやってみると n を合わせるのが面倒。具体例を入れておくべきだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「( f ⁻¹ ) ⁻¹ ≈ f f ⁻¹ ( f ⁻¹ ) ⁻¹ ≈ f ⁻¹ f ε ≈ ε で良いのだが、これは h f ≈ h g → f ≈ g を使っていて、これはequalizer。h ⁻¹ かければ良いだけだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「確かにできたが、ださい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「record AnyFin (n : ℕ) : Set where field allFin : FList (suc n) anyF : {i : ℕ} → (i<n : i < suc n) → Any (fromℕ< i<n :: FL0 ≡_ ) allFin ではなくで anyF : (x : Fin n)→ Any (x :: FL0 ≡_ ) allFin で良い。なにしてんだか。おんなじことなんだが。」 / Twitter
2020-12-11
- Shinji KonoさんはTwitterを使っています 「まぁ、少しましになった。行数減るのは正義。でも、使わなくても自然数関係の証明は取っておくべきだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ガロア理論関係は、多項式、代数的拡大、正規拡大体とかやってないのだが、その辺りは、まぁ良いかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「All と append で書けるはずだが、まぁ、もう良いかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Allとappendは練習するべきではあるんだが。もう疲れたよ、パトラッシュ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そんなわけで一段落。コンパイラやらないと。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Fresh.List に、appendとmapはあるが、insertはない不思議。型は書いてみたが、いろいろ謎だな。相互再帰で書くのは定番らしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「any? : (xs : List# A R) → Dec (Any P xs) こんなのがあるな。まぁ、そうだよな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「(P? : Decidable P) みたいにするのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そもそもなんでガロア理論に手をつけたのかよくわからない。Twitterになんか書いてたかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「予告なくいきなり交換子書いたが出てくる。そう言うやつなんだよ。集合論の時も演繹定理から唐突に始めたし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんかいまさら、置換を吸う時にしてからやると楽ってのが降ってきた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「もっともPromiseは教えてないけど」 / Twitter
- Shinji KonoさんはTwitterを使っています 「置換がbijectionなのがやっかいなので、0123を食わせて数字にすると楽。injection あるから。perm →FLが厄介だったので、それが簡単になるとかなり簡単になる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「置換を一旦数字に変換して上手くいくとわかるのは、injectionがあると知ってるからなんだよな。自明な気がするのと実際に証明を書くのとは別だから。この場合は排他律使えるから構成主義は関係ない。なのでできて当然。なので思い付かない方がダサい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「injection/equalizerの大切さがわかった課題だったな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「モンテカルロで速度かぁ。確かに乱数の精度に依存するけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「でも、そういうものに依存するものって微妙」 / Twitter
- Shinji KonoさんはTwitterを使っています 「乱数のベンチマークとして使えるってことか。実世界の乱数の性質は?」 / Twitter
2020-12-12
- Shinji KonoさんはTwitterを使っています 「示す必要があるのはFLとPermutationのbijection。 NatのListはbijection にはならない。しかし perm → List N はinjection。 FL → perm → List Nat (1 FL ← List Nat ← perm (2 でなんとかしようって話。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「List Nat は制約されないと置換に対応しないので、常にFL/permから作るってのが肝だな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「おお、計算全然おわらね〜」 / Twitter
- Shinji KonoさんはTwitterを使っています 「特定のプロセスが終わったことを通知するのはどうすれば良いんだろう? いや、まぁ、print するように書けば良いだけなんだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Any の証明を短くしたら計算は長くかかるようになった気がする。メモリは増えないんだよな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「普通に計算すれば瞬時に終わるものなんだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「時間かかるのちょっと変なんだよな。証明は型検査だから実行時のoverheadにはならないはずなんだが。Fresh Listは余計な項を作るが、大したことはないはずなんだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「余計な項を生成しないFresh Listってのはありえるのかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「memonizationが有効だろうと思うが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いや、確かに組み合わせが二乗でFresh Listのinsertがnaiveなので二乗、合わせ技で4乗なんだが、たかだが5!だろ? 5. x! 120. x^y 4. = 207360000. ======================= あぁ、でも結構あるのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「4次だとこんなもん。 4. x! 24. x^y 4. = 331776.」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これ、insertをbinaryにしただけではダメでバランスさせる必要がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「計算結果は5!で抑えられるのでメモリが足りなくなることはないのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「最低でも100時間は動かさないとダメだな。Haskell生成するか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まぁ、あんまり意味はない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「こういうのなぁ。 https://t.co/n2b0w2IICV」 / Twitter
- io - Agda: Reading a line of standard input as a String instead of a Costring - Stack Overflow
- Shinji KonoさんはTwitterを使っています 「お、compile したら瞬時に終わった」 / Twitter
- Shinji KonoさんはTwitterを使っています 「しばらく、AgdaのgetArgsと戦ったが動かないってことだけはわかった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いや、List String までできてるから、いけるんじゃないの?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「getArgsはしばらく戦ったが、あきらめた。」 / Twitter
2020-12-13_直観主義論理
- Shinji KonoさんはTwitterを使っています 「AgdaのgetArgsは IOがcoinduction なので変換が必要。Data.Text.Textの問題もあるが、それはStringにできる。 なので頑張ればできそうではある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「来年はチコノフやるとか言ってたが、もうすぐ来年。位相の定義は有限と無限の微妙な違いを使う。結局は存在関数の問題になる。ついでに、基底の存在もやるべきだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これは Haskell の getArgs の Polymorhphism のエラー • Couldn't match type ‘[Char]’ with ‘Data.Text.Text’ Actual type: IO [String] System.Environment.getArgs」 / Twitter
- Shinji KonoさんはTwitterを使っています 「あ、なんだこれ。 MAlonzo/Code/Agda/Builtin/String.hs: = ((Data.Text.append) :: Data.Text.Text->Data.Text.Text->Data.Text.Text)」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agda 側が Data.Text.Text なのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「動いた。 postulate getArgs : IO (List (List Char)) {-# FOREIGN GHC import qualified System.Environment #-} {-# COMPILE GHC getArgs = System.Environment.getArgs #-} main : IO ⊤ main = getArgs >>= (λ x → putStrLn $ toCostring $ sym5solvable $ getNumArg1 x )」 / Twitter
- Shinji KonoさんはTwitterを使っています 「結論から言うと、Agda の IO String は実は Data.Text.Text なので、Haskell の getArgs は IO (List (List Char)) で受けろってことね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一階述語論理をAgdaでやってわかったのは、意味関数は本当に真理値を任意に割り振るってこと。なんとなく、公理を真にするものだけを考えがちだが、全部の組合せが入ってる。直観主義論理では証明のあるものだけが真なので楽。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「もう一つは等号もあらゆる可能な項を含んでいるので否定を含めて巨大な無限だってこと。まぁ、たかだか可算無限だが。そして、その巨大なもの全部の組み合わせに対して真理値の組合せをすべて割り当ててるのが interpretation。これも構成論理だと避けられる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「自然数が入るだけで一階述語論理がもうダメってのはそういうわけだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「節形式への変換も書いた。さらに不動点意味論とfinite failureまで出すことも可能だろうけど、だから何的なところはある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そんなわけなので、集合論を一階述語論理でやるのはよろしくない。構成主義論理でやるべき。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直観主義論理は普通に非構成的な仮定を扱えるので問題ない。Agdaの能力的な問題もあるが、仮定すれば良いじゃんってのはある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ただ、メタ的なものを扱うなら、たぶん、Toposが必要になると思われる。そこはまだよくわかってない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Toposは圏にSubobject Classifierを入れただけだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「メタ的といえばLambekは合流性もやるんだよな。ただ、等号はやらない。単一化は入ってない。真に面倒なのはそこだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「単一化を取り扱うには変数をメタ的に扱うわけだが、番号割り振るってのが普通。それってアドレスでやるのとあんまり変わらん… でも、System Fの正規化もそれでやらないとできない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Prologはnumbetvars持ってるからな。Agda Haskell compilerもおそらくはそうしてる。読んでみないとわからんが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「すっかり直観主義論理シンパになってしまったが、もはや、大半の数学者は直観主義で、選択公理の使用には注意を払う感じ。実はもう少し広いのだが。」 / Twitter
2020-12-14
- Shinji KonoさんはTwitterを使っています 「安易に書いたけど、普通、スコープは名前のスタックを使う。そんなの使ってないので、何か足りないかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「あぁ、変数を同じ変数名の変数で置き換えるとよろしくないかも。でも、一階だから∀と∃の置き換えは値だし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まあなんかおかしくなるかもしれん。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「あら、やっぱり、ここでxを保護しないとだめだな。 (∃ x => y) [ n / v ] = ∃ x => (y [ n / v ])」 / Twitter
- Shinji KonoさんはTwitterを使っています 「同じ変数名ならskipするで良さそうだが…」 / Twitter
2020-12-16_時相論理
- Shinji KonoさんはTwitterを使っています 「正規表現からDFAの微分法は、時相論理のタブローとほぼ同じ。部分項の組合せになるんだが、それが有限になるかどうかは論理あるいは正規表現をどれだけ拡張したかによる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaでの停止性の証明はreduction に落とす必要がある。この場合は部分項が増えるので向かない。でも、これもcoinduction にできるのかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「増える場合は決まってるので、それを構文として固定する方法が降ってきた。左再帰の処理に似てるな。A*Bみたいにするわけね。 A unitl B だな。逆にLTTLに変更するわけか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「微分した時にunitlのnestが起きなければ勝ちだ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「昔のITLの実装はPrologなので停止性は自明じゃない。ITLはa;bという演算子一つだけでaは必ず単調減少するが、全体の論理的組合せは任意に増える。それは線形にしか増えないが、項に真偽が割り振られるので指数的になる。それは変数の2^nで抑えられる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「平行プログラの検証の難しさは同期の変数の数の指数乗になるってことね。でもそんなにひどいことにはならない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「LTTLでは部分項に真偽を割り振るという方法で検証が可能で多項式計算量になる。でも、所詮は変数に対する指数乗なので、まぁ、誤差みたいなもん。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ITLはそれはできないのだが、部分項の指数乗で抑えられる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まあ、それは変数がintervalに依存しない場合で依存する場合は文脈依存文法になるので決定不能性になる。それが決定可能になる場合もあるってのがイギリスにいた時にやったことなんだが、まぁ、受けは悪かった。それを使ってプロセス代数方程式にしようって話。2ITLと呼んでいた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「つまりintervalに依存する変数を命題ITLの二階の変数とみなせるという話。実際、CDGの充足性の問題になる。あんまり調べなかったが、その辺りの研究はやまほどあるんだろうな。finite interaction とかを考えてた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「指数乗ってのは指を二進数的に使う数え方って意味」 / Twitter
- Shinji KonoさんはTwitterを使っています 「このままだと停まらないのだが (Regex Σ ) until (Regex Σ ) にすると停まるんじゃないか。 https://t.co/Lz8yHduJLD」 / Twitter
- Members/kono/Proof/automaton: 4c3fbfde1bc2 agda/derive.agda
- Shinji KonoさんはTwitterを使っています 「なんかemptyかどうかを気にする必要があるのだった。 https://t.co/T3JE9kNNJu」 / Twitter
- 正規表現の微分でサブマッチング - Qiita
- Shinji KonoさんはTwitterを使っています 「実装する気になれないな…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一つは変換結果が正しいことを示すのが手間だからだな。concatが閉じてることの証明かなり面倒だった。というと、coinduction 使えってのが降ってくるのだが。どうなのかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「しかし、Automaton 簡単しようと何かすると、裏目にでるな。」 / Twitter
2020-12-17
- Shinji KonoさんはTwitterを使っています 「AnyでfiniteSetを作るってのが降ってきたが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「次はllvm版からsetjmp抜くのをやるか」 / Twitter
- Shinji KonoさんはTwitterを使っています 「LLVMのsetjmpは何回かやぶれさってる。stack切り替えるだけなんだが、return valueを設定する必要がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「setjmp除去はどっかにコードがあったはず」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ソースコードに直接コメントで書いたのだった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いや、専用のsetjmp/longjmpを作る方が簡単な気がする。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「CbCだとarchitecture に依存しないsetjmp/longjmpが書けるはずだと。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「builtinにしてコード生成時になんとかする。llvmはアーキテクチャに依存しないコース生成できるから。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「GCC側はnested function/closureを使ってるのでいじらない。LLVM/clangはnested function持ってない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「llvm/clangでのbuiltinなアプローチもやったんだが… なんかで挫折した。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「setjmpはsp/fpを構造体に入れるだけ。longjmpも基本的にはsp/fpを元に戻すだけ。ただ、そこでcaller/calleeの戻し値をちゃんと渡す必要がある。Cのreturnは複雑なのでcallerのreturnを使う必要があるが、値はcalleeにあり、sp/fpを消すとよろしくないことが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「builtinはなんかだめだった。llvm IR levelで処理しきれなかったはず。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「結局、builtin 探し回った結論は、LLVM IR level では setjmp/longjmp は表現できないってことだんじゃないかな。10年くらいここを回ってるような気がする。」 / Twitter
2020-12-18_位相・集合・一階述語論理
- Shinji KonoさんはTwitterを使っています 「ガロア理論一段落したので、位相空間論やりたくなってる。まず、開集合の定義からだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論でもできるけど、違う方法があると思われる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「でも、集合論もそうなんだけど、位相空間論も集合論/一階述語論理べったりなので、適当に直す必要がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そもそも位相空間論を圏論で再構築したのがすでにありそうな気がする。集合論でもToposのがあったんだが、モデル論的で「公理論的にもできる」としか書いてなかった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そもそも集合論の公理が構成主義論理と合ってなくてさ。存在のみを公理化するべき。まぁ、自分で作ったのが合ってるとは限らない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「AgdaのTopology一つ見つけたが、Data.Finは残念な感じ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「開集合は二つ集合の∩が開集合かつ、任意の開集合の集合の∪が開集合で良い。Data.Fin は要らない。まぁ、使うことになるかも知れんが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ZFSet あるから、楽勝だな。 record Topology : Set where field OSet : ZFSet _o∩_ : {x y : ZFSet }→ OSet ∋ x → OSet ∋ y→ OSet ∋ (x ∩ y ) _o∪_ : {x y : ZFSet }→ OSet ⊇ x OSet ∋ Union x これをZFSet record下でやっても良いんだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「フィルターの定義に似てるな。 Filter ( L : HOD ) : Set where field filter : HOD f⊆PL : filter ⊆ Power L filter1 : { p q : HOD } → q ⊆ L → filter ∋ p → p ⊆ q → filter ∋ q filter2 : { p q : HOD } → filter ∋ p → filter ∋ q → filter ∋ (p ∩ q)」 / Twitter
- Shinji KonoさんはTwitterを使っています 「FilterはLatice 上で集合論抜きに書ける。集合演算をLaticeで定義してやれば良い。 _⊆_ : L → L → Set n _∩_ : L → L → L」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので、束論で議論すれば良くて集合論要らないんじゃないの? あるいは同じだがBool代数上で議論する。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論の公理を振り回すより、HODの公理の方が直接的で楽。モデルが同じなので、HODで証明すれば、集合論側で否定されることはない。ただ、集合論側で証明があるかどうかはわからない。HODならZFの公理から構築できるってのを示さないと。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「できるような気がする。ここでいってるHODは上限が順序数で存在するので、そういうのがあれば集合だってのがなんかあった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「それは証明するべきものだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「でも書き方がわからんな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論だと集合xに属さない要素全部ってのは集合にならないのだが、ODだと両方ODになる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「目標はチコノフなので Coverを定義する必要がある。 record _Covers_ (C A : HOD) : Set where field nei : ( x : HOD ) → A ∋ x → HOD cover∋nei : {x : HOD } → C ∋ nei x is-cover : ( x : HOD ) → A ∋ x → nei x ∋ x ぐらいかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「開被覆はOSet∋Cで良いんだが… そもそも開集合って集合なんだっけ?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合なみたいだな。で、有限部分被覆なんだが… ある自然数があってとやるしかない。finiteSet は既に定義したので、それを使うべきかもな。中にいろいろ便利なものがある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直積が面倒なんだが、ordered pairはある。でも、directに直積にしたいところ。面倒なのは直積が集合だってところだけなのでskipできるかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「積位相がいるじゃん。 有限個の i に対してのみ Ui ≠ Xi である 何言ってるのか意味不明だな。あ、そうか、無限個の直積を考えてるからか。 先に無限を書くのは数学者のくせか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「単に射影の有限部分被覆を考えても凸集合しか出てこないからダメって話。形は無限に複雑になるのだが… 所詮は可算モデルだから。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「可算無限なのに有限と無限の差が出るのは不思議」 / Twitter
- Shinji KonoさんはTwitterを使っています 「元の空間がないとだめなんだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「結局、凹集合を数え上げる話になるのかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「任意の積位相による開被覆は、結局は、各射影の開集合から構成されてるはず。問題はむしろ、凹の含まれてない点にあるんだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「開基から生成ってのもやらないとだめなのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いろいろ面倒だな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「開集合には穴の空いたのもあるわけだから、別に凹でも良いじゃんという気がするが。いや、射影の有限被覆からは作れないって話か。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「開被覆の開集合の構成の各段階で有限被覆を確認すれば良いだけな気がするが… 構成をとって来れるのかな。いやでも、積位相の作り方からして、生成手順がないとあれだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「それですむなら、かなり簡単なんだけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いや、それは個々の開集合の話か。開被覆は無限個の開集合を含むから…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「有限交叉でやるのが普通らしい」 / Twitter
- Shinji KonoさんはTwitterを使っています 「チコノフはこれがわかりやすいんだが、極大フィルター使うと良いと書いてある。極大フィルターの存在には選択公理を使うはず。 https://t.co/IevZBJWnnt」 / Twitter
- チコノフの定理の証明の概略 - 再帰の反復blog
2020-12-19
- Shinji KonoさんはTwitterを使っています 「この操作は集合の上限と順序と排中律があればいける。追加するのは直積の任意の集合かな? QT 与えられた集合族Sに対して、有限交差性を満たすようにしながらどんどん集合を追加して、これ以上もう追加できない状態(有限交差性についての極大集合) S' にしておけく」 / Twitter
- Shinji KonoさんはTwitterを使っています 「極大フィルターってのは超フィルターのことか。 Xはコンパクト ⇔ Xの超フィルターは必ず収束する。 確かにこっちの方が楽かも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「超フィルターはこれ。収束と書いてあるが存在で良いんだろうな。 record ultra-filter { L : HOD } (P : Filter L) : Set where field proper : ¬ (filter P ∋ od∅) ultra : {p : HOD } → p ⊆ L → ( filter P ∋ p ) ∨ ( filter P ∋ ( L \ p) )」 / Twitter
- Shinji KonoさんはTwitterを使っています 「結局、超フィルターの存在がコンパクトと同値で超フィルターがLnにあった時に、その直積に対して超フィルターを定義してやれば良いってこと?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「だったら、ZFの一部としてやるのが良いな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「お、確かに有限交叉性そのものな気がしてきた。なので、楽勝っぽいです。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ということはフィルターの filter2 : { p q : HOD } → filter ∋ p → filter ∋ q → filter ∋ (p ∩ q) これは実は有限性に関する言明ってことなのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「開集合ではなくトポロジーと呼ぶ方が良い気がする。ある集合族が開集合であることを要求するのがトポロジーなんだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ZFからここまで来たと思うと胸熱だな」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ならNatとか使わずにコンパクトを定義できるかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「多分、有限交叉性の定義をフィルターに並行するように書いて、それが*普通*のコンパクトに同値だと証明するのが良さそう。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「つうか、ultra filter が有限交叉性だってのを示せば良いのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これは超フィルターの定義を書いた時に、これは有限交叉性だと一発で見抜けないとだめなケース」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合 X 上の集合族 S が有限交叉的とは T ⊂ S が有限族のとき ⋂T≠φ だと書いてあるがSはもちろんφを含まない。Sの要素二つの∩がSに含まれて、それがφにならないで良いのだな。Sから始めて∩とっていけば良いのかな。まぁ、そんな感じか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「数学科に聞くと「なんだ超フィルターが有限交叉性だって知らなかったの?」と笑われるパターンだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「あら超フィルターが集積点を持つと書いてるな。なので超フィルターが直接、有限交叉性になるのではないのだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「確かに超フィルターはLか\Lがどちらかに含まれるだから、ちょっと違う。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ここで開集合が出てくるのか。 QT 位相空間 X の部分集合 S に対し、X の点 x が S の集積点であるとは、x を含む任意の開集合が少なくとも一つの x と異なる S の点を含むことを指す。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これはinitial objectってことか」 / Twitter
- Shinji KonoさんはTwitterを使っています 「accumulation pointよりも、limit pointの方が直接的」 / Twitter
- Shinji KonoさんはTwitterを使っています 「2011にも集合論とチコノフを復習してるな」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんでこの時期だったのかは不思議 https://t.co/QwZWYOKQ5e」 / Twitter
- Seeker's eye: チコノフの定理
- Shinji KonoさんはTwitterを使っています 「Programming Language Foundations in Agda https://t.co/btA0QXs4Fi」 / Twitter
- Programming Language Foundations in Agda – Table of Contents
- Shinji KonoさんはTwitterを使っています 「推論が繋がったら証明でしょ。なに言ってるの? 帰納推論と一緒にするな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ポパーの反証可能性とかも、推論と帰納推論の混同なんだよな。いや、偽の命題があったら無矛盾というあれなのかも知れんが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まぁでも、だいたい、tweetした感じでできるっぽい。かなり量が多いがファイル一枚に収まりそう。チコノフの定理はだいたい2ページくらいのが多い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ただ、Generic Filterとか放置してるものも多いので…」 / Twitter
2020-12-20
- Shinji KonoさんはTwitterを使っています 「Generic Filter もかなりめんどくさくて。できそうではあるが、くらい。Cardinal の方を優先するべきだろうな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「どうも5次元以上の多次元になると、幾何学が単純になってしまうらしく、それで時空が4次元って話があるらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんかGeneric Filterには部分関数は関係ないってのがわかった。反例ででてくるHω2は別ファイルが良くて、しかも、それがNat→2の部分関数であることを示す必要もないらしい。単にそういう性質を持つωの部分集合の集合であれば良いらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「この辺り、今やるといろいろ簡単かもな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ω→2は数え上げできないのだが、定義上限のある部分関数にすると数え上げできる。そういうトリックらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「可算モデルだと、中の非可算集合も結局は可算なのでωとのbijection がある。でも対角線論法があるので中の可算集合とのbijectionはありえない。問題は、そのbijection が集合かどうかだと思うんだが… 普通にbijection を定義するのではだめ。可算モデルの中でbijection を定義する必要がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まぁ、でも普通のbijection で集合であることを要求するのが簡単そうに思える。pairでも、単なる順序数のpairではなくて、それが集合に対応することを要求してた。でも、なぜ集合である必要があるのかが謎だな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論の中がreal worldに対応するためには、そういうことが必要なのだというメタ公理みたいなものかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直接的には対角線論法と両立させるためか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「bijection が集合である時のみ、実世界のbijection と一致するみたいな感じか。これって、そういう言明は集合論ではあるのかな。まぁ、集合しかないから、それでやるしかないんだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Bijection はODでは書ける? そこでHODでないと矛盾するってのを出せるのか? 矛盾は出るが、ODで書けるのかって問題か。実世界ではBijection は常に存在するとは限らないってことだが。んー。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「対角線論法 record Bijection (R S : Set): Set where field fun← : S → R fun→ : R → S fiso← : (x : R) → fun← ( fun→ x ) ≡ x fiso→ : (x : S ) → fun→ ( fun← x ) ≡ x diagonal : ¬ Bijection ℕ ( ℕ → Bool ) ってわけだが。(レベルが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HODでのBijectionは、こんなふうに書くのか。(昔の自分に感心してる https://t.co/uoRLnOZrp0」 / Twitter
- Members/kono/Proof/ZF-in-agda: 28c7be8f252c cardinal.agda
- Shinji KonoさんはTwitterを使っています 「この方法だと、可算順序数だと無限集合は必ずBijection があるになってるな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「やはり何かいるな。可算モデルでのPower ωは歯抜けだが、公理はω→2が全部入ってると主張してる。Bijection は歯抜けに対して成立しているが、公理の主張からはBijection があると矛盾になる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「普通はPower ωはHODではないになると思うんだが… そういう解決方法もある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「排中律は絡んでいるのだが、選択公理下では使えるので…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論のBijection は普通のBijection より条件が多い。行き先が集合内にあるという限定がある。一度、順序数を経由するのでそうなる。Power ωだと、そこが乗り切れない感じか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「それで良いみたいだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ω→2が可算順序数の部分集合で全部入ってないのがバレないのは、レーベンハイムスコーレム。対角線論法で実際に入ってないものが構成できるのだが、その入ってない範囲は内部のωであって、Power ωは値を指定せずに「その外にある順序数」を返す。構成できるものは可算なので問題ない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Bijection は中のωとの対応を要求するので矛盾するので存在しない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「record Injection (A B : Ord ) : Set n where field i→ : (x : Ord ) → odef (* A) x → Ord iB : (x : Ord) → ( lt : odef (* A) x ) → odef (* B) ( i→ x lt ) iiso : (x y : Ord) → ( ltx : odef (* A) x ) ( lty : odef (* A) y ) → i→ x ltx ≡ i→ y lty → x ≡ y」 / Twitter
- Shinji KonoさんはTwitterを使っています 「このiBの部分が相手の集合に乗ってるのことを要求するのだが、ω→2だと、それが示せない。できるとすると対角線論法に引っかかる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いろいろヒヤヒヤするよな。でも当時の集合論を作った人たちも矛盾を踏まないかどうか心配してたはず。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「この話は結局、可算モデルの中で非可算集合はどう定義されるかってことで、内部のωにInjectionがないって話に帰着するってこと。連続体仮説はInjection の制御の問題になる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まぁでも、まだ証明を遂行してないので間違ってるかも知れん。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なのでbijection が集合かどうかとは関係なかった」 / Twitter
- Shinji KonoさんはTwitterを使っています 「今のHODでは具体的な順序数の値を指摘できるのは空集合だけ。pairでさえどの値を持つのかわからない。ただ、一対一を仮定してるので詰められて入っていることになってる。まぁ、それはスカスカに対応させた後、詰めれば良いとも思えるんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一対一はなんか変。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんかもうありとあらゆるものが可算集合の中に入ってるので、それで良いんですかっていう気分。」 / Twitter
2020-12-21
- Shinji KonoさんはTwitterを使っています 「ベルンシュタインとバーンスタインっておんなじだよな。ちゃんと証明しないとな。」 / Twitter
2020-12-23
- Shinji KonoさんはTwitterを使っています 「今年は、ZF on Agdaで「しまった」の大逆転があったのが面白かった。安易な仮定を入れて解決したが… 6/24に見つけて7/5には片付けてる。そのあと、わりといろいろ進んだが放置中。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そのあと、群論に転んだ理由は不明。でも、おかげでFresh Listを学べた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「置換をコンビネータで書いて、具体的な有限減少数列FLに対応させるわけなんだが… もっと簡単な方法がある。01234に置換を適用して、それからFLを計算すれば良い。bijection をいじるのは難し過ぎ。逆も可能。まぁ、やってみないとわからんか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まあ、でももうできてるし、今やる気はないな。変換したリストがbijection に対応するのを示す必要がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「割と簡単かも」 / Twitter
- Shinji KonoさんはTwitterを使っています 「やろうとしたあとがあるな。やっぱり面倒なのかも。 ---FL→perm : {n : ℕ } → FL n → Permutation n n ---FL→perm x = plist→perm ( FL→plis x) -- perm→FL : {n : ℕ } → Permutation n n → FL n -- perm→FL p = plist→FL (plist p)」 / Twitter
- Shinji KonoさんはTwitterを使っています 「微分法の状態の有限性は入力の長さで抑えられるので、ωオートマトンでなければ気にする必要はない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「有限性を示す方法は決まった形しか出てこないで良いはずなんだが… やり方がわからんな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「微分法の状態の有限性は、元のsubtermのx & y の形の部分集合になるので、 subterm x subterm → Bool でsubtermの有限性から出るらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「微分法が正しく正規表現の意味を保存するかどうかは正規表現同士あるいは、さっきの subterm x subterm → Bool が元のに等しいかどうかの問題になる。split 使えるから意外に楽かも。そこからDFAまでは、まだ距離があるけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これは院生時代にやったITLのtableau展開と同じで、いろいろ工夫すると速くなる。BDD使ったり。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「CFGとPDAはやったのだが、同等性の証明はやってない。CFGがリストとか使っててダサい。動いてはいるようだが。再帰下降法(+左再帰)で書いてやる方がAgda向きだろう。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「来年はTuring Machine 。対角線論法は書けたが、halt 問題がまだ。」 / Twitter
2020-12-24
- Shinji KonoさんはTwitterを使っています 「halt 問題、いまいちうまくできないな。 List Bool → Bool と List Bool のBijection なはずだが。 TM : List Bool → Bool TME : TM → List Bool UTM : (tme i : List Bool)→ Bool halt : List Bool → Bool」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なのだが、 (tm : TM) (i : List Bool) → halt (TME tm + i) ⇄ halt (TME (UTM (TME tm) + i TMEは元に戻らないのだが、haltが違いを吸収してしまう。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まだ、halt 問題難航してる… TM と List Bool のBijection halt : TM → Bool は仮定して良い。 halt tm ≡ halt (utm (encode tm)) は万能性からでる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そこで、TMに任意のList Bool→Boolが入っているとするとBijection Nat (Nat →Bool)になるという風にしたい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まぁ、halt と not halt でも良いのだが」 / Twitter
- Shinji KonoさんはTwitterを使っています 「TMに任意のList Bool→Boolが入っているの否定は TMでないList Bool→Boolがあるか。実際それをnot haltで構築できるわけだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「全部trueとかは自明にあるのでだめ。haltは自明でない例になってる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので、 halt : TM → Bool だけでは足りないのだな。真実性の問題。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「haltはTMなのでencodingがある。この辺りを組合せて、List Bool → Bool とList Bool のBijection を作れるだろと思ったんだが、List Boolに戻すのにencodeを使うと元に戻らない。encodeのUnique 性を要求すると、そこで矛盾してしまう。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Unique なのはTMなので、 TM → Bool と TM でやるべきかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「それがBijection にならないのはわかるが、haltの役割は?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「それがBijection にならないのはわかるが、haltの役割は?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「自己参照側をやってみるべきだな」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Bijection ではなくて、injection でやれ説も。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「halt自体には大した意味はなくて、Bijection の反例なだけ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「injection でやるのが良いような気がしてきた」 / Twitter
- Shinji KonoさんはTwitterを使っています 「インジェクションだとできないな」 / Twitter
- Shinji KonoさんはTwitterを使っています 「非構成的にでも逆射を作れれば。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「あ、わかってきたかも知れない...」 / Twitter
2020-12-25
- Shinji KonoさんはTwitterを使っています 「なんか書けたような気がする。 halting : (halt : TM → List Bool → Bool ) → (z : TM) → ¬ ((x : TM) → tm z ≡ (λ y → halt x y ) )」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まだ、微妙に違うか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「halt は∀じゃなくて、何か存在すれば良いから。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「haltがTMの停止を見てるかどうかは関係なくて、TMからBoolへの写像なTMであることが矛盾なのだが、自明なものを排除する必要があると思うんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いい加減、AutomatonのAgdaと教材を整理して、問題を足さないと。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いや、直接的にhaltなTM的に書きたいんだが…」 / Twitter
2020-12-26
- Shinji KonoさんはTwitterを使っています 「対角線論法、injection だけでもできるはずだが、逆射の構成が排中律なしにはできないっぽい。二重否定で記述すれば何とかなる可能性もある。まぁ、Bijection でやるんだろうな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Turing MachineとList BoolとのBijection はUTMがあれば自明な気がするが、Agda特有の面倒なことはある。でも一応言える。これは、TMが List Bool → Bool を全部はカバーしてないってこと。halt は、その中の一つの関数に過ぎないのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「知りたいのはhaltの特殊性が何かってことね」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Bijection の構成はhalt 一つだけだと無理だよな。なので、たぶんInjection でやってる。つまり、排中律とかのなんか別な仮定がいると思われる。それは、まぁ、haltの特徴なのだろというわけなんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「haltを使ってBijection 書けるでしょってのが最初の目論見だったんだが… halt : TM →List Bool → Bool っだけ。常にtrueを返すとかだとだめなのはわかる。でTMが停まる時に停まらないってのは? そうか、そもそもTMが未定義を含むの忘れてた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「haltの特殊性は停まらないことがないところにあるのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直観論理的な二重否定表現を使ってしまった。知らんけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「haltが常にfalseを返したりしないってのは仮定にあるはずなんだが、明示的に書いてる証明はみたことない。それは理論の整合性、つまり、解釈が無矛盾なら偽を含むってやつなはずだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「√2が無理数だってのはn/mでn*nが奇数はありえない。で、偶数の時はどうするの? 互いに素を要求するのはなんだかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これは割と良いが… https://t.co/Mhlwvobqfe」 / Twitter
- √2が無理数であることの証明 | Fukusukeの数学めも
- Shinji KonoさんはTwitterを使っています 「偶数x偶数が偶数なのは、偶数+偶数が偶数を使うと再帰で簡単に示せた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「2の因数の個数ってのは結構複雑な概念だよな。互いに素よりはましだが。 record Factor2 (x : Nat) : Set where field i : Nat j : Nat xis : x ≡ 2^i * j oj : odd j かな。 (fx : Factor2 (x * x) )→ even (i fx)」 / Twitter
- Shinji KonoさんはTwitterを使っています 「互いに素を使うのとあまり変わりがない」 / Twitter
- Shinji KonoさんはTwitterを使っています 「div : (x y : Nat) → Set div x y = div1 x x y y where div 1 1 _ _ = T div _ _ 1 1 = T div1 (suc x0) x (suc y0) y = div x0 x y0 y div1 0 x 0 y = ⊥ div1 0 x y0 y = div1 y0 y0 x x div1 x0 x 0 y = div1 x0 x0 y y くらい?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「どちらか1になるまでか。で、 even x → ¬ div x 2 div x y → ¬ (¬ div x 2 ∧ ¬ div y 2) これを示せば良いの? いや、割り切れる方を定義した方が良いな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「2*n*n≡m*m→ div n m となってよろしい。 record Rational : Set where i j : Nat dv : ¬ div i j だが、掛け算を定義すると約分が必要なのか…」 / Twitter
2020-12-27
- Shinji KonoさんはTwitterを使っています 「√2は佳境にきたところで電池切れした。 残ってるのは gcd n 2 ≡ 2 → gcd m 2 ≡ 2 → ¬ ( gcd n m ≡ 1) だけだが、再帰でやらないのかも。 全体に長くて汚い…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「gcd を n|mの代わりに使うのはな。https://t.co/XPROOjRJAmにあるから、それを使う方が良さそう。素数が無限にあるやつとか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「gcd n 2 ≡ 2 → gcd m 2 ≡ 2 → gcd n m ≡ 2 とは限らないのがな。gcd n mでnを減らすのはまずい戦略。gcd n 2なら2減らせるのだが。 再帰でないとするとなんだろう?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「GCDはまだできてないが、automaton の Agda の整理はなんとかできた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「GCDは、間違ってる可能性もあるんだよな。(いまさら?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「GCDは引き算で互除法を実装していて、引数4つで回してる。引き算といっても一つ一つ引いていく。gcd n m でnがゼロになった時に同時に引いていた m に切り替えるのだが、gcd m 2 をgcd (m - n) 2に切り替える必要がある。結局、再帰を並行してたどれば良いだけなはず。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「終了条件はできてるのだから、あとはinduction stepだけなのだが。」 / Twitter
2020-12-28
- Shinji KonoさんはTwitterを使っています 「GCDが通らない理由はバス停で降ってきた。型が違うから明示的なsubstが必要なんだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ここは今でもなれないな。値としては同じなのに。」 / Twitter
2020-12-29
- Shinji KonoさんはTwitterを使っています 「gcd、まだ、よくわかってない。この辺りの証明技術は身につける必要があるのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「gcdが片付くと、素数が無限にある証明もできるだろうな。有限ならn!+1が反例になるだけだから。ちょっと書こうとしたのだが、割り算がめんどくて…」 / Twitter
2020-12-31
- Shinji KonoさんはTwitterを使っています 「結局、GCDについていろいろ証明する羽目になってる。詰将棋的。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「GCD、要するに複数の引き算を追いかければ良いのだが、めんどくさすぎる…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まだ、制約が足りないみたいだな。意外に固い…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「去年はWindowsのくそと戦っていたらしい… 今年はGCDか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「初期条件から来る制約が書かれてないのが問題なのかな。それを明示的に証明するべきだな。これは、一種のHoare condition だ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「引数4つi,i0,j,j0だが、最初は i=i0, j=j0。さらに、 i≦i0,j≦j0,i0≦j0 くらいの制約が可能だな。示したいのはgcdは割り切れるなら1じゃないってだけ。 gcd261 : (n n0 m m0 i i0 : ℕ) → 1 < n → 1 < m0 → gcd1 n n0 i i0 ≡ m0 → ¬ ( gcd1 n n0 m m0 ≡ 1 ) 簡単なはずなんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaで集合論をやった結論の一つは 選択公理は排中律と同値 まぁ、ODなので集合に順序が最初から入ってるからそうなるわけなんだけど。でも、それで自分的には納得。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「可算順序数から作った実数が実世界に対応するかどうかは、また、別の話。それは一種のチャーチのテーゼではあるな。」 / Twitter
2021-01
2021-01-01
- Shinji KonoさんはTwitterを使っています 「制約追加、意外に自明じゃない。順序入れ替えるだけではあるが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「おっと、制約増やすと止まらないのか。ありえんな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「引数を増やして止まらなくなるのはおかしいだろ。でも、まぁ、仕方ないかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「制約を外部的に出す方が良いのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「うーん、ちょっと難しいな」 / Twitter
- Shinji KonoさんはTwitterを使っています 「再帰のステップの一部だけ抜き出して証明するってのはどうだろう?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「停止条件の継承みたいな推論があると良いのだが。そうすると引数を安心して増やせる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「あ、なんか降ってきた」 / Twitter
- Shinji KonoさんはTwitterを使っています 「<-cmp をはさむと止まらないのか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いやだめだ。振り出しに戻る。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「おっと致命的な条件を忘れてたぜ」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いや、関係ありませんでした。」 / Twitter
histric-1
- Shinji KonoさんはTwitterを使っています 「_⊆_ : ( A B : ZFSet ) → ∀{ x : ZFSet } → Set m _⊆_ A B {x} = A ∋ x → B ∋ x なので ⊆ の方が直観主義論理的に扱いやすい。真部分集合にすると等しくないという条件を追加する必要がある。フィルターの定義も⊆を使う方が自然。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ホモロジーは学部のどっかで少しやった。が、集合論/位相空間論に自信のない頃だったから。数学科の同期に「どこで選択公理使ってるかわかる?」とか言われてた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「学部の頃のいくつかの本にも選択公理は非構成的な概念だと言われていたのだが、その頃はまだわかってなかった。チコノフの定理の証明の難しさは乗り切れてなかったし。でも、まさか排中律のことだとは思わないじゃん。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「選択公理抜きでやるのがどういうことかもよくわかってなかった。排中律なしの数学がどう言うものかは、やってみないと。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ただ、当時も大学の数学の厄介さは、量化記号のスコープがはっきりしてないことだとは思ってた。今の学生はそこをプログラミング言語として突破できるのだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「整列定理から選択公理を導くのは排中律があればいけるのだが、使うのは一箇所じゃない。 ∀-imply-or : {A : Ordinal → Set n } {B : Set n } → ((x : Ordinal ) → A x ∨ B) → ((x : Ordinal ) → A x) ∨ B この微妙な命題に排中律がいる。避けられるかも。 https://t.co/khuE8t4kPf」 / Twitter
- Members/kono/Proof/ZF-in-agda: 9b0630f03c4b LEMC.agda
- Shinji KonoさんはTwitterを使っています 「OD baseだと、集合と順序数の対応は仮定してしまうので、選択公理から整列定理はやらない。排中律は選択公理から出るけど対応を使ってるので、それなしだと厳しい。選択公理から排中律抜きで整列定理が出るとは思えないな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合の整列には∈と⊆の二種類の順序数が入る。片方にできると良いが… x と {x} の関係によるか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「∈と⊆の二種類の順序の調整は、なんかトライした記憶がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「{x}がxの直後順序数に対応するってのを入れると⊇だけで良いらしい。こっちの方を公理にする方が良いかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「{x}は (x,x) なので構文的な問題でしかないのだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「data/datum だから axia/axiom みたいにならないの? axioms って書いちゃったりするけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「{x}とxの対応からはPower xとxの対応は出ないのでなんか仮定する必要がある。それが連続体仮説。少なくとも何かで抑えられるとしないとPower x自体が集合にならない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Power ω は集合ではないでも良いんだが世間が許してくれない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「それで可算順序数がPower ωを含むっていうあほなことになるわけで… 可算順序数の可算性は中からは見えないので問題ないけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「pairを直後順序数にすると、そこに他のものが割り込めない。pairの上界と個々のpairの間には無限の隙間があるから、そこに順番に入ってしまうイメージだな。それは制限が強過ぎる気もするが問題ない気もする。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんとなく、malloc的なイメージを持ってしまうので、型が違うものの配置が入り混じる方が自然な気がする。まぁ、あんまり関係ない。絶対アドレスはわからないから。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「V=Lや連続体仮説あるいは選択公理は、集合と順序数の対応、そして集合の要素に対応する順序数の上界に帰着されるようなので、あんまり制限を入れたくない。Filter抜きでもいけそうな気がするんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Automaton 普通にSetを返すように書いて行ったら、バッチリ行き詰まった。いや定義は書けるんだが、acceptを証明にいかないとダメなので厳しい。acceptがBoolを返すようにする方が簡単だな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「TL/1 compiler はtranslator が思ったよりもめんどくさい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「型整合はプログラムの正しさの一部でしかないのに、なんで偉そうにしてるの?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「プログラムでヤコビ行列というとベクトル可算システムってのがあって、ペトリネットとかに使われてたが… 実用的かどうかと言うと。でも、今の深層学習はそういうものかも知れないな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「掛け算の対称性を示すのに、長方形を縦に足しても横に足していっても同じってのがあるのだが、それらは記号論理的には別物。それが同じ値になることを示すのは容易なのだが、それでは対称性を示したことにはならない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「無無矛盾は、直観主義論理だと、無矛盾を構成的に証明できたら矛盾な意味になる。それはなんと証明可能なんだよな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「可換環って、そんなにやることあったっけ。有限ならいろいろあるだろうけど。めんどくさいのは非可換で、さらに不定計量とか。いや、代数学、この前復習した時にも、いろいろあるなぁとは思った。」 / Twitter
- shinji_kono 選択公理 - Twitter検索 / Twitter
- Shinji KonoさんはTwitterを使っています 「cut eliminationは一通り追ったけど、証明は割と厄介。停止性がね。僕は重要性はいまだにピンと来てなくて。重要だという人は多いんだが。 理由はAgdaでトラブルのは推論よりも 単一化 だから。述語論理の問題はそっち。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「カット除去は完全性の証明の一つなので、完全性証明したなら不要な気もする。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「不完全性定理はいまだにうまくて定式化できてない。UTMは頑張ればなんとかなりそうな気もするが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「自然演繹は必須だし理解しやすい。 証明とは何か 証明されたものが何故正しいのか がはっきりわかる。記号ゲームとして。なので論理学では、それを重視するのが良い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一階述語論理とモデル論は、直観とかなりのずれがある。論理式の意味は あらゆる可能な変数と述語の意味の組合せ なので超巨大。そのうちのすべての公理が 正しいもの がモデルなのだが、さらに 意味付けと関係なく恒真な式 とかを受け入れるのは困難だと思う。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「特に等式がな〜 等しいものを並べた無限個の式の集まりとか、なんとかならんの?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直観主義論理だと それは項の正規形が同じこと と主張できる。あるいは 勝手に定義した同値関係 だな。こっちの方が無限倍まし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「無限個の等式の話を聞いたのはμ代数からだが、その時に言われたのは 別に普通ですよ おいおいおいおい。その感覚、おかしいだろ。合同性は数学の基礎なのに、そこに無限をいきなり持ってくるのかよ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ところが正規化が有限かつ唯一なことを示すのは割と厄介でしかも 停止性には選択公理が必要 避けられそうな気もするが… なので直観主義論理の等式もたいがいではある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直観主義論理が証明可能な論理式を問題にするように、観測可能なものだけを問題にして、それ以外の仮定を排除するようなものが必要なのかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直接的に自己参照矛盾を示しても良い。対角線論法は間接的な自己参照に相当する。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ゲーデルの構成可能集合Lは最小モデルなんだが、古典集合論での定義を見るとSAT使ってたりして、かなり複雑。ODも定義可能なのでHOD=Lとなりそうだが、そうでない場合がある。HODはODのSubsetなのだが自由度がある。一応、Lも書いたんだが、なんかズレてる感じもある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「思い出した。このgalois理論の証明、地獄のように時間がかかる。それをネタにしようと思ったのだった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ゲーデル数があるので前半は正しいけど、後半は帰着の方法を見つけることは決定不能なのでね。 QT必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」 / Twitter
- 成田 悠輔さんはTwitterを使っています 「線形代数はなぜ重要な基礎なのか?一つの答えは「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というもの。データと向き合う統計学や機械学習で線形代数が活躍する理由もデータが映し出す世界の解けなさ故だろう」 / Twitter
- Shinji KonoさんはTwitterを使っています 「線形代数/連立方程式は確かに強力なのだが、それは定式化の一つで、数学に必要なlong shotに向いてるかというとそうでもない。ガロア理論もアルティンは線形代数使うのだが、五次対称群が可解群でないのを示すのには使ってない。線形代数でできるってのが主張なはずだが…」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「線形代数の重要性は否定しないけど、連立一次方程式に関係しない決定可能問題なんて幾らでもありそうで、「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というのは、過度の一般化と感じる。 https://t.co/zRwZHGK325」 / Twitter
- GengaQ SurvivoR@11/16返却さんはTwitterを使っています 「行列に変数入れたら途端に難しくなるのはそう 対角化は本質的には非線形の問題なので」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Haskellに対するdebuggerを定義できないなら、関数型言語の良さってなんだよ。」 / Twitter
@sinya8282
2020-11-04
- Ryoma Sin'yaさんはTwitterを使っています 「数理科学実験の第5回目が終わった... 正規言語(=左線形方程式の解)から文脈自由言語に一般化し、さらに講義内課題でいくつかの文脈自由文法を書かせた. 学生さんは文脈自由文法の定義を知らない状態から講義を受けて課題に挑戦しているので簡単ではないけど何人かは解けてて良かった. https://t.co/mt9cDNsJKi」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「文脈自由文法はPyhtonでは「初期変数」と「書き換え規則の列」のタプルで定義できて、あとはこのフォーマットの文法を deriv 関数になげると各ステップの導出が見える感じ. https://t.co/TxOrKnOPIg」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「自分で与えられた文法から導出したり、文法を考えてみたりして文脈自由文法の感覚がわかってきたところで、先週の講義でガッツリやった「原始語」の全体の集合が文脈自由文法で書けるかどうか?問題が open である歴史を少しはなして終わり. 来週は無曖昧文脈自由文法から代数関数の話に入る.」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「具体的には代数関数の定義をおさらいして、文法を可換化して関数方程式を作り、その解が(文法が無曖昧の場合は)言語の母関数となってることを説明していろいろありがたみを話して、SymPyで母関数を具体的に計算機で計算するってのをやる予定.」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「自分が配布した文脈自由文法のプログラムの+アルファの部分(講義内では必要ない additional なコード)に素朴なバグが入ってたので恥ずかしいです...直します...」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「ちなみに最後の写真にある 「"a"と"b"が現れる回数が等しい(例:"baabab")語」 は私の痛恨のミスです😱 数が数えられないオートマトン人間なんで.......」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「{ w ∈ {a,b}^* | |w|_a = |w|_b } は regular language ではないけど、regular language の収束列の収束先ではあるので簡単(?) (cf. https://t.co/ENDkbclaBw」 / Twitter
- Asymptotic Approximation by Regular Languages - measure.pdf
- Ryoma Sin'yaさんはTwitterを使っています 「文脈依存言語と一般の生成文法の記述する言語の最小不動点的な特徴づけ、難しいのかな(いずれ読むか)? Generalization of the Ginsburg-Rice Schützenberger fixed-point theorem for context-sensitive and recursive-enumerable languages https://t.co/q4RcFR49Qj」 / Twitter
- Generalization of the Ginsburg-Rice Schützenberger fixed-point theorem for context-sensitive and recursive-enumerable languages - ScienceDirect
2020-11-10
- Ryoma Sin'yaさんはTwitterを使っています 「今朝は数学基礎論序説の輪講で∀∃理論のチャン-ウォッシュ-スシュコの定理をやったんだけど、頑張って初等部分構造の列を作っていって最後に初頭鎖定理で決めるの痛快でしたね. わかりやすく説明してくれた学生さんに感謝. https://t.co/sPxpLPt8c3」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「「間違いと真理: 解析学と集合論の場合」 https://t.co/HvMuKN3iYb」 / Twitter
- 間違いと真理: 解析学と集合論の場合 - susemi2018-x.pdf
- Ryoma Sin'yaさんはTwitterを使っています 「正則環 1mm もわからん.」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「諸事情あって3.3節(ホーン理論と約積)は私が担当することになったんだけど、フィルター大好きマンなのであっさり読めた(というか主定理の難しい方向の証明はomitされてたので技術的に楽な節だった)。」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「えっ正則環って色々あるの. https://t.co/SO1Q4cwED7」 / Twitter
- ぴあのんさんはTwitterを使っています 「どの正則環だろう」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「基礎論序説に出てくる「正則環」は (可換ではない)環の公理 + ∀ x ∃ y xyx = x のモデルですね.」 / Twitter
- ぴあのんさんはTwitterを使っています 「@sinya8282 https://t.co/KEQSQLzB2E https://t.co/2U9apmIcXQ」 / Twitter
- Regular local ring - Wikipedia
- Von Neumann regular ring - Wikipedia
- Ryoma Sin'yaさんはTwitterを使っています 「@piano2683 なるほどー. 基礎論序説に出てきたのは後者でした. んで私が1mmもわからんといったのは前者でした(ややこしい笑). 普通に「正則環」でググったら前者が出てきたので...」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「正則という概念を比較不能な概念に変換する von Neumann とか言う接頭辞、強すぎん?」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「可換環論と非可換環論で regular って言うとそれぞれ違う概念(regular/ von Neumann regular)を普通は思い浮かべるのかな.」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「N上の超フィルターに思いを馳せることでRamseyの定理がスパッと出せるの気持ち良すぎるな?」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「超フィルター = なんか性質の良いデカいもんの集まり Ramseyの定理 = デカいもんの有限分割にはデカいもんがある なので両者には自明な深い関係がある(???)」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「半群のStone-Cech完備化に思いを馳せることで(私の知る限りstate-of-the-artな) Hales-Jewettの定理までスパッと示せるらしくて完全に超filterジャンキーになりそう. 超filterキメたいぞ〜〜〜〜」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「10月から講義準備で忙しすぎて死んでるのでフィルターで組合せ論倒すやつ勉強できてない... https://t.co/99XcIua2V4」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「半群論で習った正則半群はまさにこの定義(∀x ∃y. xyx = x)だったなそう言えば. https://t.co/q9B55LGtAb」 / Twitter
- Regular semigroup - Wikipedia
- ぴあのんさんはTwitterを使っています 「モデル理論の文脈だと、「vN正則環の理論」とその∀-Horn partである「冪零元を持たない可換環の理論」は共通のモデル随伴を持つけど、一般にはTがモデル随伴を持ったとしてもT_{∀H}がモデル随伴を持つとは限らない、とかの面白い話がある←ここでlattice-ordered groupが出てきて無事死亡」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「「モデル随伴」の時点で死亡しました😭(勉強します...)」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「さらにこの y を「一意に存在する」に強めたのが inverse semigroup さんです. https://t.co/cbp8orgwb6 自由 inverse semigroup さんの語の問題は微妙に非自明(自由群や自由モノイドの語の問題は自明)なところがちょっとおもしろかった.」 / Twitter
- Inverse semigroup - Wikipedia
- Ryoma Sin'yaさんはTwitterを使っています 「Inverse semigroup だけで一冊の本が出てるので色々理論があるんでしょうね. https://t.co/Fakg3jwMb3」 / Twitter
- Inverse Semigroups
2020-11-11
- Ryoma Sin'yaさんはTwitterを使っています 「今日の数理科学実験では文法の曖昧性の話をして、ちょっと自然言語の例も出したりした. https://t.co/gqPfotcXT4」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「この "people people people see see see" という例は私は金沢先生の形式言語のオンラインテキストから知りました. (こういう読みにくい英文があるとは!! 非正規!!!) https://t.co/RsShu5kwTY」 / Twitter
- lecture1.pdf
- Ryoma Sin'yaさんはTwitterを使っています 「んで Chomsky--Schutzenberger の定理を通じて文法から代数関数の話に行って、最後はプログラミングパート. SymPyで簡単な代数計算. https://t.co/lw1RIgPjxs」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「来週は SymPy でもっといろいろな計算をやる予定. 「意外と計算機でできることって多いんだ」と感じてもらえると嬉しいっすね(準備ぃ...).」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「ちなみに "people people people see see see." を DeepL に食わせると壊れます. _人人人人人_ > People <  ̄Y^Y^Y^Y^Y^ ̄ https://t.co/R7i91xkQsB」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「講義ツイに「イイね」押してもらえると素直に嬉しいしなんか準備ももっと頑張れる気がする(ありがとうございます😭)」 / Twitter
- す (終了)さんはTwitterを使っています 「一瞬何言ってるのかぜんぜんわかんなかったのだが、people see が people にかかるのか。」 / Twitter
- す (終了)さんはTwitterを使っています 「訳としては適切じゃないけど「お前を見る人が見る人が見る人が見る」みたいな…… people see ってあんま自然な日本語にならん気がするのは私が英語と日本語ヘタだから?」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「ちなみに日本語でこういう形の文章(すなわち X^n Y^n で XとYは日本語)の例が作れないか少し考えてみたんだけど作れませんでしたね... 良い例があれば皆さん教えて下さいm(_ _)m」 / Twitter
- Chomsky--Schutzenberger の定理 - Google 検索
2020-11-13
- Ryoma Sin'yaさんはTwitterを使っています 「コーディング開始してまだ2時間ぐらいだと思うけど、すでにThompon構成をほぼ書き終わらせてGraphviz形式で書き出してオートマトンの可視化とかもできてる人もいる. 良いペース. #seccamp #seccamp_z3」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「才才才してるのでパズルっぽい基本定理であるところのGreenの定理が形式言語理論に役立つことを見抜いてしまったのだよな... 勉強した半群論が使えて気持ちいい〜〜〜 (cf. https://t.co/ENDkbclaBw https://t.co/PHaiUl1SkE」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「田中先生の本(p. 97)には(約積とホーン理論の対応の証明の直後に) 「では,直積を保存する文全体がどのようなものになるかというと,容易には記述できない.実際,それが計算不可能であるという結果がマコーバー(1960)によって得られている」 と書かれていました. https://t.co/YO5peY62Qj」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「マコーバーの論文に目を通してないので「計算不可能」の意味が1mmもわかってないんですが,有限の文の集合Tを入力として「Mod(T)が直積に閉じているかどうか」が決定不可能ってことを言ってるんですかね?よくわからん. (上の問題が決定不可能でも特徴づけが難しいってことの理由にはならない気も)」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「こう,なんか,形式言語理論でもモデル理論でもそうなんですけど「演算XXXらで閉じている」っていう抽象的な性質が「YYYで定義できる」っていうより具体的な性質で書けるの気持ちよくない???」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「代数的言語理論とかのきれいな世界を知っちゃうと,有象無象にある閉包性の低い言語クラス(しかし応用上は重要)みたいなものをわりと軽視しちゃいガチな感じはたしかにある. とは言え変な言語クラスにも理論的に重要なものがあったりするのはママあるのでニュートラルな感性を持ちたい.」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「正規表現の基本から教えて、オートマトンの作り方、バックトラックベースのマッチングの動作、バックトラックで実行が遅くなる例をみっちり紹介してReDoSの検出アルゴリズムを説明(これは藤浪さんが担当)して、と非常に濃い1日だった... 講義の構成上、多分初回が一番濃ゆい回な気がする.」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「ReDoSの原因となる正規表現の部分構造の検出、オートマトンの繊維関係に順序関係を入れた拡張を考えたり、オートマトンのリバースとか直積とか強連結成分分解とかある構造のサブグラフの探索とかやるのでフツーにめちゃめちゃ非自明&テクいんだよな. (論文になってるぐらいだからな)」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「「ReDoSの検出」というよりは正確には「ReDoSの対象になるような多項式・指数時間のマッチングがありえる正規表現」の検出だけど長いので省いた.」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「強連結成分分解、Tarjanとか凝ったことしないで素朴に幅さ優先で到達可能関係を計算していく方針でやったら簡単に実装できるよね(それでもたかだか3乗オーダーとかじゃないか?).」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「2乗オーダーも3乗オーダーもどっちも線形でない多項式、変わらへん変わらへん(炎上発言).」 / Twitter
- ⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 せや DFS 2 回を 1 回にできるのが凝ったやつ、オーダーは変わらん」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「@ygussany あ〜なるほど完全に理解.一回でできるってのが嬉しいのね. ってかグラフアルゴリズム界隈ぜんぜん知らんかったけど「線形」っていうと普通は辺の数で線形って意味なのか(点の数かと思ってた).」 / Twitter
- ⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 「入力サイズ」に対して線形ですね グラフは頂点も辺も入力なので、正確には O(|V| + |E|) です」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「@ygussany まぁそりゃそうか(職業上、|V| < |E|なグラフを常に考えているのでO(|V|+|E|) = O(|V|)的に無意識に考えていた).」 / Twitter
- ⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 (何かがおかしい)」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「@ygussany |V|と|E|また間違ってしまった.」 / Twitter
- ⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 もちろん素朴に 2 点間の到達可能関係を全部ゼロから計算しても求まるけど、それはさすがに線形ではない」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「@ygussany (最初のツイで私が言った「素朴な方法」はそっちだった笑)(素朴すぎた)」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「適当なつぶやきするとプロから即座に指摘&指導してもらえる、それがツイッター(ありがたい).」 / Twitter
- ⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 これ読んで勉強して https://t.co/DbbVZR5k4o」 / Twitter
- ⚫️Y.Y.⚪️さんはTwitterを使っています 「強連結成分分解のアルゴリズム、シンプルな魔法って感じがする https://t.co/W4ovNEW25T」 / Twitter
- 強連結成分分解の意味とアルゴリズム | 高校数学の美しい物語
- Ryoma Sin'yaさんはTwitterを使っています 「@ygussany サンキュー!高校数学やりなおすわ. (っていうか昔これ読んで勉強した記憶が笑)」 / Twitter
- ⚫️Y.Y.⚪️さんはTwitterを使っています 「@sinya8282 (さっきのツイートふぁぼられてたしな…)」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「@ygussany YYのツイート見て読んだかもそういえばw」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「みんな、どんどんオートマトン理論でテキトーなつぶやきしてくれよな!(優しく教えます)(まぁ全部観ることはできませんが)」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「VもEも同じ1文字やし同じようなもん(???).」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「は?????? 指数爆発DFA投げつけるぞ???? (優しく教えるとは)(Rabin–Scott並感やめろ) https://t.co/QoSKNvASR0」 / Twitter
- ⚫️Y.Y.⚪️さんはTwitterを使っています 「オートマトンとか決定性でも非決定性でも実質同じでしょ」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「今日のセキュキャンZ3(ReDoSの検出)の講義では、先週のかるいおさらいして「とりあえず正規表現からオートマトン作るコード書きましょうか」という感じ. JSの正規表現のパーサーはチューターの開発してるRere.jsを流用して、純粋にThompson構成を実装する感じ. https://t.co/nnupaquALy」 / Twitter
- MakeNowJust/rerejs at 0c2ac95d0f13b7c5acfc75fc2e0db6239058eb07
- Ryoma Sin'yaさんはTwitterを使っています 「ほんと,こんな単純なメカニズムで文脈自由文法は定式化されているのに普遍性が決定不能なのヤバいよな.」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「文脈自由言語、こういうふう(→を⊃)に書くと完全に代数やってる感じ. https://t.co/teGhe6QxrK」 / Twitter
@masahiro_sakai
2020-10-30
- Masahiro SakaiさんはTwitterを使っています 「Compiling with Continuations, or without? Whatever. https://t.co/GzSpSU3YrZ CPSベースとdirect style + 明示的な合流点のIRの双方の利点を活かせるIRとして、FelleisenのC的な機構で継続へのアクセスを選択的に許しつつ、エスケープするかとリターンするかを型システムで扱うようなIRを提案。」 / Twitter
- Compiling with continuations, or without? whatever. | Proceedings of the ACM on Programming Languages
- Masahiro SakaiさんはTwitterを使っています 「恥ずかしながら "CFG-based IRs in SSA-form are isomorphic to CPS" って知らなかった(それはそう)。 エスケープすべきでない値がエスケープしないことの保証は、一級・二級の型付けを区別し、ラムダ抽象の本体に対して一級の型付けを要求するだけでよく、そんな簡単に出来るんだと思った。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「ちょうど ICFP 2016 での Sequent Core の話 https://t.co/yXzKPUhNWc や、その前の Haskell Day での SPJ の講演 "Into the Core Squeezing Haskell into nine constructors" の話を聞いたのを思い出して、ちょっと懐かしくなった。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「Sequent Calculus as as …: SPJがHaskellDay2016で言及して気になっていた発表。ラムダ計算の代わりにシーケント計算に基づいた中間言語。 "Continuations as Join Points" #ICFP2016 #hsd2016」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「@masahiro_sakai GHCプラグインとして実装 https://t.co/FgMyu8IXoo ; Sequent Core と Core は相互に変換可能。 case-of-case とかの最適化の際にjoin pointであることを保つように。 #ICFP2016」 / Twitter
- lukemaurer/sequent-core: Alternative Core language for GHC plugins
- Masahiro SakaiさんはTwitterを使っています 「@masahiro_sakai join point っぽい関数を見つけてjoin point化。 "Re-contification" ベンチマーク結果は大きく変わってるが、主な理由は(現在のCoreに合わせて調整されていた)inlinerの振舞の変化 #ICFP2016」 / Twitter
2020-11-18
- Masahiro SakaiさんはTwitterを使っています 「Pure destination-passing style in Linear Haskell https://t.co/B2oVGyoHJo 書き込み先のバッファを渡して書いてもらうDPS(destination-passing style)に線形型を組み合わせると、純粋なコードのまま(fusionに依存せずに)低レベルな最適化までできて良いよという話。線形型いいなぁ。」 / Twitter
- Tweag - Pure destination-passing style in Linear Haskell
- Masahiro SakaiさんはTwitterを使っています 「DPSは以前に https://t.co/ZF07j2EC22 で紹介した関数型配列処理言語 F̃ で最適化を行うための中間表現とコード生成でも使われていたが、そういうのを表層言語で型安全に実現できる。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「Efficient Differentiable Programming in a Functional Array-Processing Language https://t.co/FeSkAQjB7l ソースコード変換に基づく(スカラではなく)配列処理ベースのフォワードモード自動微分を備えた関数型DSLの提案。書き換え規則に基づく最適化で、リバースモードが得意なケースでも速い。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「Compact normal forms + linear types = efficient network communication https://t.co/3fz2eNSLPF 「コンパクトにシリアライズされた表現をデシリアライズせずにそのまま操作する」ようなコードを安全に書くための線形型の応用で、これも面白い。」 / Twitter
- Tweag - Compact normal forms + linear types = efficient network communication
- Masahiro SakaiさんはTwitterを使っています: 「Runtime Support for Multicore Haskell: a Retrospective https://t.co/T8ns3Rq7Ak ICFP’09の掲題論文のSIGPLAN ten-year most-influential paper award受賞を機とした振り返り。純粋関数型言語は並列化に向いていると思いきや色々難しい問題があり、その設計とエンジニアリングには当時感銘を受けた」 / Twitter
- Runtime Support for Multicore Haskell: a Retrospective | SIGPLAN Blog
@KuniSuzaki
- suzakiさんのツイート: "Concurrency二つ目。プログラミング言語GoではShared Memoryではなく、Communication (GoRoutine, Channel)を基本とするが、Concurrency Bugが起きやすい。この状況は調査されておらず、Goが使われているDocker, Kubernetes, gRPCを調べて171個のConcurrency Bug(Misusing Chanelなど)を見つけた。"
- suzakiさんのツイート: "GoのConcurrency Bug調査のHP https://t.co/k9epibXBTT"
- system-pclub/go-concurrency-bugs: Collected Concurrency Bugs in Our ASPLOS Paper
- suzakiさんはTwitterを使っています 「形式検証がスケーラブルになることの論文 Scaling symbolic evaluation for automated verification of systems code with Serval [SOSP19] https://t.co/Y37WWQJyiY」 / Twitter
- Scaling symbolic evaluation for automated verification of systems code with Serval - 3341301.3359641.pdf
@shima_tetsuo
- 島鉄雄さんはTwitterを使っています: 「数学でも a ← a + 1 みたいに書く事はあるけど、大抵 An+1 ← An + 1 のように右下に添え字を書く。(いわゆる漸化式) これは数学的に正しい訳で、関数型言語でもこうやって書けば再代入にはならずに合法なはず。 要するに関数型言語に漸化式を導入すれば…何かをひらめきそうな気がするw」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「数学でも a ← a + 1 みたいに書く事はあるけど、大抵 An+1 ← An + 1 のように右下に添え字を書く。(いわゆる漸化式) これは数学的に正しい訳で、関数型言語でもこうやって書けば再代入にはならずに合法なはず。 要するに関数型言語に漸化式を導入すれば…何かをひらめきそうな気がするw」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「昔プログラミングが分からないって人が a = a + 1 がおかしい言ってて、=は等しいじゃなくて a ← a + 1 って事だよと言っても理解されなかった。 これは良く考えたら再代入だから、関数型言語では有り得ない事で、マシン語レベルの理解が無いと何が起きてるかは理解出来ない。 そういう事だったのか!」 / Twitter
@esumii
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/A2GeJ7CfzQ 抽象化はプログラム等価性。抽象化により実装が異なっていても等価になるので、その等価性が完全に保存(full abstraction)されない限り(されることは極めて稀)、チューリング同値な言語同士でも意味論は異なる。#いつもの我田引水だけど本当」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「あれ、「プログラミング言語はチューリング完全でも抽象化によって異なる意味論を持つので等価とは言えない」話をしたLL Futureのスライドがサイトごとなくなった?」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「なので「プログラミング言語はチューリング同値ならみんな等価」は(よくある)誤解。」 / Twitter
@yohhoy_@yoh2_sdj
- yohさんはTwitterを使っています 「並列データ構造は本質的にテストできないと思うので 実装可能なテストだけ実施なのかなぁ 真面目にやるなら形式的検証を頑張るか あとはもう人力レビューなんじゃないかなー」 / Twitter
- yoh2さんはTwitterを使っています 「上手い委譲の仕組みがあればホントに継承要らなくなってくるんだよなぁ (Lombok の @ Delegate を四苦八苦しつつ使いながら」 / Twitter
@kdwkshh
- Shuhei KadowakiさんはTwitterを使っています 「仕事でScala書き始めてひと月くらい経つけど、やっぱりピンとこないや。 コード自体よりもビルドだの依存解決だの開発環境整備だのassemblyだので取られる時間の方が多くてモヤモヤする。あと静的型付け一般なのかもしれんけど、JSONとか扱う時型付けがアホくさくなる。」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「2年前Javaでアルゴリズムの勉強してた時は静的型(というよりそのおかげでenhanceされたIDE機能)好きだったけど、だいぶ見方変わったな。」 / Twitter
@helloyuki_
- yukiさんはTwitterを使っています 「すごい全部盛りだ😳 動画を見てみたけど、IOの有無を効果に基づいて制御して副作用のない関数のみ受け取れるよう工夫した言語になっていた。/Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ https://t.co/gtQSP39i6E」 / Twitter
- Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ
- yukiさんはTwitterを使っています 「IOの制御が重要なのは、セキュアワールドにある機密情報を守るため、あるいはノーマルワールドへの不正アクセスから守りたいから。副作用を制御できると、ここを守ることができる。これを効果系を適用して解決している。」 / Twitter
@y_taka_23
- チェシャ猫さんはTwitterを使っています 「今ふと思い付いたんだけど、configuration language のモジュール分割は最小カット問題として定式化できるんじゃないだろうか?」 / Twitter
- チェシャ猫さんはTwitterを使っています 「世の中で言われる「コンピュータサイエンス」って異様に実装寄りな気がする。」 / Twitter
@MathWIllsOffice
- MathWills運営事務局さんはTwitterを使っています 「位相空間って、学習したての頃は、こうやってお絵描きしながら学ぶもんなんだと思います。 そして、お絵描きして視覚的に理解できるというのが、現代数学を、集合論を基礎に組み立てる事の1つの大きな利点なんだと思います。 https://t.co/XRGNwGVkZE」 / Twitter
- 3元集合における29の位相 - MathWills
@Linda_pp
- ドッグさんはTwitterを使っています 「Swift の並行性周りのロードマップが出てる.2段階で,まずは async/await や内部でキューを持って状態管理する actor class の導入.次にデータに特定の actor しかアクセスできないようにする actor isolation | 'Swift Concurrency Roadmap' https://t.co/C8cCzi5F5h」 / Twitter
- Swift Concurrency Roadmap - Evolution / Discussion - Swift Forums
- ドッグさんはTwitterを使っています 「一度だけしか呼べないメソッドつくりたい時,Rust だと self をムーブで取ってしまって返さなければ良いだけだから楽だな」 / Twitter
- ドッグさんはTwitterを使っています 「テンプレートリテラル型がサポートされて,さらに型レベルのパーサが書きやすくなってるな… https://t.co/F5BMaSGowU」 / Twitter
- Announcing TypeScript 4.2 Beta | TypeScript
- ドッグさんはTwitterを使っています 「bool 以外の値が if の条件式に使えるのほんま要らんな… active というプロパティと activate というメソッドがあって,if (this.activate) ... とか書いてしまってた.まあ今回は条件文が恒真だったから lint が気付いてくれたけど」 / Twitter
- ドッグさんはTwitterを使っています 「静的に1つの値しか取らないものを定数と呼ぶ勢 vs import 時に初期化されてそれ以降変更されないものを定数と呼ぶ勢」 / Twitter
- ドッグさんはTwitterを使っています 「const PI = 3 as const; // これは定数 const ON_MAC = process.platform === 'darwin'; // これは定数?」 / Twitter
- ドッグさんはTwitterを使っています 「JavaScript で複数のエラーを1つのエラーにまとめる AggregateError 知らなかった.Promise.any() で全ての promise が reject された時にエラーをひとまとめにするために定義されてるけど,汎用的にかなり便利そうだ https://t.co/Yd1NMCcQXp」 / Twitter
- AggregateError() constructor - JavaScript | MDN
- ドッグさんはTwitterを使っています 「Chrome で試してみた感じ,message プロパティは errors プロパティの中身を反映せず,トップレベルのエラーメッセージだけを出すのか.表示は自前でやらないといけないのちょっと微妙だな」 / Twitter
- てらモス♋️さんはTwitterを使っています 「RefCell を使った事がほぼ無くて何も分からない…(´・ω・`)」 / Twitter
- ドッグさんはTwitterを使っています 「同じくほぼ RefCell 使わないといけないケースになったことない.あれ必要なのかなり特殊なケースだと思うんだけど,どうして話に出ることが多いんだろう」 / Twitter
- Booink🐽さんはTwitterを使っています 「@Linda_pp 私の場合だと、参照や借用の理解が甘くて上手く実装できない時にRefCellにたどり着いたりします。 ただ、理解が足りないので結局RefCellでも使いきれないんですが… 参照や借用のあたりでググると出てきてしまうので、とりあえず使いたくなってしまう病なのかもしれません。」 / Twitter
- ドッグさんはTwitterを使っています 「@Booink4 なるほど.immutable reference は mutable reference よりかなり条件が緩いので,後者で怒られて前者で怒られなくなるため,解決したように見えるということかもしれないですね.実際には動的に borrow check するので,問題を実行時にすり替えてるだけだと思うのですが…」 / Twitter
- Booink🐽さんはTwitterを使っています 「@Linda_pp そこまで理解して使えるのが理想ではありますが、よくわからないけど動きそうだから使ってみる、というのが私含め慣れない開発者の気持ちではあります。 もう少し使い込んで理解して「ああ、ここでは使うべきではないな」という感覚が身につくまで精進します…」 / Twitter
- ドッグさんはTwitterを使っています 「もし RefCell を「borrow checker に怒られてどう直せば良いか分からないから RefCell 使って内部だけ可変にして表向き immutable ということにして回避しとこう」みたいな使い方をしてるなら考え直したほうが良いと思う」 / Twitter
- ドッグさんはTwitterを使っています 「言語処理系でメモリ管理を実装したい場合はそもそも unsafe で GC 実装してしまう気がする.Rc でもパフォーマンス出るのかな…」 / Twitter
- ドッグさんはTwitterを使っています 「あと Rc で単純にやると循環参照で死ぬよなぁ」 / Twitter
- uint256_tさんはTwitterを使っています 「RefCellを使うような設計の時点で あまり好ましくないよね」 / Twitter
- monochromeさんはTwitterを使っています 「確かにRefCell使うのってTLS使うときぐらいかなあ…」 / Twitter
- monochromeさんはTwitterを使っています 「あちこちで参照するやつはid arenaにした方が局所参照性も上がって吉」 / Twitter
- use ubnt_intrepid::prelude::*;さんはTwitterを使っています 「言語処理系みたいな木構造を扱う場合にRefCellが多用されるみたいな話を聞きますが、そもそも参照(あるいはRc<RefCell<T>>)を直接持ちまわろうとするのが良くなくてarena使ったほうが良いらしいです」 / Twitter
- ドッグさんはTwitterを使っています 「Android では - 信頼できない入力を処理する - C, C++ で実装する - サンドボックス外で実行する のうち,2つまでしか同時に満たしてはいけないというルールがあり,現状では信頼できない入力を処理するときはメモリ安全でない言語(C, C++)で書くか,高価なサンドボックスで実行するしかない」 / Twitter
@miura1729
超高速インタープリタ案
IR
- Miura HidekiさんはTwitterを使っています 「私も中間表現を設計しないとだけど、インタープリタ前提の中間表現ってどうやったらいいのか悩む」 / Twitter
- Miura HidekiさんはTwitterを使っています 「久しぶりにこれを読むか。https://t.co/oNHcgOZ0Pa まあ、これだとエスケープ情報がないので拡張しないといけないけど、そうすると1命令64bitで収まらないわな」 / Twitter
- LuaJIT 2.0 SSA IR
- Miura HidekiさんはTwitterを使っています 「高速インタプリタのIRのフォーマット、色々考えているのだが、命令のオペコードをその出力の値を使う命令アドレス(相対指定)にするとどうだろうって考えている。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「こうするとデータフロー解析の依存グラフになっているので型解析やエスケープ解析がやりたすくなるかと。命令実行が1回メモリアクセスが増えるのでキャッシュするなど工夫が必要だけど。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「出力側からのリンクも欲しいところなので、出力した値は1命令しか使えないこととし、複数の場所で必要ならマルチプレックス命令を挟むようにすればどうかなと思う。出力が1命令でしか使えないなら命令融合とかやりやすいわけだし。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「犬の散歩をしながら続きを考えた。レジスタ割り当てや各種最適化をインタープテーション中にも可能にするようにバイトコードレベルでデータフローグラフがO(1)で得られるようなフォーマットを考えている」 / Twitter
- Miura HidekiさんはTwitterを使っています 「今考えている超高速インタープリタ案はCRubyなりmrubyのバイトコードをこのシステムのIRに変換して放りこむと、抽象実行による型推定、低レイアIRの生成を経て高速実行可能な形に変換する。実行時も適度な型や値プロファイルを行いより高速な実行が出来るように低レイアIRを変形していく って漢字」 / Twitter
- Miura HidekiさんはTwitterを使っています 「かと言って、ポインタが飛び交うバイトコードというか太ったASTでは(mmcでは使って使いやすくてよかったけど)、メモリもたくさん使うしインタープリタとしてはパフォーマンスが出にくい」 / Twitter
- Miura HidekiさんはTwitterを使っています 「各種バイトコード命令の出力(dst)は原則として1つの命令しか使えないものとする。こうすることでバイトコード命令のdstはレジスタではなくそれを使う命令のアドレス(相対)を指定する。同様にsrcもその値を生成した命令を指定する。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「では出力を複数の場所で使いたい時はどうするのか?その為にマルチプレクサ命令を用意する。1つsrcを取って複数の命令を指定する。同様に複数の命令からの入力のうちどれかを選ぶ場合もある。これはSSAのphi命令とおなじなのでphi命令と呼ぶ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「問題はデータのやり取りをする命令間は小さいことが考えられるけど、そうじゃない場合もあり得ると言うこと。最悪に合わせると命令がものすごく大きくなる。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「これを解決するためにマルチプレクサ命令を複数用意して遠い時はそれを使う。その代わり遠い所に届くマルチプレクサ命令は出力できる命令数が少なくなる。マルチプレクサ命令のカスケードも可能」 / Twitter
- Miura HidekiさんはTwitterを使っています 「src側の指定が届かないことに気づいた。まあ、src近くにマルチプレクサ命令をおけばいいか。この辺は非常用であまりそうならない程度の命令フォーマットが必要」 / Twitter
- Miura HidekiさんはTwitterを使っています 「命令間隔が8bit(-128~127)くらいあるといいかな?0が無駄だ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「実装の都合上、データはどこかに置いておかないといけないわけでその為に各命令には出力先のレジスタ番号も持っておく必要がある。これは実行に先だって適当にレジスタ割り当てをして入れておく。必要に応じて書き換えることも可能」 / Twitter
- Miura HidekiさんはTwitterを使っています 「と、このくらい考えた」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t フロントエンドで寿命解析のためにデータフロー解析しているならその情報が渡せた方が合理的かと思います。レイアとしてはこれまではバックエンドで解析すべき情報が渡ってきただけなので変わらないと思います。」 / Twitter
- uint256_tさんはTwitterを使っています 「@miura1729 なるほど。(LLVM-IRにtbaa用のmetadataを付与できたりするので、それの延長線上にありそう)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t これは知りませんでした。ありがとうございます。確かにこの延長線上で何かできそうですね。」 / Twitter
- uint256_tさんはTwitterを使っています 「@miura1729 (LLVM-IRは、metadataとかoperand bundleをいろんな用途に使い過ぎている感があるんですよねえ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t operand bundleも知りませんでした。ずいぶん複雑になってますね (私が知っているのは2.xとか大昔です)」 / Twitter
- uint256_tさんはTwitterを使っています 「@miura1729 おかげでllvm-irのパーサを書くだけでも一苦労です。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t 確かに。パースはLLVMに任せてASTで何とかするってわけにはいかないのですか?」 / Twitter
- uint256_tさんはTwitterを使っています 「@miura1729 LLVMの互換実装を趣味で作っているので... (https://t.co/QHN7alxsZv)」 / Twitter
- maekawatoshiki/vicis: Manipulate LLVM-IR in Pure Rust (also aiming at creating a better LLVM)
- Miura HidekiさんはTwitterを使っています 「@uint256_t なるほど、互換実装でLLVMを使っちゃいかんですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「今考えている超高速インタープリタ案はCRubyなりmrubyのバイトコードをこのシステムのIRに変換して放りこむと、抽象実行による型推定、低レイアIRの生成を経て高速実行可能な形に変換する。実行時も適度な型や値プロファイルを行いより高速な実行が出来るように低レイアIRを変形していく って漢字」 / Twitter
- Miura HidekiさんはTwitterを使っています 「今考えているインタープリタの記述言語、RustのRCに当たる部分をgc管理にして長寿命のオブジェクトは自由に扱えるようにした一方、寿命解析を行って短寿命はきちんとリージョンを押さえるって感じのRustとRubyのいいとこどり、って思ったのだけど それってGoって言うのでは?って気づいた」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Go結構がんばってエスケープ解析するしな」 / Twitter
コンビネータ
- Miura HidekiさんはTwitterを使っています 「SKIコンビネータでS演算はスタックの交換が無いと実装できないので(引数渡しをスタックで行う場合)、それは無いと思う。個人的にはスタックだけで完結していれば関数型言語、他の変数領域があれば手続き言語って所だと思う。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「というかYコンビネータみたいな奴は理論的に型がつけられないわね」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「おっと、Yコンビネータをそのままでは評価できないeagerな評価戦略な言語をdisるのはそこまでだ!」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda 無名関数があるから、それを無名関数にすればいいだけじゃん (マジレス」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 Yコンビネータ(λf . (λx . f (x x)) (λx . f (x x)))はそのままだとcall by valueで評価すると無限ループになるので、Zコンビネータとかにせんといかんです。lazyな評価戦略ならYコンビネータのままでいいのですが。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda eagerに評価すると困る所にlambdaをかぶせればいいのでは?って思ったけど(Schemeのdelay/forceのように)それではこの場合はうまくいかないわけですね。この手の話の勉強不足が良くわかりました。ありがとうございます。」 / Twitter
抽象解釈
- Miura HidekiさんはTwitterを使っています 「抽象解釈ベースの解析器について、抽象・具体のバランスをメタレベルでカスタマイズ出来るべきとかねがね考えていたが、それが実装されたようだ。とても興味深い「」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「(To. 界隈) 抽象解釈ベースでコード解析する時に、どれだけコードを具体化/抽象化するかを、コードに対するパターンマッチを使用して調整できるようにしてみました。これによってmacroだのframeworkの外部設定ファイルだのがどれだけあったとしても、設定次第で効率的な解析を行うことができます。」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「JET.jl is a code analyzer that combines both concrete and abstract interpretations. Now it allows us to customize its "concretization strategy" using expression pattern matching (so we can configure it w/o any modification to the analyzed code itself !): https://t.co/M5J6YSX6Mb」 / Twitter
- Configurations · JET.jl
- Shuhei KadowakiさんはTwitterを使っています 「See attached documentation for more details if interested. --- Being able to configure how your code should be concretized/abstracted means that JET can analyze your code efficiently whatever your code is reflection heavy or relies on outside configurations, which are typical」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「which are typical obstacles to a static code analyzer for a program that involves complex/advanced language features. (needless to say there are so many useful and complex features in #julialang) The idea is heavily inspired by this paper: https://t.co/14zQaLushu」 / Twitter
- Concerto: a framework for combined concrete and abstract interpretation | Proceedings of the ACM on Programming Languages
- Miura HidekiさんはTwitterを使っています 「ここでいうメタレベルとは抽象解釈されるプログラムレベルの意。適当な言葉が思い浮かばなかったので暫定的に用いた」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Rubyの抽象解釈ベースの型推定において、抽象・具体のバランスを指定する情報が有効なのか、全くわからない。試してみる価値がとてもある」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 ここで言う抽象 vs 具象というのは、クラス(もしくはそのunion)vs 値という意味ですか?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 ですです。」 / Twitter
抽象実行による型解析
- Miura HidekiさんはTwitterを使っています 「抽象実行による型解析で精度と速度の両立を行う画期的なアイデアが思い浮かんだけど140文字では狭すぎる (嘘、次にその概要を書きます。まだ確かめたわけじゃないけど...」 / Twitter
- Miura HidekiさんはTwitterを使っています 「抽象実行による型解析で悩ましいのは単なる型(Symbol)と具体的な値(:Ruby, :Pythonなど)のどちらを保持すべきかという問題がある。具体的な値を保持していれば何かと便利だが負担も大きい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「この件に関して、具体的な値を欲する状況・メソッド(例えばkernel#sendメソッドやkernel#define_methodメソッド)とそうじゃないメソッドに分けられることに気づいた。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「つまり複数回抽象実行のトラバースを行うとして、初めのトラバースで具体的な値が必要なpathかを判定することで、具体的な値を集めるか、型のみでいいのかを決定できるのではないかと気付いたわけです。」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「@miura1729 Juliaの型推論でもそれに近しいことをしていますね。まずキャッシュのために定数なしで推論して、そのあとに定数伝播させるかは簡単なヒューリスティックにしたがって決定してます。メソッドボディのIR全体を解析するとか高等なことはしてないですが。 https://t.co/5JjZv1GIoL」 / Twitter
- julia/abstractinterpretation.jl at 676ccf4eaa9b6e6c6a53f75abb4bf3e1a2457426 · JuliaLang/julia
- Miura HidekiさんはTwitterを使っています 「@kdwkshh ソース読んでみました。よくわからない所も多いのですが、いろいろチェックして問題の無い所は型ではなく具体的な値を渡して関数を呼び出すというふうに読めました。コメントとか見るとまだ実験的な処理っぽくてこの手の話はこれからホットになるのかもしれませんね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「抽象実行で型の代わりに値を用いるのを必要なメソッドで判定する問題 (長い)、通常の抽象実行とはルートが逆になるので思ったより大変と言うことが分かった。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mmcではadd_sameで作られるレジスタの型に関する依存関係のグラフをトラバースすることで何とかなりそうだが、メソッドを超えるとうまくいかない。この辺を意識した再設計が必要なのかもしれない」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mmc、define_method, sendの第1引数など、抽象実行時に値を分かっていることが必要な場合は、その値を生成する処理についてだけ、型をマージするときに違う値を抽象的な型にまとめるではなく常に別々の型として扱うようにした。 https://t.co/5WlTnowEb6」 / Twitter
- Support selective value level abstract interpretation · miura1729/mruby-meta-circular@af12a12
- Miura HidekiさんはTwitterを使っています 「これにより、 class A %w[a b].each {|str| define_method(str) { 0 } } end p https://t.co/4lLfLQhlK0.a + https://t.co/4lLfLQhlK0.b のようなプログラムがほかのプログラムの効率を落とすことなく正しく解析できる。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ここの部分が肝になる場所で、 https://t.co/hf0OhqF99i レジスタに対してset_use_valueとすると、レジスタの値の依存関係を逆に辿ってそのレジスタの値を生成するのに関係した全てのレジスタ(メソッド内外を問わない)にレジスタの型を決定するのに値は決してまとめないようになる。」 / Twitter
- mruby-meta-circular/type_mrule.rb at master · miura1729/mruby-meta-circular
- Miura HidekiさんはTwitterを使っています 「抽象実行、末端のメソッドやコンテクストからそれぞれのデータパスにおいて必要な抽象度を解析してから抽象実行するアプローチがかなり有望そうなので、その方針で新しく抽象実行器を作ってみたくなった。」 / Twitter
8進数
- いそぢさんはTwitterを使っています 「8進数ってどこで使うんやろなあ」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「古いコンピュータで3の倍数ビットがわりと使われたらしい。 0始まりが8進数なのは少なくともB言語(C言語の始祖)には見られる言語仕様であるようだ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「12bitマイコン、東芝でしたっけ?たしか、MacLispも8進数ベースだったような。Common Lispで10進数ベースになったけど。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 Unixの起源がPDP-7あたりからだったおかげで、現在にいたるまで od(1) のお世話になっているという... ごく最近 od -t x1 を覚えた :)」 / Twitter
- ElectrelicさんはTwitterを使っています 「@y_futatuki @miura1729 od -t x1 -A x も良いですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@electrelic @y_futatuki なるほど。これないとオフセットが8進数になるんですね。勉強になります。」 / Twitter
- ElectrelicさんはTwitterを使っています 「@miura1729 @y_futatuki です。片方だけ16進数にするのは間違いの元な気がします。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 IBM709が36bit wordで、(3bit tag + 15bit address) x 2 のコンスセルを1 wordに詰めたのがLISPでしたね。 ただ、LISP1.5の時点で整数リテラルは既に10進数です (8進数はQサフィックスをつける)」 / Twitter
- zickさんはTwitterを使っています 「@anohana @miura1729 ふと思ったんですが、LISP 1.5の整数リテラルが10進数なのって、LISP Iが10進数表記の浮動小数点数しかサポートしてなかったのが原因だったりするんでしょうか。8進数をデフォルトに変えてしまうと過去のプログラムを移植するのが面倒そうだし。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana なるほど。MacLispの8進数とはなんだったんだろう?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 fixnumの入出力がBASEで切り替えられますが、そのデフォルトが8だったのは、セルの中身をダンプしたりする時に見やすかったからかな? 想像ですが。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana CLtL2を紐解いたらわかりました。MacLispのリテラルの整数はデフォルトで8進数のようです。2章データ型の2.1.1整数の互換性への注に書いてあります。」 / Twitter
C
- 電子計算機の沼さんはTwitterを使っています 「ま、「XXはCと同じくらい速い」とか言われるけど我々はCコンパイラが出すコードにも全く満足してないんでね、、、、」 / Twitter
- Miura HidekiさんはTwitterを使っています 「その一言が聞きたかった >RT」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「最終的にはCがどうとかJuliaがどうとかでなく、望みのアセンブリをコンパイラに吐かせるゲームになるわけで、それが1番楽な方法を選ぶだけ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「「望みのアセンブリ」、それは時間をパラメータとする関数で適宜される物の気がする >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「「XXはCと同じくらい速い」と言う前にCでCが出せる効率のポテンシャルの50%を出せる人がどれだけいるのだろう?と言う話かもしれないけど、意味の無い話な気もする。よくわからん。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「コンパイラ開発、想定していたプログラムが一通り動いて、さて高速化するかって検討する瞬間が一番幸せ。(高速化の作業はそれなりに不幸)」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「ほんとにこれで、コンパイラにプログラムのinputをいくつか与えてやったら勝手にトライアンドエラーして、一晩くらいほっといたら速くなってるオートチューンコンパイラ誰か早く作って」 / Twitter
- uint256_tさんはTwitterを使っています 「PGOとOptunaとかで頑張れそう」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「@uint256_t やれると思いますよね どう考えても個人が抱えられる沼を越えてそうだからやらないけど」 / Twitter
- uint256_tさんはTwitterを使っています 「@Hishinuma_t そのうちやるかもしれません」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「@uint256_t やりはじめたらgithub sponsorでコーヒー代くらい出します」 / Twitter
histric
histric-1
- Miura HidekiさんはTwitterを使っています 「Juliaなら抽象解釈でデーターフローグラフが作ってあるだろうから、エスケープ解析もそんなに大変じゃないと思うんだけどな」 / Twitter
- _ko1さんはTwitterを使っています 「@miura1729 再定義タイミングの話かな?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@_ko1 いえ、変数をグローバル変数として定義されていても寿命解析してローカル変数のスコープだったらローカル変数として実装すると速いかな?って思いました」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「@miura1729 @_ko1 1.) エスケープ解析が大変(evalされたりとかとか) & 2.) どのような形であれグローバル変数が再定義されたタイミングでそれに依存するjit済みコードをコンパイルし直さないといけない という理由で(定数じゃない)グローバル変数は問答無用で最適化されないんですよね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mmc、例外処理が納得いくように出来た。抽象実行で例外オブジェクトの判定処理が潰れるので、ほぼたんなるsetjmpによるジャンプになる。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「三浦 英樹さんによるデータフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?への回答 https://t.co/lJFDgeijrt 面白い質問なので思わず答えたのですが、これはぜひ識者の人の意見を聞きたいのでツイートします。」 / Twitter
- データフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?に対する三浦 英樹さんの回答 - Quora
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「言語がオブジェクト指向していると、ユーザプログラムが言語機能に対して拡張や変更することができる。新しい言語機能を追加することができる。言語機能を実行時に変更することができる。言語機能をコンパイル時だけでなく実行時にも利用可能になる。言語機能を再帰的に分解し再構成することができる。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 いや、どちらもDynabook系ではあるけど、MVCの原発明者はSmalltalk-80の実装は「チョット違う」とのことです。 https://t.co/kUDzJ7zABV」 / Twitter
- Trygve/MVC
- Miura HidekiさんはTwitterを使っています 「そりゃーリファレンスカウントも深いかもしれないけど(特にマルチコア周り)、GCはもっと深い」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「アランケイのオブジェクト指向って、オブジェクトをオブジェクトから構成するという辺りが特にチューリング完全に依拠していると思うのだけど、チューリング完全でないオブジェクトを組み合わせた総体としてのシステムをチューリング完全にできたら、各オブジェクトの構成がとても楽にならないかなあ。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「純粋なアクターモデルってチューリング完全だったっけ?アクターの生成と他にメッセージを送るのとメッセージを受け取ったら反応することしかできないって奴」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Nimのmoveセマンティックスに基づくGCの軽減、画期的な話なのか、GCをサボるための言い訳なのか判断できないので後で読むためのリンク https://t.co/5zNAupwBpc (今酔っているし...」 / Twitter
- Nim Destructors and Move Semantics
- Miura HidekiさんはTwitterを使っています 「moveセマンティクスに基づくGCの軽減、Rubyでも出来そうだけど、プログラマがどこにアロケートされてどのタイミングで解放されるか知っているかを明示すべきかが分からない。明示するならなんらかの言語仕様の拡張か、コーディング規約が必要になる。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「これ興味深い。getoptライブラリとシェルが連携する形で実現できないだろうか?コマンドラインの型情報はgetoptの設定情報として表現できそう。スクリプトを解析して設定情報を作ることも可能かもしれない >RT」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「何がほしいかと言うと bashみたいに実行すべき外部プログラムと引数を指定して実行できる最もわかりやすい文法を備え 標準入出力を簡単に扱える文法を備え 変数、条件分岐やループなどはモダンな言語によくある見慣れた文法をサポート 数値や文字列は厳格に型チェックされる。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「型つきシェルスクリプトは創りたいですねえ(特に可搬性のために sh にコンパイルできるとよい)」 / Twitter
- でこれきさんはTwitterを使っています 「OCommand: OCaml上の型安全なシェルプログラミング のための領域特化言語 – 増原英彦研究室 https://t.co/nPenGkzMyC とか思い出した」 / Twitter
- OCommand: OCaml上の型安全なシェルプログラミング のための領域特化言語 – 増原英彦研究室
- Miura HidekiさんはTwitterを使っています 「型付シェルスクリプト、一言で型と言っても、スクリプトのレベルの型、コマンドラインで渡された文字列をパースする場合の型などいろいろなレベルの型が現れる気がする」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 shell scriptって立ち位置からするとわざわざ型付きのものをshell内に実装するより別言語、かなぁ。POSIXのshellの仕様大きくするってのはいやん。(インタラクティブではcsh使ってるけどcsh scriptは書きません)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「確かに言語によって違うと感じることが多いけど、逆に一見全く違う言語で類似点を発見することがあって、それが言語の面白さだなと感じる。たとえば、Prologは末尾再帰を駆使すると手続型言語のように見えるし、不完全リストを使うことでストリーム指向の言語っぽくも見える。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '確かに、 IF文がない IF文しかない この両方が成立するような不思議な言語と映るのかな。'.」 / Twitter
- Miura HidekiさんはTwitterを使っています 「パターンマッチベースの言語なら全部そうなりそうだけど、今の所Prolog以外だとEgisonくらいか?あとごく初期のAWK」 / Twitter
histric-2
- Miura HidekiさんはTwitterを使っています 「年寄りなのでこれからは絶対これ!という物言いがそうでもない話をいろいろ見ている。例えば、マイクロカーネル、RISC、Java、そしてRuby on Rails。だから、今の静的型付けに基づくプログラミング言語が絶対正義だという感じの風潮はとても疑問」 / Twitter
- Miura HidekiさんはTwitterを使っています 「コンピュータサイエンスについて、時代が変わっても絶対正しいことは無い(数学的に証明されているものは除いて)というのが唯一絶対正しいことな気がする」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 というか、時代が変わって正解が変わるような部分ってのはscienceではなくてtechnologyなのでは...」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki そうでもないっすよ。ニュートン力学から力学がどう変わったか考えると。いまでも1960年代で要求されるとうな問題なら構造化プログラミングが最適解と言う感じじゃないでしょうかね?」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 制約条件下の最適解を正解というのか問題かなぁ...」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 あるいは、むしろ、その時代にあってさえ「正しい」と確信できている答を出しているか、という話。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki まあ、Scienceはもともと真実を明らかにする学問であって、ある近似解についてどちらが正しいかを判断する学問じゃないですからね」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 そういう意味で、制約条件下での「正解」をもとめるものをtechnologyと分類したわけっす。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki なるほど」 / Twitter
- Miura HidekiさんはTwitterを使っています 「すげー、これこそアラン・ケイ氏やselfがやりたかったことじゃないの?」 / Twitter
- 任天堂株式会社さんはTwitterを使っています 「[任天堂HP]任天堂の開発室から生まれたプログラミングソフト『ナビつき! つくってわかる はじめてゲームプログラミング』の情報を公開しました。 #NintendoSwitch #はじめてゲームプログラミング」 / Twitter
- ナビつき! つくってわかる はじめてゲームプログラミング | Nintendo Switch | 任天堂
- Miura HidekiさんはTwitterを使っています 「どう見てもビジュアルプログラミングより、プロトタイプベースのオブジェクト指向に見える。特に障害物のくだり」 / Twitter
- みさわさんはTwitterを使っています 「何度か言っているけれど、配列から [] を取り上げて () にして、代わりに [] を型に回すべきだと思うんだよな。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「配列のindexに()を使うのは、FORTRANやBASICを思い出すから控えてほしいんだよな。[], {}をユーザのためにあえて未定義にしたCommon Lispの慧眼が光る >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「まあ、コアメンバーのGLSさんがやっていた*lispの並列構文との整合性みたいな理由なのかもしれないけど」 / Twitter
- Miura HidekiさんはTwitterを使っています 「でも、S式のパーサーって意外とめんどくさいんだよ (ungetcが必要だと思う)」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 構造エディタでしか編集できないようにしてしまえ(そうじゃない)」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「プログラミング言語界隈、いいかげんREPLの次の開発者UXに進もうよ。Workspaceっていうんだけど、一度経験するともうREPLなんていう不自由なUIに戻れなくなるよ?(Smalltalkが70年代に通過した道」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Oberonのようにテキスト中に関数を書いておくとボタンになるっていうインタフェースどっかで実装しないかな?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Lispで楽しいのはrplaca./rplacdでリストを魔改造をすることだから、それを禁止している静的型付けの関数型言語はダメ (半分冗談」 / Twitter
- zickさんはTwitterを使っています 「(rplaca (cadddr hoge) fuga) とか書いてるとちょっと楽しくなってくるので早くニートになりたい。」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 (1) コンパイラへの最適化のヒントとして型注釈を与える は、structの定義やオブジェクトの生成時には有効ですが、函数の引数の型については意味がなくなります。さらに、 (2) コードを読み易くするために型注釈をつけること はJuliaでは多くの場合に有害になり、~続く」 / Twitter
- Miura HidekiさんはTwitterを使っています 「徹底的にコードを解析するコンパイラにとって型宣言ってまさに 下手な考え休むに似たり だと思うのだけど、型宣言のある言語って将来どういうポリシーを採るのか楽しみ。もちろん、コンパイラの実装とは別に言語の採用する型システムという面は独立して存在するのだけど。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「分岐を取り扱う方法、PrologやSmalltalkのように特別扱いせずに自身の持つパラダイムの延長で実装できるような仕組みを私も考えたい」 / Twitter
- Miura HidekiさんはTwitterを使っています 「機械語のコンディションコードってのも誰が考えたか知らんけど、画期的な発明だと思う。今時のCPUでは嫌われているけど」 / Twitter
- Miura HidekiさんはTwitterを使っています 「λ計算もある意味そうだね。あれコンピュータが無い時代に考えたの凄いよね。」 / Twitter
histric-3
- 大庭 慎一郎 / Shinichiro ObaさんはTwitterを使っています 「ノードベースのプログラミングは感覚がリアクティブプログラミングに近いと思ってはいたけど、レッスン5で出てきたワイヤーワープを変数として使う手法を取り入れるとよりそう感じる。左が元のプログラムで右がリファクタリング後。100倍わかりやすくなった。 #はじめてゲームプログラミング https://t.co/rbU676OgXG」 / Twitter
- Miura HidekiさんはTwitterを使っています 「任天堂のこれの影響で一気にビジュアルプログラミングが進歩するって展開もありそうだな」 / Twitter
- ニカイドウレンジさんはTwitterを使っています 「はじめてゲームプログラミング、人が作ったプログラムを読み解くのが難しすぎて参考にできない点もダメだと思った。 ・全てが1画面に収まっておりどこで何を処理してるか分からない ・コメントの量に制限がある ・検索ができず目的のオブジェクトが見つからない ・変数や定数に名前がつかない」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mrubyのJITのチューニングをしていて、コンパイルを始める実行回数の閾値はこれまで生成したバイナリのサイズやcaller/calleeのコンパイル状況とかでいい感じに変えるといい感じになるのではないかと思った」 / Twitter
- Miura HidekiさんはTwitterを使っています 「とにかくホットスポットのコードは小さい範囲にまとまるようなコンパイルスケジュールが求められる」 / Twitter
- Miura HidekiさんはTwitterを使っています 「マイクロベンチマークとは違う世界が広がっていることをmmcとmrubyのJITを作ったおかげで知ることが出来た。そうは言ってもmmcは1万行程度のものなんだけど」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ちなみにmrubyのJIT、メソッドの先頭で引数に型ガードを入れてメソッド内部はあたかも静的に型が分かっている如くのコードを出すようにしたのだが、mmcにはものすごく多様な型を引数にするメソッドがあってその方に特化したコード生成がボトルネックになっていた」 / Twitter
- Miura HidekiさんはTwitterを使っています 「中間コード(IR)を機械語にコンパイルするようなJITコンパイラの場合、IRの命令の境界で何らかの処理を挟みこめるhookを用意するのは必須事項であるという知見をえた。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「そんなに難しくないしね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ちなみにmrubyのJITではこんな感じ void gen_call_fetch_hook(mrb_state *mrb, mrbjit_vmstatus *status, mrbjit_code_info *coi) { emit_push(mrb, coi, reg_tmp1); emit_push(mrb, coi, reg_tmp0); emit_cfunc_start(mrb, coi); //emit_arg_push(mrb, coi, 3, reg_regs);」 / Twitter
- Miura HidekiさんはTwitterを使っています 「// load_vm_var_read(reg_tmp0, VMSOffsetOf(pc)); emit_load_literal(mrb, coi, reg_tmp0, (cpu_word_t)(*(status->pc))); emit_arg_push(mrb, coi, 2, reg_tmp0); emit_load_literal(mrb, coi, reg_tmp0, (cpu_word_t)(*(status->irep))); emit_arg_push(mrb, coi, 1, reg_tmp0);」 / Twitter
- Miura HidekiさんはTwitterを使っています 「emit_arg_push(mrb, coi, 0, reg_mrb); emit_call(mrb, coi, (void *)mrb->code_fetch_hook); emit_cfunc_end(mrb, coi, sizeof(void *) * 4); emit_pop(mrb, coi, reg_tmp0); emit_pop(mrb, coi, reg_tmp1); }」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ネイティブコードを生成するようなコンパイラのデバッグではprintfデバッグは人的リソースを食いまくる贅沢品なわけですわね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「プログラムのデバッグ、HDLによるLSIの開発のように片っ端からログを取って専用のViewerで分析するスタイルになるべきだと思うけど、私が知る限りそうなっていない。私は、環境が貧乏なのでそんな富豪なことはできない」 / Twitter
- 酔漢📻@黙って食べよう、マスクをして話そうさんはTwitterを使っています 「@miura1729 RTOS分野は時間軸の解析をするためにそっちに進んでいますね。組み込みはモニターのバンド幅とログの量の戦いがどこでも厳しいようです。 私のミドルウェアは専用のビューアーとまでは行きませんが、Syslog機能をつけたのでいろいろと楽に開発できるようになりました。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「逆で、「論理型言語」という呼ばれ方が、Prologの応用を狭めてきたような気もする。何の根拠もない妄想だけど。ユニフィケーション言語とかのほうが良いような気がする。なんとなく。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Lispも人工知能言語というレッテルを外してから(Schemeとか)の方が面白くなった」 / Twitter
- Miura HidekiさんはTwitterを使っています 「私もふざけた言語を考えてみようと思った。かねがね考えているのだが、アクターモデルを採用した言語で最低限の言語仕様ってどういうものかってのは深く考えたい。もちろん、チューリング完全なのが前提で」 / Twitter
- Miura HidekiさんはTwitterを使っています 「元もとのアクターモデルってメッセージを受け取ったアクターが出来ることってアクターを作ることと、別のアクターにメッセージを送ることだけだった気がして、これでチューリング完全なら私が欲しいものが得ていると言う感じなのだが」 / Twitter
- Miura HidekiさんはTwitterを使っています 「メッセージを送れるのはアドレスを知っているアクターだけね。アクターモデルってこれが本質な気がする」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 メッセージを受け取ったアクターは自分の状態を変えることもできます。状態を変えるというのは、次に同じメッセージを受け取った時に異なる反応ができることです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@wtakuo ありがとうございます。その状態って有限でしょうか?(勉強不足ほんとうに反省しています」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 trivialでつまらないけれど、TMエミュレーションはこれの「副作用無しバージョン」をCPSにすればできそうな気がする https://t.co/G43dkp9QF7」 / Twitter
- Scheme:Brainfuck
- Miura HidekiさんはTwitterを使っています 「@anohana 確かにアクターが内部状態を持っているのでこれで出来ますよね。というか、SchemeがActorをクロージャーでモデル化するところから開発されていたのを忘れていました。」 / Twitter
histric-4
- Masaki HaraさんはTwitterを使っています 「「デジタルの日」が制定された日本ではデジタルじゃない日は「12月14.35日の予定は〜」みたいな会話が行われる」 / Twitter
- Miura HidekiさんはTwitterを使っています 「有理数なら結局デジタルで表せらるから、何らかの関数表記になるのではないだろうか? 1月√2日とか」 / Twitter
- Miura HidekiさんはTwitterを使っています 「関数も関数をゲーデル数で表現すればデジタルで表せられるな。これは難しい問題ですよ」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @iruka3 {Re(z) | ζ(z) = 0} 、とか考えたけど、結局記述できるものはその記述をデジタル化できてしまうので、シンボルで記述し得ないものしか無理なのかも。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「犬の散歩をしながら、mrubyで最適なアロケータのアイデアを考えていたらよさげなものが思いついた」 / Twitter
- Miura HidekiさんはTwitterを使っています 「忘れないようにメモ freeするごとにそのオブジェクトのクラスごとにリンクリストにつなげる。各freeされたメモリチャンクには世代を表すカウンタを設ける。リンクリストがいっぱいになったらリストの全要素をスキャンしてリンクリストのカウンタがある閾値になっていたら」 / Twitter
- Miura HidekiさんはTwitterを使っています 「本当にfreeする。mallocの際にはそのクラスのリンクリストから適当なサイズのチャンクを切りだす。時々freeするのはmalloc時の切りだす検索時間を短くするため。より使用される頻度の高いチャンクが生き残ると期待できるし、上手く行くとワーキングセットを小さくすることも出来るのではないだろうか」 / Twitter
- Miura HidekiさんはTwitterを使っています 「かねがねプログラムカウンタとメモリ空間が複数あることが言語の計算機モデルの言語が必要だと思っているのだけど、事実上CUDAくらいだろうか?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Occam、ちょっと過小評価され過ぎかもしれない」 / Twitter
- Miura HidekiさんはTwitterを使っています 「まあ、物理CPUの割り当てが手動でめんどくさいからな。仕方ないか」 / Twitter
- _ko1さんはTwitterを使っています 「時々 prog1 が欲しい」 / Twitter
- Miura HidekiさんはTwitterを使っています 「値を返すところでデバッグprintを入れたりする時だよね。私も欲しい時がある、というか値として無視しててと明示する構文」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なぜコンパイラよりもCPU内部での変換が良いのか。コンパイラは可能な実効すべてを列挙して最適化する必要があるが、実行時には特定の場合だけを最適化すれば良い。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「それ、普通に組み合わせ爆発するからね。組み合わせ爆発を上手に扱えるアルゴリズム(たとえばくりこみ理論みたいなかんじとかで)ないかなー」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/aZIcouFKzj ちょこちょこと読んでいるのだが、JITコンパイラの脱仮想化の部分が難しい。」 / Twitter
- Performance Improvements in .NET 6 | .NET Blog
- Miura HidekiさんはTwitterを使っています 「インライン化、効果があるしデメリットもあるからヒューリスティックに頑張るってのはわかりやすいし、ループになって何回も型チェックするの無駄だからループの外に型チェックを出すよってのも分かる。脱仮想化がわからん。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ただ、メソッドにbox化されていないデータ対応の物を用意するって話はサポートしていないようだ。(mmcはこれやってカオスと闘っている」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/JvHvVy93LS ソースコードを読みながら、シャンソンのナタリーが脳内再生されてつらい」 / Twitter
- Natalie Programming Language
- Miura HidekiさんはTwitterを使っています 「Natalie、ソース読んだ限りではC++に翻訳しやすいRubyのサブセットをC++に素直に翻訳しているって印象だけど、C++で書かれたランタイムがすごい https://t.co/bCq8cluGS3」 / Twitter
- natalie/include/natalie at master · seven1m/natalie
- Miura HidekiさんはTwitterを使っています 「処理系作るとクロージャーでたいたい苦労させられる。mmcでもクロージャーで単一代入の原則が崩れるので苦労した」 / Twitter
@mod_poppo
SML
- だめぽラボ@技術書典9さんはTwitterを使っています 「SMLのrefのパターンマッチでの挙動はやはりイレギュラーだと言わざるを得ない。便利なのかもしれないけど https://t.co/1o8Uamt6Bk」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「パターンマッチの際に「参照セルの読み出し」という副作用が起こるのがイレギュラー感ある。まあパターンマッチにガードを書けるように拡張すると副作用が何でもアリになるんだけど」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「言語処理系が字句・構文エラーを吐く際に従っておいた方が良い規約とかってあるのかな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「GCCもClangも <file>:<line>:<column>: のスタイルっぽいから真似しよう」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「カラム番号ってタブ文字が入ってたらどうすりゃいいの?まともな神経の奴ならタブ文字なんか使わないから考慮しなくてOK?了解!」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@mod_poppo goはインデントにタブを使うのを推奨してるのでgoがどうしてるか見ると良いかも知れません。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「@igrep なるほど。Goではタブ文字は1文字扱いのようです」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「今日の作業ではパースエラーのところでソース位置を表示できるようになったので、次はASTにソース位置を持たせてその後の段階でもエラー位置を出せるようにしたい」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「モダンな言語処理系は親切なエラーメッセージを出すのが当然なので頑張っていきたい」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/JiGuVEJcly これによるとSuccessor MLでrecとtyvarseqの順番が入れ替わるのは意図的っぽいな。構文解析の難易度はそんなに違わないと思うのだが」 / Twitter
- Simplifying val rec syntax - Successor ML
- だめぽラボ@技術書典9さんはTwitterを使っています 「SML97では val SOME f = NONE みたいな定義は一般化の対象になって let val SOME f = NONE in f (); f “foo” end みたいなコードはコンパイルが通る(実行時にはもちろんエラーになる)が、これは仕様バグだとみなされており」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Successor MLでは左辺のパターンが網羅的でない場合は一般化の対象にならず上記のコードはコンパイルエラーになる。今作ってる処理系ではこの部分についてはSuccessor MLの仕様を採用する。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「SMLのexceptionは実行(?)ごとにfreshな例外を定義するのでソース中で同一のexceptionであっても呼び出しが違えばキャッチされない。なるほど……(以下のプログラムではキャッチされない例外が発生する) https://t.co/xaEZ3n6Obm」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「SMLでval rec(脱糖後にval recになるものも含む)を使わずに再帰関数を書く例2つ。datatypeの定義で再帰ができるのでそれを使うと不動点コンビネーターに型がつくやつと、参照セルを使うやつ。 https://t.co/qBCwgjHQqJ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「コンパイラーを書くにあたってエフェクト推論とかで関数の停止性を(保守的に)判定できたら素敵だな〜〜と思うけど、停止性を扱うときはここに挙げたようなやつが正しく「発散する」と判定されなければならない」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「エフェクト推論の参考にしようとKokaの論文を読んでたらその辺に言及されてて「面倒くさそ〜〜」と思った https://t.co/gVmuioDL2m」 / Twitter
- Koka: Programming with Row Polymorphic Effect Types - Microsoft Research
- 川向薫さんはTwitterを使っています 「Inductive Rec (A : Type) := In : ((Rec A -> A) -> A) -> Rec A. これがだめな理由若干わからないな。 直観的には contravariant の位置で再帰するのがダメって感じなんだけど。 (この場合は covariant)」 / Twitter
- 川向薫さんはTwitterを使っています 「やはり停止性を保証してかつ代数的データ型を導入するには、 Strictly positive を採用する必要がある……」 / Twitter
- 川向薫さんはTwitterを使っています 「けど、要するにこうだ。 論理では contravariance や covariance は negative や positive と呼ばれる。 再帰的な定義で、自分自身が positive な位置にのみ出現する場合、その定義は positive であるという。 しかし依存型のある言語では、 positive な定義でも矛盾が (cont.)」 / Twitter
- 川向薫さんはTwitterを使っています 「導かれてしまう場合がある。例: Inductive A : Type := | introA : ((A->Prop)->Prop) -> A. そこで Coq や Agda では (positive より強い制限である) strictly positive という制限を課している。 ……ということらしい。」 / Twitter
- 川向薫さんはTwitterを使っています 「つまり依存型のある言語だと strictly positive が必要だけど、 System F レベルなら positive でいい……ってことらしいな。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ところで参照セルを使って書いたfix関数はvalOfという「例外を吐く可能性のある関数」を使っているわけだが、例外とかに頼らずに参照セルを使ったfix関数を定義することはできるのか?具体的な型のついた再帰関数だったらなんとかなるんだけど」 / Twitter
histric-1
- だめぽラボ@技術書典9さんはTwitterを使っています 「真面目に依存型をやると大変だけど、サイズ不一致を全部コンパイル時に検出するのは諦めて「型レベル自然数の等価判定は実行時に行う」みたいないい感じに手を抜ける落としどころがあったりしないかな https://t.co/DVPa7XevGo」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「最近の言語は何らかの形で静的な型を持つのが当たり前になってきているし[要出典]、これからは「動的な配列・行列のサイズを型で管理できる」みたいなのがセールスポイントになる(ほんまか)」 / Twitter
- uint256_tさんはTwitterを使っています 「N(符号付)がn bitで表現できるかってビット演算で確認できるんでしょうか」 / Twitter
- だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「@uint256_t Nがすでにmビット整数として表現できている場合は、左にm-nビットシフトしてから右に同じ数だけ算術シフトしたものが元の数と一致するか確認する、でどうですかね」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「その辺のプログラミング言語で無名関数/ラムダ抽象が「ラムダ式」と呼ばれるようになった経緯を調べようとしたときのログです https://t.co/Fflu2snbVy」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/VE8797qkKB」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「ラムダ式」問題、以前話題になった時に調べた感じでは「元ネタはScheme周辺で、Schemeの場合は無名関数の表記に "lambda" という文言を使うのでまだ正当性があった。後発の言語ではソースコード中に "lambda" が登場しないのに『ラムダ式』を名乗っているからダメ」という認識に至った」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptではFunctionExpressionに名前を与えられるので「無名関数」と呼ぶのはアレ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「キカイガクシューのエコシステムがPythonべったりなのは健全じゃないと思うけどじゃあどういう言語ならいいのと言われるとうーん(個人的にはshapeを型レベルで扱える言語を使いたいけど型システムが重い言語ってあまり流行らなさそう)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Pythonは型の問題の他に、「GILがあるので並列化しようとするとスレッド並列を飛ばしてプロセス並列にせざるを得ない」みたいな問題がある(うちの環境だとプロセスを跨いだGPUメモリの共有ができなくて詰んだ)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Coqで二項係数(帰納的に定義されているけど計算量が指数爆発しないやつ)を定義して漸化式を満たすことを証明した。適切に補題を切り出すのは大事。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellの型と項を繋ぐものとして 型クラス:型制約から項を得られる GADTs:項から型制約を得られる という関係になっていて、双対というかなんというかなんかそんな感じのものを感じる」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Haskell/Rust/C++のジェネリクス/テンプレートについて、自分の認識 https://t.co/bMUneNCu66」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellで型制約を大量に書くとどうしても関数の型が「頭でっかち」になりがちなのに対して、Rustが型制約を後置できるのは進歩っぽいな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「型レベルプログラミングの題材としては型レベル自然数が動機付け的にも難易度的にも適切なんだけど、GHCで型レベル自然数というと中身がブラックボックスなGHC.TypeNats.Natがあるのでアレ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「なんか勘違いしてたけど、データ構築子に型制約を引っ付けるのってGADTsがなくてもExistentialQuantificationで十分なのか。GADTsがあると制約として等価性を使えるようになるっていうだけで。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「TypeFamilies + GADTSyntax + ExistentialQuantification ⇒ GADTs? https://t.co/80ukeuyyYY」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「GADTsなんもわかってないことが判明してしまったので修行の旅に出ないといけない」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「GHC.Exts.Any ってどんなカインドにもなるのか。型レベル undefined じゃん」 / Twitter
- gyu-donさんはTwitterを使っています 「そんなに型で何でも解決できるんだったら、型理論を使って、NaNとかinfとかゼロ除算とかが発生しないようにしてくださいな。」 / Twitter
- トデス子'\さんはTwitterを使っています 「"そんなに型で何でも解決できるんだったら、型理論を使って、NaNとかinfとかゼロ除算とかが発生しないようにしてくださいな"、単に知識不足とも取れるが「お前ら静的チェック最強と言いつつLiquid typesすら普段使いしてねえだろ」という鋭い指摘の可能性もある」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ではここで強力な型システムを持つCoqでゼロ除算を実行してみましょう https://t.co/C6lIqTRbhF」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「形式的証明をやる上では演算はtotalに定義しておいて演算に関する命題を記述する段階で色々仮定(この場合は割る数が0ではないこと)した方が良い、みたいな話が前にTLに流れてきた気がする」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ML系の不変な束縛で右辺が別の変数名の場合 let val a = b in exp end はexp中のaをbに置き換えてaを消去することができるけど、aが元々のソースコード中に現れる変数名でbが脱糖の過程で導入された変数名の場合はむしろbの定義を遡って変数名bをaに置き換えた方が良い気がする」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「コンパイル先の形態がソースコードの場合は変数名についても単一化みたいなことを行うと良いのかもしれない」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「タプルの要素に名前をつけられるようにして順序も変えられるようにしたのがレコードだとすれば、カリー化された関数にも引数に名前をつけて適用順を変えられるようにする拡張は割と自然な発想に思える」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「SMLにせよHaskellにせよ数値リテラルの直後にアルファベットとかアンダースコアとかドットとかが並んでたら警告を出すべきだよ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「SML ‘97では単項マイナスはreal/intについてオーバーロードされていることになっているけどその後のBasisの更新(?)でwordにも単項マイナスが使えるようになったらしい。なお ~0w0 と書くと整数リテラル ~0 と識別子 w0 の並びだと見做される模様」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「某所の話題を見て「関数を返す関数も高階関数と言うんだっけ?」って思ったけど型システム入門を確認したらそういう関数も高階関数とされていた。higer-rankと混同してたのかなあ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「a → b → c みたいな関数は a×b → c と同型であって欲しくて、そうするとこれらの一方だけに当てはまる性質というのはあまり筋が良くない気がする(もちろんこれは純粋関数型言語での話で、関数が副作用を起こせると両者で違いが出てくるわけだが)」 / Twitter
- mod_poppoさんはTwitterを使っています 「MLのabstract typeって他の言語にあるような実行時型情報と相性がよくない気がするな。 structure S = struct type t = int end :> sig type t end のS.tの実行時型情報に割り当てられるべき値はintと同じか、freshな値か?」 / Twitter
- mod_poppoさんはTwitterを使っています 「Haskellはこの点、抽象データ型を単にコンストラクターの可視性で実現しているのでこの問題はないし実際にTypeableがある。」 / Twitter
- El Pin AlさんはTwitterを使っています 「@mod_poppo Rossbergがその辺やってますね〜 (Rossbergが関わっているAlice MLがdynamicさを売りにしているので) https://t.co/N3LrFCxkA1 / https://t.co/lcdkhe9YrB」 / Twitter
- Rossberg - Generativity and Dynamic Opacity for Abstract Types.pdf
- Rossberg - Dynamic Translucency with Abstraction Kinds and Higher-Order Coercions.pdf
- mod_poppoさんはTwitterを使っています 「自作SML処理系にvector式およびパターンを実装した。SML標準にはない拡張機能。 https://t.co/Q6d8MQYkbK」 / Twitter
- mod_poppoさんはTwitterを使っています 「SMLにMONO_OPTIONみたいなやつがあればnullableみたいなやつをうまく表現できるかもしれない(そこまでするか?)」 / Twitter
- mod_poppoさんはTwitterを使っています 「自作SML処理系、そろそろインライン化を実装したいが適当にやってたら再帰関数でコンパイラーが無限ループになってしまう」 / Twitter
- mod_poppoさんはTwitterを使っています 「val recで定義されるやつはインライン化の対象から外すべきなんだろうけど、それを素朴にやってしまうとfunで定義した再帰していない関数がインライン化の対象から外れてしまうので、val recをなんかそれっぽいグラフ理論的アルゴリズムで分解してやる必要がありそう」 / Twitter
- mod_poppoさんはTwitterを使っています 「自作SML処理系でSCCをやってval recを分解&非再帰の場合はvalに変換するようにした」 / Twitter
- mod_poppoさんはTwitterを使っています 「これでfunで定義した関数もインライン化の対象になるようになった。インライン化自体はまだまだ未熟だが、 fun x before () = x fun ignore _ = () fun (f o g) x = f (g x) みたいなやつが(まだ最適なコードではないものの)インライン化されるようになったので嬉しい」 / Twitter
- mod_poppoさんはTwitterを使っています 「前に言語処理系Slackで「トランスパイル基盤」みたいな話題が出てた気がするけど、基盤とまではいかなくても高級言語をターゲット言語とする場合のノウハウがどこかにあって欲しい(入力コード中の変数名をなるべく出力コード中に維持するコツとか)」 / Twitter
- mod_poppoさんはTwitterを使っています 「昨日言ってた「pretty printする際に括弧の数をなるべく少なくしたい→showsPrecみたいに優先順位を表す値を持って回れば良い」というのもそういうノウハウに該当するかな」 / Twitter
- mod_poppoさんはTwitterを使っています 「JavaScript界隈のsource mapもそういうノウハウに該当する気がする」 / Twitter
@kazuho
- Kazuho OkuさんはTwitterを使っています 「演算子中置記法より、アラビア数字が気にくわんというか、桁数と最上位桁の数が重要なのに、末尾まで読まないとどちらも確定しないのウンコだと思ってる。ローマ数字や漢数字はこの問題抱えてないのに。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「だから、逆ポーランド記法loveな人たちは数値表現も「42」ではなく「1m42」みたいな記法使ってると信じてる(指数のあとにmantissaを書くなら、小数点すら不要になるはず)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「指数のあとに仮数を書く数値表現で教育すれば、概数計算とか皆自然とできるようになるんじゃないの」 / Twitter
- Kenji RikitakeさんはTwitterを使っています 「@kazuho Cの文字列が最後まで読まないと文字数が確定しないのが嫌で、最初に長さのフィールド付けろ、っていってたDJBの論法を思い出した。 https://t.co/n0BVj5xdks」 / Twitter
- https://cr.yp.to/proto/netstrings.txt
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これ、大半のC言語使いが思うことじゃないかな。 (終端不明な形は計算コスト高いので、jsonでSIMD最適化みたいな技が出たりなど)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「実際問題として、たとえばサーバプログラミングにおいてC言語を使うことの難しさはポインタにあるというより非同期処理を念頭に置いた言語じゃないという点にあると思うし、プログラミング言語を利用するドメインを意識せずにプログラミング言語の優劣を議論することは、あまり生産的ではないわけで」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「GoはdeferあるしRustもCPS変換してくれるみたいで(実用性は知らないけど)、言語乗り換える魅力ってのはそのへんだと思う」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「思い出したけど、h2o でコルーチン使わなかった理由は、パフォーマンスが多少落ちるであろうこと以外に、一本の接続上でストリーム多重化を行っているようなケースだと、どのみちストリームごとのイベントドリブンなコードかストリーム間同期が必要になり、どれだけメリットがあるか怪しいという点」 / Twitter
@ytakanoster
- ytakanoさんはTwitterを使っています 「これ、やっぱりLiquid Haskellっぽい。予想が当たった。」 / Twitter
- ytakanoさんはTwitterを使っています 「面白そう。 STORM: Refinement Types for Secure Web Applications https://t.co/5BB7dBVHKY」 / Twitter
- STORM: Refinement Types for Secure Web Applications | USENIX
- ytakanoさんはTwitterを使っています 「Refinement typeだとLiquid Haskellとか使うのかな。pre/post conditionぐらいならType Scriptにソルバ使えば行けるか?」 / Twitter
- ytakanoさんはTwitterを使っています 「パフォーマンス評価が全く無さそう。これでいいんだなあ。」 / Twitter
- ytakanoさんはTwitterを使っています 「GoJournal: a verified, concurrent, crash-safe journaling system https://t.co/e9CpGNZ6Uf これはCoqを使っているっぽい。Coqで実装をちゃんと出来れば論文になりそうなんだがなあ。」 / Twitter
- GoJournal: a verified, concurrent, crash-safe journaling system | USENIX
- ytakanoさんはTwitterを使っています 「Iris + Coqだった。Irisもまた難しいんだよな。」 / Twitter
- ytakanoさんはTwitterを使っています 「SOSPで発表したやつを使ってOSDIで応用を発表しているというやつだった。」 / Twitter
- ytakanoさんはTwitterを使っています 「Perennialはこれか。 https://t.co/38tMeOMe0a」 / Twitter
- Verifying concurrent, crash-safe systems with Perennial | Proceedings of the 27th ACM Symposium on Operating Systems Principles
- ytakanoさんはTwitterを使っています 「基本はソルバやらで自動で解いて、解けないやつはCoq or 動的検査にフォールバックして欲しい。」 / Twitter
- ytakanoさんはTwitterを使っています 「組み合わせたツールがあんまり無さそうなんだよなあ。」 / Twitter
- ytakanoさんはTwitterを使っています 「自作言語があるので組み込めという話か。」 / Twitter
- ytakanoさんはTwitterを使っています 「LTLも使うだけなら簡単な気もする。裏側のアルゴリズムは良くわかってないけど。」 / Twitter
@keigoi
- 今井 敬吾
- Keigo ImaiさんはTwitterを使っています 「非決定性オートマトンの determinization を遅延評価を使って Haskell で実装する Credit Card Transform という話がある。元は Oleg さんのメーリングリストの投稿 https://t.co/h7uBIFgwuY」 / Twitter
- Tying the Knot - HaskellWiki
- Keigo ImaiさんはTwitterを使っています 「これと同じものをCoqのCoinductiveで書けないだろうか?」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「これ、SWI-Prolog での (co-facts の) 実装が公開されてます。この co-facts は coaxiom に相当するように見えます。coinduction を詳細にコントロールするのにcoaxiom/corule が使えます 実装: https://t.co/iysPAfMFNO 論文: https://t.co/1zel0zgxLB」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prolog より何かすごいのかもw」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「Corule で意味論をつくるのが楽しい https://t.co/1jMoEuWPHe」 / Twitter
- DROPS - Modeling Infinite Behaviour by Corules
- https://person.dibris.unige.it/ancona-davide/Software/cofacts.zip
- [1709.04901v1] Extending Coinductive Logic Programming with Co-Facts
- Keigo ImaiさんはTwitterを使っています 「グラフが扱えるのでオートマトンの決定化に使えないか。既にありそうだけど、 ε-NFA を決定化するときにε遷移を追いまくるとラベルなしで自分に戻ってくるケースがあり、そこの扱いに使う…とか?」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@keigoi coFJもあるんですね。 https://t.co/iQ6VSNTTnd ソースも https://t.co/BxQ6XwHodc」 / Twitter
- Sound regular corecursion in coFJ - 2005.14085.pdf
- h_sakuraiさんはTwitterを使っています 「@keigoi 人間にしかできないと思っていたようなことができちゃってそうw」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@h_sakurai regular な範囲ならループがあっても自動的に検出して止まってくれる…といいな…」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologの左再帰な無限ループ回避できる子ルールを決めるとか何かして数学的帰納法的なところからなんかうまくいくっぽいw なんかってなに?って感じだけどw」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「何とかMLer向けにと気負ってしまい発表資料えらい苦戦したんですけど、そもそもセッション型 (のグローバルタイプ) は型付きのプロトコルDSLとしてギリギリ成立するかしないかの部分があって、DSLとコード生成系の中間でちょうど良い方法があるんじゃないかと感じる」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「I presented at ML workshop 2021: https://t.co/fOvFwgNjZt」 / Twitter
- Verifying Multiparty Communication Protocols using ML Type Systems (ML 2021) - ICFP 2021
@elpin1al
- El Pin AlさんはTwitterを使っています 「誰得文書を書きました 『実践Phase Separation』 https://t.co/5wMnZagG9Z みんなも高階ファンクタを静的部分と動的部分に分離しよう!」 / Twitter
- practical_phase_separation.pdf
- El Pin AlさんはTwitterを使っています 「Phase separationの訳語、フェーズ分離とかでいいのでは、という気持ち」 / Twitter
- El Pin AlさんはTwitterを使っています 「phaseを「段階」としてしまうと多段階計算のstageと被るし......」 / Twitter
- El Pin AlさんはTwitterを使っています 「4ページ目は、1枚目が間違いで2枚目が正解だった https://t.co/Ep9iZVRNID」 / Twitter
- El Pin AlさんはTwitterを使っています 「Finished reading: Keiko Nakata, Akira Ito and Jacques Garrigue. Recursive object-oriented modules. FOOL, 2005. https://t.co/NvVQNtJPC1 モジュールとクラスを統合。 ファンクタは1階(多分applicative)。 topological sortでwell-founded recursionを保証」 / Twitter
- fool_2005.pdf
- El Pin AlさんはTwitterを使っています 「再帰モジュールの前方宣言にシグネチャ注釈を一切必要としないモジュールシステムだと、 1階のapplicative functorが存在するだけで型検査を決定不能にしてしまう。 このことを、そのようなモジュールシステムにTuring machineがencode可能であることから示す。」 / Twitter
- El Pin AlさんはTwitterを使っています 「Finished reading: Keiko Nakata and Jacques Garrigue. Path resolution for recursive nested modules is undecidable. 9th International Workshop on Termination, 2007. https://t.co/SKM9Y2rfmk」 / Twitter
- wst2007.pdf
- El Pin AlさんはTwitterを使っています 「可変参照をgenerative functorとして入れることにした。各型ごとに新しいref型を生成するので、値制限(や、それに類するもの)を入れることなく可変参照を導入できる (その代わりちょっとcumbersomeになる) 1枚目はRefモジュールの定義で、 2枚目はその利用例 https://t.co/pDqTqBSztZ」 / Twitter
- El Pin AlさんはTwitterを使っています 「モジュールシステムに様々な機能が入っているのはむしろ良いことだと思っています」 / Twitter
- El Pin AlさんはTwitterを使っています 「モジュラリティに関係ない機能が入っているならまだしも、それぞれの機能は全てモジュラリティのために入っているので、それらが1つのモジュールシステムとして提供されることには実用上何も問題がないのでは」 / Twitter
- El Pin AlさんはTwitterを使っています 「理論的にどう扱えばいいのかわからないと言う意味であれば、 ストラクチャ: 依存和 ファンクタ: 依存積 シグネチャのtranslucency: singleton kind sealing: computational effect (effect system / monad) という風になっています」 / Twitter
- El Pin AlさんはTwitterを使っています 「[Crary 2019]も"In other words, modules confer no fundamental expressive power absent in the core. On the other hand, the fact that the definitions are rather baroque shows that modules are nevertheless a useful feature for a language to support."と言っている」 / Twitter
- El Pin AlさんはTwitterを使っています 「もちろん適切に拡張されたコア言語の元で、ですが」 / Twitter
- El Pin AlさんはTwitterを使っています 「あとはファンクタによる分割コンパイル・code reuseも」 / Twitter
- 水無麻那さんはTwitterを使っています 「まだ触れて数ヶ月ぐらいですが ML module の雑感として, * 複数要素を複合できる * subtyping * type で depend できる * abstraction の4つぐらいの主要機能があって,それぞれ微妙に関係してるけど割と独立した機能な気がしてて,その話をブログにまとめるかと思って,モンハンに吸われてしまった」 / Twitter
- El Pin AlさんはTwitterを使っています 「型システムの健全性の証明をTwelfで書いています https://t.co/CsvfrzFnse」 / Twitter
- elpinal/twelf-proofs: Type soundness proofs in Twelf
- El Pin AlさんはTwitterを使っています 「LKTの型健全性の証明が簡単すぎてfocusing最高!となっています」 / Twitter
- El Pin AlさんはTwitterを使っています 「今日のML Workshopの一推しはSterling & Harperの"A metalanguage for multi-phase modularity"です https://t.co/ma3umhLrqb」 / Twitter
- A metalanguage for multi-phase modularity (ML 2021) - ICFP 2021
- El Pin AlさんはTwitterを使っています 「分割コンパイルとインライン化のジレンマを「データ抽象を破壊せずに」解決する方法や、デバッグ時にのみデータ抽象を貫通する方法などを示しています。まさに、Reynoldsの"levels of abstraction"が具現化されています」 / Twitter
- 画力・博士号さんはTwitterを使っています 「Sesterlの用途ではMixMLにstatic interpretationの機能を加えたようなものが欲しいけれども,既存研究あるだろうか」 / Twitter
- El Pin AlさんはTwitterを使っています 「ありません(再帰モジュールは基本的に地獄なので)」 / Twitter
- El Pin AlさんはTwitterを使っています 「というかstatic interpretationは、モジュールが非再帰という前提があるからこそ有限時間でファンクタ展開が可能」 / Twitter
@ytaki0801
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「そういえば,レキシカルスコープの #ラムダ式 だけで超循環評価器定義したことなかったなあ,ということで定義してみた.無名相互再帰がひたすら面倒だった.ある意味当たり前だけど,ダイナミックスコープのラムダ式は簡単だったなあ. #Scheme #LISP #lambda #programming https://t.co/e6myIVPgeb」 / Twitter
- ytaki0801/mcescheme: Meta-Circular Evaluator in Scheme by using lambda with lexical scope, without define special form
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「ただこれ,あまりスマートな定義じゃないのだよな.ユーティリティ関数セットを引数たらい回しがイケてない感じ.jmc.lispみたいなリファレンス実装ないかな.#CommonLisp でもいいんだけど(などとタグ付きで投下する).#LISP #programming」 / Twitter
@TakaoOzaki
- 尾崎隆大さんはTwitterを使っています 「% Prolog 非決定性に解を得るので構わなければ、 '重複のあるデータ列が与えられた時に、データ名:個数のペアを得る'(_重複のあるデータ列,_データ名,_個数) :- bagof(_,member(_データ名,_重複のあるデータ列),L), length(L,_個数). 'これだとbagofが表に出てきます。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog だとここまで。 '重複のあるデータ列が与えられた時に、データ名:個数のペアに持ち変える'(_重複のあるデータ列,_データ名_個数ならび) :- findall([_データ名,_個数],( bagof(_,member(_データ名,_重複のあるデータ列),L), length(L,_個数)),_データ名_個数ならび). https://t.co/BLPYNBBU2b」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これは少し驚き。仕様が高階関数を要求するから高階関数を書くのではないのか。 Prologの場合は、論理学の中では高階述語を書く必要が出てくるが、日常的にはそんなこと人は考えないから、使うことはない。'. https://t.co/4XvKLpEHW8」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'しかも、実行時以前にコンパイルがなされるのだとすると、q1やq2が決定性に終了しているかどうか判断することは結構むずかしい。q2やq2が「決定性の述語」であると分かっているとは限らない。「非決定性の述語」が決定性に終了している場合だってある訳です。 コンパイルの難しさですね。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'それではコンパイラが末尾再帰を繰り返しパターンの変換する場合はどんな要件は何か。 先程述べたq1とq2が共に決定性である必要がある、この点は同じの筈です。もし別解がありえたらどうなるか?この場合はやはりスタックに情報を積んでいく他ない。スタックに関する最適化はできません。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ここまでの話は、所謂インタプリタ。実行時にProlog処理系のモニターが次に実行するべきGoalをスタックから取り出して、実行する際にモニターに付加的に存在しているロジックということになります。 コンパイラが末尾再帰を繰り返し手続きに変換するという話ではありません。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'さて、 p :- <<停止節>> p :- q1,q2,p. 末尾のpが実行される時に、スタックが延びなくなる(上書きされる)ためには、条件があります。それは、q1,q2が決定性で終了していること。q1かq2にまだ別解の可能性が残っている場合はここでの意味での最適化はできません。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologに詳しくない方でもこれが末尾再帰であることは解ると思います。 p :- <<停止節>> p :- q1,q2,p. のようなパターンになっているのが末尾再帰です。第二節の本体の最後で自分自身を呼んでいる。このご利益は第一義的にはスタックオーバーフローの解消の可能性です。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog Wikipediaに 空積の規約のもと 0! = 1 と定義するとあり、やっぱり前のもダメ。 末尾再帰版階乗(0,1) :- !. 末尾再帰版階乗(N,X) :- M is N - 1,末尾再帰版階乗(M,N,X). 末尾再帰版階乗(1,X,X) :- !. 末尾再帰版階乗(N,Y,X) :- Z is Y * N,M is N - 1,末尾再帰版階乗(M,Z,X). なら大丈夫.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'あ、これはいけません。バグですね。 ?- 末尾再帰版階乗(1,X). これは解が返らなくなってしまう。'. 末尾再帰版階乗(0,X,X) :- !. 末尾再帰版階乗(N,Y,X) :- Z is Y * N,M is N - 1,末尾再帰版階乗(M,Z,X). にすれば良いのかな.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 末尾再帰版階乗(N,X) :- M is N - 1,末尾再帰版階乗(M,N,X). 末尾再帰版階乗(1,X,X) :- !. 末尾再帰版階乗(N,Y,X) :- Z is Y * N,M is N - 1,末尾再帰版階乗(M,Z,X). 'これだとスタックオーバーフローは起こりません。ただ、100000000000の階乗は時間が掛かりすぎて無理ですね。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 階乗(1,1) :- !. 階乗(N,X) :- M is N - 1,階乗(M,Y),X is Y * N. 'このコードは末尾再帰ではありません。このコードで ?- 階乗(100000000000,X). のようなことをやると、スタックオーバーフローになるに違いない。余程コンパイラの類が頑張ってくれないと。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@dec9ue % Prolog 'Prologで再帰述語を書く時は、スタックオーバーフローを起こさないための最低限度の備えとして、末尾再帰にすることを考えます。そういう問題に拘ることが好ましいことかという疑問もありますが。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'このプログラムではもうひとつの宣言的プログラムの小道具 select/3 が現れています。 これは非決定性の述語であり、その点で非手続き的な印象の強いものです。このように宣言的プログラミングの道具で固められたから、宣言的な印象の強いプログラムになるのではないか、と。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'それは forall/2 の存在です。このメタ述語が宣言的であることははっきりしています。どこにも手続きらしいところがない。 実は、私が引っ掛かっていたこととは、宣言的であるのはforall/2のお陰ではないか。forall/2を使えば、どんな言い回しをしても宣言的になってしまうのではないか。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'さてここからが本題で、私はこのスレッドを % Prolog 宣言的プログラム? とのコメントから始めました。 何故、?を付けたのでしょうか。順序だって日本語の指示通りに解決されるから手続き的だと思ったのでしょうか。 そうではなくて、実は以前から引っ掛かっていることがありました。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 述語集('スレッドとメッセージキューを使って全解を収集する'/3, 'https://t.co/P0Z9yll82q'). '何回目かのツイートで既に見たことがあり記憶に残っている人がいたら恐縮である。findall/3に相当する述語だが、threadとmessage、そしてPrologの書き方の例としては、分かりやすいと思う。'.」 / Twitter
- nojiriko.asia/prolog/prolog/zenkai_wo_shuushuusuru_utf8.html
@fadis_
- FadisさんはTwitterを使っています 「linuxカーネル、コードの1行を80文字以内に収めるコーディング規約を「強く推奨」から「推奨」に変更。1行80文字固定のターミナルを使っている開発者はもはや殆ど居らず、80文字に収めるために無理に改行する事でgrepabilityが低下する事の方が問題になっているとの判断から https://t.co/Y30xao4YoE」 / Twitter
- The Linux Kernel Deprecates The 80 Character Line Coding Style - Phoronix
@igrep
- 重城良国さんはTwitterを使っています 「たとえばimmutableな話で、配列の一部を変更するような場合、もとの配列がGCされるような状況であれば、安全に「破壊的な変更」に置き換えることができるはずだし、それができればパフォーマンスが大きく向上すると思うのだけど、GHCとかでそういう最適化はあるのかな。あるいは技術的な困難があるか。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@YoshikuniJujo 線形型はまさにそれを確実にやるための機能ですよ。 「元の配列」を必ず一度しか使わない、という制限を加えることで実現しています。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「存在量型が欲しくなった時点で、あるいはもっと遡ってそもそも型クラスにしたくなった時点でrecord of functionで大概いいんじゃないかと考えるべきだと思うんだけど、確信を持って説得できない #haskell」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「GHC、型エラーは慣れれば結構読めるけどパースエラーはエラーが発生したところからかなり離れた箇所が原因だったりするから難しいと個人的には思う。(型エラーも発生した箇所から離れた箇所が原因であることはしばしばあるけど、慣れかな...」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「今更気づいたんだけどasync/awaitやPromiseがなかった頃のNode.jsってある意味IO Monadがなかった頃のHaskellみたいだよね。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「軽量なEither型って感じか。確かにHaskellと違ってearly returnすればネストが深くなる問題は免れるし、少々冗長だけどいい落とし所なのかも知れない(でも結局flatMapみたいな関数を自前で追加しちゃいそう) / “TypeScriptの異常系表現のいい感じの落とし所 | …” https://t.co/cH9MMDjf0P」 / Twitter
- TypeScriptの異常系表現のいい感じの落とし所 | DevelopersIO
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ところで追加したこの構文がわからない。単なる型エイリアスじゃなさそうだし... class Success<T, E> { ... type = 'success' as const // これ ...」 / Twitter
- かたしんさんはTwitterを使っています 「@igrep インスタンスの type プロパティに文字列 ‘success’ を代入してて、as const をつけることで string 型じゃなくて ‘success’ 型になるようにしてますね。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@ktsn なるほど!ありがとうございます!」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@miura1729 昨今のサーバーレスの流れで、1秒でも計算時間を短くすれば課金額が減るので高速なアルゴリズムを求める、なんて話もあるらしいですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@igrep なんか、1980年代のメインフレームを時間貸ししていた時代を連想させますね。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「確かに...!時代が戻ってる感すらある >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@igrep まあ、コンピュータ分野の技術は繰り返しなものばかりですからね。CPU/OSが複雑になるか・単純になるか、ソフトウエアでやるかハードウエアでやるか、型が動的か静的か などなど。どれも20~30年くらいの周期でしょうか」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「でもおかげでLift型クラスの意味がめっちゃよくわかった。こりゃ難しいわ」 / Twitter
- Lift型クラス - Google 検索
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「JSXがどうしても好きになれないのでElmみたいにタグ名が付いた関数でReact.createElementするライブラリーがほしいんだけど、すでにないのかな。」 / Twitter
- dyoshikawaさんはTwitterを使っています 「@igrep Elmが良い気がしましたが、JSならHyperAppとかどうでしょうか?」 / Twitter
- λ🐇🐢.🐇さんはTwitterを使っています 「@igrep 概念としては hyperscript ないし hyperscript helpers という名前が付いてますね (ググりの手助けになれば)」 / Twitter
@s_isshiki1969
- monochromeさんはTwitterを使っています 「CでできてRustにできないことってあるのだろうか?」 / Twitter
- monochromeさんはTwitterを使っています 「label as valueはできないけどあれはgcc拡張なので。 gotoはできないな。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@s_isshiki1969 私の理解ではErlang VMは,SMTごとにカーネルスレッドで,それぞれのカーネルスレッドでユーザースレッドのキューを持つ,負荷分散をするため適宜カーネルスレッド間をマイグレーションする,という感じです。どこかにドキュメントが。。。」 / Twitter
- monochromeさんはTwitterを使っています 「@zacky1972 いや、僕もまるで詳しくないので嘘かもしれませんが、複数のユーザースレッドがあり、ランタイムのスケジューラが各々のスレッドを順次ネイティブスレッドに割り当てて実行していくというようなものと理解しています。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@s_isshiki1969 Erlang VM のポイントは,SMTにまたがるグローバルな同期排他制御を極力排除した点です。ドキュメントがインターネット上のどこかに転がっていたかと思うので,探して読んでみてください。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@zacky1972 @s_isshiki1969 横からごめんなさい。これのことでしょうか? https://t.co/EHo483q0mG とても面白いドキュメントだと思います。」 / Twitter
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「二重開放・開放済み領域の利用・開放漏れは防げそう。 オーバーフロー系は無理かな。 ポインタの代わりに「ポインタ+確保サイズ」をポインタ代わりに扱うCライブラリもあったっけ…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近の言語は、初期化時に開放コードを紐づけられて、早期returnしやすくなった。 (あと複数returnに「構造化違反」と言う人も居なくなった) 昔は複数リソース確保時は、goto END(ERR): みたいなのを作って開放処理を担わせる、とかよくあった。 (今もC言語とかでは良くある?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「早期リターンしやすい言語(=golangのdefer的な機能がある)で、一括リソース解放の場面なら、早期リターンの方が好ましいですね。 (C++だと scope_exit搭載まではキツいかな…解放のためだけにクラス作成はシンドイ) https://t.co/0pM9VdrHe5」 / Twitter
- Ryuji FuchikamiさんはTwitterを使っています 「M並列でNサイクル計算するとMxNの計算ができる。 ある問題を解くとき、Mが固定でNが減るようにアルゴリズム(計算量)を改善するのが普通のプログラミング。 Nが固定されていてMが減るようにアルゴリズムを改善するのがリアルタイムプログラミング。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Ryuz88 Mをハードウェアで可能な最大値にするようにして,Nを減らすようにするのが並列プログラミング さらにNを減らすにあたってボトルネックになっているMを解消するようにするのが,ハードウェアによるアクセラレーション支援」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「フォーマットでなく、ソフトウェア設計でこんな話を思い出した。 B.メイヤー先生曰く、「データ構造こそ最も不変な要素(意訳:拡張はあるが既存実装が全無駄になる変更は滅多にない)。だからオブジェクト指向は、データ構造中心のパラダイム(手続きと並置ではない)」」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「元ネタは C vs C++なコンテキストだと思うけど、並列処理に関しては50歩100歩では感(笑) (最近のSTLにstd::threadやatomicが追加されたとはいえ、、、)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C++テンプレートだと、新たな型と関数の組み合わせ時に、初めてコンパイルエラーになったりする…テンプレートの網羅的な事前テストは難しそう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「安全(スレッド安全とかセキュリティとか)に作った筈のモジュールが、数年後、別の仕様拡張で、安全のための前提条件を満たさなくなる現象、たまにある。 こういう場合、問題が発現するまで気づかないことが多いのだけど、少なくともスレッド安全については自動検査するツールとか無いのかな?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「キャメルケースは CamelCase ではなく camelCase が本来で、前者は PascalCase と呼ぶ方が正確らしい…知らんかった。 https://t.co/7dmmRBpDhR」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ところで、Upper/LowerCase はホントに写植の箱(Case)由来のはずだけど、CamelCase とかの Case って何だろう…?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近、型推論/検査のしっかりした言語で、ソース規模増加でコンパイル時間が無視できないくらい増加という話を聞いていたので、ちょっと興味 >RT」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Pythonで簡単にワーカー関数呼ぶだけのワーカースレッド作りたい時、Threadingより_threadを使う方が楽と思う。 (使い捨て用途でも、クラス作成を強制する流儀はご勘弁)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(使い捨てや簡易用途で)関数に比べて、クラス作成の面倒臭さ感って、何に由来するのかしらん?」 / Twitter
@kmizu
- Kota Mizushima (on a diet)さんはTwitterを使っています 「未だに、形式論理での証明が苦手だけど、(カリー=ハワード同型対応的に)型付きラムダ計算を使った「証明」だったら、多少はかけるのはなんでだろうと思う。日常の「論理」との混同が起きにくいので、すんなり頭に入ってくるんだろうか。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「PEGにおいて、文字じゃなくてトークンが基本単位でもいい(そういう風に置き換えられる)、というのは元論文読めば誰でも思いつく話なんだけど、研究ではこっちのアプローチはあんまり盛んではなかったように思える。ただ、Pythonの実装見ると、このアプローチもっと真面目にやってもよさげ。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ほとんどの(現代の)インタプリタは、ナイーヴなものでも、たいてい抽象構文木を解釈するものですよ。というのは、割とプログラマーに常識として広まって欲しいと本気で思っている。 たぶん、処理系の性能見積もり予測とかも、そういうナイーヴな実装を知るところから始まると思いますし。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「これを言わなきゃいかんのは、行単位で解釈し直すとか、下手したら、パーズし直すとか思ってる人とか、それを植え付けた一因とおぼしき「入門」本がほんとにたくさん、たくさん、並んでいるからなんですけど。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「この「最低限の理解」がないと、おそらく、プログラムのチューニングとか永遠にブラックボックスのままなのでは、とおもう事が多いのです。 コンパイラの場合は違うにせよ、今どきの処理系はハイブリッド(JITコンパイラ)が多いので、インタプリタ、つまり解釈系の事知っといた方がいいし。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「最近、事前条件/事後条件(+不変条件)辺りの概念については、プログラマー必修にしてもいいのでは、と思いはじめている。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「というのは、これらの概念を明確に意識可能かどうかで、プログラムについての対話がスムーズに行くかが大幅に変わってくるんではという事例をよく見るからなんだけど。 例として、プログラムの事前条件/事後条件の一部は(普通のプログラミング言語でも)型として表現可能である、みたいな。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「カリー=ハワード同型対応までやるとかは必要ないにしても、対話相手がそういう概念を持っていない場合に、議論に困る、ってことは時々あるし。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「しかし、今まで理解できない言語にぶちあたったとき、大体その言語のミニ処理系だったり、関連する機能を持ったミニ処理系作って来た気がします。HaskellのIOモナドがしっくり来なかったら、IOモナド持ったプログラミング言語作ったり。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「その時に、「あー、(World, A) -> Worldの関数としてとらえればいいのかー(Worldはたかだか1回しか使われない)」と妙にしっくり来たのを覚えています。」 / Twitter
@PG_MANA_
- PG_MANA@帰省中さんはTwitterを使っています 「goto failより、Zenのdefer/errdefer の方がわかりやすくて良い(Cにもほしい)」 / Twitter
- zen defer - Google 検索
@tanakh
- Hideyuki TanakaさんはTwitterを使っています 「Rustは良い書籍がすでにあるけど、それらはネイティブ英語話者に対して書かれてるので、それ以外の人には難しい。今では多くの国の人たちがRustを勉強しているので、これはそういう人達に向けた単純な英語での入門書 / “GitHub - Dhghomon/easy_rust: Rust explained using…” https://t.co/JOj4osnqzr」 / Twitter
- Dhghomon/easy_rust: Rust explained using easy English
- Hideyuki TanakaさんはTwitterを使っています 「まあunsafeの中ではunsafeが呼べるってだけで、unsafeじゃないものが自動的にunsafeになるわけじゃないからな・・・(´・_・`)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「ダングリングポインタも、バッファーオーバーフローも、SEGVも、ヌルポアクセスも、データレースも、絶対にないことを保障してくれて、その上C言語と同じかそれ以上に速いプログラミング言語があるんですって!これは使うしかないですよね!?(´・_・`)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「いや、nimのcaseがパターンマッチ相当なのかもしれんが、見た感じ違うし、パターンマッチの本質はデータ構造の部分的な束縛だぞ・・・。」 / Twitter
@DQNEO
- ドキュネオさんはTwitterを使っています 「Go言語のスライス、使う側としてはめちゃくちゃ便利だし、実は裏側のコンパイラ/ランタイム実装もわりと簡単なので(2-3日で作れる)、これぞイノベーションという感じがする。」 / Twitter
- go スライス - Google 検索
@hatsugai
histric-1
- hatsugai@PRINCIPIAさんはTwitterを使っています 「プロセスは同期可能なイベントを外部に提示する.条件が揃うと同期が成立する.イベントを提示してから同期が成立するまでには時間があるので,その間にもプロセスは内部的に動作する可能性があり,結果として提示しているイベントが変わることがある.イベントが同じでも遷移先が変わることもある.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「マルチコア・マルチスレッドプログラム,組み込みシステム,複数の相手と通信するプログラムなどにはこういう振る舞いが含まれている.問題はどう検証するか.特にテストで再現しにくいとき.問題に気づかないかもしれない.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「デッドロック発見器(イベント同期を基本相互作用とする並行合成器)をつくるセミナーは明日土曜日開催です.いまのところ再演の予定はないので興味がある人はできればこの機会にどうぞ.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「共有変数版デッドロック発見器では合成するコンポーネントと合成した後のシステムで遷移系の形が違うので,合成は1回しかできない.これに対してイベント同期版では同じ形なので多段階に合成することができ,大きなシステムを段階的に構築できる(閉包性).」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「さらにイベントを観測するという考えに基づいて2つの遷移系を比較することができる.まずは発生しうるイベントを時間的な順序で並べたトレースを比較するトレース比較器に進化させる.これにより安全性を検査することができるようになる.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「トレースはシステムの振る舞いの表現としてよく使われる(プロトコルとかログとか)けれども,振る舞いを識別する精度という点では少し粗い.同じトレースを生成できるシステムは必ずしも交換可能にはならない.なぜならトレースでは非決定性を表現できないから.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器をさらに進化させて,非決定性も含めて比較できる,より精度の高い比較器を作ることはできる.ただ,あまり直感的ではないので,これについては先に既存ツールを使いながら理解を組み立てたほうがいいように思う.作ることが特に難しいというわけではない.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「目的はプログラムの設計段階でささっと抽象的なモデルを書いて検査して,確信を持って実装することにある.プロトタイプよりも早く書けて,より確実に問題点を明らかにする.道具なのでうまく使いこなすにはしくみの理解と練習が必要だということ.そのために自分で作ってみようという話.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「自分の能力を増幅してくれる道具は1度手にしたらもう手放せない.いままで見えなかったものが見えるようになり,できなかったことができるようになる.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「詳細化検査器は形式手法の中でも入りやすいと思います: 1.モデルがプログラムに近い 2.仕様も状態遷移で書ける:モデル検査器は時相論理が難しい 3.検査は自動:モデル検査と同じ.証明は難しい 4.仕様と実装の差が反例として示されるのでわかりやすい:モデル検査の反例は難しい.証明はもっと難しい」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「「形式手法」という言葉を使っているうちはまだまだということでしょう…」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「「…が使われているうちは…」と書くべきだった…すみません.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「仕様はプログラムの動作を規定するもので,テストではプログラムの動作が仕様と整合しているか個別のケースごとに確認しているわけだから,仕様もコンピュータで処理できる形にして網羅的に比較するプログラムを書いてしまおうというセミナーです.正当性とは何かを改めて考える機会になるでしょう.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「詳細化検査器というのは仕様と実装の設計モデルを比較するツールです。仕様に反するところがあればレポートが出ます。それを見て設計を修正できるわけです。トレース検査器はその一種です。」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器を作って学ぶマルチスレッドプログラミング 2020年2月29日 デッドロック発見器からはじまった作るセミナーシリーズの最終回。設計モデルが仕様を満たしているかどうかをトレースで網羅的に比較検査するツールを作ります。 https://t.co/ZHttN6rbOF」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「仕様と実装を網羅的に比較して一致が確認できる、または違いを突きつけられるというのは結構強烈な体験だと思います。さらにそれが自分で作れるとなれば楽しくないわけがありません。アルゴリズムの骨子はグラフの探索です。」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器のことをトレース検査器って書いてしまった、あーあ。まいっか。」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「ものを数えたり番号をつけたりするときに,常に 0 based を使うように気をつかっていたのに,ふと油断したときに「1,2,...」といってしまい友人に( ̄ー ̄)ニヤリと笑われたことを思い出してしまった.TeX の enumerate ですら 0 にしてたのにー! ところで仕様記述言語はどうして 1 based なんだろ…」 / Twitter
- hatsugai∅PRINCIPIAさんはTwitterを使っています 「プログラム検証器を作って学ぶ Hoare 論理 5月23日(土) 自分の好きなプログラミング言語でプログラム検証器を作るハンズオンセミナーです。プログラムの正しさを証明する理論である Hoare 論理を解説します。SMT solver Z3 を使って証明を自動で行います。 https://t.co/BCzAL1dZtu」 / Twitter
- プログラム検証器を作って学ぶ Hoare 論理 - connpass
histric-2
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「自分で作らなくても既存のツールを使えばいいと言っている人を見かけた。適したツールを使うのはもちろんだ。でも理解のために作るというのもある。自分で作ってみると理解の深さが違う。わかってなければ作れない。いろいろ考えさせられて力がつく。記憶に残る。」 / Twitter
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「モデルもガンガン書いてみればいいわけで。間違いだろうが的外れだろうかかまわない。視覚的にフィードバックがかかるからあちこち変えてみたくなる。するとさらにいろいろ見えてくる。手を動かした分だけ知見が得られる。」 / Twitter
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「目的のためにフレームワークやライブラリで言語を選ぶ時代(?)。じゃあ遊びなら好きな言語でなんでも書いてみたらいいんじゃないか。ついでに言語も作って処理系も作ってしまえ。」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「考え方を習得するのはいつも難しかった.距離・時間・速さの計算,分数の計算,方程式,幾何の証明,濃度の計算,微積,物理などなど.型を身につけるって感じだった.それがわかるのはわかったあとだけど.プログラミングにも型があるだろう.端的にいえるか?.プログラミングの型を持っているか?」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「BASIC を卒業したあとはわからないことだらけだったなー。再帰、レコード、ヒープ、マクロ、クロージャ、継続、仮想関数…。8080 の機械語から入ったからポインタでは苦労しなかった。」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「何かを作ったり問題を解決したりするとき、まず考えることはゴールを明確にすることだけど、プログラミングのゴールを明確にするってなんだという話。過程もそうだし、表現も。」 / Twitter
- hatsugai∅PRINCIPIAさんはTwitterを使っています 「形式手法を始めるなら、定理証明支援ツールを使いながら述語論理を勉強するところから始めるのがおすすめ。」 / Twitter
- hatsugai∅PRINCIPIAさんはTwitterを使っています 「定理証明支援ツールのライブラリを読んでいると数学の定義そのままに記述されていて、あたりまえなのだけど「ほんとにいいの?」という気持ちになる。少しの不安と圧倒的な力に対する感動が入り混じった感じ。そう感じるのプログラミング的な考え方が思考を制限しているのではとの不安もある。」 / Twitter
- hatsugai∅PRINCIPIAさんはTwitterを使っています 「あまりにも長い時間プログラミングばかりしていたので、実現可能なことばかりを考える手続き脳になってしまっているのではないかと思う。実際、数学の問題を手続き的に考えていたことに気付かされたことが何度かあってショックを受けた。プログラミングでも対象の宣言的な性質に着目する必要があ文字数」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「時間的に変化するプログラムの状態を状態間の関係として記述するという形式仕様記述の考え方は、時間的に変化するものをどうやって静的に表現するかという問題への解の1つ。同様に時間的に変化する物体の運動を無限小時間の前後の関係として表現する運動方程式と同じ。運動が静的な関数で表せる。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「「じゃあプログラムって何?命令的なプログラムと関数的なものと Prolog みたいなものは何が違う?それらと仕様は何が違う?プログラムの"意味"って何?検証とかテストっていったい何?」と問いが進んで一周回ってくるとちょっと高いとこにいる感じ。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラムが状態の時間的変化を記述しているんだったら、どうしてその表現形式なのか?それのどこがいいのか?もっといいものはないのか?という疑問がわく。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「大まかな話、対象としている問題領域によって何を状態とするのが適切かが異なり、その状態の形によって変化の形も違う。だから状態と変化の形に合わせた記述要素と組み合わせ方法のセットを選ぶ。これだけではまだ選択の余地があって、さらに他の要求から選択を進める。その要求とは設計論的なあ文字数」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「形式手法は汎用の技術で、各応用分野での技術とはほぼ直交するから組み合わせれば開発をブーストできる。独学もできるけど話を聞いた方が効率がいい。それ以上に話をするとブーストのヒントが得られたりアイデアが発火したりする。だから興味ある人にはセミナーに来て欲しいけど今は難しい状況な文字数」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「システムの振る舞いは外部から観測可能なものに基づいて表現される。つまりシステムは"外見で判断"される。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器をトレース比較器に進化させた人で、さらに非決定性の識別ができるところまで作ってみたいという人はどれくらいいるだろうか。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様には様々な面があるけど、その中で振る舞いに関する仕様については十分に記述されることがほとんどない。記述した場合はプログラムと2度手間になっている感が強い。じゃあ不要かというとそんなことはない。仕様側の抽象度を上げることと、プログラムの被分析性を上げることがポイントだと思う。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「分散システムにおけるコンセンサスアルゴリズムの正当性証明 with Isabelle/HOL by Martin Kleppmann https://t.co/1jcO7O6FOM」 / Twitter
- Consensus_Demo.thy
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Actor に近いモデルだけど、configuration の構成要素であるメッセージプールにはメッセージ溜めっぱなし。受信の際に削除しない。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ギルドの扉を叩いた初心者冒険者は偶然 "Hoare Logic" という名の強力な魔力を宿した剣 "Isabelle" を手にしてしまう.ガイドの元,最大値・絶対値スライム討伐から訓練を始め,2分法のスキルを習得し,ラスボス2分探索に挑むって感じで,セミナーは参加型エンターテインメントなわけですよ.イタイ…」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「本を読めばわかる人はそれでいいんじゃないですかね.あ,感じ悪いな…まあとにかく,自分自身を訓練する,自分に投資するという人,導入はガイドを雇って効率よく進めた方がいいという人に参加して欲しいと思います.ハイ」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「(心が荒れててよくない…)」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器(並行合成器)を共有変数とメッセージ通信で両方作って見た人は違いがよくわかったんじゃないかな(といいな)。相互作用を決めると合成できるというのが面白い。メッセージ通信で共有変数を作れるのも面白い。物理的なメモリは実際そうだし。では逆は?」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「アクターモデルが好きな人はそれを基本相互作用として並行合成器を作ることもできる。でもメッセージプールが無限に膨れ上がるのでシミュレーションはできるけどモデル検査はできない。振る舞い全体の可視化は一般には無理。定理証明支援ツール上でモデル化すれば無限でも扱えるので性質を調べられる。」 / Twitter
histric-3
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Alloy を使うときの考え方とプログラミングのときの考え方の何がどう違うのか、なぜ違うのか、どうやって橋渡しするのか、といったところを自分なりに整理しておきたい気持ちはある。あとの方は多分に認識・解釈の問題ではあるけれど。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メモリ上でポインタでつないで作った構造をまとまりとして1つの値として考えるってことと対応づけると面白いかな。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様記述のメジャーな2つのスタイル(というと他の手法の人に怒られるけど)のうち、状態を中心に考える手法で、状態遷移を状態間の関係として記述する技術を必要としている人(自覚の有無にかかわらず)はいると思うので、紹介する機会を作りたいと思っている。問題はいつものように前提知識に文字数」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「もう1つの相互作用に着目する方は通信の時代で応用がたくさんあるのにマイナーな印象で残念。大きく2つの柱からなるので分けることもできるけどやはり一緒の方がいいと思う。そうすると並行システムっていう名前になるのでこれがスルーされる原因なのかも。改題するか。そういう問題か?目的のため文字」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「対象に合う表現形式を選ぶというごくあたりまえの話。よいものがなければ工夫するとか新しく作るとか。バランスをとるのは思ったより難しいのかも。自分はいまのとこ OCaml + 通信機構(CSP) でかなり快適だけど、うまく書けないものもある。たぶん自分が知らないだけ。O を使えばいいんだけど。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メッセージ通信編はプロセス代数を食べやすく調理したものなんですよ。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Isabelle は計算機科学の教科書、例えば型システム入門にある証明を形式化できるくらいを目標にすると、inductive_set あたりまでガイドできればいいんじゃないかと思うので、まっすぐそこを目指すことにする。独立性の高い記述要素やメソッド、定理、証明技術などはそのあと肉付けすればいっかな。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「昨日質問が出た事前条件と事後条件をつなぐ話。例えばインクリメントの場合 {x = C} x := x + 1 {x = C + 1} と表す。事前状態での変数 x の値を表すために導入する、プログラムには登場しない変数 C のことを仕様変数という。つまり仕様変数を使って事前条件と事後条件をつなぐ。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「事後条件に着目すると x = C + 1 は x' = x + 1 という書き方に対応する。事前を x 事後を x' にする代わりに、事前を C 事後を x にしたってこと。つまり修飾なしの変数が事前を表すか事後を表すかという選択。事後を修飾なしで、事前を修飾するという流儀もある(e.g. VDM)」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「いずれの流儀にせよ、事後条件は(名前に反して)事前状態・事後状態間の関係を表す。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「たとえば変数 x, y の値の交換 swap の仕様は、仕様変数 A, B を使って {x=A & y=B} swap {x=B & y=A} と書ける。例題でやったやつ。プログラム書いて証明してみると楽しい。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「共有変数編とは独立したセミナーです。共有変数編からの続きではありません。共有変数編の続編はモデル検査器へのバージョンアップです。メッセージ通信編の続編ではマルチスレッドプログラム全体の振る舞いを仕様と比較するトレース比較器にバージョンアップします。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラムの正しさを証明するってことは数学を通してプログラムの性質を見るってことで、プログラミング言語で考えるのと合わせて2つの見方を手に入れるってこと。1つと2つは大違いで2つあると比較ができる。同じように次はマルチスレッドプログラムを状態遷移グラフで見る。これもまた強力なんですよ」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「設計という行為には4つの要素が考えられる:(1)問題を定義する、(2)解を求める、(3)解を実現する、(4)解であることを確認する。人によってどれが設計に入るか異なるだろう。解の表現が実現性の点で少なくとも2種あるところがポイント。解は解の候補であることもある。以上の認識は共有されるだろうか?」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メッセージ通信版デッドロック発見器の背景にはプロセス代数があるので、作るといつのまにかプロセス代数の考え方が理解できちゃう。しかも共有変数とか非同期通信のモデル化もできるので強力。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「共有変数版でメッセージ通信する例は抽象モデルだったけど、メッセージ通信版で作る共有変数+同期機構は十分詳細なモデル。もちろん前者でもやればできるけど。共有変数+同期機構でメッセージ通信ライブラリ実装するのとほとんど同じ。加えて検査ができる。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合、本を読んで「証明完全に理解した」と思ったら、あと2回は「わかってなかった」→「こんどこそわかった」を繰り返すことになる。1度目は自分で証明を紙の上に再構成するとき、2度目は定理証明系で証明を形式化するとき。人に説明する機会があるときはさらに回数が増える。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「定理証明支援系の自動証明能力が向上してうれしい反面、理解していなくても証明できてしまうというおそろしい(?)ことも起こる。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「そういうときは証明を"刻む"。自動証明機能を使わずに、定理と推論規則だけで証明を組み立てる。別のいい方をすると定理証明系を証明検査器としてのみ使う。これはまずわかってないとできない。でもガチャガチャやってたらできちゃったということもないわけではない…。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Hoare 論理と SMT solver Z3 を使ってプログラムの正当性を自動証明するプログラム検証器を作るセミナーを準備している.作ってみたらあまりに強力過ぎて笑ってしまった.Isabelle のセミナーで使った例がすべて自動で証明できてしまう.証明できない場合は反例が表示される.それを分析して修正できる」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「土曜日はシステム開発で重要な次の点を解説する: (1) コンポーネントの振る舞いを明確に記述する記法と意味 (2) 明確に定義された基本相互作用によりコンポーネントの振る舞いを決めるとシステム全体の振る舞いが決まること (3) システムの振る舞いを期待する振る舞いと比較検証する方法(ツール)」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「やはりこうして解説を書いてみても現状とのギャップは見えてこない。おそらくあたりまえとかすでにやっていることのように思われるのではないだろうか。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「2つの振る舞いモデルをツールに入れると、全自動で振る舞い全体を網羅的に比較して、差分があればそれを教えてくれる。これを体験してもらうしかないかも。にわたま。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「「並行システム」というと「関係ない」と思われてしまうのだろう。相互作用を考えるということは少なくとも2つの実行主体があるわけで、したがって並行システムなわけだけど、それは置いても、継続的に動作するシステムの検証とは何かというもう1つ重要なポイントがある。明確に語られるのを見ない。」 / Twitter
histric-4
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラム検証器を作って学ぶ Hoare 論理 5月2日(土)14:00-18:00 Hoare 論理と SMT solver Z3 を使ってプログラム検証器を作るセミナーです.2分探索の正当性を自動証明する能力があります. #FormalVerification #FormalMethods #形式手法 https://t.co/my0H7ECxMK」 / Twitter
- プログラム検証器を作って学ぶ Hoare 論理 - connpass
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「難しそうに見えるかもしれないけど、実は作ること自体は結構かんたんです.Scheme 版は 86 行しかありません.規則にしたがって計算するだけです.あとは SMT solver がやってくれます.自分で作って、いろいろな例で試しているうちに理解が進むという感じです。楽しいですよ。拡張もできるし。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Isabelle で正当性証明する前に反例がないかチェックしてみる、っていうくらい強力。セミナーで使う例題プログラムの正当性を Isabellle でチェックする前に自作検証器でチェックしている自分を発見した。Isabelle で散々試行錯誤してから実は仕様が間違ってたみたいなことを避けられる。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メソッド(ふつう論理学の教科書だと導入と除去の2つだけど Isabelle は3つ)の使い方を理解するのが最初の壁で,それを乗り越えた後はほぼパズルです.これがかなり楽しいのだけど人によるか.問題もたくさん用意した.否定(~でない)が入っているやつはなかなか手ごわい.ふっふっふ.」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「哲学者の食事(改):デッドロックのある回避策を入れたらライブロック(発散)が起こる例 #SyncStitch #FormalMethods #形式手法 https://t.co/MULx4UGxzZ」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「共有変数版デッドロック発見器が作りかけの人は、ぜひ続きをやってモデル検査器にバージョンアップしよう! 計算木という考え方はわかりやすくて役に立つし、検査のアルゴリズムも面白いです。効率よりも面白さ&実装しやすさ優先で選んだ。2種類の不動点と関係がある。 https://t.co/AUJrJFgfgU」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「OS やプログラミング言語のいろいろな同期・通信機構をモデル化してモデルライブラリにしとくと便利だけど、誰かやってくれという気持ち。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「並行システムというととても狭い領域の話として受け取られることが多い印象だが実際は並行システムじゃないものを探す方がたいへんなくらい。その認識のギャップが課題。検証のしくみについても同様。おかしなものだと個人的には思うのだけど、歴史を見るとよくあることなのかもと思わなくもない。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「だからプログラミング言語についての話を見かけるとなんともいえない気分になる。20年前、40年前のトレンドと、その頃の人たちが何を言っていたかを知ると。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「明日というかもう今日だけど、非同期通信モデルの説明をするので気合いがいる。非同期通信モデルは不安定仕掛かり中間状態が多いのでデッドロックに至る最短パスが長くなりがちで分析がたいへん。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラマが自由に決められるのは各スレッドの振る舞いだけ。各スレッドの振る舞いを決めた時、合成(結合)した結果が想定どおりになっているかどうかは自明じゃない(巨大な状態遷移グラフ)。だから (1) 合成を計算する (2) 想定どおりかどうか検査する; という2ステップからなってる。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「手続きを P0, P1, ... としてそれぞれ状態空間での遷移関係として仕様が与えられているとする。共有変数の参照・更新も手続きとみなす。ラフに考えると、相対的に (1) 非決定性が大きい (2) 依存関係(事前条件、遷移構造)が複雑 (3) 手続きのパラメータによって大きく関係がかわる;あたりから。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「具体的な例を調べて精密化すればもう少し何かわかりそう」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラム検証器を作って学ぶ Hoare 論理 5月4日(月)14:00-18:00 Hoare 論理と SMT solver Z3 を使ってプログラム検証器を作るセミナーです。2分探索アルゴリズムの正当性を自動証明する能力があります。 https://t.co/G7m1euWOPS」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「SyncStitch 2 の資料を見返していたら、状態遷移図は描けるし、シーケンスチャートは出るし、見た目かっこいいし、並列検査で性能もいいし、S式だし、Scheme で実装だし、なんでこれやめちゃったんだっけという感想。 https://t.co/fd7e7N7dOM」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Version 3 で実装した fluent, CTL, LTL はそのうち version 4 にも移したいけど、広い意味での体力が… Version 1 のときは抽象状態とか表示マクロとかサブプロセスを指定して探査開始とか、もっと凝った機能もあった。はじめに複雑なものを作ってしまうの法則。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「例として数列の和を求めるプログラムを考える。ループのステップは s := s + c[i]; i := i + 1 これに対するループ不変条件は s = Σ_{0≤k<i} c[k] と s + Σ_{i≤k<n} c[k] = E という形が考えられる。後者はエネルギー保存型ループ不変条件。ループの進行にしたがって値が移っていくが和は一定。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「エネルギー保存型ループ不変条件の和の演算部分(T ⊕ V = E の演算 ⊕)は、集合だと和集合 ∪ になったりリストだと連結になったりする。そういう保存量を探すという考え方で事後条件を見ると、隠れている項が見えてくることがある。第一積分のように機械的に計算というわけにはいかないが…」 / Twitter
histric-5
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Z3 で sum を表現する例 https://t.co/sTSd3iS1Bo」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「model https://t.co/t7plFVemDi」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「これは読めないので Gauche で評価してみるとたしかに累積和になっている: https://t.co/Krs4QSbjAC」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自動証明ができるので、候補になりそうな式を生成して片っ端から solver に投げるという荒っぽい戦略もとれる。ますます考えなくなる人間。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「たとえば事後条件が P & Q & R の形だったら 1. !P と Q&R 2. !Q と P&R 3. !R と P&Q 4. !(P&Q) と R 5. !(Q&R) と P 6. !(P&R) と Q を調べることができる(それぞれループ条件とループ不変条件)。 線型探索や平方根の問題はこれで解けてしまう。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「2つに場合分けする場合は p ∨ ¬p = true で網羅、p ∧ ¬p = false で排他。p ⇒ q = ¬p ∨ q で展開すると項が余る…さて?とここで一工夫必要。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A: (p ∧ q) ∨ (¬p ∧ r) と B: (p ⇒ q) ∧ (¬p ⇒ r) は同値」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「まず仕様を明確にする。日常的な意味じゃなくて数式で表す。ゴールは命令型のプログラムを書いて正当性を証明すること。段階的に進める。まず再帰を使って関数型プログラムを書き、仕様との一致を証明する。次に命令型のプログラムを書いて、関数型プログラムを利用して正当性を証明する。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様・プログラムの表現形式はA:論理式、B:関数、C:命令型プログラムと3つあって、Aはwhatに集中できるけど実行は(ふつう)できない。Cはhowで何をしているかは明らかではないけど実行可能。Bも実行可能でwhat/howは中間くらい。これらをうまく選んで使って正しさに確信が持てる結果を得る。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ゴールデンウィーク最後のセミナーは SyncStitch によるリアクティブシステムのモデル化と検証。通信システム、組込み、マルチスレッドなどに共通する性質を理解し開発上の課題を解決できるようになる。定理証明でもモデル検査でもない、知られざる技術を紹介する。6時間後には次元違いの超レベルUP!」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「タイトルはわかりやすいようにマルチスレッドにしたけど実際にカバーする範囲はもっと広い。2つの独立した柱からなる。1つは相互作用を決定すると合成系の振る舞いが決まること。もう1つは相互作用を通じて観測できる振る舞いに基づいてシステムを検証する基準と方法:「振る舞いとは何か」」 / Twitter
- PRINCIPIA Limited
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「紙の上で証明のアウトラインを組み立ててから定理証明支援系にのせる方が短くてきれいな証明になることが多いけど、それっぽくない証明にもなる。逆にまず定理証明支援系に入れてしまって、自動証明でできるだけ進めて、残ったゴールを見て考えるのも楽しい。補題を作って自動化を進めると気持ちいい。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「第1回で論理学の教科書に出てくるような問題が証明できるようになります。これは計算機科学の基礎だし、仕様記述やプログラミングでも役に立ちます。 第2回までやると関数型プログラムの性質が証明できるようになります。再帰的に定義された関数の性質を数学的帰納法を使って証明します。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「オートマトンの知識を正規表現や字句解析にしか使わないのはもったいない。デッドロック発見器がおすすめ。またやるか。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プロセス間相互作用について考える機会になる。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器にプロセス優先度を導入してみた。左図:まず低 R が起きてロックを獲得、次に高 P が起きてロックしようとするができずwait。ここで中間 Q が起きて動きっぱなし。いわゆる優先順位逆転問題。これを優先度継承で解決したのが右図。P が waitした時点で優先度を R に継承して動作OK https://t.co/Eaj94JdXZW」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「デッドロック発見器で優先度および優先度継承をできるだけ楽して実現するには優先度も共有変数レコードに入れてしまえばいい。そうすればプロセスが自由に優先度を変えられる。あとは遷移を計算する関数が優先度を参照して低い方を計算しない(あるいは捨てる)だけ。作った人は改造にチャレンジ!」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラマはプログラミング言語の他にもう1つプログラムの性質を表す言語を持った方がいい。2つの異なる表現を作って比較すれば正しさを高められる。検算と同じ。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「あと検算の技術と道具。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「メタスキルはとても価値があるんだけど習得は難しい。経験から学ぶのは難しい。本には書いてあるけど読むだけで理解したり実践したりするのは難しい。近くに実践してる人がいて、その人に指導してもらえるといちばんいい。ってむかし小熊くんがいってた。いってなかったかな…」 / Twitter
2020-12-09
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラムの性質を表現する技術を高める必要があるとますます思う。コードを書いているときに頭の中で考えていることを内省すると、欲しいものを思い浮かべつつ、よく知っている部品(言語要素やライブラリ要素)をどう組み合わせればいいかを考えている。これを整理・分析すれば改善ポイントがわかる」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A. 欲しいものを明確にできる B. どのような部品があってどんな性質を持っているかを知っている C. 組み合わせ方を知っている D. 組み合わせの可能性を列挙できる E. 組み合わせた結果がどうなるかを知ることができる F. 組み合わせた結果が欲しいものになっていることを確認することができる」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「B どんな部品があるかを知ることは難しくないように思うけど、それがどんな性質を持っているかを十分に理解することを含めていうと結構難しいし、思ったほどはできていない。どこまで知っていればいいかというバランスもそれほど明らかじゃない。[意味論]」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「C は部品の種類と関係してる[型]。D は改めていわれることがあまりない印象だけど、思いつくことは努力できないので支援が必要[パターン]。E は認識が薄いし結果を知ることも難しい[合成]。でも実行すればかなりわかる。実行でわかることしか見ていないという話もある。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「F 流れ上「組み合わせた結果」と書いたけれど、組み合わせることとは独立していて、コードと欲しいものを比較するという話[検証]。この比較の基準と実際に比較する技術も弱い[テスト・形式検証]。F は A と E に依存している。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A どんな性質をどう表現するか。様々なプログラムについてどんな性質が問題になるか。逆に表現の型からプログラムを整理・分類すると何が見えるか。大きなプログラムは多面的に整理する必要があるのでどう構成すればいいか。などなど十分わかっているとはいえないことがたくさんある。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A-F の関係でいうと、欲しい性質の表現の種類に応じてどんな検証技術が使えるか、とか、どういう表現だと検証が難しいとか簡単とかいろいろ知りたいことがある。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ことの本質だけを抽出したモデルを作って性質を証明するのはかっこいい。ある例を見てて、ここまで削れるのかと驚いた。モデルを作って性質が示せたら、次はどこまで抽象化(要素や条件を削る)できるかといつでも考えるといいかも。性質がかわったり消えたりするあたりに本質があるのだろうから。」 / Twitter
2020-12-17
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「「ある変換を通じて問題を別の世界に移すとそちらの世界では比較的容易に解が得られて、それを逆変換して元の世界での解を得る」というしくみはよくありますね。」 / Twitter
- fujim2さんはTwitterを使っています 「@hatsugai それ聞いてなぜかフーリエ変換を思い出しました」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「プログラミングの過程で必要な能力を自分なりに分解・整理してみたリスト。それぞれの項目で具体的にどんな知識やスキルを使っているか。他にはどんな選択肢があって pros/cons はどうか。1つずつチェックすると強化ポイントが見えてくる。 明後日のセミナーでは A, B, C, E, F について扱う。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「A. 欲しいものを明確にできる B. どのような部品があってどんな性質を持っているかを知っている C. 組み合わせ方を知っている D. 組み合わせの可能性を列挙できる E. 組み合わせた結果がどうなるかを知ることができる F. 組み合わせた結果が欲しいものになっていることを確認することができる」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「振り返ってみると、かつてはこういったものの価値を理解できなかった。極大に停滞してしまう人もよくみる。慣れた居心地の良い空間から外に出るのは不快だし。問題を解決することそのものではなく周辺のものに囚われてしまう人も多い。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「コードを書こうとしたときに初めて何を書こうとしていたのかを理解したり考えが足りていないことに気づいたりすることはよくある。あるいはコードを書き終えたあとでテストをしたら期待した結果にならず、その原因を探る過程で考えの誤りや考えていなかった点に気づくこともまたよくある。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「コードを書く前に頭の中で考えていたときには十分見通しが立ってこれでいけると思っていた。でもそうじゃなかった。書いてわかる。表現にはそういう作用がある。でもコードは実行することを目的としているので、何が欲しいのかということを端的に表現する形式としていつでもベストというわけじゃない。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「欲しいものが何であるかに集中して表現できる形式を持つと、コードよりも短い時間で表現を作ることができる。どのように結果を得るかという実行を考える部分を省略できるからだ。書いてわかるという作用は持っているので、誤りや考え不足の点を早い段階で気づけることになる。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「さらに加えて、欲しいものについて2つの表現を作ることができると、それらを比較することで考えの正しさを確かめることができる。書いたコードを見直すのもよいけど、別々の考え方で書いたものが一致することを確認する方が確からしさの度合いが高い。いわゆる検算と同じだ。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「2つの表現が表す内容が一致することを確認する方法は2つある。1つはテストだ。コードの他にもう1つ表現を作るのはコストが高いと思うかもしれないが、テストとして再利用できるので無駄にはならない。もう1つが形式検証で数学を使って2つの表現を比較検証することができる。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「この2つ目の表現はいわゆる仕様のことだ。表現形式として優れているものの1つは論理式だ。使えるようになるには練習が必要だけど、その分恩恵がある。熟練してくれば使いどころもわかってくるので、適切なバランスを選択できるようになる。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「表現しようとして気づく、テストして気づくに加えて、形式検証(証明)をしていて気づくという第3の機会も手に入る。表現形式の違いが考え方の違いになるように、プログラムの動作を実行を追って考えるという考え方の他に、検証の理論を使って動作を考えるという新しい視野を手に入れられる。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「仕様というとコードの前に書くものだろうけど、検証という点に限ればもっと自由でよいという考え方もできる。時にコードは十分明解に欲しいものを表すことができる。一方で論理式が複雑になることもある。それでもかまわない。2つの異なる考え方で1つのものを表して比較できればいいのだから。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「思考は表現されてはじめて明確になるので表現形式は大事だ。時には表現形式の範囲でしか思考できないことがある。だから表現形式を複数持てば思考を広げられる可能性がある。自分はプログラマなのでプログラミング言語"で"考えがちだけど、論理式も援用するとよりよく対象を理解できることが多い。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「このセミナーでは仕様を論理式で表現する方法と、それをコードと数学的に比較して検証する方法を紹介する。ほんの入り口だけだけど、実際の例を示し、その先に広がるものがイメージできるように構成を工夫したつもり。よかったら参加してください。」 / Twitter
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「コンパイラのようなプログラムは入力(ソース)と出力(オブジェクト)の関係で正しさを規定・判断することができる.では対話的なアプリケーションやサービスのように継続的に動作するプログラムの正しさはどう考えればいいか.アプローチの1つとしてトレースと模倣というものを紹介します.」 / Twitter
- トレース比較器を作って学ぶマルチスレッドプログラミング - connpass
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「トレース比較器を作って学ぶマルチスレッドプログラミング 2020年2月29日 シナリオや仕様と設計・実装モデルの振る舞いを網羅的に比較するツールを作るハンズオンセミナーです. https://t.co/ZHttN6rbOF」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「時間とともに変化する動きを表すプログラムの性質を、時間のない世界に移して議論できるのはほんと不思議で面白いと改めて思う。しかも強力な武器になるわけで。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「理解できないことに出会った時、何なのかわからないけど、きっととても面白いものだという確信があり、それを知りたい・理解したいと思うこの感覚・衝動がたまらない。2つの武器を使って考え道筋を探る。調べて知識を得るのではなく、考えて仕組みを明らかにできるということも不思議で楽しい。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「道具箱の中に「証明」も入ってて、必要な時には使えるというのでいい。要はバランスだと思うけど、まさにそのバランスを見たときに証明よりも証明の"管理"やコード化の部分で誤りが起こる度合いが高い場合も考えられるので、要求が高い場合は全体を通じて面倒を見てくれる統合的な環境がいい。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「setq を実装したので不動点コンビネータを使わなくても再帰が書けるようになった。 https://t.co/etuQiP3pD2」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「定理証明支援ツール Isabelle で多重集合(multiset, bag)を表現するときは、要素から自然数(入っている個数)への関数を使ってる。関数の update f(a:=e) で追加・削除等の操作が表現できる。 f(a:=e)(a) = e f(a:=e)(x) = f(x) ... x≠a 空の多重集合は λx. 0」 / Twitter
@nullpo_head
- ぬるぽへさんはTwitterを使っています 「障害って単体のソフトウェアのバグだけじゃなくて、むしろ全体のシステムのアーキテクチャの分散設計とかの負荷許容範囲越えで起きることも多いわけだけど、そこの部分をがんばって形式手法なり証明なりで保証する手法ってコストを度外視したとしても何かあるんだろうか」 / Twitter
- ぬるぽへさんはTwitterを使っています 「単体ソフトウェアのバグは、お金が無限にあれば仕様を決めて全部coqで書けばまぁ理論上撲滅できそうだが、全体のシステムのアーキテクチャってなんかお金が無限にあっても無理そう」 / Twitter
- ぬるぽへさんはTwitterを使っています 「量的な問題に関する手法何も知らねえ、素朴に空間計算量で抑えて保証する以外はどんな手法があるんだ」 / Twitter
- ぬるぽへさんはTwitterを使っています 「そもそも定数も良くわからいしいい感じにリソースを見積もれる形式手法あるのかな」 / Twitter
@shibu_jp
- 渋川よしきさんはTwitterを使っています 「クロージャの変数束縛を明示的に書くC++と、他の言語では0番目の引数として内部処理されるレシーバーを明示的に書くPythonを書くと、オブジェクト指向も関数型も表記の違いだけでCPUの気持ちになるとどっちも大差ないのでは、という気がしてる」 / Twitter
- 渋川よしきさんはTwitterを使っています 「大体のフレームワーク、リクエストとレスポンスはオブジェクトだよね。 : 2000年代オブジェクト指向は絶対の正義だった。つまり僕は洗脳を経験している - レベルエンター山本大のブログ https://t.co/n1oZfhqzY1」 / Twitter
- 2000年代オブジェクト指向は絶対の正義だった。つまり僕は洗脳を経験している - レベルエンター山本大のブログ
- 渋川よしきさんはTwitterを使っています 「ユーザーのコードを書く部分がテンプレートメソッドから、状態を持たない関数だったりトランザクションスクリプトになっただけで、オブジェクトは今でもそこにいるよ。」 / Twitter
histric
histric-0
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「今日のハイライト 「Rustなどで低レイヤ触って定理証明や型システムもやっている人と一緒にやりたいんですけど、なかなかいなくて」 「その二つを同時にやっている人は居ないでしょうね、OSですら居ないのに(笑)」」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「無敵のエーアイってやつでお気持ちから形式的証明を錬成してくれ」 / Twitter
- 市川 真一さんはTwitterを使っています 「@s_isshiki1969 無限に並列・並行化するとかの、リソースを浪費するような一般化をしないようにすれば、手続き型じゃなくても OK なんじゃないかと思うんですよ。80 年代よりはマシンの性能も向上してますし、個人の PC で走らせる(ゲーム以外の)アプリに的を絞れば、あまり性能を求められない場合もあるでしょうから」 / Twitter
- 市川 真一さんはTwitterを使っています 「@s_isshiki1969 @zacky1972 そうですね。でも、私のやりたいパラダイムは最適化方面じゃなくて、停止性の検査とか簡易な形式検証なんです。C に変換するのは実用性を目的としている都合で。日本語で総合的な解説も見かけないので、個人的にまとめたいと思っています。誰かが先にやってるとしても」 / Twitter
- 水之人さんはTwitterを使っています 「@ponkotuy Haskellに詳しくないのであまり込み入って言及出来ないですが其の辺りは「immutablity の保証方針次第」な気もしないでもないような... 例えば「対象をコピーする事で必ずimmutable」とか「対象を常にreadonlyとする事でimmutable」とか 前者ならコピーが大量に生じますが後者ならそうでないので」 / Twitter
- 市川 真一さんはTwitterを使っています 「@ponkotuy 高頻度で更新する必要がある共有データがあるなら厳しそうな気がします。immutable にすると lock する必要がなくなって並列度を上げて高速化できるということなら、理解できなくもないです」 / Twitter
- ТагсановさんはTwitterを使っています 「位相空間論の中で閉じた問題を解くのは苦手で未だに全然できないけど、そこで得られた開集合閉集合コンパクト連続性etcの直観は他の分野の数学を学ぶときに無くてはならないイメージ 頑張って結局まだ苦手意識強いけど、基礎として活きてるなというのはすごい実感する」 / Twitter
- HenninggさんはTwitterを使っています 「オブジェクト指向でfirst classな関数をメソッドを一つもつクラスとして表現するの、最初に見たとき理にかなってるなあって思った覚えある」 / Twitter
- 👻 道化師 🃏さんはTwitterを使っています 「最近のプログラミング言語に求める事 1. 十分に強力な静的 null 検査 + null合体演算子 + null条件演算子 2. async / await 3. JSON 親和性 みたいな感じ。これらを備えてるかどうかでかなり使い勝手に差が出る。で、最初の2つはともかくJSON親和性によってもう TypeScript 一択みたいな事になる。」 / Twitter
- Tanaka AkiraさんはTwitterを使っています 「@zacky1972 @n_soda @_ko1 Coq (の中の Gallina) は ML っぽい言語ですが停止性がありますね。普通のプログラムっぽい関数と証明項の両方に使われて、停止性がないとなんでも証明できる意味のないシステムになるからですが。」 / Twitter
- 停止性がない 何でも証明可能 - Google 検索
- AzさんはTwitterを使っています 「call/cc が直観主義論理と古典論理の橋渡しになる理由を考えたが、停止しない計算を許す事で「計算できない」ものの証人を偽装できるからという理解になった」 / Twitter
- てらモス♋️さんはTwitterを使っています 「テストはその性質上、網羅性を確保するのは不可能であって求めるべきでなく、少数のテストケースで致命的な破綻を検出できる事に専念するべきだが、それはドメイン知識と一体なので難しくなりがち…(´・ω・`)」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「Swift に限らず菱形継承とかの面倒臭さは周知されてるけれど、そこで構造体ってだけじゃなくてレシーバーみたいな仕組みだったり mix-in みたいな仕組みだったり、別の表現で多態が表現できるのでどちらにせよなんらかのモデリングはされるはずだけど、そのうれしさが素朴な比喩使われると伝わらず」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「いやまあ別に C で構造体でも継承ベースの多態は実現できるけれどもね……」 / Twitter
- てらモス♋️さんはTwitterを使っています 「プロセス間で通信をするのにMPIは必要ないし、複数のスレッドを起動するのにOpenMPは必要ない、という当たり前のことをまとめないといけない…(´・ω・`)」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「OOPを型システムから見て何のメリットもないというのは当たり前の話で、だってOOPという概念を生み出した張本人が「型?まあ苦痛以外の何かを生むようになったら使ってもいいけど?」みたいなこと言ってるぐらい、OOPと型システムは全然関係ない話なので、そりゃ型システムを基準にすればOOPは空だろ。」 / Twitter
- satさんはTwitterを使っています 「goroutineめちゃくちゃ扱いやすいんだけど仕組みの説明はカーネルスレッドとユーザ空間スレッドの基礎知識、その応用について理解が必須なのでしんどい。あとスタックがどう積まれるとかについては伝統的な文字通りの積み上げ式ではないのでこれまたキツい すばらしい抽象化ともいえる」 / Twitter
- goroutineめちゃくちゃ扱いやすいんだけど仕組みの説明はカーネルスレッドとユーザ空間スレッドの基礎知識、その応用について理解が必須なのでしんどい。あとスタックがどう積まれるとかについては伝統的な文字通りの積み上げ式 - Google 検索
- 蒲地 輝尚さんはTwitterを使っています 「Windowsプログラミングしてた時代に散々目にした単語だけど、そんな由来だったとは。「夜中まで議論してて頭が働いてなかったのでthinkの過去形としてthunkという単語を作って名づけてしまった」」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「やりたいのは、USBドライバのコードの読みやすさ改善。USBデバイスの初期化って、USBデバイスに対するデータ送信、その応答が来たら解析し、またデータ送信、みたいに細切れになっていて、関数が呼ばれる順序が非常に分かりにくいので、コルーチンで直列に書けないかな、という。」 / Twitter
- かずみん☆めい。さんはTwitterを使っています 「@rui314 コンピュータサイエンスの基本は数学. 整数論, 素数論, 離散数学, 有限体(ガロア体), 離散対数, 楕円関数, 計算量, シャノン定理, 乱数論, 待行列, 統計, 通信路モデル, 確率的アルゴリズム, アルゴリズム停止性.→基礎がないと誤り訂正符号/DCT圧縮/共通鍵暗号系/公開鍵暗号系/CDMA/の本質は理解不能」 / Twitter
- lotzさんはTwitterを使っています 「すごい!HaskellのブロックUIプログラミングを試せるWebサイトがある❗️ Haskellは宣言的だからこういうのと相性良さそう👀 画像は不動点再帰を使った階乗計算w 今は動いてないみたいだけど変換されたテキストを見たら想定通りのコードになってたから多分動く😂 https://t.co/QfVZYMSdIh https://t.co/B0BfpUcxLc」 / Twitter
- Blockly for Haskell
- 黒木玄 Gen KurokiさんはTwitterを使っています 「「なんでもかんでもクラスを作ろうとする」病はおそらく21世紀現代においてもクラスベースのOOPに留まっていることが原因で生じている。 #Julia言語 は最初からクラスベースのOOPを捨てて、Common Lisp譲りの多重ディスパッチを採用したので、エコシステムがそうならずに済んでいる。」 / Twitter
- かめさんはTwitterを使っています 「これに関連してpythonやjuliaのようなパッケージシステムがある言語ならDIしたけりゃパッケージごと差し替えれば良くね?って疑問がある。なんでもかんでもクラスを作ろうとするのは理解できない。」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「プログラミング言語が多重ディスパッチ(多重メソッド)にも対応しているだけだと不十分で、エコシステム全体が多重ディスパッチに基く設計になっていることがとても大事。 #Julia言語 は、クラスベースのOOPも言語的にサポートすることをせずに、多重ディスパッチでやって来たので大丈夫。」 / Twitter
- 貫通弾の撃てる双剣さんはTwitterを使っています 「連想配列が順番保持すると思っちゃう人がいる Ruby「そう思う人がいるならそういう挙動にしちゃおう」 Go「そう思う人がいなくなるように毎回ランダムにしちゃおう」 どちらが正しいとかじゃなくて色んな考えがあって好き」 / Twitter
- 開発コアメンバが語るRubyの今とこれから(後編) - @IT
histric-1
- 水無麻那さんはTwitterを使っています 「ところで,関数型プログラミング is ... (僕はいまだに手続型と関数型の違いが分からないんですが,Haskell で書くプログラムは関数型で良い?)」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana 個人的には、局所的なプログラミングスタイルとしてしかなくて、少なくともプログラミング言語の分類として使用するのはもはや無意味だとずっと思っています。対立するのが(昔の)JavaやCだったころならともかく、今や大抵の言語が局所的なプログラミングスタイルとしての「関数型」を支援しますし」 / Twitter
- 水無麻那さんはTwitterを使っています 「@igrep そもそも『局所的なプログラミングスタイルとしての「関数型」』というのすらどういうものかあんまり分かってないんですが,これってどっかに定義がまとまってたりするんですか?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana 公式なものとかは知りませんが、 https://t.co/YvKE5eentP でなされている説明でいつも認識しています。」 / Twitter
- 関数型プログラミングは本当に難しいのか | 日経クロステック(xTECH)
- 水無麻那さんはTwitterを使っています 「@igrep つまり, > プログラム中の記述のほとんどが「関数」で占められているスタイルを指す。 これでいいんですか?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana はい。私はそう思っています。」 / Twitter
- 水無麻那さんはTwitterを使っています 「@igrep これって,OCaml の Printf.printf 使ったやつとかは関数型プログラミングの範疇には入らないってことなんですか?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana はい、だから「局所的なプログラミングスタイル」だと思っています。プログラム全体がそうなると言うことはなくてあくまでも純粋な計算で書ける部分は純粋な関数で書きましょうという話です。」 / Twitter
- 水無麻那さんはTwitterを使っています 「@igrep つまり,関数型プログラミングでの関数って,純粋な関数しかほんとに含んでないってことでいいんですかね? で,純粋な関数を割と自由に扱えたり定義したりしてたら,関数型プログラミング?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana はい、純粋な関数を主に使えていれば関数型プログラミング」 / Twitter
- 水無麻那さんはTwitterを使っています 「@igrep それって,つまりクロージャ相当の機能が無名関数の公文付きで入っていれば,大体関数型プログラミングと呼んでいいってことでいいんですかね?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana ええっと、もしかして関数型プログラミング「言語」の話をしている?私はあくまでもプログラムの「書き方」の話をしているんですけども。「言語」の方であればそうだと思います。今は多くのプログラミング言語がクロージャーも高階関数も取り入れたから「言語」をそう呼ぶ意味が減りました」 / Twitter
- 水無麻那さんはTwitterを使っています 「@igrep つまり関数型プログラミングというのが純粋な関数を操作してると本人が思ってプログラムを書いてるなら関数型プログラミングと言えるのか?例えば,クロージャを C で実装して,それを使ってプログラミングしてるなら関数型プログラミングと言って良いのか?ってところが聞きたかったんですが」 / Twitter
- 水無麻那さんはTwitterを使っています 「@igrep そうだということでいいんですよね?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana はい、そう思います。さすがにCだとやりづらそうな気はしますが。」 / Twitter
- 水無麻那さんはTwitterを使っています 「@igrep C だとやりづらいというのは,クロージャみたいな機能が入ってなくて,クロージャの free とかも余計に必要だからって認識でいいんですかね? 後,ここら辺の本人が純粋な関数と捉えられるなら関数型プログラミングという話って,」 / Twitter
- 水無麻那さんはTwitterを使っています 「@igrep どこかの文献に載ってたりするんでしょうか?数学的な関数といった場合には,記法とかそれが実際に純粋な関数にならない場面があるかによらず,本人が純粋な関数を使っていると思っていればそうというのは,さっきの記事からは読め取れませんでした (無料版しか見れてないですが,有料版の方にある?)」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana 文献を挙げるなら、元記事が言及しているスライドがあったはずなんですが見当たらない... 逆に言えばそれしかないです。 それとすみません、「本人がそう思っていれば」の件は言い過ぎでした。「実際に純粋な関数か」の方が重要です。」 / Twitter
- 水無麻那さんはTwitterを使っています 「@igrep 中野先生の「関数型プログラミング今昔」でしょうか? https://t.co/MaoeCXt6xS この話,後半は参考文献が載ってるんですが,前半は特に参考文献ないんですよね (中野先生自身,最初に個人的な見解と断り入れてますし)」 / Twitter
- 120901fp key
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Mizunashi_Mana それです!」 / Twitter
- 水無麻那さんはTwitterを使っています 「@igrep なるほど,ありがとうございます」 / Twitter
- 水無麻那さんはTwitterを使っています 「関数型プログラミングの定義,TL の反応見る限り,掘っても虚無になるだけな気がしてきたので,触れてはいけない話題なんだなあという感が出てきた.やはり,機械学習しつつ,話し相手の定義を慎重に探っていくしかないのか」 / Twitter
histric-2
- HexirpさんはTwitterを使っています 「関数型プログラミング言語は、関数型プログラミングを推奨しているプログラミング言語であると、ウィキペディアでは定義されています(宣伝)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「俺「関数型言語の要件には『第一級関数』だけでなく『末尾呼び出しの最適化の保証』も必要」 俺「横から失礼します。言語仕様ではTCOを規定しているが実際の実装の多くはそれに準拠していない(ので事実上使えない)という場合はどうなるのでしょう」 俺「うむむ」」 / Twitter
- HexirpさんはTwitterを使っています 「もう一度: 関数型プログラミングの限界と言っていたのは、「関数型プログラミング」が広すぎたので取り下げます。 Rank-1 多相と代数的データ型と単純な定義の宣言だけがあってモジュールとかはない状態では限界があるというという主張に弱めます。」 / Twitter
- HexirpさんはTwitterを使っています 「https://t.co/KWas1Vaao6 この記事は、オブジェクト指向プログラミングの本質を、データとロジックを結び付けることであるとしている。そして、これを過剰に推し進めているか、あるいは言語仕様によって強制されているのが、現在のオブジェクト指向プログラミングの失敗であるとしている。」 / Twitter
- Elixir から Elm の流れで、いよいよオブジェクト指向に対する懐疑心が無視できないレベルに達した2017年冬。 – ゆびてく
- HexirpさんはTwitterを使っています 「この問題を、データとロジックの結びつきを正しく管理することで解決しようとするのが、ドメイン駆動開発であるのかもしれない。データとロジックの結びつきを捨てることで解決しようとするのが、関数型プログラミングであるのかもしれない。」 / Twitter
- HexirpさんはTwitterを使っています 「個人的には関数型プログラミングが好きだけど、これには限界があって、プロジェクトが巨大になると、情報を隠蔽する上手い仕組みが必要になることが分かっている。この段になってドメイン駆動開発を導入していけば良いのではないだろうか。」 / Twitter
- HexirpさんはTwitterを使っています 「関数の性質を何でもかんでも保証したり、依存型を使って不正なプログラムを作れないようにするという方向性は、データとロジックを不要に結びつけてしまうという罠があるのではないだろうか。」 / Twitter
- HexirpさんはTwitterを使っています 「という訳で、 Intheo 言語は二層にしようと思う。 Elm 言語に高級なモジュールシステムと多重度による線形型を足したものが第一層である。それに、さらに依存型や cubical なノーテーションを加えたものが第二層である。」 / Twitter
- HexirpさんはTwitterを使っています 「第一層で書かれた定義は、第二層の定義として翻訳される。そして、その翻訳された定義に対して、第二層で停止性や性質などの証明を書くことができる。」 / Twitter
- HexirpさんはTwitterを使っています 「関数型プログラミングの限界と言っていたのは、「関数型プログラミング」が広すぎたので取り下げます。 Rank-1 多相と代数的データ型と単純な定義の宣言だけがあってモジュールとかはない状態では限界があるというという主張に弱めます。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「「極力イミュータブルにしてインスタンスの存在自体が状態を表す」てのは、まさにFPであって、FPとOOが直交していると言える根拠だとも思うんですよね。 しかし、普段これを自然に実践しないとわかりにくい感覚のような気もします。」 / Twitter
- スマートコンさんはTwitterを使っています 「Haskell は Monad が注目されがちだけど、実用的・汎用的なプログラムを書いていくには、やっぱり Applicative や Semigroup, Monoid, Foldable, Traversable あたりの知識はあった方がよく、この辺のコンビネータを使ったり自前のデータ型に対して使ったりできるかが脱初心者の一つの基準といえそう」 / Twitter
- kinabaさんはTwitterを使っています 「関数に==定義するの、RTした記事のように入力が有限(Bounded)の時に限定して全検査するしかないかと思いきや、位相空間に思いを馳せることで、たとえ無限でも (Integer→Bool)→Integer 同士の等価判定とかできるみたいな話があって面白いです https://t.co/dh4Kftznlp」 / Twitter
- Topology for functional programming
- d.y.d.
- kinabaさんはTwitterを使っています 「https://t.co/JKnbKiq3yT 読んだ。α変換の下で同じなプログラムを同じ値に潰すハッシュ関数を書いたよという話。変数を名前文字列やde-Bruijn indexとかで表すのでなく、部分木中での出現位置がどこであるかを表す木であらわすと大体全部普通に木をハッシュする感じの作業に帰着される。」 / Twitter
- Hashing Modulo Alpha-Equivalence - Microsoft Research
- sumimさんはTwitterを使っています 「抽象データ型のスーパーセットのオブジェクト指向でも継承は(それ無しでは辛いけど^^;)要件ではなくなって久しいので(ある意味80年代のクックの言語機能としてのインターフェースの提案の時点で既に…)、今オブジェクト指向は抽象データ型はおろか「手続きを内包した構造体」で十分用は足りる状態」 / Twitter
- sumimさんはTwitterを使っています 「そして、足りない部分は強力な型システムで補ってください…となっていて、関数型(これまた参照透明性という原義(?)から外れて、強力な型システム+αが本来みたいに語られがち)…と、なんだか区別が付かなくなってきているのが現状か。」 / Twitter
histric-3
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「そういえば,今日の講義で #LISP 評価器の構成について話をした時,その場のノリで『evalは制御装置(CU)でapplyは演算装置(ALU)みたいなもん』(そしてenvは主記憶装置やレジスタ)って言い方をしたんだけど,そういう対応付けって聞いたことないな.あながち間違いでもないとは思うのだけれども.」 / Twitter
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「コンスセルとcar/cdr/cons/eq/atomの実装完了.コンスセルは #クロージャ で実現.あらためて #ラムダ式 万能説.#LISP #Excel #lambda #programming #プログラミング https://t.co/M3joGvuxQ7」 / Twitter
- リスト処理関数(cons,car,cdr,eq,atom)実装例まとめ - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には、関数型言語に対する恐怖と似てる…「状態保持は、引数/返値のみ」なので、頭の良い人だけ使えるジャグリングを頑張れ(=バカは状態の連結が作れない)みたいな(たぶん偏見)」 / Twitter
- mizutaniさんはTwitterを使っています 「散々サーバレスアーキテクチャなアプリを作りまくってきた自分が言うのもだいぶなんですが「やっぱり巨大なサーバレスピタゴラスイッチを作ると辛いな!」という境地に至りました。こちらからは以上です。」 / Twitter
- mizutaniさんはTwitterを使っています 「関連するLambda functionが片手で数えきれなくなったらサーバーレスは諦めましょう」 / Twitter
- ken\dさんはTwitterを使っています 「@m_mizutani Step functionの自前実装はそれはそれで大変そうですけど、どうなんでしょう👀」 / Twitter
- mizutaniさんはTwitterを使っています 「@ken5scal Step functionはテストが難しいのと状態遷移管理が辛くなってくるので、自分はここぞという時にしか使いたくない印象ですね…。あと細かいロジック処理は結局Lambdaを呼び出すことになるので、関数の数が増えると依存関係ムズイになりがちというのが難しいところです」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「処理系の中間言語を curry 化しています。target 言語は uncurried なので、いまは一度 curry 化したものをきれいに uncurry 化するのを書いてる」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「大昔に学んだ catamorphism とか融合変換とかそういうのを実装していて楽しさはあるんだけど、もう GHC の上に乗っかってその拡張のひとつとして実装した方が楽だった気もしてきている」 / Twitter
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「ああ,チャーチ真理値にすると条件分岐構文が要らなくなるなあ.#CharLISP に組み込めるかな?アレの場合,引数なし #ラムダ式 でくくるのはさほど煩雑ではないのだよな. #lambda #programming #プログラミング https://t.co/s2B5i7YZU3」 / Twitter
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「というわけで #CharLISP 仕様変更.構文がラムダ式とquote相当のみに.quoteにしても数値演算特化にするならば要らないのだよな.car/cdr相当も.ただ,そこまですると #LISP じゃなくなって『CharLambda』とかに改名することに.んー.#lambda https://t.co/OlrYk0NRmq」 / Twitter
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「更に仕様変更中.そういえばラムダ式も定義時はquote状態(?)だよなということを流用して文字列生成を関数実装.空リストも0で代用することにしたら,あら不思議,構文はラムダ式のみに(意図的).仕様もだいぶすっきりしたなー(そして勘違い).#LISP #lambda https://t.co/kjtsIvPM2L」 / Twitter
- エヌユルさんはTwitterを使っています 「GitHub Copilotの必要性が今ひとつわからなかった理由が分かった 私がHaskell文化圏に属してるからだ Haskellでは既にボイラープレート的なコードの生成はGenericsやTemplate Haskellでやらせる でも多くの言語ではボイラープレートたくさん必要だからコード生成ツールが必要だったんですね」 / Twitter
- エヌユルさんはTwitterを使っています 「Template Haskellを持ち出すまでいかなくても、HaskellやScalaのような高階関数が気軽に使える言語はコードを中に包み込ませるから不要に思えるんだよね」 / Twitter
- エヌユルさんはTwitterを使っています 「どっちかと言うとHaskellにほしいものはプログラムからコメント生成定期 型で情報を管理しようとしてるから逆に型でキャッチできないデータ(部分関数などによる純粋関数の例外生成、遅延評価によるスペースリークの可能性、計算オーダーとか)は見えづらいんだよなあ」 / Twitter
- 関数型プログラミングの復活 - QCon Plusハイライト
- 水波ユキノ@岡山&Python勢&ごちうさ難民☕さんはTwitterを使っています 「@yasuo_ozu 見たところたしかSQLは宣言型だっけ? 何がしたいかを書いておいて実装は気にしなくてもいいって言う。(実装は場合によっては気にしたほうがいいし、詳細は見れるっぽい?)」 / Twitter
- UkicodeさんはTwitterを使っています 「大体、論理型であるPrologがないとは何事か。Prologは手続き型か関数型、どちらに分類されるんですかね・・・?」 / Twitter
- UkicodeさんはTwitterを使っています 「@ababupdownba https://t.co/33IhRQdKkc 一応誤解のないように言っとくとネタのもとはこれです。」 / Twitter
- プログラミング言語を手続き型と関数型、静的型付けと動的型付けで4象限に分類する - Qiita
- Miura HidekiさんはTwitterを使っています 「プログラミング言語にキャッチフレーズをつけたの大抵的外れだから無視していいと思う。 (LispのAI言語とかPrologの論理型言語とか)。無視していいのはキャッチフレーズで言語そのものではないのに注意」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「関数型言語の方が一般には扱いやすいんだけど、計算量に敏感なことをやろうとすると線形型がほしくなってきてしまうみたいで、手続き型言語とどちらがいいかは実は自明ではなかった気もしてきてるよ」 / Twitter
- mod_poppoさんはTwitterを使っています 「プログラミング言語を 正格と非正格、純粋と非純粋 で4象限に分類する」 / Twitter
- retrageさんはTwitterを使っています 「基本的にスクリプト言語には適当に書けることを期待していて、速度は期待していない」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「むかし UML を正しく書けばソフトウェアの設計を完了できるとされた幻の MDD 技術があったんですよ。具象の動作テストなしで UML を正しく書ければですが。ノーコード開発にコーディングと同じポテンシャルを求めるというのは、つまりそういう話なわけで」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「これはこの条件だけでは仕様が曖昧なので、Schemeでは引数でいくつかの解釈を指定できるようにしてますね https://t.co/g0veZpmsMK」 / Twitter
- SRFI 152: String Library (reduced)
- いわたさんはTwitterを使っています 「投票とってみるか。 「与えられた文字列をカンマでsplitした結果を配列で返す」というメソッドがあるとして、空文字列を指定した結果は」 / Twitter
- 渋川よしきさんはTwitterを使っています 「JavaとGoはモジュール⊇パッケージだが、PythonとNode.jsはパッケージ⊇モジュールである。」 / Twitter
- ノーンさんはTwitterを使っています 「群の定義、これを数式として覚えようとすると頭のメモリを超えてしまうので、「結合的な二項演算で単位元と逆元」とコンパクトに覚えたら忘れなくなった。」 / Twitter
- uint256_tさんはTwitterを使っています 「vicisで関数作るの難しすぎる (builderを作っていないため; 今までIRをパースしてた)」 / Twitter
- uint256_tさんはTwitterを使っています 「#vicis 比較的簡単にIRを生成できるようになりました。 https://t.co/qI3QGZqWPg」 / Twitter
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「プログラミング言語におけるラムダ式、ただのインライン関数(ラムダ式的に活用されてない)」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「Jikka が Haskell で書かれているのは、Haskell だと構文木をいじるプログラムがとても書きやすいためです。代数的データ型とやりたい放題できるパターンマッチ、あとモナドが... 続き→https://t.co/3JyTmbcjvd #マシュマロを投げ合おう」 / Twitter
- JikkaのJissouにHaskellを用いている理由はありますか? | マシュマロ
- Keigo ImaiさんはTwitterを使っています 「@yoriyuki 「続き」ってだけだと思います。無理矢理考えるとしたら、cbvやcbnや遅延評価のλ計算を埋め込む話がWalker&Sangiorgiの最後の方に載っていて、そこではλ項をエンコードしたP自体を継続として扱うために名前kでk.Pみたいにプレフィックスする…みたいな話は出てきたような気はします」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「CCSとかπ計算 (とかセッションタイプ) の a.P の P も継続 (continuation) ってよく呼ぶんだけどプログラミングの話題にのぼる文脈では束縛できたり切り取れたりするアレのことを意識するので書くたびに「いけるかな…?」感ある」 / Twitter
- yoriyukiさんはTwitterを使っています 「@keigoi 理論的に関係あったりするんでしょうか」 / Twitter
- Miura HidekiさんはTwitterを使っています 「これを区別するために束縛出来たり切り取れたりするのは 1st class continuation とフルネームで呼ぶべきだろうか。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「正式には 1st class citizenかな?」 / Twitter
- まりもさんはTwitterを使っています 「機械語やアセンブラでのコーディングが大変だからプログラム言語が作られたのに、プログラム言語に複雑で高度な概念や大量の規則を導入して再び大変にしてどうするのだろう」 / Twitter
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「関数型言語で x list list を扱うと頭がこんがらがるので、x listに対する処理を別モジュールXに切り分けてX.t listとして扱った方がいい」 / Twitter
- Akira Kawamata (川俣晶)さんはTwitterを使っています 「MINIMAL BASICとはECMA-55のことらしい。だったら、N-BASICでの"世界標準のMicrosoft BASIC"というのは何だったのか。よほどECMA準拠の方が世界標準に近いぞ。 https://t.co/MesDf8uwNQ」 / Twitter
- ECMA-55 - Ecma International
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Node.js アプリでセキュリティを確保するためのチェックリスト。4つのレベル (アプリケーション、エラー処理、サーバおよびOS) において推奨されるパターンと、それを実現するためのライブラリについて解説している。 https://t.co/KZatP6UQTn」 / Twitter
- Nodejs Security - OWASP Cheat Sheet Series
- mod_poppoさんはTwitterを使っています 「C++のADLは引数→関数の方向だから関数の引数の名前空間を省略したいというのとは方向が逆な気がする。コンテキストから名前空間を推論するのはSwiftのenumがそれっぽい(けどSwiftのやつの詳細をよく知らない) #satysficonf」 / Twitter
- mod_poppoさんはTwitterを使っています 「Pythonに限らず高級言語同士の接続はJVMみたいな共通基盤がない限り辛いのでプロセスごと分けてしまうのが筋が良いのではと思っている」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「コンパイラの文脈で zombie process ならぬ zombie pointer という言葉があると知った。」 / Twitter
- zombie pointer - Google 検索
- Azure Functions デプロイ スロット | Microsoft Docs
- ボックス化とボックス化解除 - C# プログラミング ガイド | Microsoft Docs
- mod_poppoさんはTwitterを使っています 「ボックス化する言語実装だとタプルを多段にすると(使い方にもよるけど)効率落ちそう」 / Twitter
- mod_poppoさんはTwitterを使っています 「ボックス化する言語で(a,b,c,d)を(a,(b,(c,(d,()))))にすると要するに単方向連結リストなのでaを参照するのとdを参照するので所要時間が変わる。2要素タプルの使い方を変えて((a,b),(c,d))みたいにバランスするようにすればマシになりそうだけどカンマに単純な結合性を与えられない」 / Twitter
- mod_poppoさんはTwitterを使っています 「ちなみにF#のタプルは要素数が多い時に後ろの方を別のオブジェクトで表現するらしい」 / Twitter
- κeenさんはTwitterを使っています 「タプル作る度ポンイタ挟むんでパフォーマンス気にしてる言語だと(a, (b, c))じゃなくて(a, b, c)の3要素タプル使いたいんですよ」 / Twitter
- κeenさんはTwitterを使っています 「Rustは両者同じメモリ表現になるから(a, b, c)を(a, (b, c))とすることも出来たと思うけど多分特別扱いが増えるとか作者の好みとか色々な理由でnつ組ネイティブに入れてるんじゃないかな」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@blackenedgold (i16, i32, i16) だとならなくないですか」 / Twitter
- κeenさんはTwitterを使っています 「@qnighy あれっ、タプルもpackするんでしたっけ(playgroundで確認したら8と12になったので正しそう)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@blackenedgold そうですね。nタプルはn要素のジェネリックな構造体とだいたい同じです。」 / Twitter
- κeenさんはTwitterを使っています 「へー」 / Twitter
- READPERMISSION Function (Record) - Dynamics NAV | Microsoft Docs
- GET Function (Record) - Dynamics NAV | Microsoft Docs
- 開発者が知っておくべきSOLIDの原則 | POSTD
- 13年分の未熟なゲームのコード | POSTD
- 「良いコード」を書くための10のポイントとは? - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ソフトウェアにおける認可 (authorization) はなぜ難しいのか? 1. 決定を実際に守らせる (enforce) 箇所がプログラム中に複数存在している。 2. 許可に必要な情報がアプリケーションと一体化していて分離しにくい。 3. 何を許可する・しないというモデル化がそもそも難しい。 https://t.co/8PauE5FlNZ」 / Twitter
- Why Authorization is Hard
- 渋川よしきさんはTwitterを使っています 「個人的にはマイクロサービスに慎重になれってのは技術が解決すると思っていて、Railsみたいなオールインワンなフレームワークで、KubernetesとかHelmまで内包していて、モノリスに書いているけどライブラリが勝手にコンテナに分割して非同期にしてくれて・・・みたいな時代は来ると期待してる」 / Twitter
- 渋川よしきさんはTwitterを使っています 「Javaのsynchronized、みたいな感じで、statelessってラベリングしたら勝手に処理系がインスタンス分けて欲しい。」 / Twitter
- 立派プログラマさんはTwitterを使っています 「だいたいno cost abstractionしようと思ったら現状分割コンパイルを諦めるしか無いんじゃ(cf, C++, Rust」 / Twitter
- Miura HidekiさんはTwitterを使っています 「それ of それ。分割コンパイルに対する代案としてJITコンパイルがあるけどこれもno cost abstractionが制限されるしな」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mmcも色々分割コンパイルのやり方を考えたけど、思いつかなかった。」 / Twitter
既存言語
その他
null安全
- null安全でない言語は、もはやレガシー言語だ - Qiita
- null安全を誤解している人達へのメッセージ - Qiita
- 「null安全」とは――Javaプログラマーが血と汗と涙を流さなくてすむ理由:Android Studioで始めるKotlin入門(3)(1/2 ページ) - @IT
- null安全 :: やり直しJava
- Null安全がすごい - 騒音のない世界 BLOG
- C# 8.0 の null 安全はいろんな意味で革命だった - 翔星 Be ランド日記
- Null安全 - Kotlin入門
- プログラミング言語「Dart」が“null安全”に ~テクニカルプレビュー版がリリース - 窓の杜
- Null の始末は「誰」がするのか
- Unity 2020.2で利用できるC#のnull許容参照型について理解する | Yucchiy's Note
- mosss0321さんはTwitterを使っています 「たぶん多くのWeb屋が真に求めているのは、多少遅くてもいいからメモリ意識しなくてよいRust(もうそれはRustではない) OptionとResultとtraitとcargoとif式とパターンマッチとモジュールシステムとasync/awaitが欲しかったのよ...。」 / Twitter
- timelerさんはTwitterを使っています 「Rustに関して言えば、メモリー管理機能がある意味剥き出しであることを無視できれば高級言語屋から見てもいい言語のように見える。 メモリー管理機能さえ気にしなければ…」 / Twitter
- medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「Cをゴリゴリやってきた低レイヤーがいう「Go/Rustって良いよね!」を高級言語しか知らないWebエンジニアが真に受けると大火傷するから気をつけて」 / Twitter
- mosss0321さんはTwitterを使っています 「kotlinが結構近しい気がするけどjvmとide恐怖症なのでまだしっかり触らないでいる。」 / Twitter
- 冬はうどんさんはTwitterを使っています 「@mosss0321 つまりWebエンジニアが求めているのはF#なんですね!! #fsharp」 / Twitter
- 🍁🍇公共情報基盤に取り組む四弦/超越基底:いぶきさん.dart (佐藤陽花)さんはTwitterを使っています 「@mosss0321 Dartは現在後者2つは満たしている...」 / Twitter
- mod_poppoさんはTwitterを使っています 「このツイート、関数型言語なら当てはまるのがいくつかありそうな気がするけど、ガチガチの関数型言語は除外したいとか暗黙の条件があるのかな」 / Twitter
- mod_poppoさんはTwitterを使っています 「「モジュールシステム」って名前空間およびアクセス制御程度で良いのか、それともMLのようなリッチなモジュールシステムが欲しいのか、どっちだ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔、ストラウストラップも書いてた説だけど(=例外でfree漏れが嫌ならクラス化しろ)、個人的には全く賛同できないなぁ。 小さな後始末のために、クラス名を考える/作るの面倒すぎる。 ---- 「 C++ でのより良い設計は後始末をデストラクタに押し込めるべき」 https://t.co/lFxlloNi8N」 / Twitter
- defer っぽいもの - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(プログラミングにおいて、「名前を考える」コストって、もっと意識されて良いのになぁ、と思うことある)」 / Twitter
Rust
GATs
- Hideyuki TanakaさんはTwitterを使っています 「ほんとにstableになるん? / 1件のコメント https://t.co/inS3QQPc5B “The push for GATs stabilization | Rust Blog” (3 users) https://t.co/9IVP4JfbRz」 / Twitter
- The push for GATs stabilization | Rust Blog
- Hideyuki TanakaさんはTwitterを使っています 「RustにGATsが入るとこういうダミーのstructにたいしてimpl実装することで、Haskellの型クラスみたいに高階型を疑似的にtraitのインスタンスにすることができなくもない感じになるっぽいけど、RustのいうところのHKTを入れるのは無理なんか? https://t.co/u1MI1bnFHc」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「まあともかくなんにせよこれが入ったらRustでもFunctorとかモナドとかが定義できるようになる気がするから、そういうのなんとかしてRustでやりたい人には朗報かもな(´・_・`)」 / Twitter
GhoseCell
- yukiさんはTwitterを使っています 「Rustはaliasing (shared reference) XOR mutablilityの関係でdoubly-linked list等の実装がとても辛い。そこでGhoseCellという、データに対しての権限を複数持てるデータ構造の提案。Coq等で健全性の証明もされている。/GhostCell: Separating Permissions from Data in Rust https://t.co/ZAcAMjBUKF」 / Twitter
- GhostCell: Separating Permissions from Data in Rust
- yukiさんはTwitterを使っています 「(下記は論文を雑に読んだメモです。理解が間違ってるかもしれません:pray:)Branded Typesという昔ながらの関数型プログラミングの技法を再利用している。この型は、state-dependency typesという型を簡易的にシミュレートするために、幽霊型とランク2多相を結合した型になっている、らしい。」 / Twitter
- yukiさんはTwitterを使っています 「肝心のdoubly-linked listの実装例。GhostCellは中にPhantom Lifetimesとでも呼べるInvariantLifetimeという型を持っていて、それがBranded Typesのbrandを表現している。Rustはライフタイムにはランク2多相をサポートしているため。/https://t.co/IYvl4A8b3Z」 / Twitter
- ghostcell/src/dlist_arena.rs · master · FP / ghostcell · GitLab
- yukiさんはTwitterを使っています 「これを利用することで、Rustプログラマはunsafeでスピードを出す一方で安全性の保証を犠牲にするか、あるいは安全性の保証を得ることでスピードを犠牲にするかという2択から解放されることになる。ベンチマークを見ても、GhostCellは爆速になってる。」 / Twitter
proc-macro
- yukiさんはTwitterを使っています 「このリポジトリをcloneしてrust-analyzer入りのVSCodeで開くと、開いた瞬間に走るcargo checkによってProcedural Macrosが実行され、たとえばlocalhost:8080に~/.ssh/id_rsaにある中身が読み出されてしまうってこと?😨 こわっ😨/lucky/bad_actor_poc https://t.co/r4HFXUFJ0Z」 / Twitter
- lucky/bad_actor_poc
- uint256_tさんはTwitterを使っています 「proc-macroはやっぱりサンドボックスか何かで動かないといけなさそうね(wasm?」 / Twitter
メモリ安全性
- さいぺさんはTwitterを使っています 「Rustのメモリ安全性を、借用とlifetimeではなく、メモリへのunique accessとshared accessから説明した記事。 この導入だと、SendとSyncへの流れが自然でわかりやすい Rust: A unique perspective https://t.co/yGotPZjzB8」 / Twitter
- Rust: A unique perspective
- さいぺさんはTwitterを使っています 「mutキーワードをuniqに変更する提案があったの初めて知った」 / Twitter
GC 有無
- κeenさんはTwitterを使っています 「これねー。ちょっとの工夫でコンパイルが通るものをどう扱うか(matchの所有権移動とか)で難しい。顕著に「受理されない」と感じるのはマルチスレッドでのデータ共有とグローバル変数やコンフィグとかの大域的な値を雑に扱うコード。文字列やベクタは扱いが面倒になるけど無理ってほどではない。」 / Twitter
- 吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「今日はRustとGCの話しとなって、やっぱりGCを持っていないRustが安全性のためにどういうコードを受理しなくなったのか?という部分を勉強しておかないと、RustはGCがあると目的達成が困難な用途で使うべきという主張に説得力を持たせられないな😇」 / Twitter
- まっちゃらさんはTwitterを使っています 「@_yyu_ The art of Multiprocessor ProgrammingにGCがない場合の実装が困難とかやる方法が未知となっているアルゴリズムがいくつかあった気がする(記憶が曖昧)からヒントになるかも₍₍ (ง´・_・`)ว ⁾⁾」 / Twitter
- κeenさんはTwitterを使っています 「ちょっとの工夫でコンパイルが通るのは例えばこのコード。このままだとコンパイルが通らないんだけど1文字の修正で通る(x → _)。こういうのを「受理されない」ととらえるか「同等のコード」ととらえるかで話が変わる。 https://t.co/wrpQ7yqxSM」 / Twitter
- Rust Playground
- κeenさんはTwitterを使っています 「GCの有無が効いてくるケース=RustでRc/Arcが必要になるケースととらえるとほぼ並行なプログラムを書きたいときかな(ロックやコネクションプールなど)。そういうときはRc/Arcがあるから困ることはない。どちらかというと普段プログラムを書くときに無駄にメモリを意識させられるとかの方が困る。」 / Twitter
- κeenさんはTwitterを使っています 「こういう他の言語で手癖で書いてるようなコードがRustだと特有の書き方要求される部分が学習難易度が高いと言われる要因の1つかな。一度覚えてしまえば手癖になるので書くときに毎回頭使ってる訳ではない。」 / Twitter
- κeenさんはTwitterを使っています 「もうちょっとちゃんと筋道立てて説明したい。 1 所有権システムが拒否するのはリソースを開放する場所が静的に決まらないコードである 2 そういうのはa コードが複雑で静的に解析できないb 入力に応じて開放する場所が変わるc 並行な実行でコンパイル時に決定不能d C FFIなどがある」 / Twitter
- κeenさんはTwitterを使っています 「3 aの大部分はコードの工夫でどうにかなる 4 aの残りの大部分とbはRcでカバーできる 5 cはArcでカバーできる 6 本当にどうしようもないaの残りとC FFIはunsafeでカバーできる 7 なので「無理」なケースはほぼないが、コードを書く労力は(主に3のケースで)増えがち ってところでどうだろう。」 / Twitter
- 吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@blackenedgold すごい雑な投稿に詳しい説明ありがとうございます🙇♂️意図としても何かのアルゴリズムが完全に記述できないということはほぼないと思っていて、意味的に同じ複数のプログラムのうち、リソース解放を静的に特定するためどれかしらの書き方にしなければならない(3)のパターンが知りたい感じでした。」 / Twitter
- κeenさんはTwitterを使っています 「@_yyu_ 私もよく訊かれて回答に窮していたので整理するちょうどいいきっかけでした。 (3)は一般論としてはもちろん所有権/参照/ライフタイムの制約から外れたコードなんですが具体例は各個撃破というか1つ1つ経験で覚えてるので難しいですね 😇」 / Twitter
- てらモス♋️さんはTwitterを使っています 「Rustの意味でのSafety、GCが保証する事項と被る部分もあるけど被らない部分もたくさんあるので、その切り口はあんまりな気がするな…(´・ω・`)」 / Twitter
UB
- κeenさんはTwitterを使っています 「Rustでは未定義動作を防げるがそれとは別に、意図せず情報が漏れてしまうことがある。例えばwriteはOSがメモリを読み取るので別ライブラリのメモリでも渡せてしまうとか。何がどこまで見えるのか考えてもいいんじゃないと。 Broken Encapsulation · sunfishcode's blog https://t.co/rABHKskffv」 / Twitter
- Broken Encapsulation · sunfishcode's blog
- κeenさんはTwitterを使っています 「UBはコンパイル時の懸念でこれは実行時の懸念なので区別はあるけど、コード書くときに保証されてることと保証されてないことの別を考えるといいよねってことかな。細かいこと言いだすとポインタのアドレスでメモリアロケーションの回数が漏れるとかもあり、結構難しい。abstract execution周り?」 / Twitter
blog
- Rust structとenumの組み合わせ - yhara.jp
- Rust に様々なスクリプト言語を組み込む - Möbius Flyer
- A New Backend for Cranelift, Part 1: Instruction Selection - Mozilla Hacks - the Web developer blog
- κeenさんはTwitterを使っています 「let _ = の話ですか? Idein Ideas — Rustにおけるirrefutable patternを使ったイディオム https://t.co/oBGsGgkijZ」 / Twitter
- Idein Ideas — Rustにおけるirrefutable patternを使ったイディオム
- κeenさんはTwitterを使っています 「これ読んでも釈然としない部分は残る。参照外しじゃなくて参照外しした値がunsafeとかなのかなぁ。」 / Twitter
- κeenさんはTwitterを使っています 「mirの時点で参照外しが消えてるのでearly dead code eliminationで参照外しが消えた結果unsafeにならなくなったとかかなぁ。しかしそれをやるには無効なポインタの参照外しがundefined behaviorであることを使うはずで、なんかビミョーにsoundnessにケチが付きそうな気もする」 / Twitter
- Writing Interpreters in Rust – GitHub 出張所 – プログラム関係のブログはここに
- Frequently Asked Questions · The Rust Programming Language
- 2021年3月18日 Rustを学ぶためのプロジェクト―Debian開発者,coreutilsパッケージをRustで実装中:Linux Daily Topics|gihyo.jp … 技術評論社
- My experience crafting an interpreter with Rust – Manuel Cerón
- Rustのパターンマッチを完全に理解した | FrozenLib
- Rustで作るインメモリキャッシュ | κeenのHappy Hacκing Blog
- Rustでインメモリキャッシュ作った話 | κeenのHappy Hacκing Blog
- 言語自作を通して学んだRust | κeenのHappy Hacκing Blog
- Rustのconst fnって何? | κeenのHappy Hacκing Blog
- Rust with Fearless Concurrency | κeenのHappy Hacκing Blog
- RustのMutexのPoisoning | κeenのHappy Hacκing Blog
- RustからCPU拡張命令を使ってみる | κeenのHappy Hacκing Blog
- Rustで最速のサーバソフトウェアを目指す! - nttlabs - Medium
はてなブログ
- Rustの並列処理についての勉強 - FPGA開発日記
- 勝手にevalしない言語をRustで作ったら意外なものになった - 色の輪
- 大学でRustを教えた話 - 未完成な論を綴るブログ
- Rustでもモナドは実装できるのか?(再) - Don't Repeat Yourself
- rustでCで書いた関数を呼ぶ / Cからrustで書いた関数を呼ぶ - 睡分不足
- RustでUnix Domain Socketを扱う方法 - 睡分不足
- Rustのasync/awaitを使ったecho serverの実装 - 睡分不足
- rustのArcの内部構造 - 睡分不足
- rustのMutexの内部構造 - 睡分不足
- rustのArcについてその2 - 睡分不足
- rustのIteratorの実装 - 睡分不足
- rustで動的にバッファを確保する方法 - 睡分不足
- rustをnostdで使う - 睡分不足
- rustのGUIライブラリconrodの使い方 - 睡分不足
- rustでCで書いた関数を呼ぶ / Cからrustで書いた関数を呼ぶ - 睡分不足
- nomによるnumpyデータのパース - 睡分不足
- [rust]ZST/DSTによるflexible array memberの実現 - 睡分不足
- Rustでグラフを表現するにはTyped Arenaが便利 - 簡潔なQ
- Rust製のパーサコンビネータnomを解剖する(v6.0.0) - Explore cs in depth!
- Rust製のパーサコンビネータcombineを"覗き見"する(v4.4.0) - Explore cs in depth!
- knurling-rs のツールお試し Get a grip on bare-metal Rust! - 低レイヤ強くなりたい組込み屋さんのブログ
- Rustで型を強めにつけ、バリデーション情報を型に落とす方法 - Don't Repeat Yourself
- Lox (Crafting Interpreters)にdefer文を追加する - 井山梃子歴史館
- Rustでグラフをplotするライブラリのまとめ - Stimulator
infoQ
- Rustが1.39でゼロコストAsync/Awaitをサポート
- Rustの非同期ランタイムであるTokioが1.0に到達
- Microsoftがメタデータを使って、Rustや他の言語からの慣用的なWin32相互運用を可能に
- CXXが実現するRustとC++の安全な相互運用
- MicrosoftがRust For Windowsをプレビュー
- Rust 1.51がリリース - const genericsが安定化、Cargoとコンパイル時間が改善
- Rust At Six:新しい言語エディションと広がる採用
Zenn
- Rustにおける関数ポインタやクロージャ
- [Rust] Drop/dropあれこれ
- Craneliftを歩く
- GhostCell 論文を読む
- Rust + LLVMで自作言語をセルフホスティングした話
- llrl programming language
- rustdoc中で数式を書く
Qiita
- C++は本当にRustに速度で負けるのか 〜「RustがC++に速度で勝った話」のベンチマークを追試する〜 - Qiita
- Rust から C++ のメソッドを呼ぶ方法をまとめてみた - Qiita
- WSL2 (Ubuntu) で Rust のインストールがうまくいかない - Qiita
- Rust でグラフ(petgraph) - Qiita
- Rustで自己参照構造体が作れない理由と解決法 - Qiita
- 本家Rustコンパイラのソースを読もうとしてみる(1) - Qiita
- XbyakをRustから使ってみた - Qiita
- 『みんなのデータ構造』を読んで Rust で実装した - Qiita
- no_stdのRust on LinuxでHello, world!する - Qiita
- Rustの型システムの恩恵:言語処理系としての観点から - Qiita
- 自作コンパイラ基盤の話 - Qiita
- スペースによるパターンマッチの網羅性検査 - Qiita
- レイアウト規則を独自実装してしまったお話 - Qiita
- ガラスボーさんはTwitterを使っています 「repr(align(N))アトリビュートの紹介だけど、小さいサイズならalignedというクレートが便利だったりします https://t.co/ZOHGGe1eUg https://t.co/Z99iQvvuAE」 / Twitter
- Rustでallocを使わずにページ境界に合わせたメモリアロケーションをするには - Qiita
- aligned - crates.io: Rust Package Registry
- RustのさまざまなDockerfileのビルド時間を比較してみた - Qiita
- Rust で新しく struct や enum を定義するときに実装を検討する trait まとめ - Qiita
- Rustのコンパイルエラーを爆発させる技術 - Qiita
- 非同期 Rust パターン - Qiita
Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Greg KH「Rustにしても本質的には変わらない。過去のプレゼンみたか? そして補償すべきものは時代とともに変わる。今や悪意あるハードウェアからユーザースペースを守らなければならなくなった。」 https://t.co/KTQWIOnCXP」 / Twitter
- Re: [PATCH 00/13] [RFC] Rust support - Greg Kroah-Hartman
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「仮にRustにしてメモリ安全が保証されたとしても、メモリ以外のコードについては何も解決してくれない。企業の役員どもは新しい機能を追加することについては余念がないが、保守に出すカネはないと来ている。保守をしているのは誰だと思う? インターンだぜ。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「「コミュニティが保守する」ってのは嘘だ。」 / Twitter
- κeenさんはTwitterを使っています 「Rustに新たな概念I/Oセーフが導入されてる。ファイルハンドラを取り出したままファイルのデコンストラクタを走らせると浮いたハンドラができることがあるからそれをunsafeにしたい。 RFC: I/O Safety by sunfishcode · Pull Request #3128 · rust-lang/rfcs https://t.co/nrG1sdrXje」 / Twitter
- RFC: I/O Safety by sunfishcode · Pull Request #3128 · rust-lang/rfcs
- κeenさんはTwitterを使っています 「現在のライブラリの設計上もunsafeなんだけど明文化した感じかな?unsafeは本来はメモリ安全性についての機能だからIO安全性にも使ってる現状は邪道といえば邪道。 あとas_raw_fdとinto_raw_fdがややこしい問題を新しい型を導入して解決しようともしてる。」 / Twitter
- ☀sat🌛さんはTwitterを使っています 「今日はRustの識者たちにRustについて聞いたんだけど世の中そうそううまい話はなくてRustはRustなりに大変ということがわかった」 / Twitter
- uint256_tさんはTwitterを使っています 「Rustから外側の世界に触れようとすると大変」 / Twitter
- uint256_tさんはTwitterを使っています 「ブラウザはさっぱりわからん」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「最近、言語仕様に非互換がないことの重要性を痛感する。少なくともrust みたくパッケージ単位で言語バージョンを指定できるようにしてほしい。」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「Rustコードのレビューむずいな。自分で書く分には変数のライフタイムが見えるけど、人が書いたのをテキストだけでレビューするの無理だ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「つまりライフライムに色をつけるツールがあると喜ばれるってことかな? (作るとは言っていない」 / Twitter
- mattnさんはTwitterを使っています 「C「所有権などない」」 / Twitter
- mattnさんはTwitterを使っています 「というか、malloc の実装って(あんま知られてないのかもだけど)ユーザランドなので、たまーに良かれと思って malloc の実装をちょっと改造してリンクしたライブラリが「こっちは alloc するから使う側が free してね」って言う通りに free したら落ちるみたいな案件がある。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Cの所有権は 俺の物は俺の物 お前の物は俺の物 では?」 / Twitter
- かりやみつらないさんはTwitterを使っています 「所有権はみんなの心の中にあります」 / Twitter
- Miura HidekiさんはTwitterを使っています 「かねがねRubyで静的解析して所有権の概念を持ち込みたいと考えている」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「Rustやってると、データクラスに隠蔽はいらないじゃ、という気になってくる。必要なのは隠蔽化のコネクタとしてのインターフェイス(トレイト)なのよね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/xkuuxAD3mW ボローは着てても心は2フェーズ」 / Twitter
- Two-phase-borrows - Guide to Rustc Development
- κeenさんはTwitterを使っています 「Rustのメモリ管理を図示した説明。途中にあるスライドが動く資料って感じで分かりやすい。 🚀 Visualizing memory management in Rust | Technorage https://t.co/Wq9V81YqPs」 / Twitter
- 🚀 Visualizing memory management in Rust | Technorage
- Masaki HaraさんはTwitterを使っています 「コンパイル時Mutexですね (一度にあるリソースを同時に触らないことを保証するのが&mutで、そのロック順序を保証するための時間チェックがライフタイム)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「この「Rustにおける参照とはlockである」もqnighyが突然言い出した奇抜なアイデアではなくRust界隈ではしばしば使われる通例的な説明のひとつです」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/rL5pwxZXJL ここで勉強するのがRustをマスターするのに近道かなって思ったので読んでみる」 / Twitter
- About this guide - Guide to Rustc Development
- Miura HidekiさんはTwitterを使っています 「https://t.co/y7V96knUSL この辺、mmcに似ていると思って少し嬉しい。ただし、mmcはtとuが完全に同じになるのではなく、uにtが持つ型を加えるという感じの動作になる」 / Twitter
- Type inference - Guide to Rustc Development
- 「Rust 1.55」が公開 | OSDN Magazine
- RustでつくるRubyのFiber - Speaker Deck
- fukuoka.rb#202 RustでつくるRuby - Speaker Deck
- How to learn Embedded Rust Edition 2021 - Speaker Deck
Python
Python
- Kazuho OkuさんはTwitterを使っています 「なんでモヤモヤするのか自分でもよくわからないけど、開発者の思考的に ・オープンアドレスでコリジョンさけたい ・ハッシュテーブルサイズは2の冪乗だし大きめに ・その場合、値はテーブル外に置いたほうが良い ・リハッシュのコストも下がるし ・キー比較とかもあるので間接参照コストは無視できる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「・さらに挿入順を維持できるオマケもついてくる みたいな感じなイメージがあるからなのかも」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あー、つまり、キャッシュミス減による高速化ではなく、省メモリ化あるいはコリジョン減少による演算量・分岐予測ミスの現象による高速化の可能性もありうるってことなんかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「pythonのが速度改善を目的にした実装(そして実際に速くなっている)という想定は正しいんだろうか。実際に書いた @methane さんが知ってそう / https://t.co/ptptdXVeJO」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「オープンアドレス法で作る時に、ハッシュテーブルと値をもつ場所を別にしても速度低下が少ない(あるいは無い)、というのはそのとおりだと思うんだけど、それが近年のCPUの特性だと言われると、えっそうなんかなーってちょっと悩む」 / Twitter
- Inada NaokiさんはTwitterを使っています 「大きい理由はメモリ使用量削減です。 dictの作成、イテレートは明らかに速くなる一方、探索はほとんど変わらず、マイクロベンチマークによっては遅くなる場面もありました。 参考に当時(まだパッチ作ってる段階)の記事を紹介します。 https://t.co/TsJOFT5l49」 / Twitter
- DSAS開発者の部屋:Python に現在実装中の Compact dict の紹介
- Inada NaokiさんはTwitterを使っています 「BLOGにも書いている通り、キーワード引数などをOrderedDict(双方向リンクリスト+dictで実装されている)に置き換えることで順序を維持しようという提案があり、それだと速度もメモリ効率にもオーバーヘッドがあったのですが、新しいdictの実装ではゼロオーバーヘッドで実現可能」 / Twitter
- Inada NaokiさんはTwitterを使っています 「生成&破棄は旧dictと比べてもかなり速いので、ベンチによっては確かに速いと言えます。 でもPython(Ruby, PHPも)にとっては探索速度の重要度が静的言語と比べて段違いで高いので、探索速度が同じか微妙に遅くなる変更の主目的が速度とは断言しづらい。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@methane ありがとうございます!」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「オープンアドレスハッシュのメモリ使用量、値のサイズをs、間接表現のインデックスのサイズをi、ハッシュの最大充填率2/3、可変長配列のbackoff factorを2とした場合、 値埋込: 3s 値を別配列: 2s+3i とかなので、s>>i な状況においては値を別配列でもったほうがメモリ的に有利なんだよな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「backoff factor=1.5とかだとメモリ使用量半分になる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「64bit化にともなって言語処理系のsは大体2倍になったので、そのタイミングで値を埋め込むのをやめる処理系が続出したのは納得感ある」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「感想文続き https://t.co/YhkJeDlNA8」 / Twitter
- mogami290さんはTwitterを使っています 「ほう。一般的にインタープリタは、構文木のトラバース、変数のヒープ確保、動的型に1/3くらいずつの時間を使っていて、動的型を残している限り3倍よりは早くならない。 5倍とはお手並み拝見。型の解析とエスケープ解析で局所的に静的型のレジスタ確保にコンパイルしてしまうのかな?」 / Twitter
- python_japanさんはTwitterを使っています 「Pythonの開発者 Guido van Rossum氏から、Microsoft の出資を受けて、今後の4年間でPythonを5倍高速化する計画が発表されました。これはMark Shannon氏のプランに基づく改善計画で、既存のCPythonとの互換性を保ちながら、徐々にパフォーマンスを改善する予定です。 https://t.co/HJ7vknTqU2」 / Twitter
- ideas/FasterCPythonDark.pdf at main · faster-cpython/ideas
- python_japanさんはTwitterを使っています 「改善プランの概要 1. インタープリタを改善し、データに応じてアダプティブに特殊化した処理を実行(pep-659) 2. 小さな整数値、2項演算子の改善など、たくさんのチューニング 3. 小さな範囲を最適化するJITコンパイラを導入 4. JITで広い範囲を最適化できるように改善 https://t.co/A9tuprSfR6」 / Twitter
- faster-cpython/plan.md at master · markshannon/faster-cpython
- Miura HidekiさんはTwitterを使っています 「大体同意。5倍速くしたいなら、よく使うプリミティブをより低オーバーヘッドで呼び出す仕組みを作りしかないと思う。 >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「データ構造のunboxing化とエスケープ解析はグローバルに解析しないとboxing <=> unboxingの変換が頻発して却って遅くなると思う」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mrubyのJITの経験ではVM命令を対応する機械語に展開するだけではそれほど速くならない(コンパイル時間をチャラにする程度)、効いてくるのは足し算とか配列参照なんかのメソッド呼び出しをやっていて遅いのを直接呼び出したり機械語に展開したりしてオーバーヘッドを無くした時。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「オーバーヘッドを減らす呼び出しをする際には当然型が分かっていると有利で静的に型が分かるとこの辺で聞いてくる。べつに抽象実行とか大げさなことをしなくても型を推定する方法はいろいろある。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mrubyのJITで使った型推定法は型に関するガードの結果を基本ブロック内で伝搬してその基本ブロック内では同じ変数に対してガードを発行しないようにする。この程度の話で最良のときには10倍程度の速度向上が出来る。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 うーんと昔、GaucheでVM命令をそのまま機械語に置き換えた時は2倍くらいでした。各VM命令ごとにVMの状態がconsistentになるようにVMのスタック操作などが入るのがひとつ律速で、基本ブロックでまとめてその中ではVM気にしないようにすればもうちょい進めるかな、ってとこで中断」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana mrubyの話で、mrubyはメソッドのsendが比較的重いのでそこで律速になったかな?って思います。ただ、Gaucheもcall/ccとかで関数呼び出しはCのようには行かないだろうから、私の実装になにかオーバーヘッドがあったのかもしれないです。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 mrubyだと基本算術演算なんかもデフォルトでは全部send経由ですか? Gaucheの場合は組み込み関数は展開できるのでそのへんは有利です。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana 命令は別れているのですが、たとえば足し算は:+をsendするような実装です。FixnumやFloatがレシーバーに来るとは限りませんから」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「Python の AST は式だけで 27 種類あって触るのがつらい。文は 25 種類ある。プログラムなんて変数と定数と関数抽象と関数適用の 4 種類さえあれば十分なのに、なぜ……」 / Twitter
- 「IronPython 3」が登場 ~Python 3をターゲットにした初めてのIronPython - 窓の杜
- Pythonの再帰回数の上限を確認・変更(sys.setrecursionlimitなど) | note.nkmk.me
- PythonでLanguage Implementation Patternsのパーサと戯れる 序 - Arantium Maestum
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「近日リリースの Python 3.10 で導入された match節の長所と短所。この機能はいくつかのケース (構文解析、イベント分岐など) では明らかな利点がある。しかしこうした例は多くなく、case内の構文解釈が標準的でない。またZen of Pythonに反し複数の方法が可能になってしまう。 https://t.co/wbZU46kZtK」 / Twitter
- Structural pattern matching in Python 3.10
- Grail (web browser) - Wikipedia
Ruby
Qiita
- RubyVM::AbstractSyntaxTree::Node 詳細 - Qiita
- Ractor超入門 - Qiita
- 「Railsは終わった」と言われる理由 - Qiita
- Railsの趨勢についてTwitterで話題になっていましたが、このブログの内容に賛成ですか? - Quora
- 成瀬さんはTwitterを使っています 「取り出す方はその通りだけど、入れる方は、Rails以外のフレームワークってvalidationとかモデルの扱いとか、ぼくらが当たり前に使ってるやつが存在しなくて無限に設定書かないといけなかったりする」 / Twitter
- ruruby: RustでつくっているRuby - Qiita
- Rustでつくる(つくれるかもしれない)Ruby - Qiita
- RubyをCに変換する話 - Qiita
- Ruby処理系自作入門 - Qiita
- Ruby 2.6 Advent Calendar 2018 - Qiita
- サンプルコードでわかる!Ruby 2.6の主な新機能と変更点 - Qiita
- Ruby 2.7 Advent Calendar 2019 - Qiita
- サンプルコードでわかる!Ruby 2.7の主な新機能と変更点 Part 3 - 新機能と変更点の総まとめ - Qiita
- Rubyで型チェック!動かして理解するRBS入門 〜サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 Part 1〜 - Qiita
- Ruby 3.0 Advent Calendar 2020 - Qiita
Twitter
- _ko1さんはTwitterを使っています 「これはrubyでは他言語を意識した変更です」 / Twitter
- hnwさんはTwitterを使っています 「@_ko1 すみません、ようやく理解しました。リリース前のPHP7の変更をVladimir Makarovさんがキャッチアップしてたところから議論が始まったんですね。かつリリース前のPython 3.6も参照してますね。なるほどー https://t.co/fyIsbAGWOR」 / Twitter
- Feature #12142: Hash tables with open addressing - Ruby master - Ruby Issue Tracking System
- hnwさんはTwitterを使っています 「@_ko1 なるほど、コメントありがとうございます。Ruby2.0付近で順序を維持するようにしたのは他言語を意識した仕様変更だと思っていたのですが、Ruby 2.4の変更は高速化という理解でした。 https://t.co/pxsTkefmtE」 / Twitter
- Ruby 2.4.0 リリース
- _ko1さんはTwitterを使っています 「@hnw 目的は性能です(メモリ消費削減含む)」 / Twitter
- hnwさんはTwitterを使っています 「@_ko1 Ruby 2.4の実装を議論していた時期はPHP7リリース前だったので完全に独立に実装を進めていたのかと思ったんですが、他言語での連想配列の高速化の流れの影響が間接的にあったということでしょうか。それとも、それ以前から他言語との比較で問題意識を持っていた箇所ということですかね?」 / Twitter
- monochromeさんはTwitterを使っています 「Rubyの多重代入、辛すぎだろ。 最後の評価順の話は、現在のCRubyとは異なるようだ。 多対多の代入の場合、右辺を並び順に評価した後、左辺を順に評価している。 以前のYARVは左辺は逆順で評価していたようだ。(その気持ちはVMを自作すると痛いほどよく分かる https://t.co/djYeYkyScp」 / Twitter
- Ruby 3.0の静的型定義をTypeScriptみたいにライブラリに書いてみた所感 - Narazaka::Blog
- RBS基礎文法最速マスター - pockestrap
- Miura HidekiさんはTwitterを使っています 「むしろ申し訳ないという気持ちになった...。正直、抽象実行でリアルタイムで補完するとか型チェックが出来るようになるとは思わなかった」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「Special thanksに挙げていただきました 😊 https://t.co/X9Bxvicd07」 / Twitter
- TypeProf for IDE: Enrich Development Experience without Annotations
- kateinoigakukunさんはTwitterを使っています 「TypeProf for IDE: Enrich Development Experience without Annotations #ruby #ruby3 https://t.co/MUZ9X6yip1 via @SlideShare」 / Twitter
- Miura HidekiさんはTwitterを使っています 「苦節5年、とうとうRubyでmallocを書くことが出来た。この労力で得られた教訓を一言で言うと、「適材適所」。Rubyは低レイヤのための言語ではないことが分かった https://t.co/W76azk2HdO」 / Twitter
- mruby-meta-circular/malloc.rb at master · miura1729/mruby-meta-circular
- Miura HidekiさんはTwitterを使っています 「とにかく型変換がめんどくさい。C言語ってよく出来た言語だなって思う」 / Twitter
- Re: Rails を主戦場としている自分が今後学ぶべき技術について
- MemoryView: Ruby 3.0 から導入される数値配列のライブラリ間共有のための仕組み - Speee DEVELOPER BLOG
- KibelaにRBS / Steepを導入しようと考えています | bitjourney Kibela
- TypeProfを使ってみました - あしたのチーム Tech Blog
- Use Macro all the time ~ マクロを使いまくろ ~ (日本語) - Speaker Deck
- Active Recordから考える次世代のRuby on Railsの方向性 / Directions for the next generation of Ruby on Rails: From the viewpoint of its Active Record - Speaker Deck
- Ruby 3 の型解析に向けた計画
- Rubyオブジェクトの未来をつくる「シェイプ」とは(翻訳)|TechRacho by BPS株式会社
.NET
F# SRTP
- SRTP入門
- 静的に解決される型パラメーター - F# | Microsoft Docs
- F# で型レベルプログラミング - SevenColoured
- F# で型クラス 2020 - SevenColoured
- F# SRTP of Type Classes from OO Perspective | F# Snippets
- F# を知ってほしい - Qiita
- F# の inline 関数中で Haskell のような多相数値リテラルを扱う - Qiita
- fslang-design/FS-1043-extension-members-for-operators-and-srtp-constraints.md at main · fsharp/fslang-design
- Inline Interfaces, i.e. simpler SRTP · Issue #641 · fsharp/fslang-suggestions
F#
- F# サブセットのセルフホスティングコンパイラを作ってみた - Qiita
- F#でベンチマークをとる - ベインのブログ
- [F#][小ネタ] レコードリテラルと型注釈 - ベインのブログ
- Writing high performance F# code
- F*コードをF#でパーズして遊ぶ | teqblog
- FStar Tips | teqblog
- F*でプログラムの正しさを証明する - Speaker Deck
- 判別共用体が共通フィールドを持てたら嬉しい - ベインのブログ
- 相互再帰関数の型推論で問題になったケース - ベインのブログ
- ミローネ言語コンパイラ・HSP3開発ツール群の振り返りと今後の構想 - ベインのブログ
infoQ
- Microsoftが .NET 5 をリリース
- C#9 and .NET 5 - ブックレビューとQ&A
- Azure Functionsの更新には、ランタイム外への.NETの移行が含まれる
- Microsoftが.NET 6 Preview 1をリリース
- Azure .NET SDK: Jeffrey Richter氏とのQ&A
- Microsoftによる.NET Conf: Focus on Windows
- C# 9がリリース - record型、init-onlyセッタ、パターンマッチングの拡張を提供
- Visual Basic 16.9が.NET 5に
- .NET 6:非同期の改善
- .NET 6 LINQの改良
- .NET 6では、WPFとWinFormsでBlazor WebViewコントロールが利用できるように
- Mercuryは、C#と同等の機能をVisual Basicで提供し、新たに複数のプラットフォームをサポート
- .NET 6: コレクションの改良
- PythonとNodeに挑戦するASP.NET Core 6
- EF CoreとASP.NET Core 6で非同期ストリーミング
- .NETの新パッケージ System.Threading.RateLimiting
- C# 9.0のTop-level statementsとその動作 | Yucchiy's Note
- 技術解説 – LINQ – kekyoの丼
- 技術解説 – 非同期 – kekyoの丼
- .NET非同期処理で例外を安全に対処する – kekyoの丼
- 技術解説 – 動的生成 – kekyoの丼
- 技術解説 – 低レベル – kekyoの丼
- async関数が例外を捕捉する挙動について - ベインのブログ
- .NET 6 の Scatter/Gather IO の効果を Visual Studio for Mac 2022 Preview 1 on M1 Mac で試してみましたが、まだ、闇が深かったです - 個人的なメモ
- Takashi KawasakiさんはTwitterを使っています 「FileStream面白いなぁと眺めてたけど、なんだこの謎仕様w 謎仕様だから変更されたんだろうけど、 bufferSize=1 って意味わからんな。 https://t.co/pMktQWNAH8 https://t.co/3YnEfT7bXf」 / Twitter
- File IO improvements in .NET 6 - .NET Blog
- b33fさんはTwitterを使っています 「.NET Instrumentation via MSIL bytecode injection - https://t.co/xslG6HZsdF」 / Twitter
- .:: Phrack Magazine ::.
TypeScript・JavaScript
OpenAPI
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「もうJavaScriptを使ってサーバーサイドをやる時代は終わったのか」 / Twitter
- Yoshiyuki NakamuraさんはTwitterを使っています 「@yasuo_ozu JavaScriptはどうだかわかりませんが、TypeScriptだとこういうのもあるみたいですね。私は一度も使ったことがないのでよくわかりませんが… frourio - Fast and type-safe full stack framework, for TypeScript https://t.co/EiGaOocoME」 / Twitter
- frouriojs/frourio: Fast and type-safe full stack framework, for TypeScript
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「@nakayoshix これはprotobufやOpenAPIに類する物のTS版ですかね...」 / Twitter
- Yoshiyuki NakamuraさんはTwitterを使っています 「@yasuo_ozu 型情報を上手く使って自動生成する系として考えるとそういうものなんですかね…? 私はまだよくわかってませんが、以前mizchiさんのこちらの記事を見て面白そうだな…と思ってただけです。 https://t.co/jxYpcDAioc」 / Twitter
- 2021年 は Fullstack Next.js 元年なので、有望な Next.js 系フレームワークを全部試した
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「@nakayoshix OpenAPIのTS向けバインディングっぽいですね。 使いたいですがサイズが大きすぎる...」 / Twitter
Deno
- Denoの分散ホスティング「Deno Deploy」ベータ2公開。FiIe System API追加、クラッシュレポートなど - Publickey
- Denoが暗号化、メッセージ、ネットワークなどのWeb APIサポートを拡張
- 「Deno 1.14」が公開 | OSDN Magazine
V8
- Understanding the ECMAScript spec, part 1 · V8
- Understanding the ECMAScript spec, part 2 · V8
- Understanding the ECMAScript spec, part 3 · V8
- Understanding the ECMAScript spec, part 4 · V8
フロントエンドBlog
- dtslintで型定義ファイルをテストする | フロントエンドBlog | ミツエーリンクス
- React Native + ExpoでWindowsからHello World | フロントエンドBlog | ミツエーリンクス
- Vue Test Utilsで始めるスナップショットテスト | フロントエンドBlog | ミツエーリンクス
- Web Componentsの実用に向けて | フロントエンドBlog | ミツエーリンクス
- aria-current属性と一般兄弟結合子で作るステップUI | フロントエンドBlog | ミツエーリンクス
- サイトデザインの品質を上げる3つのセルフチェックリスト | フロントエンドBlog | ミツエーリンクス
ベインのブログ
- Mapをレコード代わりにするための型付け - ベインのブログ
- 関数を渡すvs.エフェクトを返す - ベインのブログ
infoQ
- 新しいテンプレートDSLのTempuraは解析の速度とサイズにフォーカスする
- Erlangにインスパイアされた言語GleamがJavaScriptにコンパイルされるようになった
- ReScript - 完全な型指定を備えたJavaScript代替言語
- RxJSの状態 - NgconfでのBen Lesh氏の講演
- Next.JS 10は、自動画像最適化、国際化されたルーティング、およびWebバイタル分析をもたらす
- TypeScript4.1にテンプレートリテラルタイプが追加された
- 新しいDenoモジュールによるVueアプリケーションのビルドとコンパイル
- Denoは、自己完結型のスタンドアロンバイナリにコンパイルできるようになった
- Aleph.jsを使用したDenoのサーバレンダリングWebアプリケーション
- Vue 3は大規模な使用に取り組むための新しいAPIと共にリリースされた
- Redwood - Ruby on RailsのエクスペリエンスをJavaScriptで実現
- Vue3のネイティブCSS変数テンプレートとの統合検証
- Deno 1.5、RustベースのJavaScriptコンパイラによりビルド性能が3倍向上
- 非同期コードのテスト - RxJS Live London
- 最新のJavaScriptによるパフォーマンスの向上
- 新しくリファクタリングされたVue.jsのビルダーVite 2.0は、依然としてスピードにフォーカスしており、フレームワークに依存しないようになった
- Typescript 4.2 リリース。型と開発者エクスペリエンスが向上
- Vuenion 2021の今 - Vue Amsterdam 2021でのEvan You氏の講演
- React Native 0.64でHermes JavaScriptエンジンがiOSで利用可能に
- SentryはフロントエンドをTypescriptに移行 - 教訓
- BlockLike.jsがMIT ScratchからJavaScriptプログラミングへの移行を容易にすることを目指す
- TypeScript 4.3がプロパティの書き込みタイプを改善
- V8は、パフォーマンスを向上させるために最適化しないコンパイラステージを導入
- Parcel 2: Rustベースの10倍高速なJavaScriptコンパイラ、モジュラー構成、差分バンドリング
Zenn
- TypeScript 4.1による型レベルパーサコンビネーター
- TypeScriptで型安全性を破壊する方法をまとめたリポジトリを作った
- unsafety-zoo.ts/src at master · todesking/unsafety-zoo.ts
- TypeScriptにはanyが4種類、undefinedが3種類、……
- ドッグさんはTwitterを使っています 「なるほど型推論が2段階になっていて,上向きに型情報を収集しといてから下向きに推論していく時に単一化するのか | 'TypeScriptにはanyが4種類、undefinedが3種類、……' https://t.co/nByMZ4FhhJ」 / Twitter
- ドッグさんはTwitterを使っています 「ループ時のフロー型の推論で繰り返すのもなるほどと思ったけど,これ収束したかの条件どうなんだろう.silentNeverType が現れたかでチェックしてるのかな」 / Twitter
- そろそろ技術ブログで setCount(count + 1) と書くのはやめませんか
- TypeScript で T 型と {...} の併用で型チェックが機能しなくなる罠
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「"「必須だけど絶対に値が存在しないキー」を作る" なるほどー! / 他6件のコメント https://t.co/RAzZm2lvNw “TypeScript で幽霊型っぽいものをつくる” https://t.co/uY8zcGdfO1」 / Twitter
- TypeScript で幽霊型っぽいものをつくる
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「幽霊型、とはちょっと違うけど、使用しない型変数を使うことで、「この型はTであってほしいけど事前にチェックしろよ」みたいな意図を示す型がほしくなったのでやってみようと思う。 type Maybe<T> = unknown; みたいな」 / Twitter
- GitHub上のDenoモジュールの配信システムを作った
Qiita
NestJS
- NestJSのススメ ~Expressを超えてゆけ~ - Qiita
- Next.js + NestJS + GraphQLで変化に追従するフロントエンドへ 〜 ショッピングクーポンの事例紹介 - Yahoo! JAPAN Tech Blog
- NestJS入門~NestJSの基本構造を理解しよう~
- NestJS触ってみたらいい感じだった! | cloud.config Tech Blog
- TypeScript のサーバサイドフレームワーク – NestJS と Marble.js で書き比べ | DevelopersIO
- NestJS - A progressive Node.js framework
- Documentation | NestJS - A progressive Node.js framework
- nestjs/nest: A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) 🚀
- nestjs
- TypeScriptの型レベル連結リスト活用術:型を変えられるコンテナを作る - Qiita
- Deno触ってみた - Qiita
- Denoの登場でNode.jsの時代は終わるのか? - Qiita
- 7万行のJavascriptコードをTypescriptに移行した話 - Qiita
- TypeScript4.1から正式に登場したテンプレートリテラル型について - Qiita
- TypeScriptで、class以外の型にinterfaceをimplementsする(型クラスとインスタンスのデザインパターン) - Qiita
- JavaScriptのコメントは4種類ある - Qiita
- 「Denoにはnpmがない」は部分的に正しい - Qiita
- 10 年前に JavaScript で Flash Player を開発し買収された話
- 大統一 Node ツールチェイン Rome の野望 現状の実装 - mizdev
- 「Node.js 16」が公開 ~Apple Silicon向けのプリビルドバイナリを初めて提供 - 窓の杜
- Chromeバージョン91は最大23%の高速化。JavaScriptエンジンを改良 - PC Watch
- Chromium Blog: Chrome is up to 23% faster in M91 and saves over 17 years of CPU time daily
- ウェブエンドエンジニアさんはTwitterを使っています 「TypeScript はなんか綺麗な一貫した世界観があるのではなく、現場的なユースケースに対応可能な異常な型を作れたり異常な脱出ハッチの組み合わせで動くので継続的に見てる人にしか存在意義がわからないハックやオプションがいっぱいあって教えづらい」 / Twitter
- JavaScriptはなぜシングルスレッドでも非同期処理ができるのか/Why Can JavaSctipt Invoke Asynchronous in Single Thread? - Speaker Deck
- がくぞさんはTwitterを使っています 「Utility TypesはじめType Manipulationは正しく型レベルプログラミングなので、アドホックに使うとすぐにHowの詳細に入り込んでしまい、その型が何を表してるのかを端的に表現されなくなってしまうんですよね。 なので適宜type aliasを使ったり型名から構造が推測可能な状態にしておきたいですねー」 / Twitter
- A-MikaboshiさんはTwitterを使っています 「出来るTypescriptエンジニアほどUtilityTypeを多用すると思うけど、でも、あれを使うとインテリセンスを使わないと、その型に何を入れれば分からない...っていう本末転倒な状況になるので使いすぎはアンチパターンだと思う。Twitter内のTypescripter諸君はどう思う?」 / Twitter
- A-MikaboshiさんはTwitterを使っています 「私は個人的なルールとしてUtilityTypeの使用は一層にとどめるようにしている。3〜4層に渡るUtilityTypeの使用は人の認知能力を超えると思う。」 / Twitter
- A-MikaboshiさんはTwitterを使っています 「Javascriptに@typesを追加しているライブラリが使いにくいなって感じるのはUtilityTypesを多用しているせいだと思う。」 / Twitter
- 型のある言語は一度は経験するべきだと思った出来事が起きた - やわらかテック
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「この問題は同期的なAPIのpostMesssageみたいなのがWorkerだけに認められればいい話なんですかね / 他14件のコメント https://t.co/3P9ngNopkV “今Partytownがヤバい。JavaScript Sandboxの未来はどっちだ?” https://t.co/tSZ1qmVHWi」 / Twitter
- 今Partytownがヤバい。JavaScript Sandboxの未来はどっちだ?
GraalVM・Java・Kotlin・Scala
赤帽エンジニアブログ
- Red HatはどのようにしてOpenJDKを64ビットのArmに移植したのか:コミュニティの歴史 - 赤帽エンジニアブログ
- Javaの外からJavaにチェックポイントを設ける - 赤帽エンジニアブログ
窓の杜
- Oracle、「Java 14」を発表 ~Recordクラスがプレビュー導入、switch式が正式機能に - 窓の杜
- Java言語の誕生から25周年 ~Oracle、「Java 15」を発表 - 窓の杜
- Oracle、「Java 16」を発表 ~パターンマッチングinstanceofとrecord型が正式機能に - 窓の杜
- Java、MySQLなどに390件の新しいセキュリティパッチ ~Oracle、2021年4月定例更新を実施 - 窓の杜
- 「Microsoft Build of OpenJDK」が一般公開 ~無償で「Java」の長期サポートを提供 - 窓の杜
- Oracle、「Java 17」を発表 ~3年ぶりの長期サポートリリース(LTS) - 窓の杜
- Oracle、「JDK」の長期サポートリリース(LTS)3年→2年間隔へ短縮する提案 - 窓の杜
Publickey
- オラクル、Oracle JDKを再び無料提供へ、本番環境でも利用可。昨日リリースのJava 17から - Publickey
- 3年ぶりの長期サポート版となる「Java 17」正式版がリリース。M1 Macのサポート、Sealed Classの追加など - Publickey
- マイクロソフト製Java 11ディストリビューション「Microsoft Build of OpenJDK for Java 11 LTS」正式リリース。無償長期サポート、コンテナイメージの配布も - Publickey
- AWS LambdaのJava 8ランタイムがAmazon Correttoへ。OpenJDKから移行するとAWSが発表 - Publickey
- Javaの長期サポート(LTS)版、次回は2年後に登場の見通し。オラクルがLTSのサイクルを3年から2年に変更提案 - Publickey
- AWS、Java 17対応の無料Javaディストリビューション「Amazon Corretto 17」リリース。ただし長期サポート期間は未定 - Publickey
infoQ
- Kotlinのコルーチンを実装面から検証する
- Java 注目の機能: パターンマッチング
- GraalVM 21.0、Javaで記述されたJVMを導入
- OracleデータベースのGraalVM
- これまでのJava 16と17についてわかっていること
- AppStoreのJavaFXとUIフレームワークの改善
- Java 16がリリースされた
- アプレットの終焉
- Spring BootアプリをSpring Native BetaでGraalVMに変換
- Kotlin 1.5への道
- Kiは、新しい、より柔軟なKotlinインタラクティブシェルである
- MicrosoftがMicrosoft Build of OpenJDKを発表
- JDK Mission Control 8がリリース
- OpenJDKはSecurityManagerの非推奨を提案
- コンパイルとドキュメントの出会い
- Kotlin 1.5がJava 15機能と新しいJVMコンパイラをサポート
- GraalVM 21.1がJDK 16をサポート
- Quarkus 2.0への道: 継続的テスト
- Scala 3への道
- MicroProfile4.0の新機能
- Java 17はグラス・ハーフ・フルか
- GraalVM 21.2でネイティブコンポーネントが改善
- 次期LTSリリースJava 17の提供が開始
Twitter
- Takahiro YAMADAさんはTwitterを使っています 「前々から予兆はあったけど、Java 18からUTF-8がデフォルトになる見込み。 特に日本語Windows環境では影響あるだろうから要確認ですな。」 / Twitter
- OpenJDKさんはTwitterを使っています 「Proposed to target JDK 18: JEP 400: UTF-8 by Default: https://t.co/6lgR4mXcpH #jdk18 #openjdk #java」 / Twitter
- JEP 400: UTF-8 by Default
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「JVMスレッドプールの使い方ガイドライン: - CPU-boundの計算のときは、コア数と同じだけの固定プールを使え。 - ブロッキングIOに対しては、処理ごとに新しいスレッドを作成できる可変プールを使え。ただし慎重に! - 非同期IOポーリング用に1つの高優先度スレッドを使え。 https://t.co/EU26OFO747」 / Twitter
- thread-pools.md
- Takahiro YAMADAさんはTwitterを使っています 「誤解を招きそうだったので更に補足すると、あくまでファイル入出力に関する話です。 https://t.co/6AWv3bJgkH それも最近(Java 7のNIO.2以降かな)ではUTF-8がデフォルトのAPIも増えてきているため、現状(Java 17まで)は統一が取れてない感じもありましたね。」 / Twitter
- LTSリリースの「Java 17」が公開 | OSDN Magazine
- ZIO - Scalaで型安全に合成可能な非同期処理を実現する - Adwaysエンジニアブログ
- Java 2021 - Speaker Deck
- Scala3の新機能紹介 - Adwaysエンジニアブログ
Haskell
制約
- びしょ〜じょさんはTwitterを使っています 「Haskell にて、"ある型クラスを実装していない"という型クラスの制約って書けるんか?」 / Twitter
- mod_poppoさんはTwitterを使っています 「Haskellはorphan instanceを許しているので「型クラスのインスタンスではない」みたいなやつは原則として書けない、と思っているけどformalな説明は自分の手に余る」 / Twitter
- mod_poppoさんはTwitterを使っています 「前にHaskell-jp slackで見かけた、インスタンスの有無によって分岐できるやつ。 https://t.co/1EAUHMzPGC overlapping instanceを利用、手動でインスタンスの定義(あるいはTH)が必要。」 / Twitter
- mikeizbicki/ifcxt: constraint level if statements
- mod_poppoさんはTwitterを使っています 「型クラスではないけど、「二つの型が異なる」みたいな制約はclosed type familyを使うと書ける。」 / Twitter
Witherable
- Koji MiyazatoさんはTwitterを使っています 「Witherable( https://t.co/ktX6ESeCuG )は何者なのか?TraversableやFilterableとの関係は?連投します。」 / Twitter
- Witherable
- Koji MiyazatoさんはTwitterを使っています 「最近のマイブームであるところのストリング図を使います。私のブログで一度は説明をしましたので、あと私のなんかよりチャンとしている資料へのリンクもあるのでご参照ください。 https://t.co/3oIShMAkdo」 / Twitter
- 市川 真一さんはTwitterを使っています 「@viercc 404 になり、閲覧できないです」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「@tenpoku1000 申し訳ありません、ご指摘ありがとうございます。コピペミスしたみたいです。 https://t.co/qaZmRm6eJJ」 / Twitter
- Too lazy to evaluate - ストリング図でMonad再入門(1)
- Koji MiyazatoさんはTwitterを使っています 「まず、Haskellerはご存知でしょうTraversableの絵を描きます。都合上traverseではなくsequenceAで定義して、"sequenceA"の代わりにギリシャ文字"δ"を書きます。 https://t.co/Iga7cTRO1P」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「関手TのsequenceAは、任意のアプリカティブ関手FとTの合成T(F a)をとって、FとTを入れ替える演算ですね! その下の3つのTraversable則はなんとなくそれっぽさを感じてください。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「型クラスFilterableは、リストやMapに対して定義されていたfilter,mapMaybe,catMaybesを抽象化する型クラスです。 https://t.co/GDVKLPE2wW」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「Identity則は「各要素xをJust xに置換え(fmap Just as :: T (Maybe a))てからcatMaybesしたら元に戻る」 Composition則は「T (Maybe (Maybe a))に対して2回catMaybesするのと、Maybeモナドのjoinを各要素に適用してから1回catMaybesするのは同じ」」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「とまぁ、リストのcatMaybes :: [Maybe a] -> [a]を考えたら妥当な感じの法則です。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「また、Maybe自体もFilterableで、catMaybesはMaybeモナドのjoinと一致します。 https://t.co/uoGRUSLNVi」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「しかし!リストやMapのcatMaybesっぽくないものも、合法的なFilterableになれてしまいます。 https://t.co/yvH6sZt47S」 / Twitter
- StrangeFilterable.hs
- Koji MiyazatoさんはTwitterを使っています 「FilterableやcatMaybesという名前に反して、「連帯責任で複数の要素が取り除かれる」「もとは1つの要素を複数回使う」ことはちょっと奇妙ですね。 しかし、「要素の出現回数」といった概念をうまく法則化するのは、Filterableのメソッドだけでは記述が難しそうです。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「そこでTraversableの登場です。Traversable(とその親クラスのFoldable)は、「要素が同じように出現する」という概念を扱えます。例えば、length x = length y や for_ x (...) = for_ y (...)です。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「FilterableかつTraversableな型Tについて、"catMaybesが要素を変にいじらない"という要請を法則にしてみます。 いい名前なのか自信が無いのですが、この法則には"Distributivity"という名前を付けることにします。 https://t.co/WNMkwSej9c」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「Distributivityの意味を言葉で言うなら以下のようになります。 T (Maybe (F a))に対して、 1⃣「catMaybesでMaybeを除いてからsequenceAでアプリカティブFの作用を連結する」のと、 2⃣「sequenceAを2回使ってF (T (Maybe a))にしてからcatMaybesでMaybeを除く」のは等しい。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「Witherableとは「Filterableのように要素を取り除く操作」と「Traversableのように各要素に副作用のあるmapをする操作」を組み合わせた型クラスです。 そして、Witherable則は ・Filterable則 ・Traversable則 ・Distributivity のすべてを合わせたものと✨同値✨です。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「catMaybes、sequenceAそれぞれの性質とDistributivityをわざわざ全部記述するかわりに、WitherableのwitherメソッドとWitherable則だけで完結させられます。」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「昨晩のツイートはその証明の図だけバババっと貼り付けたものでした。(連投終) https://t.co/1xcBRRnbXp」 / Twitter
blog
- IO モナドと副作用 - Haskell-jp
- GHCに初めてコントリビュートした/最近のGHC動向 | 雑記帳
- Android むけ Haskell コンパイラをリリースしました!
- HaskellのIOは他の言語でいうところの関数オブジェクトとよく似てるよ、という話 :: Igreque -> Info
- data / newtype / type の使い方 - Haskell-jp
- レンズの圏論的考察 — Avendia
- Avendia
- とほほのHaskell入門 - とほほのWWW入門
- Haskell/Denotational semantics - Wikibooks
- エヌユルさんはTwitterを使っています 「これ早く使いたいし、Haskellのフィールドセレクタを全部自動生成すると言うのはフィールドを遅延評価にするのと同じぐらいの初期設計の誤りだったんじゃないかと思い始めた / “新しいGHC拡張、NoFieldSelectorsについて - モナドとわたしとコモナド” https://t.co/xguPEGOYqw」 / Twitter
- 新しいGHC拡張、NoFieldSelectorsについて - モナドとわたしとコモナド
- TaPLの3章を読み,4章をHaskellで - Explore cs in depth!
- System F をHaskellとPythonで実装した - yigarashi のブログ
- 自動printfデバッグ - モナドとわたしとコモナド
infoQ
- モナドを理解する - 迷える者への手引き
- 新しいHaskellベースのWeb App Specification Languageがアルファ版でリリースされた
- Thrift for HaskellはRPCコードからバグを排除することを目的としている
Zenn
- おすすめHaskellプロジェクト作成方法(ほぼ)2021年版
- HaskellでのTDDを楽しくするライブラリ methodを作りました。
- Type level mapを使ったpreload風関連リソースの取り回し。Indexed monad添え
- lotzさんはTwitterを使っています 「Indexed Monad 氏、最近では Parameterised Monad と呼ばれてるらしい。Parameterised Monad から Graded Monad を作るこの関係式は面白くて、実際のデータ型で便利に使えないかは気になってる https://t.co/AgDqPET1iN https://t.co/OzPALcLhJ2」 / Twitter
- [2001.10274] Unifying graded and parameterised monads
- lotzさんはTwitterを使っています 「@igrep どっちもモナドにパラメータがくっついたやつですよねw Graded モナドはパラメータにモノイダル圏が必要だったり、Indexed モナドはパラメータが2つ必要だったり微妙な違いがあるんですが、元のツイートに張った論文はこの2つの違いをより抽象的なモナドで吸収して統一しようというものなので(文字数 https://t.co/47rWuhw6k4」 / Twitter
- Haskellの最近の乱数生成事情について
- Haskellの森
- 「Haskellのモナド完全に理解した」試験問題
- Levelsモナドを使った幅優先探索の仕組み
Qiita
- Windows環境でのStackのアンインストール - Qiita
- Cats Effect の7つの型クラス - Qiita
- Freer Effectsが、だいたいわかった: 12 OpenUnionを型によって安全にする - Qiita
- モナド則がちょっと分かった? - Qiita
- Haskellの例外処理事情 - Qiita
- LLVM の Kaleidoscope を育てながら作る - Qiita
- GHCの型レベル自然数を理解する - Qiita
- 10年間使ってみて見えたHaskellの闇と光 - Qiita
- コモナドを使った抽象化の威力をライフゲームで試してみた - Qiita
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「@uint256_t わりと汎用的にやれています。内部で Python を Haskell に変換するので for 文がすべて foldl に変換され、それとは別で線形になってる lambda 項をすべて行列に変換し、そして foldl/matap -> matap/matpow のような変換規則で畳んでいます」 / Twitter
- mod_poppoさんはTwitterを使っています 「ぱっと見で変換のアルゴリズムを推測できないので魔法に見える(すごい)」 / Twitter
- mod_poppoさんはTwitterを使っています 「漸化式を組み立てて線形だったら行列の累乗に変換、みたいなやつかな」 / Twitter
- mod_poppoさんはTwitterを使っています 「Haskellは古いコードが動かなくなりやすくて申し訳ないという気持ち」 / Twitter
- mod_poppoさんはTwitterを使っています 「Haskell、普通だったら新しい言語を設計するタイミングでしか入れないような新機能・変更を言語の看板を変えずに実装していってるような感じなので永久に安定しない」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そういえばHaskellはstack(と、stackに影響されたcabal)のおかげでファイルが1個しかないようなスクリプトでもちゃんとパッケージやGHCのバージョンを指定できるしいいよな。」 / Twitter
- エヌユルさんはTwitterを使っています 「純粋関数で例外送出やキャッチってなんでやったらダメなんだろう Eitherとかを使うと実質例外じゃない? まあ純粋関数なら型で表せってのは正しい気もするが、別に例外があっても良い気がする」 / Twitter
- エヌユルさんはTwitterを使っています 「純粋関数と言うより遅延評価が例外という仕組みと相性が悪いのが良くないのかな 評価しないと例外は送出されないからキャッチを書いても無駄になることがある」 / Twitter
- マルチコア時代の最新並列並行技術 Haskellから見える世界 - 141126_2.pdf
Erlang・Elixir
Qiita
- Elixirで速度を追い求めるときのプログラミングスタイル PartⅡ,Pelemayの近況もあるよ - Qiita
- 大学でElixirを教えた話 - Qiita
- Elixir / Pelemay 研究の背景と意義 - Qiita
- ZEAM開発ログ: Elixir マクロ + LLVM で超並列プログラミング処理系を研究開発中 - Qiita
- ZEAM開発ログ v.0.2.1 Node.js と同じ原理の軽量コールバックスレッドを Elixir に実装してみた (実装編) - Qiita
- Elixirで速度を追い求めるときのプログラミングスタイル - Qiita
- なぜ僕の中でElixirが一番であり続けるのか - Qiita
- Elixir Wizards Dojo について - Qiita
- 忙しい研究者のためのテストコードとドキュメントの書き方、Elixir編 - Qiita
- Enum.mapと再帰スタイルの比較、ふたたび(末尾再帰版) - Qiita
- NervesJP #14 新年LT回 で話したこと (Elixir) - Qiita
- Elixr:ラムダ計算インタプリタ(2)ーCatch/Throwの使い方ー - Qiita
- [書評] プログラミングElixir第2版のインプレッションとアップデート - Qiita
- リアルタイムウェブな観点からElixir / Phoenix について - Qiita
- Erlang OTP 24.0.1 と Elixir 1.12.0 を asdf でインストールする - Qiita
- WSL2でDB付きElixir/Phoenix/Nxを使う最短手順 - Qiita
- NxとNIFの間で相互通信するには - Qiita
- Erlangのとても困ったところ:単一代入の思わぬ弊害 - 檜山正幸のキマイラ飼育記 (はてなBlog)
- Elixir で non-programmer 向けに DSL を作り提供する - c4se記:さっちゃんですよ☆
- 数学全然分からないけどElixirでFunctorを作ってみる - やわらかテック
- 【感想・まとめ】「関数型プログラミングなんもわからん。を考えよう」に参加してきました。 - やわらかテック
- ElixirでListMonadを作ってみる - やわらかテック
- 数学全然わからないけどElixirでFunctorを作ってみる - やわらかテック
- 数学全然わからないけどElixirでMonadを作ってみる - やわらかテック
- 関数型言語ElixirのIoTシステム開発への展開
Elm
- Elm で作る TaPL のラムダ計算(その1)
OCaml・ML
SML
- SMLでバッククォート記法を実現する | κeenのHappy Hacκing Blog
- SML#に学ぶコンパイラ言語におけるREPLの実装方法 | κeenのHappy Hacκing Blog
- SMLのDerived Forms | κeenのHappy Hacκing Blog
- SMLの処理系組み込み例外ってなーんだ | κeenのHappy Hacκing Blog
- SMLの処理系組み込み例外ってなーんだ | κeenのHappy Hacκing Blog
- 1ML - コア言語とモジュール言語の統合 | κeenのHappy Hacκing Blog
- SML#のexistential typeで遊ぶ | κeenのHappy Hacκing Blog
OCaml
- OCamlでUninhabited typeを書くいくつかの方法 - Qiita
- κeenさんはTwitterを使っています 「この命名方法、コンパイラ書いてるときの「関数の名前」という概念どうしようってときに参考になる OCaml Upcoming Changes 2020: __FUNCTION__ - Qiita https://t.co/2NgaAGnvXF」 / Twitter
- OCaml Upcoming Changes 2020: __FUNCTION__ - Qiita
- κeenさんはTwitterを使っています 「SMLだと関数を束縛するときに複数の文法がある。 fun name … = … val rec name = fn … => … val name = fn … => … val name = let … in fn … => … end このうちどこまでを「名前のあるfn」として扱っていいか迷ってた。」 / Twitter
- 構造的部分型と有界量化に関する型推論 - Qiita
- subtyping.pdf
- 「構造的部分型と有界量化に関する型推論」について
- 再帰的多相バリアントそぞろ歩き - Qiita
- OCamlでもLensしたい2020 - Qiita
- 続・OCamlでもLensしたい2020 - Qiita
- 型付きPPXに関するメモ - toward the typed ppx - Qiita
- OCamlオブジェクトの結合を型付きPPXで - Qiita
- Keigo ImaiさんはTwitterを使っています 「OCaml PPX calling another ocaml compiler at the compile time 👀 https://t.co/10F56FD4oa」 / Twitter
- thierry-martinez/metapp: Meta-preprocessor for OCaml
- でこれきさんはTwitterを使っています 「OCamlだと型変数は構文解析レベルで処理しているので ' a のように ' のあとに空白を入れられるのを思い出していた(さらに var' が有効な識別子なので 'var' もquote + 識別子で型変数扱いになるとかも」 / Twitter
- でこれきさんはTwitterを使っています 「実装としてはこのへん https://t.co/ubrGBxnBSz https://t.co/B0X6sUhI15」 / Twitter
- ocaml/parser.mly at 4.13 · ocaml/ocaml
- でこれきさんはTwitterを使っています 「合わせ技で ' a' とか ' a'b とか書くと2文字目がクォートな型変数も書ける(が、過去にpprintastでうまく処理されなかったりもした Fix printing of type variables with a quote on 2nd character by alainfrisch · Pull Request #2130 · ocaml/ocaml https://t.co/A1nWMmR9Zr」 / Twitter
- でこれきさんはTwitterを使っています 「文字リテラルは字句解析で処理する https://t.co/ZAEYSdK4QJ」 / Twitter
雑記帳
- 自作SML処理系進捗:Hello world | 雑記帳
- 自作SML処理系で 1 + 2 がコンパイルできた | 雑記帳
- my-sml-compiler.pdf - Google ドライブ
- minoki/DamepoML: A non-working implementation of Standard ML
- 自作SML処理系進捗:Hello Lua! | 雑記帳
- LunarML進捗:signatureの実装に向けて | 雑記帳
- Standard ML雑学 | 雑記帳
- LunarMLの進捗と妄想 | 雑記帳
- Real World OCaml が出ました - camlspotter’s blog
- min-caml を Mac で動かす
- Leaving OCaml
- OCaml で書かれた Python のサブセット実装 ocaml-minipy のソースを読む - DEV
- ニューラル株式会社|ハイブリッドOS|File System|ARM|Android|Java|制御システム|オープンシステム
- mod_poppoさんはTwitterを使っています 「OCamlとStandard MLの比較がまとまってるページを見つけた(どのくらいup-to-dateかはともかく) / Comparing Objective Caml and Standard ML https://t.co/LpsYw1HIPj」 / Twitter
- Comparing Objective Caml and Standard ML
Egison
- プログラミング言語Egisonの型システムを設計するインターンをした - a_kawashiroのブログ
- Haskellライクな構文をEgisonに実装している話 - momologue
Coq・Isabelle
- Isabelle ゆるリファレンス - 若くない何かの悩み
- 効率的な正規表現エンジンを Coq で検証する - fetburner.core
- ML のサブセットの型推論器を Coq で検証する - fetburner.core
- fetburner/type-infer: A Formal Verification of Algorithm W
- let多相を扱える型推論器をCoqで検証する - fetburner.core
- 型推論の健全性の証明 - fetburner.core
- Coqによる型推論器の形式的検証 - fetburner.core
- ダイクストラ法の一般化と,その正当性の Coq を用いた検証 - fetburner.core
Lisp
- Lisp系自作言語のx86_64コンパイラを作り始めたときの話 - Qiita
- 不変性を仮定した、環境をキャプチャしないクロージャ生成アルゴリズムとその問題 - Qiita
- [AAAI16実況報告] MIT/CSAIL はCommon Lispを水中探査ロボットAIに実運用している - Qiita
- elispのシェバング - Qiita
- [Home] Emacs Scripts
- JSONでLISPの超循環評価器を定義してみた - Qiita
- zickさんはTwitterを使っています 「Lispのことを関数型言語と言うと、必要以上に色々な人達(Lispは手続き型と信じて疑わない人、LispとSchemeは違う言語と主張する人、なんでもLispとひとくくりにするなと言う人、型付き関数型言語原理主義者、プログラミング言語オタク)に怒られるので注意した方がいいです。」 / Twitter
- ANDO YasushiさんはTwitterを使っています 「SchemeをWASMにコンパイル https://t.co/eKVExOfvK2」 / Twitter
- 22-S.pdf
- Nobuhiko FUNATOさんはTwitterを使っています 「これもたぶんあまり知られてないけど、cmucl compiler由来のsbcl(Steele Bank Common Lisp)、untypedな筈が、型推論が結構優秀で、しょっちゅうdead code eliminationしたぞとか怒られます。(もちろん言語仕様上ML族の様に完全性は追求できないが) ちなみにREPLからの入力もnative compileされます。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「call/ccをどうやるんだろう?って思ったらまさにそう言う論文だった。やっぱりCPS変換+ヒープに環境をとる か。WebAssemblyはいろいろ制限があるようだ。」 / Twitter
- t-sin🥳さんはTwitterを使っています 「そうか。Open Implementationな感じのevalって、eval関数が再帰的に式を辿って評価してくんじゃなくて、式自身(?)のevalメソッドを呼ぶイメージか。」 / Twitter
- t-sin🥳さんはTwitterを使っています 「式自身つまりリストのevalメソッドを呼ぶと、それはおそらくcar部のシンボルのfuncall的なメソッドをcdr部を引数として呼び、みたいな? そしてMOPのほうがぼくにとって未知なので、MOPによりどうなるかはまだ未知。」 / Twitter
- LISPの基本データ構造(コンスセル,連結リスト,連想リスト,属性リスト)
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「#Clojure の連結リストは配列構造じゃないよ,という御指摘を踏まえて大幅改訂.しかしその結果Clojureが消えてなくなったという.比較対象としては #Python の方がわかりやすいんだもん…. 連結リストのみのLISP処理系実装について考察した|TAKIZAWA Yozo https://t.co/U6dYaLU9n8 #zenn」 / Twitter
- Schemeでdefineを使わずに超循環評価器を実装してみた
- 連結リストのみのLISP処理系実装について考察した
- Shiro KawaiさんはTwitterを使っています 「@ytaki0801 メモリが希少だった時代には、連続してアロケートされるペアを配列にパックする(CDR coding)Lisp処理系もあったと聞きます(使ったことはないです)。パッキング/アンパッキングは暗黙に行われるのでユーザからは見えません。アクセスローカリティが性能に重要になった現代で見直す価値はあるかも?」 / Twitter
- 滝沢陽三 / TAKIZAWA YozoさんはTwitterを使っています 「@anohana 情報ありがとうございます.確かにそうかもしれませんね.ただ,今はLISPも普通にベクタとかありますし,コンスセルを無理に効率化しなくてもLISPコード操作だけなら別にいいかな,などとも思ったりはします(^^;).効率化することでコンスセル一辺倒(?)に戻るのもアリかもしれませんが….」 / Twitter
- シェルスクリプトでLISP処理系を作ってみた
- LispKit Lisp処理系の実装 序 - Arantium Maestum
- LispKit Lisp処理系の実装 1:パーサ - Arantium Maestum
- LispKit Lisp処理系の実装 2:インタプリタ〜変数から算術演算子まで - Arantium Maestum
- LispKit Lisp処理系の実装 3:インタプリタ〜条件分岐から関数適用まで - Arantium Maestum
- LispKit Lisp処理系の実装 4:SECD抽象機械のメモリとレジスタ - Arantium Maestum
- LispKit Lisp処理系の実装 5:SECD抽象機械の状態遷移〜リスト操作と比較・算術演算 - Arantium Maestum
- LispKit Lisp処理系の実装 6:SECD抽象機械の状態遷移〜条件分岐、関数関連など - Arantium Maestum
- 眼力 玉壱號さんはTwitterを使っています 「で、だったら何で第一引数を特別扱いするのか?の果てに #CLOS が居る」 / Twitter
- mattnさんはTwitterを使っています 「@dankogai 呼び出しが冗長になってメンバに持つ意味が無くなりませんか? foo->do_something(foo, 1, 2, 3); であれば最初から do_something(foo, 1, 2, 3); でいいので。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「CLOS、なんでこの継承ポリシーを特別視するのか、みたいな感じで大体カスタマイズできるから強い」 / Twitter
- κeenさんはTwitterを使っています 「syntax-rulesは表現力が高いまま、簡単なケースを簡単に書けて、衛生性を担保しているという面では便利。 #func_party」 / Twitter
- cisco/ChezScheme: Chez Scheme
- Island Life - 無限cxr
- おもしろマクロ with-c-syntax の最近の進捗 - Google スライド
Prolog
- ロジバンでPrologプログラミングしてみた! - Qiita
- Prolog で簡単に言語を作ってみる方法 - Qiita
- Prologによる多相レコード計算の実装(2) - Qiita
- アフィン型をPrologで実装してみた - Qiita
- 世界で一番ピュアな論理型プログラミング言語Hilbert(ヒルベルト)をRubyで作った. - Qiita
- OCamlでPrologを作っている話 - Qiita
Go
批判
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「ポインタやinterface{}やgoto等、Goの言語仕様の根底にありかつ多くの批判を受けている部分はどうしようもないな... (まあ言語ごとに得手不得手があるので仕方ない、苦手分野があることは認めるべき)」 / Twitter
- medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「Goへのヘイトに対する擁護、批判的思考ができてなくて現状追認してるだけの現実逃避しかねぇな 「いや、これでいいんだ!」って言ってるだけだから信者なんだよ。受け止めてライブラリを作りなさい。 https://t.co/b0OnJVZoMv」 / Twitter
- Goへのヘイトに対する考え方
- medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「大抵の高級言語は隠蔽してる参照とポインタをユーザーに見せることが、見せないことに対してどうしてメリットがあるんですか?」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@dumblepytech1 アドレスの概念を学べる... (冗談です)」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@dumblepytech1 ああまあ参照よりわかりやすいというのはありますよね。参照先を書き換えるのか、どこを参照しているかを変えるのかが明確に区別されるので」 / Twitter
- medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「@yasuo_ozu JSとかPythonを書いててそこらへん明確に区別したいことってあります?」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@dumblepytech1 プログラミングに慣れてる人なら大丈夫なんですが初心者が躓くポイントではありますね」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「@dumblepytech1 関数にオブジェクトを渡すとき、その中身を書き換えられるようにしたい場合とか。(アンチパターンみが深い)」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「うーん、Go言語にnilとgotoとinterface{}がなければな...」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「大抵のユースケースで ポインタ <<<<< Option なんですよね」 / Twitter
- yasuo_ozu@量子コンピュータ相談窓口さんはTwitterを使っています 「まさにこれ、グリーンスレッドの存在が足手まといにしかならない局面ではGoじゃなくてもいいってなる(まあそこまでGoが悪いということもないと思うのですが)(Cに較べれば良いと思う)」 / Twitter
- medy.nim🐍👑@駆け出しクリプトエンジニアさんはTwitterを使っています 「Webサーバーとかコンテナエンジンとかマイクロサービス作ろうってなったら俺でもじゃぁGoでやるか!ってなるけど スタートアップがモノリシックな業務アプリケーションを作るのにGoを使うわって言われるとえぇ…となってしまいますね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Go言語を嫌う6個の理由 - さめたコーヒー https://t.co/s8AqEBHV0m 文字列とnilの件、仮にString(ポインタではなく)でnilが受け取れるようにしたとして、String実体を期待した所にnilがやってきた場合どういう挙動を望んでいるのだろうか?」 / Twitter
- Go言語を嫌う6個の理由 - さめたコーヒー
- Miura HidekiさんはTwitterを使っています 「え?Go言語って高階関数無いの?って思ったらあるみたい。じゃあ、filterが欲しければ定義すればいいじゃん」 / Twitter
- Seiya YazakiさんはTwitterを使っています 「@miura1729 Generics が(現時点では)無いので型ごとに手書きないしコード生成をする羽目になります > Go言語でfiterを定義 今後入るはずの Type Parameter (= generics) で解決する課題であり、提案書の example でその点が明確に触れられてもいます: https://t.co/pB9G9NOTfj」 / Twitter
- Type Parameters Proposal
- Miura HidekiさんはTwitterを使っています 「@saiya_moebius なるほど、Generics。Pascalの悪夢がよみがえってきました」 / Twitter
- hsjoihs (2回+2週済)さんはTwitterを使っています 「Go、前に @KOBA789 が「あれはOS屋さんが最高のOSを作りたかったけど、OSを作っても人々使ってくれないからプログラミング言語に擬態して出荷させたもの」みたいなことを言っていて面白かったな」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Goのソースコード今日読んでいたのだけど(goroutineの実装が面白そうとのうわさを聞いたので)、確かにOSのコードみたいだった。goroutineのコードはまだ見つかっていない」 / Twitter
- 知我麻社さんはTwitterを使っています 「nilに関しては妥当では? ポインタがないなら「なにも入っていない変数」とか必要ないと思うけど」 / Twitter
コスト
- ぬるぽへさんはTwitterを使っています 「Goの人って変数がスタックかヒープに行くか/allocationのコストとか気にしますか?CとRustだと気にするのは分かるんですが、そもそも高レベルランタイムな言語のGoだとそこらへん気にしなさそうなイメージがあったんですが一般的にどうなんでしょう」 / Twitter
- kubo39.dさんはTwitterを使っています 「@nullpo_head 一般には気にしないようですが、気になる人はnotinheapのようなコンパイラディレクティブを使って動的に検査ができるようです。 https://t.co/ofUuKZpHG0」 / Twitter
- src/runtime/HACKING - The Go Programming Language
- ぬるぽへさんはTwitterを使っています 「@shitsyndrome ありがとうございます、雑にまとめてしまうと気にしない場合は多いかもしれないが、現にnotinheapがあるように場合によっちゃ気にするという感じですかね、ありがとうございます!」 / Twitter
- Hiroaki NakamuraさんはTwitterを使っています 「@nullpo_head パフォーマンスを気にする場合はprofilingしてボトルネックを探すのですが、allocationの回数を減らすのを気にすることはものによってはありますね。例えば https://t.co/apBvNfERwo とか。」 / Twitter
- rs/zerolog: Zero Allocation JSON Logger
- Hiroaki NakamuraさんはTwitterを使っています 「@nullpo_head あと変数がスタックに行くかヒープに行くかは go build -gcflags="-m" で調べられます。 "Escape Analysis in Golang. Basically every programming language… | by Mayur Wadekar | Medium" https://t.co/Z7mVYBBQal」 / Twitter
- Escape Analysis in Golang. Basically every programming language… | by Mayur Wadekar | Medium
- ぬるぽへさんはTwitterを使っています 「@hnakamur2 おーなるほど、loggerとかは重い処理代表の文字列処理もする上に何度も呼び出されるので、確かにその手のコストを気にする代表格ですね!あとそのフラグは知らなかったです、ありがとうございます」 / Twitter
Qiita
- Goコンパイラをゼロから作って147日でセルフホストを達成した - Qiita
- プログラミング(IT)初心者がgoroutineを理解しようと頑張ってみた。 - Qiita
- goroutineとチャネルの動きを図を使って理解する(和訳) - Qiita
- goroutineとスレッドの違いって? - Qiita
- goroutineのよさを理解するための低レイヤの話 - Qiita
- Goにおける等値と等価の考察(struct1==struct2と&struct1==&struct2とreflect.DeepEqual(struct1,struct2)とreflect.DeepEqual(&struct1,&struct2)) - Qiita
- Golangのgoroutine周りを気合で理解する - それが僕には楽しかったんです。
- goroutineを調べたときに深掘りしたときに調べたまとめ - Flicker's Style++
- 「みんなのGo言語 第二版」補足。Go v1.16の新機能紹介など - 覚書
- Goランタイムケーススタディ|Goでの並行処理を徹底解剖!
- 並行処理を支えるGoランタイム|Goでの並行処理を徹底解剖!
- Goroutineのプリエンプション | dtyler.io
- code-for-blog/channel-msgpersec.go at master · eliben/code-for-blog
- Shiro KawaiさんはTwitterを使っています 「まあこれっすね。期待するものが違う。」 / Twitter
- Shinya KatoさんはTwitterを使っています 「Go は better C という雰囲気が強いので、Ruby のノリで書くと「こんな機能もないの?不便なんだが?」ってなりそうだけど、C 言語のノリで書くと「えっ?そんなこともやってくれるんですか?神ですか?」ってなるイメージ」 / Twitter
- Goの苦手な領域
- 渋川よしきさんはTwitterを使っています 「GoはめっちゃくっちゃにCPUヘビーな処理の場合はC++/Java/Rustに性能は劣るし、SIMDを活用するライブラリも少ない。I/Oヘビーなやつには強い。Webサービスとかミドルウェアには良い。あとはコンパイルが早くてクロスコンパイルが楽勝、という理由で使っている。 https://t.co/RT7khCCgpE」 / Twitter
- 渋川よしきさんはTwitterを使っています 「CPUもI/Oも性能が良くてメモリ消費も少なくてバイナリサイズも小さくてマルチコアが効率よく使えてクロスコンパイルも楽でビルドも高速でサードパーティライブラリも簡単に追加できていいエディタも手に入りやすい、という言語は存在しないので諦めるべし。どの欠点がどの程度許容できるか次第。」 / Twitter
- Goから学ぶI/O
- 原理原則から適切なgoroutineの数を考える
- よくわかるcontextの使い方
- gomockを完全に理解する
- DQNEOさんはTwitterを使っています 「低レイヤだいぶ詳しくなったつもりだけど、Genericsはむずい。全然別の脳みそが必要な気がする。意味論とか型理論とか論理学的なジャンルなのかな。数学の集合論好きな人なら向いてるかもしれない #gospecreading」 / Twitter
- DQNEOさんはTwitterを使っています 「interface vs dynamic typeで既に抽象 vs 具象 という軸があるので、そこにさらに「汎用型 vs インスタ化された型」という軸が加わると、初心者にはだいぶ難しい気がする。教えるのが大変そう」 / Twitter
- DQNEOさんはTwitterを使っています 「あ、こんな便利記事あったのね。今まで完全に自己流でやってたわ...w https://t.co/AahEJT2gxh」 / Twitter
- Debugging Go Code with GDB - The Go Programming Language
- Go言語が好きな理由
Idris
Idris
- SnocList recursive viewを型駆動開発してみよう in Idris2
- κeenさんはTwitterを使っています 「Idrisで型駆動開発でコードを半分くらい自動生成できる様子です。Emacs使ってますが他のエディタでもできます。 https://t.co/3VBQuSaAFb」 / Twitter
- κeenさんはTwitterを使っています 「第2段。記事中で触れられてるコードをプログラミングしてる様子を写したよ。Twitterの尺の制約で標準ライブラリの再証明はなしと、一部コピペがある。急にコードが湧いてくるのはIdris処理系による自動生成。 https://t.co/1oQZfGd9R9」 / Twitter
- 依存型のあるHaskellことIdrisってどんな言語? | κeenのHappy Hacκing Blog
- Idrisの基本文法 | κeenのHappy Hacκing Blog
- Idrisのインストール | κeenのHappy Hacκing Blog
- Idrisの型とデータ型 | κeenのHappy Hacκing Blog
- REPLでIdris小旅行 | κeenのHappy Hacκing Blog
- Idrisのインタフェースとモナドなどなど | κeenのHappy Hacκing Blog
- Idrisと高橋君 | κeenのHappy Hacκing Blog
- Idrisのモジュールとプレリュード、標準ライブラリ | κeenのHappy Hacκing Blog
- Idris手習い: ビッットマップ画像の書き出し | κeenのHappy Hacκing Blog
- Idrisの名前つきパラメータとGADT | κeenのHappy Hacκing Blog
- Idrisのパッケージとipkg | κeenのHappy Hacκing Blog
- Idrisdocの使い方 | κeenのHappy Hacκing Blog
- IdrisのテストとCI | κeenのHappy Hacκing Blog
- Idris面白機能:シンタックスシュガーとオーバーロード、あとユーザ定義構文 | κeenのHappy Hacκing Blog
- Idris面白機能:with構文と依存型、View | κeenのHappy Hacκing Blog
- Idris面白機能:文芸的Idris | κeenのHappy Hacκing Blog
- Idrisで依存型を使った定理証明入門 | κeenのHappy Hacκing Blog
- Idrisの依存型で高さが100%正しいAVL木を定義する | κeenのHappy Hacκing Blog
- IdrisのFFIとCodegen(C、JavaScript) | κeenのHappy Hacκing Blog
- IdrisのElaboratorリフレクションでメタプログラミング | κeenのHappy Hacκing Blog
- Idrisで正しいモノイドを定義したい | κeenのHappy Hacκing Blog
- Idrisの標準ライブラリを解説していくよ | κeenのHappy Hacκing Blog
- Idrisといくつかの帰納法 | κeenのHappy Hacκing Blog
- ☔️leign☔️さんはTwitterを使っています 「これに似たものとして「空でない自然数の集合は最小値を持つ」(つまり自然数の普通の順序は整列順序である)はよく使う。今日も体の標数の定義に使った。」 / Twitter
- プログラング言語Idrisに入門させたい(v0.9)
Julia
- Juliaという速くて書きやすい言語をちょっとだけ覗いてみたんだが、なにやらワクワクするものがあったので報告しようと思う - Qiita
- dc1394さんはTwitterを使っています 「このQiitaの記事のC++(Eigen使用)のコードを、Juliaに移植してみたら、かなり速くなった。具体的には、 C++(+Eigen): 166.81(秒) Julia: 14.240(秒) で、C++よりJuliaの方が12倍くらい速くなった。Julia優秀すぎる。今後もC++のコードをJuliaに移植していきたい。 https://t.co/SuUxyxGCoL」 / Twitter
- 水素原子に対するSchrödinger方程式を有限要素法で数値的に解いてみる(C++のソースコード付き) - Qiita
- 電子計算機の沼さんはTwitterを使っています 「面白がって最適化してみたけど,Julia版のコードが上がってないので比較はできない ただ調べた結果,固有値ソルバが全体時間の99%(それ以外は0.1秒)で,「速い固有値ソルバをコールするコンテスト」なので,言語の話じゃなくてリンクしてる物の違いとかだったんだと思います なので私はもう撤退.」 / Twitter
- dc1394さんはTwitterを使っています 「@Hishinuma_t Julia版のコードはGitHubのこちらにあげています。 https://t.co/DVf0gUicD8」 / Twitter
- dc1394/hydrogen_fem_julia: FEMで水素原子に対するSchrödinger方程式を解くコードです(Julia版)
- nkさんはTwitterを使っています 「実はよくわからない押しつけがましい人がよくわからない主張を繰り返すのでjulia使うのうざくなってきた」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「JET.jl すごいな。 そこそこ大きなコードを書いて人はJET.jlを使って、バグの有無や計算速度の劣化の有無を確認した方が良さそう。」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 a = 2:100; a[a.∉(a*a',)] にはJuliaでよく使う基本的な事柄が詰め込まれており、理解する価値が十分にあると思う。 これで100以下の素数全体が得られる。 typeof, supertype, dump の使い方もついでに覚えてしまうと、「夜道で迷うこと」も少なくなるだろう。」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 添付画像のコードは別スレで紹介したコード。 函数の引数の型がほとんど書かれておらず、Float64やInt64のような型名をユーザー側は全然入力していない。 函数の引数の型はJuliaにおける高速計算では書く必要がない。続く https://t.co/YoUgE28uOV」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 Julia言語の強みの1つは、他のLisp処理系と同様に、Julia自身がJuliaのコードを生成できることです。 この場合には、実行時に超高速に微分を計算する自動微分よりも、gradientを計算するJuliaのコードをSymbolics.jlに作らせた方が速い。 https://t.co/MOfABB90xy」 / Twitter
- public/HMC leapfrog Symbolics.ipynb at main · genkuroki/public
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 別ファイルに Symbolics.jl のシンプルな応用例を追加した。これ↓ https://t.co/BCyYHXzvLE 添付画像 ②自動微分を使用 ③Symbolics.jlを使って数式として微分を計算して、Juliaの函数に変換 計算時間 50 ms ←②自動微分 32 ms ←③Symbolics.jlの応用 Symbolics.jlが速い! https://t.co/wNAihw7HXn」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 しかし、このスレッドの内容を理解すれば裏で複雑な型システムが大活躍していることがわかる。 Juliaの計算が速いのはこの型システムのおかげ。 既存の遅いプログラミング言語をJulia並に速くするためには、Julia並の型システムを導入する必要があり、破壊的な変更が必要になるだろう。」 / Twitter
- Juliaの行列・ベクトルを完全に理解すっぞ!!
PHP
- sjiさんはTwitterを使っています 「やはり PHP、SharedArrayBuffer 的なコンテキスト間でのゼロコピーのデータ共有方法ないのが惜しいな。いやメモリ共有は悪なのでそのものが欲しいわけでもないんだけど、やはり copy でなく move が欲しい」 / Twitter
- sjiさんはTwitterを使っています 「parallel + FFI 使うと、FFI で確保した C 言語データ領域のアドレスを Channel 経由で渡すという裏技が使え見た目上はゼロコピーになるんだけど、FFI 経由での C 言語データ領域へのアクセス自体がアレなので Channel 経由でふつうにコピーして送るのに対するコストメリットがあまりない」 / Twitter
- sjiさんはTwitterを使っています 「LuaJIT にならった JIT での FFI データアクセス最適化が入ると多分ある程度戦えるようになるんだけどなあ」 / Twitter
- sjiさんはTwitterを使っています 「https://t.co/oMX4wVVrtw これとかゼロコピーでの共有使える奴が圧倒的に強く、現時点では JIT 性能や配列 / オブジェクトアクセス以前の要因で Node に PHP が勝てないところ(ほぼ Node と同等の処理で PHP 側マルチスレッド化しても圧倒的に差がつく)」 / Twitter
- fasta | Computer Language Benchmarks Game
- sjiさんはTwitterを使っています 「moveToAnotherRuntime($data) した先で $data が unset されたような扱いにできて、静的解析でその状態での不正利用を検知できるようなソリューションがあるとだいぶ嬉しいな」 / Twitter
- sjiさんはTwitterを使っています 「ランタイム側は参照経由で null 突っ込むくらいは今ある仕組みの延長でもいけるか、そいつへの参照を持つ側は nullable にしないと持てなくなる。静的解析はどうかなあ、rust でいう所有権的な仕組みを使えればいける気もするけども」 / Twitter
- sjiさんはTwitterを使っています 「参照持つ側を nullable にせざるを得なくなるとすると null チェックを強制するくらいまでの静的解析からの補助はいけそうだが」 / Twitter
- sjiさんはTwitterを使っています 「https://t.co/TNE3Gu7mXX つまりこれはできる」 / Twitter
- Psalm - a static analysis tool for PHP
- PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
Forth
- 並列処理対応 Forth 系言語 Paraphrase の 2020 年の開発状況 - Qiita
- 並列処理対応 Forth 系言語 Paraphrase を作る際に考えたよしなしごと - Qiita
- Factor - Wikipedia
Swift
- データ競合のない並列言語を目指すSwift
- Swift CollectionsはSwiftに新しいデータ構造をもたらす
- Swift 5.4が複数の可変数引数、リザルトビルダなどをサポート
- async/awaitとアクタをサポートするSwift 5.5
- Swiftの関数型の実行時表現 - Speaker Deck
V
- 開発者から見た V 言語とその(誇大)広告について
- Memory Management in Lobster
- The V Programming Language
- vlang/v: Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. https://vlang.io
- Volt | <1 MB desktop client for Slack, Skype, Twitter, Facebook, Gmail and more
- vlang/vos
- vlang/vbrowser: Upcoming browser written from scratch in V UI
- トデス子'\さんはTwitterを使っています 「V言語が参考にしたというLobster言語のGCなしメモリ管理手法について。値型が基本、ヒープに確保されたメモリは静的な生存時間解析で自動管理、必要に応じてRCを挿入。循環参照はプログラム終了時に検出して叱る。 / “Memory Management in Lobster” https://t.co/ZhdfBfCayL」 / Twitter
TruffleSqueak
- hpi-swa/trufflesqueak: A Squeak/Smalltalk VM and Polyglot Programming Environment for the GraalVM.
- TruffleSqueak
- TruffleSqueak: Polyglot Programming with Squeak/Smalltalk and GraalVM | Hacker News
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「久しぶりの #st_study 楽しかった。ただし、truffle squeak、おまえ、オレが温めていた研究ネタの多くを解決しやがって。orz」 / Twitter
- Miura HidekiさんはTwitterを使っています 「truffle何とか、言語実装者の努力をことごとく踏みにじった感がある」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 今後の言語実装技術を考える上で、いろんなバランス軸を書き替えてしまった感があります。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda 研究の世界はカオスがふさわしいと思います (部外者が過ぎた物言いだとは思います。すみません」 / Twitter
- TruffleSqueakの紹介 - Google スライド
- Miura HidekiさんはTwitterを使っています 「Smalltalkだといろいろ出来そう。あと、テキストウィンドウに関数名を書いておくとそれがボタンになってクリックすると起動するOberonとか。」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「そういえばプログラムに唯一のエントリポイント(main関数)があるのって割とよくある構造だけど、エントリポイントが一つである必然性って無い気がする。プログラムの起動のされ方によってエントリポイントが切り替わってもいいんじゃない?BTRONのアプリってそんな感じだっけ?」 / Twitter
- asfdrweさんはTwitterを使っています 「@uchan_nos Androidがそんな仕組みじゃないでしょうか。 1つのプログラムに複数のActivityやServiceを持たせることができて、メインActivityに限らずどのActivityやServiceでも対応するIntentにより実行開始できる仕組みです。」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@asfdrwe1 なるほど、近いかもしれません」 / Twitter
- Squeak/Pharo Smalltalk に備わる APL/J ライクな配列演算機能 - Qiita
- TruffleSqueakのnative imageをビルドする - Google スライド
- 自由自在 Squeakプログラミング PDF版
- ScratchとSqueakはどのように関連していますか? - Quora
Scratch
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「ニンゲンの認知どうこうな言語というなら、形式文法をはじめとする論理的制約ではなく、もっと物理的制約を生かしたビジュアル言語表現をしたほうが良いと思うよ。例えば、Scratchのブロックの形状の違いによる構文要素の区別ね。あれは見事。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「scratchでは、ブロックの穴の形状と、そこに嵌め込みたいブロックの形状が合っていれば、そこに嵌め込むことで構文的にvalidな構成ができる。これ、ニンゲンの脳みそに物理的制約問題を解かせることで、構文的に正しい構成をさせるという、とても素晴らしいUIだよ。認知的にとても正しいアプローチ。」 / Twitter
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@tomooda Scratchも3.0でキャストの柔軟性が増して、なんでもありになりつつあります。以前は、[ ]が数値で( )が文字列、< >が真偽値でしたが、( )が数値または文字列になり、< >が( )にはまるようになりました。これにより分岐や制御を使わない技法が生まれており、一見して読み解くのが難しくなっています。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@abee2 それはとても残念ですね。バージョンを重ねるとだんだん元の言語設計の哲学がぼやけていくのはよくあることではありますが。」 / Twitter
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@tomooda 狙ったというより、実装言語とフレームワークがJavaScriptとBlocklyになった影響がありますね。パズルとしては面白いし、私もそういうのは嫌いじゃないです。「可読性? なにそれおいしいの?」という気持ちも理解できますが、あらゆる年齢とスキルレベルが入り混じる世界ではつらいところではあります。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@abee2 実装に使うフレームワークの影響というのは、ちょっと言語デザインのあり方としてツラミがありますね。」 / Twitter
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@tomooda trueは1じゃなくて、Trueの唯一のインスタンスと叫んでみても詮無いことではあります。」 / Twitter
Nelua
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「プログラミング言語Nelua。文法はLuaに似ているがリアルタイム性を重視している。静的型付けされており、GCはオプション。C経由でネイティブにコンパイルできる。コンパクトで埋め込みも可能。Luaを使ってメタプログラミングもできる。 https://t.co/h3BtvytH0A」 / Twitter
- Nelua
- ドッグさんはTwitterを使っています 「Nelua プログラミング言語なかなか良さそう.Lua に型アノテーションを足したようなシンプルな構文.静的に型チェックして外部依存の無い C コードにコンパイルされ,最終的に実行バイナリになる.マクロもあってジェネリックなコードも書ける | 'Nelua Programming Language' https://t.co/zZD5UERAYg」 / Twitter
- ドッグさんはTwitterを使っています 「この Overview ドキュメントが構文をざっくり知るには良かった https://t.co/dyLJ95E0SP」 / Twitter
- Overview - Nelua
- ドッグさんはTwitterを使っています 「https://t.co/kVTcWzJXgA せっかくなので GC どうしてるのかなと思って実装眺めたら,自前で実装してた.素朴なマークスイープ GC だな」 / Twitter
- nelua-lang/gc.nelua at master · edubart/nelua-lang
- ドッグさんはTwitterを使っています 「https://t.co/dmvyTgAIUq あと面白そうなところだと,C++ の Concept みたいな機能がある.型を値として扱ってるのも今風な感じ local an_scalar = #[concept(function(attr) return attr.type.is_scalar end)]# local function add(x: an_scalar, y: an_scalar) return x + y end」 / Twitter
- Overview - Nelua
- ドッグさんはTwitterを使っています 「https://t.co/yIWw1DqqmL any type あるのか」 / Twitter
- nelua-lang/types.lua at a4a5222ad9b41aa8f9649b21e0dabac7ebb10fa9 · edubart/nelua-lang
- Hoshi, Hajime (星一)さんはTwitterを使っています 「@Linda_pp GC が optional ってのが不思議ですね…そんなんで成り立つんだろうか」 / Twitter
- ドッグさんはTwitterを使っています 「@hajimehoshi manual memory management と書いてあるので,D みたいに,GC 消したら手動で free() 呼ばないといけないんだと思います」 / Twitter
- Hoshi, Hajime (星一)さんはTwitterを使っています 「@Linda_pp すると標準ライブラリみたいなのはどう対応するんでしょう?」 / Twitter
- ドッグさんはTwitterを使っています 「@hajimehoshi 標準ライブラリの方は見てないので想像ですが,マクロとか使ってメタプログラミングで頑張るとかですかね?(GC が有効かどうかで分岐するとか)しかしそうするとデストラクタが無いとキツい気もしますね」 / Twitter
- Hoshi, Hajime (星一)さんはTwitterを使っています 「@Linda_pp 両対応しなきゃいけないのはだいぶきつそうですね…」 / Twitter
- ドッグさんはTwitterを使っています 「@hajimehoshi あとは手動でもメモリ解放できるようにしておくとかでしょうか.GC 有効にしても free() は呼んで良いと思うので,「GC 無効ならユーザはちゃんと解放用の関数を呼ぶ,GC 有効なら呼んでも呼ばなくても良い」みたいにするとか.ライブラリ内部は不要なメモリは明示的に free() するで良い気がします」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Nelua、コンパイラがLuaで書かれていて動的にカスタマイズ出来るとか色々面白そう」 / Twitter
- Miura HidekiさんはTwitterを使っています 「なんとGCがNeluaそのもので書かれていますね。Neluaそのもので書かれていることと保守的GCの採用でGCのhousekeepingが少ないことから比較的切り替えはスムーズかと思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/ZFsq8Y8fTo」 / Twitter
- nelua-lang/lib/allocators at master · edubart/nelua-lang
- Shiro KawaiさんはTwitterを使っています 「@miura1729 かっこいいな」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana かっこいいですよね。GCを自己記述出来るのは結構夢ですよね。私が知る限りpypyしか知らない。Lisp系だとあるのかしらん?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 Lispだと古い処理系は自己記述多いと思います。Allegroもそうじゃなかったかな。 Scheme系だとScheme48はそうですね。あと確かTIが作ってたやつ--R3RS時代。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana Allegroだと結構凝ったGCを使っているでしょうから今の時代でも通用する技術なんですね。論文かソースが読みたいけど、無理なんでしょうね」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 GC部分は読んだことないですが、古より伝わってきた部分をチラ見したら結構prog形式とgoでべたべたに書いてあって、性能にシビアなところではLispがまさに高級アセンブラなんだろなと思いました。lapというインラインアセンブラも良く使われてたし。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana progかー、なんかわかる気がします」 / Twitter
Zig
- yhara (Yutaka HARA)さんはTwitterを使っています 「#ziglang これってstruct文(?)が何らかの値を返すということなんでしょうか? https://t.co/1FQqtq5uNp https://t.co/85uoxrlj9x」 / Twitter
- Documentation - The Zig Programming Language
- ドッグさんはTwitterを使っています 「@yhara Zig 詳しくないのでアレですが,型情報をコンパイル時の値として扱ってるのかと」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています 「@Linda_pp あ、comptimeという節を見つけました。zigでは型もfirst-classな値である、ただしコンパイル時にしか使えない、ということなのですね https://t.co/PFqAIzRNEP」 / Twitter
- Documentation - The Zig Programming Language
- ドッグさんはTwitterを使っています 「@yhara みたいですね.C++ や Rust は型をテンプレート引数で渡しますが,Zig は普通の引数と同じ構文で渡しますし」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています 「#ziglang、if-elseのうちの一節だけがコンパイル時計算になったりするらしい。へぇ。 https://t.co/PFqAIzRNEP 青い部分のみコンパイル時に解決される https://t.co/KfEqXNlUZU」 / Twitter
- Documentation - The Zig Programming Language
Folders - Esolang
- zehnpaardさんはTwitterを使っています 「これかな https://t.co/uJkphac3ma」 / Twitter
- Folders - Esolang
- tadなsanさんはTwitterを使っています 「ファイルシステムでLisp… 作れるな」 / Twitter
Yatima
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Rustで実装された純粋関数型プログラミング言語Yatima。すべてのプログラムには固有の「アドレス」が割り当てられ、そのプログラムのアドレスを知っていれば同一の計算環境が再現できるらしい。パッケージ管理はP2Pで行われると書かれている。 https://t.co/kv71tyREfK」 / Twitter
- yatima-inc/yatima: A programming language for the decentralized web
- エンジニア志望の学生100名が回答した、プログラミング言語トレンド発表:EdTechZine(エドテックジン)
停止性問題
正当性・停止性
- チューリングの停止性問題 | IIJ Engineers Blog
- termination.pdf
- typedlmd.pdf
- Microsoft PowerPoint - 13comp.ppt - 13comp.pdf
- Microsoft PowerPoint - 02diag.pptx - 02diag.pdf
- 停止性問題について考える。Halting Problem - Unityでインディゲーム道!
- 3.handout.pdf
- Turing machine の停止問題
- チューリングマシンの停止性問題 - Thoth Children
- どんなコンピューターにも出来ない事 〜停止性問題〜|越境するテクノロジー|note
- Microsoft PowerPoint - 6.pptx - 6.pdf
- p1.dvi - 16_15.pdf
- ソフトウエア工学資料 - programVerification.pdf
- IPSJ-Z81-2N-02.pdf
- https://nagoya.repo.nii.ac.jp/record/19059/files/IPSJ-TPRO0402003.pdf
- 20世紀の数学が直面した計算することの限界—神様のコンピュータは止まらない?— | サイエンス&テクノロジー | 研究・社会連携 | 京都産業大学
- itp.dvi - itp.pdf
- Computability2019-12 - Computability2019-12.pdf
- バカ犬を使った停止性問題のわかりやすい例え - 明日とロボット
- 03-correctness.pdf
- algorithm4.pdf
- Byron Cook: Terminator - Proving Good Things Will Eventually Happen | Charles | Channel 9
停止性問題
停止性問題
- 停止性問題 - Wikipedia
- ゲーデルの不完全性定理 - Wikipedia
- ゲーデル数 - Wikipedia
- カントールの対角線論法 - Wikipedia
- カントールの定理 - Wikipedia
- 濃度 (数学) - Wikipedia
- 連続体仮説 - Wikipedia
- パラドックス - Wikipedia
- ラッセルのパラドックス - Wikipedia
電子情報通信学会知識ベース
- 電子情報通信学会知識ベース |トップページ
- 06gun_02hen_ab.pdf
- 06gun_02hen_01.pdf
- 06gun_02hen_02.pdf
- 06gun_02hen_03.pdf
- 06gun_02hen_04.pdf
- 06gun_02hen_05.pdf
- 07gun_01hen_ab.pdf
- 07gun_01hen_01.pdf
- 07gun_01hen_02.pdf
- 07gun_01hen_03.pdf
- バカ犬を使った停止性問題のわかりやすい例え - 明日とロボット
- 停止性問題について考える。Halting Problem - Unityでインディゲーム道!
- 20世紀の数学が直面した計算することの限界—神様のコンピュータは止まらない?— | サイエンス&テクノロジー | 研究・社会連携 | 京都産業大学
- 【コナハン】「人と機械の停止性問題」/「tbn*echo」の小説 [pixiv]
- マンガ6.b「停止性問題」 | ラビリンス人工知能
- 停止性問題は決定不能→バグのないソフトウェアは作れない? - sumiiのブログ
- 高階差分にもとづくループ停止性証明方法
- 「バグのないプログラム」と「バグのないプログラムは作れない」と停止性問題について - noopな日々
- Magic: The Gatheringのルールが本質的に不完全であることの証明|Memeplexes
- ライスの定理 - Wikipedia
- チャイティンの定数 - Wikipedia
- 無限ループ - Wikipedia
- モデル検査 - Wikipedia
- 二分決定図 - Wikipedia
- 充足可能性問題 - Wikipedia
- 抽象解釈 - Wikipedia
- SPINモデルチェッカ - Wikipedia
- 制御フローグラフ - Wikipedia
- 決定問題 - Wikipedia
- コラッツの問題 - Wikipedia
- Shinji KonoさんはTwitterを使っています 「ゲーデルの不完全性定理とチューリングマシンの停止性の問題は、両方とも自己参照命題と対角線論法の二つの証明があり別物。後者は番号付けを通して自己参照する感じ。」 / Twitter
機械学習
- 機械学習 停止性問題 - Google Scholar
- AI研究における「ブラックボックス問題」とは何か | Forbes JAPAN(フォーブス ジャパン)
- Ceron - 機械学習によって解決できるかどうかが証明不可能な学習モデルが発見される - GIGAZINE
- アラン・チューリング「人工知能の “考え方” は我々とは異なる」 | and AI. – 人工知能のwebメディア
- いまさら不完全性定理と人工知能について - 再帰の反復blog
- AIは数学者にとってかわれない、これはチューリングが既に証明済み - 団塊亭日常
制約ソルバー
連言標準形
- uint256_tさんはTwitterを使っています 「連言標準形と積和標準形って同じようなものなんだろうか」 / Twitter
- ゆかたゆさんはTwitterを使っています 「@uint256_t 積和標準形は論理積の論理和であって、「変数に何を代入しても条件を満たす」もの(つまり同値変形)を見つけるために使います。 連言標準形は論理和の論理積であって、「ある変数を代入して条件を満たす」ものを見つけるために使います。 という説明を今思いつきましたが、鉞が来そうな気がしています。」 / Twitter
- uint256_tさんはTwitterを使っています 「@yukata_yu なるほど (連言じゃなくて選言標準形でしたね)」 / Twitter
SAT/SMT
テストケース生成
- 32_1_103.pdf
- ソフトウェア科学特論: 命題論理とSAT
- KJ00005931319.pdf
- SAT/SMTソルバの仕組み
- 基盤(S)離散構造処理系プロジェクト(北海道大学サイト) セミナー
- 高速SATソルバーの原理と応用 - nabeshima.pdf
- 2-2.pdf
- 07gun_01hen_02.pdf
- lecture4.dvi - lecture4.pdf
- 高速SATソルバーの原理と応用 - 20141015-atos10.pdf
- m_1205089.pdf
- 高速SATソルバーの原理と応用 - 2701.pdf
- はじめてのコンコリックテスト - S4-1.pdf
- 37136500.pdf
- OGAWA.pdf
- https://swest.toppers.jp/SWEST10/minutes/S23-a.txt
- 2H5-OS-03b-5.pdf
- 10-6-B4-4.pdf
- 情報基礎特論
- JP2014186407A - テストケース生成方法、テストケース生成装置およびプログラム - Google Patents
- 人工知能学会 第106回人工知能基本問題研究会(SIG-FPAI)
- 魔術師見習いのノート
- 充足可能性の意味・用法を知る - astamuse
- PowerPoint プレゼンテーション - ando_lab_intro_b4_2020.pdf
- 宋 剛秀 (Takehide Soh) - マイポータル - researchmap
- 教員詳細 - 番原 睦則
- Mutsunori Banbara's Web Page (in Japanese)
- 特開2015-22515 | 知財ポータル「IP Force」
- 九州大学-研究者情報 [松永 裕介 (准教授) システム情報科学研究院 情報知能工学部門]
- 甲1514_本文.pdf
- SAT技術の進化と応用 パズルからプログラム検証まで 特集 基 応 専 般 SAT 技術の進化 番原睦則 神戸大学 鍋島英知 山梨大学 SAT ソルバー 地区 1 地区 2 地区 3 地区 4 The story of satisfiability is the tale of a triumph - PDF Free Download
- DLPDFR013375_P1-61.pdf
- Sigss2012.pdf
- 業績
モデル生成
- 144449495.pdf
- IPSJ-JNL5502035.pdf
- KJ00009572843.pdf
- 命題論理 SAT モデル 生成 - Google 検索
- 393.pdf
- 90001267.pdf
- if12_168.pdf
- PowerPoint Presentation - OGAWA.pdf
- 充足可能性問題 (SAT)のQUBO表現 -最大独立集合問題に帰着させる方法- T-Wave
- 000049838.pdf
- F_039.pdf
- 論理と計算 講義ノート - logic2018spring-draft.pdf
- 2E1-J-1-03.pdf
- SAT µ»½Ñ¤òÍѤ¤¤¿ Áȹ礻¥Æ¥¹¥È¥±¡¼¥¹À¸À® - erato_seminar_20120706.pdf
- システム検証論 -モデル検査によるシステム検証- - hand4.pdf
- C 言語ベース設計に対する高位設計検証技術 - das2009-fujita.pdf
- スライド 1 - Kameya-IBISML-slides.pdf
- SAT/SMTソルバを自作してみる話 - るくすの日記 ~ Out_Of_Range ~
- or55-11_706.pdf
- 人工知能学会 第97回 人工知能基本問題研究会 (SIG-FPAI)
- 学位論文要旨詳細
- Theses - 岩沼研究室
- jsai08.pdf
- 石畠正和 : Masakazu ISHIHATA - Publication
- Microsoft PowerPoint - 8.pptx - 8.pdf
C3
- SAT/SMTソルバを自作してみる話 - るくすの日記 ~ Out_Of_Range ~
- RKX1209/c3: The C3, SMT/SAT solver written in C.
- SAT ソルバで数独を解く方法 - まめめも
- 2009-02-08
- Decision Procedures - Bit-Vectors
- SMT-LIB The Satisfiability Modulo Theories Library
- SATソルバを使うためにCNFを作る - soutaroブログ
- DPLLアルゴリズム - Wikipedia
blog
- SATソルバを使うためにCNFを作る - soutaroブログ
- SAT/SMTソルバの仕組み - scrapbook
- ヒビルテ(2012-08-26)
- Knuth先生の『TAOCP 7.2.2.2 Satisfiability』を読む
- SMT2ファイルの書き方
PDF
- IPSJ-MGN570811.pdf
- 27_3_24.pdf
- three_wise_men - 160307-16.pdf
- Sigss2012.pdf
- fose2012.pdf
- general2-3.pdf
- 37136500.pdf
- ソフトウェア科学特論: 命題論理
- 特集「最近のSAT技術の発展」
- ソフトウェア科学特論: 命題論理とSAT
- encoding.dvi - encoding.pdf
- 110008106386.pdf
- SAT¥½¥ë¥Ð¡¼¤ÎºÇ¿·Æ°¸þ¤ÈÍøÍѵ»½Ñ
- CiNii 論文 - SATソルバ・SMTソルバの技術と応用
- Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł - YATABE.pdf
スライド
- SAT/SMTソルバの仕組み
- _pdf
- three_wise_men
- 000049838.pdf
- The Art of De-obfuscation - Speaker Deck
Wikipedia
二分決定グラフ
講義情報
- アルゴリズム特論
- S. Minato's Course Information (in Japanese)
- アルゴリズム特論
- アルゴリズム特論
- アルゴリズム特論
- アルゴリズム特論
- アルゴリズム特論
- アルゴリズム特論
- アルゴリズム特論
- 二分決定図 - Wikipedia
- ブール関数 - Wikipedia
- 二分木 - Wikipedia
- 決定木 - Wikipedia
- 真理値表 - Wikipedia
- ブール代数 - Wikipedia
- ベン図 - Wikipedia
- カルノー図 - Wikipedia
- クワイン・マクラスキー法 - Wikipedia
- 選言標準形 - Wikipedia
- 連言標準形 - Wikipedia
- 否定標準形 - Wikipedia
- 充足可能性問題 - Wikipedia
- 制約充足問題 - Wikipedia
- 命題論理 - Wikipedia
- 恒真式 - Wikipedia
- 数理論理学 - Wikipedia
- エルブランの定理 - Wikipedia
- DPLLアルゴリズム - Wikipedia
- タブローの方法 - Wikipedia
Qiita
- 「サイゼリヤで1000円あれば最大何kcal摂れるのか」をSMTソルバー(Z3)で解いてみた。 - Qiita
- z3 (smtソルバ) で遊ぶ - Qiita
Twitter
- るくすさんのツイート: "UCLID、適当に変数のビット幅を減らしてみてUNSATになればUNSAT proofを取り出す。でproof以外のクロージャを1変数に置き換えて規模を削減した物にbit-blasting。これでSATになればproof部分のビット幅が足りてない事が原因というヒューリスティック"
- るくすさんのツイート: "Bit BlastingとTseitin encoding実装しなおさなきゃ駄目だ"
- Shinji KonoさんはTwitterを使っています 「SATの変数の数は線形だが、それに全部引っかかると指数乗になる。解が多くなると易しくなってしまうので絞る必要があるが、そうすると関与する変数が多くなり、それを見つけるのは容易しになる。繰り返しネックを作るには…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「変数の組合せを変えていく必要があるが、変数の数には限りがあるので…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「結局、変数の数がないとだめ。しかし、それは線形にしか増えないので…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「というわけなのでP=NPがdefenceできてるのは驚異ではあるな。決まったパターンでしかネックを作れないことがわかって肯定的に解けてしまう可能性もある。」 / Twitter
- retrageさんはTwitterを使っています 「[2109.13498] Learning to Superoptimize Real-world Programs https://t.co/jWJD30qeYV」 / Twitter
- [2109.13498] Learning to Superoptimize Real-world Programs
- retrageさんはTwitterを使っています 「斜め読みしただけだけど、prgram correctnessでSMT Solver使うのってnaiveすぎると思う。実世界のソフトウェアだと複雑すぎて検証できないんじゃないかな」 / Twitter
- retrageさんはTwitterを使っています 「あとHacker’s Delightを参照しているのがちょっと面白い」 / Twitter
- SAT/SMT by Example
- openSUSE/libsolv: Library for solving packages and reading repositories
- pycosat 0.6.1 : Python Package Index
- PicoSAT
- wkschwartz/pigosat: Go (golang) bindings for Picosat, the satisfiability solver
- z3 - Implementing bit-blasting for floating-point arithmetic in SMT - Stack Overflow
- Vol.28 No.2 (2013/03) SAT ソルバー – 人工知能学会 (The Japanese Society for Artificial Intelligence)
- バージョンの充足可能性問題 | POSTD
- 権藤研 輪講資料 2018/6/19 新山 (充足可能性問題について)
Rust
- Hideyuki TanakaさんはTwitterを使っています 「充足問題をRustコンパイラのmatchのnon-exhaustive patternsの検出に帰着できるんで、RustコードをコンパイルするのはNP Hardだという話 (´・_・`) / 1件のコメント https://t.co/NJtM9FVK29 “Compiling Rust is NP-hard” (3 users) https://t.co/mIIoNtshxZ」 / Twitter
- [B! *あとで読む] Compiling Rust is NP-hard
- Compiling Rust is NP-hard
- Hideyuki TanakaさんはTwitterを使っています 「CNFの否定は余集合のDNFになるんで、まさにそれでカバーされないものが元の式を充足される割り当てになるって話で言われてみればそうだ(´・_・`)」 / Twitter
Sugar
- SAT型制約ソルバーSugarについて
- お絵かきロジックをSugar制約ソルバーで解く
- SATソルバーMiniSatとSugarを導入 - Qiita
- 制約充足問題を解くためにsugarをインストール - TIM Labs
- Sugar制約ソルバーがパズル神 – The Coherence World
PDF
- Microsoft PowerPoint - csp.ppt
- Microsoft PowerPoint - 11Prolog演習応用編印刷用.pptx
- Microsoft PowerPoint - backtrack.pptx
- 67.pdf
- introduction_sat.pdf
- digidepo_8559157_po_r6-2-7.pdf
- 制約論理型言語における制約集合の構造解析による代数制約ソルバーの効率化についての検討 - 国立国会図書館デジタルコレクション
american fuzzy lop
コンコリック実行エンジン
- angr, AFL, Driller | 一生あとで読んでろ
- Conpy:Pythonアプリケーションのためのコンコリック実行エンジン | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
- これまで調べてきたファジングの話 - who3411のブログ
- ソフトウェアテストの技術:現場から研究へ,研究から現場へ
- コード難読化・アンパック系論文サーベイ - Log.i53
- 改竄とリバースエンジニアリング - owasp-mstg-ja
- DeepState: C/C++ symbolic execution unit test framework from Trail of Bits | Firmware Security
- 実装して学ぶ Symbolic Backward Execution - Speaker Deck
- はじめてのコンコリックテスト
- mumumuさんはTwitterを使っています 「ファジングの最適化のためにMutationの選択を強化学習しようぜ、みたいな話を聞いてなるほど状態だった 指摘されるとせやな、という感じだが」 / Twitter
- mumumuさんはTwitterを使っています 「たしかDirectedなファジングにアニーリングを使ってたやつは読んだことあって、システムっぽい話に数理最適化とか機械学習の話題を混ぜるとこうなるのか感があったな」 / Twitter
- Aurélien FrancillonさんはTwitterを使っています 「Our new paper (to appear at NDSS 21) with @poeplau SymQEMU: Compilation-based symbolic execution for binaries Like for SymCC we directly embed the instrumentation for symbolic execution in the app, but this time in QEMU, so works with binaries PDF: https://t.co/785ORontDi https://t.co/CCM40sb5Xd」 / Twitter
- ndss21_symqemu.pdf
- american fuzzy lop
- google/AFL: american fuzzy lop - a security-oriented fuzzer
- ご注文は American Fuzzy Lop ですか? - Qiita
- RustでAmerican Fuzzy Lop(afl) - Qiita
- mirrorer/afl: american fuzzy lop (copy of the source code for easy access)
- afl/afl-fuzz.c at master · mirrorer/afl
- american fuzzy lop (fuzzer) - Wikipedia
- Chapter 23 Fuzzing with afl-fuzz
- Breaking Ruby’s Unmarshal with AFL-Fuzz – Fuzz Stati0n – Medium
- American Fuzzy Lop (AFL)の構造 - 睡分不足
- AFL on my extensible fuzzing framework (squiffer)
- afl/technical_details.txt at master · mirrorer/afl
- るくすさんはTwitterを使っています: 「2016年のハッキング自動化コンテストDARPA CGCでも上位チームの殆どがファジングとシンボリック実行を組み合わせていて、現在でも活発に研究されてる分野です。 CGCで優勝した我らがCMUの「mayhem」だけは別格の高度なシンボリック実行切り替えシステムなんだけど、詳細は表に出てないです(言えません」 / Twitter
- るくすさんはTwitterを使っています: 「あ CGC当時のmayhemは純粋にAFL+シンボリック実行だったのかも。 説明がめんどくさいので2016年のntddk先生の記事を見て。 https://t.co/d3JVSu668P 今のmayhemは... アレがアレしてアレになってる」 / Twitter
- angr, AFL, Driller | 一生あとで読んでろ
- Miura HidekiさんはTwitterを使っています: 「そうか、シンボリック実行、具体例を挙げて抽象実行するよりより汎用的な解析結果が得られそうだな。組み合わせ爆発さえ抑え込めれば」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「mmcもシンボリック実行を取り入れ始めていると言えるのかな?結構効果は絶大な気がする。ライブラリレベルで呼び出しが無くても型を得ることが出来そうな気配」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「全然次元の違う話だった。すげー、これをガリガリ実装できるリソースのある国とは戦争したって勝てねーよ」 / Twitter
- uint256_tさんはTwitterを使っています: 「ファザーというもの, よくわかってないけど, バイナリを解析して分岐を網羅できそうな入力をSATとかで生成するのかな」 / Twitter
- mumumuさんはTwitterを使っています 「Automated Whitebox Fuzz Testing [NSDI '08] BlackBoxなファジングはあまりにも非効率なので,Mutation時にシンボリック実行の制約情報を活用するWhitebox手法を提案しSAGEを実装.(実行時に制約を生成し,Mutation時に一部の制約を否定した入力を生成).MS Researchの人がMSのAppに適用していい話」 / Twitter
- American Fuzzy Lop (AFL)の構造 - 睡分不足
- GJDuck/e9afl: AFL binary instrumentation
抽象解釈
- 抽象解釈 - Wikipedia
- 米Facebook、抽象解釈を土台としたコード解析ライブラリ「SPARTA」を公開 | OSDN Magazine
- Microsoft Word - 【第5分科会】ConcolicTestingグループ_論文_修正_20150220.doc
- 情報システム信頼性研究会資料
- デバック工学研究所
- Concolic testing - Wikipedia
- ピギーバック - Wikipedia
- abstractInterpretation - 白紙
- untitled
- [CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
- Miura HidekiさんはTwitterを使っています: 「evalに型付けをおこなう方法について考えている。今は、型変数を実際の型を基底とする線形空間のなかのベクトルとして表現してよろしくするという方針で考えている。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「結局、サポートしていないといけないメソッドの組の中から実際の型を検索するという話になると思うのだが、それを効率よくやる方法で思いついた方針」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 引数として文字列リテラルじゃなくて変数が渡ってくると色々困りそうな」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 変数で文字列の内容がわからないのが前提です。eval時に型チェックを行うのですがその型を得る方法を考えています。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 とりあえず制約無しの型変数を考え抽象実行で持っていなければならないメソッドを集めます。そのメソッドの戻り型の制約とかも考え具体的に当てはまる型を探すってのが大まかな方針です」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 引数として渡される変数の値(文字列)そのものを推論しないと返り値の型も決まりませんよね?」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 いえ、evalの戻り値がその後どういうメソッドを使っているか(さらにそのメソッドの返り値のメソッドの使い方)を見ると型が決められるのではないかと思います。何も制約がなければObjectクラスということになります」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 なるほど、逆の発想なんですね。 副作用だけを期待して返り値を捨てるケースもありそうですし、method missingとか使ってると辛そう」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 返り値を捨てるケースだとObjectとでもしておけばいいですし、method_missingを使っている場合はmethod_missingが定義されているクラスを持ってくればいいかなと思います。ただ、method_missingが定義されているとなんでも候補のクラスとして出てくるのであまり嬉しくなさそうです」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 そうか、別に厳密に型を定める必要はないし、Rubyだとそもそもそれは不可能ですよね。 RubyでRubyのプログラムを読んで、最終的には対象プログラム内の変数や関数の(取り得る)型の集合をリスト化して出力する、という話なんでしたっけ。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 そうです。もともとはコンパイラの最適化のためですが、どこまで型宣言なしで型宣言が復活できるか興味本位で作っています。」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 最終的にはプログラマが最低限の型を書いて、あとは型推論で頑張るようになるんですかね。それだと動的型付け言語ではなくなりますが。 静的型付け言語にも代数的データ型が普及しつつあるので、変数に複数の型を突っ込めるという動的型付けの美点?が失われつつあるような。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 究極的には動的と静的型付けの区別はつかなくなるんでしょうね。Rubyはその中でも最右翼で言語仕様に型宣言はとりあえず入らない(型宣言は別ファイル)ですわね。」 / Twitter
- CiNii 論文 - 論理プログラムの抽象解釈を用いた解析
- untitled - 7.pdf
- 静的解析 - MATLAB & Simulink
- 抽象解釈を用いた静的解析によるソフトウェアテスト ランタイムエラー検出ツール PolySpace Verifier | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
- 抽象解釈を用いた静的解析によるソフトウェアテスト ランタイムエラー検出ツール PolySpace Verifier : 2002-06|書誌詳細|国立国会図書館サーチ
- aviatesk/JET.jl: scratch: experimental type checker for Julia, no need for additional type annotations
- 制約充足問題 - Wikipedia
- 制約充足問題 - 数理計画用語集
- 制約充足問題についてのゆるふわな話 - Qiita
- SuperCon 2016 予選問題をCSPソルバーで解く - ブログのとさか
- 世界一美しい覆面算を制約ソルバーで解く - 屯遁のパズルとプログラミングの日記
- 制約計画ソルバー SCOP 入門編
- 離散組み合わせ問題の制約充足問題による定式化ならびに整合化手法の適用検討
- B.4 制約充足問題ソルバwcsp
- 離散組み合わせ問題の制約充足問題による定式化ならびに整合化手法の適用検討
- 制約プログラミングとは | constraint.org
- SATソルバーは問題解決のための「銀の弾丸」か?
- 制約充足問題のSAT符号化
- パズルをSugar制約ソルバーで解く
- 《制約充足問題》 - ORWiki
- ikyuuさんはTwitterを使っています 「HORNSATがPに入る話(貪欲法で解ける)を読んでいて、Horn formulaがPrologで使われていることを知った。 いつか論理プログラミングとかも勉強してみたいな:)」 / Twitter
- Introduction to Fuzzing - Speaker Deck
- 解析基盤技術を用いた効率的なソフトウェアテスト - Speaker Deck
- ZetZ、形式的検証機能を備えたCのダイアレクト
PDF
- 20800022 研究成果報告書
- _pdf
- _pdf
- encoding.dvi
- termination.pdf
- typedlmd.pdf
- www.cs.tsukuba.ac.jp/~kam/lecture/plm2017/termination.pdf
- www.fc.inf.kyushu-u.ac.jp/~kawamura/t/joi/H290320_yoyogi.pdf
- paper.pdf
- general4-3.pdf
- 1205_29.pdf
- bachelor.pdf
- ieicej07.pdf
- 100229.pdf
- Microsoft PowerPoint - 03np.ppt [互換モード]
- Kenji OtsukaさんはTwitterを使っています 「停止性問題の重要性 https://t.co/XrJkRnqxCZ」 / Twitter
- What is the importance of the Halting Problem? - Quora
- Kenji OtsukaさんはTwitterを使っています 「ポストの対応問題については、チューリングの停止性問題への Reduction を用いて決定不能であることを証明できる。 https://t.co/xfFjglJcOh」 / Twitter
- 決定不能問題から始める計算可能性理論入門 - resume.pdf
- Kenji OtsukaさんはTwitterを使っています 「チューリングの停止性問題について、矛盾を導いて証明する方法は、ほかの場合にも使える。 たとえば、「任意の関数と任意の入力についてテキストをプリントすることを判定する関数は作れるか」という命題について、同じように矛盾を導いて不可能であることを示せる。」 / Twitter
Twitter
- El Pin AlさんはTwitterを使っています 「OCaml、このコードの型検査も停止しない。 applicative functorがあって、かつpathベースのモジュールシステムだと、再帰モジュールを上手く扱うのは難しいよね https://t.co/CAcIS33dZj https://t.co/lb7w5a4aoJ」 / Twitter
- unterminating type checking for recursive modules · Issue #3674 · ocaml/ocaml
- 画力・博士号さんはTwitterを使っています 「停止性問題がそもそもめちゃくちゃ難しい問題であることを表す説明としての「もし停止性問題を解くアルゴリズムが構成できるならCollatz豫想もGoldbach豫想もFermatの最終定理もそれを用いてたちどころに解ける」」 / Twitter
- 画力・博士号さんはTwitterを使っています 「(これ微妙に誤解されてると思しき反応があったので補足すると別に停止性問題の決定不能性の証明によらずとも鉤括弧内のことは言えますよ)」 / Twitter
- まじかんとさんはTwitterを使っています 「clang++ で bool f(int n) { if (n <= 1) return 0; else if (n % 2 == 0) return f(n / 2); else return f(3 * n + 1); } をコンパイルして bool f(int n) { return 0; } 相当のコードに最適化されることを確認して満足した」 / Twitter
- のぶしみさんはTwitterを使っています 「def f(n): if n<=1: return 0 if n%2==0: return f(n//2) if n%2==1: return f(3*n+1) このアルゴリズムって0しか出力しないけど有限時間で終了するかどうか分かってないのって不思議」 / Twitter
- まじかんとさんはTwitterを使っています 「別に clang++ がコラッツ予想を解いたわけでも過剰な最適化をしたわけでもない」 / Twitter
- まじかんとさんはTwitterを使っています 「分からん人のためにネタバレすると、C++ では副作用のない無限ループは未定義動作なので、副作用のないループは必ず停止する前提でコンパイラーは最適化をかけられる」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「いいえ実はこれは未定義動作ではありません。「無限ループは存在しない。いいね?」は、きちんと規格に明文化された仕様です。」 / Twitter
- fujita nozomuさんはTwitterを使っています 「@felis_silv https://t.co/owfh0NwzXx 「無限ループは未定義動作なので無視する。ループを抜ける場合だけを想定する」という最適化が行われてる気がします。 https://t.co/yT2iKaBiN5」 / Twitter
- Compiler Explorer
- 7594591200220899443さんはTwitterを使っています 「https://t.co/yUszVYIsJp」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「Hans Boehm による詳細な解説 https://t.co/IapAUM9GqK」 / Twitter
- N1528: Why undefined behavior for infinite loops?
- 7594591200220899443さんはTwitterを使っています 「仕様に最適化して良いと規定されているのは未定義ではないという立場ですが。一方で未定義動作とは即ち最適化して良いという意味なのだという今風の立場を採用するならそこを峻別して意味あんのかという意見になるということなのでは。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「これ「未定義動作」とは表現されないのか。実質的にはほぼ同じことを言ってるように思えるけどどうして区別してるんだろう。 (無限ループが存在しないと仮定して最適化、というのとUBが存在しないと仮定して最適化、というのはほぼ同じ構造に思える)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「あとUBはimplicitなものも沢山ある一方「◯◯はundefined behavior」と規定されるものも多いので「規格に明文化されているかどうか」もそれほど重要な区別には思えない」 / Twitter
- Masaki HaraさんはTwitterを使っています 「これを読んでみたけど、そもそもproblem statementが "Why undefined behavior for infinite loops?" なので、やっぱりundefined behaviorの一種なのでは? https://t.co/Z4x1eoZaYW」 / Twitter
- Masaki HaraさんはTwitterを使っています 「> My goal is to explain the rationale behind the current wording. とあるから、ここで答えが説明されているのかと思ったけど、むしろ > As N1509 correctly points out, the current draft essentially gives undefined behavior ... とあって、やはり本質的にはUBを意味しているように見える」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「少なくともCでは無限ループから悪魔が出てくる事までは許容していないのではとは思います。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei 「何かしら記述がある」から「未定義動作」ではない、というのであれば、そこかしこにある「◯◯は未定義動作である」という記述が全部自己矛盾になってしまいませんか?「動作」に制約を課す記述がなければそれは「未定義動作」、とするほうが整合するような気がします。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei 正確には、翻訳対象のプログラムの動作ですね。「最適化してよい」というのは確かにコンパイラの動作は規定していますが、翻訳対象のプログラムの動作を制限していないどころか、そのような制限がないことを示しています。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei "behavior (...) for which this International Standard imposes no requirements" なら鼻から悪魔がOKで、 "may be assumed by the implementation to terminate" なら(これを満たさない場合の)鼻から悪魔が禁止、という区別を記述から読み取るにはちょっと無理があるような気はしますが……」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei とはいえ、許容されている挙動の違いに注目するにはなるほどと思いました。undefined behaviorの説明には、コンパイルエラーにしてもいいと例示があるので、この辺りは違いとして考えられそうですね。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「今どきのプロセッサー、「確実に未定義命令例外を起こすと定義されている命令」てのがあり、初めて知ったときは笑ってしまったが、よく考えてみると確かにいるよなーってなる」 / Twitter
- κeenさんはTwitterを使っています 「未定義動作、まじで仕様に書かれてない動作と仕様で「この場合の挙動は未定義とする」と定義されているパターンがある。」 / Twitter
- κeenさんはTwitterを使っています 「普通未定義動作といえば後者を指す気がする。前者はミスに近くて策定の段階で誰かが指摘されてればちゃんと定義されていた可能性があるものも含む。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「これ、システムソフトウェア系の採用試験とか期末試験とかで聞いてみるといいのかな」 / Twitter
- herumiさんはTwitterを使っています 「そしてIntelのud2(undefined instruction)命令の用途の一つに、最適化マニュアルで「後続する命令のデコードを止めるために間接分岐命令の後に置く」とあって、よくまあそんなこと思いつくなあと感心したのでした。 https://t.co/bs0o33D7SL」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「まだWindows 95すら発売されていないときにMSとIntelが会議を行い、IntelがCPUを一つだけ早くできるならば何を選ぶかと聞いたところ、MSは無効命令の例外補足であると答えた。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Intelは冗談を言ったのだと笑って帰っていったが、その後社内でWindowsをプロファイラにかけると実際に無効命令に多くのCPU時間を費やしていた。詳しく忘れたが無効命令の例外補足が一番手っ取り早かったとか。確かソースはOld New Thingだったはず。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「なんか未定義命令をMSDOS時代にどうしてたかという話が出ているがまあそれは「たまたま未定義だった命令」を使う話なのでちと違うかな、、、まあでもサンクに使う専用命令と未定義命令を将来に渡って別にしたいという意味では裏の関係ではあるか」 / Twitter
- Aritalab:Lecture/Algorithm/Halting Problem - Metabolomics.JP
- yuwki0131-blog: アンダースタンディング・コンピューテーション, メモと感想
- PFIセミナー 2013/02/28 「プログラミング言語の今」
- バグのないプログラムと不完全なこの世界: Architect Note
- バグのないソフトウェアの作れない理由 - Qiita
- ハッカーの遺言状──竹内郁雄の徒然苔第44回:複雑さを利用する? | サイボウズ式
- 決定不能問題から始める計算可能性理論入門
- 計算可能性理論 講義ノート
- d.y.d.
- ytakanoさんはTwitterを使っています 「人間の行動を予測できるマクスウェルの悪魔ができたとする。その悪夢が、Aは次の交差点を左に曲がると予測したとする。それを聞いたAは右に曲がると予測は間違っている事になる。よって人間には自由意志があり、因果的決定論は間違い。」 / Twitter
- ytakanoさんはTwitterを使っています 「構造が停止問題と一緒だな。」 / Twitter
- ytakanoさんはTwitterを使っています 「マクスウェルの悪夢の予測に反する行為を行おうとすると、強制力が働いて出来ないならば自由意志はない。何をしてもブチャラティが死んでしまうように宿命と言うわけか。」 / Twitter
論理と計算
論理
分離論理
- 分離論理入門のようなもの - Sokratesさんの備忘録ないし雑記帳
- SL.pdf
- 25_3_135.pdf
- Coqで分離論理(separation logic) - keigoiの日記
- Microsoft PowerPoint - Construction of Secure Internal Networkswith Communication Classifying System_ver2 (1).pptx - ppl2020poster-cone.pdf
- GPGPUのための並行分離論理のCoqによる健全性証明 – 増原英彦研究室
- KAKEN — 研究課題をさがす | 分離理論による現実的なプログラムの形式的証明 (KAKENHI-PROJECT-21700048)
- KAKEN — 研究課題をさがす | 分離論理を用いたソフトウェア検証の基礎理論 (KAKENHI-PROJECT-15K00027)
命題論理・述語論理・コンパイル
述語論理・CNF・SAT
- 一階述語論理をCNFに変換する - ja.pays-tarusate.org
- 暇人の暇人による暇人のためのブログ | 一階述語論理式の冠頭標準形
- 述語論理をやろうず - Qiita
- 充足可能性問題SAT (Satisfiability Problem) - ppt download
- 帰納論理プログラミングのSATによる表現 - yamamoto-kondo.pdf
- B-C31.dvi - 27_271.pdf
- KJ00005931312.pdf
- untitled - predclausal07.pdf
- text.pdf
- A-002.pdf
- chap1.dvi - AI-SAT-1.pdf
- SAT.pdf
- 数理言語 - ke-8-slide.pdf
- ke-8.pdf
- Introduction to Mathematical Logic
- nyumon_logic.pdf
- 06gun_03hen_01.pdf
- 連言標準形 - Wikipedia
- ホーン節 - Wikipedia
- 述語論理.pdf
- 命題論理.pdf
- 7_130.pdf
- 16_202.pdf
- IPSJ-ICS91076006.pdf
- KJ00001303130.pdf
- 0902-10.pdf
- lecture7-dist.pdf
- riron.pdf
- 2000_2a1etc.pdf
- logic.pdf
- D2-2.pdf
- 人工知能のこれまで(2)――論理を越えて - Beyond_Logic.pdf
- nyumon_logic.pdf
- PowerPoint Presentation - OGAWA.pdf
- 人工知能概論 13
- shiryo4.pdf
- 情報に関する技術の理解を目的とした数理論理学の導入 - gijutsukyoiku21924.pdf
直観主義命題論理の命題を投げると解いてくれるbot
- ipc_botの紹介 - 簡潔なQ
- Theorem Prover Advent Calendar 2013 - Qiita
- IPC botさん (@ipc_bot) / Twitter
- buho305.pdf
- 東京大学コンピュータ系サークル TSG
- qnighy/ipc_solver: O(N log N)-space IPC solver in OCaml
- Proving Decidability of Intuitionistic Propositional Calculus on Coq
- qnighy/IPC-Coq: Intuitionistic Propositional Calculus
- qnighy/proofline0: study for making programming language, with linear logic
KL1
ICOT
- ポストGHCにむけて ― 21世紀の計算モデルと実装
- 第五世代コンピュータプロジェクトの記録
- Index of /~ueda/bit-special-issue-5G
- Fuchi Memorial Colloquium
- Fuchi Memorial Colloquium
- Microsoft PowerPoint - hayashiNov25.ppt
- Abduction and Induction: Logical Framework
- (私的)海外研究事情
- Microsoft PowerPoint - furukawa.ppt
- モデル生成型定理証明系MGTPの要素技術 - hasegawa.pdf
- PowerPoint Presentation
- PowerPoint Presentation
- Microsoft PowerPoint - Fuchi-colloquium3.ppt
- Microsoft PowerPoint - matsu071020.ppt
- Microsoft PowerPoint - 渕記念コロキウム-横尾.ppt
Kima
- d-resist2.pdf
- main.dvi
- https://www.ueda.info.waseda.ac.jp/~ajiro/ftp/Readme-kima220-j
- Research
- ローテクと向き合う
- 早稲田大学 研究者データベース
- Kazunori Ueda, Prof.
- GHC-intro.pdf
- Contrtact Research by AITEC in 1996 FY
- Contrtact Research by AITEC in 1998 FY
- https://www.ueda.info.waseda.ac.jp/~ajiro/ftp/use-of-software-J
- KLIC's page
- Inside KLIC Version 1.0
- KLIC 講習会テキスト KLIC システム編
- KLIC 講習会テキスト KL1 言語編
- dklic: KL1 による分散 KL1 言語処理系の実装 - PowerPoint PPT Presentation
- CiNii 論文 - 並列論理型言語KL1の最適化手法
- 修士論文
- Shinji KonoさんはTwitterを使っています 「PSIも触ったことがある。ESPというObject指向なPrologが動く。かっこいい。一応販売されたのかな。ESPもSparc版があり、かなり速かった。KL/1は、もっと流行っても良かったんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「KL/1 は人間のプログラミング能力を越えてる感じがはっきりあった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「もっもと、PIMOSは触ったことはない。あれはどうだったんだろう? 実在したのだろうか? PSIクラスタは動いていたんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「近山先生にPIMOSの話を聞きに行くべきかも」 / Twitter
Prolog
Prolog
- The GNU Prolog compiler
- How do I make an executable?
- Creating a Windows console application from SWI-Prolog
- SWI-Prolog -- Manual
- GNU-Prolog Manual
- O-Prolog
- WAM: Warren's Abstract Machine (Japanese)
組み込み述語
- Prolog の組み込み述語一覧が欲しい - 電脳スピーチ blog
- AZ-Prolog ユーザーズマニュアル
- AZ-Prolog ユーザーズマニュアル
- ncaq/prohell: Prolog like programming language
- M.Hiroi's Home Page / Prolog Programming
- Prolog Programming / 制約論理プログラミング超入門
- Prolog Programming: List Processing (in Japanese)
- 144565694.pdf
- prolog_main.pdf - prolog_main.pdf
- 28_4_108.pdf
- Prolog Cafeで組込述語を作る方法 〜Prolog言語で実装する場合〜 - Qiita
- IPSJ-PRO88048004.pdf
- r5.pdf
- Skyley Networks / マイコンでProlog
- 3年生勉強会 - Prolog (2)
- SIG-SWO-A402-01.dvi - SIG-SWO-A402-01.pdf
- 05_3_Prolog.txt - Prolog.pdf
- C:/‘C”mŸ_ٶ/‘C”m™ƒ−Ô/‘C”m™ƒ−Ô(‚å›ïŠp).dvi - B_25.PDF
- SWI-Prolog 7.1.3の組み込み述語 'term_string / 3'のモジュール名は何ですか? - モジュール、プロローグ、述部、swi-prolog、組み込み
DCG
- Definite clause grammar - Wikipedia
- Prolog DCG Primer
- SWI-Prolog -- Manual
- Tutorial -- Using Definite Clause Grammars in SWI-Prolog
- Learn Prolog Now!
- DCG入門 - Qiita
- Prologの動作原理と自然言語処理 | 東京工業大学デジタル創作同好会traP
- https://home.hiroshima-u.ac.jp/katsuiwa/nlp.html
- 549.pdf
- Prolog Programming: Language Processing (in Japanese)
- 構文解析
- Prolog の Definite Clause Grammar を試す:Rainy Day Codings:So-net blog
- プロローグ-解析 - parsing - Dev4App's Blog
- prolog - DCGパーサのPrologを書くために他の抽象構文であいまい性を取り除く - 答えた
- Prolog のプログラムのことで疑問があります。 - 問:次のことを行うPro... - Yahoo!知恵袋
PDF
- Microsoft PowerPoint - searchtree-2007.ppt
- _pdf
- oksn_065_065.pdf
- 情報数学III 2001年度後期 担当:守屋
- prolog.pdf
Qiita
- PrologによるPrologインタプリタ - Qiita
- Prologで型クラス実装 - Qiita
- Prologで様々な多相型推論 - Qiita
- Miura HidekiさんはTwitterを使っています: 「ISO-PrologからGHC,独自拡張Prologへ https://t.co/zCxfsDC0tJ GHCをハスケルコンパイラではなく、ガードされたホーン節の意味で使う記事をネットでは初めてみた。面白い、ただただ面白い。いろいろ言いたいことがありそう」 / Twitter
- ISO-PrologからGHC,独自拡張Prologへ - Qiita
- Miura HidekiさんはTwitterを使っています: 「α変換のところで、変数として変数名と番号のタプルを使っているとのことだけど、単なる名前なしオブジェクトでよいと思う。名前が必要ならインスタンス変数に名前を入れておけばよいし。つまり、ユニーク性だけが必要なものにちょっとオーバーヘッドが大きすぎじゃないかと思う」 / Twitter
- Pure Prolog in Elixir - Qiita
- Elxghc -Elixir によるGHC実装の試み- - Qiita
- Elxghc -中断の実装- - Qiita
- Elxghc -並列動作とその測定- - Qiita
- Elxlog シンプルでわかりやすい論理&関数型をめざして - Qiita
- Elxlog 実行効率の測定 - Qiita
- エジンバラ文法内でのAND並列の試み - Qiita
- O-Prologの仕様、覚書 - Qiita
- O-Prologのコンパイラ - Qiita
- sasagawa888/Prolog
- sasagawa888/Elxghc
- sasagawa888/Elxlog
- sasagawa888/opl
- Prolog で実装するモデル検査器の心臓部 - Qiita
- Prolog実践入門 - AIに特化した老舗言語 - Qiita
- Prolog 入門 - Qiita
Twitter
その他
- 尾崎隆大さんはTwitterを使っています 「@hatsugai % Prolog 'Prologに関しては、実は非常に単純なことをやっているんだと分からせてくれる解説本がない。どの本も何かに繋げたくての解説になっている。繋いで楽しませてやろうと思っている内容が少々高度なので、理解の進み具合との間にギャップが生じて難しくなる。'.」 / Twitter
- prolog_sukiさんはTwitterを使っています 「質問掲示板とかのPrologの質問、かなりの割合で大学の授業で「やらされている課題を解くための」質問で、本当にPrologに興味持った人が質問しているわけではないので、萎える。一時期積極的に回答してたけどもうやってない。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '注意するまでもないと思うが、私はリストという言葉が大嫌いだから、これを「ならび」と表現している。時にリストと表現している述語もあるが。'.」 / Twitter
- 竹渕瑛一さんはTwitterを使っています 「Prologは再帰定義やカットがなければ,マルバツゲームみたいな言語だからわかりやすい」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 非決定性の述語 '1文字の出現頻度'(_文字列,_文字,_出現頻度) :- bagof(_,'1文字取り出す'(_文字列,_文字),L), length(L,_出現頻度). '1文字取り出す'(_文字列,_文字) :- sub_atom(_文字列,_,1,_,_文字).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これは私の7-8年前のツイートですが、誰でもが当たり前にこう思う時代は何時来るのか。'( 'https://t.co/8RyeB7WyqG').」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「Prologで何ができるかという話ですが、手つかずの領域が多すぎて。コンピュータで処理する。プログラム言語で記述する。それに相応しい領域の常識というのが狭すぎて。それから外れたら、そこは全部Prologの領域です。要するにコンピュータで動くかどうかなんて最初から問題にしていない。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologは型どころか、構造体をつくらないな。述語以外には。'.」 / Twitter
- prolog_sukiさんはTwitterを使っています 「論理学の本読んでるんだけどカット除去理論のカットとPrologのカットって全然別物なのね・・・」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '数式の話が出ましたが、Prologというのは is/2 の第二引数に数式を閉じ込めている。と書くて正確ではない。比較演算子の両辺には数式を書くことができます。ただ言語として遠ざけていることは感じます。私はその先鋒かな。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ほとんどのプログラム言語でPrologを組み込もうとすると、AZ-Prologのような専用の処理系に速度的に勝てない。組込述語の充実など使い勝手でも勝てない。さらにPrologのコードは数理論理学の専門家でない限り、突然に書くことは難しい。それで作っても使われなくなってしまう。'.」 / Twitter
- zimmy_yさんはTwitterを使っています 「Prologでニューラルネットとか計算量が多いプログラムを作る場合、Visual Prologが有力候補です。 Visual Prologは型定義ありで、C言語並みの処理速度です。 私の持っている円周率プログラムでの 1万桁計算時間(AMD 3400G) SWI Prolog 201.813s LPA Prolog 104.823s Visual Prolog 16.875s」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@daigakusenyoo % Prolog 起動プログラムは swipl です。 -q オプションでopening messageが抑制されます。 $ swipl -q ?- append([3,4],[a,b,d],L). L = [3, 4, a, b, d]. ?- halt. $」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog Ubuntuで動かしています $ cat >https://t.co/dDe59M8LRc hello :- write('Hello World!\n'), halt. :- hello. ctrl-d $ swipl -q -f https://t.co/dDe59M8LRc | wc 1 2 13 $」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologの起動ですが、 Windowsの場合は、実行ファイルとして \Program files\swipl\bin\swipl.exe と \Program files\swipl\bin\swiwin.exe の二つがありますが、swiplをPower Shellで呼び出せばよいでしょう。'.」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Prologもパターンマッチは賢いif文だし、バックトラックはちょっと気のきいたgotoだよね (暴言」 / Twitter
操作的意味論
インタプリタ
- h_sakuraiさんはTwitterを使っています 「型システムはPrologでさくっと作るのが簡単なのになぁ t(I,int):- integer(I). t(E1+E2,int):- t(E1,int),t(E2,int). :- t(1+2+3,int). ってだけで作れる。 これを認められない人が多すぎる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「構文木をクォート無しで扱うことは古くて終わっているわけではなく、型理論で実用され続けている。その世界を素直にコンピュータ上で扱いたい。 そのために必要なのが昨今研究が盛んにされている集合論的型システムなのだよな。Union Types あたりがPrologのプログラムを検査するのに使えるといい。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologを使うメリットは単一化や非決定性、集合、一階述語論理などを理解するのに有益だからである。 Prologを理解していれば、CoPLやTAPLの図は理解しやすいし、型推論も理解しやすい。 証明まで行おうとするとPrologは力不足なのでCoqを使う。 その前に、OCamlを使って置くと良いのかな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「i(I,I):-integer(I). i(E1+E2,I):-i(E1,I1),i(E2,I2),I is I1+I2. :- i(1+2+3+4,R),writeln(R). :- halt. Prolog による整数の足し算ができるだけのインタイプリタはこのようにかけて短い。この簡潔性と、構文=抽象構文とできる能力は述語論理の特徴であるので使い慣れると便利だ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「型推論は t(I,int):-integer(I). t(E1+E2,int):-t(E1,int),t(E2,int). :- t(1+2+3,int). :- halt. と書ける。簡潔に書けて意味も宣言的で明確である。Prologがわかればね。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「今書いたPrologのインタプリタは 評価規則 ーーーーーーーーーーー (E-Int) i => i e1=> i1 e2=>i2 i1 + i2 is i ーーーーーーーーーーー(E-Plus) e1+e2 => i 型付け規則 ーーーーーーーーーー(T-Int) i : int e1 : int e2 : int ーーーーーーーーーー(T-Plus) e1+e2 : int と書ける。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologにハマった高校生というのは見たことがないのだけど、Prologを使いこなす高校生がいたら天才だと思うよ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「表記は若干違うけれども、型理論で用いられる形式的言語を自動処理できるのがPrologだ。難しいことはないのでちょっと遊びに挑戦して、スタックマシンのコンパイラを書いたりしてみると世界の見方が一気にトップレベルの研究者のレベルに引き上がると思う。」 / Twitter
histric
- 状態(の変化)*さんはTwitterを使っています 「REST APIの作りとか見てると型付き操作的意味論というのが表示的意味論に寄せてく理由はわかる」 / Twitter
- 3^5さんはTwitterを使っています 「夏休みに全3回くらいの意味論勉強会をやっても良いかもしれない 操作的意味論と表示的意味論の両方から単純なインタプリタを実装する感じで」 / Twitter
- h_sakuraiさんはTwitterを使っています 「プログラミング言語をなんとなく使いこなせても理解していると言える。 文法や操作的意味論を図として書いてその意味が理解出来ればより理解が深くなる。 実装したり、証明しなくても、図を理解するという段階はあるのだな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「人によっては、プログラミング言語の実装や型検査器の実装はできてもBNFや操作的意味論、型付け規則がわからない人もいる。 言語の性質を証明する作業をする場合でもCoqで証明は分かるけど、BNFや型付け規則はわからないという人もいるのだろうなぁ。」 / Twitter
- Tomoaki KobayashiさんはTwitterを使っています 「Standrd MLの操作的意味論感も好きだったが、Haskellの表示的意味論感もだいぶ好きになってきた 特にモナドですよねえ(まあより深淵な分、かなり重い概念にはなってしまっているよなあ)」 / Twitter
- h_sakuraiさんはTwitterを使っています 「操作的意味論の図とかただのPrologだと思ってみると簡単なのだけど、すごそうに見せるものになってて残念だな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「言語作成の、お手軽ツールがOCamlやPrologなのだよな。 お手軽ツールは論文でも多用されており操作的意味論や型理論では述語論理が図に使われている。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「操作的意味論と型システムの本格ならやっぱり新しいPrologの型システム作ってからにしたいと思うけど難しいのだよなぁ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「C言語のコンパイラが作れたら、次に勉強したほうがいいのは操作的意味論だ。操作的意味論に使われる言語は一階述語論理であり、論理型言語のPrologを使えば実装は簡潔にできる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「LLVMの操作的意味論は非決定的マシン状態を持ったスモールステップ評価器として定義されているのでPrologで実装すると楽だよなぁw」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Formalizing the LLVM Intermediate Representationfor Verified Program Transformations https://t.co/M7XWzftAOT POPL12 で Vellvm という話で操作的意味論などの形式化がされてたんだな。」 / Twitter
- Architecture and Compilers Group | Main / HomePage
- h_sakuraiさんはTwitterを使っています 「XMLはDSLを作るには冗長すぎる。S式は単純すぎる。C言語のような表現力が欲しい。関数型言語の代数的データ型は悪くないけど表現力不足だ。Prologみたいなものがいいよなぁと自作するも、操作的意味論の意味も論理型言語で自然に書けるしPrologで良いと気がついて自作は辞めてる今日この頃。」 / Twitter
- muratakさんはTwitterを使っています 「どうでも良いけど Prolog の SLD 反駁は誰がどう見ても操作的意味論だと思うし、出来上がる反駁木は証明っぽい。一方よくある成功集合を不動点で求めるタイプの表示的意味論(宣言的意味論?)は、結局コンパイル先が論理式の集合なので、あんまりモデルっぽくない。(個人の感想」 / Twitter
- Jun InoueさんはTwitterを使っています 「@emptst どっちかというと公理的意味論が証明論に対応してて、操作的意味論は対応するものが無いと思います。論理系では普通考えない「計算手順」を指定するものなので。ただ、さうした手順(遷移関係)を証明したい論理式と捉えると操作的意味論も証明論に対応します。」 / Twitter
- H. M. (ALGI2020@Kyoto, ALC2021@Kyoto)さんはTwitterを使っています 「公理的意味論は表示的意味論や操作的意味論と比べてそれほど定義が明確ではありませんが,基本的にはFloyd-Hoare論理の発展形で,Hoare三つ組などのassertionに対する推論システムだと思います。 https://t.co/rHof4YRj4K https://t.co/IRwOep4A4J」 / Twitter
- Axiomatic semantics - Wikipedia
- Chapter11.pdf
- h_sakuraiさんはTwitterを使っています 「プログラミング言語を設計してよく説明するにはBNFを書いて説明できるのが良いし、言語の仕様を説明するには操作的意味論を説明できるとよい。一階述語論理の規則で説明出来て理解できればそれ以上に難しいことはない。Prologで実装出来てれば自然に一階述語論理は身につく。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Haskell は操作的意味論が明確だし、型の単一化は実装に隠れてるし、型を理解するのはどうせ必要だしで、初心者的には楽なんじゃないかと。」 / Twitter
- らりお・ザ・何らかの🈗然㊌㋞㋰㋷㋓ (Mastodon に引っ越しました)さんはTwitterを使っています 「表示的意味論はプログラムを数学の関数とか写像みたいなのに写すやつ 操作的意味論はプログラムを状態と状態遷移で規定するやつ 公理的意味論はプログラム全体が証明木みたいになるやつ というクッッッッソ雑な説明」 / Twitter
- Shinji KonoさんはTwitterを使っています 「面白いのは数学の基本は操作的意味論を持つ直観主義論理であって、問題を記号的に読み、それを機械的に処理することが数学そのものだってこと。それを算数の文章題に当てはめて文句を言ってる人たちは数学をなんだと考えてるのかってこと。」 / Twitter
- でこれきさんはTwitterを使っています 「@taqenoqo 公理はその体系の中で、証明木の根になれるやつ的なの。意味論はある体系を別の他の何かに言い換えて意味を説明するの(表示的意味論)とか簡約規則みたいなので意味を説明するの(操作的意味論)とか」 / Twitter
- けこさんはTwitterを使っています 「@dico_leque じゃあ推論規則は操作的意味論?」 / Twitter
- でこれきさんはTwitterを使っています 「@taqenoqo そう思ってる」 / Twitter
- けこさんはTwitterを使っています 「@dico_leque なんかモヤモヤしてネットで色々調べてたけど結局前授業でもらった亀山先生の講義資料がめちゃわかりやすかった〜 https://t.co/FckCVHwyTf」 / Twitter
- 画力・博士号さんはTwitterを使っています 「アクターモデルに基づく並行計算の言語を設計するとして,Erlangのreceive式による選択的受信は別に核言語の機能に入れなくていい気がしてきた,型つけはともかく操作的意味論上は “全部一旦受信して,期待するメッセージではなかったら自分自身に送信し直す” でエミュレートできる気がする」 / Twitter
- 画力・博士号さんはTwitterを使っています 「いやしかし型つけがややこしくなるだけか(メッセージの分解をパターンマッチングに帰着させると必然的に強い依存型が必要になりそう)」 / Twitter
- h_sakuraiさんはTwitterを使っています 「第5世代コンピュータの計画は、論理型言語はどうがんばっても高速にできないということがわかったのが功績でもあるけど、それゆえに、多くの人たちが論理型言語を避けるようになってしまった弊害ももたらした。 操作的意味論や、型理論を実装して理解するには Prolog 便利なので使うといいのになぁ。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「技術者として生きる自信急速に潰えてきた,わいは操作的意味論と型システムの各導出規則について思案してこねくり回していればそれで満足なんかもしれん…….」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prolog使って、ラムダ計算の操作的意味論から述語作るとか、構文木の構文検査を作るとか、型推論規則から型検査述語作るとかならすぐできるよね。BNFからコンパイラコンパイラで構文解析は1時間でできるか出来ないかかなぁ。 https://t.co/1uVfB8fTtI」 / Twitter
- h_sakuraiさんはTwitterを使っています 「e ::= i | e+e な言語で ーーーー (E-Int) i => i e1=>i1 e2=>i2 i1+i2 is i ーーーーーーーーー(E-Add) e1+e2=>i から e(I):-integer(I). e(E1+E2):-e(E1),e(E2). e(I,I):-integer(I). e(E1+E2,I):-e(E1,I1),e(E2,I2),I is I1+I2. :- e(1+2+3). :- e(1+2+3,6). みたいなかんじだな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「答えをパッといって嫌われる老害扱いだろうな 他に、型付け検査、部分型付け、レコード、ヴァリアント型、うんぬんとPrologで様々な型システムを実装すると面白いよ。 複雑すぎると1時間で実装できなくなるけどw」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Hackerson 的なことで2週間くらいあれば、型クラスとか、多相レコード、多相バリアントができたりするようになれたりするはず。 線形型、アフィン型なんかも結構短く実装できる。Prologならね。 なぜならば、抽象度が関数型言語より高い、論理型言語だから。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「bnf(G,E):- (G::=G1),G0∈G1,bnf(G0,E). bnf(i,I):- integer(I). bnf(G,E):- G=..[O|Gs],E=..[O|Es],maplist(bnf,Gs,Es). というような推論規則で木に対する構文検査が大体できるようになる。 Prologを使うと木に対するBNFで構文定義が簡単に論理的に定義できる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「S式やXMLはプログラミング言語を記述するには不向きなデータ記述言語だ。Prologのエジンバラ記法はなかなかプログラミング言語を記述するためのデータ記述言語として優れているので、プログラミング言語の実装実験に向いている。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「集合論的型システムは型演算結果の正規化が難しい。 a | b は b | a | a と同じ型だ。 a | b - b は a | b & !b 型であり a 型というような演算を高速に行う必要がある。それに加えてグラジュアルな型システムを導入しないと現状のPrologのプログラムと共存しずらい。型演算をどう高速に正規化するか。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「アルゴリズミックな規則を実装してみるだけならPrologをおすすめします。例: %評価規則 e(I,I):- integer(I). e(E1+E2,I):-e(E1,I1),e(E2,I2),I is I1+I2. %型付け規則 t(I,int):-integer(I). t(E1+E2,int):-t(E1,int),t(E2,int). r(E,T,V):-t(E,T),e(E,V). :-r(1+2+3,int,6). :-halt. https://t.co/QYmgQ7RsDd」 / Twitter
- h_sakuraiさんはTwitterを使っています 「第5世代コンピュータの計画は、論理型言語はどうがんばっても高速にできないということがわかったのが功績でもあるけど、それゆえに、多くの人たちが論理型言語を避けるようになってしまった弊害ももたらした。 操作的意味論や、型理論を実装して理解するには Prolog 便利なので使うといいのになぁ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Rustは低レベルなのでHaskellのほうが抽象度が高くかけて良いけど、Prologのほうがさらに抽象度が高く短く書けることがある。型システムを実装する場合などはPrologを使ったほうが短く書ける。なぜならば、単一化変数やバックトラックがあり、推論規則をそのまま書けるからだ。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「表示的意味論なら式は値を表すし、操作的意味論なら計算の仕方(の一部)も表すけど、「式で場面を表す」というのは論理的に不可能なのでナンセンス。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「自動的に推論規則を動作させることができるということは、型理論で用いられている一階述語論理の操作的意味論を自動的に実行しプログラミング言語として実行できるということである。しかしそれは順番に実行できるように推論規則の順番に気を使って書く必要があるということになる。」 / Twitter
- muratakさんはTwitterを使っています 「ラムダ計算の操作的意味論程度ですら「意味論」と呼んでいるんだから,証明体系による論理式の分類も「意味論」と呼んでなんの問題もなさそうに思える.」 / Twitter
- 相川千穂さんはTwitterを使っています 「操作的意味論、意外と構文論的だという印象を受ける方が多いんですね」 / Twitter
- yaxbellさんはTwitterを使っています 「意味論と証明論の差については、まだ、時間が自分のために使えた時に考えたことがあった。意味論という時には、明示的に、無限の操作を認める場合であって、証明論のときには、有限回の操作しか認めていない、という差がある。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「操作的意味論は意味論じゃない」「項モデルはモデルじゃない」「ゲーム意味論は(簡単な場合を除き)商が出てくるからモデルとして不十分」等々は半世紀以上にわたる現在進行形の論争。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「前向き推論は幅優先探索の操作的意味論においては完全であるけど、実際のPrologの処理系は深さ優先探索をするので不完全なのではないかなぁ。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「表示敵意味論では、プログラミング言語の性質を理解するには不十分なのではないかな。型があっていても実行してみないと停止するかどうかはわからないように、意味は通っていて人間には理解できて計算を完了出来る数式でもPrologの操作的意味を考えると計算が無限ループしてしまう可能性がある。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「操作的意味論としてLispを実装したらこうなりますみたいなのが、PrologでLisp実装だと思うといいと思う。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Lispのプログラムの証明に使う公理の証明だった。公理の証明って変な気もするけど、Lispの操作的意味論(モデル)をAgdaで作って、公理が真であることを示すってことね。Lispの項の等式とその性質を証明するのが面倒。」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「#IPSJPRO 条件式, 再帰関数, quasi-quote の言語機能を HLisp 自身で定義できる.{Landin, '64] の SECD機械の拡張でできている.必要最小限の操作的意味論とはどのようなものか,という興味に基づいている. https://t.co/7JnYGq6TBP」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「#IPSJPRO [Plotkin '75] の流れをフォローします. 操作的意味論. evaluation context で引数部分にちょっとside condition がある (関数部分がマクロのとき引数を評価しないように).https://t.co/vrwFCzJa38」 / Twitter
- はかりさんはTwitterを使っています 「2+3=5を"2+3を計算したら5"と読むか"2+3と5は同じ"と読むかの違いは操作的意味論と表示的意味論の違いっぽい。λ計算ではこの2つは同じになるけど、そういうところの整合性が取れてるのも改めて意識してみるとちょっと楽しい」 / Twitter
- Shinji KonoさんはTwitterを使っています 「プログラミング言語を複雑にするとなんとかなると思っている人たちが一定量いるらしく。それよりは、テストとか証明とか検証とかの仕組みが欲しい。それには複雑な操作的意味論は邪魔。アセンブラでやれってわけでもないんだが。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「(gitの操作的意味論書き下しはやりたいことの1つだったけど既にやっている人がいた!)」 / Twitter
- 吉村 優 / YOSHIMURA YuuさんはTwitterを使っています 「@bd_gfngfn データタイプアラカルテの著者(?)がバージョン管理の意味論に関する論文を発表していて、僕もバイナリファイルとテキストファイルで一体何が違うのか?というのは長年の疑問です。 https://t.co/WhwdodFGO7」 / Twitter
- 2014-onward.pdf
バックトラック
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ならびを昇順に整列して順位を振る。ただし値に重複はない。'(_ならび,_順位,_値) :- sort(_ならび,_整列したならび), append(L1,[_値|_],_整列したならび), length([_|L1],_順位). 'ならびを昇順に取り出す。ただし値に重複はない。'(_ならび,_値) :- bagof(_,member(_値,_ならび),_).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これで分かることは、Prologは順位を振るという作業は得意ではありません。その理由は非決定性の述語をバックトラックで処理しようとすると、今何位目というカウント情報がバックトラックにより無効となってしまうからです。この観点からappend/3の偉大さを感じさせられます。'.」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologの限界は評価順が深さ優先探索しか選べないことにあるので、それ以外の戦略をオプショナルに選択できると嬉しい。遅延評価だったり、幅優先探索だったりしていいし、バックトラックなしにできたり、変数の単一化ができなくなるオプションとかあっていいと思う。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologの遅さの原因はバックトラック、単一化や、静的型システムがないための最適化能力不足にある。Mercuryみたいな言語は論理型言語に1つの型システムを加えるけど型にハマったプログラムしかかけなくなるので困ることもある。場合によって型システムを選択できると嬉しいのだよなぁ。」 / Twitter
カット
- 尾崎隆大さんはTwitterを使っています 「% Prolog カット(!)が何故必要か 成績を判定する(_成績,不可) :- between(0,59,_成績),!. 成績を判定する(_成績,可) :- between(60,79,_成績),!. 成績を判定する(_成績,良) :- between(80,89,_成績),!. 成績を判定する(_成績,優) :- between(90,100,_成績),!. 成績を判定する(_,異常値).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog もし以下の定義であると 成績を判定する(_成績,不可) :- between(0,59,_成績). 成績を判定する(_成績,可) :- between(60,79,_成績). 成績を判定する(_成績,良) :- between(80,89,_成績). 成績を判定する(_成績,優) :- between(90,100,_成績). 成績を判定する(_,異常値).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- 成績(84,_成績). _成績 = 良 ; _成績 = 異常値 ; false. ?- 'のようなことが起こってしまう。最後の定義節の頭部の第一引数が変数であるため、ここがどんな値でもこの節は真になる。カットがあれば、この節に到達しなくなるから、「異常値」という解がでることは避けられる。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog これならOK 成績を判定する(_成績,不可) :- between(0,59,_成績). 成績を判定する(_成績,可) :- between(60,79,_成績). 成績を判定する(_成績,良) :- between(80,89,_成績). 成績を判定する(_成績,優) :- between(90,100,_成績). 成績を判定する(_成績,異常値) :- \+(between(0,100,_成績)).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- 成績を判定する(59.5,_成績). _成績 = 異常値. 'さて、between/3の第三引数に生成される値は実は整数である。したがって、整数でない値の59.5が入力されると \+(between(0,100,_成績)) が真となって、「異常値」が返される。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologのマニュアルでは、between/3のような組込述語でも、第一引数の型のような情報は載っていない。そもそもPrologでは型という概念が事実上存在しない。関数評価する為の式はあるから計算可能なものかどうかの判定はしている。整数とか浮動小数点数とか。しかしこれは「特例」。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '本来ならば、整数も浮動小数点数も必要なく、全部アトムでよかったはずだ。>,<,>=,=<,=:=,=\=,is。これら全て二引数の述語であるが、この引数にある特殊なアトムは計算可能だと。それだけで済む。そのアトムがどんな可能性を持つアトムであるか問う述語としてinteger/1があってもよいが。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '組込述語 forall/2 ですが、 第一引数を実行して、真になった条件で、第二引数を実行します。そして、この条件での第二引数の実行が全て真になった場合、forall/2の実行は真になる。 第一引数が偽で第二引数が実行されない場合は、 ?- forall(fail,true). true. は、真となります。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ということは、 'Pの否定'(P) :- forall(P,fail). と書くことができる.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '否定の定義にカットが必須だと言う話。 forall/2で書くことができるではないかとなりますが、forall/2の定義の中にカットが必要ないならば、胸を張れますが、そういうわけにはいかないでしょう。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'すみません。これ、 ?- forall(fail,fail). true. という例にするべきでした。それから、 「そして、この条件での第二引数の実行が全て真になった場合、」は 「そして、全ての第一引数の実行が真になった条件で第二引数の実行が真になった場合、」でした。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'forall/2の定義を論理的にPrologで定義するならば、当たり前に (\+)/1 が使われているだろうという意味ですね。(\+)/1 を使わなくても、それにあたることを述べる時にやはり、カットが必要になるだろうと。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog カット ! ?- findall(_行ストリング,(repeat, (at_end_of_stream(current_input),!,fail; read_line_to_string(current_input,_行ストリング))),_行ストリングならび).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'findall/3,setof/3,bagof/3,forall/2などの事実上のループからの脱出用のカットです。'.」 / Twitter
単一化
- 尾崎隆大さんはTwitterを使っています 「% Prolog (a,b) は ','(a,b) という項と同じです。 , という関数子を中置きしているのは、 ?- current_op(A,B,','). A = 1000, B = xfy. 演算子定義されているからです。xfyの意味は左側にはこの関数がもはや来ることはない。右側には再帰的にこの項を持つことができるという意味です。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ですから a,b,c は ','(a,','(b,c)) という結合であると解析されます。(a,b,c) の ()は (a,b,c) = X だとイコールの左側とXが単一化されますが、 a,b,c = X だとXと単一化されるのはcだけで、a,bは目標だと解釈されます。それは意図に反するからここからここまでの「連言」だと指定する。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'その目的の為に()が使われています。従って、ここで大事なのは , の方で()は便宜的なものだと考えることができます。これで、 ?- (X,Y) = (a,b,c). X = a, Y = ','(b,c). の意味がお分かりでしょう。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- (X,Y) = (a,b,c,d). ならば X = a, Y = ','(b,','(c,d)). ですが、 ?- (X,Y) = (a,b,c,d). ならば X = a, Y = (b,c,d). でも構いません。要は項の(インタプリタによる)見せ方の問題です。 大事なことは , が演算子定義で xfy の形式だと定義されているということです。」 / Twitter
アトム
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ここでSWI-Prologのprolog_flagの使い方の話をしましょう。 ?- current_prolog_flag(allow_dot_in_atom,X). X = true. 'だと、 尾崎.隆大 というようなアトムが可能になります。昨日、整数とか浮動小数点数なんてなくてもよいという話を書きましたが、この話が前提になっています。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これが、 X = false. SWI-Prologの起動時(初期値)はfalseになっていますが、 3.14 のような文字列はアトムになり得ません。基本的に数字から始まってもアトムだとPrologを設計し直そうとした場合、この小数点のドットの扱いが問題になるのです。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '基本的にアトムにドットが含まれていても問題ないというモードのもとで、数字と文字の区別をしないというルールにPrologを改めた時に、型の片鱗もないPrologが実現するのでしょう。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ' =:= や 大小符号の両辺。それに is/2 の第二引数の中にある評価しなくてはならないアトムの検査はどうするの?型が必要ではないかと言われるかも知れないが、そういうことはErlangやElixirにでも委託してしまえば良いのではないか。Prologで計算しなくても良いのではないか。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '他言語との連携の遅延を0にすることはできないし、他言語側で計算可能かどうかアトムの評価をしてもらわねばならない。やはり、難しいか。PrologとErlangが一体のものであるのならともかく。'.」 / Twitter
append
- 尾崎隆大さんはTwitterを使っています 「% Prolog 分解/3は、append/3の第三引数を第一引数に持ってきたもの。 分解( L1 , [] ,L3) :- L1 = L3. 分解([A|L1], [A|L2],L3) :- 分解(L1, L2 ,L3). '第二節で第一引数の頭を削った残りを第一節の第三引数として取ることができる。第二引数は・・・頭からコピー。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog もちろん実行は. ?- 分解([1,2,3],X,Y). X = [], Y = [1,2,3] ; X = [1], Y = [2,3] ; X = [1,2], Y = [3] ; X = [1,2,3], Y = [] ; false. となる.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ふたつのリストを結合した新たなリストを生成するのがappend/3だった。 append(L1,L2,L) このappendから、図らず思いがけず、分解/3の機能が発見された。非決定性に、双方向性に。 結合のappendが書かれてから、分解のappendの全てが解明されるまでに3-4ヶ月が掛かったということだ。'. https://t.co/DweT0hYnqt」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「すげえ美しい定義だ。これが動くのだから、Prologってスゲーなと思う。(オレのボキャ貧に絶望」 / Twitter
- それさんはTwitterを使っています 「@KISUGI_JINEN @TakaoOzaki 動作は分かるのですが append([],L,L). append([X|L1],L2,[X|L3]):- append(L1,L2,L3). の定義で、何故そうなるのか想像するのが難しいです」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@miyako_yayo @KISUGI_JINEN % Prolog 'Prologを開発したコルメライワのグループは1972年の12月頃には、Prologが使えるようになり、appendの書き方も発見されたのですが、この述語の可能性を全て理解するのに四ヶ月くらいは掛かったという伝説があります。彼らにしてそうですから、やはり正直難しいのでしょう。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@miyako_yayo @KISUGI_JINEN % Prolog '神話とはしましたが、実際の話のようです。'. append([],L,L). append([A|L1],L2,[A|L3]) :- append(L1,L2,L3). select(A,[A|L],L). select(A,[B|L1],[B|L2]) :- select(A,L1,L2). '下は非決定性のパターン。この二つを理解できれば、Prologの再帰述語は怖くない。'.」 / Twitter
- 来生自然さんはTwitterを使っています 「@miyako_yayo @TakaoOzaki 何となく分かる。。。 https://t.co/jiyto20QPZ かも。。。」 / Twitter
- [Prolog][Memo] append/3 | Basic Werk
select
- 尾崎隆大さんはTwitterを使っています 「% Prolog ' append/3 はもしかして神様というものがいるのかと思わせる作品ですが、昨今これ以上に使われているのが select/3 です。定義は select(A,[A|R],R). select(A,[B|R1],[B|R2]) :- select(A,R1,R2). 一個取り出して、それ以外の要素も参照できる非決定性の述語です。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- select(A,[1,2,3],R). A = 1, R = [2,3] ; A = 2, R = [1,3] ; A = 3, R = [2,3]. false. ?- member(A,[1,2,3]). A = 1 ; A = 2 ; A = 3 ; false. に似ていますね」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- append(L1,[A|L2],[1,2,3]). L1 = [], A = 1, L2 = [2,3] ; L1 = [1], A = 2, L2 = [3] ; L1 = [1,2], A = 3, L2 = [] ; false. ですから. ?- append(L1,[A|L2],[1,2,3]),append(L1,L2,R). 'これでA,Rに関しては先程のselect(A,[1,2,3],R)と同じ結果が順に得られます'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'この最後の ?- append(L1,[A|L2],[1,2,3]),append(L1,L2,R). ですが、「やっ」と一瞥すると、その途端に 何をやっているのか分かってしまう。 そういう動きとかに交渉をもたない理解が生まれる。宣言的とか言ってしまうと面白くないのですが、この脳内で何も動かすことのない理解。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これがPrologの醍醐味ということでしょう。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'select/4が大変重宝だということは何度も書いた。 select(_取得値,[_取得値|R],_更新値,[_更新値|R]). select(_取得値,[A|R1],_更新値,[A|R2]) :- select(_取得値,R1,_更新値,R2). という定義になる。取得値をキーにして取り出し、これを更新値に置き換えるという使い方になる。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'さて、それでは取得値をキーにするのではなく、何番目の要素であるかを指定してこれを更新する組込述語はというと、ないらしい。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 何番目の要素かを指定してならびを更新する(_ならび,_何番目,_更新値,_取得値,_更新されたならび) :- length([_|L1],_何番目), append(L1,[_取得値|L2],_ならび), append(L1,[_更新値|L2],_更新されたならび). 'これで書くことができているがselect/4のようにappendを使わず再帰で書くと'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog こんな感じかな nth1_select(_nth1,_取得値,L,_更新値,L2) :- nth1_select(1,_nth1,X,_取得値,_更新値,L2). nth1_select(N,N,_取得値,[_取得値|R],_更新値,[_更新値|R]). nth1_select(M,N,_取得値,[A|R1],_更新値,[A|R2]) :- M2 is M + 1, nth1_select(M2,N,_取得値,R1,_更新値,R2).」 / Twitter
findall
- 尾崎隆大さんはTwitterを使っています 「% Prolog 文字列の分解の例(_分解された文字列) :- findall(_文字,sub_atom(大草原不可避,_,1,_,_文字),_文字ならび,['']), atomic_list_concat(_文字ならび,w,_分解された文字列). https://t.co/IBes0l34km」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '1980年頃には知られていた findall/3 ですが、 findall/4 は相当に新しいと思います。第四引数に差分リストがくるのがこの述語ですが、 atomic_list_concat/3 が第二引数を植木算的に間にしか入れないために不十分で、空文字を番兵的に差分リストの中に使って最後のwを挿入しています。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- 文字列の分解の例(_分解された文字列). _分解された文字列 = 大w草w原w不w可w避w . ?-」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '実は、 findall(_文字,sub_atom(大草原不可避,_,1,_,_文字),_文字ならび,['']), の部分は本来、 atom_chars(大草原不可避,_文字ならび), でよいのだが、それだと _分解された文字列 の最後にwを付ける機会が一番最後になってしまう。それでfindall/4という凝った組込述語を使ったわけだ。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '一旦、 大w草w原w不w可w避 という文字列を作り、その最後に atom_concat/2 の第二引数をwとして実行して完成するというのは、癪なので。'.」 / Twitter
行入力
- 尾崎隆大さんはTwitterを使っています 「% Prolog 空白区切りの行入力(_入力,_文字列ならび) :- read_line_to_string(_入力,_文字列), split_string(_文字列," ","",_文字列ならび). カンマ区切りの行入力(_入力,_文字列ならび) :- read_line_to_string(_入力,_文字列), split_string(_文字列,",","",_文字列ならび).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ということで '文字列を区切り文字列で分割する。ただし、区切り文字列も要素として残す。'(_文字列,_区切り文字列,_置換された文字列) :- 文字列を区切り文字列で分割する(_文字列,_区切り文字列,L), ならびの空文字要素を置換文字列に変換する(L,_区切り文字列,_置換された文字列ならび). https://t.co/2HcnrAWB4M」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 今の所こんな迂遠な方法しか思いつかない。 ?- 文字列を区切り文字列で分割する(尾崎隆大,崎隆,L), ならびの空文字要素を置換文字列に変換する(L,崎隆,_置換された文字列ならび). L = [尾,'',大], _置換された文字列ならび = [尾,崎隆,大].」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 基本的にはこれでよいのでは。私はStringは使いませんが。 '入力 1行に1つ そのまま変数へ'(_変数) :- read_line_to_string(current_input,_変数). https://t.co/Pgnk42mDR1」 / Twitter
- Prolog競プロ用チートシート - Qiita
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ファイルから情報を読み取る場合、Prologでは see(_ファイル名), としてストリームを形成してきました。 読み込み述語が read/1 の場合、end_of_fileを読み込むことによってファイルの終了を認識しました。そのことから、ひとつ不都合が生じました。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'それは、読み込み述語の第一節に停止節を起きたい場合に起こります。 読み込み([]) :- read(end_of_file),!. 読み込み([A|R]) :- read(A),読み込み(R). のようなコードを実行すると、第一節で read が空転して、結果一つ跳びに情報が取れてしまう。副作用の弱点が出る。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これを解決するのが、伝統的な、そう、先読みですということになる。COBOLではあるまいし。ここでは先読みのコードは載せませんが、実は解決策がある。第一節を、 読み込み([]) :- at_end_of_stream(current_input),!. ・・・ とするのです。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ' see(_ファイル名), で作られたストリームが後に変更になっていない場合は、現在のストリームをcurrent_inputで参照できます。そしてそれを使って、at_end_of_streamを認識できる。いわばpeekできる訳です。これも副作用だが、覗くだけなら悪さはしないということになります。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'これで、先読みのような不自然なコードから解放されます。ところが、実は事務処理のプログラムなどでは、この先読みによって、ひとつ前の情報が常に引数にあって、それをプログラムの中で自然に参照できて、情報の比較をすることの役に立っているいうこともあるのです。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ただ、現在のPrologのコードスタイルとしては、情報はできるだけ、データベースに展開するか、全データをリストに取り込んで処理に行くというのが主流で、ファイルを読み込みながら何かをすることは少ない。私も先読みで処理するコードを書く機会はほとんどなくなりました。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'split_stringに訂正。 read_line_to_integers(L) :- read_line_to_string(current_input,String), split_string(String," ","",LL), maplist(integer_string,L,LL). integer_string(Integer,String) :- number_string(Integer,String), integer(Integer). となる。'. https://t.co/mL5NlwhO7N」 / Twitter
CSV
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび) :- read_line_to_string(_入力,_ストリング), split_string(_ストリング,",","",_ストリングならび), maplist(string_to_atom,_ストリングならび,_項目ならび).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの処理(カンマ区切り)'(_ファイル,_項目区切り行ならび) :- open(_ファイル,read,_入力), findall(_項目ならび,( repeat,(at_end_of_stream(_入力),!,fail; 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび))),_項目区切り行ならび), close(_入力).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 再帰で 'csvファイルの項目区切り行を全て読み込む'(_入力,[]) :- at_end_of_stream(_入力),!. 'csvファイルの項目区切り行を全て読み込む'(_入力,[_項目ならび|R]) :- 'csvファイルの行処理(カンマ区切り)'(_入力,_項目ならび), 'csvファイルの項目区切り行を全て読み込む'(_入力,R).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'csvファイルの処理(カンマ区切り)'(_ファイル,_項目区切り行ならび) :- open(_ファイル,read,_入力), 'csvファイルの項目区切り行を全て読み込む'(_入力,_項目区切り行ならび), close(_入力). '再帰だと、文字数制限の為すこし不自然なところがありますが、ざっとこんな感じになります。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 文字列からカンマで区切られたアイテム数を得る(_文字列,_アイテム数) :- split_string(_文字列,",",",",_アイテムならび), length(_アイテムならび,_アイテム数).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog アイテムをアトムとして取り出したい 'CSV形式の文字列から任意のアイテムを取り出す'(_文字列,_アイテム) :- split_string(_文字列,",",",",_アイテムならび), member(S,_アイテムならび), string_to_atom(S,_アイテム).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 文字列の両端にあるダブルクォーテーションを取り除く(_文字列,_取り除いた文字列) :- 副文字列(_文字列,'"',_取り除いた文字列,'"'). 副文字列(_文字列,_前文字列,_副文字列,_後文字列) :- atom_concat(_前文字列,_残り文字列,_文字列), atom_concat(_副文字列,_後文字列,_残り文字列).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「文字列の両端にあるダブルクォーテーションを取り除く(_文字列,_取り除いた文字列) :- 両端の文字はダブルクォーテーション(_文字列), sub_atom(_文字列,1,_,1,_取り除いた文字列). 両端の文字はダブルクォーテーション(_文字列) :- sub_atom(_文字列,0,1,_,'"'), sub_atom(_文字列,_,1,0,'"').」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologで最も簡単なsplit処理は ?- atomic_list_concat(L, ',' ,'abc,def'). L = [abc,def]. だろう。これにはSWI-Prologではの但し書きが付く。'.」 / Twitter
エラーと偽の区別など
- 尾崎隆大さんはTwitterを使っています 「% 翻訳は 'プロパティベースのテストでは、反例を縮小すると他のバグが明らかになる可能性があります。 優れた実装は、これらの他のバグも報告します。 しかし、論理プログラミングはこれを本質的に困難にします。バグはしばしば失敗を引き起こし、失敗は有益ではなく、区別することができません。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ここまでの主張はPrologが日本に紹介された頃から言われていたことで目新しさはないのだが、この続きが読みたい。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'コメントすると、Prologではエラーと偽の区別がし難いということが言われます。ここでは、それとは少し違って、 「確信をもって偽としたもの」と、非決定性述語の解をすべて取得する際に(一時的に)偽になったものが、同じ制御上に乗ってしまうため区別をつけられないの意味だと思います。'.」 / Twitter
DB
- Sadayuki FuruhashiさんはTwitterを使っています 「RDBMSって視点によっては「プログラマブルなデータストア」で、データモデルはリレーショナルモデルに基づいていて、SQLでプログラムできる。一方、アプリケーションってプログラマブルじゃない。今その間が必要とされている。RDBMSほど柔軟性があっても困るけど、プログラマブルなデータストア。」 / Twitter
- 市川 真一さんはTwitterを使っています 「Prolog インタプリタに永続性を追加したもの、みたいな https://t.co/YXYiPrQBM8」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「RDBMSよりずっと柔軟性が高い、GemStone/Sはいかがでしょう?Smalltalkというプログラミング言語処理系がまるっと載ってます。 https://t.co/nKSlUd7ZYS」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'インメモリデータベースに採用される索引機構で書き込み速度の速いものはどんなものがあるのだろうか。Prologデータベースの弱点というよりも、Prologの弱点は定義節の追加が定義節数が多くなるに従って目に見えて遅くなることなので。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologでは、同一述語の定義節数が数千万を超えると書き込み速度が落ちる。これは第一引数に暗に、索引が振られていて、それがハッシュで、ハッシュテーブルの作り直しを強いられているのではないか。第二、第三、・・第n引数にも索引は欲しいのだから設計の変更が必要ではないか。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '私の現在使っているマシンは物理10コアですが、 SWI-Prologで8-threadで並行処理をすると、逐次的に処理するのに較べ、7.74倍速くなります。メッセージ交換がない場合ですが。threadを気楽に使うことができるようになりたいものです。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは何故8倍にならないかですが、これは唯一箇所にある1億節のデータベースを各スレッドが共通して参照しているからです。データベースをコアのcacheに収まるくらい小さくして、8-threadにすれば、8倍に極めて近くなるはずです。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% prolog 'Prologデータベース(頭部のみで本体がないもの)の定義節のn番目を取得するためには nth_clauseという組込述語を使います。この述語の使い方は少々難しいので、 ''from:@TakaoOzaki nth_clause'' とツイッター参照をしてみてください。結構書き込んであります。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'SWI-Prologの場合、予め、以下の定義をしておく。 第n節の頭部(_n,_頭部) :- nth_clause(_頭部,_n,Ref), clause(_頭部,_,Ref). ?- 第n節の頭部(2,氏名(X)). X = 東竜太郎 . '. https://t.co/s7UUAqHvQ3」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog の問題です ' 氏名(尾崎行雄). 氏名(東竜太郎). 年齢(60). 年齢(67). 氏名と年齢をばらばらに定義してしまいました。これを [[尾崎行雄,60],[東竜太郎,67]] のように定義順にまとめたい。そのためにはどんな述語を定義すればよいか。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ?- findall([_氏名,_年齢],( 第n節の頭部(_n,氏名(_氏名)), 第n節の頭部(_n,年齢(_年齢))),L). L = [[尾崎行雄,60],[東竜太郎,67]]. ?-」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '現在インタプリタに動的に定義されている述語の定義節、その10001節目から20000節目までを切り取りたい。こんな場合、 ?- tell(temp),listing(述語名),told. のように仮ファイルに書き出して、vimのようなエディタで処理するのが普通。そうではなく、これを直接処理したい場合もある。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologを高速に動かすためには 給与_社員名('026',尾崎隆大). 逆_給与_社員名(尾崎隆大,'026'). 給与_総支給('026',150000). 逆_給与_総支給(150000,'026'). のように持てばよい。 泣き所は_idの管理の難しさと、大量のassert時の第一引数のハッシュテーブルの更新が原因の遅延。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'foo/2が1億節定義されているとする。その第一引数に2000のアイテムがランダム(平均50000)に選択されて現れる。さて、 ?- bagof(_,B ^ foo(A,B),_). Aをキーとして取り出す。第一解が現れるまで550秒掛かった。何度繰り返してもほとんど変わらない。この時間では実用にはならない。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '要するに1億要素の重複を取り除いた結果2000要素となるソートの実行時間が9分間掛かったということだ。バッチ処理で、このキーが取得できさえすれば処理を完了できるというのならば、9分掛かっても構わないというになるのだろうが。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'なんで1億節というような、普通Prologでは扱わないような述語定義の話になるかというと、一昨日かな、失業保険のシステムの話が出たから。日本の場合は、1億人を管理することもあるのだろうから、述語定義もそういう単位になる。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog データべースの解を再帰で集める(P,L) :- データべースの解を再帰で集める(1,P,L). データべースの解を再帰で集める(M,P,[P|R]) :- copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), succ(M,N), データべースの解を再帰で集める(N,Q,R),!. データべースの解を再帰で集める(_,_,[]).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog これだと末尾再帰 データべースの解を再帰で集める(M,P,[]) :- \+nth_clause(P,M,_),!. データべースの解を再帰で集める(M,P,[P|R]) :- copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), succ(M,N), データべースの解を再帰で集める(N,Q,R).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'このcopy_term/2が必要な辺りがキワモノっぽい。 copy_term(P,Q), nth_clause(P,M,Ref), clause(P,_,Ref), clause/3の第二引数(本体の部分)を匿名変数にしているが、clauseはcallではない。定義は参照されるが、本体が導出される訳ではない。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '言うまでもないことだが、こんな定義は本来必要ない。 データベースの解を集める(P,L) :- findall(P,P,L). だけで済むのだから。nth_clause/3の使い方の例として示してみただけ。'.」 / Twitter
規則外の意味比較
- ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 命題を真偽判定可能な単位に分割し、単位毎に既知の知識に照合して推論するのがPrologだと理解していますが、設問をもって「既知の知識」を自己拡張する能力って持ってましたっけ?」 / Twitter
- JO3ALTさんはTwitterを使っています 「@uchujin17 当然、規則外の意味比較には対応していないはず。なので、あまり結果は良くなかったような記憶があります。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 僕も卒研はいちおう「人工知能」だったんですが、当時の人工知能は教授がモデルを作り、学生はひたすら既知データを打ち込んで、そこに設問を入れて正解率を見てみる、という原始的なものでした。正解率の上下で一喜一憂するけれど、その原因が何なのかは解析できていませんでした。」 / Twitter
- ウチューじん・ささきさんはTwitterを使っています 「@Jo3Alt 打ち込んだ既知データがどれだけ正しいのか、打ち込み時にミスが無かったかどうかの検証も怪しいもので、GIGOをこねくり回している感がありました。だから僕は「人工知能」に絶望して、それが21世紀になってこんなに発展したことに驚いています。」 / Twitter
flatten
- Shinji KonoさんはTwitterを使っています 「Prologを書けるようになったと感じたのはflatten書いてから。木構造を平らなリストに展開するやつね。そこから簡単な並列言語を作るまで2ヶ月くらい。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 昨日@shinji_kono先生が言及されていたflatten/2 my_flatten(L1,L2) :- my_flatten(L1,[],L2),!. my_flatten(V,L,[V|L]) :- var(V),!. my_flatten([],L,L). my_flatten(A,R,[A|R]) :- \+list(A),!. my_flatten([L1|R1],L2,L) :- my_flatten(L1,L3,L), my_flatten(R1,L2,L3). list([_|_]).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'やはり、my_flatten/3の第三節の第二・第三引数のやり繰りが難しい。先生の感想もここら辺りを発見/理解できて、自信が付いたということなのでしょう。差分リストの類ですが、quick_sortの中に現れるそれよりは易しいと思います。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'すみません。間違い。 my_flatten/3の第四節になりますね。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'さらにすみません。 この第四節の第一引数のなかにR1となっているところがありますが、ここはRとしてください。R1でも構わないのですが、そして第一引数を強調しての1なのですが、他にRなんとやらが現れない場合はRだけにした方がよいでしょう。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '細かなことはともかく、 my_flatten([L1|R1],L2,L) :- my_flatten(L1,L3,L), my_flatten(R1,L2,L3). この第二引数・第三引数の ・・,L2,L) :- ・・,L3,L), ・・,L2,L3). というパターンは頭に入れておくとよいですね。append/3の定義を覚えておくとよいように。'.」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@TakaoOzaki 変数なし想定で書いた方が良いです。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@TakaoOzaki これで学ぶのは差分リストの使い方なので。変数が入る場合は最初にnumbervarsで変換してしまうのが楽です。理論でもそうするみたいです。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「差分リストはPrologを使うプログラミング的な利点なのだが、Prologの持ってる論理的基礎とは相性がよろしくない。まったく合わないってわけでもないんだが、希望を砕くくらいにはずれてる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「上田先生のX’talは自身でモデル検査できるので、もう少し注目されても良かったが… まだ、ギリギリPrologと言える感じ? いや、別物?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ここからたどれるのかな。KL1Cがあるな。 https://t.co/a9OnMrdA6w」 / Twitter
- Kazunori Ueda, Prof.
- 尾崎隆大さんはTwitterを使っています 「% Prolog my_flatten([],[]). my_flatten([[A|R]|R1],L3) :- my_flatten([A|R],L2), append(L2,R2,L3), my_flatten(R1,R2),!. my_flatten([A|R1],[A|R2]) :- my_flatten(R1,R2). '変数を除外しましたが、append/3を差分に使ったこのコード。意外なことに最速かも知れない。'. https://t.co/CN5FcXuXav」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog my_flatten(L1,L2) :- my_flatten(L1,[],L2),!. my_flatten([],L,L). my_flatten([[A|B]|R1],L2,L) :- my_flatten([A|B],L3,L), my_flatten(R1,L2,L3),!. my_flatten([A|R1],R,[A|R3]) :- my_flatten(R1,R,R3). 'これが最速コード。先程のappend/3を使ったコードとの差は3%程度です。'.」 / Twitter
ソケット
- 尾崎隆大さんはTwitterを使っています 「% Prolog udpを書いたから今度はtcp tcpソケットの準備(_接続用ソケット,_ポート) :- tcp_socket(_接続用ソケット), tcp_bind(_接続用ソケット, _ポート), tcp_listen(_接続用ソケット, 5).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog サーバーサイドはこんな流れ 接続要求を確認したら接続用ソケットを開く(_接続用ソケット,AcceptFd) :- tcp_open_socket(_接続用ソケット,AcceptFd,_). tcpインタプリタ(AcceptFd) :- repeat, 行を読みだして実行(AcceptFd), fail.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog ストリームを準備するのはこの段階 行を読みだして実行(AcceptFd) :- 接続されたら実行用ソケットを開く(AcceptFd,_実行用ソケット,_Peer,In,Out), 一行読み出し項に変換(In,_項,_エラー情報), インタプリタの実行(_実行用ソケット,In,Out,_項).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 接続されたら実行用ソケットを開く(AcceptFd,_実行用ソケット,_Peer,In,Out) :- tcp_accept(AcceptFd, _実行用ソケット, _Peer), tcp_open_socket(_実行用ソケット, In, Out), set_stream(Out, encoding(utf8)), set_stream(In, encoding(utf8)).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog インタプリタの実行(_ソケット,In,Out,_項) :- 親タスクで実行(In,Out,_項), 子タスクで実行(_実行用ソケット,In,Out,_項).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 親タスクで実行(In,Out,_項) :- 項は親タスクで実行するべきもの(_項),!, 親タスクで実行(In,Out,_項,_エラー情報), fail. 親タスクで実行(_,_,_項) :- 項は子タスクで実行するべきもの(_項).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 話が前後するが、トップレベルは サーバ(_ポート) :- tcpソケットの準備(_接続用ソケット,_ポート), 接続要求を確認したら接続用ソケットを開く(_接続用ソケット,AcceptFd), tcpインタプリタ(AcceptFd).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 以下のような流れに 子タスクで実行(_実行用ソケット,In,Out,_項) :- thread_create(項を実行して結果を返す(In, Out, _項),_,[]). 項を実行して結果を返す(In, Out, _項) :- 目標評価(In, Out, _項), '項を書き出し、空行を送信する'(Out,_項), ストリームを閉じる(In,Out).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'ここでは、tcp/ip関係の組込述語がどのような順序で使われるかを見ていただきたい。'.」 / Twitter
引数の数
- み。さんはTwitterを使っています 「本タワーの一つにErlangの本があって読んでいるけど、大学の時のPrologの記憶が意外と残っててびっくりする。「関数に引数の数をarityと呼ぶ」というのを見て、ああarityねみたいになったけど、よく考えたら他で使ったことない単語だ。」 / Twitter
- み。さんはTwitterを使っています 「arityって英単語として関数が取る引数の数という意味があるみたいだけど、これまで全然見なかったのは単に自分が勉強した範囲でたまたま使ってないだけかな。日本語だったら引数の数って表現すればいいから使う必要がない説もある。」 / Twitter
- み。さんはTwitterを使っています 「数学とか論理学の英語論文とか読んでる人には馴染みのある単語なのかもしれない。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'そうです。誰もがすぐに覚えることができます。堀江さんが書かれたことしかありません。 つけ加えるならば単一化をしっかり学ぶこと。 バックトラックですが、これは確定節で考えてみること。 家族関係が例題によいのは、確定節(Prologの場合本体がないもの)が定義の主体になるからです。'.」 / Twitter
- 堀江 伸一さんはTwitterを使っています 「Prolog言語布教。 Prologは事実と規則と計算式の判断をAndで結んで、全部満たすものを深さ優先探索で探します。 幾つか候補がある時はバックトラックして全部探します。 何だか言葉で書くと難しそうですが、定番入門の家族関係のコードを自分で写経すればすぐわかります。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '一方、少し変なところもあります。昨日の書いたものを例にとります。 P(_) :- Q1(_),Q2(_),Q3(_). Q1の真偽が確定して、真なってから、Q2に進み、これも真なったらQ3へ、Q3も真になった場合、Pが真になります。 順番があります。あたかも時間的な順序があるかのように。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Q1->Q2->Q3の順ではなく、 Q3->Q1->Q2の順だってよいではないか?ということが当然あるわけです。 これは多分ですが、Prolog成立時に 「論理式がプログラム言語になる!!!」 という驚きが先行してあり、その時点でのプログラム言語の像が FORTRAN,ALGOL,PASCAL に代表されるものだった。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '乃ち基本的に書かれた順にコマンドは解決される。サブルーチンはそれが解決されてから次に移る。それがプログラムの像でした。 それに合わせることが優先された。 「Q1 and Q2 and Q3 を手続きとしてみればいいじゃないか」 そのためには、Q1が解決してQ2に進むという順序が必要だった。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '論理式の連言を手続きに見做そうというのだから無茶です。でも、その無茶が通るように、真を求める探索は深さ優先に固定されました。それをバックトラックしながら探す。 もちろん、当時の貧弱なメモリ資源の制約があり、やむを得ずこうなったという側面もあろうかとは思いますが。'.」 / Twitter
- Prolog - Wikipedia
- Haskellが数学だとすれば、Prologは国語だ
- Prologで構文解析という昔話
- 構文解析
- は、PrologでシンプルなC言語を実装していますか? - VoidCC
- Prolog Programming: Language Processing (in Japanese)
- Prolog Programming: Database (in Japanese)
- #:g1
- 神戸 Swi-Prologを使ったエキスパートシステムのメタルールやメタインタープリタの作成方法 - 初心者入門サンプル
- 大学 Swi-Prolog を使用したエキスパート システムのメタルールおよびメタインタプリタの作成方法 / 逆引きリファレンス
- Multi-Paradigm Language TAO
- プロローグ:ビルトイン付きの「バニラ」メタインタプリタ - コードログ
- Prolog: "Vanilla" metainterpreter with builtins - Stack Overflow
- metaprogramming - Depth limited search in prolog (vanilla meta-interpreter) - Stack Overflow
- Prolog Guide - Metainterpreters
- A Couple of Meta-interpreters in Prolog
- Prologによる簡単なモデリング例
- Prolog入門
- 事実と質問
- UTF-8からUnicodeへの変換
- Prolog入門
- Prolog - Wikipedia
- bitlaw-jp
- The birth of Prolog | The second ACM SIGPLAN conference on History of programming languages
- Haskellが数学だとすれば、Prologは国語だ
- prolog-link
Prolog の知識を外部の知識で自動生成
- python 3.8.2でprologを動かしてみた - Qiita
- Koji von IgarashiさんはTwitterを使っています 「PythonとPrologとの連携 https://t.co/QH7THYSFOE」 / Twitter
- AZ-Prolog | トピック: PythonとPrologとの連携
- Koji von IgarashiさんはTwitterを使っています 「PythonからSWI-Prologの機能を呼び出す https://t.co/EezGH0Xzx4」 / Twitter
- Pythonを応用した活動の紹介 - Qiita
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Pythonで書かれたDeep Learningや機械学習のコードや結果を統制する為のプログラム言語としてはPrologは最適なものだろう。今後はこの需要に答えるためにPrologプログラマが大量に養成されることだろう。 これがPythonからPrologを呼び出す方向。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは、どんな需要があって、PrologからPythonを呼びだすインターフェイスが欲しいのか。 Prologで知識を蓄えるのには実は膨大なコストが掛かる。これを外部の知識で自動生成したい。データマイニングや機械学習でこの部分をなんとかできないか。この要請はずっと前からある。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '2日前に示した https://t.co/fgJeNGnkL1 程度の易しいPrologプログラムはルール節も含めて、機械学習で自動生成できるのではないか。もしできるとなれば、Prologは現在の地平を一気に飛び抜けてしまう。'.」 / Twitter
- nojiriko.asia/prolog/fuufu_dousei_mondai_20151219_utf8.html
単一化
- ユニフィケーション - Wikipedia
- Unification (computer science) - Wikipedia
- Unification
- 2051-19.pdf
- unify.pdf
- ppl4-3.pdf
- Microsoft PowerPoint - prolog-2007.ppt
- ja
- ppl4-3.pdf
- proofsummit.pdf
- CiNii 論文 - A unification algorithm for typed λ-calculus
- unify.pdf
- 機能単一化文法 - English translation – Linguee
- 7-6. Unification
- ppl6-4.pdf
- Kota Mizushima (on a diet)さんはTwitterを使っています 「最近、色々な言語がパターンマッチを言語の第一級構文として入れようとしている(入れている)のを見ると、言語の進化としてパターンマッチはやっぱり正解だったんだろうな。そこから、さらに双方向のパターンマッチとしてPrologのような単一化が入ったりしないだろうか。」 / Twitter
- 小さいMLの型推論機を書いた - TypoTypoTypo
- 画力・博士号さんはTwitterを使っています 「「単一化アルゴリズムの実装は参考書や論文に書かれている擬似コード通りにやるよりもmutable referenceを型の表現中に噛ませて解消時に破壊的に書き換える方法を採るのが定石」という話は実際全然入門書で扱われないな」 / Twitter
- 画力・博士号さんはTwitterを使っています 「手頃な資料としてはこれを読むとよいです(全称量化を型環境全走査ではなくlevel-basedにやる話も載ってる): How OCaml type checker works -- or what polymorphism and garbage collection have in common https://t.co/5tto0ns6AJ」 / Twitter
- Efficient and Insightful Generalization
- Masaki HaraさんはTwitterを使っています 「束縛変数を考慮した単一化は実はそんなに難しくないような気もしてきた。単一化変数に何回shiftしたかの情報も置いておくと、shiftよりも小さいde Bruijn indexの束縛変数とは単一化できないみたいなルールが作れる。単一化変数同士の場合はshiftの大きい方にあわせる」 / Twitter
パースの法則
- パースの法則 - Wikipedia
- Peirce's law - Wikipedia
- call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
- ch.pdf
- d.y.d.
- popl90.pdf
- HOSC-double-barrel.pdf
- lambdamu.pdf
線形論理・π計算
線形論理
- kenkyu0290100690.pdf
- ゲーム意味論 線形論理 - Google 検索
- PowerPoint プレゼンテーション - ppl-summer-2015.pdf
- 1525-7.pdf
- msj07.dvi - msj07.pdf
- 001_16.pdf
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- π計算
- El Pin AlさんはTwitterを使っています 「https://t.co/zTdBJTgXS8 『線形論理についての軽い調査』を公開しました」 / Twitter
- linear_logic.pdf
アフィン型
- Rustの所有権、ライフタイム、参照、型、しがらみ | κeenのHappy Hacκing Blog
- κeenさんはTwitterを使っています 「アフィン型と線形型でどう違うのか分かってなかったけど線形型はリソースは正確に1回使われないといけないのに対してアフィン型は最大1回使われる、つまり使われないこともあるという違いらしい。」 / Twitter
- ゆっち〜 (Yuichiro MUKAI)さんはTwitterを使っています 「@blackenedgold アフィン型とアフィン変換にてる」 / Twitter
- κeenさんはTwitterを使っています 「@yucchiy_ 同じアフィンから来てると思うねー。」 / Twitter
- アフィン写像 - Wikipedia
- アフィン群 - Wikipedia
- アフィン空間 - Wikipedia
- AffineStateSpaceModel—Wolfram言語ドキュメント
線形論理 π計算
π計算
スライド
- π計算
- PI-calculsu
- pi-calculus.ppt - pi-calculus.pdf
- other-calculi.ppt - other-calculi.pdf
- concurrency.ppt - concurrency.pdf
プロトコル記述
- IPSJ-TPRO4308019.pdf
エージェント
- CiNii 論文 - π-計算を用いたエージェントのプランの形式化に関する研究
- IPSJ-JNL4209002.pdf
分散オブジェクト
- CiNii 論文 - π計算からJavaへの変換系を用いた分散システム開発手法
- IPSJ-Z67-1S-03.pdf
- abst062.dvi - IPSJ-TPRO0101009.pdf
- IPSJ-TPRO4711012.pdf
リアルタイム・オブジェクト
- IPSJ-JNL4506002.pdf
- CiNii 論文 - 時間付きπ計算における有限プロセスの時間動作抽象化 (計算機科学の理論とその応用 RIMS研究集会報告集)
- CiNii 論文 - π計算に対する時間拡張と合同的性質
GUI・視覚化
- CiNii 論文 - π計算に対する視覚化システム
- CiNii 論文 - π計算に基づくプログラミング言語Nepi のためのGUI機能
- IPSJ-TPRO4512011.pdf
Haskell
- k9694.pdf
- IPSJ-TPRO4716003.pdf
仕様検証・論理体系
- IPSJ-TPRO4611006.pdf
- CiNii 論文 - 線型論理・π-計算による構成的プログラミング・システム
- k9694.pdf
- pi calclusを学ぶにあたって参照したドキュメントとその紹介その一 - けいぞうのメモ帳
- A Very Brief Introduction to the Pi-Calculus (in Japanese)
- CiNii 論文 - M-pi計算 : モジュール記述を持つ計算体系
- CiNii 論文 - π-計算の名前制限の名前生成による実装の正しさ
- KAKEN — 研究課題をさがす | π計算の圏論的意味論と論理的解釈 (KAKENHI-PROJECT-19K20211)
- 06gun_03hen_05.pdf
- Parallel and Distributed Systems: Winter Semester 2013
- Foundation of Software: Winter Semester 2006
- 授業ホーム | 並行分散計算特論 | 情報科学研究科 | 名大の授業 (NU OCW)
- 54-2-3_特集_06-1.qxd - 0601.pdf
- PowerPoint Presentation - DNaward.talk.jp.final.pdf
- IPSJ-TPRO4611006.pdf
- 07gun_01hen_01.pdf
- j-1-1.pdf
- j-1-2.pdf
- j-1-3.pdf
- j-2-1.pdf
- j-2-2.pdf
- j-2-3.pdf
- okada.pdf
- Computersoftware Vol.20, No.5 - 20_502.pdf
- コンピュータソフトウェア18巻1号 - 18_195.pdf
- ipsjPRO01.pdf
- 21_74.pdf
- 30_2_83.pdf
- 001_16.pdf
- print-3-phase.pdf
- kenkyu0290100690.pdf
- other-calculi.ppt - other-calculi.pdf
- π計算 - 数学とプログラミングとくだらないこと
- A Very Brief Introduction to the Pi-Calculus (in Japanese)
- π計算
- PPL7-4.pdf
- IPSJ-TPRO4716003.pdf
- resume8.pdf
- resume9.pdf
- process-pi-calculus - process-pi-calculus.pdf
線形論理 停止性
- summer1.pdf
- birth.dvi - birth.pdf
- IPSJ-TPRO4611006.pdf
- toyama-final.dvi - toyama-final.pdf
- 07gun_01hen_02.pdf
- 1875paper.pdf
時間付きπ計算
- IPSJ-JNL4506002.pdf
- 1554-01.pdf
プルーフネット 線形論理
- jssst01k.pdf
- ipsjPRO00t.pdf
- paper.pdf
英文
重点項目
- Linearity and the pi-calculus | ACM Transactions on Programming Languages and Systems
- An exact correspondence between a typed pi-calculus and polarised proof-nets - ScienceDirect
- On the π-calculus and linear logic - ScienceDirect
- Linear Logic Propositions as Session Types
- Session Types as Intuitionistic Linear Propositions | SpringerLink
- The π-calculus as a theory in linear logic: Preliminary results | SpringerLink
- DROPS - Cut Reduction in Linear Logic as Asynchronous Session-Typed Communication
- Linear Logical Relations for Session-Based Concurrency | SpringerLink
- A New Linear Logic for Deadlock-Free Session-Typed Processes | SpringerLink
- On linear logic planning and concurrency - ScienceDirect
- "The Pi-Calculus as a Theory in Linear Logic: Preliminary Results" by Dale Miller
- The Pi-Calculus as a Theory in Linear Logic: Preliminary Results - fulltext.pdf
CiNii 論文
- CiNii 論文 - 線形論理と論理プログラミング
- CiNii 論文 - 線形論理に基づく計算モデルの理論概説
- CiNii 論文 - ペトリネットモデルに対する線形論理の完全性
- CiNii 論文 - 型付きλ計算の古典線形論理の計算的解釈への埋め込み
- CiNii 論文 - 名前通信プロセス計算の並行コンビネータ
Wikipedia
- 線形論理 - Wikipedia
- シークエント計算 - Wikipedia
- 適切さの論理 - Wikipedia
- ゲーム意味論 - Wikipedia
- 直観論理 - Wikipedia
- summer1.pdf
- birth.dvi
- kenkyu0290100690.pdf
- Brief introduction to linear logic
- ipsjPRO00t.pdf
- ja
- 1+1ができない子と線形論理 - 檜山正幸のキマイラ飼育記
- 「線形論理」の検索結果一覧 - 檜山正幸のキマイラ飼育記
- 線形論理。 - いもあらい。
- Ryo HaruyamaさんはTwitterを使っています 「中止になった修論中間発表のスライド等です。内容は線型論理の相意味論についてです。 https://t.co/p00n1OEuOe」 / Twitter
- rharuyama/soundness-for-linear-logic-regarding-phase-semantics: 修士論文中間発表用提出物
- Ryo HaruyamaさんはTwitterを使っています 「ググると出てくる照井先生の「線型論理の誕生」が二種類[1][2]あって、内容が少し違うのだけど、後者[2]の方の参考文献の紹介が参考になると思う。 [1]: https://t.co/Th5lHpqVpg [2]: https://t.co/M6zZkZPlJN」 / Twitter
- birth.dvi
- 1525-7.pdf
- Ryo HaruyamaさんはTwitterを使っています 「やっぱり証明をちゃんとやろうとするとGirardの1987年の論文[3]が良いですかね。The Blind Spotという本もあるけど、1章の哲学パートは難しそうなので、頭から読むものではないかもしれない。形式的な部分だけなら参考になる。 [3]: https://t.co/QMwFZb3TXP」 / Twitter
- Linear logic - ScienceDirect
- ko0307.pdf
- 62_0621115.pdf
- とりとめのない GHC 線形型メモ - 趣味はデバッグ……
様相論理・時相論理
線形論理と時相論理
- 情報学広場:情報処理学会電子図書館
- 30_2_83.pdf
- jssst01k.pdf
- PowerPoint Presentation - modal-temporal.pdf
- B-028.pdf
- 1966paper.pdf
- lambdaCB-PPL05.pdf
- ai_03_001.pdf
- 07gun_01hen_02.pdf
制約充足問題・LTL
- リアクティブシステム仕様を実現可能にするための環境制約の抽出
- 平均利得時間論理とそれを用いた検証・最適化手法
- 充足可能性判定を利用したモデル検査
- UMLに基づくRTOS設計検証のための環境自動生成法
- Formal Method Europe (FME) 2001 参加報告
- 抽象化を用いた検証ツール
- 制御システム分野におけるモデル検査の応用
- IEICE Trans - モデル検査の実行順序制約の図式表現と試験ケースの自動生成
- IEICE Trans - 記号モデル検査によるスマートオブジェクトの近接連携シナリオの効率的な検証
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 千葉商科大学学術リポジトリ
- http://t2r2.star.titech.ac.jp/rrws/file/CTT100667201/ATD100000413/
- 1-FPAI107-20180807-B801_01-06.pdf
- 2-FPAI101-20160807-B504_07-14.pdf
- Honbun-t3606u021.pdf
- KJ00005931319.pdf
- tanabe_dsw06.pdf
- 147691361.pdf
- 235184037.pdf
- 3635paper.pdf
- 90001267.pdf
- ippan4-5.pdf
- ppl9-2.pdf
- paper.pdf
- 紀要34号片山3(校了).indd - KJ00010099963.pdf
時相論理
時相論理・余帰納的手法
余帰納的手法
- テスト集合余帰納法を用いた振舞等式の検証
- 無限の入出力を行う関数型プログラムの K正規化の形式的検証
- 第34回大会受賞者の声
- 帰納法と余帰納法にまつわる伝承 - 秋津早苗の備忘録
- 双対的にみる余帰納法 1.イントロ - Qiita
- 余帰納法についての質問と回答 - Togetter
- 情報学広場:情報処理学会電子図書館
- 始代数 - Wikipedia
- 余論理式,再帰型,循環的言語 - Coformulas-recursive-type-circular-language.pdf
- general13-1.pdf
- <30392D91E6343589F191E589EF838F815B834E835683878362837695F18D902E706466> - 46_85.pdf
- ws1_2.pdf
- 2019-5-4-4.pdf
- cs2019hoshino.pdf
- algPLJapaneseJan2014.pdf
- 4.pdf
- 井山梃子歴史館さんはTwitterを使っています 「時相論理」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「あと余帰納的手法がよく効きそう」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「あと基本的にはsafety, liveness, fairnessでググればいいかな」 / Twitter
- ogiwaraさんはTwitterを使っています 「@sanjutsu_yu 他二つはオートマトンだけで説明できるのかな?と思い…」 / Twitter
- アーロンさん、頑張らないさんはTwitterを使っています 「@designpatterngf Deadlockは項書き換え系において、受理状態でない状態で書き換え規則が適用できなくなった…とかで定義できそう ほかはぼくがそもそもどんなものか知らないので何とも…」 / Twitter
- ogiwaraさんはTwitterを使っています 「これはObstruct freeとLock freeとWait freeの区別にもつながる」 / Twitter
- ogiwaraさんはTwitterを使っています 「DeadlockとLivelockとStarvationをどう形式的に定義できますか?って話になって」 / Twitter
- ogiwaraさんはTwitterを使っています 「@__pandaman64__ どこかに参考になる文献ありますか?」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「@designpatterngf わからん…」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「@designpatterngf https://t.co/SxWhz6oZh2 SEPでも読む…?入門に良いかは分からない」 / Twitter
- Temporal Logic (Stanford Encyclopedia of Philosophy)
- 時相論理 - Wikipedia
- 線形時相論理 - Wikipedia
- 計算木論理 - Wikipedia
- 様相論理 - Wikipedia
- クリプキ・モデル - Wikipedia
- 可能世界論 - Wikipedia
- Modal μ-calculus - Wikipedia
- model-checking.ppt - model-checking.pdf
- プロセス論理 時間 - Google 検索
- μ計算 - Google 検索
- 12gun_02hen_07.pdf
- 0902-10.pdf
- 自作言語の型システムの話 - Qiita
- オートマトンの概要
- 時相論理 排他制御 - Google 検索
- 時相論理 ベクタークロック - Google 検索
- 時相論理 ベクトルタイムスタンプ - Google 検索
- 時相論理 デッドロック - Google 検索
- 時相論理 ロック - Google 検索
- 時相論理 入門 - Google 検索
- 時相論理 モデル検査 - Google 検索
- ロックコンボイ - Google 検索
- レースコンディション - Google 検索
- レースコンディション 時相論理 - Google 検索
- ロックコンボイ 時相論理 - Google 検索
時相論理 オートマトン ペトリネット
論理式とオートマトン
- kinabaさんはTwitterを使っています 「十進数どうしの足し算は定数サイズの記憶領域でできる(普通に筆算すれば繰上りを覚えて1桁ずつ出すだけ)。大小比較とかも。けど掛算は無理。でもこれは、十進表記という表記法が悪いせいかもしれない。色んな実数を表現できて色々な演算も定数メモリな数の表記法を探そう、という分野がありまして」 / Twitter
- 病気の美少女さんはTwitterを使っています 「kinaba さんが POPL モードなので追いかけよう。その前にこれ、まずツイートの内容がわからなかったので精進せねば…いやプログラマじゃないんですがもう…」 / Twitter
- kinabaさんはTwitterを使っています 「https://t.co/KdI78F9Bqw 1/2と√3を含む加算と乗算の半環の元(実数)の文字列表現で、加算と大小比較と任意の定数倍がオートマトンで表現可能なのを見つけるよという話。実際1/2と√3に限らずもうちょい色々できる。この辺の話どこまで既知なのかわからんな」 / Twitter
- Ordered Semiautomatic Rings with Applications to Geometry | SpringerLink
- kinabaさんはTwitterを使っています 「定数記憶領域で書ける=オートマトンで書けるということで、すると、そういう表記法がある数と演算に関する論理式はオートマトンに変換して、マッチする文字列がある⇔論理式が真みたいにできるので、論理式の静的検証ができて嬉しい。件の論文は√3と1/2が書けるので30°回転が登場する幾何の検証とか」 / Twitter
- CiNii 論文 - 有限オートマトンと表現等価な正則時相論理とその論理設計検証への応用
- 0902-10.pdf
- ja
- 線形時相論理 - Wikipedia
- 時相論理 - Wikipedia
- PowerPoint Presentation
- hagiya-jssst03.pdf
- オートマトン
- Microsoft PowerPoint - RS2010-spin2.pptx
- 研究会 - 線形時相論理式からイベントベースオートマトンへの変換を利用したペトリネット検証ツールHiPS向けon-the-flyモデル検査器
- 07gun_01hen_03.pdf
- modelcheck.pdf
- jssst05.pdf
- techrep.dvi
- ai_03_001.pdf
- Microsoft PowerPoint - 20110911_swest11.ppt
- モデル検査ツールSpinによる組込みソフトウェアの検証 受講メモ
- 10-6-B4-4.pdf
- afreeSat050215.pdf
- _pdf
- CiNii 論文 - 線形時相論理による組込みシステムの仕様記述とペトリネットによる実装法 (情報システム研究会 数理的アプローチと情報システム、その他一般)
- 17th_nagata.pdf
- Dr.Uchihira's PhD Thesis
- 時相論理 - Wikipedia
- lambdaCB-PPL05.pdf
- 59160283.pdf
様相論理
- IPSJ-MGN300607.pdf
- 14_61.pdf
- Introduction_to_Modal_Logic.pdf
- afreeSat050215.pdf
- 入門・様相論理(第1回目)|山口尚|note
- 入門・様相論理(第2回目)|山口尚|note
- 入門・様相論理(第3回目)|山口尚|note
- 入門・様相論理(第4回目)|山口尚|note
- 入門・様相論理(第5回目)|山口尚|note
- 入門・様相論理(第6回目)|山口尚|note
- 入門・様相論理(第7回目)|山口尚|note
- 入門・様相論理(第8回目)|山口尚|note
ゲーデル変換 様相論理 古典論理
- 直観主義論理 - Wikipedia
- ja
- Math club public
- no16
- _pdf
- (PDF) カリー・ハワード対応と直観主義論理の意味論入門 | Shunsuke Yatabe - Academia.edu
- 第13回「不完全性定理」
- 1525-7.pdf
- 1532jabstract.pdf
- bookA4.dvi
- 計算機向きの様相論理の公理化
- fom-mu-with-func.dvi
- 1602-11.pdf
- Microsoft Word - 評価センター関先生・奨励研究_23C050_
- afreeSat050215.pdf
- 論理学FAQのブログ
- Substructural Negations | The Australasian Journal of Logic
- 様相演算子としての二重否定 - 論理学FAQのブログ
- 様相を「ならば」と「かつ」で定義する - 論理学FAQのブログ
- 20190527.pdf | Powered by Box
- 直観主義論理を理解した(してない) - Qiita
- 5分でハイデガー『存在と時間』|山口尚|note
- チェシャ猫さんはTwitterを使っています 「何らかの充足可能性問題になりそうだというのはわかるけど、なんで LTL になるんだろ?」 / Twitter
- Tomonori SHINDOHさんはTwitterを使っています 「形式手法(モデル検査)などで使う、時相論理のLTL記述からロボットアームの動作を生成する技術について日経Robotics 最新号で書きました 《日経Robotics》NEC、形式的記号論理でロボットが行動を「考える」技術、時相論理のLTLから知的な把持手順生成 https://t.co/3WGQLcxcAX」 / Twitter
- NEC、形式的記号論理でロボットが行動を「考える」技術 | 日経クロステック(xTECH)
- 様相論理 カリーハワード - Google 検索
- 様相論理 証明 - Google 検索
- 様相論理 証明可能性 - Google 検索
- staged computation - Google 検索
- staged computation - Google 検索
- monadic types for effects - Google 検索
- monadic types for effects - Google 検索
- 情報学広場:情報処理学会電子図書館
- 1539paper.pdf
- 正規様相論理のためのCurry-Howard対応
ループ・再帰
- ループを再帰関数にする考え方 - Qiita
- R:whileループを再帰に変換する - 初心者向けチュートリアル
- JavaScriptでループ関数を再帰関数に変換する - 初心者向けチュートリアル
- ppl8-2.pdf
- 相互に定義された末尾再帰
- 授業資料/09 - Experimental Mathematics 1 (2010)
- cpp-intro/008-loop.md at master · EzoeRyou/cpp-intro
意味論・直観主義
圏論
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうのに「関数型の基礎」というタイトルを付けるのは全力で止めていただきたいのだが、説得力のあるよい例えはないものか。 / 1件のコメント https://t.co/lv2uzQCf9k “【圏論】巨大な集合=宇宙について調べてみた【関数型の基礎】 - Qiita” https://t.co/YlfvhA1JdH」 / Twitter
- 【圏論】巨大な集合=宇宙について調べてみた【関数型の基礎】 - Qiita
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そりゃ遠い繋がりはあるけど、遠すぎるんだよなぁ。強いていうなら「プログラミングの基礎」だよ。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「うーん、やっぱたとえ話はこういうときよくないな。 そもそも例えが適切かどうかで話が発散してしまう。」 / Twitter
- wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「違います > 結論からいうと圏は集合です. https://t.co/DHGlZvpIWG」 / Twitter
- wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏自体はほとんど集合を意識した構造を持たないので、圏を集合というのは語弊が大き過ぎる(cf. 集合圏の性質)。 圏は一般にかなりデカいので、扱いやすい小ささに収めるために Grothendieck universe を持ち出して議論してるという印象だった。」 / Twitter
- ⿻あいや⿻ 技術書執筆「せつラボ」さんはTwitterを使っています 「大きい圏(対象の集合(と|か)社の集合がユニバースな圏)の話かー。 ユニバースが集合なのか集合でないかという問題に依存しそう🤔✨ (明示的に言及されてない限り、ユニバースは集合ではない……という曖昧な感覚があります)」 / Twitter
- wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏論はプログラミングという営みからも遠くて、プログラミング言語の意味論の基礎の基礎という感じがしますね」 / Twitter
- wint 𝄆 workation 🏝 𝄇さんはTwitterを使っています 「圏だけ使うなら圏論は要らない?」 / Twitter
- [2010.05167] A Categorical Programming Language
- 圏 論 に よ る プログラミング と 論 理
- 20200325.pdf
- 8_1_34.pdf
表示的意味論
圏論
- トビ🍷ペンギン村さんはTwitterを使っています 「圏論、無秩序な世界に”特定のルール”を課すことで、”同じ構造とみなせる”モノ達ができ、それによって”同一のルールで扱える”、って点ではプログラミング言語における”型”や”プロトコル”とかと似たようなモチベーションなんだろうなって思った。 いや、知らんけど。」 / Twitter
- トビ🍷ペンギン村さんはTwitterを使っています 「言い換えると、すべての数値に対応する関数を f(1), f(2), f(3) ・・・って全部定義するより、 "Int"って型を用意して f(Int) な関数を1つ用意するようにしたいとか、List<Int>, List<Bool>, List<String> って個別のリストを用意するより、 "List<Element>" を1つ定義するようにしたい、とかとか。」 / Twitter
- トビ🍷ペンギン村さんはTwitterを使っています 「たぶん、圏論はその扱う対象の抽象度が極めて高いから、難解に感じるだけで、モチベーション自体は極めてシンプルなんだと思う、”同じようにみなせるようにしたい”っていう。 そういう意味では、”ポリモーフィズム”みたいなものだ、って説明もありなのかもしれない。OOP ユーザには。」 / Twitter
- Kosuke YOSHIMOTOさんはTwitterを使っています 「@tobi462 Haskell、モナドのインスタンスになれば、do記法を使って「命令型で記述ができる」ようになるっていう仕組みが不思議ですよね。(do記法を実現する方法としてモナドが導入されたのでしょうが。)」 / Twitter
- トビ🍷ペンギン村さんはTwitterを使っています 「@ysn551 んー、私も詳しくないので断言は避けたいのですが、”モナド”という文脈を保って計算する仕組みが先に存在して、バインド関数?(==>)のシンタックスシュガーとして”do記法”が用意された、という順ではないですかね・・・? Haskell はモナドがなければ I/O すら扱えないわけですし。」 / Twitter
圏論と型付きラムダ計算
PDF
- RelevantTheories
- 5.pdf
- H28-hasegawa.pdf
- wakimoto3.pdf
- intro.pdf
- https://www.sci.kagoshima-u.ac.jp/mcs/archive/116-abst.html
- 20500010 研究成果報告書
- jabstract.pdf
- 052.pdf
- 2009w202.pdf
- 職業プログラマが圏論をスルーすべき理由
- 圏論とプログラミング読書会#2 資料
- 圏 論 に よ る プログラミング と 論 理
- 圏論的指数の周辺:ラムダ計算、デカルト閉圏、ノイマン型コンピュータ - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 型付きラムダ計算 構文論 再入門 1/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
- デザイナーに憧れて: 型付きラムダ計算を関数型プログラミング言語と見做す
- Modegramming Style: 関数型プログラミング技術マップ2015
- なぜ、プログラムは書けるのか:計算論からゴールによる様相論理、意味論まで俯瞰してみる - ウィリアムのいたずらの開発?日記
- typed lambda calculus型付きラムダ計算 ←・← (型を持たない「ラムダ計算」を改良したもの?! ・・・) | 隠れ家 - 楽天ブログ
- yuwki0131-blog: ラムダ計算の使い方
- 技術者/プログラマのためのラムダ計算、論理、圏第2回
- 2017年振り返り - The curse of λ
- d.y.d.
- d.y.d.
- katsumata.pdf
- 並列論理和の続き - sumiiのブログ
- 表示的意味論に基づくパターンマッチングコンパイル方式の構築と実装
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「圏論の「圏」はなんで「圏」なんだろうとずっと思ってたけど可換図式が輪っかを描くからだってことに最近やっと気づいたよ」 / Twitter
- nkamlさんはTwitterを使っています 「型付きラムダ計算とカルテジアン閉圏の対応は理解できた(と思う)ので他の例を見てみたいなど...」 / Twitter
- OddieさんはTwitterを使っています 「型付きラムダ計算から得られる圏C(λ_→)は基底型(基本的なデータ型のこと)の集合Xから自由生成されたカルテジアン閉圏になっており、任意のカルテジアン閉圏Cがに対し基底型の対応する対象を指定することで、カルテジアン閉圏の構造を保つ関手C(λ_→)→Cが唯一つ決まる(ラムダ計算の意味論)」 / Twitter
- https://twitter.com/shinji_kono/status/1307988467096326144
ホーア論理・意味論
Incorrectness Logic
- Masahiro SakaiさんはTwitterを使っています 「Incorrectness Logic https://t.co/DUWxMRaaeT ホーア論理は「QはPのもとでのCの実行後の状態の過大近似である」という関係 {P}C{Q} の導出に関する体系なのに対して、Qが過大近似ではなく過小近似である [P]C[Q] という関係の導出に関する体系 incorrectness logic の提案。 #POPL2020」 / Twitter
- Incorrectness logic | Proceedings of the ACM on Programming Languages
- Masahiro SakaiさんはTwitterを使っています 「ホーア論理(correctness logic)は不具合が存在しないことを証明する体系なのに対し、この incorrectness logic は具体的な(特に不具合を表す)実行例の存在を証明する体系になっていて、テスト、記号実行、バグ発見ツール等で使われている概念を捉えている。 動画: https://t.co/P4ef3AwSuk #POPL2020」 / Twitter
- Incorrectness Logic - YouTube
- Masahiro SakaiさんはTwitterを使っています 「過大近似と過小近似で双対的なんだけど、意外と直観が 働かなくて、でもテスト、記号実行、バグ発見ツール等で使われている概念をうまく捉えることができるよう形式化されていて、面白いな。 #POPL2020」 / Twitter
- main.pdf
ミーリーオートマトン・意味論
- 2019-5-4-4.pdf
- ムーアマシンとミーリーマシン - Google 検索
直観主義論理
- summer2013.dvi - summer2013.pdf
- jms.dvi - jms.pdf
- cm_of_mell.pdf
- 直観主義論理入門 - resume.pdf
直観主義論理 停止性
- summer2013.dvi - summer2013.pdf
- 直観主義論理 - Wikipedia
- 4.pdf
- 40_1.pdf
- 62_0621115.pdf
- msj07.dvi - msj07.pdf
- ko0307.pdf
- ppl2020.pdf
- winter05.pdf
証明支援系・直観主義論理・圏論
- Shinji KonoさんはTwitterを使っています 「最近の学生は定理証明支援系から数学に入る。それはつまり圏論から入るってこと。Agdaがお勧めだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「最近はすっかり 排中律込みの一階述語論理? だめだめ、あんなの。やめとけ。 って気分だな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「学生の頃は「選択公理使わないとどうなんですか」ってな感じで、吉田先生が「微分方程式の解の存在とかが出ませんね」で そんなのいらね だったんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「今は排中律=選択公理で、非構成的な仮定の一つだというくらいの気分なので いや、別にいいから、どんどん仮定して使えよ って感じ。排中律でも選択公理でも。どこで使ったかがわかるなら問題ない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そして、排中律の証明があると思った瞬間に矛盾。それは不完全性定理に当たると思っても良いし、圏論的な問題だと思っても良い。あくまでも 仮定 だとすれば問題ない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「排中律を完全に排除して議論するのはAgdaならそうなるが、煩雑であることも確か。常に二重否定がかかってるみたいな逃げ道もある。つまり排中律を気にせず議論して、あとから、どこに非構成的な推論があるか調べても良い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので直観主義論理で微分方程式の解の存在が証明できないというのは間違いで、非構成的な仮定から存在を導くことはできる。そもそも非構成的な命題なんだから、それで良い。だから 数学は全部、直観主義論理で良い ってことね。非構成的な仮定/公理も躊躇なく導入して良い。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「排中律込みだと非構成的な仮定が曖昧で探す羽目になる。例えばドモルガン。片方向が非構成的。高階論理でないと公理の有限性とかに気を使うことになる。それは時間の無駄。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ただ、圏の圏とかはlevelの抽象化が必要なので、ちゃんとはできないらしい。このlevelがhigher orderってことなのだが、圏論本には出てこない。Agda/Coqの問題。Level合わせは結構めんどい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「公理はえてして矛盾するのだが、解消は矛盾した公理のループを切れば良いのでわりとたやすい。切った部分は構成的な推論として正しい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ただ、うちの学生を見てるとあんまりわかってない感はあるよな。自分でも学生の頃に学んだLKは面白いなくらいだったので、その感じはわかる。」 / Twitter
意味
- Sho YokoiさんはTwitterを使っています 「何かを知り何かを作ろうとする諸科学はむしろ意味(形式的な表現から現実世界や興味の対象への対応付け;解釈)に強く興味を持っており意味をできるだけ切り捨てて形式的な体系を追い求める数学が特例的という状況で相手方に discipline を強要してしまった、というよく見る悲しい案件に見える。」 / Twitter
- Sho YokoiさんはTwitterを使っています 「数理統計はきっとつらい分野で、人間の活動や科学の言語として用いられるときは意味の問題は不可分なのに、一見数学なので「意味を持ち込むな」マンが登場してしまうのかもしれない。 (勿論数学として深められるのは良いことだと思う。論理学が人の論理的推論から離陸して新しい世界を作ったように)」 / Twitter
- A. OkunoさんはTwitterを使っています 「@sho_yokoi 自分は意味を持ち込むな派ですが,解釈が大事だからこそ解釈をする回数や範囲を絞るべきだと思っています.数式と解釈の変換(語の対応)には十分気を使うべきで,件のプロレスなど既存の語の定義を日常語からの類推に置き換えている時点で語るに落ちている・・・」 / Twitter
- A. OkunoさんはTwitterを使っています 「@sho_yokoi AICが未来を予測している,みたいな話もそうなんですが,(伝言ゲームは必ず失敗するので)情報はできるだけ正確な形でだけ変換して最後にだけ解釈するのがよさそうに思うところです・・・」 / Twitter
- Sho YokoiさんはTwitterを使っています 「専門外の話だと書き放題だな わっはっは(死」 / Twitter
- Sho YokoiさんはTwitterを使っています 「専門に近い話題ほど、普通の人よりずっと正確な知識を持っているはずなのに「迂闊なことは言えないぞ」感が増し、公の場で書けなくなる。一方で専門から離れた話題では経験と直観に任せて「俺の思い」を綴れてしまう(教育とか心理とかね)。…そしてインターネットには今日も床屋政談が溢れる。」 / Twitter
- Sho YokoiさんはTwitterを使っています 「病状が一歩進むと、ただの雑談であっても「この単語はどこかの世界ではテクニカル・タームなのでは?用法は問題ないだろうか?」などと疑いはじめ、ツイートの負荷はぐんぐん増加し、ついには駄洒落を言うか「にゃーん」とつぶやくだけのアカウントが爆誕する。」 / Twitter
確率論理
- 確率論理 - Wikipedia
- ファジィ論理 - Wikipedia
- 砂山のパラドックス - Wikipedia
- 誤った二分法 - Wikipedia
- ラフ集合 - Wikipedia
- <30312D88CB978A985F95B62D927C93E090F290E690B62E706466>
- 論理的推論への確率論的アプローチ
- 反証主義に対してAyer50) やLakatos51) が繰り広げた批判の一つとして取り上げられたり,またそれらに答えるSir Karl Popperの議論2-4)でも注意されている事ではあるが,彼らの議論を待つまでもなく13),確率的言明はどの様な結
- スライド 1
- 07.pdf
非古典論理
- 非単調論理 - Wikipedia
- 自己認識論理 - Wikipedia
- 無限論理 - Wikipedia
- 矛盾許容論理 - Wikipedia
- 中間論理 - Wikipedia
- 多値論理 - Wikipedia
- クリプキ・モデル - Wikipedia
一階述語論理 一階命題論理 変換
- 一階述語論理 一階命題論理 変換 - Google 検索
- 数理言語 - ke-8-slide.pdf
- 知識工学 - ke.pdf
- nyumon_logic.pdf
- IBMが深層学習と記号論理をつなぐ技術、画像の内容を1階述語論理に変換しソルバで解く | 日経Robotics(日経ロボティクス)
- Introduction to Mathematical Logic
- 1.dvi - 1.pdf
- 4.dvi - 4.pdf
- 21_622.pdf
- CiNii 論文 - Unsupervised Grounding of Plannable First-Order Logic Representation from Images
- Microsoft PowerPoint - fol.ppt - fol.pdf
blog
- 含意の真理表はどうして決まるのか : tnomuraのブログ
- 論理包含の定義に関する違和感について - 七誌の開発日記
- フィッチスタイルの自然演繹のやり方 - Yabu.log
- タブローの威力 - 誰にも見えないブログ
- 論理学をつくる練習問題80(2)解答 - Yabu.log
- 今日の論理学:極大無矛盾集合に成り立つ5つの同値関係の証明 - 誰にも見えないブログ
- 今日の論理学:極大無矛盾集合の充足可能性補助定理の証明~APLの完全性証明 - 誰にも見えないブログ
- 今日の論理学:ハゲのパラドックス,連鎖推論のパラドックス,誤植など - 誰にも見えないブログ
- 今日の論理学:数学的プラトニズム、直観主義論理、排中律の廃止、NJ、誤植など - 誰にも見えないブログ
- 今日の論理学:直観主義論理続き,対偶の部分的な成立,排中律/背理法/二重否定除去の相互変換 - 誰にも見えないブログ
- Avendia
Qiita
- Scalaで論理体系を作る話 - 1. 命題論理その1 - Qiita
- テクニクシャンマンさんはTwitterを使っています 「Scalaで論理体系を作る話 - 2. 命題論理その2 直観主義論理はカリーハワード対応に見て取れる通り、型付きラムダ計算ほどの単純なモデルが表現できるシンプルな論理ですが、制約も多いのでした。この記事は、より「強い」、つまりより強力な論理である古典論理… https://t.co/OnVeM2Od5F」 / Twitter
- qiitascalaさんはTwitterを使っています 「https://t.co/jTuF0mz5cf Scalaで論理体系を作る話 - 2. 命題論理その2 #scala 直観主義論理はカリーハワード対応に見て取れる通り、型付きラムダ計算ほどの単純なモデルが表現できるシンプルな論理ですが、制約も多いのでした。この記事は、より「強い」、つまりより強」 / Twitter
- Scalaで論理体系を作る話 - 2. 命題論理その2 - Qiita
- 基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita
Twitter
論理と型
- Shinji KonoさんはTwitterを使っています 「型=論理式、λ項=証明で、仕様記述は証明を含んでる。 仕様を型なしλ計算で書くと矛盾する可能性はある。 型のない仕様記述が何かってのは面白い問いだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「testing typeless specification by type evaluation かな。まぁ、Unification だが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Prologは型なし。しかし、一階述語論理。それが面白いところ。型は一階述語論理には含まれてない。appendが書けるというのはPrologのアイデアから10年かかってる。appendの正しい仕様を書けなかったってこと。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「型とは何かってのに戻ってくるな」 / Twitter
- Shinji KonoさんはTwitterを使っています 「仕様記述は論理式なので、その変数は単なる記号。その中身にはあらゆる可能な値が入る。値とは、スコーレム関数を含む関数と値の任意の組だな。エルブランモデルの値ね。型がないとはそういうこと。型なしλ計算。Prolog」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論は一階述語論理で展開するから型がない。集合ってなんでも入るからな。なので x∈A とかを毎回書く必要がある。それが型。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直観主義論理は型付λ計算を使って、命題は型、推論は型付λ項、真偽は証明で決める。ベースになる型 Set にはレベルが付く。逆説的だがSetには型はないとも言える。レベル以外の型はない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので型のない仕様記述とは、一階述語論理のことだろうな。それに証明を付けると仕様記述が型になる。恒真あるいは充足可能な一階述語論理式は正しい型を持つ感じか。それを評価/evalとみなせるのかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaで、a : ? みたいにして論理式を書くことはできる。ただし、関数型 f : ? → ? は書かないと f a とか書けない。その状態で論理式を書くと型のない仕様記述に見える。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「?の代わりにSetと書くと通るのかな。それはないな。全部?で型検査することはできる。その時点でも型のエラーは出る。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「関数の継続は関数のopenな部分になるのだが、データ型にも最後にSetを入れてopenなデータ構造にするというのを考えたことがある。その部分にメタな計算が入る。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaの?は便利なのでプログラミング言語にも欲しいな。IDEが持つべき機能かも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「誰が考えたんだろ。初出は?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論は数学のC言語というのを提唱してる。集合のアドレスは取れて整列できるのだが、そのアドレスにある集合に何が入っているかは不明。SEGVあり。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「圏論はもちろん関数型言語」 / Twitter
ホーア論理
- uint256_tさんはTwitterを使っています 「ホーア論理って実用的(?)に使われてるんですか (この問いが意味あるものなのかすらわかっていない)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t Eiffelにホーア論理にそって、事前条件、事後条件、不変条件何かを指定してチェックできるんですけどね。そういうの流行らないですね。」 / Twitter
- uint256_tさんはTwitterを使っています 「@miura1729 面白そうなので調べています」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t 有用だと思うんですけどね。型を書くのすら避けたい私にはいらないものですけど。それでも、assertを一杯入れるのはやろうとしたことがある。」 / Twitter
- uint256_tさんはTwitterを使っています 「@miura1729 そういうことがコンパイラ基盤レベルでできると面白いかなと思ったのです」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t それ面白い。コード生成の正当性のチェックとか事前条件・事後条件だけ指定してコードを推定させるとか夢が広がる」 / Twitter
- uint256_tさんはTwitterを使っています 「@miura1729 絶対に便利だと思うので頑張って実装します」 / Twitter
- 病気の美少女さんはTwitterを使っています 「@uint256_t 実用面だと、既存の重要なプログラムの verification などの話は一時期ぼちぼち耳にしました。テクニックとしては、coq などでは素朴な state monad が使い物にならないので hoare state moad と呼ばれる物を使ったり等があります。」 / Twitter
- 病気の美少女さんはTwitterを使っています 「@uint256_t hoare state monad もそのままの定義で使うと transformer(https://t.co/9sHABxeibp)が必要になったりするので、問題領域にあわせた独自の monad を作ることが多い、らしい、です。 software foundations(https://t.co/vgGPfKiz7x) でも扱われています。coq で記述する際は参考になると思います。」 / Twitter
- IPSJ-TPRO0502002.pdf
- Software Foundations
古典論理
- 古典論理 直観主義論理 排中律 - Google 検索
- ytbさんはTwitterを使っています 「論理学を勉強しだした学生で、「真理表が難しい」と嘆く人結構多いじゃないですか。 最初は奇異に聞こえるんです、だってあんな表、小学生でも覚えることができるじゃないですか。 でも、そもそもあの表は何を表現し、なぜあの値に決まったのか、って誰も何も説明しないし、そりゃ分からないですよね」 / Twitter
- ytbさんはTwitterを使っています 「入門的な教科書って日常言語との自然な類推で論理的概念を導入しますよね。初めはいいんです。 まず「真理値は1/0の値で、これは日常言語で『真』と『偽』を表します」って言うじゃないですか。一見自然に見えます。 実はここで古典論理を密輸していて、後で躓く原因になるんですよね。」 / Twitter
- ytbさんはTwitterを使っています 「「かつ」 ∧ と「または」∨は問題がなくて、個々で躓く人はあまりいないと思います。「AかつB」が真なのは、Aが真で同時にBが真のときだし、その逆も成り立つ。そりゃそうだ、という感じで。 否定「でない」¬も実はきな臭いんですが、これも一応自然に見えます。」 / Twitter
- ytbさんはTwitterを使っています 「だけど、「ならば」⇒、問題はコレなんですよ。 A, Bが真ならば「A⇒Bは真」、つまり「草が緑ならば安倍晋三は内閣総理大臣である」が真、明らかに変に見えます。さらにAが偽の時「A⇒Bは真」、「今日が晴れていれば今日東京オリンピックが開催された」、おかしいですよね。」 / Twitter
- ytbさんはTwitterを使っています 「これ、排中律を仮定すると、直観主義論理上、A⇒Bと¬A∨Bが同値になってしまうために起こる現象で、日常的な「ならば」と意味的に大きくかけ離れているように見えるんですよ。 なんとなく自然言語の意味の類推で真理表を導入するると、ここで分からなくなるのではないかと思います。」 / Twitter
- ytbさんはTwitterを使っています 「だから、私は、古典論理を教える時は、 ①自然言語における推論と関係がない、純粋な代数系のひとつとして教える ②証明論的に、直観主義論理+(便利な)排中律という体系として教える(でも変なことも起きるのは我慢してと言う) のどちらかにしないと概念的な混乱を招くと思うんです。」 / Twitter
- ytbさんはTwitterを使っています 「そうですね、「または」というのは命題論理において実はあまり重要な結合子ではないので、たんなる言葉の定義の問題のように見えるからじゃないでしょうか。 一方、「ならば」はまさしく論理的推論の今回を表す言葉で、その意味のブレは看過できないからではないのだと思います。」 / Twitter
- dorompaさんはTwitterを使っています 「@ytb_at_twt A∨Bも自然言語の排他的論理和とは違いますけど、初学者でもそれほど違和感なく理解できて、A⇒Bの方が圧倒的に誤解が多いのはなぜなんでしょう。」 / Twitter
- ytbさんはTwitterを使っています 「今回→根幹」 / Twitter
- Masaki HagaさんはTwitterを使っています 「真理値表は古典命題論理の意味(解釈)を定義しているわけだけれど,その意味の意味がわからないですよね」 / Twitter
- Masaki HagaさんはTwitterを使っています 「日常生活で同じ記号(言葉)がもっと曖昧で異なる意味を持っているから「とりあえず古典論理ではこういう意味だよ」とか言われても困ってしまうんだろうか.なんで「りんご」はりんごって意味なんだろうとか普段過ごしてても思わないわけだし.」 / Twitter
- Masaki HagaさんはTwitterを使っています 「いまは便宜上「りんご」と言われたら,現在目の前にあるこのりんごのことを意味することとします(現在スーパーに売られているりんごや,あなたが昨日食べたりんごは「りんご」ではありません)とか言われたらそりゃ「は?」ってなりますよね.」 / Twitter
- 数学&論理学bot(・ω・)さんはTwitterを使っています 「〈⇒だけの論理〉 古典論理において、 P∧Q ⇔ ¬(P⇒¬Q) P∨Q ⇔ ¬P⇒Q が成り立つため、命題論理の命題は、演算子を⇒と¬だけにしても表現できる。」 / Twitter
- 数学&論理学bot(・ω・)さんはTwitterを使っています 「【公理】(パースの法則)[古典論理] ((P→Q)→P)→P ※この公理は排中律と同値である。」 / Twitter
- インターネットさんはTwitterを使っています 「古典論理の意味論の方で真理値を集合(ただしこのときクリプキフレーム上の順序の入った集合でも位相空間の開集合でもなく一般の集合)とすることもできて, 集合演算はブール代数になるので2値に帰着できる (話がとっ散らかってしまった)」 / Twitter
- ukikagiさんはTwitterを使っています 「「古典論理(や直観主義論理)では仮定が偽の命題は自明に真だから反実仮想的な言明には意味がない」というのはナンセンスで、単にこれらの論理が自然言語のそのような側面を捉えられていない(あるいは意図的に削ぎ落としている)だけである」 / Twitter
- アーロンさん、頑張らないさんはTwitterを使っています 「そういえば、僕はほとんど直観論理といっても意味論の方はやったことないんだけど、「Heyting代数意味論ぐらいは多少知っとくと良いよなあ」って感じで考えたら少し面白い直観が生えて、 古典論理だと二重否定をつけても「情報」が減らないからLKの右と左だけで議論できて矛盾(空シーケント)に対しての」 / Twitter
- アーロンさん、頑張らないさんはTwitterを使っています 「強さを考えれば良くて、それがまさに「極大充足可能集合」というアイデアな訳だけど、直観論理はそういうことができなず「右シーケントを壊さない極大な左シーケント」みたいなのをシーケントごとに用意しなきゃいけないという風に考えると、妥当ですかね」 / Twitter
- アーロンさん、頑張らないさんはTwitterを使っています 「s/壊さない/示さない」 / Twitter
- 摩耶山 愛登家さんはTwitterを使っています 「ex falso quodlibet 矛盾から任意の論理式が帰結されるという爆発律は、自明ではない気がします。 少なくとも、僕にとってはあまり納得感が無いのですが、皆さんはこれを素直に受け入れているのでしょうか?」 / Twitter
- 摩耶山 愛登家さんはTwitterを使っています 「尤もらしく思える二重否定除去を認めると、爆発律が導かれてしまいます。 古典論理では爆発律を認めざるを得ないし、直観主義論理も(納得できるかは別にして)爆発律を推論規則としています。 ¬や⊥の解釈、またはそれらに関する推論規則を変えることで、納得感のある説明ができるのでしょうか?」 / Twitter
- 摩耶山 愛登家さんはTwitterを使っています 「二重否定除去 ⇒ 納得できる ハイチュウ律 ⇒ 美味しそう もとい、排中律 ⇒ 納得できるけど、成り立たないのもアリだと思う 爆発律 ⇒ いまいち納得できない」 / Twitter
- みくぺ ⍤⃝さんはTwitterを使っています 「@The_Maya_Hiker 私もすごい違和感あった どうやら、直観主義論理での証明図の''¬''と''⊥''がそれぞれ 最小論理での証明図(画像)の''→M''と''M''と入れ替えられるみたいで、 ¬の導入と¬の除去はそれぞれ→の導入と→の除去のひとつだと考えられる、というのが前原さんの論理学の本の付録で紹介されてた https://t.co/ImuMIeAgZe」 / Twitter
- 摩耶山 愛登家さんはTwitterを使っています 「@Cubism_FM ありがとうございます😃 なるほど、そういう捉え方もできますね。 僕の持っている戸次先生の本では、そもそも¬P をP →⊥の省略形と定義しています。 最小論理や直観主義論理では、古典論理とは否定の意味が違うので、確かにこう定義すると推論規則が上手く体系化できるようです。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Union自体にはsupは使わないのだが、Unionの公理で否定形を使う必要がある。 Union U = record { od = record { def = λ x → ¬ (∀ (u : Ordinal ) → ¬ ((odef U u) ∧ (odef (ord→od u) x))) } ... 古典論理なら、存在記号からsupが取れるわけだが、直観主義論理はそれを許さない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「似たような理由で選択公理と整列定理は直観主義論理だと別物になる。逆に正則公理は選択公理と同じになる。その差は存在記号の位置にあるのだが、直観主義論理では存在記号ないから。代わりにε-inductionを使う。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「この辺りは80年代に研究されたらしいのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「選択公理も連続体仮説もPowerを含む一部の命題の話なので、それだけ議論すれば良い気もする。ZFのモデルなのは自明なので… 真実性定理みたいなのは命題全体の中身に関係するから難しいかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ODに関してはNもMもまったく同じ(一対一な順序数を入れ替えただけ)なので真実性定理が成立してると言っても良いのか。そもそも選択公理も連続体仮説もODの外にあるから。」 / Twitter
- エヌユルさんはTwitterを使っています 「多数の人間は古典論理で会話してないし古典論理で自分の命題を証明しようともしてないとTwitter論理学者たちは気がつくべきでは?」 / Twitter
- 数学&論理学bot(・ω・)さんはTwitterを使っています 「【公理】(爆発律) 間違った命題からはどんなことも証明できる。 ※これを採用しない論理体系を矛盾許容論理という。」 / Twitter
SAT
- mr-csceさんはTwitterを使っています 「めちゃくちゃたくさんのものが命題論理式や一階述語論理式が充足可能かどうか、という問いに落とせること、凄いなという気持ちになった。 この間のn-colorable問題を充足可能性問題にreduceできるというのは単にNP完全の証明なだけではなくて、SATソルバでその問題を解けるということだしね。」 / Twitter
- mr-csceさんはTwitterを使っています 「同様に他の多数の問題が充足可能かどうかという問題に落とし込めるということは、それらは全てSATソルバやSMTソルバで解けるということだから凄いなぁと思った。 こういう研究でもよかったかもしれない。笑」 / Twitter
- ゆかたゆ@VRC&日常さんはTwitterを使っています 「@minagi_yu @zassouEX 計算機は「論理式」なんてものは知らず、単純な操作を繰り返しているだけですが、数学の定理の証明や、任意のNP問題の解決に使えます (SATはNP完全なので) こうして、命題論理において有限の項で構成される命題の証明は人間の手を離れ、計算機に任せられます。わーい! ということなのです。」 / Twitter
- でぃぐさんはTwitterを使っています 「命題論理のコンパクト性を使ってなにか証明するの、計算の問題をSATに帰着させる過程に似ている」 / Twitter
- Masaki HaraさんはTwitterを使っています 「古典命題論理と直観主義命題論理だと普通に判定方法違いますからね。古典命題論理は証明図に沿ってやるならDavis-Putnamみたいになって、高速にやるならSATソルバー(はCDCL)ってことになるけど、直観主義だとその手ではうまくいかない」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「各原子論理式を命題変数でおき、全ての原子論理式の連言をFMで変数消去、生成された各制約条件(の命題変数)が元になった制約条件(の命題変数)の連言から含意されるという命題論理式を生成。すべての変数の消去後に、生成された命題論理式と元の論理式の原子論理式を命題変数にしたものをSATソルバに。」 / Twitter
- quiver2kさんはTwitterを使っています 「@yuyabu2 すごく雑に言えば、元の問題をどんなに複雑でも命題論理式に変換すれば良いと言っているようなもので、SAT側も受けは広いですけどね。」 / Twitter
- p進大好きbotさんはTwitterを使っています 「@j_tGAP またすみません。クラスモデルMでは論理式φの相対化φ^Mのメタな証明可能性ZFC⊦φ^Mは確かに独立命題があるのでφと¬φのどちらも偽になるかもしれませんが、φ^Mそのものと充足関係Sat(M,φ)は同値であり、こちらに関してはMが1つ与えられれば真理値が参照できるのではないでしょうか?」 / Twitter
- なたがわさんはTwitterを使っています 「ふと思い出してTwitterで答えを得たいシリーズその2 「ちょうど片方のみが充足できる命題論理式のペアを受けるとどっちが充足できる方か教えてくれる神託付きの機械でSATを多項式時間で解く」(教えてください...)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@mt_tilde 個人的にはHeyting代数も結構好き(古典論理におけるbool代数のように、各命題に1つずつ値を割り当てるだけでよいし、直観主義論理のLindenbaum代数になっている)なんですが、KripkeモデルのほうがSATに落としやすかったのでipc_botではKripkeモデルを採用しています。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「Existential Quantification as Incremental SAT https://t.co/rIuuIC0OnW : 命題論理式の量化子除去をやるのにBDDとか使うのではなくSATソルバでという話。 https://t.co/wYypHYim6A」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologの胡散臭い宣伝をした後、Prolog入門の説明をわっとする。DCGでパーサ作る。ラムダ計算を作り、型を付け、型推論し、Fether Weight Javaを実装する。ホーア理論を実装して証明し、命題論理を変換し、SATで解く。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「Prologを使えばという話の流れを考える。 アフィン論理を理解するには線形論理等の基本となる命題論理を理解しないとー。 命題論理を解くにはSATで解くのが良くて、Prologを使えばSATも作れるし、変換も簡単に書ける。それで、、、なんだっけ?っていう。。。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「アフィン論理と線形論理を理解しようと思ったら、命題論理がわからなくてSATなら解けるらしく、Z3だと関数のnotを取ればいいだけなのでいちいち書き換えしなくてもいいっぽいので楽そうだけど、よくわかってないのでした。結構チュートリアル長くて眠くなってきた。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「PrologでSATとかSMTの実装も短く書けるみたいだけど中身わからないし、命題論理は奥が深いんだなぁ。ググると論文とかPDFが出てくるのは非常にいいかんじなので、twitterで俺が荒らしてる感じもするのでローカルなところで話したいけど、誰もいなくなると嫌だ。うううっていう。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「SATが完全かどうかとかもよくわからんのだけど、けっこう素晴らしいんだな。 完全ではないけど健全な命題論理言語をPrologで作るのは多分簡単なんだろうなぁ。 しかし、出来ない焦るイライラするw 日本シリーズ見るw」 / Twitter
- h_sakuraiさんはTwitterを使っています 「命題論理を解くにCNFにするとよくてCNFを解くのはSATが便利で、SATのすごいのがZ3などのSMTなのだな。」 / Twitter
- Akira SugiuraさんはTwitterを使っています 「あ。前見たスライドに載ってた・・・orz SATは命題論理。SMTは述語論理。> https://t.co/kJEZt97V97」 / Twitter
- Masaki HaraさんはTwitterを使っています 「古典命題論理の問題に対して直観主義命題論理のソルバーを使うのは牛刀なので、もう少し良さげな方法としては、論理式の否定をとって充足可能性に帰着して、Tseitin transformationでCNFに変換して各種SATソルバに解かせるのがよい。これなら理論的な計算量も落ちるし速い」 / Twitter
- yoriyukiさんはTwitterを使っています 「命題論理に限れば、SATがすごく速くなった。制限があるけど述語論理もSMTでなんとか。一般の量化や帰納法が課題。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「古典命題論理の証明可能性は、論理式の否定をとったあとに変数を増やしながらCNFに変換してSATソルバーに入れるのがいいと思いますけど、二重否定をとってipc_botに投げても解けます。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「古典命題論理は比較的簡単(SATの補問題なのでco-NP complete)だけど一階述語論理は決定不能で、そこをどうにかうまくやるソルバはいくつもある」 / Twitter
- h_sakuraiさんはTwitterを使っています 「SATが論理命題で、SMTは算術演算があるやつで、z3はマイクロソフトの高速なSMTなんだな。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「古典命題論理のソルバー、判定するだけならSAT solverというソフトウェア群が知られている」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@ukikagi run {} for 8 なので、位数8以下という前提を立てて、そうするとドメインが有限になるので命題論理式に落とせて、あとはSATで解くという感じですね。必ずしも小さい方から出力されるわけではないようです。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「論文のネタにしようかと思ったけど明かしてしまうと、The ILTP Libraryの直観主義命題論理のデータセットのうち証明不可能なもののほとんどは、菱型のKripkeフレームを用いてSATに変換すると一瞬で反駁できる。」 / Twitter
- Kenji YoshidaさんはTwitterを使っています 「SATとか詳しくないけど https://t.co/HEcex0YXbb 関係あるような話題として、sbtのAutoPluginのためのこんなコードが既に入ってるので https://t.co/UG7Y0TtfIZ 依存関係管理に命題論理が役立つ? #ScalaMatsuri」 / Twitter
- mti@さんはTwitterを使っています 「充足可能性問題(じゅうそくかのうせいもんだい、satisfiability problem, SAT)は、一つの命題論理式が与えられたとき、それに含まれる変数の値を偽あるいは真にうまく定めることによって全体の値を'真'にできるか、という問題をいう。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「古典命題論理、解きなさいって言われたらSATソルバーにかけるだけなのに、証明図を書きなさいって言われた途端めんどくさくなるから理不尽ですね」 / Twitter
算術
- Shinji KonoさんはTwitterを使っています 「不完全性定理は実際に決定できない命題pを構成するけど、p∨¬pの仮定とは両立する。それを場合分けすると、両方で⊥になる。あんまりよろしくない。でも自己言及してるはずだから直観主義論理での⊥の導出は停止性に引っかかるのか。対角線論法側は?」 / Twitter
- 数学&論理学bot(・ω・)さんはTwitterを使っています 「〈一階算術の公理系〉 有名な公理系を挙げる。 1.ペアノ算術:ペアノ公理+加法+乗法 2.ロビンソン算術:(1)-数学的帰納法 3.プレスバーガー算術:(1)-乗法 1と2は不完全性定理より真偽が決定不可能な命題が存在し、3は量化子消去ができるため全命題の真偽が決定できる。」 / Twitter
- プレスバーガー算術 - Google 検索
- プレスバーガー算術 - Wikipedia
- プレスバーガー算術は本質的なのか? - martingale & Brownian motion
- プレスバーガー算術の決定可能性 - 有限オートマトンを使う証明の形式化 - tpp2015.pdf
- 原始帰納的算術 - Wikipedia
- 原始再帰関数 - Wikipedia
- 初等関数算術 - Wikipedia
- ペアノの公理 - Google 検索
無理数と集合
- Miura HidekiさんはTwitterを使っています 「どうせ無理数は関数の結果から得るしかないから、式を式のままで扱えばよいと思う」 / Twitter
- ╹ω╹linguini.leanさんはTwitterを使っています 「@miura1729 式の結果で表せる実数の集合になんか名前付いてないんでしょうか」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 @1inguini なんらかの新しい表現(=式)を与えて新たに特定の数を示すことによって式の結果で表すことが可能になっていくため、集合としては成り立たない気がします。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 結局なんらかの「表現」を持って来て記号処理で、という話になりますよね。」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています 「“一般の無理数を表すデータ構造” をつくるのは無理なはずです(そもそもプログラムは可算無限個しかないのに対して無理数は非可算無限個ある)」 / Twitter
- Shinji KonoさんはTwitterを使っています 「無理数には二種類あって、一つは述語論理的な記述を持つもの。そして、それ以外。まぁ、それ以外っていう記述は持つのだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一つの実数と特定できるか、範囲を限定できるもの。」 / Twitter
集合論・位相・表示的意味論
histric-1
- Shinji KonoさんはTwitterを使っています 「集合論使ってると、ポインタとキャスト使いまくりのCとSQLの組合せみたいで最低だな。でも、それは偶然ではなくて、当時、論理的な記述にしようと思うと、述語論理とそれに基づく集合論の記述を使うしかなかったってことね。既に圏論もあったのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論と排中律の組合せだと、まず、 x なんか集合がある A x B ∋ x かどうか排中律で調べる。そうだったら A ∋ a をxから取り出せる。どっかでみたCのプログラムみたいだろ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なんかの集合Aから分出公理で select A (λ x → ... ) でいろいろ抜き出す。もちろん、それがSQLのselectの元なので…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「置換公理のわけわかなのは、どんなに大きな集合で入れ換えても怒られないところ。まぁ、それ含めてUnionとれば良いじゃんってことなんだろうけど。構成主義とはほど遠い。でも、そこは上界があるのいう明示的な仮定で。上界はHODで取ってこれる仮定なので、まぁ、どうってことない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「でも、置換公理は ε-inductionには関係しないはずだな。その辺りがHODの便利なところ。なので、いけそうな感じだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「V=Lって最近まで記号モデルに制約する的に読んでたんだが、VはあらゆるPower Setを含んでるので、むしろ、どんな部分集合でも完全に定義できるだけの定義可能な述語を持ってるって話なので、まぁ、無理っぽい。HODも同罪に見えるが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HOD自体にはPower Setを作る能力はなくて、そこはsup(上界)に押し付けてる。supは構成的ではないのだが、構成主義論理は寛容なので「それがあるとすれば」的なものは許してくれる。もちろん「矛盾しても知りません」なのだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので HOD=V ってよりは HOD+ sup=V みたいな感じ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いろいろ謎な部分は多いけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HOD=ORD的な仮定を入れてるのは田中先生の本に書いてあったからなのだが、かなり微妙。定義可能なものを数えた順序数を使います的な。なので可算に落ちてしまう。sup で入れたPower Setも「それは記述可能だからOk」的に入ってる。実際の部分集合すべて的な記述は超限帰納でしかアクセスできない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「基数も見かけは簡単に書けた。これがなんなのかは、これから調べる感じ。この手の存在量化は recordで書くべきだな。 Card : OD Card = record { def = λ x → (a : Ordinal) → a o< x → ¬ Bijection a x }」 / Twitter
- Shinji KonoさんはTwitterを使っています 「∃x∈A→P x は ¬ ¬ ( ∃x∈A→P x ) = ¬ (x∈ A → ¬ P x ) なので、二重否定を入れれば構成主義論理で問題なく議論できる。 この辺りが強制法で様相論理を入れる理由。なので構成主義論理でやる限り。必要ないらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論は集合とその関係∈なので、Agda的には二つのLevelがある。圏だと対象と射と射の関係ななで三つ。ODは順序数とその方程式なのでLevelは一つ。つまり∈のLevelに制約が付く。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Trans finite induction は順序数と述語を含むのでLevelは二つ。可算順序数なら実際に証明できる。単なる帰納法に落ちるので。なんだが、OD側では一つしかLevelがない。足せば良いのだが、排中律と選択公理の関係で排中律の対象となる述語のLevelを限定する必要がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ってことはTrans finite induction の述語はn に相対的に決まるのでn、suc n、… ってことになる。可算順序数なら、そのどれでも証明できる。使用するのはnとsuc nの二つ。suc nが多いのだが、排中律から選択公理を出すのにnがいる。なので二つ用意してた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「超限帰納法TFが可算順序数に対して証明できるってのは面白い。整数論の整合性はTFで示せて、不完全性定理的には示せないのだが、それはTFは非可算順序数に対しては証明できないから。TF自体はモデルがあるから無矛盾。Pの無矛盾と証明があるのとは別なのか。 ¬ ∃ ¬ Pと ∃ P だな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「この辺りの議論のはぎれが悪いのは、メタ数学を議論するのに古典論理を使ってるからなのか。そこは直観主義論理を使うべきところなわけね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「選択公理の独立性でも、選択公理を否定しても無矛盾を先に示してる。え、それで証明終わりじゃないのと思ったものだが。」 / Twitter
histiric-2
- Shinji KonoさんはTwitterを使っています 「古典集合論だと集合持ってきて、それをモデルにするとかやるのだが、ODによる連続体仮説だと直接Lを構築するので、それは要らないみたい。問題は集合と順序数との対応だから。V=Lから連続体仮説を出すのが既にできるはず。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「選択公理の方はよくわからない。排中律から行くのではないはずだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論の中からは∋があれば順序は決まる。対応するアドレス(順序数)の絶対値は知り得ない。問題は部分集合間の順序なので、Power Setの問題になる。もちろん、それらはODの世界では絶対アドレスがあるので順序がある。⊆も排中律がないので、どっちかは決まらない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「シェーンフィールドは、どうもZFでない自明な集合論があると思ってるらしく。選択公理は自分たちのsetでは正しいとか書いてる。yの部分集合の要素z(y)を<y,z(y)>の順序対にして、それ全体を取ると自明に選択関数になる。そのz(y)が取れないから泣いてるんですが。setは要素から徐々に作られる的。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「シェーンフィールドのsetは要素から順々に作られるので整列定理も自明。でも、それでは実数は作れない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「シェーンフィールドでは直接的にPower ωの選択関数を否定する感じか。ωの選択関数は最小値を取れば良いのでZFである。ωの部分集合なら帰納法が使える。Power ωだとそうはいかない。でも超限帰納法と排中律で見つけることはできる。整列してるから。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「だったら排中律に制限を入れれば一発か。選択公理が成立しないような排中律の反例を入れておく感じかな。LではPower ω はL ωの要素でもあるから、L ωにそういうものを入れられるかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「もっとも、それが入るのはPower Setだけか。 (x : Power P ) → L P ∋ x ってだけだな。L P = Power P だと自明に成立する。他には影響しないから、ベキ集合の公理を邪魔しなければ良いってこと?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ベキ集合の公理を出そうと思ったらネットが落ちてるんだった。github側があるな。 power→ : ∀( A t : ZFSet ) → Power A ∋ t → ∀ {x} → t ∋ x → ¬ ¬ ( A ∋ x ) power← : ∀( A t : ZFSet ) → t ⊆ A → Power A ∋ t 二重否定が入ってるのは直観主義論理だから。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「これはPower Aが構成的でないことが原因。なので、A ∋ x に証明がなくても許される。これは都合が良いかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ZFもだいぶ見えてきた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「排中律から選択公理を導出するところでは二箇所で排中律を使ってる。普通に使うところと ((x : Ordinal ) → A x ∨ B) → ((x : Ordinal ) → A x) ∨ B だな。x がないと、B を作れない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ここで二重否定が入るのは Power Aが構成的である必要を外すため。そうでないと、Power AはA ∋ xを構成する方法を全部知ってる必要がある。A=ωとかなら良い。A = Power ω だとちょっと。 power→ : ∀( A t : ZFSet ) → Power A ∋ t → ∀ {x} → t ∋ x → ¬ ¬ ( A ∋ x )」 / Twitter
- Shinji KonoさんはTwitterを使っています 「D : HOD → HOD つまり定義をHOD として Df x = Power x ∩ D x を使ってLを構成するってideaなんだが、 L ω = V ω なDでないとだめ。Lに自由度があるので V = L にも自由度がある。 V = HOD ⊇ L だがDをPower xにするとV=Lになる。 ても、そこからは何も出ない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「record L : Set (suc n) where field ldef : (x : Ordinal) → odef D x ∧ Set n とするとDに適切な制約を入れれば D → ZF とできそうな気はする。Vとかωとかがちゃんとできれば。Dが強制条件でGeneric Filterとかになれば。もっと簡単な条件もありそう。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なのだが、このV=Lから選択公理=排中律を出すのはなぁ。整列定理はHODでは成立してる。古典集合論だと排中律の方が仮定されてるから… 順序数方程式で排中律が成立する条件みたいなのを探さないとダメか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「連続体仮説の方はDをそういう風に定義できるできると思われる。もともと、それに近い仮定は入れてしまってるのだが。古典集合論のHODでもそれに近いは仮定はあるみたい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「もしかして、Dの定義に排中律を書けるのかな。 lem : D lem x = record { od = record { def = λ x → & (Power x )∧ (λ y → Dec ( odef x y )) }} うーん、どうかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「で、そこに対角線論法を書くと選択公理を否定できる的な?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「コーエン先生は「数学は選択公理と連続体仮説抜きで議論されるようになる」ってな考えだったみたいだけど、直観主義論理と圏論はそういうものだな。同じものだし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Dec は強過ぎるが、¬ ¬ Dec ってのもなぁ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「¬ ¬ Dec ( x ∋ y ) ってもしかして、何も言ってない?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「表示的意味論と集合論は、位相空間論の重要な応用」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まぁ、それはわかるんだが、論理そのものが可算に閉じてるので、いろんなものを自然数にencodeするのが数学ってことだと思うと少し虚しいところがあるな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そして数学者は数論に回帰するわけね」 / Twitter
- Shinji KonoさんはTwitterを使っています 「でも、可算無限の本当の大きさを人は知らない」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合論は、整列定理と選択公理が排中律で分離できるってのを最初に教えてくれれば、もっとずっと早く理解できたと思う。まだ、チコノフの定理やってない。」 / Twitter
自然演繹・原論
- Shinji KonoさんはTwitterを使っています 「もともと集合論で数学自体論理自体に疑いが出てきた時に、論理とはこういうものと疑えない操作的意味論を持つ、つまり 単なる記号ゲーム として提案されたのが自然演繹、Natural Deduction 。そして今の定理証明支援系につながってる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「自然演繹以前の論理学は、単なるそれっぽい文学。もちろん、モデルがあれば整合性があるのだが。ユークリッドとかニュートンとか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「吉田先生がいきなりユークリッドの原論を言語で読もうと言い出したのは、自然演繹を越える何かがあると思ったからだろうな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「自然演繹NJは記号の処理だけだが、原論は図と作図操作がある。作図操作は物理制約なので記号的な操作とは異なる可能性がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「図に関する推論も結構研究されて補助線を導出するとかあった。回転とかの幾何学的推論を記号に落とす方法はデカルトの解析幾何、つまり、線形代数がある。確かにそれは原論のモデルになるのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「原論の推論に対応するものは自明には見えない。」 / Twitter
定理発見
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「定理発見は演繹操作では無理で、モンテカルロ法的な手法が必要。 数学の法則は無限に存在するはずだが、たぶん99.99...%がゴミ法則という罠。」 / Twitter
- モンテカルロ法 - Google 検索
直観主義論理・一階述語論理
- Shinji KonoさんはTwitterを使っています 「集合論と一階述語論理で数学を記述すると、∀ x . ω∋x → ... ってしつこく書くとこになるので煩雑。高階直観主義論理で書くと明確になる。要するに圏論/Dudective Systemでやれってことね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「数学的帰納法はAgdaではdataの分解になる。そこに、なんの曖昧性も出てこない。一階述語論理でやるとかなり悲惨。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「超限帰納法も教科書通り極めてsimpleに書ける。 TransFinite : { ψ : ord → Set (suc n) } → ( (x : ord) → ( (y : ord ) → y o< x → ψ y ) → ψ x ) → ∀ (x : ord) → ψ x これは可算順序数上で証明可能。可算順序数は構成的存在物ってことね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一階述語論理をAgdaで書いたので、今更、Model に関する理解が深まった。そして、等式述語を入れる難しさも理解した。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「All X => All Y => (( Exist Z => ( ( father ( X , Z ) ∧ father ( Y , Z ) ))) ⇒ brother ( X , Y) ) は brother ( X , Y) :- father (X , Z) , father (Y , Z) に正しく変換された。ちょっとうれしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一階述語論理のinterpretationは個々の述語の審議値の定義。公理をすべて真にするのはModelという。矛盾があると命題は全部真になってしまうので、無矛盾性は偽な命題があること。あるいは非自明なModelがあること。公理がなくても恒真な命題は任意の interpretationに対して真。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaの実装でこの辺りを調べるだけでも面白かった。Modelの構築で見落としがあると、なかなか公理が真にならない。公理には∀が入ってることが多いから。ってModelを手で作るからだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「恒真な命題は割と簡単に真になる。トートロジーと恒真を区別するのはやめろ〜 区別してるのはダメな本認定で。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一階述語論理の∀と∃はカッコに対する位置に過敏で間違えやすい。初学者泣かせ。幸いなことにプログラミングには出てこない。節形式にすればなくなるので幸せになれる。∃を関数に置き換えるだけでも。εδも関数明示でわかりやすくなる。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「εδでも実際の証明では関数使うが、一般的に∃が関数です置換え可能ってのに自力で気がつくのは難しいかも。ただしscopeがずれることがあって… 正則公理と選択公理の区別がなくなったり。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「正則公理のミニマルは自分自身との共通部分が空な自分の要素だから、空でない集合の要素を取ってきてるので確かに選択公理っぽいのだが、排中律があれば「取れるか取れないかどちらか」なので特になにも付け加えられないのでセーフ。直観主義論理では関数を作る必要があるのでアウト。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直観主義論理の方がはっきりわかりやすしいし、定式化も楽。そういう風に記述するべきだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一階述語論理はモデルを使って意味付けるが、直観主義論理では証明があることが真の意味になる。モデルの構築は面倒だが、証明は限定的。公理に矛盾があるとモデルは全部おじゃんだが、証明は無矛盾に触らない限り有効。証明があるなら恒真ってのはわかりやすい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「直観主義論理で非構成的な議論ができないわけじゃなくて、二重否定で包んで議論すれば良い。非構成的な存在物、例えば選択関数でも、明示的に仮定すれば良い。今の数学だと選択公理はそうなってる。排中律でもそうするべきだってのが一番の違いかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ゲーデルは排中律が成立しない命題を自然数を使って実際に構築するわけなので、排中律は明示するべきってのは説得力がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「整列定理と選択公理が同値なのは排中律があるからなのだが、整列定理は公理っぽい。実数でも右から左の順序あるし。二次元だとあんまり自明じゃないが…」 / Twitter
- ゆかたゆさんはTwitterを使っています 「ところで慣れていない人が物事の「本質」をモデル化しようとする時にはunionを取ってしまいがちという偏見があるのですが、intersectを取った方が嬉しいことが多いです。」 / Twitter
- intersect - Google 検索
histric-1
- SUHARA Hiromichiさんのツイート: "アトミックな命題についてはその通りなのですが、Prologで定義できるすべての命題についていうと、無限再帰や無限バックトラックを起こすことができ、つまり、真偽の決定できない命題が書けるのですね。これをもって、Prologの不完全性をいうことができます。… https://t.co/Qjwk2ZomeB"
- Тургеневさんのツイート: "Prolog(論理型プログラミング言語)においては、真であると明示的に宣言されていない命題はすべて偽として扱う(閉世界仮説と呼ぶ)ということを今日習ったんだけど、「そこになければないですね」って店員が言うのはダイソーが閉世界仮説を採用しているからだとわかってすっきりした"
- yuyabuさんはTwitterを使っています: 「フレーゲの公理系すごいな。6つのトートロジーと2つの規則から任意のトートロジー導けるとかヤバすぎでしょ。」 / Twitter
- yuyabuさんはTwitterを使っています: 「10章入った。任意のトートロジーを扱いたいので公理系をつくる、という話。公理=自明なトートロジーを置き換え規則を適用することで任意のトートロジーを導くことができる。例示されたフレーゲの公理系では6つ!のトートロジーから任意のトートロジーを導くことができることが証明されている https://t.co/3JD1gEMtFf」 / Twitter
- チャーチ数 - Google 検索
- 帰納法と余帰納法の何がどう双対なのか(初等的に) - sumiiのブログ
- Hisabumi HatsugaiさんはTwitterを使っています: 「Actor model でもデッドロック発見器的なもの(システムの状態遷移計算)を作ることはできる.λ計算のインタープリタを作る必要があるので少し規模が大きくなるかも.正常に動くモデルの振る舞いを観察するのは楽しいだろう.(続」 / Twitter
- Hisabumi HatsugaiさんはTwitterを使っています: 「しかし問題のあるモデルの場合,actor configuration に含まれるメッセージのマルチセットが大きくなる一方(未処理のメッセージが溜まる一方)ということの方が多そうな気がする.この場合は計算が終わらない.閾値を設けて止め,溜まってしまうメッセージを分析するツールとすればいいかもしれない.」 / Twitter
- Hisabumi HatsugaiさんはTwitterを使っています: 「モデル検査の習得でつまづくことの1つは時相論理.式が自分の意図とあっているか不安になる.プログラマは理解するためにプログラミングするという武器を持っているので,時相論理の処理部分を自分で書いてみればいい.そう考えて構成をくふうした.アルゴリズム実装と視覚的フィードバック. https://t.co/upEsUJgubz」 / Twitter
- Hisabumi HatsugaiさんはTwitterを使っています: 「モデル検査では実行が無限に続くケースを対象にすることが多いけど,途中で停止するケースが含まれていても少し修正すれば適用できる.すると EX true でデッドロック状態を見つけることができる.でも AFφ の落とし穴に落ちることもある (^^;).」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「クリティカルパスを短くするのとカルノー図を用いた論理圧縮は独立な事象だと思うけど、HDLを使っていればその程度の論理圧縮はやってくれる気もする。」 / Twitter
- 解答略さんはTwitterを使っています: 「こういう図を見るたびに思うのですが、微細加工技術の進歩した現代の半導体回路設計の現場においては 「論理素子の少ない(面積の小さい)回路図」 はそれほど求められて無い気がする。むしろテクノロジーマッピングを考慮して 「動作速度の速い(クリティカルパスの短い)回路」 を作る方が重要なのでは https://t.co/FoBBISedMS」 / Twitter
- 論理回路学たんさんはTwitterを使っています: 「<論理回路学・要点のつながり> 論理関数の簡単化 複雑な論理式を簡単化すれば 回路の部品が減って,良い回路になる。 論理式の簡単化は方法が2つ ・ブール代数で計算して簡単化 ※下図(3)→(6) または ・カルノー図で出力をまとめて簡単化 ※下図(3)→(4)→(5)→(6) https://t.co/ZpXOK8f4Hl」 / Twitter
- FadisさんはTwitterを使っています 「再帰は末尾再帰最適化が行われない場合1回まわる毎に少なくともリターンアドレスがスタックに積まれ、再帰回数が多すぎるとプロセスはスタックを使い切る。末尾再帰最適化はコンパイラの気分でかからない事がある為、ループ回数について予想がつかない場合の再帰への書き換えはおすすめできない」 / Twitter
- FadisさんはTwitterを使っています 「再帰でスタックを使い切ってページ未割り当てのアドレスに値をpushしてSEGVしたメモリダンプは画像で見ると縞模様が出やすいので目grepビギナーにオススメ」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「一般論としてまったくその通りなんだけど、関数型言語の中には言語仕様で末尾最適化を保証しているものもあったり。Scheme (R5RS) なんかはその例。 ただし以下の階乗の例にあるように末尾最適化が可能なコードは、素朴な再帰的書き方よりもやや冗長になることが https://t.co/bSOFBzri9R https://t.co/3jTKm3opAn」 / Twitter
- お気楽 Scheme プログラミング入門
- きいねく@とりあえずやるさんはTwitterを使っています 「論理式って一行表記すると視認性わるいよなぁと常々思っていたので,これくらいはやりたい. (特に量化子の部分を小さくするのはよくやる) https://t.co/t62gffQuHR」 / Twitter
- 状態(の変化)*さんはTwitterを使っています 「JSONをunificationベースで扱う、とか、JSONに(論理学でいうところの)述語を突っ込むとか、あるにはあるけど https://t.co/KvRbb1fBTd これ使えばPrologはつくれるよね」 / Twitter
- JsonLogic
- 状態(の変化)*さんはTwitterを使っています 「QuineのNF関連みてるとわかるけど、atom(集合論の界隈ではurelement=原要素、という用語を使う)が何であるかは論理型言語とかメタプログラミングの上では割とどうでもいい(処理系はそこに頓着する理由がない)」 / Twitter
histric-2
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分も「論理学をつくる」でフィッチスタイルを見て、これはわかりやすいと思った。今週末のセミナーでは同じ流れを Isabelle でやる。わかりやすい上に規則適用が正しいかどうかのチェックも入るので完璧。パズル的な楽しさもある。練習問題もたくさん用意した。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ゴール(仮定の列と帰結)を見たとき、どういうものがあったらどう攻撃するか(どの規則を使うか)というかなり確定的なヒューリスティクスがあるのでどんどん証明ができるようになる。1点、否定が難しくて、それはそれでパズルとして面白い。背理法を使うやつ。」 / Twitter
- ぁゃιぃツイートをしないさんはTwitterを使っています 「え、もしかして古典論理の定理を二重否定した奴全部直観主義で証明できたりしますか」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@Kory__3 命題論理ではそうで(Glivenko変換)、述語論理では量化の付近にも二重否定をつける必要があります(Godelの二重否定変換)」 / Twitter
- cutsea110さんはTwitterを使っています 「1階述語論理の論理式の真偽を自動判定するのは原理的に不可能…why? 後続の有界スコープ仮説を導入して命題論理式に変換すれば…SATソルバに云々はワカル!!」 / Twitter
- 26_3_78.pdf
- アラクーさんはTwitterを使っています 「命題論理を項書き換え系とみなして完備化すれば自動証明システムを作れるクヌよ!」 / Twitter
- アラクーさんはTwitterを使っています 「@yukeizuta 四色定理とかケプラー予想とかのように部分的にコンピュータに計算させたものから、それこそ論理式のレベルで命題を解くようなシステム(グレブナー基底などの項書き換えシステムを含む)の研究もなされていると思います」 / Twitter
- ゆかたゆ@VRC&日常さんはTwitterを使っています 「@minagi_yu @zassouEX 計算機は「論理式」なんてものは知らず、単純な操作を繰り返しているだけですが、数学の定理の証明や、任意のNP問題の解決に使えます (SATはNP完全なので) こうして、命題論理において有限の項で構成される命題の証明は人間の手を離れ、計算機に任せられます。わーい! ということなのです。」 / Twitter
- Sosuke MORIGUCHIさんはTwitterを使っています 「ゼミの準備として書いた単純型付きラムダ計算の項から対応する命題論理の証明が出せるっていう証明。要するにCurry-Howard対応(の一方向)。手抜き。 http://t.co/q84AlTrB @ideoneさんから」 / Twitter
- gQUcZ - Online IDE & Debugging Tool - Ideone.com
- ミノ駆動さんはTwitterを使っています 「「テストは『欠陥があること』しか示せない」 ソフトウェアテスト原則のひとつ。 テストでバグがあることは証明できる。 しかしバグがないことは証明できないのだ。 例の検査にも同じことが言える。」 / Twitter
- 広瀬香美さんはTwitterを使っています 「それが良いなら、 命題 -> プログラム 直観主義命題論理の自然演繹において、 命題さえあれば、証明図は定まる 証明図は、型付け図に対応できるので、命題は項をエンコードしたものとみなせる。 プログラム -> 命題 項が与えられたら、命題も得られる つまり 命題 = 項(プログラム) も言えないか?」 / Twitter
- 広瀬香美さんはTwitterを使っています 「~しくみのほうでは、型判断でターンスタイルを使ってたので、論理式で使う記号と分けて使いたいのかなとなった。 ~序説のほうでは、ターンスタイルはもっと上位の概念で使ってた(証明図が得られることをターンスタイルで表していた)から、まあ仕方ないのだろうけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「記号論理は interpretation とmodelだな。そして、それは自然演繹とは別。」 / Twitter
- hagi.is.s.u-tokyo.ac.jp/pub/staff/hagiya/kougiroku/ronri/5.txt
- (PDF) CAPEレクチャー 論理学上級I 古典論理の推件計算と計算的内実(途中版) | Shunsuke Yatabe - Academia.edu
- 論理型言語に基づく構文解析システムSAX
- Learn just enough about linear types
証明
証明
Coq
- プログラミング Coq [研究開発] IIJ Innovation Institute
- プログラミング Coq [研究活動] IIJ Innovation Institute
- Coq - Wikipedia
- Coq - Wikipedia
- Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する - エンジニアHub|Webエンジニアのキャリアを考える!
- Welcome! | The Coq Proof Assistant
- prg.pdf
- coq-jssst2014.pdf
Prolog
- Prologによる自動定理証明 - Qiita
- Prologは定理証明系として、健全だが完全ではない - Qiita
- CiNii 論文 - Prologによる数学上の定理証明
- 2014Tokuyama.pdf
- (81)並列定理証明器:MGTP/G Prolog版
- 宣言型プログラミングの可能性と限界 | Think IT(シンクイット)
- shiryo2.pdf
利点
- FadisさんはTwitterを使っています: 「ソフトウェアの動作を保証したければ、すべき事は新言語を作るとかコーディング規約とかじゃなくて証明なんだよな…」 / Twitter
- FadisさんはTwitterを使っています: 「バグを直すにはしばしば職人のカンのようなスキルが要求される上に修正に要する時間は誰にも見積もることができない。一方テストや証明を使ってバグが出ないことを保証しながらコードを書くのは論理的な作業だし、要する時間もあらかじめ見積もることができる」 / Twitter
- FadisさんはTwitterを使っています: 「経路が膨大になるとユニットテスト的な手法は難しくなってきて、相対的に証明が便利になってくるんだよな。つまり「起こってはいけないことが起こらないか確かめるんじゃなくて、起こってはいけないことが数学的に起こりえないような作りを心がける」 #boostjp」 / Twitter
- FadisさんはTwitterを使っています: 「依存型と証明の話、conceptとconstexprに篭っている限りだいたいC++で解釈できて「実行時に決まる型でコンパイルできんだろ」っていう壁を隔てて同じ事をやりたがっている感が凄い」 / Twitter
- FadisさんはTwitterを使っています: 「「その数式(略」、証明の歴史、形式主義の登場、ペアノの公理が来て20世紀に突入して 「第十章 プログラミングの基本概念」 でそういえばプログラミング本だった事を思い出す」 / Twitter
- FadisさんはTwitterを使っています: 「ソフトウェアに不具合がないことを証明することは理論的に不可能なんでなかったか。不具合がないことを保証するということは確率の差こそあれ本質的に博打」 / Twitter
- 天使恵さんはTwitterを使っています: 「@fadis_ 「不具合がない」という言葉が既に抽象的なので,多分無理なんでしょうなぁ.ある実装と,別の何か(仕様記述言語的なもの)が完全に一致することは証明できる可能性はありますが...」 / Twitter
- Tsukasa #01 [要出典]さんはTwitterを使っています: 「@fadis_ 誤解されがちですが、証明する一般化された手法がないというだけですよ。証明する部分を限定化して証明の一部を手動にしたのが Coq とかの証明駆動ですし。まぁ一般のプログラムの性質全般なら組み合わせ爆発を起こして現実的じゃないですが。」 / Twitter
- 梶本裕介さんはTwitterを使っています: 「@fadis_ 停止性問題とかの話ですかね?あれは任意のプログラムに対してそれが停止するかどうかは決定不能というだけで、多くのプログラムは(ループなら例えば整礎集合に依存することで)個別に停止性を証明できます」 / Twitter
型付きラムダ計算
言語実装
- 基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita
- Elm で作る TaPL のラムダ計算(その2)
- C++で型なしラムダインタプリタを書いた - Qiita
- 型無しラムダ計算学習用ステップ評価器 Mogul を作っている話 - Qiita
- 自作ラムダ計算処理系「らむだフレンズ」 - Qiita
意味論
論理と推論・証明
Wikipedia
- 自動定理証明 - Wikipedia
- 数学基礎論 - Wikipedia
- 証明論 - Wikipedia
- モデル理論 - Wikipedia
- 公理的集合論 - Wikipedia
- 再帰理論 - Wikipedia
- 操作的意味論 - Wikipedia
- 推論規則 - Wikipedia
- シークエント計算 - Wikipedia
- 自然演繹 - Wikipedia
- 演繹定理 - Wikipedia
- 推論 - Wikipedia
- 公理 - Wikipedia
- ペアノの公理 - Wikipedia
- 一階述語論理 - Wikipedia
- 原子論理式 - Wikipedia
- Well-formed formula - Wikipedia
- 自由変数と束縛変数 - Wikipedia
- 論理的帰結 - Wikipedia
- シークエント - Wikipedia
- 命題論理 - Wikipedia
- 古典論理 - Wikipedia
- 直観主義論理 - Wikipedia
- 様相論理 - Wikipedia
- Structural proof theory - Wikipedia
- 部分構造論理 - Wikipedia
- 適切さの論理 - Wikipedia
PDF
- 第4回「証明」
- gentzen-NK.pdf
- lecture5.dvi
- PowerPoint Presentation
- lecture5-dist.pdf
- 3-print-nk.pdf
- temporary.pdf
- kikuchi1
- kikuchi
- ja
- プログラマー向けの(?)数理論理学(1)数学的言明 - Qiita
- プログラマー向けの(?)数理論理学(2)証明と推論規則と仮定 - Qiita
- 小学生でも分かる論理計算 (A22P11) - (保存用) 檜山正幸のキマイラ飼育記 メモ編
- 推論規則と定理、公理は違うもの? -推論規則というものがイマイチ何な- 数学 | 教えて!goo
- ソフトウェア科学特論: 命題論理の推論体系
- 推論規則 | 命題論理 | 論理 | 数学 | ワイズ
- 推論規則
- 村上・泉田研究室 AI (人工知能)
- 4. 推論規則と証明
- 推論規則と証明
- 論理体系の解剖-1.3- ゲンツェン流とヒルベルト流 - 知識は永遠の輝き
- 論理学
- Introduction to Mathematical Logic
公理的意味論
- PowerPoint Presentation
- Microsoft PowerPoint - MItoku2-04-hoare.pptx
- Microsoft PowerPoint - PLT12.ppt
Wikipedia
- プログラム意味論 - Wikipedia
- 操作的意味論 - Wikipedia
- シークエンス - Wikipedia
- Simulation preorder - Wikipedia
- 双模倣性 - Wikipedia
- 合同 - Wikipedia
- 再帰的定義 - Wikipedia
- 推論規則 - Wikipedia
- シークエント計算 - Wikipedia
- 演繹定理 - Wikipedia
- 命題論理 - Wikipedia
- カット除去定理 - Wikipedia
- 亀がアキレスに言ったこと - Wikipedia
- ラムダ計算 - Wikipedia
- 抽象機械 - Wikipedia
- SECDマシン - Wikipedia
- CiNii 論文 - SECDマシン再訪
PDF
- H28-hasegawa.pdf
- untitled
- untitled
- https://researchmap.jp/mu03gtcsf-1774112/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=68269&metadata_id=39541
- NKNJ.pdf
- https://researchmap.jp/muxqtr6ru-1787519/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=29962&metadata_id=48743
- (PDF) 証明論的意味論入門 | Shunsuke Yatabe - Academia.edu
- コンパイルの論理学的基礎:次世代言語構築の基礎理論紹介
- プログラム言語論 意味論
- 「論理学入門」講義ノート - abelard.flet.keio.ac.jp / abelard-flet-keio-ac-jp.pdf / PDF4PRO
- https://researchmap.jp/?action=cv_download_main&upload_id=37475
- Microsoft PowerPoint - proglang_09_semantics.pptx
- Microsoft PowerPoint - 2017-L06-Syntax and Semantics-20170518.pptx
- PowerPoint Presentation
- Microsoft PowerPoint - PLT12.ppt
- untitled
- Introduction.pdf
- resume5.pdf
- j-1-2.pdf
- _pdf
- _pdf
- ppl4-2.pdf
- nyumon_logic.pdf
- 2018年度 | ソフトウェア検証論 - TOKYO TECH OCW
- Introduction to Mathematical Logic
- プログラミング言語の規則の書き方と読み方 - Qiita
- 誰でも動かせるPrologで操作的意味論を書こうぜ - Qiita
- 突発簡単チュートリアル2:λ計算の操作的意味論 - sumiiのブログ
- 操作的意味論 vs 表示的意味論 - sumiiのブログ
- プログラムの3つの意味論のまとめ - 射撃しつつ前転 改
- プログラミング言語を形式的に取り扱う – ゴミ箱
- なぜ僕は操作的意味論に傾いたか - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 操作的意味論と、不純な表示的意味論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 評価シーケントの論理計算と操作的意味論 - 檜山正幸のキマイラ飼育記 (はてなBlog)
- Isabelle による並行プログラミング言語の操作的意味論と表示的意味論の同値性証明 - Think Stitch - PRINCIPIA
- TAPLを読む会(~7章) - 忖度
- CiNii 博士論文 - 言語Rubyの操作的意味論と型解析
- スモールステップ意味論 - mrsekut-p
- tapl ch 1 - 3
- 命題論理について
- プログラミング言語として考えたTensor flow
- ja
型なしラムダ計算
- H25-hoshino.pdf
PDF
- 計算機ソフトウェア工学
- 計算機ソフトウェア工学
- 構造化プログラミングと データ抽象
- 構造化プログラミングと データ抽象
- 構造化プログラミングと データ抽象
- 構造化プログラミングと データ抽象
- 5.pdf
- typed.pdf
- stlc.pdf
- typedlmd.pdf
- lambda.pdf
- sou19.pdf
- Computersoftware 20-2
- intro-lambda05.pdf
- selfref2006.dvi
- cs2015_hoshino.pdf
- lambda.pdf
- 2.pdf
- lambda
- dependent.pdf
- 5.pdf
- RelevantTheories
- main.pdf
- _pdf
- カリー=ハワード同型対応にびっくり - うつし世はゆめ / 夜のゆめもゆめ
- カリー=ハワード同型対応 - Wikipedia
- 型付きラムダ計算 - Wikipedia
- ラムダ・キューブ - Wikipedia
- 二階述語論理 - Wikipedia
- System F - Wikipedia
- 型付きラムダ計算 構文論 再入門 1/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 型付きラムダ計算 構文論 再入門 2/2: カリー/ハワード対応のために - 檜山正幸のキマイラ飼育記 (はてなBlog)
- 型付きλ計算と単純な拡張 – ゴミ箱
- Stlc_J: 単純型付きラムダ計算 — ソフトウェアの基礎 1.0.2 documentation
- MoreStlc_J: 単純型付きラムダ計算についてさらに — ソフトウェアの基礎 1.0.2 documentation
- ラムダ計算ABC - Sendai Logic Homepage
- 不動点定理 - Wikipedia
- 不動点コンビネータ - Wikipedia
- 不動点とfix演算子 - 一歩前進
- 論理と計算のしくみ 5.3 型付きλ計算 (前半)
- tkrさんのツイート: "false→Aは ¬false∨Aより常に真だからfalseの仮定をすると任意の命題を証明可能まじかすげえ"
- ミドリムシ+さんのツイート: "1=2から全ての命題が導けるわけです… "
- tkrさんのツイート: "1=2の力すげえ… "
- Fadisさんのツイート: "ソフトウェアの動作を保証したければ、すべき事は新言語を作るとかコーディング規約とかじゃなくて証明なんだよな…"
- Coqで学ぶ証明プログラミング! テストだけでなく「証明」で安全性を保証する - エンジニアHub|若手Webエンジニアのキャリアを考える!
- 証明最高! じゃあテストは糞なの? ― テスト談義 - プログラムモグモグ
- 証明プログラミング超入門
- 自動定理証明の紹介
- Coq と定理証明
- 第14回 型=命題,プログラム=証明 | 日経 xTECH(クロステック)
- 自動定理証明 - Wikipedia
- Basics_J: 関数プログラミングとプログラムの証明 — ソフトウェアの基礎 1.0.2 documentation
- 構造化プログラミングと データ抽象
- 定理証明支援の紹介 - Qiita
- 環境スタック 定理証明 - Google 検索
- ホールドリブンで探索 定理証明 - Google 検索
- 定理証明支援系と依存型プログラミング勉強会 - PukiWiki
- _pdf
- モデル生成型定理証明系MGTPの要素技術 - hasegawa.pdf
- mizutani07222007-30.pdf
- FLOPS2014報告 – DSS Tech Blog
- en
- en
- 圏論とプログラミング読書会#2 資料
- 圏論的指数の周辺:ラムダ計算、デカルト閉圏、ノイマン型コンピュータ - 檜山正幸のキマイラ飼育記 (はてなBlog)
- hatsugai@PRINCIPIAさんはTwitterを使っています 「定理証明支援ツールの力を借りずに数学的帰納法を使うのは難しい.仮定が弱いとか前提が足りないとかいつも落とし穴に落ちるのだけど,それはツールを使っているから気づけるので,紙上の証明では見落としてしまいそう.ツールの支援は自動証明だけでなく証明管理とチェックの面もとても大きい.」 / Twitter
証明(直観主義)
- https://twitter.com/shinji_kono/status/1308575213785763840
- https://twitter.com/shinji_kono/status/1308575483680833536
- https://twitter.com/shinji_kono/status/1308576073110544384
- https://twitter.com/shinji_kono/status/1308576530474303488
- https://twitter.com/shinji_kono/status/1308577332232216576
- https://twitter.com/shinji_kono/status/1308577520174784512
- https://twitter.com/shinji_kono/status/1308577921750065152
- https://twitter.com/shinji_kono/status/1308578429663506433
- https://twitter.com/shinji_kono/status/1308578857176293379
論理式の証明
- j-1-2.pdf
- 記号論理学と情報科学の研究集会'97の開催のお知らせ
- 148784513.pdf
- 4.pdf
- main.pdf
- エルブランの定理 - Wikipedia
- DPLLアルゴリズム - Wikipedia
- 充足可能性問題 - Wikipedia
- ユニフィケーション - Wikipedia
- 導出原理 - Wikipedia
- 冠頭標準形 - Wikipedia
仕様を「定理」とみなし、「公理」と「推論規則」を使って証明
- 入門!論理学 - Heat-Hazeの日記
- Prologで自動定理証明? - atoprolの日記
- _pdf
- 数理言語
- lecture19-dist.pdf
- 20051018_agent3.dvi
- resolutionprinncipleの応用(東芝RM).iml
- 104-koukyuroku.pdf
- untitled
証明図・証明木・探索木
証明木
- 証明論 - Wikipedia
- 3-print-nk.pdf
- gentzen-NK.pdf
- lecture5.dvi - lecture5.pdf
- IPSJ-Z82-4K-01.pdf
- IPSJ-WPRO2016011.pdf
- 2008grad13.pdf
- sakurai10.pdf
- abstract.dvi - PA1-16.pdf
- digidepo_8559157_po_r6-2-7.pdf
- 0716-06.pdf
- Microsoft PowerPoint - logic05-Chap3-1.ppt
- 1539paper.pdf
- 直観主義命題論理におけるタブロー法による定理証明器
- 3-print-nk.pdf
- 2008grad13.pdf
- 述語論理知識を扱う全解探索仮説推論の高速化
証明探索
@keigoi
- Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep たとえば https://t.co/HJZq4qeoti の p.13 にある含意の推論規則は、変数や型環境を加えればそのまま関数適用の型付け規則であるように見えてくる。例えば P -> (P->Q) -> Q の型付けの導出木を書こうとすると、この型をもつ fun x f -> f x というラムダ項(プログラム)しかあり得ないことに気づく」 / Twitter
- gentzen-NK.pdf
- Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep この導出木は証明木と同じ形をしている。一方、型がつくプログラムを書くと導出木ができる。つまり、型のついたプログラムを書けば証明ができたことになる。その逆に、証明ができればそこからプログラムを抽出することもできる。例えば Djinn https://t.co/j0EdLg0Tts は、型を書くと、」 / Twitter
- Djinn
- Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep その型がつくプログラムを自動生成してくれる。これは、その型に対応する論理式を自動証明して、その証明からプログラムを取り出すような動きになっているはず。タプルは「かつ」、Either は「または」、関数型は「ならば」に相当するので色々やってみるとよい」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep たとえば fst :: (a,b) -> a は、A /\ B => A に、left :: a -> Either a b は A -> A \/ B に相当する。 Djinn に型を入れれば実装が出てくるはず。」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@ahuglajbclajep CH対応の考え方は多相型や依存型だけでなく線形論理-線形型、古典論理-継続渡し計算などに適用されているのが面白いです。上のも雑な説明なのでもしわからなかったらまた気軽にオンラインやローカルで聞いてください。」 / Twitter
- 情報系彼女botさんはTwitterを使っています 「論理型言語Prologは、深さ優先の探索をするから定理証明系としては不完全よ。 それに、実行速度のために単一化のOccures Checkを省いた場合は健全性も失われるわ。」 / Twitter
- Kohei SuenagaさんはTwitterを使っています 「.@ksuenaga 「深層学習によるプログラム生成の高速化」はディープラーニングを使って直観主義命題論理の証明を効率的に探索する話.(すなわちプログラム生成を効率的にやる話.)@asi1024 と @skymountain_ と @nushio との共同研究.#PPL2017」 / Twitter
- 市川雄二/New 3 RsさんはTwitterを使っています 「論理って、多分、命題作成能力が重要だと思う。 フェルマー予想も1つの命題作成。 手割りも1つの命題作成。 これができると、自動証明をくっついて解ける命題については結論が出せる。探索が省略できる。」 / Twitter
- 戸次大介/Daisuke BekkiさんはTwitterを使っています 「@ytb_at_twt (承前)ようになったのですかね。そして単なるパラメータ最適化ではない問題は相変わらずどう解いて良いか分かってないと思います。一方、碁のような問題でも、探索の過程で論理的というか証明探索に近い推論をしてるわけで、発見と正当化の区別は自明ではない気がします。」 / Twitter
- 市川雄二/New 3 RsさんはTwitterを使っています 「証明というのは、距離空間の中で生成される多発的なシークエンスをつなぎ合わせる探索努力という気がする。 命題に対して良い距離空間を持って、長いシークエンス(論理展開)を出力できて、不断の探索努力をする人が人類の叡智となる定理を証明する。」 / Twitter
- ytbさんはTwitterを使っています 「推論主義的な古典論理の証明論的意味論を持っているとき、そこからどのように「指示」概念が自然に生まれてくるかと言う問題、ようは ①古典論理の証明論的意味論 ②証明探索木で論理式の極大無矛盾集合をつくる ③スコーレム化して「指示対象」をつくる(個別化する) という流れでいいのかな。」 / Twitter
- HiroshiさんはTwitterを使っています 「これはあくまで物理学の中で扱う数学的な手法であって、数学それ自体とはまた異なる。数学の営みは、数学的概念に対する性質を探索する、と言える。また、論理のギャップなく証明することが求められる。」 / Twitter
- ytbさんはTwitterを使っています 「これ、面白い話で、述語論理の証明探索樹のによるモデルの構成とかは、まさしくモデルの「無限の長さの証明」で、モデルだから偶然的真理についても語ってる訳だよね。」 / Twitter
- KojimaさんはTwitterを使っています 「論理と計算のしくみ、シーケント計算が証明探索を意識した作りになってて、述語論理のカット除去にエルブランの定理使っててびっくりした」 / Twitter
- tenthsublevelofsuicideさんはTwitterを使っています 「こっから2ヶ月は論理学ちゃんとやりたい。述語論理の完全性証明を探索法でやるのがわからなくて挫折した。ヘンキンモデルはわかった」 / Twitter
- てけてけ坊主さんはTwitterを使っています 「新幹線乗れた 遅刻しそうで気が気出ないけど、でも午前中のセミナーは出てよかった イメージとしては証明探索木による完全性定理の証明を述語論理の場合にも拡張するにはWKLぐらいで十分だよねって話をしてて、全てはチェックできてないけどちょっと納得した 完全性定理は選択公理より真に弱い」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「Automated Theorem Proving in Intuitionistic Propositional Logic by Deep Reinforcement Learning https://t.co/S1heVqRruM 深層強化学習で直観主義命題論理の証明探索する論文(@ir5 さん @skyrunner_01 さんとの論文。自分の貢献はあまりないけど)。 昨年の https://t.co/9J3HOxRAvw の続きです。」 / Twitter
- あきやま🐾さんはTwitterを使っています 「@kz_suzuki 探索的テストは広いからどちらもあると思うけど。 経営者は『販売を開始して良いか』の可否判断をする必要があります。その可否判断を演繹的にできるかというと、できません。帰納的に動くしかなくて、『それでいいんだよ』というのが、帰納法だと思います。 数学的帰納法は論理的に証明しているので。」 / Twitter
- КазяさんはTwitterを使っています 「g3cの証明探索がかけてしまった(古典命題論理なので簡単なのはそれはそう)」 / Twitter
- ytbさんはTwitterを使っています 「今日の論理学補講は古典論理の完全性定理と健全性定理。証明探索樹はやっぱりいい。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@sitositositoo たとえば、プログラミング言語の変数表を作る際の最も簡単なアルゴリズムは線形探索ですよね。 ラムダ計算の型システムを一階述語論理で記述するとmapデータを使わずに線形探索を使うことになるわけです。結果的に赤黒木などを使ったmapの実装より遅くなります。しかし証明は可能で短く書けます。」 / Twitter
- 大妖精botさんはTwitterを使っています 「証明探索木、いろんなところで見るが命題論理の真理の木と違うのだろうか」 / Twitter
- p進大好きbotさんはTwitterを使っています 「@Alwe_Alwe ↑の定義は論理式のゲーデル数しか取ってないです。ZFC等が矛盾する際のルール違反を避けるために、述語|-をゲーデル数上限付き証明探索に変えればOK的な話でした。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「まあ実態としては、ちょうど直感主義命題論理の証明探索のことを調べていて面白かたから実装しただけで、さらに追加の工数をかけて古典命題論理の証明探索を実装するほどでもなかったからですね (必要なら ~~P を証明させればだいたい所望のものが得られるので)」 / Twitter
- AlweさんはTwitterを使っています 「@uu7t_u 私の言葉ではないのであれなんですが、古典論理の定理の多くが証明探索的なことで示せる事だからだと思います」 / Twitter
- 足跡45(羃等)さんはTwitterを使っています 「いや証明が探索できるとか表現能力とか何を対象とする論理かとかあるけど」 / Twitter
- ytbさんはTwitterを使っています 「本日の非常勤授業論理学は古典命題論理の完全性定理と健全性定理について。証明探索樹を使ったけど、まあタブローだよね。」 / Twitter
- p進大好きbotさんはTwitterを使っています 「命題論理の方の完全性って実際に意味論側で真理値全探索するより統語論側で証明探索する方が優位に高速になるのか知らないんですけど、やっぱり早いんですかね? 漠然と「命題変数が少ないけどめっちゃ長い論理式」とかは意味論の方が強そうな気がしちゃいます。」 / Twitter
- ℕ𝚒𝚔𝚘𝚜𝚊𝚒: unit → tweet listさんはTwitterを使っています 「#w2019progLang そもそもFLとPolymorphic FLは別の言語なので、 FLのプログラムの型に関する証明木を作りたいときはFLの型体系の推論規則・公理を、 Polymorphic … 続きは質問箱へ #Peing #質問箱 https://t.co/FOIRuR1ceM」 / Twitter
- スマートコンさんはTwitterを使っています 「@alg_d 正規な証明木というのは、公理から出発して前半でに置換規則(P(A) から P(x) を推論するような)を、後半でModusPonensと汎化規則を適用するような証明木です。」 / Twitter
- amylase伯爵さんはTwitterを使っています 「集合の帰納的定義を公理と推論規則に落とせば導出木の存在によって集合を形式的に扱える。 #言語モデル論」 / Twitter
- あもさんはTwitterを使っています 「いくつかの公理といくつかの推論規則を使い、いくつかの前提から一つの結論を導き出す。その過程は、公理と前提を葉、推論規則を枝、結論を根とした木構造になる。」 / Twitter
- 底灯天徐嶺依さんはTwitterを使っています 「あと推論と逆方向(公理に向かう方向)に証明木を伸ばす操作を英語で何と言うのでしょうか。reduntion?」 / Twitter
- 底灯天徐嶺依さんはTwitterを使っています 「reduntion ってなんだよ reduction」 / Twitter
証明木生成の停止性
- 画力・博士号さんはTwitterを使っています 「「命題Aから命題Bを証明しなさい」と入力して,実際には証明できない場合でも,証明木生成プログラムは必ず停止するのだろうか」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 古典命題論理はco-NP完全.直観主義命題論理はPSPACE完全.つまり,解けることが知られている.古典一階述語論理や直観主義一階述語論理は決定不能.線形論理については https://t.co/Vuyn0MG2fT」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@qnighy 有難うございます! まだまだ無学なので精進します……」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 下から上に行くほど式が小さくなるようにすれば,証明木の探索は停止するようにできる.直観主義論理の一般的な推論規則はこの条件を満たしていないので,証明力が変わらない別の推論規則で置き換えるというのが基本的な戦略.」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@qnighy ほぉぉぉ巧く置き換えられるんですね!」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn そういうこと.で,その戦略の第一歩となるのが,シークエント計算とそのカット除去定理.シークエント計算は除去則がないのが特徴.つまり,A/\BからBを導出するというような推論規則は線の下より上のほうが大きいので使いたくない.」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn その代わりに,シークエント計算では左導入則というのが使える.これは目的の式ではなく仮定側の命題を分解する.このため,自然演繹のように目的の式だけを表示するのではなく,「仮定 |- 目的の式」の形で書く.これをシークエント(推件式)という.」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 自然演繹では,(下から上に進むときに)仮定が増えるのは含意の導入則と選言の除去則だけで,仮定が減ることはなかった.シークエント計算では左導入則で仮定が減ったり増えたりする.」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 具体的には,連言の例で考えるとわかりやすいだろう.「A /\ B |- G」 の形のシークエントは,「A, B |- G」の形のシークエントから導出できる.つまり,下から上に進むと,仮定A,Bが増えてA/\Bが減っている.」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn こうすると「A, B |- G」は「A /\ B |- G」よりも「小さい」.そういう点でシークエント計算は良い性質を持っている.しかし,一般的な直観主義シークエント計算(LJ)ではまだ不足で,縮約規則とカット規則という鬼門が残っている.」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn で,それをてんやわんやしてうまく取り除いて,結果として単調減少(無限降下列を持たない)であるような推論規則を作れると勝利というわけ.」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@qnighy なるほど…… 華麗だ……」 / Twitter
- はかりさんはTwitterを使っています 「@aer0aero ちなみに直観主義論理でもcut除去は成り立っていて、これを使うと直観主義で排中律を証明出来ない事の証明が出来たと思います。cut除去は証明論の基本定理みたいなもので、これがあると色々出来ます...色々...cut除去出来ない論理もあってこれをやっている人達もいます」 / Twitter
- はかりさんはTwitterを使っています 「@aer0aero 確かcut除去する度に枝が3倍くらいになるのでcut除去の個数回冪乗した3^...^3倍くらいの大きさの証明図になったと思います。正直証明図は読むためのものではないし、何より縛りプレイなので証明は排中律を認めるモノより難しくもなりますね。実装を視野に入れるなら構成的にやるべきですが...」 / Twitter
- はかりさんはTwitterを使っています 「@aer0aero 要するに証明図の上に行くと必ず小さい論理式になるというやつで、これより証明図を上に辿るという操作は必ず停止します。なので出現する排中律を全部調べることは可能で、与えられた排中律が直観主義で証明可能であるかどうかを判定するアルゴリズムがあれば可能です。あるかは知りませんが...」 / Twitter
- はかりさんはTwitterを使っています 「@aer0aero 変換アルゴリズムがあるかは知りませんがcut除去定理というのはあります。証明図からcutという規則を除去した証明図を得るアルゴリズムがあるよって定理で、その証明図では“AからB”が証明されたらAはBの部分論理式になっているという性質があります。」 / Twitter
公理と推論規則
- 公理 - Wikipedia
- 推論規則 - Wikipedia
- 命題論理 - Wikipedia
- 一階述語論理 - Wikipedia
- 推論 - Wikipedia
- 論理式 - Wikipedia
- 原子論理式 - Wikipedia
- 論理演算 - Wikipedia
推論規則
- h_sakuraiさんはTwitterを使っています 「bnf(G,E):- (G::=G1),G0∈G1,bnf(G0,E). bnf(i,I):- integer(I). bnf(G,E):- G=..[O|Gs],E=..[O|Es],maplist(bnf,Gs,Es). というような推論規則で木に対する構文検査が大体できるようになる。 Prologを使うと木に対するBNFで構文定義が簡単に論理的に定義できる。」 / Twitter
- Sosuke MORIGUCHIさんはTwitterを使っています 「二重否定除去が使えても、Coqerには非常に証明しにくいので、最初に二重否定を(除去規則を使って)つけてしまったほうがCoqでは楽。本来の古典論理の推論規則に基づく証明木に比べると冗長になりがちではあるけれど・・・」 / Twitter
- あもさんはTwitterを使っています 「いくつかの公理といくつかの推論規則を使い、いくつかの前提から一つの結論を導き出す。その過程は、公理と前提を葉、推論規則を枝、結論を根とした木構造になる。」 / Twitter
- amylase伯爵さんはTwitterを使っています 「集合の帰納的定義を公理と推論規則に落とせば導出木の存在によって集合を形式的に扱える。 #言語モデル論」 / Twitter
- スマートコンさんはTwitterを使っています 「@alg_d 正規な証明木というのは、公理から出発して前半でに置換規則(P(A) から P(x) を推論するような)を、後半でModusPonensと汎化規則を適用するような証明木です。」 / Twitter
- 病気の美少女さんはTwitterを使っています 「∧∨ってそんなに覚えにくいのかあ。特別な覚えかたとかはしたことないけど、∧のほうが閉じてる感じする(逆さまのコップみたいな)。あと今思い付いたけど、推論規則的には∨なんて分かりやすいんじゃないのかなあ。そのままの形で証明木が別れるし」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@bd_gfngfn 下から上に行くほど式が小さくなるようにすれば,証明木の探索は停止するようにできる.直観主義論理の一般的な推論規則はこの条件を満たしていないので,証明力が変わらない別の推論規則で置き換えるというのが基本的な戦略.」 / Twitter
- 画力・博士号さんはTwitterを使っています 「新しい証明木の記法を考えてみた(とりあえず推論規則だけ) http://t.co/FQ2slKencN」 / Twitter
- もすさんはTwitterを使っています 「式木で論理式書いて推論規則を適用して変形していくとか考えたけど、 ⇒(ならば) が書けないという問題が」 / Twitter
- 友利奈緒ちゃんさんはTwitterを使っています 「証明木を作る問題、こうゆう状況だったらこの推論規則を使うというのが決まってる感じがする。」 / Twitter
- Sosuke MORIGUCHIさんはTwitterを使っています 「α等価の推論規則の形成。λの引数を複数にして、その形に関してのみ議論(0でも可)。このとき、α等価なものの示す証明木がα等価な項全体を代表する元として扱える。 #TPP2014」 / Twitter
- h_sakuraiさんはTwitterを使っています 「推論規則を使えば導出のルールを決めることが出来て、導出木が書ける。 評価規則はプログラムの動きを決める推論規則だ。 型付け規則は型を決定する動きを決める推論規則だ。 評価規則も型付け規則も推論規則の1つなので、導出木が書ける。」 / Twitter
- トビーネットさんはTwitterを使っています 「読書してたら抽象構文木という単語がでてきたので、思わず推論規則に沿って導出してしまった」 / Twitter
- かーや (kaya)さんはTwitterを使っています 「ラクエンロジックは、命題カードと推論規則カードを組み合わせることで、自分だけの最強の証明木を作って戦うカードゲームです。」 / Twitter
- Masaru HITOMIさんはTwitterを使っています 「したがって、例えば人間関係においても経験的に正しかろう原則と経験的に正しかろう推論規則さえあれば、論理の木というのは構築しうる。」 / Twitter
- nisizakiさんはTwitterを使っています 「結局のところ、法律や大学が制定した規則に基づいて、ゴールを入力して、推論木を構築している感じ。変なローカルルールがキャッシュにたまってて、奇妙な推論木を構築することがあるし、場合によっては制定された法律・規則の目的の斜め上を行っちゃう感じ (´・ω・`)」 / Twitter
- soujiさんはTwitterを使っています 「会社で少しアジャイル開発についての勉強会に参加した後、自宅最寄駅に最近出来たスタバで型システムの勉強中 公理やら推論規則やら木やら帰納的定義など懐かしい言葉たちと再会出来て楽しい」 / Twitter
- 画力・博士号さんはTwitterを使っています 「ウオー推論規則や導出木を書くマクロが定義できるようになった #SATySFi https://t.co/dz80AUVD9l」 / Twitter
- 浅瀬さんはTwitterを使っています 「型の導出木の推論規則と述語論理の推論の対応ってことよね」 / Twitter
- kodai (▶)さんはTwitterを使っています 「LaTeX の ebproof パッケージを使う練習も兼ねて、CoPL に載ってる導出システム Nat の推論規則を使って判断『S(S(S(Z))) times Z is Z』の導出木を書いてみた コマンドの使い方がだんだん分かってきた https://t.co/z6lOSq0ZFf」 / Twitter
- kodai (▶)さんはTwitterを使っています 「キタ━━━━(゚∀゚)━━━━!! ペアノ自然数の加算・乗算・複数回簡約をする導出システム ReduceNatExp の推論規則(1,2枚目の写真)に従って、判断 S(Z) * S(Z) + S(Z) * S(Z) -*-> S(S(Z)) の導出木(3枚目)を自力で記述できた!! https://t.co/d6XwKOztAF」 / Twitter
- kodai (▶)さんはTwitterを使っています 「推論規則E-Appお前絶対許さんからな… 導出木がクソでかくなるのだいたいお前のせい https://t.co/oaurdZD1q8」 / Twitter
- チェシャ猫さんはTwitterを使っています 「Deep Neural Network を利用して、最小論理の論理式に対する自然演繹による証明を生成する研究。ただし対象となる論理式が証明を持つこと自体は仮定。証明木全体を一度に生成させるのではなく、各ステップごとに適用する推論規則を DNN に当てさせる。 #jssst_ppl2019」 / Twitter
- kentoさんはTwitterを使っています 「ってやれば、 ・ 規則の各適用段階での型推論の木の状態を見ながら ・ 各規則が本当に正しく動くかを確認する ってのができそう」 / Twitter
- AlweさんはTwitterを使っています 「PAの順序数解析(の上限)を簡単に纏めるとPAの証明を無限の長さを持つω論理に埋め込む。埋め込むと、超限帰納法を証明できると仮定するとω論理上でも当然証明できて、それに関する推論規則を導入できる。その上でcut除去を行い、証明木の高さがわかるため、木の高さで順序型が抑えられればよい」 / Twitter
- sp4ghet@すぱげっとさんはTwitterを使っています 「どうでも良い話なんですけどゲーデルの不完全性定理とかで出てくる論理学とか型理論で出てくる推論規則/導出木とかそういうやつって「論理学」というキーワードで勉強進めていけば全体観が見えてくるんでしょうか」 / Twitter
- はかりさんはTwitterを使っています 「型付けの導出って推論規則の定義から導出図が一意に定まっちゃう~ってことあると思うんですが、こういうやつを計算量に気を付けつつ求めたい~とかなったらどうするんですかね。結局導出木を上るしかないのでは??みたいな話」 / Twitter
- cutsea110さんはTwitterを使っています 「siteswapの証明木は下から上に展開されてて、証明と思うと向きが逆になるもんだからモヤモヤしてたけど、推論規則によって元々はどういう状況だったか、この状況を説明する証拠が下に来ていると思えば分かった気になれる。」 / Twitter
- 尾形学士さんはTwitterを使っています 「こっちが推論規則から導出木をつくるやつ。 https://t.co/dSrsJQQ82o」 / Twitter
- EvalNatML1.hs
- 振込さんはTwitterを使っています 「推論規則をたくさん用意して気合で推論木を構成するのか」 / Twitter
- ケ゜ンミジンコさんはTwitterを使っています 「@LDScell この本自体は大学院でやりました ただ学部の頃に似たようなことはやってました、推論規則の木を作ったりという」 / Twitter
ソフトウェア検証・論理・計算・帰納
- 07gun_01hen_02.pdf
- 記号論理学
- y-slide-ss06.pdf
- 4.dvi
- kk-ieice02.dvi
- https://eprints.lib.hokudai.ac.jp/dspace/bitstream/2115/50090/3/000000272912.pdf.txt
- 論理と計算 講義ノート
- Theorem Prover in Java
- TRonso33_Kukita.pdf
- SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft - Microsoft Research
- 000005473.pdf
- VPC Reachability Analyzer と形式手法 - チェシャ猫の消滅定理
- 関数型言語と形式手法でブロックチェーンを証明しよう
- 形式検証の視点から再確認したいMaybe型/Option型からnull許容データベースへのデータ変換 - Qiita
- 定理証明 木構造 - Google 検索
- プレスバーガー算術の決定可能性 - 有限オートマトンを使う証明の形式化 - tpp2015.pdf
- きけんぴんさんはTwitterを使っています 「健全性・完全性って、証明とか判定する体系自体についての話という認識。別のツイートのリプライツリーの例を借りれば、「単純型付きラムダ計算の項であるか」を判別することで「計算が停止するかどうか」を判定するというシステムならば、停止性を判定するシステムとして健全と言えそう。」 / Twitter
- ytbさんはTwitterを使っています 「LL Toyという証明支援ツール、ゴールとなる証明したい論理式を入力すると、そこが結論となるような推件計算の証明図を生成してくれるんですが、ゴールとして証明できない論理式(たとえば直観主義論理上で((A→B)→A)→A)を入力すると挙動が面白いですね。無限後退。 https://t.co/5hoTti0pzm https://t.co/bZCHKUB3Ej」 / Twitter
- LL Toy
- ytbさんはTwitterを使っています 「直観主義論理上の二重否定除去の「導出」に挑戦したのはこちら。見事な無限後退。 https://t.co/oDasR54fna」 / Twitter
- slide.pdf
- general4-3.pdf
- sakigake03.pdf
- コンパイルの論理学的基礎:次世代言語構築の基礎理論紹介 - zengakuKyoutsu2014-07-18-2.pdf
- Coq/SSReflect/MathCompで解析入門の1章の命題を全て証明 | Mathlog
- ドッグさんはTwitterを使っています 「Rust プログラムがクラッシュしないことの証明の話や Unsafe Rust の安全性の証明の自動化フレームワーク (Isabelle で書かれてる) の話,借用チェックをモデル化するコアライブラリ Polonius の話などなど」 / Twitter
- ドッグさんはTwitterを使っています 「Rust コードの検証をしてくれる Prusti 知らなかった.panic-free かどうかや overflow check の他,属性に事前条件・事後条件,副作用の有無などを書くと検証してくれる.VS Code 拡張もあるのか https://t.co/iDZGFo8rPC」 / Twitter
- viperproject/prusti-dev: A static verifier for Rust, based on the Viper verification infrastructure.
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合はやはり GC がらみかなあ。シングルスレッドでもマーク漏れはつらかった。並行 GC のバグは最終的にコードからリバースモデリングしてモデル検査で問題点を見つけた。」 / Twitter
型
その他
- 計算ファースト vs. 型ファースト / Computation First vs. Type First - Speaker Deck
- A brief introduction to type inference - Speaker Deck
- PureScriptで存在型を試す - Qiita
- text.pdf
- Phantom Type - Google 検索
- データクラス 型クラス 代数的 - Google 検索
- Swiftのassociatedtypeとtype erasure - sambaiz-net
- Shiro KawaiさんはTwitterを使っています 「おもしろい。型のパラメタライズは個人的にはHaskellの構文がコンパクトで好き」 / Twitter
- Masaki HaraさんはTwitterを使っています 「いい機会なのでジェネリクス引数の曖昧性について各言語がどうしてるか調べつつまとめてみる https://t.co/IgszcsoAMx」 / Twitter
- ジェネリクス引数の構文的曖昧性まとめ
- parametric polymorphism - Google 検索
- 制約をロジックではなく型で表現する
API 検索
API
- UberがAPIゲートウェイのアーキテクチャを公開
- Google Cloud、API管理プラットフォームの新メジャーリリースApigee Xを発表
- AsyncAPIとPostman Partner、非同期API用の新ツールを提供へ
- 松鹿さんはTwitterを使っています 「Rustで型検索するやつ、wasmをデプロイしたので気軽に試せるようになりました 👉https://t.co/icvHKr8qNG👈 https://t.co/b34M5DLFAA」 / Twitter
- hkmatsumoto/roogle: A Rust API search engine
- 松鹿さんはTwitterを使っています 「ちなめっちゃ遅いので10秒くらい待っててください(バイナリは1秒くらいで結果が出ます)」 / Twitter
リフレクション
イントロスペクション
- Happy Squeaking!! -オブジェクト指向再入門- [第四回:メタ機能との出会い]
- bacspot.dip.jp/virtual_link/www/si.musashi-tech.ac.jp/new_www/Python_1HourStudy/index_class_introsection.html#:~:text=イントロスペクションとは、自身の考え、感情、,することを指します。&text=そして可能な事を,入れることになります。
- リフレクションとイントロスペクション | Ouobpo
- itp-interpreter.pdf
- 自己反映計算 (計算機科学) - Wikipedia
- メタサーキュラーエバリュエーター - Meta-circular evaluator - Wikipedia
- c - メタサーキュラー通訳の正確な定義は何ですか? - ITツールウェブ
- c - メタサーキュラーエバリュエーターを使用してLispインタープリターをブートストラップする方法 - ITツールウェブ
- インタプリタとは
- メタサーキュラーエバリュエーターを使用してLispインタープリターをブートストラップする方法 - Javaer101
- Clojureのメタサーキュラーエバリュエーターで「true」を評価する - Javaer101
- S8
型レベル計算・コンパイル時計算・依存型
- PureScript型レベル計算入門 - Qiita
- Haskell 型レベル計算で継続渡し - keigoiの日記
- Type-level TypeScript - ryota-ka's blog
- Scalaで型レベルのラムダ計算 - 貳佰伍拾陸夜日記
- Scalaで型レベル”だけ”でクイックソート | POSTD
- 欲望の赴くままRustで型レベルPeano自然数とサイズ付きベクトルを書いた - konn-san.com
- ソフトウェアの基礎
代数的データ型
- 代数的データ型 - Wikipedia
- Haskell 代数的データ型 超入門 - Qiita
- 代数的データ型と初等代数学 - ryota-ka's blog
- 代数的データ型とその双対性 - エムスリーテックブログ
- 代数的データ型 - ウォークスルー Haskell
- 6.pdf
- shapelessと代数的データ型
- TypeClass.pdf
- 代数的データ型のひみつを暴いて関数型プログラムを攻略する|IT勉強会ならTECH PLAY[テックプレイ]
- haskell - 代数的データ型は木構造で表現されるとあるが、どのような構造になるのかよくわからない - スタック・オーバーフロー
- Rust パターンマッチの網羅性 - 簡潔なQ
hashmap
- Masaki HaraさんはTwitterを使っています 「というかまず大前提としてhashmapは "map" と名乗ってはいるものの実態としてはtotalではなくpartial functionなんですよね。いわゆるfunctionにも例外機構とかはありますけど期待値はだいぶ違う」 / Twitter
- Masaki HaraさんはTwitterを使っています 「hashmapとfunction同一視したいねの話題に関連する議論です↓」 / Twitter
- Masaki HaraさんはTwitterを使っています 「部分型付けのあるプログラミング言語では、 K -> V は通常Kに対して反変なのに対して、 Map<K, V> (イミュータブルなもの) は通常Kに対して共変になるんだなあ」 / Twitter
- Masaki HaraさんはTwitterを使っています 「Mapが反変性を持てないのはMap<K, V> → List<K> があるからで、逆に共変性を持てるのは未知の値に対する振る舞いが定義されているから (Noneを返す)」 / Twitter
部分型付け
- ポリモーフィズム - Wikipedia
- resume8.pdf
- 幽霊型による部分型付けの紹介
- Swiftと3種類のポリモーフィズム - Qiita
- TypeScriptで関数の部分型を理解しよう | Kabuku Developers Blog
- 構造的部分型 (Structural Subtyping) - サバイバルTypeScript-TypeScript入門
- プログラム言語論 - 8.pdf
- 部分型付けの動作概念 | 文献情報 | J-GLOBAL 科学技術総合リンクセンター
- 型システムの勉強 | 雑記帳
- 漸進的型付けの未来を考える - yigarashiのブログ
合併型
- TypeScriptの合併型と交差型ついて学ぼう
- Scalaの合併型と全称型
- 「合併型」のご紹介:Scala 3の新しい型表現(2)|Scalapedia
- (1)合併型
- TypeScriptの型入門 - Qiita
- Typescript(合併型と交差型) - 駆け足エンジニアの記録
型安全な行列計算
- shapeless で型安全に行列の積を計算する - Qiita
- [1512.01898] A Simple and Practical Linear Algebra Library Interface with Static Size Checking
- akabe/slap: BLAS and LAPACK binding in OCaml with type-based static size checking for matrix operations
- 実世界を扱う依存型プログラミングのたぶん基本~外界から安全な世界までの道 - ぼくのぬまち 出張版
- 動的な計算グラフの型とshapeの“半”静的推論 | Preferred Networks Research & Development
名前付けの遅延
- アイドル焼肉さんはTwitterを使っています 「僕が今やりたいことをあえて言語化すると意味付けの遅延なのかなって気がしてきた。」 / Twitter
- アイドル焼肉さんはTwitterを使っています 「性質と実体、認識論と存在論、統語論と意味論、代数と空間のような双対性はいろいろな領域にあって、これらのうち前者から徐々に後者を導いていくっていう方法論をソフトウェア開発の分野で構築できないかなって考えている。」 / Twitter
- アイドル焼肉さんはTwitterを使っています 「プログラミングではとにもかくにも名前をつけることは崇高な行為と見なされがちで、それ自体は別にいいんだけど、とにかく意味付けを急がされる感じがする。もっと無味無臭の構造があっていいと思っていて、ユーザが使い続けることによってそこに意味が生まれてくるのではないかと。」 / Twitter
- アイドル焼肉さんはTwitterを使っています 「「無味無臭の構造」っていうのは具体的な言語機能でいうと、たとえば構造的部分型とか無名関数とかそういうのです。それ自体にどういう意味があるかはわからんけど、とにかくその構造には価値があるみたいなやつ。」 / Twitter
- アイドル焼肉さんはTwitterを使っています 「念のために言うと、意味論の側を軽視してるつもりはまったくなく、構造よりも意味のほうが見出すのに時間がかかる(ことが多い)っていうだけです。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@a_suenami % Prolog 何が書かれているか想像しながら読むことになりますが. 'スケルトン的なコードはどうなのでしょうか'( 'https://t.co/vtuEFoqyhC') :- 何が書かれているか想像しながら読むことになりますが.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog スケルトン定義はこちら '1'([_1|_2],[_3|_4]) :- select(_3,[_1|_2],_1,[_5|_4]), forall(member(_6,[_5|_4]),_6 @>= _3).」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '問題はこれで何をやっているか判るかですが、 select forall @>= この三つの組み合わせで最大値か最小値絡みであることは瞬時に分かる。 次に、selectが4引数なので、最大値または最小値となにかを交換しているのだろうなと。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'それでは、 https://t.co/Ay9pM3DV0F の方は どうかと云うと、 「ならびの最小値要素を求め先頭要素と入れ替える」 より後は読みません。 これは本気の話しで、一度書かれたPrologプログラムの本体部分を読むことはありません。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '既にtwitter上で度々記した通り、 述語名がABCでA,B,Cがおよそ句を意味するとき、述語の分割は倒置を省略すると、 ABC :- A,B,C. ABC :- AB,C. ABC :- A,BC. となり、ABCでその内容を一望できてしまいます。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '実際には ABC :- DE. と再定義される場合もあります。再定義されれば、ここから始まるわけですから、ABCを読むだけでは情報が不足である心配は大いにあるわけです。 ですから、あくまで作法に従って書くことに努めればという条件付きの話と思って下さい。'.」 / Twitter
動的型
動的型付け
- ネイティブコードを吐く動的型付け言語は存在しますか?また技術的に可能ですか?に対する大島 芳樹 (Yoshiki Ohshima)さんの回答 - Quora
- Miura HidekiさんはTwitterを使っています 「最近の動的型付け言語の処理系の売りってJITになりがちなんだけど、本当にそれだけなのか?という疑問は関係者は持つべきだとは思う。他に有効な解を私が持っているわけじゃないのだけど。でも有効かもしれない解はある程度思い浮かぶ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「動的型付け言語でJITをコンパイラを実装してパフォーマンスを上げるのは意外と大変。がんばれば確かに速くなるのだが、速くなるかは自明ではない」 / Twitter
- Miura HidekiさんはTwitterを使っています 「動的型付けに限らず処理系で実アプリケーションで効いてくるのはコンパイラよりランタイムだと思うのだけど、あまりランタイムの改良をアピールすることって少ないな。RubyやJavaはGCの改良をアピールするけど(それは正しい)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ターゲットプログラムによってカスタマイズされたランタイムを生成する処理系って効果ある気がするけど、私は知らない」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 Stalinはランタイムライブラリごとグローバル最適化をかけてたと思います。ただ今時はランタイムも大きいので時間がかかりすぎるでしょうね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana Stalinすげー。ランタイムが大きくなってもカスタマイズのポイントを絞れば可能だと思います」 / Twitter
- hidaka_petegariさんはTwitterを使っています 「@miura1729 動的型付け言語の売りって昔から今も、Cみたいにキャストすればなんでもありな自由度をキャストなしで書けることとデータ側にintrospection用というかメタ情報を持っていてどこからでも参照できることの2点につきると思うんですが最近は違うのでしょうか?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@HPetegari はい。でもそういう機能を使ってないときは、そういう機能を持たない言語と同じくらい速く動いてほしいですよね。そういうのを可能にする技術がすこしずつ登場していると思います」 / Twitter
- hidaka_petegariさんはTwitterを使っています 「@miura1729 動的型付け言語を素直に実装すればmachine genericなintegerをbox化することになって静的型付けとそこで性能の差がでてしまう。しかしながら最近の動的型付けではbox化せずに性能的に遜色なく処理しているらしいという印象です。その当たりを詳しく知りたい。実は最近は動的でも内部で型推論してる?」 / Twitter
- hidaka_petegariさんはTwitterを使っています 「@miura1729 動的型付け言語を素直に実装すればmachine genericなintergerをボックス化することになって静的型付けとそこで性能の差がでてしまう。しかしながら最近の動的型付けではボックス化せずに性能的に遜色なく処理しているらしい。その当たりを詳しく知りたい。動的でも内部で型推論して最適化してる?」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 型は書いても良いと思う派ですが、最初に書いた型から、時とともに動的に変化しても良さそうな気もしています。C コンパイラを書いていて、コンパイルする過程で出来る高水準中間言語を見ていて、これの扱ってる型情報を動的に変更できれば良いのだろうという印象です」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 型が時ともに変化するを許すか否かは中間表現をSSAにすると余り意味の無いことに感じます。もちろん、PHI命令でユニオン型が生じてしまうリスクはありますが。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 プログラマとかアプリ利用者から見て、型が動的に変わることに意味がある場合もあると思います。たとえば、SQL で動的にテーブルのスキーマを変更できるような感じで、通常のプログラミング言語についても同様の使用感が得られます」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 それならユーザはあえて型を指定せずに処理系に任せるような言語仕様にした方がいいような気がします。たとえばJuliaのように」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 型が不要なら、JSON Schema みたいなものって不要なはずだと思うのですが、存在していますよね」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 Julia は調べてみますが、私は I/O を中心に考えてるので、JSON Schema みたいなものは必要だと思っています」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 型が不要ではなく推定できる範囲は処理系に任せましょうですね。JSONで型の推定は無理に思えます」 / Twitter
- ⿻あいや⿻ 技術書典11新刊🎉 数学と女の子たちの本「せつラボ」さんはTwitterを使っています 「動的型付き言語の最大の弱点 (プログラミングの中心が未定義で回る) https://t.co/5JGEH9kf0d」 / Twitter
- Miura HidekiさんはTwitterを使っています 「かねがね高速なインタープリタをどうするか考えているが、私もLLVMのようなフレームワーク(ただし明示的な型指定は一切ない)を作るべきではないかという方針に傾いている。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「型情報などの拡散やユニフケーションなどは重いからCなりRustで記述して、それらのポリシーを記述するためのAPIをmrubyに提供するような形がいいのかなって思っている。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「いずれにしても、任意のVM命令でその命令が生成した値の影響を受ける命令のリスト、それが現フレームを超えるのかはAPI一発で得られるようにすべきである。」 / Twitter
- uint256_tさんはTwitterを使っています 「楽しそうね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t あれこれ検討しているときが一番楽しい」 / Twitter
- uint256_tさんはTwitterを使っています 「@miura1729 実現できた時も楽しい」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uint256_t 確かに!」 / Twitter
- uint256_tさんはTwitterを使っています 「動的言語って適当に書いても動いているように見えるから初心者向けって言わがちなのかな」 / Twitter
- 画力・博士号さんはTwitterを使っています 「カチッとした型システムの乗ってる計算機言語をそもそもプログラムをほぼ書いたことのない人が学ぶと型システムの意義を感じにくい問題(なんとなく,操作的直観と静的検査とが或る程度別個でいてかついずれも学べるようになっているのが望ましそうには思える)」 / Twitter
- monochromeさんはTwitterを使っています 「@uint256_t 動的言語というか、インタプリタだとビルドとかしなくていいので初心者には優しいかも。」 / Twitter
- uint256_tさんはTwitterを使っています 「@s_isshiki1969 結局コマンドを叩かないといけないなら、インタプリタでもコンパイラでもあんまり変わらないんじゃないかと思ってしまいました」 / Twitter
- monochromeさんはTwitterを使っています 「@uint256_t まああなたにとってはそうでしょうけれども。 あとはREPLとかあると一行一行動作を見れるので初心者向けには良いかなあ。」 / Twitter
- uint256_tさんはTwitterを使っています 「@s_isshiki1969 確かにREPLは便利ですね。忘れてました」 / Twitter
- monochromeさんはTwitterを使っています 「@uint256_t あとはプログラムが書いた通り頭から実行されるのとか。main関数って何、とか悩む必要ないので」 / Twitter
Ruby
- Miura HidekiさんはTwitterを使っています 「Rubyの処理系を書いた者はすべてCRubyの性能の良さにひれ伏すものだ (CRubyの作者は除く」 / Twitter
- 僻地のプログラマさんはTwitterを使っています 「@miura1729 Rubyみたいな高機能な言語のVM、仮想マシンの単一の命令が巨大なのでJIT案外効果ない説提唱してます。仮想マシンのランタイム高速化のほうが多分効きます」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@kmt_t だいたいそうなんですが、命令のうち巨大で遅いのはsend命令(メソッドを呼ぶ命令です)。もちろん、だてに巨大で遅いのではなく、理由があるのですが状況を限定して速くする(またはインライン化して無くす)ことが可能です。RubyでJITコンパイラで速くなる大部分はこれだと思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@kmt_t 逆に言うとインライン化(Cで書かれたメソッドとか算術演算も含む)しないJITコンパイラは多分インタープリタより遅い」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@kmt_t その為、インライン化や部分特化さえすればインタープリタでもJITコンパイラとそん色ない処理系が出来るのではないかと思っています。今取り組んでいるプロジェクト(1行もコード書いていないけど)はこれを実証するのが目的です。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @kmt_t それならジェネリックな巨大VM insnをスペシフィックな軽いVM insnに展開するようにしたらVMのまま速くなったりしないかなと思ったんですがそこまでやるならネイティブコードまで展開しちゃえばいいのかな。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「共有結合はcovalent bond、というのをおぼえた。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @kmt_t たとえば、:+というメソッドをFixnumとFloatを優先する型チェック命令を生成すると言った最適化は考えられますが、このアプローチの本当のうまみは動的な情報を得てon the flyで命令を生成することではないかと思っています。静的に型が分かると色々やれますけど。」 / Twitter
histric-1
- Shiro KawaiさんはTwitterを使っています 「REPLで実行する→エラー出る→データはメモリ上に残ってるので出力ルーチンだけ書き直して再実行 https://t.co/qWsCAGMuu3」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています 「動的型の言語でクソ重い処理をしてその結果をファイル出力するプログラムを書き,ファイル出力のコードにミスがあったためにクソ重い処理をした後に動的にエラーが出て何も得られず終わったときの瞬間最大感情消失速度は光速をも超えると言われている.」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「もっと言うと、メモリ上のデータの方がコードよりも長生きするという使い方をしないと動的にしてる意味が無いと思う。メモリにデータを載せたまま、コードが扱う型を変えれば、データの型も変わってくれる、という。」 / Twitter
- Toru HisaiさんはTwitterを使っています 「@anohana なんかそれってデータベースのコンソールで SQL を叩くのに似てますね。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@torus 永続的なデータがあってそれをいろいろいじりながら考えるイメージですね。伝統的なLispのワークフローはやっぱりそっちだと思います。GaucheはREPLでのエラー時にローカル環境を捨ててしまうのが不便なんですが、いずれ何とかしたいと思ってます。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@cutsea110 動的型付け指向だとメタプログラミングのレイヤを縮退させて考えがちかも。例えば「任意のサイズのタプルをシリアライズ/デシリアライズするコード書きたいじゃん」というのは動的型付けだと同じレイヤで書けるけど静的型付けだと型をパラメータとしたひとつ上のレイヤになる、みたいな。」 / Twitter
- cutsea110さんはTwitterを使っています 「@anohana ええ,lisp/schemeだとリストとタプル区別ない感じで,イテレートできるかどうかはアタイ(値)が決めるわみたいなね.」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@cutsea110 ちょっとおもしろいのは、CLOSだとスロットごとに名前を指定したアクセスしかできないけど、メモリ上はどうせスロットの列で持ってるんだからイテレートさせろや、とPaul Grahamが言ってたやつ。抽象化の壁をどこに設定するかの違いかなあ。」 / Twitter
- cutsea110さんはTwitterを使っています 「@anohana あれれ,MOPってスロットの登録部分とか(クラス継承時のメソッドで)手を出せたような記憶があるんだけどできないんでしたっけ??」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@cutsea110 直接インデックスで低層にアクセスする仕組みは規格外じゃないかな。実装によっては可能だけど(Gaucheも内部的には可能)。あと自分でベクタをストレージにしたクラスをMOPで作ることもできるけど、ネイティブオブジェクトに関しては…」 / Twitter
- cutsea110さんはTwitterを使っています 「@anohana あーそうか勘違いかも. AMOPではそのあたりアクセスしてた記憶があったんだけど,最初の部の説明はもしかしたらCLOSの仕組みを実装で説明してたからMOP使う側からではなかったかもしれないです...うう.」 / Twitter
- 島鉄雄さんはTwitterを使っています 「> 動的型付け言語には初期の開発スピードが速いという微々たるメリット 静的型言語はコンパイルが通らないと実行する事が出来ないけど、複数(5とか10)人以上で開発してると、ソースを更新した時にコンパイルが通らない事がたまにある。 それが納期間近だと殺意すら芽生える事があるw 続く https://t.co/TGAnbONggS」 / Twitter
- 島鉄雄さんはTwitterを使っています 「あと、静的にバイナリを作成すると実行中にコードを修正して、停止箇所から再開するという事もやりにくくなる。 要するに静的型のメリットは重要だけど、動的に実行出来る(担当箇所以外でエラーが有っても実行出来たり、実行中にコードを変更出来る)事も非常に重要になってくる。 続く」 / Twitter
- 島鉄雄さんはTwitterを使っています 「なので、最近のゲーム開発はゲームエンジン上で、C#を自前のVMを使って動的に実行出来るようにしてる事が多くなってる。 これは動的型ではないけど(C#なので)、動的である事のメリットは計り知れないと思われる。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「コンパイル通らないコードを書いてはいけない縛りをすると、一度公開したインターフェースは二度と変更してはいけない事になる。 なので、インターフェースの実装者は変更した時に、ソース変更しといたよと言って他人のコードをいじる事になるけど、そこは今まさに自分がいじってる最中とかある。 https://t.co/EaLpRDGR6H」 / Twitter
- 島鉄雄さんはTwitterを使っています 「.NET&Windowsプログラマのためのデバッグテクニック徹底解説 だと、 > チーム全員にドーナツを奢らせるw 多人数開発だとコンパイルエラーはどうしても避けられない。 https://t.co/EaLpRDGR6H https://t.co/qouwp80Bvp」 / Twitter
- 島鉄雄さんはTwitterを使っています 「それを突き詰めると、バグを出すコードを書くのが悪いってところまで行きついてしまう… 間違いなく正論ではあるけど… https://t.co/EaLpRDGR6H」 / Twitter
- 島鉄雄さんはTwitterを使っています 「動的型言語の方が、動的に開発する環境が整ってるのは間違いない。(一例として、ブラウザに備わってるJavaScript用のデバッグ環境とか) なので、後は型の整合性をチェックする仕組みがあればいいだろう。 TypeScriptは大規模なものだけど、RubyやPythonも型宣言が出来るからそれで十分だと思われる。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「動的型言語(RubyやPython)は、型宣言を全部ちゃんと書いて、エラーも全く無くなったからと言って、Cと同等の効率の実行ファイルを作成出来る訳じゃない。 そこが静的型言語を越えられない壁だろう。 逆に言うと、型のエラーが無い時にCと同等の実行ファイルを作成するコンパイラが有れば究極だろう。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「そう考えれば、RubyやPythonはまだまだこれからの言語だと思うけどね。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「少し前に似たツイートをしたけど、軽くまとめると、静的型言語の弱点は多人数(5〜10人以上)での開発で、コンパイルが通らない事が起きたり、フルビルドが掛かるとPC1台の場合に30分以上掛かる事がある。 (分散ビルドで解決出来るけど、それでも5分程度掛かるだろう) 続く https://t.co/0rATXeJKsa」 / Twitter
- CubbitさんはTwitterを使っています 「動的型付けな言語を好む人が何故それを好んでいるのか、うまく言語化されたものを未だに見たことがないので、誰かに書いて欲しいです」 / Twitter
- 島鉄雄さんはTwitterを使っています 「だから、ゲーム開発みたいにイテレーション回数がクオリティに直結するような場合は、動的型言語が好まれている(いた)。(Luaとか) しかし、型のメリットも必要だから、最近はC#のような静的型言語を動的に実行できるようにしている事が多いだろう。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「Emacsの70%はLispで出来てるけど、それでも本体はCで書かれてるから、1行書き換えただけでもコンパイルして起動し直さないといけなくて、これがスゲー時間が掛かる。 (自分のやり方がまずいのか…?) だから、Cの方はいじる気になれない。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「結局、動的型⇔静的型、じゃなくて、Haskellの様な暗黙の型変換が無い代数的データ型⇔それ以外、という構図なんだよな。 動的に実行(修正・変更)が出来るという事自体はメリットしかない。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「複数人開発でコンパイルエラーが起きる事例 1. 条件ビルド 2. ソース上げ忘れ 1.はreleaseとdebugでビルドを分けてて、debugの方で関数の引数を追加したのに、releaseの方のソースを直し忘れるとか。 どっちも当人の環境ではビルドが通ってるので気付かない。 CIでかなり予防出来ると思われる。」 / Twitter
- jssst-ss-2021.pdf
- 神速さんはTwitterを使っています 「動的型付け言語はmockが楽なのでテストを書きやすいし、単体テストを素早く実行できるメリットはある。 まぁ、どっちもメリット・デメリットあるので、どちらも書けるようになって、案件の特性にあわせて使い分けられるべきじゃないかな。」 / Twitter
- kmizu_v2さんはTwitterを使っています 「これはあくまで私見なのですが、動的型付き言語が流行った時代には、特に、主流の静的型付き言語がそこまで柔軟でなかった(パワフルでなかった)という背景も考慮する必要があるかなと思います。現代は、型がパワフルになったし、メタプログラミングも静的に(マクロ等)でやることができるから、」 / Twitter
- kmizu_v2さんはTwitterを使っています 「ただ、一方で、いったん普及した言語はそうたやすく消えないし、コミュニティも変化していくので、部分的に静的型を取り込もうという動きが多くの動的型付き言語(Ruby 3、Python 3、JS -> TS)で起きているのかなと。Gradual Typingのようなものの発展も関連してそうですが。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「逆に、静的型付け言語の知見を取り入れた動的型付け言語が再び席巻する可能性もあるってことだな。1980年代までのLispを考えるとありえる」 / Twitter
- sumimさんはTwitterを使っています 「ぱっと思いつく範囲でSmalltalkが人気動的型言語と少し違う点は ➀原則として変数宣言が必須なのでタイポはある程度検知可能(ただしワークスペース変数は例外なのでこれは便利な反面、他言語並みに苦痛を伴う) ②デバッガーそれ自体が独立したIDE(な…何を言っているのかわからねーと思うが)続く」 / Twitter
- sumimさんはTwitterを使っています 「③基本、簡易オブジェクトストア内でのプログラミングみたいなものなのでIDEがシンプルな仕組みながら多機能&IDE無しでも全情報にアクセスできる(広い意味で➀もその範疇) …あたりだろうか。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「そう言う意味なら、Rubyでも最初の代入(正確に変数の出現)が宣言で未使用ならワーニングが出るから一緒だと思うんだけど >RT」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 retrun で何の警告もエラーも出ないの辛い...」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki あ、たしかに。retrunというメソッド呼び出しととらえられますね。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「静的型と実行時型検査の話を見かけるとなんとなく距離を置きたい気持ちになるけど、自分も違うテーマで似たようなことをしているわけで…だから何というわけでもないけど。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「静的型付け批判には「完全に型をあわせるパズルを解くまで実行させてくれない」みたいなのがあるけど、それは必ずしも当たらない。例えばVDMの型検査は、型が網羅的に一致していなくても実行可能な値が1つでも存在していれば(共通部分があれば)型エラーにはならないし実行可能なように設計されている。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「そして処理系の作り方次第で、動的型付けのような柔軟な実行が可能。例えばViennaTalkでは、評価実行の最中に型の定義を変更することさえ可能だぜキリリ。念のために言っとくけど、VDMは由緒正しい型付集合論ベースの静的型付き言語だからな。(プログラミング言語じゃないけど」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「で、VDMの型システムのオレオレ解釈は、静的型はモデリングの道具の1つに過ぎない。正しいことを前提にしない。型付けが不完全でも、わかることは沢山ある。型は門番じゃない。型は目的じゃないってこと。型と格闘するぐらいなら、さっさと別のことをしろ。ってこと。そしたら型は後で湧いて出てくる。」 / Twitter
- Island Life - 型付けと変更の時定数
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t 例えば「静的に強い型付をするプログラミング言語が開発生産性が高い」という言説ですが,ソフトウェア工学的な観点で厳密に評価すると,本当にそうなのか?というのは昔から疑問に思っています。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t というのは,静的に強い型付をするということは,型検査をクリアするのにそれなりに苦労するので,その知識・スキルを持つ人材を揃えるというところまで視点を広げると,アドバンテージが本当にあるのか?というのはよくわからなくなるんじゃないかと思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「動的型付けで静的に型を得るType Profiler話は、どこまでやればいいのかが一番問題になるな(処理速度との絡みで)、と再認識した次第。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 通常のVM実行と静的な型推論、動的に行われる型プロファイル収集とJITコンパイルをどう組み合わせるかという話ですね。難しい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 いえ、この話はあくまで抽象実行でどのレベルまでシミュレートするかという話を意図しました。確かに範囲を広げるともっと難しんですが」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 あ、そうか。抽象実行だから静的だけどtype profilingなのか。」 / Twitter
- 動的型付けインタープリター言語 Haskell - 趣味はデバッグ……
- Miura HidekiさんはTwitterを使っています 「https://t.co/WuyFAlFUz7 これむちゃくちゃ面白いな。shapesはインスタンス変数のオフセット・型・フリーズ情報だけではなく、C++のvtableのような機能を持たせてインスタンス変数の型や引数の使われ方のパターンに特化したメソッドへのポインタを入れておくと言った使い方も出来るなと思った。」 / Twitter
- The Future Shape of Ruby Objects
- Miura HidekiさんはTwitterを使っています 「抽象解釈で行う型推定において、得られた型のバリエーションをshapesで表現すると型の比較(mmcの場合結構これがボトルネック。特に遅いプログラムだとなおさら)がポインタ比較一発になるので高速化できるかな?アロケーションコストの方が大きいかな?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「みんなJITコンパイラにshapesを使っている、使っていないのはお前だけ という気分になっている」 / Twitter
- ْさんはTwitterを使っています 「動的型付けじゃないと困るようなメタプロをやる状況,そもそもそれが間違ってるんだよな」 / Twitter
型注釈生成
- Miura HidekiさんはTwitterを使っています 「https://t.co/hd4NdBAB7H 抽象実行ではなく本当に実行するのか。これはこれで現実的なアプローチかもしれんな」 / Twitter
- Instagram/MonkeyType: A system for Python that generates static type annotations by collecting runtime types
- Yusuke EndohさんはTwitterを使っています 「@miura1729 自分は当初は動的解析だったんですが、やってみると意外と大変(オーバーヘッドが巨大、カバレッジ高いテストがないとダメ、など)で、抽象解釈に切り替えたんですが、結果的にはもっと大変な道を選んでしまったなあという感じです。」 / Twitter
- Yusuke EndohさんはTwitterを使っています 「@miura1729 動的解析でメソッドの型シグネチャを作って、メソッド単位で型解析する(抽象解釈でも伝統的型システムでも)、というのはakrさんとかが推してて有望そうです。手が足らないですねえ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@mametter なるほど、計算量爆発しないし現実的ですね。インスタンス変数とかどうするのかが問題かなって思います。」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「@mametter @kmizu @keke_moto 抽象解釈のエントリポイントとしてのシグネチャはもちろんあった方がいいのですが、やはり抽象解釈で拾えない部分が多く、推論を助ける補助的な注釈を行いたくなる場面は当面の間まだまだありそうっていうのが最近の認識です (具体的にはこんな作業が必要になってます… https://t.co/TYLJtpj8p6)。」 / Twitter
- improve various minor inferrabilities by aviatesk · Pull Request #38832 · JuliaLang/julia
- mod_poppoさんはTwitterを使っています 「多次元配列のshapeの情報を含んだ型注釈が欲しい(ドキュメントとして)」 / Twitter
- mod_poppoさんはTwitterを使っています 「型はドキュメント!(素振り)」 / Twitter
型理論
- 型理論 - Wikipedia
- 階型理論(かいけいりろん)とは - コトバンク
- 階型理論
- 階型理論の補足説明
- プログラマのための簡単な型理論入門 - Qiita
- 型理論 | 黒曜の吹き溜まり
- 型理論 なんて自分には関係ないと思っているあなたへ
- 型理論と型システムは違うらしい - 木下修司研究所
- 「型」の定義に挑む | POSTD
- ml_module_type_theory.pdf
型システム
- “型”を語る際の7つの重大な誤り | POSTD
- danwakai2015.pdf
- 型システム - Wikipedia
- ポリモーフィズム - Wikipedia
- 型システム 〜プログラムの安全性を支える数学〜 - Laborify
- 型システムを学ぼう!
- 型システム-プログラミング CapmNetwork
- ogiwaraさんはTwitterを使っています: 「TaPL、数学的な前提知識はそこまで求められない 順序理論がちょっと難しい程度」 / Twitter
- ogiwaraさんはTwitterを使っています: 「@ei1640 TaPLがキツイ理由としては、 - そもそも論理学か、集合論における順序理論の習熟度が低い - いきなりの計算論理学がキツイ という二つの理由があると考えてます 前者についてはまあ頑張るしかないですが、後者についてはこの本(CoPLと言うらしい?)をオススメします https://t.co/2nG4zWzcjs」 / Twitter
- プログラミング言語の基礎概念 ((ライブラリ情報学コア・テキスト)) | 五十嵐 淳 |本 | 通販 | Amazon
- ogiwaraさんはTwitterを使っています: 「SKIコンビネータとかChurch-Rosserの定理とかは面倒見てくれなかった記憶」 / Twitter
- ogiwaraさんはTwitterを使っています: 「ラムダ計算にしたって別に前提知識は求められない、その場で分かりやすく(実用向けの)解説してくれる」 / Twitter
- ロビン・ミルナー - Wikipedia
- リスコフの置換原則 - Wikipedia
- Future パターン - Wikipedia
- h_sakuraiさんはTwitterを使っています 「型システムはPrologでさくっと作るのが簡単なのになぁ t(I,int):- integer(I). t(E1+E2,int):- t(E1,int),t(E2,int). :- t(1+2+3,int). ってだけで作れる。 これを認められない人が多すぎる。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「構文木をクォート無しで扱うことは古くて終わっているわけではなく、型理論で実用され続けている。その世界を素直にコンピュータ上で扱いたい。 そのために必要なのが昨今研究が盛んにされている集合論的型システムなのだよな。Union Types あたりがPrologのプログラムを検査するのに使えるといい。」 / Twitter
- 多段階計算の型システムの基礎
- TypeScript の便利な型変形を なんとかして Scala.js で使う / Emulating TypeScript Utility Types in ScalaJS - Speaker Deck
- effectful subtyping - lilyum ensemble
- Introducing Type Providers - Google スライド
- A Journey to Type-safe Vectors in F# - Speaker Deck
- 山本和彦さんはTwitterを使っています 「素敵な型システムがあるプログラミング言語では、実装の問題を型のレベルの問題に簡略化して考えることができる。この意味が分からないのに、「型注釈は書きたくない」と主張するのは、実にもったいないことだ。(分かって主張しているならは、好みの問題なのでOKですよ。)」 / Twitter
- hindley-milner型推論を持つ言語で、アドホック多相を扱う方法について、教えていただけますか?に対するJunji Ueharaさんの回答 - Quora
- 井山梃子歴史館さんはTwitterを使っています 「型システムのChurch styleとCurry styleを逆に覚えてたっぽい」 / Twitter
合併型
- tk0miyaさんはTwitterを使っています 「プログラムの型付けで Union 型のことを「合併型」と呼び始めたルーツが気になっています。だれか情報お持ちではありませんか。 (適切な訳語を調べていたのがきっかけです。こちらのほうが適訳だ、という情報もお待ちしております)」 / Twitter
- Koji MiyazatoさんはTwitterを使っています 「@tk0miya 私にはルーツはわからないのですが、CやC#にあるunionは共用体という訳語に落ち着いていると思います。TypeScriptの(number | string)のような型を指しているなら「合併型」という訳語が私には一番しっくりきます。」 / Twitter
- tk0miyaさんはTwitterを使っています 「@beatnik_t5r @kaoriya コメントありがとうございます。型付け(typing)としての union と、C の union(共用体) とは異なる概念だという認識です(Java は詳しくないのでコメントできません)。前者はメモリ領域を共有/共用してはいませんし、共用型という訳は適当ではないと考えます。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@tk0miya @igrep ルーツはわかりませんが、とりあえずこの論文は1980です。 https://t.co/oI3csWAOP5」 / Twitter
- IPSJ-MGN211109.pdf
- tk0miyaさんはTwitterを使っています 「@tomooda @igrep ありがとうございます!古くから使われていた訳語だろうと思っていたのですが、1980年からとは!文字通り歴史を感じますね。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「本当に脈絡のないただのリマインド: 直和型 (sum type) と合併型 (union type) は別概念です。」 / Twitter
型推論
OCaml PPX
- Keigo ImaiさんはTwitterを使っています 「typed ppx, OCaml の型推論に絡む部分がプログラマブルになっていくのが面白い。隔靴掻痒感のあった型の問題が一挙に解決していく。」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「唯一にして最大の問題はプログラム全体の型検査をメッチャ何回も回すことで…」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「よく考えたら、普通の(Haskell 98とかの)型クラスなら(マクロで回す)型検査は 1回だけなんですけど、これオブジェクト型の結合のための特殊なインスタンスをfundepsから自動生成していて、これがあると型推論に影響するので型検査を何度も回す必要が発生している。Showとかなら軽いはず…」 / Twitter
- 型付きPPXに関するメモ - toward the typed ppx - Qiita
- slides
- OCamlオブジェクトの結合を型付きPPXで - Qiita
- davesnx/styled-ppx: Typed styled components in Reason, OCaml and ReScript
- ocaml-ppx/ppx_import: Less redundancy in type declarations and signatures
- PPX for plugin authors — ppxlib documentation
- Creating TYPES from PPX - Learning - OCaml
- [ANN] ppx_let_locs - improve stack traces - Community - OCaml
- Metaprogramming and PPX | OCamlverse
- Logic and Computation: Interactive Proof with Cambridge LCF - Lawrence C. Paulson - Google ブックス
- OCaml-meeting0908-revised.pdf
- 型推論機構の実装
- 型推論 - Wikipedia
- 型推論を実装してみる | Kludge factory
- Hindley-Milner型推論アルゴリズムをGroovyで書いてみた - uehaj's blog
- SML# - ランク1多相性の理論
- 型推論のしくみ : KLabGames Tech Blog
- 型推論機構を備えたインタプリタをRubyで実装した - 鴨川の怪物
- プログラミング in OCaml ~関数型プログラミングの基礎からGUI構築まで~ - Google ブックス
- hs2bf - 謎の型推論 - ⊥=⊥
- 連立方程式の解き方
- Algorithm W入門を攻略してきた - osiire’s blog
- Prologでλ→の型検査のプロ グラムを書いてみただけの話 // Speaker Deck
- yūkiさんのツイート: "自作言語で型推論実装したいなあと思いちょっと経ったけどどんな感じのステップで型推論されていくのかわかってないので手を付けてない"
- ヒトでもわかる型推論 - Qiita
- uint256_tさんのツイート: "なんだかんだ言って、英語版Wikipedia が一番わかりやすい気がした: https://t.co/i0SYbiNoWi… "
- Hindley–Milner type system - Wikipedia
- So you still don't understand Hindley-Milner? Part 1 - Amit's Blog
- OCaml-meeting0908-revised.pdf
- Prologで様々な多相型推論 - Qiita
- 型推論に関する最近の話題への雑感 - Qiita
- 静的型付「き」言語(@seitekibot)さん | Twitter
- JavaScript による型推論器の実装 - takuto_hの日記
- Swiftの型システムを読む その1 – ukitaka – iOS開発とかのメモ
- 7.pdf
- TypeScriptのタプル型推論使って型を改善 - Google スライド
- 5 分ではわからない HM 型推論 - 型システム祭りオンライン 2020 4/17 - Speaker Deck
- Lispにおける型推論 - Qiita
- ISLispにおける型推論コンパイラ - Qiita
- ISLisp Home Page
- κeenさんはTwitterを使っています 「自分はやったことないけど踏みそうではある。自分ならHashMap::<usize, u64>::new にして型を決めてしまうかな。 Rustの型推論のおかげで逆にデバッグに苦労した。 - Qiita https://t.co/0x0dW7sGAi」 / Twitter
- Rustの型推論のおかげで逆にデバッグに苦労した。 - Qiita
- C# 9: newキーワードの型推論
- ╹ω╹腕が震えてGPUを茹でた1inguiniさんはTwitterを使っています 「型、たしか突き詰めるとλx.xの型がΛx.x(記号これで合ってたっけ)みたいなことになる筈なので方が複雑になると型推論ができなくなるというのがよくわからない」 / Twitter
- Juliaの型推論アルゴリズムを実装する
- [PDF] A Graph-Free Approach to Data-Flow Analysis | Semantic Scholar
- 混ぜるな危険! Eigenとauto - Qiita
漸進的型付
- 型システム 〜プログラムの安全性を支える数学〜 - Laborify
- 漸進的型付け言語の時代に必要なもの - mizchi's blog
型クラス
- 型クラスはインターフェースとどう違うのか | POSTD
- まともな型クラス への入門: 関数型とオブジェクト指向の垣根を越えて - 檜山正幸のキマイラ飼育記
- 入門的ではない型クラスの話:Haskellの型クラスがぁ (´^`;) - 檜山正幸のキマイラ飼育記
- インタフェースと型クラス、どちらでもできること・どちらかでしかできないこと - Qiita
- 型クラス - ウォークスルー Haskell
- 型クラスの真の力を見せる - kmizuの日記
- TypeClass.pdf
- Scalaで型クラス入門 - still deeper
- κeenさんのツイート: "「定義を」分離できるのが型クラスの一番の利点で、実行時の「データと辞書オブジェクトを」分離できるのはあまり利点を感じない。文脈によって同じ型に対する型クラスのインスタンスを使い分けたい場面ってとほんどないでしょ。"
- まともな型クラス への入門: 関数型とオブジェクト指向の垣根を越えて - 檜山正幸のキマイラ飼育記 (はてなBlog)
- Keigo ImaiさんはTwitterを使っています 「OCaml で動く型クラスっぽいのができた。show ## (1, "abc") で、 ## のところに渡すべきインスタンスが型推論に基づいて生成される。実装は「まんま」というか、## を埋める度にソース全体を型検査し、不動点に達したら止める。 https://t.co/OM9jx6f05u https://t.co/MjwraGZU1e」 / Twitter
- ppx_fillup/test.ml at master · keigoi/ppx_fillup
- Keigo ImaiさんはTwitterを使っています 「OCaml のシンボル情報や型環境の探索は camlspotter さんが昔公開していた ppx_implicits のソースコードが参考になった。あとは 型付きPPXのメモを参照 https://t.co/obwXZkcchH」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「型クラスのついでに、オブジェクトの連結をできるようにした。辞書を引っ張ってくる代わりに推論されたオブジェクト型を元にして連結関数を生成する。 生成されたインスタンスはコンパイラの警告により確認できる。 https://t.co/oen6NecfCv」 / Twitter
代数的データ型
Haskell と Scala
- エヌユルさんはTwitterを使っています 「Haskellだったら単に値を持たない代数的データ型を定義して関数でパターンマッチして挙動を変える所だけど Scalaだと代数的データ型自体がobjectとしてメソッドを持てるから多態みたいな感じに書けるので どっちで実装しようか迷ってます」 / Twitter
- エヌユルさんはTwitterを使っています 「Haskellだと引数でのパターンマッチがその場で書けるけどScalaだとmatchでネストが増えるからtraitのoverrideとして書くか」 / Twitter
- エヌユルさんはTwitterを使っています 「待てよ条件が直行するからそのまま1次元で書き下すと大変なことになるのでは」 / Twitter
- エヌユルさんはTwitterを使っています 「やっぱりパターンマッチで変えるべきか」 / Twitter
- エヌユルさんはTwitterを使っています 「フラグがいくつかあって特別な奴は全部無視する」 / Twitter
- エヌユルさんはTwitterを使っています 「いやそんなことないな」 / Twitter
- エヌユルさんはTwitterを使っています 「でもこれだとかなりの条件わけになってメソッドの実装がめっちゃ重複するしやっぱりメソッド多態よりデータでの区分けにするか」 / Twitter
- エヌユルさんはTwitterを使っています 「Scalaって引数部分でタプルの分解出来ないのか?」 / Twitter
- エヌユルさんはTwitterを使っています 「case object作った時明示的に最初あたりはtraitの型であることを明示しないといけないのがもにょるな メソッドの返り値で型書いてるからそのへんは推論して欲しい」 / Twitter
- エヌユルさんはTwitterを使っています 「Dottyでenum入ったらそのへんも改善されるんだろうか?それともsyntaxだけ?」 / Twitter
- エヌユルさんはTwitterを使っています 「Haskellのdataと違ってコンストラクタに値するやつもtypeを持つのが悪いんだろうなあ」 / Twitter
- エヌユルさんはTwitterを使っています 「あーもうScalaで代数的データ型使うと一々型注釈が必要で面倒だなあ」 / Twitter
- エヌユルさんはTwitterを使っています 「組み合わせ爆発を回避するために色々条件を入れて頑張ってフィルタリングした結果 4万件の間違いデータが 120件の間違いデータに減った! 正しいデータは1つもなし! クソが」 / Twitter
- 代数的データ型 - Wikipedia
- Algebraic data type - Wikipedia
- 代数的データ型と初等代数学 - ryota-ka's blog
- Haskell 代数的データ型 超入門 - Qiita
- Scala 代数的データ型 超入門 - Qiita
- 代数的データ型 - ウォークスルー Haskell
- 何で走っているのだろう: Scalaでの代数的データ型のしくみと使い方
- 代数的データ型を使わないリスト - maoeのブログ
- TypeClass.pdf
- 代数的データ型と直和型と直積型とTypeScript - Togetter
- データ構造 – Haskellの代数的データ型 - コードログ
- 輪 (数学) - Wikipedia
- 代数的構造 - Wikipedia
- 「ADT, 直和・直積, State Machine」 - Qiita
- ワンランク上の関数型技法による Command パターンの置き換え - Qiita
- 続くといいな日記 – type family を使って再帰的 ADT をオープンにする
- D言語で,(ゴリゴリの)コンパイル時メタプログラミングでADTを実現した話 - alphakai’s tech blog
- keiichiro shikano λ♪さんはTwitterを使っています 「計算機のニーズに合わせるための型宣言は人間の認知にあっていないからしたくないけど、自分で作った代数的データ型を使い始めればそれは自分という人間の認知にほかならないし宣言するのはやぶさかでないよなあ」 / Twitter
- Nobuo YamashitaさんはTwitterを使っています 「もうすこし,そのあたりが一般的になることを期待します. が,Function typeがあるなら,それはもう,単なる認知云々ではなくて,プログラミングそのもの. 「型宣言できない=プログラミングできない」 といっていいと思いますねぇ. https://t.co/3MC73qO81t」 / Twitter
- Nobuo YamashitaさんはTwitterを使っています 「まともな型システムがあるなら,おねがい型宣言書かせてくれるよね.という気分.」 / Twitter
- 06gun_03hen_04.pdf
依存型
依存型 述語論理
- 依存型 - Wikipedia
- 10.pdf
- 証明プログラミング入門2
- nori_Coq3.pdf
- logic.pdf
- 938.pdf
- Idrisで遊んでみた (0) | 雑記帳
- calculus of constructions (CoC) の勉強 - よーる
- トポスと高階論理
- Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł
- 20160114wba.pdf
- はてなブックマーク - Prologに関するsyaminoのブックマーク
- d.y.d.
様相論理 依存型理論 述語論理
- 「再帰的定義を可能にする述語論理の証明支援系上の実装」 - あいまいな本日の私 blog
- Šl‚−Ÿ_Šš‡Ì‘ØŒ¾”x›⁄„n‘ã‡Ì”À‚Ł
- 新・あいまいな本日の私: 一階述語論理と集合論は循環している?
- 依存型 - Wikipedia
- コーディングに対する考え方を変える6つのプログラミングパラダイム | POSTD
- 依存型入門
- 実世界を扱う依存型プログラミングのたぶん基本~外界から安全な世界までの道 - ぼくのぬまち 出張版
- プログラミング言語 idris - wkwkesのやつ
- 安全かつ柔軟な依存型 -
- 私と型システムとポエム - The curse of λ
- 証明プログラミング超入門
- 関数型プログラミング – 依存型とは何ですか? - コードログ
- 2017年注目していきたい技術 | κeenのHappy Hacκing Blog
- idris環境構築 | κeenのHappy Hacκing Blog
- Idris入門: 数当てゲーム | κeenのHappy Hacκing Blog
- イマドキと言われる言語機能について | κeenのHappy Hacκing Blog
- 🈚️うひょ🤪さんのツイート: "TypeScriptはちゃんとした型レベル自然数があったら楽しそうなんだけどいい感じに入らないかなあ(ぇ"
- tkrさんのツイート: "型レベル文字列と型レベル自然数で闇がさらに深くなるTS #いろいろなTS"
- tkrさんのツイート: "実際文字列周りは何とかしてほしいみたいなとこあるけどまじで沼になりそう ほら、 "a.b.c" みたいな事してプロパティ取得するthe 動的言語感なライブラリとか"
- F*(F Star)の複雑な型システムの何が嬉しいのか? - Amosapientiam
- Idris入門: 二分木 | κeenのHappy Hacκing Blog
- Idris入門: リファレンス | κeenのHappy Hacκing Blog
- Effective Idris: Lazy | κeenのHappy Hacκing Blog
- Idrisで依存キュー | κeenのHappy Hacκing Blog
- Effective Idris: Effects | κeenのHappy Hacκing Blog
- Dependent Types と Refinement Types の違い - SevenColoured
- Kory(公式)(非公式)さんのツイート: "「型書いたら実装が生えてきて欲しい」を実際に解決してるの、GHCのGenericしか見たことない"
- Sarashino(晒野)さんはTwitterを使っています: 「@public_ai000ya Genericが例に上がってるので趣旨が違うかなと思ったんですが、 idrisの補完はハマると「型書いたら実装が生えてくる」感じだった気がします https://t.co/fP7jFuLEXk」 / Twitter
- Idris + Atomによる型駆動開発入門 - たけぞう瀕死ブログ
- Idrisの話とIdris2のウワサ | κeenのHappy Hacκing Blog
- Idris 2の数量的型が解決した問題、導入した問題 | κeenのHappy Hacκing Blog
Refinement Types
- Dependent Types と Refinement Types の違い - SevenColoured
- Refinement type - Wikipedia
- 型をさらに拡張するーーRefinement Typesについて - Line 1: Error: Invalid Blog('by Esehara' )
- Racket 6.11で篩型(refinement type)と依存関数型(dependent function type)が安定機能に
- refinement_types_for_haskell.pdf
- abstract_refinement_types.pdf
- MSR-TR-2009-147-SP1.pdf
- Refinement Types
- Programming with Refinement Types
- refinement-2-bengtson08.pdf
- Liquid Haskell で普通の型システムの上を行け #NGK2017B
- main.pdf
- Dependent type、refinement typeおよびHoare Logicの違い
- LiquidHaskell 入門 その1 - 存在と一意性の証明
- LiquidHaskell 入門 その2 - 存在と一意性の証明
- LiquidHaskell 入門 その3 - 存在と一意性の証明
- LiquidHaskell 入門 その4 - 存在と一意性の証明
- monochromeさんはTwitterを使っています 「Refinementsってグローバルメソッドキャッシュにとっては迷惑でしかない気がする」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「形式検証されたコード、refinementのがまだ早そう」 / Twitter
MPST
- Keigo ImaiさんはTwitterを使っています 「ECOOP 2020 (https://t.co/YR8JbvCIjn) に論文が採録されました。"Fully Static Multiparty Session Programming with Global Protocol Combinators" マルチパーティセッション型の初のライブラリ実装です。OCamlの型システムに支援された並行プログラミングが可能に: https://t.co/Fpi6xKNorP (整理中」 / Twitter
- keigoi/ocaml-mpst: Multiparty Session Types in OCaml
- Keigo ImaiさんはTwitterを使っています 「マルチパーティセッション型(MPST)は、デッドロックフリーな多者間通信が保証できる反面、既存の型システムとのギャップが大きく、汎用言語でのライブラリ実装がありませんでした。今回MPSTのwell-formednessとサブタイピングの関連を見出し、多相ヴァリアントやレンズ等でライブラリ実装しました https://t.co/MMfgxha9v6」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「これと、一昨年ガリグ先生 (@garriguejej ) とPROで発表した線形型の実装 LinOCaml を組み合わせて、MPSTの型をOCamlの型検査器だけで静的に検査できている…はずです。(デッドロックフリーがOCamlで保証できることの証明は今後の課題になってしまいました…無念。これでも十分面白いと信じてますが」 / Twitter
Either
- エラー処理を書いてはいけない
- 関数型の考え方: Either と Option による関数型のエラー処理
- Eitherについて調べてみた - Qiita
- ScalaのOption型とEither型を使う - Qiita
- はじめてのOption型とEither型(Scala) - yoshikit1996’s diary
- haskellのMaybeとEither理解した。気がする。 - think and error
- Either 型に関数を適用する。 - sirocco の書いてもすぐに忘れるメモ
- エラー処理 · Scala研修テキスト
- ScalaのOptionとEitherで例外処理を行う方法 - $shibayu36->blog;
- Haskell教養としての関数型プログラミング - 重城良国 - Google ブックス
- すごいHaskellたのしく学ぼう! - Miran Lipovaca - Google ブックス
Haskell
- Hiroyuki Miyoshiさんのツイート: "Haskellが圏論をベースにして作られたプログラミング言語であるという誤解があるようですが,次の論文にあるように歴史的にはそうとは言えません。 P. Hudak, J. Hughes, S. Peyton Jones, P. Wadler, A History of Haskell: Being Lazy With Class (2007) https://t.co/MSHszYxSO4"
- history.pdf
- Hiroyuki Miyoshiさんのツイート: "1980年代末頃,lazyな強い型付き関数型プログラミング言語が乱立して議論しづらいので一つ共通の仕様を決めようという動きがありHaskellが策定されました。当時のlazyのコミュニティでは言語全体の意味論には一部を除きあまり強い関心がなく,基本的には代数的意味論を採っていたと思います。"
- Hiroyuki Miyoshiさんのツイート: "それとは独立に,1989年にMoggiが副作用を含む言語の表示的意味論をきれいに扱うのに,圏論のモナドが使えるに気づき計算モナドの概念を提唱しました(LICS'89)。Moggiは説明する言語としてはeagerなML系言語を用いていました。"
- Hiroyuki Miyoshiさんのツイート: "Haskellの初期の仕様ではI/Oは遅延リストを用いていましたが,P. Wadlerらを中心に計算モナドを使う方がいいという意見が強くなり,Haskell1.3 (1996)で正式仕様として採用されました。Haskellに圏論を強く結びつけて言及されるようになったのはそれ以後です。"
- Hiroyuki Miyoshiさんのツイート: "ついでにいうと,圏論を起源に持つという意味ではむしろCaml系言語の方が直接的起源を持っています。P.-L. Curienらにより1985年に提唱された圏論を抽象機械として使うCategorical Abstract Machine (CAM)というアイデアがあり,https://t.co/HU5JDPjcCb それに基づき実装したのがCAML言語です。"
- Hiroyuki Miyoshiさんのツイート: "ただ,当然ながら実行効率が良くはなく,今でもOCamlの実装を担っているX. Leroyが,言語はおおむねそのままに実装をZincというシステムに設計し直したのが今のOCamlの直接の元になっています。"
- nisizakiさんのツイート: "(・∀・)つ Chairty、Hagino's categorical programming language https://t.co/eIJiqJ8gSj… "
- Charity (programming language) - Wikipedia
- Hiroyuki Miyoshiさんのツイート: "ええと,Cockett & FukushimaのCharity言語は知っていますがどういう文脈で持ち出されたのでしょうか(困惑)。圏論をベースにしたプログラミング言語の例ということでしょうか? まあ萩野先生のCPLは圏論的な帰納的&余帰納的データ型を備えた最初の実装された言語なので言及すべきかもしれません。… https://t.co/qeFOUkN1SI"
- nisizakiさんのツイート: "単に、圏論を(なんらかの意味で)ベースにしたプログラミング言語ということです。おさわがせいたしました。(そういえば、学生さんに「OCamlのCはcategoryのCだよ」と以前話したら (´・ω`・)エッ? という顔をされてしまいました)… "
- Hiroyuki Miyoshiさんのツイート: "了解です。まあCAMのことを知っているのは我々と同世代ぐらいまででしょうね。Curienはまだお元気なようですが。… "
- Kory(公式)(非公式)さんのツイート: "「型書いたら実装が生えてきて欲しい」を実際に解決してるの、GHCのGenericしか見たことない"
- Sarashino(晒野)さんはTwitterを使っています: 「@public_ai000ya Genericが例に上がってるので趣旨が違うかなと思ったんですが、 idrisの補完はハマると「型書いたら実装が生えてくる」感じだった気がします https://t.co/fP7jFuLEXk」 / Twitter
- Idris + Atomによる型駆動開発入門 - たけぞう瀕死ブログ
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「なんでFree AlternativeのAltFとFree ApplicativeのApって別の型にしてるんだろう https://t.co/23GlhOvPG5 https://t.co/R8l5RezwqD」 / Twitter
- Control.Alternative.Free
- Control.Applicative.Free
- Koji MiyazatoさんはTwitterを使っています 「@igrep よく読んだら地味に違いますよこれ、AltFは Ap :: f a -> Alt f (a -> b) -> AltF f b で、Alt f x は [AltF f x] のnewtypeです。左分配律 (x <|> y) <*> z = x <*> z <|> y <*> z は認めて、右分配律を認めないとこの形になるんだと思います。」 / Twitter
- そろそろ線形型をかじっておくか - lilyum ensemble
Datatype-Generic Programming
- まっちゃらさんはTwitterを使っています 「Datatype-Generic Programming https://t.co/3ggYFezYPB」 / Twitter
- ssdgp.dvi - dgp.pdf
- まっちゃらさんはTwitterを使っています 「generic programming自体は人によって意味合いが違う(parametric polymorphism, data abstraction, meta-programming,など)ので、 datatype-generic programmingという新しい言葉を作ったよということか」 / Twitter
- まっちゃらさんはTwitterを使っています 「ListとTreeに対するfoldLで普通は別々に実装する(コンストラクタが違うし、そもそもバリアントの数も違う)けど、バリアントごとに関数を適用して、残りを再帰していけばいいという構造は同じなので、ここを抽象化するぞってのがdatatype generic programmingということらしい(理解があってれば)」 / Twitter
- まっちゃらさんはTwitterを使っています 「polytypism, structural polymorphism, typecaseなんかも同じことを指していて、Generic Haskellにおけるgeneric programmingというのもこの意味らしい」 / Twitter
blog
- 言語処理系勉強会に参加してきた | κeenのHappy Hacκing Blog
- 代数的データ型とパターンマッチの補遺: 赤黒木 | κeenのHappy Hacκing Blog
- n月刊ラムダノートにパターンマッチについて寄稿しました | κeenのHappy Hacκing Blog
- リソースを管理する型 | κeenのHappy Hacκing Blog
- 手続き型脳で型推論を実装してみた | κeenのHappy Hacκing Blog
- なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
- Island Life - 動的型のメリットは「決断の遅延」かもしれない
- OCaml でも採用されているレベルベースの多相型型推論とは - はやくプログラムになりたい
- OCamlの型検査は決定不能
- 問題を解決するつもりでキッチリ型を付けた先にある高い壁 - ぼくのぬまち 出張版
- Hindley-Milner型推論をCで実装した話 - malloc(sizeof(MRM));
- 暗黙の型変換を嫌わないで!(暗黙の型変換がなぜ嫌われるのか、暗黙の型変換で数学的同一視を自然に表現する、暗黙の型変換もどきを自作する、暗黙の型変換で遊ぼう(BNFを表す型)) - 算術の夢の楽園
- Yusuke EndohさんはTwitterを使っています 「「既存の型を超える」みたいにも読める身の程知らずなポエムを書いてしまったけど、TypeProfもライブラリや難しいコードにはRBS手書きしてもらう前提だし、TypeProfが失敗してもSteepやSorbetはとても堅実で成功確実なアプローチだし、実際にはわずかに冒険してみてるだけです。わずかが難しいんだけど」 / Twitter
- Rubyと型についてのポエム - まめめも
- Yusuke EndohさんはTwitterを使っています 「TypeProfの期待を上げすぎてしまったか。ライブラリのRBSが揃ってない現状ではライブラリのコードも解析するのでめっちゃ解析遅いし、推論はすぐuntyped(TSでいうany)に落ちるし、そのくせエラー発見ツールとしてはfalse positive多すぎます。改善は続けるので、期待しすぎずに長い目で見てね……」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「Elixirで型が欲しかったらDialyzerとかdialyxir,あるいはGleamをどうぞ。」 / Twitter
- ntaooさんはTwitterを使っています 「一旦現在主流の型システムを言語に統合してしまうと、将来に渡って言語の可能性がその型システムに束縛されてしまうので、Rubyのこの方針はとても正しいと思う | Rubyと型についてのポエム - まめめも https://t.co/xkFDEDVe5l」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Rubyと型についてのポエム - まめめも https://t.co/56TaP4Zdyg 自動車の例えがいい。将来的にはどんな言語でも内部で使う型はプログラムにより解析され型を書くのはドキュメントのため、と言う形になると思う。ライフタイムや型が取りうる値とかも型に含まれてくると人間が書いていられなくなるから。」 / Twitter
Twitter
型で解決
- 田中ひさてるさんはTwitterを使っています 「生で array だ int だやってたのが急にドメインモデルどうの言われて、Price も Pay も Money も別の型にするべきとかそういう「原子から作りますか」に通じるOOPの幻想(今はもう滅んだ)にやられてしまうの、なるほどなあと思った」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「幻想っていうのは、保守コスト下がるはずだったのに逆に上がってしまう現実が起きて、ゴールできないレベルの高すぎる意識のこと」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「商品コードとかはよほどその仕様が特別でないかぎり、バリデーションされた string なだけでもぜんぜんいいと思うんです。itemCode って変数がパスワードを入れるところかななんて、誰が間違えますかって言えるバランス感覚です。それない人に間違わせないための防衛するぐらいなら機能を作ろうと」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「もし型がすべてを解決するなら、フレームワークに EscapedSql 型や SafeHTML 型があるはずじゃないですか。フレームワーク作者のような頭のいい人がやっていないのは、オブジェクト指向プログラミングを知らないからじゃないですよね」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「引数は int item_id より Item item の方がいいよぐらいの常識感をまず当たり前にしていくのがよいと思います」 / Twitter
- sjiさんはTwitterを使っています 「@tanakahisateru 実は静的解析器には近いのがあったりします」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「@sji_ch えっ、どういう!?」 / Twitter
- sjiさんはTwitterを使っています 「@tanakahisateru https://t.co/65WyMQ2Udc html-escaped-string というのがあり」 / Twitter
- Scalar types - Documentation
- 田中ひさてるさんはTwitterを使っています 「@sji_ch なんと」 / Twitter
- がくぞさんはTwitterを使っています 「型をちゃんと使う世界のフレームワーク達は割とそういった型が普通に存在しているような……?オブジェクト指向とか特に関係なく…… Javaとかのフレームワークであまり見ないのは単純に型の表現力が言語として低いからでは仮説 型で全ては解決しないけど解決できる問題は多いですね」 / Twitter
- がくぞさんはTwitterを使っています 「まぁそう間違えないやろという気持ちもわかりみがありつつ、自分でもびっくりするようなミスしでかす事あるので静的検査で見つかると嬉しいし、Map<String, Item>よりもMap<ItemCode, Item>とかのシグネチャの方がわかりやすいし、型が適切だと実装を自動導出できたりするので開発が楽になったり文字数」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「@gakuzzzz ItemCode のほうがもっといい hashCode と equals を提供できる可能性もありますね。なんで良いのかわからず、自縄自縛のように独自型であるべきなんだで迷って仕事遅くなるより、とりあえず最初は言語標準の型で進めるのが健全かなと思ったのです」 / Twitter
- がくぞさんはTwitterを使っています 「@tanakahisateru なんで良いのかわからずにべき論に従うのは型の話にしろ他の話にしろあまり良い結果にならなそうというのは同意です type aliasのようなものが使える言語であれば、最初にエイリアスで標準の型を指定しておいて、後から必要に応じて独自型に変えることで変更範囲を小さくするみたいな事もできますねー」 / Twitter
- がくぞさんはTwitterを使っています 「全力で型で楽したい」 / Twitter
- がくぞさんはTwitterを使っています 「型が適切にあると最近Goの標準でもβで入れだしたFuzzingのような事も非常にやりやすくなるですよ」 / Twitter
- 誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「色々文脈や背景があるのだろうと思うのでアレなんだけど、個人的にはあまり「原子から作っている」と言う感覚はないのだよなぁ。Userみたいな型もMoneyみたいな型もおしなべて同列というか…。」 / Twitter
- 誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「「商品には金額が設定されててユーザが商品をカートに入れると金額の合計分を支払う」みたいな要件を聞いたら自動的に頭の中で「商品型と金額型とユーザ型と商品のコンテナとしてのカート型があってカート型からは商品金額の合計が取れるのだろうな」となってその様に書くだけというか…。」 / Twitter
- 誰か僕の右股関節と性根を何とかしてくださいさんはTwitterを使っています 「MoneyやPriceみたいないうてたかだかintのラッパーみたいな型はオーバーエンジニアリングでは?みたいな感覚、分からんではないのだけど、言うて定義域の問題とか何とどういう演算が許されてるんだっけ?とか言うの往々にしてあるので型にしておくとそういう所で脳みそ使わなくて済むみたいなのある」 / Twitter
- がくぞさんはTwitterを使っています 「依存型とか篩型とかもっとカジュアルにつかってこ」 / Twitter
- がくぞさんはTwitterを使っています 「そうそうMoneyとかPriceなんて自分でがんばって作らないで整備されたライブラリ使えばいいんですよ https://t.co/uwPjxtFFBW」 / Twitter
- typelevel/squants: The Scala API for Quantities, Units of Measure and Dimensional Analysis
- がくぞさんはTwitterを使っています 「Dependent method types でドメイン層とインフラ層の実装をモナドとか難しいもの使わなくても簡単に分離できるよ、みたいな話は2年前にしましたね https://t.co/dLNXZmyl9C」 / Twitter
- Dependent method types を利用した軽量Clean Architecture の紹介
histric-1
- 静的型付「き」言語(@seitekibot)さん | Twitter
- Eijiro Sumiiさんのツイート: "@tenpoku1000 「静的に型付けされた言語」なら何の問題もないと思います"
- 市川 真一さんのツイート: "共立出版の「新しいプログラミング・パラダイム」1989 年初版1刷には「静的に型付けされた(statically typed)言語」と書かれているのですが、これは今は亡き bit 誌の連載を本にしたものです。少なくとも、この頃から「静的型付け言語」という訳語が存在していた模様です https://t.co/YHBdaSaUoH"
- Eijiro Sumiiさんのツイート: "・「静的型付き言語」を誤って「静的型付け言語」という ・「部分適用」を誤って「カリー化」という の両方を踏んだ発表者が光の速さで(私より先に別の人から)つっこまれていた:-)"
- まろ@関数型言語作曲機械学習勉強してないさんのツイート: "「型推論」だと型がないと思う人が出てきてしまうので、「自動バッチリ型決定機能」とかにした方が良いと思う"
- Kota Mizushima(まったり)さんのツイート: "型推論をするなら動的言語という勘違いをまたひとつ、別件で検索していたら見つけてしまった。やはり、型を明記することと省略することと、型が静的/動的の区別は案外難しい、のかもしれない。あと、特にこの勘違いは、古い世代の人間に多く見られる気がする。"
- Keisuke FUKUDAさんのツイート: "MicrosoftによるPythonの型チェッカー。node.jsで書かれていて、mypyより5倍高速で、常駐&インクリメンタル更新モードがあるらしい。https://t.co/tzxgoDuePF"
- Microsoft/pyright: Static type checker for Python
- 米Microsoft、Python向けの高速な静的型チェッカー「Pyright」を公開 | OSDN Magazine
- Shinji KonoさんはTwitterを使っています 「動的型付け静的型付けは、昔っから動的型付けを強力に罵る人が多くてうんざり。無限LISP地獄にでも落ちろ。そもそも型があってれば万々歳ってわけでもない。動作を規定するのは値であって型はあくまでも手助けだけ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ML系な人が静的型付けでないとみたいなこと言ってたので「その上でTuring Machine を書いたら、そのTMのプログラムには型は無力。ドメイン向けに何かを作るとだいたい同じようなことになる」と言ったら、険悪なムードになっちゃって。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「コンピュータでは型の話とエディタの話はケンカの元だからなー」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Julia で CIFAR-10 データを画像として表示してみる(外部パッケージ無しで) https://t.co/UImWB5Kh5M Juliaのprimitive typeって何が嬉しいんだろう?って思って調べたら出てきた。なるほど、これは嬉しい」 / Twitter
- Julia で CIFAR-10 データを画像として表示してみる(外部パッケージ無しで) - Qiita
- 画力・博士号・油田さんはTwitterを使っています 「ところで “type inference” と呼ばれる問題も3種類ある: 1. * 入力: 型環境 Γ,項 M * 出力: ∃τ. Γ⊢M : τ か? 2. * 入力: 型環境 Γ,項 M * 出力: Γ⊢M : τ なる τ のうち主要型(存在すれば) 3. * 入力: 項 M * 出力: Γ⊢M : τ なる (Γ, τ) のうち主要型つけ(同上)」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています 「個人的にはこのうち 1 を “type inference” とか「型推論」と呼ぶのは若干違和感があるけれども,「X は型推論が決定可能」と言ったときは 1 の意味で使われていることも結構多い感じがある」 / Twitter
- El Pin AlさんはTwitterを使っています 「1は型推論ではなく型付け可能性だと思っています (これ前にも言ったけど)」 / Twitter
- κeenさんはTwitterを使っています 「型推論が決定可能よりも型システムが決定可能の方が言う気がする」 / Twitter
- El Pin AlさんはTwitterを使っています 「必ずしも同意するわけではないし、普遍的な定義だとも思わないけど、[Rémy 2005]にこのような記述があるのを見つけた https://t.co/6fXXLc1IqB」 / Twitter
- El Pin AlさんはTwitterを使っています 「Didier Rémy. Simple, partial type-inference for System F based on type-containment. ICFP 2005. https://t.co/39g8rMjJhv」 / Twitter
- fml-icfp.pdf
- El Pin AlさんはTwitterを使っています 「とちゅう https://t.co/JYqkAKwgLU」 / Twitter
- 画力・博士号さんはTwitterを使っています 「“型が嫌い” な人,「型という概念が “計算機の都合で仕方なく” 使われている」と思い込んでいる気がするので,「型とは “ヒトの直観を反映した不変条件の簡潔な記述” だ」という認識に上書きできたらML系言語と深く和解できるんじゃないかという豫感がする」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「思ったんだけど、静的型付き/動的型付き言語の区別は全ての表現式に静的型がつくかつかないかで決まるんだけど、むしろ、全ての値に実行時型情報がつくかどうかで決める区別もあって欲しい気がする。言語というより処理系の特性ではあるのだけど、多くの言語は言語仕様でだいたい決まるよね?たぶん。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「たしかに、その観点で分類するの面白そうだけど、実行時型情報が付かない言語って意外と少ない気がする。(DWARFがフルサポートされたC言語ってどっちになるだろう? >RT」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 実行時型情報が全く付かない言語はML系とかCとかぐらいでしょうけど、「全ての値に実行時型情報が付いた」を満たさない言語は結構多いと思います。Javaのようにprimitiveな値がある言語は基本的に入ると思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda デバッグ情報とかは考えないのですか?」 / Twitter
- 画力・博士号さんはTwitterを使っています 「ほぼ「型つきAltErlangの処理系を実装したい」という動機だけでそれまであまり理解のなかったπ計算やsession typeについて半年弱くらいサーヴェイしたり自分で型システムを弄ったりしているの十分正気ではない気がしてきた」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@bd_gfngfn @a2uky 先行研究,はたまたライバル?こんなのがあります。 https://t.co/POjzybtn9O」 / Twitter
- Hello, Gleam! - The Gleam Book
- 画力・博士号さんはTwitterを使っています 「@zacky1972 はい,Gleamの存在は認識していました.ただ現状だとメッセージの送受信に型をつける方法は言語機能そのものから提供されているわけではなかったり純粋な計算と非純粋な計算とが型で分離されたりはしていないという点で自分が欲しいものとはややギャップがありました」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn 凄い!既にFowlerの論文を辿ってご存知かもしれないのですが線形型とi/o型によるセッション型のエンコーディングは https://t.co/iKQaiHtNwL が良いです。なのでセッション型は言語から排除できるかも?OCaml での実装例は (線形型やサブタイピングは無いですが) JFP のhttps://t.co/SFdtNBsZjl とか。」 / Twitter
- Session types revisited - ScienceDirect
- A simple library implementation of binary sessions* | Journal of Functional Programming | Cambridge Core
- 画力・博士号さんはTwitterを使っています 「@keigoi はい,Fowlerの博士論文と Session types revisited は最近軽く目を通して読んでいました(ありがとうございます)」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn GV系だとデッドロックフリーがあるのでいいですね。もっと古いのだと Pucella & Tov の Haskell'08 https://t.co/JgDyrtFHVU の方法が単純でよいかもしれません。2つの型の duality の witness があれば特殊なエンコーディングは要らない(この論文では型クラスでwitnessを作っています)」 / Twitter
- Haskell Session Types with (Almost) No Class
- ホテルバルティック(クローン)@築26年さんはTwitterを使っています 「そういえば,情報系の人間が「数学は型を明示してほしい」って言うのをそこそこ観測してるんですけど,x in Xとかf:X->Yってのは彼らの言う型とは別なんですかね?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaでは何でも型があるから上限があるけど、集合には型がないからな。Agdaでは型を明示したpairしか作れないが、集合だと限定されないpairがクラスとして定義できて、それは集合にならない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Agdaの中で順序数を作って、それで議論するからそうなる。関数型言語の中でCを書いて、それでプログラミングするようなもの。Seg Vあり。」 / Twitter
- N743327さんはTwitterを使っています 「いわゆる型とよばれるやつ、syntacticalなやつとsemanticalなやつとがあるんでは」 / Twitter
- 画力・博士号さんはTwitterを使っています 「プログラミング言語やプログラム検証の研究では「大体理論・手法ができてから実用上の認知度が上がるまでに20年くらいかかる」という謂れがあったりするけれども」 / Twitter
- 画力・博士号さんはTwitterを使っています 「それによるならそろそろ90年代半ば頃の研究成果が実用に供され始めていい頃なんだけどな,パッと思いつくものでは多段階計算とかsession typeとか」 / Twitter
- 画力・博士号さんはTwitterを使っています 「gradual typingとかは理論の提案から実用化が異様に早い気がする(提案が2006年で,2010年代前半のAltJS戦国時代みたいな頃にはもう実用化されていたんじゃなかったかな)」 / Twitter
- 4869さんはTwitterを使っています 「TypeScriptでバックエンド書くと型が間違ってても値が入ってくることを考慮しないといけない場面で急激に面倒になるな……」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mmcを作っていて思った。抽象実行で推定される型って人間の直感とは異なる型になるような気がする。特にエスケープ解析とかも含めてくると。これが将来は型宣言がドキュメント以上の意味が無くなると私が考える根拠の一つ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「あれ?ツイートが途中でぶった切れてた エスケープするかという情報は型に含めるべきか分からないけど、実装上は型に含めるのが何かと合理的にできる。たとえば、エスケープするしないでデータ構造が異なるから関数を変えなければならないけど、それはオーバーロードで対処できる」 / Twitter
- たっくまんさんはTwitterを使っています 「TSで0-100の整数値なことを型で制約かけたいな〜って思ったけど、これ type T = 0|1|2|...|100 みたいに頭の悪い union type 以外でスマートにやる方法ないのかな」 / Twitter
- Masaki HaraさんはTwitterを使っています 「そういう性質を型でちゃんと表現するのは無理筋なので、検査を通った整数だけが名乗れるbranded typeを作るのが次善策かなあ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「抽象実行ならその辺が出来る可能性があるな。TSも抽象実行モジュール持っているんじゃないかな?または、flowとかあるし」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ちなみにmmcにはFixnumには負にならないことを保障する属性があります。配列のindexに使う時に正負を判別する処理が省けて便利です (隙あれば自分がたり」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「コンパイラ内部で使う最適化のヒントを無闇に型として表現するのは悪手だと思うんだけど、線形型なら分かりやすいしいける気がする」 / Twitter
- Higher Kinded Types - herp-technote
- でこれきさんはTwitterを使っています 「コンパイル元/先の言語の型システムによる気はする。CoqからOCamlを生成する場合はObj.magicがあるのでどうとでもなるけど、SMLをターゲットにしようとするとSML/NJはUnsafe.castがあるけど他の処理系はそうもいかないとか」 / Twitter
- でこれきさんはTwitterを使っています 「Unsafe.castの有無は型システムというより実行モデルとか実行時表現とかによるか」 / Twitter
カリー=ハワード同型対応
- 木原 貴行 | 名古屋大学 | 大学院情報学研究科 | 数理情報学専攻
- computation-fall1.pdf
- カリー=ハワード同型対応にびっくり - うつし世はゆめ / 夜のゆめもゆめ
- 継続と反証はカリーハワード対応するか - Qiita
- 直観主義論理の「自然さ」(1) 自然演繹 - 再帰の反復blog
- 直観主義論理の「自然さ」(2) シーケント計算 - 再帰の反復blog
- 直観主義論理の「自然さ」(3)古典論理のシーケント計算と自然演繹 - 再帰の反復blog
- 直観主義論理のカリー・ハワード対応 - 再帰の反復blog
- call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
- 古典論理のカリー・ハワード対応のためのラムダ計算 - 再帰の反復blog
- 古典論理のカリー・ハワード対応での証明の書き換えと簡約 - 再帰の反復blog
トポロジー
- Dimensions 1 Japanese - YouTube
- GeometryC.pdf
- robert ghrist home page
PDF
- Microsoft PowerPoint - esci.pub.ppt [互換モード] - e-sci111122-4.pdf
- computer software Vol.22, No.2 - 22_2_22.pdf
- untitled - 21_3.pdf
- ppl2-2.pdf
- hirai-thesis.pdf
- 26_doc3.pdf
- CB-002.pdf
- ambient-calculus.ppt - ambient-calculus.pdf
- IPSJ-MGN270905.pdf
- 25_3_49.pdf
- IPSJ-MGN300605.pdf
- game_and_set_theory.pdf
- 現代論理学の諸問題 | 慶應OCW|
- 講義一覧 | 現代論理学の諸問題 | 慶應OCW|
- JOKIHY-14_22117.pdf - 13_ishii.pdf
- Formal languages and Pervin spaces - JEP.pdf
- Agda 上でのZF集合論の構成
- 06gun_03hen_05.pdf
- 01gun_08hen_02.pdf
- untitled - semantics.pdf
- Microsoft PowerPoint - 04SyntaxSemantics.ppt - 04SyntaxSemantics.pdf
- www.comp.tmu.ac.jp/yosihiro/teaching/how-to-read.pdf
- <4D6963726F736F667420576F7264202D20834D838A8356838395B68E9A82CC93C782DD95FB>
- paper.dvi
- 170221_yoshizoe.pdf
- 26411.dvi - 26_462.pdf
- chap13.pdf
- コンパクト開位相と写像空間の位相
- dd_nat_jp.pdf
- H8-garrigue.pdf
- lambda.pdf
- THE KYOTO
- THE KYOTO
- cartesian closed category in nLab
- 排中律やPeirce’s lawの挙動: chiguriの生態
- 論理と圏論のオイシイ話 | | 数学・統計教室の和から株式会社
- d.y.d.
- 26_2_3.pdf
- 20191109_C-3_resume(Tsunoda_Kentaro).pdf
- Computersoftware 20-3 - 20_285.pdf
- Kohei SuenagaさんはTwitterを使っています 「プログラミング言語処理系とは?OCaml の基礎や,高階関数型言語のインタプリタの書き方,型推論アルゴリズムの実装方法を解説!簡単なコンパイラの書き方や,字句解析や構文解析アルゴリズムもまとめてみました!https://t.co/dSZmD1KExq」 / Twitter
- IoPLMaterials | Materials for the class “Implementation of Programming Languages” in Kyoto University.
- Haskell/Denotational semantics - Wikibooks
- 120901fp key
- mltext.pdf
- Miura HidekiさんはTwitterを使っています 「面白いけど、Java, Python, RustでSymbolic Executionで検証できるだけの情報量を含んだ中間言語なんて作れるものなんだろうか?」 / Twitter
- Viper – Programming Methodology Group | ETH Zurich
- 不完全性定理
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「証明プログラミング (proofgramming) 言語Kind。見た目は TypeScriptっぽいが中身は Haskellで、より純粋な型および依存型をサポートしている。そのためCoq, Idrisなどと同じような目的にも使えるが、通常のWebアプリなどを書くことも可能。 https://t.co/TyiA75HeAs」 / Twitter
- uwu-tech/Kind: A modern proof language
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Haskell製の言語内DSLで仕様を記述・検証する。TLA+の置き換えを目指すらしい / 1件のコメント https://t.co/3wQEHto984 “Announcing Spectacle-A language for Writing & Checking Formal Specifications in Haskell” https://t.co/BKMoXsGY1j」 / Twitter
- Announcing Spectacle-A language for Writing & Checking Formal Specifications in Haskell
- クリーニ代数入門
関数型プログラミング
その他
Clang の musttail 属性
- mod_poppoさんはTwitterを使っています 「Clangに実装されたmusttail属性が面白い。VMの実装が捗りそう。 / Parsing Protobuf at 2+GB/s: How I Learned To Love Tail Calls in C https://t.co/Z3t1dFetQ5」 / Twitter
- Parsing Protobuf at 2+GB/s: How I Learned To Love Tail Calls in C
- mod_poppoさんはTwitterを使っています 「wasm3はCコンパイラーによるTCOを期待するVMを書いているが、そういうのが恩恵を受けそう https://t.co/0u6CptOTKu https://t.co/SgQ2FX3TcS」 / Twitter
- WASM3の末尾呼び出しVMがかしこい - Qiita
構造的部分型付け
- 構造的部分型 (structural subtyping) - TypeScript入門『サバイバルTypeScript』
- TypeScript: 異なる2つの型システム「公称型」と「構造的部分型」 - Qiita
- 構造的部分型について - Qiita
- 「名前的型システムと構造的型システムの違い」加筆案 - 西尾泰和のScrapbox
- general6-1.pdf
- Typescript(構造的型付け) - 駆け足エンジニアの記録
- TypeScriptの型の互換性について - よちよち開発の日々
- ダック・タイピング - Wikipedia
- 型の互換性 | TypeScript 日本語ハンドブック | js STUDIO
- RustのTraitsが、近年主流である構造的部分型ではなくて明示的な宣言が必要な公称型なのは何故ですか?どのような設計判断があったのでしょうか?個人的にはRustの最大の不満点です。 - Quora
- がくぞさんはTwitterを使っています 「構造的部分型で型クラス的な抽象化って可能なのかな?」 / Twitter
- がくぞさんはTwitterを使っています 「やっぱ Nominal Typing と Structural Typing の両取りできる言語で」 / Twitter
- がくぞさんはTwitterを使っています 「構造のカプセル化について、OOP のパラダイムが Opaque type とかに比べてアドバンテージがあるのかどうかはちょっと疑問があったりするのですが、この辺どっかに研究論文とかあったりするんでしょうか?」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「構造のカプセル化と DIP のオートワイヤリングについては、OOP ほど無駄なくかつ裾野の広いパラダイムはない、逆に言えば OOP がとくに活躍するのはその領域だけだと考えています。他の領域にとって OOP はメンタルマッピング負荷があるパラダイムだとさえ」 / Twitter
- 田中ひさてるさんはTwitterを使っています 「ポリモーフィズムは?: アルゴリズムのためのポリモーフィズムはサブタイプでも型クラスでもできるけど、モジュール交換によるメンテナンスのためのポリモーフィズムは DIP のカプセル差し替えってことで、そっちに含んだ」 / Twitter
篩型 依存型
- kodai 🕊🐧❄★さんはTwitterを使っています 「依存型か篩型採用したプログラミング言語もっと流行ってほしい」 / Twitter
- Racket 6.11で篩型(refinement type)と依存関数型(dependent function type)が安定機能に
- Dependent Types と Refinement Types の違い - SevenColoured
- Pythonで関数型言語の依存型と篩型の型クラスを宣言する方法 - Qiita
- 篩型 - mrsekut-p
- 依存型 - Wikipedia
- main.pdf
- なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
- [B!] Pythonで関数型言語の依存型と篩型の型クラスを宣言する方法 - Qiita
- Liquid Haskell で普通の型システムの上を行け #NGK2017B
- HIW 2018・Haskell Symposium 2018に行ってきた | IIJ Engineers Blog
Opaque type
- Opaque type コンストラクタ 3つのAPI設計方針 - Qiita
- Dotty で入る Opaque Type Aliases について見ていく - Qiita
- Opaque Types — The Swift Programming Language (Swift 5.5)
- DEVでフォームにおけるOpaque Typeの設計に関するシリーズを書いた - Runner in the High
- Swiftでプログラミング- Opaque Types|donguri|note
- Opaque data type - Wikipedia
- Opaque Type Aliases
- Opaque Type Aliases | Flow
- type alias vs opaque type - elm-jp
- Flow - 不透明なエイリアスタイプ - 不透明型エイリアスとは、定義されているファイルの外部からその基礎となる型にアクセスできないようにする型エイリアスです。 不透明な型のエイリアスは、通常の型のエイ - 日本語
Nominal Typing
- Nominal Typing - TypeScript Deep Dive 日本語版
- TypeScriptでNominal Typingを実現する4つの方法 - Qiita
- TypeScript でも Nominal Typing がしたい - Qiita
- TypeScript Playground - Nominal Typing
- Nominal type system - Wikipedia
- Nominal Typing, Structural Typing - namaozi's memo
- TypeScriptでnominal typing - aereal-tech
- Nominal & Structural Typing | Flow
- Type Systems: Structural vs. Nominal typing explained | by Jamie Kyle | Medium
- What is a nominal type? - Speaker Deck
Structural Typing
- Typescript の Structural Subtyping - Qiita
- 構造的部分型 (structural subtyping) - TypeScript入門『サバイバルTypeScript』
- Structural type system - Wikipedia
- ピックアップRoslyn 1/9: structural typing | ++C++; // 未確認飛行 C ブログ
- TypeScript Playground - Structural Typing
- TypeScript: Documentation - Type Compatibility
- 関数型言語の実装のチュートリアル - prog-lang-sys-ja
- Category:関数型プログラミング - Wikipedia
- 関数型プログラミング – OCaml
- Curryで関数論理型言語を体験してみた - Qiita
- 函数論理プログラミング言語 Curry - Ryusei’s Notes (a.k.a. M59のブログ)
- 数学全然わからないけどElixirでApplicativeを作ってみる - やわらかテック
- 【JavaScriptで解説】部分適用って何?カリー化との違いは? - やわらかテック
- ぶんちょうさんはTwitterを使っています 「OCaml+cargo+goruntime+型クラス→顧客が本当に欲しかったもの」 / Twitter
- ねっけつさんはTwitterを使っています 「@yutopp 型クラスの代わりに module とファンクタじゃ駄目ですか」 / Twitter
- nobsun/fpday2021
- Toy Machine Simulator
- Walk around functional web frontend programming - Speaker Deck
- 関数型言語作成のチュートリアルをやってみる - Google スライド
- https://arowm.github.io/domain-specific-library-example/
- 形式検証の視点から再確認したいMaybe/Option型からnull許容データベースへのデータ変換
関数型
- mumumuさんはTwitterを使っています 「関数型言語のめっちゃ基本的な疑問でどなたか教えて欲しいのですが,一般論として 副作用がない ⇔ 純粋 は正しいですか? それとも,文脈におけるそれぞれのタームの定義に依存する話ですか?」 / Twitter
- mumumuさんはTwitterを使っています 「> 文脈におけるそれぞれのタームの定義に依存する話ですか? というのは,「純粋」とか「副作用がない」というのは厳密な定義ができない,みたいなニュアンスです」 / Twitter
- mumumuさんはTwitterを使っています 「自分の理解では,そもそも純粋であることの定義が「参照等価性がある」ということだったのですが,これも文脈依存なのでしょうか...?」 / Twitter
- MIURA ToruさんはTwitterを使っています 「@mumumu_vm あ、というか副作用+参照透過性=純粋なのかと思っていました。」 / Twitter
- MIURA ToruさんはTwitterを使っています 「@mumumu_vm もとい、副作用なし、の意です。」 / Twitter
- MIURA ToruさんはTwitterを使っています 「@mumumu_vm で、おそらく嘘なので無視してください。参照透過で副作用あり、というのは参照透過性の定義を逸脱しているような気がしてきました。」 / Twitter
- mumumuさんはTwitterを使っています 「独自定義と厳密定義が混じり合ってる気がしていますわね」 / Twitter
- mumumuさんはTwitterを使っています 「定義が文脈によって変わる系の話かもしれない」 / Twitter
- mumumuさんはTwitterを使っています 「@buri17 本でかじっただけですが,「純粋 = 参照等価性」という定義が存在することは間違いなさそうです. しかし,そもそも世間では色々な定義が混在しているのかもしれなくて困っている,という感じです...!」 / Twitter
- MIURA ToruさんはTwitterを使っています 「@mumumu_vm たとえば乱数を返す関数は参照透過ではないけど副作用がないという立場もありそうですが、乱数を返す環境に影響を与えているという立場ならありとみなすような気がするので文脈依存といえばその通りなきがしています。」 / Twitter
- とりさん@腹筋が弱いさんはTwitterを使っています 「式は値を返せば良くて,それ以外の環境を変化させるような余計な振る舞いは全部*副作用*だから.(過激派」 / Twitter
- mumumuさんはTwitterを使っています 「みんなが使ってる副作用にも広義、狭義みたいな話がありそうで、もはや関数型言語がアカデミアだけのおもちゃでないことを考えると、厳密な定義を求めないで文脈ごとに定義を明示するべきであるという結論に達してしまった」 / Twitter
- mumumuさんはTwitterを使っています 「(ちなみに、自分の理解では「副作用=プログラムの任意の状態変化」だったので、副作用はもっと緩い定義をすることもあるという事を知れただけでも収穫)」 / Twitter
- timelerさんはTwitterを使っています 「高階関数のないプログラミング言語だとこういうの多く作られがち😰 https://t.co/7Ji9uMJs8Z」 / Twitter
- プログラムを勉強している人の毒舌な妹さんはTwitterを使っています 「お兄ちゃん、なんで8割方同じ内容の関数が3つも4つもあるの?」 / Twitter
- きしもとさんはTwitterを使っています 「@TakaoOzaki そんなことはないでしょう。必要なのは高階関数というよりも、関数(ないし手続き)がファーストクラスでないという制限のために、コードの複製が多発しやすい、というのが元のツイートの言っていることの要点ではないかと思います」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@ksmakoto % Prolog 'なるほど。高階関数を使うという話ではなくて、高階関数が存在しないようなクラスの言語ではと、読むべきだと。'.」 / Twitter
- 水無麻那さんはTwitterを使っています 「関数型は第一級関数を先取りしててすごいという言説を聞くが、オブジェクト指向もオブジェクトにより高階関数が自然な形でエミュレート出来るの、十分すごいし綺麗だと思う」 / Twitter
- 島鉄雄さんはTwitterを使っています 「Lispで (let ((a hoge)) ...) と書くべき所を (let (a hoge) ...) と書いてしまうとハマる… Cの if (a = hoge) ...; と同じレベルの落とし穴がLispにもある。 (ちなみに後者は、(let ((a nil) (hoge nil)) ...) と同じ)」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「これ論文のどこにも書かずに10年経ってしまった (実装してすぐITPLに就職してしまった) 誰かが理論にしてるのかも知れないけどまだ見たことがない。安直な方法ではある」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「@bd_gfngfn Haskell'08はunsafeCoerceを使ってるのがアレですが、うまいことやれば型安全なエンコーディング(かつRevisitedのようなチャネル渡しを伴わない)も可能です(例えば https://t.co/qQrv9rj3ZL のように一つのセッションチャネルを複数の単純型付きチャネル(ここではIOモナド)の列で実現するとか」 / Twitter
- betty-book-haskell-sessions/Types.hs at master · dorchard/betty-book-haskell-sessions
- El Pin AlさんはTwitterを使っています 「MacQueen "Modules for Standard ML"の1985年版(functorと言う用語が初めて出てくる)、入手困難かと思っていましたが、 https://t.co/l14H7pKBaB から入手できる(72 MBのPDF)と知りました」 / Twitter
- Full page fax print - Polymorphism Vol II, No 2.pdf
- El Pin AlさんはTwitterを使っています 「https://t.co/dVjE4eDFTr」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「関数型プログラミング、早期リターンができないのがつらいんだということに気付きはじめた。Rust は結構、関数型押しなんだけど、Try演算子も入ってほとんど普通の言語と同じように扱えるんだけど、Kotlinのinlineクロージャがないから、そこだけ早期リターンができない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「逆方向のリストは和田先生もなんか言ってたが、ほんと再帰で扱いにくい。順方向と対称にならない。coinductionするべきかもしれない。 a . (b . (c . ... と ((((a . b) . c ) ... の差。なぜか、Agdaの演算が後者で…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「FLのリストは再帰で書いてるが本質的にはループ。ループの最大値と途中の値がすべてあることを確認できれば良い。」 / Twitter
クロージャ
- 実装から理解するクロージャ | κeenのHappy Hacκing Blog
- 島鉄雄さんのツイート: "Emacs Lisp だとクロージャが何なのかより分かり易いと思う。 この画像の連想リスト(alist)の ((count . 0) t) が、いわゆる環境で、メタファーでなくて実際に本物の連想リストを保持している。 で、setq がこの中身を直接書き換えてる。 実際に書き換わってるのが分かると思う。 Emacs は勉強になるな… https://t.co/No7IoW1GOy"
- 島鉄雄さんのツイート: "ちなみに、これはバイトコンパイルされてない関数の場合で、バイトコンパイルされると、クロージャの持ち方は全然別物になる。 へーそうなんだと言う感じだけど、近々バイトコード完全解説記事を公開予定なので、少々お待ちを…"
- Kota Mizushima (on a diet)さんはTwitterを使っています 「オブジェクト指向言語でオブジェクトを渡すのは、実質的に高階関数を渡している(そういうオブジェクトは固有のメソッドを持つので)のであって、OOPL使っている皆さん、すでに高階関数使っているのだ。クラス使わずに1メソッドだけのオブジェクト便利に渡せると思えばいいのでは。」 / Twitter
末尾再帰
- Tanaka AkiraさんはTwitterを使っています 「OCaml での tail recursive な map (逆順にもならず、無駄にメモリを確保しないやつ) https://t.co/jPix5aoHiK」 / Twitter
- 天泣記
- Shiro KawaiさんはTwitterを使っています 「@tanaka_akr f内で継続捕まえて後で再起動すると破壊がばれるやつですね」 / Twitter
- Tanaka AkiraさんはTwitterを使っています 「@anohana Lisp と書くか Scheme と書くか迷ったけど、Lisp と書いてよかった」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@tanaka_akr :-) あとCheney on the M.T.A.方式 (スタックをnurseryとみなす)だと普通に再帰しても頑張って工夫してアロケートするのとあんまり変わりませんね。Scheme以外の言語で同方式の実装ってあるのだろうか」 / Twitter
- κeenさんはTwitterを使っています 「Lispでtconcって呼ばれるテクニックだ。Obj.magic使えばできるんだ。」 / Twitter
再帰とループ
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「ソースを幅優先探索で読む人は再帰が理解しやすく、深さ優先探索で読む人はループが理解しやすそう説。本当にそうかは知らない。」 / Twitter
- ichimalさんはTwitterを使っています 「数学的帰納法でわかりやすく定式化出来る計算ならむしろ再帰の方が「見た感じ」簡単のように思うけど、一般的かは謎。 そも、再帰関数は原理的に単純なループより複雑な事ができる(例:アッカーマン関数)わけだが、そういうのも関係あるだろうか。」 / Twitter
- pokarimさんはTwitterを使っています 「ループはかんたんだけど再帰はむずかしいってなる理由についてあらためて考えてみたけど、再帰呼び出しがつくる任意の深さの入れ子構造というものが認識に負担をかけるようなところがあるのかもしれない。ループならあくまでフラット。」 / Twitter
- KojimaさんはTwitterを使っています 「手続き型言語に慣れていて関数型言語に慣れてない人の「ループしたいだけなのになんで再帰を書かないといけないのか」に対する違和感をうまく表現できないでいたんだけど、「あなたは総和を求めたいのではなく部分和の値をレジスタに書き込むことを繰り返したいのですか」とかいう感じかもしれない」 / Twitter
- ぽんこつ@Z6/Z7さんはTwitterを使っています 「関数型言語でも再帰書いたら負けっていう派閥なんですが」 / Twitter
- ぽんこつ@Z6/Z7さんはTwitterを使っています 「@haruo31 末尾再帰最適化前提でコード書けるの、Haskellぐらいしかなくね、みたいなイメージだった。Scalaも末尾再帰最適化失敗でコンパイル失敗させられるから一応入れてもいいかもしれないけど」 / Twitter
末尾呼び出し最適化
- FUJI GoroさんはTwitterを使っています 「こういう経緯だったのか。暗黙のTCOはダメだよなーと常々思っていたけど、Syntactic Tail Callだったらいいと思う。 / “末尾呼び出し最適化とJavaScript - Speaker Deck” https://t.co/qljvqhVju9」 / Twitter
- 末尾呼び出し最適化とJavaScript - Speaker Deck
- FUJI GoroさんはTwitterを使っています 「JavaScript、かなり浅いはずの再帰でも実ブラウザ環境では "Maximum call stack size exceeded" が発生しうるので、再帰は使うべきでないんだけど、再帰で書くほうが素直に書けることも多いし、STCがあれば解決できる。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptのTCO事情、そんなことになってたのか / 末尾呼び出し最適化とJavaScript https://t.co/5QRvbrChnH」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptみたいに「コンパイル先」として使われる言語はTCOがないと関数型言語が辛い」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「JavaのTCOの話はこの辺か? https://t.co/9C965yfZQB」 / Twitter
- TailCalls - TailCalls - OpenJDK Wiki
- 尾崎隆大さんはTwitterを使っています 「% Prolog '末尾再帰であると何がうれしいのかというと、 末尾の節の最後へ来て再帰のpが呼ばれる時に、 q1,q2, ... ,qn の情報が必要なくなる。もしスタックに積まれているとすれば、その情報はなかったことにして、上書きしても大丈夫。従ってスタックが伸びない。オーバーフローが起きなくなる。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '末尾再帰であるかどうかの見分け方。引数は捨象して、 p. p :- q1,q2, ... ,qn,p. ・このようにpゴールが述語の最後の節の最後のゴールとなっている。 ・q1,q2, ... ,qn, が実行時に全て決定性(もう次の選択肢がない)になっている。 このような述語は末尾再帰であるという。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog '小説が「大菩薩峠」とか「徳川家康」だったとしたら、末尾再帰版を使ったほうが無難。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 末尾再帰版 少し重くなった。 述語集(小説の登場人物の名前を全部入れ替える/4, 'https://t.co/rvbSxfpmeg').」 / Twitter
- nojiriko.asia/prolog/prolog/toujoujinbutsu_no_namae_no_chikan_2_utf8.html
- 尾崎隆大さんはTwitterを使っています 「% Prolog 述語集(小説の登場人物の名前を全部入れ替える/4, 'https://t.co/MUq1bEVKqR').」 / Twitter
- nojiriko.asia/prolog/prolog/toujoujinbutsu_no_namae_no_chikan_utf8.html
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'Prologの述語は基本、非決定性に作るので、q1,q2, ... ,qn が決定性に終了しているという状態を求め難い。それでスタックオーバーフローの危険があるため末尾再帰にしたい場合は、q1, 以降の述語をカット等を駆使して決定性に終了させるという課題に挑むとことになる。'.」 / Twitter
- NaruTo@うなぎ食べない教さんはTwitterを使っています 「手続き型言語に於いて、 「末尾再帰は繰り返しに置き換えられる」 って話がある。」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@KAZAMAI_NaruTo % Prolog 'スタックに積むより、固定枠に変数を代入して繰り返す方が速い。できればそうしたい。ところがPrologではゴールが決定性に終了したかは実行時でないと解らない。それでスタックに積む。 結局、Prologのプログラムに於いては、この積み方が速い遅いよりも遥かに大問題となっている。'.」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「% Prolog 'それではコンパイル時に繰り返しに変換できるような末尾再帰はないのかというとそうではない。末尾に至るまでのゴール全てが決定性であることが明白ならできる。単にn回繰り返す為の制御の再帰とか。これはゴールが決定性のis/2しか出てこない場合があり、この場合繰り返しに変換できる。'.」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Prologの静的解析ってどのくらい出来るのかしらん?カットを自動で入れるくらいのこと出来るのかな?」 / Twitter
- 尾崎隆大さんはTwitterを使っています 「@miura1729 % Prolog p(X) :- q1(X). p(X) :- \+q1(X),q2(X). p(X) :- \+q1(X),\+q2(X),q3(X). 'これを p(X) :- q1(X),!. p(X) :- q2(X),!. p(X) :- q3(X). に書き換える課題は面白そう。'.」 / Twitter
- mod_poppoさんはTwitterを使っています 「関数型言語の要件には『第一級関数』だけでなく『末尾呼び出しの最適化の保証』も必要!(素振り)」 / Twitter
- mod_poppoさんはTwitterを使っています 「伸びているようなのでマジレスするとJVMやJavaScriptをターゲットとする一部の関数型言語はTCOが部分的にしか実装されてなかったりするので、あまり「関数型言語にはTCOが必要!」みたいなことは大声で言わない方が良いかも。末尾再帰くらいは必須扱いしても良いかもね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「末尾呼び出しを厳密に実装しようとすると、スタックGC前提とか実装の自由度がかなり制限されそう」 / Twitter
メタプログラミング(多段階計算)
ステージング 多段階計算
- ステージング 多段階計算 - Google 検索
- 多段階計算 - Google 検索
- 多段階計算 - Google Scholar
- 多段階プログラミング - Google Scholar
- その正規表現エンジン、インタプリタで満足してる?! | κeenのHappy Hacκing Blog
- 多段階計算の型システムの基礎
- julia入門で多段階計算 - ::Eldesh a b = LEFT a | RIGHT b
- Juliaコンパイラ開発レポート | Advanced Technology Lab
- 多段階法 [JSME Mechanical Engineering Dictionary]
- SATySFiに多段階計算を入れる構想 · gfngfn/SATySFi Wiki
- SATySFiコード中で整数を16進数で書きたい - Qiita
- BER MetaOCamlで始めるメタプログラミング(MSP) - Qiita
- [OCaml] MetaOCaml で IDE (Merlin) を使う方法と簡単な紹介 - Qiita
- (PDF) MetaOCamlによるGPGPUプログラミング
- lambdaCB-PPL05.pdf
- asai14.pdf
- ppl3-2.pdf
- ppl3-4.pdf
- PPL6-3.pdf
- ppl7-2.pdf
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「多段階計算も互換性壊さないし、新しい moduleも大丈夫そうなので、SATySFiも意外と互換性問題に強い? (ただどこかのバージョンで一気に破壊的変更を加えるとアナウンスされているが)」 / Twitter
組み込み関数
- だめぽラボ@技術書典9さんはTwitterを使っています 「言語処理系を作るにあたって、組み込み関数はどういう風に定義するのがいいのかな」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@mod_poppo “特定の識別子(或いはそれをモジュールでくるんだもの)だけ最初から型環境に入っている” という方式が自然な気がします」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「@bd_gfngfn その「型環境に入れる」のをメタ言語のコードとしていちいち書いていると面倒だなあと思っているのです」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@mod_poppo どうしても “オブジェクト言語で書けるように外部化したい” 場合は external "foo" のような構文をオブジェクト言語に加えて「この識別子はターゲット言語の "foo" にコンパイルする」というFFIを与える方法はある気がします(拙作のSesterlでも似たことをやっています: https://t.co/QIjF0Axeus )」 / Twitter
- Sesterl/list.sest at 6e61703a1090c6b65d3ecf111f682cfc8ab945e4 · gfngfn/Sesterl
- だめぽラボ@技術書典9さんはTwitterを使っています 「@bd_gfngfn やはりそうなりますか。ありがとうございます」 / Twitter
- El Pin AlさんはTwitterを使っています 「こういうの、メタ言語が多段階計算をサポートしていれば解決できそうだと思ったりもします」 / Twitter
マクロ
- Scheme 入門 15. 構文の定義
- Rustは構文解析をしてからマクロを展開する - 簡潔なQ
- talk.key - JSSST2016_slides.pdf
- Weird Languages
- Keigo ImaiさんはTwitterを使っています 「マクロでリフレクションの話。 [Chiba, OOPSLA'95], [Tatsubori, OORaSE'99]」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「Java 触ってて javassist-*.jar みたいなファイル名は昔からチラチラ目にしていたけど、それがプログラミング言語研究から出ているのを知ったのはわりと最近だったかもしれない」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「Multi-stage Programming in the Large with Staged Classes https://t.co/op1s9KaDtm Scala のメタプログラミングライブラリ Squid の staged class 拡張. メタプログラミングで Programming in Large. SQL の DDL からクラス群を生成し、さらにSELECT文から効率のよいクエリを生成する(ポスターより」 / Twitter
- Multi-stage Programming in the Large with Staged Classes (GPCE 2020 - - 19th International Conference on Generative Programming: Concepts & Experiences) - GPCE 2020
- Keigo ImaiさんはTwitterを使っています 「https://t.co/Z4Lr7ehvb6 まだ Github にこの拡張は来ていないということだったと思う」 / Twitter
- epfldata/squid: Squid – type-safe metaprogramming and compilation framework for Scala
- Keigo ImaiさんはTwitterを使っています 「C++メタプログラミングは沢山使われているのにマルチステージプログラミングは研究以外で使われないよね…→ Staged Classes! という流れがよかった」 / Twitter
- κeenさんはTwitterを使っています 「Scalaで多段階計算でクエリからC吐くやつの関連か?って思ったけどこれはSQLからScalaだから方向逆か」 / Twitter
- κeenさんはTwitterを使っています 「自分が言ってるのはこれね https://t.co/gnRmfs2C6S」 / Twitter
- Building efficient query engines in a high-level language | Proceedings of the VLDB Endowment
パターンマッチとガード
ADT + 素直にパターンマッチの方が…
- Kota Mizushima (on a diet)さんはTwitterを使っています 「クラスベースOOPLであることと、多重ディスパッチがないことも実のところ関係ない。たとえば、199xに出たNice https://t.co/XuA9162vj1 はクラスベースかつ多重ディスパッチ(マルチメソッド)を持った言語。」 / Twitter
- The Nice programming language
- Kota Mizushima (on a diet)さんはTwitterを使っています 「そんなこんなで、Expression Problem解決出来る言語機構に憧れたり試してみたりしたけど、これ、ADT + 素直にパターンマッチの方がよほどメンテ楽だしいいんじゃね?←イマココ という心情です。なんか、The real expression problemみたいな感じで、新しく面白そうな例が出てくるといいんかもですが。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、NiceのASTのルートクラスはこんなんです。buildScopeとかresolveScopingとかtypeResolve()とかなんか、処理系のフェーズぽいものがASTに生えてる。 でもって、式のルートクラスである(はず)https://t.co/70TSmCRCQx 見ると、void computeType();とか生えてる。 ↓ https://t.co/0LvUvyzx48」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「規模の大きな処理系でInterpreterパターンやられるとめっちゃ読みにくくなる&(たぶん)メンテもめちゃくちゃ大変というパターン。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、Interpreterパターン使ったそれなりに大きな言語(処理系)の一つがNiceで、構文木ノードに compileとかいうメソッド生えてるので滅茶苦茶読みにくかった(興味がある人は、https://t.co/yn63oJU5wQ からソースダウンロードして、 src/gnu/expr/* 辺り読んでみるといいです)。 ↓」 / Twitter
- The Nice programming language
- Kota Mizushima (on a diet)さんはTwitterを使っています 「あ、ちょいミスです。 src/bossa/syntax/*.nice の方です(src/gnu/expr/* の方は、中間表現の方だったぽい)。構文木にそれはもう色々な処理が書かれてて、ぐんにょりでした」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「たぶん、10年以上前に、Niceのソースコードに興味を持って読んだ覚えがあるんだけど、その時も、compile処理が各構文木ノードに散逸しているのに嫌気がさして、「拡張性があればいいというものではないんだな」と思った記憶。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、知る限り、Scalaは比較的早期から、Expression Problem「も」解決出来るような言語として開発されていたけど、e.g. https://t.co/0knLtm2MmC じゃあ、abstract typeがこういう用途に使われているかというと、多くのケースでtype alias代わりにしか使われてない。」 / Twitter
- Independently Extensible Solutions to the Expression Problem - IC_TECH_REPORT_200433.pdf
- Kota Mizushima (on a diet)さんはTwitterを使っています 「Expression Problemは、かなり前から何度となく関連する記事、実装、論文とか見た覚えがあるんだけど、一方で、Expression Problemを解決できる言語機構って意外にも活用されてない(たとえば、Scalaにおける https://t.co/G9W2uZ68YB とか)の見るに、現実的にはあんまし要らない気がしてる。 ↓」 / Twitter
- Scalaによる Expression Problemの解決 (Visitor編) - kmizuの日記
- Kota Mizushima (on a diet)さんはTwitterを使っています 「あと、言語処理系を構成する2大パターン(?)のInterpreterとVisitorの内、(経験上)後者が圧倒的なのも、処理系のフェーズを追加したいことはあっても(たとえば、ある種の最適化)、ASTの種類を外から追加出来てもしょーじき微妙ってところに由来してるんじゃないかと思ったりする。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「現実にASTを追加したいって要求って、言語仕様拡張したいってタイミングがほとんどなわけで、処理系の都合で最適化をかけたいって要求に比べれば圧倒的に少なそうとおもう。」 / Twitter
タプルとパターンマッチ
- Aruneko@OSC21doさんはTwitterを使っています 「React Hooks の返り値ってどうして配列になってるんだろう🤔」 / Twitter
- Aruneko@OSC21doさんはTwitterを使っています 「型さえ合ってれば名前は何でも良いよねっていう思想なんだろうかね」 / Twitter
- Aruneko@OSC21doさんはTwitterを使っています 「いやでもあれじゃん、TSってタプルのサポートが微妙だからアンパックするときに事故起こる可能性もあるじゃん。」 / Twitter
- Aruneko@OSC21doさんはTwitterを使っています 「タプルとパターンマッチが使える言語ならアレで全然いいと思うんだけど」 / Twitter
- でこれきさんはTwitterを使っています 「Standard MLのrefは参照の同一性いなるのか - ref 1 = ref 1; val it = false : bool - let val x = ref 0 in x = x end; val it = true : bool」 / Twitter
- でこれきさんはTwitterを使っています 「同一性に」 / Twitter
- mod_poppoさんはTwitterを使っています 「SMLのrefのパターンマッチでの挙動はやはりイレギュラーだと言わざるを得ない。便利なのかもしれないけど https://t.co/1o8Uamt6Bk」 / Twitter
- mod_poppoさんはTwitterを使っています 「パターンマッチの際に「参照セルの読み出し」という副作用が起こるのがイレギュラー感ある。まあパターンマッチにガードを書けるように拡張すると副作用が何でもアリになるんだけど」 / Twitter
- ytakanoさんはTwitterを使っています 「パターンマッチ、過去に自作の多相型言語に実装してみたけれど、参考資料がまったく無くて、バックトラッキングで実装したなあ。 https://t.co/M0eJtwAh52」 / Twitter
- BLisp: Lispっぽい静的型付け言語
- パターンマッチの網羅性検査
- コンパイル技法: パターンマッチ
- mod_poppoさんはTwitterを使っています 「前半部分はn月刊ラムダノートのやつの再掲ということだけど、当該n月刊ラムダノートを積んだまま読んでいなかったという事実を突きつけられている」 / Twitter
- mod_poppoさんはTwitterを使っています 「04より > SMLでは、SundayやMondayのように、コンストラクタの先頭を大文字にします。 SMLの文法には(Haskellと異なり)そういう制約はない。あるとしたらせいぜい「慣習」あるいは「ローカルルール」」 / Twitter
- mod_poppoさんはTwitterを使っています 「04節、printPathnameの2回目の定義のDirectory (name, entries)の周囲の括弧が抜けている。」 / Twitter
- mod_poppoさんはTwitterを使っています 「05節より > いま、以下のようなSMLの式を考えます。 > case x of > Empty => 0 + 1 > Full _ => 1 + 1 Fullの前の | が抜けている」 / Twitter
- mod_poppoさんはTwitterを使っています 「08節 enumのコンパイル結果のWHITEの定義の右辺の " が閉じられていない。 recordの例のEmpty()の後のinterfaceはimplementsの間違い?」 / Twitter
- mod_poppoさんはTwitterを使っています 「後半は後で読む」 / Twitter
- mod_poppoさんはTwitterを使っています 「11節、 ・「式のデータ表現」ではboolを大文字始まりTrue | Falseとしているがそれ以後は小文字? ・「式のデータ表現」xorの例に(True, True)が2回出現して(False, False)が抜けている ・s/descriminant/discriminant/g ・「上記で登場した、」の段落、「れに対応した〜」→「こ」か「そ」が抜けてる」 / Twitter
- mod_poppoさんはTwitterを使っています 「14節、caseのコンパイル。condの計算のコンパイル後の(switch言語の)コード、other := tmpはother := condのことか?」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「pattern synonyms や view patterns でも足りなくて第一級パターンがほしくなって Template Haskell に手を出してるし、もういっそ Racket という気分すらある」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「局所的なパターンマッチだけでプログラミングされる機械としての Turing 機械」 / Twitter
Lazy K
- Lazy K - Wikipedia
- Church encoding - Wikipedia
- Lazyk
- cormoran's note - Lazy K 〜インタープリタの導入〜 (Mac)
- cormoran's note - LazyK HelloWorldを目指す
- λ計算から始める Lazy K
高階関数
- Kota Mizushima (on a diet)さんはTwitterを使っています 「私の知る限りでは、引数/返り値の両方を含めるのが標準的かなと思います。cf. https://t.co/QZenBn3RGI し、そもそも、引数で関数を受け取るもののみをそう呼ぶのは非対象ですし。 ↓」 / Twitter
- Higher-order function - Wikipedia
- がくぞさんはTwitterを使っています 「逆に後者を含めずに引数にだけ限定して呼ぶ流派があることにびっくりしました。どこかでそういう定義がされてたりするんでしょうかね? 自分の観測範囲だと後者も含めた定義しか見たことなかったので新鮮ですねー」 / Twitter
- 🈚️うひょ🤪✒📘さんはTwitterを使っています 「業務で高階関数の話をしていて、関数を引数に受け取る関数だけでなく関数を返す関数のことを高階関数と呼ぶ流派があることにしぬほどびっくりした。しかもWikipediaやそれ以外の複数の情報源にそう書いてあるんだ(?)」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「あえて、引数に限定した「定義」をしてもいいのですが、高階関数でのメリットや、その時のみ発生する問題を論じる上であんまりメリットがない気がします。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「あと、そもそも、カリー化というテクニックが、 (A, B) -> C ==> A -> (B -> C) に変換するといった感じで、基本的には「返り値が関数になる」という意味での高階関数を利用しているので、これを含めないとしたら、議論がややこしくなる気も。」 / Twitter
- なたがわさんはTwitterを使っています 「@_marony 少なくとも単純型付ラムダ計算の文脈では陽に定義があって (https://t.co/YjgNFvmaaE) それなりに意味のある値なんですが、(少なくともこのあたりの分野では) これが2以上であることを higher-order と呼びます。」 / Twitter
- Simply typed lambda calculus - Wikipedia
- Kota Mizushima (on a diet)さんはTwitterを使っています 「なるほど。単純型付きラムダ計算(とその拡張)でorderの定義が、 https://t.co/gfkk4bKKoW なのは以前見た気がした。ただ、K山先生の講義資料にも https://t.co/S4qyDc7soS "および、返り値が関数である関数*1を総称して" とあるし、論文で高階関数を扱うときは両者を総称する事が多い気が。」 / Twitter
- Simply typed lambda calculus - Wikipedia
- 7.pdf
- Kota Mizushima (on a diet)さんはTwitterを使っています 「(おそらく)狭義には、(A -> B) - >C のような形のみを高階関数と言うらしい(?)。K山先生とかはその辺り知らないわけではないにも、A -> (B -> C)みたいなのも高階関数と説明してるのは、学部生への便宜上なのか、慣用法として既にどっちも高階関数になってるのか。どうなんだろう。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ただ、高階関数のある言語である種の検査が難しくなる、という時に、返り値に関数が出てくるケースも想定しているような気がするんだけど、勘違いしてたりするだろうか。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「CSにおける高階関数ってどの辺りが初出なのかなあと調べてたけど、とりあえず1972の論文では"higher-order function"が「普通に」出てくるな。 https://t.co/Yqy3WQufzC それ以前でも出てくるけど、数学関係の論文が多い感じが。数学における"higher-order function"を調べた方がいい?」 / Twitter
- Definitional interpreters for higher-order programming languages | Proceedings of the ACM annual conference - Volume 2
モノイドや半群の概念
- がくぞさんはTwitterを使っています 「Scala使うのに無理にFPごりごりに倒す必要は無いよね。 それはそれとしてFPとか関係なくモノイドや半群の概念とかを把握しているとJavaでもKotlinでもRubyでもPythonでもPHPでもTypeScriptでも他の言語でも楽に書ける処理が増えたりするよ」 / Twitter
- がくぞさんはTwitterを使っています 「具体的に言うとこういう応用が効くようになるよ https://t.co/qX7prYqVlO」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「知っていると「あっ、これ...!」ってなる瞬間あるよね。SemigroupやMonoidこそデザインパターンじゃなかろうか >RT」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「本当にものすごく的確にMonoidの性質を応用した例としてはこれが面白かった。結合則を満たすから並列に実行した結果をどの順番で足し算しても問題ないように計算を分割していく例 https://t.co/idYRlXihsP」 / Twitter
- Beating C with 80 lines of Haskell: wc
- がくぞさんはTwitterを使っています 「この例だと入力がフラットなだけじゃなく順序に強い制約があるので、確かにスタック積んでループ回す方が読みやすいかもですね ただ、foldMap知ってるとこちら問題 https://t.co/82uH6jn6M5 も全く同じ構造の問題として捉える事ができて同様にして解けるんですよね https://t.co/ouoDVWDsXK なので(続」 / Twitter
- suin❄️ TypeScript入門書執筆中さんはTwitterを使っています 「#JavaScript こういうフラットな配列から木構造を作るのってどうやったらいいんだろう? https://t.co/upGEJK5Wxi」 / Twitter
- NAKAMURA AtsushiさんはTwitterを使っています 「ひどいLINQコードを書いてしまった。 でも、できるだけイミュータブルにしようとするとこうせざるを得ない。元のデータが悪いんだよなあ。 https://t.co/xVh9QdGckc」 / Twitter
- https://twitter.com/matarillo/status/1302048512771645440 フラットなデータ集合からネストしたグルーピングするのに foldMap が便利だよというお話
- がくぞさんはTwitterを使っています 「なので問題を見て進○ゼミでやったところだ!的に簡単に解ける問題だと認識が広がるのでお勧めですよ的な事が言いたかった感じですね。 副次的効果として入力の列が長い場合に並列化して実行効率があげられたりしますし(入力列が短いと単純にループした方が効率いい場合多いでしょうが)」 / Twitter
- がくぞさんはTwitterを使っています 「最近Foldable/Traversableが(僕のTLで)話題になりましたが、これも典型的な foldMap で楽に書ける問題ですね。残念ながらTSだと標準で foldMap 無いので map().reduce() で代替してますが発想は同じです https://t.co/SdOOVIeT2m」 / Twitter
- TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript
- がくぞさんはTwitterを使っています 「不要なchildrenは除去する必要がありましたね https://t.co/jOrEFmeXKT」 / Twitter
- TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript
- がくぞさんはTwitterを使っています 「https://t.co/xlu8HMF5Wx」 / Twitter
- まろ@関数型言語作曲機械学習勉強してないさんはTwitterを使っています 「関数言語が得意な人は本当にこの木構造のレベル合わせるTypeScriptのコードが読みやすい(コードの綺麗汚いではなくすんなり頭に入る)のですか? 読めるけどmap, fold(reduce)よりもループと再帰で書いた方がわかりやすくないですか?」 / Twitter
集合論
- Shinji KonoさんはTwitterを使っています 「ブール値に値を持つ論理の代わりにトポスに値を持つ集合論とか書いてたが、トポスはSubobject classifierで論理値を決めるので、結局はその問題になるはず。CCCで良いやんと思うと∨がある場合(biproduct)は命題論理以外は矛盾してしまう。なので工夫が必要らしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「CCCはGraphで力尽きてて、biproductの矛盾まではやってなかった。CCCと演繹定理はクライスリ圏を使うのだけやるべきだった。圏の圏はAgdaだとレベルの問題が出るってのを発見したのだった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Toposもやるべきだな。Osius先生の集合論とか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「来年はチコノフもやってみたい。選択公理やりまくったし、チコノフは選択公理と同値なので面白いだろう。基底の存在が選択公理と同値とかもできそうではある。HODな集合論が手に入ったのでいろいろできる。と言っても、色々残ってるのだが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「残してるのは、濃度を定義する時のベルンシュタイン。ℵが冪集合で上がるやつ。Generic Filter。それから強制法だが… Toposの方が良さそう。聞き逃したの残念だったな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「集合とはなんですかという質問に対して今は割と明確に答えられる。無限のモデルとして自然数を二次元にした順序数が考えられる。この部分集合を集合だとしたい。でも、それでは集合が循環論法になってしまう。そこで順序数方程式(OD)を考える。その解のうち最大値を持つもの(HOD)を集合と定義する。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HODの要素は順序数で集合(HOD)ではないが、HODはゲーデル数的に順序数に対応すると考えられる。簡単のためにこれを仮定すると、集合を要素に持つ集合を定義できる。順序数がメモリで、そのアドレスが個々の集合。つまりCの*と&のように集合と順序数の対応がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「この時に集合HODは順序数としての順序を持つが、順序数と違って全順序にはならない。これは古典論理的には矛盾してるが直観主義論理ならば整合する。集合には∈からでる自明な順序があるが、それを対応する順序数の大小から導出することはできない。∈ならば順序数の順序はそれに従う必要がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「つまりHODは自明な順序を持つので整列定理は成り立っているが、排中律がない状況では、それを選択公理(この場合は空でなければ要素が取れる)に対応させることはできないというわけ。排中律があれば選択公理=整列定理。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「実際に反例を構築するためには選択公理を否定したモデルを構築する必要がある。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「最大値を持たない順序数方程式の解はProper class、つまり集合ではない集りになる。順序数は自分自身を含むので、それを集合Sとすると、class全体はその中で集合になる。もちろんSは、そのclassには含まれない。つまり、Sはclassの中にない集合ということになる。out of memoryだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「なので、順序数を含むHOD(可算順序数を考えれば具体的構成できる)をモデルとする集合論がある。これはHODでは順序数が自身を含むことから自明。古典集合論だと割と面倒な条件になる。Sの要素の冪集合がSに含まれるとか正則だとか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「VとLはHOD内で超限帰納法を用いて定義できるが、Lは定義可能集合を冪集合の部分集合として与える必要がある。ODは定義可能なのだが、そのうちのad-hocな定義可能集合があるとする感じ。いやODだろとするとV=Lとなる。 https://t.co/YIn5bE5luE」 / Twitter
- Members/kono/Proof/ZF-in-agda: 9b0630f03c4b VL.agda
- Shinji KonoさんはTwitterを使っています 「実際にV≠Lな集合論のモデルを作るためには整合的な Df : Definitions → (x : HOD) → HOD Df D x = Power x ∩ Definition D x を具体的に作る必要がある。元の順序数が非可算だとできないらしいんだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HODに最大値が必要な理由は「集合は階層的な無限を構成してほしい」というのと「集合を要素とする集合」を定義したからだな。最大値のないODが集合の要素になると階層的な無限にならない。冬のプロシンではそこまで気が付いてなかった。なので、そこに突っ込まれると面白かった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「最大値がないとすると矛盾になるので超気まずい。数学者がいたら確実につっこまれたと思われる。まだ、間違いがある可能性もある。ODに全順序があると思ってた時期もあって、それだとODは順序数になってしまう。だいたい一週間くらいでリカバリしてるらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「最大値があるというHODの定義は古典集合論の HOD = { x | TC x ⊆ OD } とは異なる。なので違う名前の方が良いだろうな。おそらく同じものだが。 TCは推移閉包。古典集合論だとxは集合なので意味がある。うちの場合だと自明であまり意味がない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「たぶん、bounded OD」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ClassがBoundedなら集合だってのはどっかにあったような。ZFでの集合は公理から生成されるものなのでBoundedなはず。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Classの定義は「単なる論理式」ってことらしい。でも、ほとんど集合と同じように使えるので共通のシンタックスを使うのでややこしくなってる。Agdaの場合はODとHODなので明解。型が違うって良いよね。V αが集合でVはOD。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「古典集合論だとなんかclass(条件)持ってきて「集合とは限らない」とかやるのでいらっとする。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ZFの公理は導出できるので、集合論の別公理ってことね。ブール値モデルとかToposだと公理化はしないみたいなんだけど。なんでかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「全順序と半順序が準同型になるってのは古典論理ではなくて、直観主義論理だから可能。もちろん、これは圏論的な概念だな。なんかそういう名前があるんだろうか?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「コーエンモデルでは順序を持つ可算モデルから、順序を持たない可算モデルを生成してるので、そんなもんらしい。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「カントルは直観主義論理は知ってたのかな。40年くらい差があるのか。知っていておかしくない。この頃はまだ記号論理は確立されてないが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「カントルの晩年にはラッセルホワイトヘッドのあれが出てたのだが、ラッセルに会うことはできなかったのか。ラッセルは集合論を救った人なので会いたかったろうな。ただ、ラッセルの多層型理論は複雑。でも、まぁ、だいたい今のAgdaと同じ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「カントールの生涯は英語版と日本語版では量が全然違う。クロネッカーがカントールをネチネチいじめた的に書いてあるが… クロネッカーは構成主義的な立場だったらしい。カントールはむしろ非構成的な数学の重要性を確立した人なんだな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「HODとODは、もちろん同時に知ったのだがHODがさっぱりわからなくて。Bounded ODだとわかったのは今年になってから。推移閉包とBoundedの関係はなんか書けるとは思うが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「全順序と半順序の準同型っていう言い方はおかしいよな。AからBは順序が保存するが、逆は決定できない。なので半準同型みたいな感じ。」 / Twitter
データフロー指向
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「個人的には記法の問題だと思う。テキストで制御構造を「上から下に流れる」「インデントでネスト構造」の表現力と比較可能なレベルで、データフローのグラフ構造を表現可能な記法がない。図法だとスケールしない。テキストだとグラフの接続関係を把握できない。(ああわが青春のPARTS Workbench https://t.co/d5WzhDxH2C」 / Twitter
- Miura HidekiさんはTwitterを使っています 「三浦 英樹さんによるデータフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?への回答 https://t.co/lJFDgeijrt 面白い質問なので思わず答えたのですが、これはぜひ識者の人の意見を聞きたいのでツイートします。」 / Twitter
- データフロー指向のプログラミング言語があまり一般化しなかった理由はなんでしょう?に対する三浦 英樹さんの回答 - Quora
- Miura HidekiさんはTwitterを使っています 「@tomooda たしかに。木構造以上の複雑なグラフ構造をテキストで表現するの急に難易度が上がりますよね」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 プログラムで扱う時にも木構造からDAGで一気に難易度が上がるので、単純にニンゲンの脳ミソの特性というだけでなく、やはり木とDAGでは問題そのものの難易度に本質的な差があるんじゃないかなーと思います。」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 @tomooda 制約プログラミングになると依存関係がDAGに収まらないのでちょっと難しくなります。ただドメインに合うとむしろ可読性が上がるわけで、例えばiOSのGUIレイアウトに使われているAutolayoutはDeltablue以来の歴史を持つ制約解消系の実用例です。」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています 「@miura1729 識者じゃないし、答えでもないけど、関数型言語ってある意味データフロー指向のようにも思えますが、そういうのじゃないんですね!? (データフローコンピュータが何故あまり一般化…というと、また別の回答になると思いますが)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@nfunato たしかに。このあたりは定義がはっきりしないのですが、引数が非同期に決まってくるってのが暗黙の条件に入るのかなって思っています。そうすると、Haskellが微妙です。」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 @tomooda 最近FRPをやっている経験からは、ドメインを上手く限定すれば、テキストでも図式でもDAGに収まっている限りはそれほど難しくはならない気がします。そうでなければMatlab/Simulinkなんてこんなに使われていません。」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@miura1729 @nfunato 関数リアクティブプログラミング(FRP)はデータフロープログラミングの再来みたいなものですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@wtakuo @nfunato FRPはあまり知らなかったのですが、調べてみたら確かにデータフロープログラミングですね。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています 「@miura1729 Elixirは実質的にデータフロー指向の言語だと思っています。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています 「@miura1729 そしてこの性質によりSIMDアーキテクチャによる最適化が抜群に効きます。」 / Twitter
OCamlのlet recの変数の再帰使用の制限
- kinabaさんはTwitterを使っています 「POPL'21論文リスト見てる。OCamlのlet recの変数の再帰使用の制限を以前までのad-hocな規則じゃなくて、型システム的にちゃんと定めるというの言われてみればなるほどだけどそりゃこうあるべきだなあ、と面白かった。 https://t.co/sp1vgdOPB3」 / Twitter
- A Practical Mode System for Recursive Definitions (POPL 2021 - Research Papers) - POPL 2021
- kinabaさんはTwitterを使っています 「以前の規則 https://t.co/2ze6KCnKrJ 見てても、まあそりゃそんなもんかーと思って深く考えてなかったもんなあ自分」 / Twitter
- Chapter 7 Language extensions
Haskell
多相関数のデバッグ
- いろはす∈ますらばさんはTwitterを使っています 「「Haskellの関数は副作用がないからデバッグしやすい」っていう人がいるんだけど,どうやったらその境地に達せられるのかが分からない・・・ printfデバッグするのに関数のシグネチャいじらなきゃいけないとかマジで無理なんだが」 / Twitter
- o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「@irohasu_math Debag.Trace.trace を使えばシグネチャーを変えずに print デバッグができます https://t.co/f2yFF9EqAv」 / Twitter
- Debug.Trace
- o̞͑kä̝mo̞͑to̞͑ kä̝zʊ̠kɪ̟さんはTwitterを使っています 「@irohasu_math Debug.Trace モジュールは base パッケージに入っているので追加パッケージのインストールなしに使えますよ👍」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellの多相関数のprintfデバッグが辛い問題は最近出た https://t.co/bfQ3PWScgJ が一つの解決策にならないかな(まだ試してない)」 / Twitter
- recover-rtti: Recover run-time type information from the GHC heap
- だめぽラボ@技術書典9さんはTwitterを使っています 「Haskell でのデバッグ手法あれこれ https://t.co/6kjw7gQ9XT の内容を改訂しようとしてるけどdebugパッケージが依存の関係でそのままだとGHC 8.10で動かないな。Hoedをgitリポジトリから引っ張ってくれば動きそう」 / Twitter
- Haskell でのデバッグ手法あれこれ | 雑記帳
- だめぽラボ@技術書典9さんはTwitterを使っています 「動いたのはいいけど、ローカル変数が見えなくなってる……」 / Twitter
- orkronさんはTwitterを使っています 「Haskellアロー記法の図はストリング図だった? 改めて見るとモノイド圏(デカルト圏)に見える。 https://t.co/dTQNRmGo2n https://t.co/eOAHg66wit」 / Twitter
- Arrow syntax
- orkronさんはTwitterを使っています 「以前に見かけたときは良く分からなかったけど、 今ならこれらの記事の意味が理解できそうだ。 https://t.co/1fgte423nr」 / Twitter
- Haskell カテゴリーの記事一覧 - PS
- みんな大好き🐐ヤギのさくらちゃん(Kadzuya Okamoto)🎯さんはTwitterを使っています 「Haskellちゃんは強い静的型付けとか純粋な関数とかでがんばった努力をガバガバな例外処理が全部台無しにするところが好き(きらい)」 / Twitter
- lotzさんはTwitterを使っています 「2021年こそ Haskell を始めてみようという人! 日本語のチュートリアルがたくさん集まっている便利なWebサイトがありますよー https://t.co/iPWK35wR5b でも環境構築が面倒くさいーという人! このリンクを開けばオンラインのREPLですぐに書き始めることができますよー https://t.co/M7EX5Nmisu」 / Twitter
- Haskell入門 | haskell
- Repl.it - Haskell Online Compiler & Interpreter
- lotzさんはTwitterを使っています 「型推論、型クラス、Lens組み合わせると最強で、ただのJSON文字列に対してまるでちゃんとしたデータ構造かのように(実際中ではそう)アクセスできるし、ネストしててもJSON文字列のまま中身を更新したりできる #Haskell https://t.co/PfXkFj7yYO」 / Twitter
- lotzさんはTwitterを使っています 「https://t.co/yQsLnw0zM4」 / Twitter
- Lens.Micro.Aeson
- 電波猫さんはTwitterを使っています 「リスト型やオプション型のようなものが作れる言語の中で、モナド則が成り立たないと困る言語がHaskellくらいしか思い浮かばなくて、モナドってプログラミングに必要なんだろうかという思いは強くなる。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「副作用のある計算」を扱うのに専用の型(IO)が必要なのがHaskellくらいしかないからなあ」 / Twitter
- トデス子'\さんはTwitterを使っています 「モナドはエラー処理に役立つが、その用途には?で充分だったという説が出てきてしまった。」 / Twitter
- トデス子'\さんはTwitterを使っています 「さまざまな制御構造を汎用的に扱える単一の仕組み vs エラーと非同期処理だけあれば困らなくないっすか で後者を選ぶ言語が多い印象……」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「(´・_・`)なんでモナドでいいのに、わざわざ汎用性を減らした?が必要なんですか?僕はいぶかしんだ・・・。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「エラー処理もモナドだったら、async/awaitもモナドのフレームワークで済んでたはずだ(知らんけど)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「うーん、でもまあ、なんか型の表現力が全然足らん気がするし、そういうのが満足にできるような型システムと、ライフタイムがちゃんとかみ合うのかどうかとか、だいぶ型システムのチャレンジングなチャレンジな気がしてきたな(´・_・`)・・・。」 / Twitter
- エヌユルさんはTwitterを使っています 「Monadが良い理由の一つとして 言語の標準ライブラリにあってみんなこれを使っているのでこれに対応すればMonadを実装してる型全てに対応出来るというのがあるので 「この言語でも工夫すればMonadが定義できてこのライブラリに実装が…」 とかは微妙 Scalaz Catsぐらい徹底的にやってるなら良さげ」 / Twitter
- Kenji YoshidaさんはTwitterを使っています 「Free MonadというかEffを多用した場合の知見として、DSL自体をかなり上手に設計しないと、あるいはInterpreter側に主要ロジックが寄ってしまうと、まずテスト用Interpreter作るの自体がダルいし、それでテストしても本当に効果的なテストになっているのかが謎、」 / Twitter
- Kenji YoshidaさんはTwitterを使っています 「という状態に陥る可能性があると思うのですが、同じような問題意識や、解決(改善)案を持っている人・・・🤔 まぁその問題があっても、べつに使う効果がないわけではないが、Interpreterを超柔軟に自由に切替可能は原理的にはそうなのだが、ん〜」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「この辺の問題意識はあって、Freerとか命令セットしか記述しないから解釈がマジで定まらないのはそれはそうなので、interpreterを適切にパラメータ化するしかテストする方法無いよなぁみたいな気持ちはある」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「これはinterpreterのテストになりそうだけど、DSLをテストすると言った時は何を確認したいんでしょうか(問題意識がズレてる可能性がある)」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「別にモナドは純粋関数型言語でなくてもメリットありますよ デザインパターンなんで」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「モナドはデザインパターンなのでまず便利だし、デザインパターン上の抽象(F[_]: Monad)を許すのでさらに便利」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「まぁ後者は言語によりそう 前者だけできる言語はいっぱいありそう」 / Twitter
- masaniwa❕❗⭐さんはTwitterを使っています 「モナド、言語が厚くサポートしてるから便利なのであってそうでない言語に無理やりモナド持ち込んでも別に美味しくないって誰か言ってたね」 / Twitter
- masaniwa❕❗⭐さんはTwitterを使っています 「Haskellヤクザが言ってた」 / Twitter
- らいぱん粉@駆け出し済みエンジニアさんはTwitterを使っています 「@masaniwasdp そういえば、 C#にはクエリ式というのがあって、 微妙にモナドの恩恵を受けられたりする。」 / Twitter
- masaniwa❕❗⭐さんはTwitterを使っています 「@elipmoc101 あれはモナドと呼んで良いんだろうか、確かにモナド的な気もするが」 / Twitter
- らいぱん粉@駆け出し済みエンジニアさんはTwitterを使っています 「@masaniwasdp map=Select bind=SelectMany となるので、モナドを作ると自然とクエリ式も適用できてしまう。 クエリ式自体はモナドではない。」 / Twitter
- masaniwa❕❗⭐さんはTwitterを使っています 「@elipmoc101 >モナドを作ると 理解」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「いや、そんなこと全然ないと思っていて、ElmとかRustとかのパーサコンビネータ見た時に「monadic compositionできる関数無いかな 絶対あるやろ あったわ」を3秒くらいでできるのは普通にアドだと思っている」 / Twitter
- がくぞさんはTwitterを使っています 「具象モナドインスタンスが便利に使えることと、モナドをモナドとして抽象化して扱えることと、みんな違ってみんな良い」 / Twitter
- がくぞさんはTwitterを使っています 「みんな大好きtraverseもモナドまで要らないけどApplicativeをApplicativeとして抽象化して扱える必要があるからなー」 / Twitter
Listの結合
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「Geckoもたいがいやけど、Blinkも複雑なブロック間をまたぐselectionの削除の動作は一貫性が無くてバグりまくってる感じがある。」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@d_toybox すごく分かる・・・ やっぱ依存性の整理が難しい処理なんだろうなぁ・・・」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「@beepcap ネストしたリスト同士の結合とか何が正解かさっぱり分かりませんわ。リストのタイプが違うとなおさら。テストケースをなんぼ書いてもカバレッジが不十分と思える強迫性障害に陥りそうです(実際、足らん訳ですが)。」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@d_toybox なんかその辺もしかしたら仕組みそのものが更新される必要があるかもですね。 ネスト構造の明確なルール化(明確に1次元化し、かつ戻せる)とか。」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「@beepcap 問題はそういう細かい互換性に最大手のGoogleは興味が無いという……」 / Twitter
- エヌユルさんはTwitterを使っています 「@d_toybox @beepcap Listの結合とかは純粋なデータ構造ですらMonad(Monoid?)の教本とかでも「複数の自然な実装がある…」とかしれっと書かれるぐらいなので自然な方法が分からなくても当然な気もしますね あっしまった釈迦にセポーしてしまいましたね」 / Twitter
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「@ncaq @beepcap いや、泣きたい話です(別にこれを専門にやってきた訳ではないので」 / Twitter
パーサコンビネータ
パーサコンビネータ
- κeenさんはTwitterを使っています 「これへーってなった Haskellのsomeを正格評価したら無限ループする話 - 星にゃーんの日記帳 https://t.co/Tmf8t4UdMc」 / Twitter
- Haskellのsomeを正格評価したら無限ループする話 - 星にゃーんの日記帳
- Shiro KawaiさんはTwitterを使っています 「@blackenedgold モナドでやってると最初のvが失敗したら次のmany vには行かないと思うんですが、Applicativeだけどモナドにしないパターンがある?」 / Twitter
- κeenさんはTwitterを使っています 「@anohana これはリストに対する操作のsome/manyじゃなくてパーサコンビネータのsome/manyなので失敗したらパース打ち切りで正しい動作だと思います」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@blackenedgold はい、なので some v = do { x <- v; xs <- many v; x:xs }なら正格でも無限ループしないと思うんですが、vの結果を待たずにmany vの評価に行っちゃうのってどういう時かなと。」 / Twitter
- κeenさんはTwitterを使っています 「@anohana むむっ、確かに言われてみればそうですね。実際PureScriptのパーサコンビネータライブラリでdo記法で実装しているものもありました。Haskellだとapplicativeの方がすっきりしてるから使ってるけどpurescriptに移植するときにあまり深く考えず字面を似せたとかですかねー。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@blackenedgold あっそうか。Applicativeの表記を無意識にモナドに置き換えて読んでたんですが、<$>が正格評価だと単純な置き換えになりませんね。」 / Twitter
- κeenさんはTwitterを使っています 「@anohana はい。モナド使うと順序が保証されちゃうんで効率まで考えると一般には<$>と<*>を単純にdo記法(bind)に置き換えられないはずです。」 / Twitter
- Typescriptでパーサコンビネータを書いてみる - teruuuのブログ
- Java パーサコンビネータ 超入門 - Qiita
- パーサコンビネータで構文解析をより身近なものにする | mediba Creator × Engineer Blog
- Java - パーサコンビネータとは、何なのでしょうか|teratail
- パーサジェネレータ - Wikipedia
- 第5章 パーサコンビネータ―小さなパーサを組み合わせて大きなパーサを作る:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
- Chapter4.pdf
- Parser Combinators in Swift
- Scalaのパーサコンビネータにふれる - Uzabase Tech
- パーサコンビネータ - mrsekut-p
- ytakanoさんはTwitterを使っています 「Rustでポーランド記法の計算機作った。すぐできた。」 / Twitter
- ytakanoさんはTwitterを使っています 「パーサコンビネーター、ADT、rustylineのおかげ。」 / Twitter
- rustyline - Google 検索
- ytakanoさんはTwitterを使っています 「ストリームもパーサコンビネーターでパースできるってすごいよ。昔C++でやろうとしてだいぶ苦労した。」 / Twitter
- パーサコンビネータ - tasuwo's notes
- 面倒くさいパーサの実装もDSLで書くだけ!そう、Scalaならね - Qiita
- 論理式パーサをscala-parser-combinatorsで楽々実装 - Qiita
- otajisan/scala-parser-combinator: パーサーコンビネータの学習
モナディック・パーサー
- 知我麻社さんはTwitterを使っています 「モナディックパーサでパーサ書いたら「手続き型の言語なんて二度使うかよ~~! な~にがポインタだクソくらえ~~!」ってなる(個人の感想です)」 / Twitter
- モナディック・パーサー - あどけない話
- 『ふつうのHaskellプログラミング』サポートページ
- 4702.pdf
- 状態モナド遊び - あどけない話
- お気楽 Haskell プログラミング入門
- 続くといいな日記 – 遅延評価でデバッグが困難になる状況
- kodai 🕊🪐🌸🐿🏮さんはTwitterを使っています 「パーサを綺麗に実装することだけを考える本です 最終的には F# でモナディック・パーサコンビネータを実装します」 / Twitter
- [B! haskell] モナディック・パーサー - あどけない話
- [B! F#] F#でモナディックパーサコンビネータを書いた | a posse ad esse
- Megaparsec tutorial from IH book (翻訳)
- haskell/parser.md at master · lotz84/haskell
- pearl.pdf
- Happy ユーザーガイド(Happy User Guide) - Pac Learner
- sec-monads.html - Pac Learner
- 実例によるPureScript
モナド(Unix Shell)
- ひさてるさんさんはTwitterを使っています 「Unix のコマンドはモノイド (cat | grep | more は cat | grep を more しても cat を grep | more しても同じだし、パイプしても結果に影響しないコマンドもありえる) なのでこの対象となる標準入出力はモナドだし、シェルは自己関手の圏 ← 乱暴な解釈」 / Twitter
- wint 𝄆 9月病 𝄇さんはTwitterを使っています 「@tanakahisateru 自分もファイルの圏はいけるのか考えてみましたが、識者によるとそのままモナドに対応付けられるようです: https://t.co/NoTP6bidlK」 / Twitter
- UNIX pipes as IO monads
- ひさてるさんさんはTwitterを使っています 「@wint7 とりあえずエラー出そうとビルドしたら一発でコンパイル通ったときの気持ちです」 / Twitter
遅延評価(log)
- Kazuho OkuさんはTwitterを使っています 「Cの場合は if で囲まれたコードを出力するマクロ書きますねぇ」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「コレ、logger あるあるで、正格評価しか無い場合はどうにかして全体を if で囲んだり、無理矢理 closure に押し込んで渡したり」 / Twitter
- 山本和彦さんはTwitterを使っています 「うぉー! 遅延評価が本当に役に立つ事例をもう一つ発見したぞ! ロギングだ! 正格評価だと、ログを記録しないログ関数を指定しても、引数のロギングの文字列を生成しちゃう!」 / Twitter
- https://twitter.com/objectxplosive/status/1301363081939791874
- How do I implement assertions?
- Kazuho OkuさんはTwitterを使っています 「dtrace とかでも、probe には必ず同名の probe_enabled って関数があって、実際に probe がアクティブな場合だけ引数構築ができるようになってる」 / Twitter
Miranda
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「すごい!Mirandaのソースが公開!! https://t.co/55Etgo6hIP」 / Twitter
- Edward KmettさんはTwitterを使っています 「Over the last couple months, David Turner's Miranda source code has been released! https://t.co/z9c4iUUgpm Miranda first tried the cookies 'n cream combo that is type inference and laziness, and shaped Haskell. For those interested in compiling to combinators, it's a goldmine.」 / Twitter
- Miranda homepage
bright-ml
- El Pin AlさんはTwitterを使っています 「言語作ってます。割と動く https://t.co/vcW7v9bs5S https://t.co/hQOJO5rGQn」 / Twitter
- elpinal/bright-ml: A statically-typed programming language based on "F-ing modules"
- El Pin AlさんはTwitterを使っています 「Moscow MLの再帰モジュールをふんだんに利用して実装しています」 / Twitter
- El Pin AlさんはTwitterを使っています 「ああ、あとlexer / parserは、Karl CraryのHygienic Source-Code Generation Using Functors (2018)を試しに使っています 基本的にyaccだけどfunctorが生成される https://t.co/9j5Qvu74jd」 / Twitter
- cmtool.pdf
ネットワーク越しの型情報
- 樅山 (Mutsuha Asada)さんはTwitterを使っています 「仮に人類がJavaScriptを捨てるとしたら、ブラウザに乗せる言語は何がいいんだろう。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Scheme + 総称関数ベースのオブジェクト指向システム だろうね >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「当然ながら静的型付け推しの意見が多いけど、ネットワーク越しにライブラリを動的にダウンロードする場合にどうやって型仕様を読みこむのかという問題がありそう。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 MS の ActiveX にタイプ ライブラリという型情報が付いてるのですが、COM IDL をコンパイルしたバイナリだと思います: ActiveX コントロールの構成要素 - RAD Studio https://t.co/ibjpzHaWUQ」 / Twitter
- ActiveX コントロールの構成要素 - RAD Studio
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど、ActiveX。この手の型情報をネットからダウンロードすると名前空間の管理が煩雑だなって思うのですが、ActiveXのようにUUIDでしょうかね。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 たぶん名前空間に、人力で名前を付けると大変だし、機械で自動で名前を付けると不自然になりそうな気がします。ただ、UUID でも新たな仕様が出てきてるので、どこかで決定しておかないといけませんが」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 Javaのような名前空間も個人だと大変だと思いますし。githubのアカウントって現実的にはよい気もする (もちろん企業にロックオンされるような規格は認められないと思いますが」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 WebAssembly にも、モジュールに export された関数の名前と型が付いてきますが、ダウンロード元の場所は自由ですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 よく分かっていないのですが、WebAssemblyってユーザ定義の型とかクラスって使えるのでしょうか?単純に組み込み型しか使えない引数と戻り値のシグネチャーであれば色々やりようは考えられます。名前は衝突したらユーザの責任っぽいですね。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 最新の仕様は見ていませんが、初期の仕様なら組み込み型しか使えないと思います。C のコードをコンパイルすると、構造体の引数はポインタ(組み込みの整数型)としてコンパイルされます。ユーザ定義のセクションが使えるので、独自の型情報を付加することは可能だと思います」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 可能なのは分かるのですが、そうすると構造が非常に複雑になって(他のサイトにあるライブラリで定義されているクラスなり型を使っているならなおさら)、事実上きちんとした名前空間が無ければ使いものにならないと思います。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 C++ の namespace 構文みたいに、import する側のコードで名前空間を決定するというのも思いつきますが、まあダメですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 この問題についてはActiveXのようにUUIDを割り振る実装とかJavaのようにサイトのURIを名前空間にする実装とか考えられるわけですが、Javascriptがプロトタイプベースの型無しオブジェクト指向であることは実は結構考えた末の結論ではないかと思うのです。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 JavaScript の隠された型を DB に格納して、対応するコードとともに世代管理したくなります」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 JSのプロトタイプベースの言語仕様のせいで処理系凄く苦労していますものね。Rubyもクラスベースの振りして実はプロトタイプベースに近いので気持ちはよくわかります。全てのインスタンス変数はinitializeメソッドで初期化してくれって思います。」 / Twitter
- k9694.pdf
- Keigo ImaiさんはTwitterを使っています 「フォールトトレランス以外にもマルチパーティセッション型には改善できるところがまだいくつかあり、それを解決すれば並行プログラミングでもぐっと使いやすくなると信じて理論と実装をやっています」 / Twitter
分散プログラミング言語
- Acute: high-level programming language design for distributed computation: ACM SIGPLAN Notices: Vol 40, No 9
- Acute Programming Language
- HashCaml
- Scribble
- Specifying Systems
- book-02-08-08.pdf
- [TLA+] TLA+と形式仕様言語 [目的と準備] | DevelopersIO
- handout.dvi - lecture09ModelChecking.pdf
- Jolie - 分散アプリケーションのためのサービス指向プログラミング言語
NUE/TAO/ELIS
- Multi-Paradigm Language TAO
- #:g1: (41)NUE/TAO/ELISのOS的側面(1984)
- CiNii 論文 - NUE/TAO/ELISのOS的側面
- がくぞさんはTwitterを使っています 「DSLがS式でよければLispは最強感ある。とはいえ一定以上の静的型付言語ならDSLのADTをFunctorにするだけでfree-monadやfree-applicativeで合成可能なDSLが作れてしまうけれども……」 / Twitter
- 焼肉系インフルエンサーさんはTwitterを使っています 「あとはまあ、個人的にはだけど、メタプロというか内部DSLの作りやすさは結構大事にしてて、その観点のみで言えば動的型のほうが有利なことが多い気がする。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@gakuzzzz S式だと具象構文考えないで良い分楽ですよね。とはいえ、S式で書いてもらえるケースがそれほど多くなさそうなのがネックかもです。」 / Twitter
- がくぞさんはTwitterを使っています 「なるほど。 まずはFunctorからはじめて、次にFoldableでcatamorphismをやり、そこからparamorphismに拡張した上で、Traversalにたどり着く、と。ネタで翻訳したけどわりと現実的にアリな気がする?」 / Twitter
- きしだൠ(K1S)さんはTwitterを使っています 「プログラム組めるという人でもAPI叩けるだけでロジック組めない人がわりといるので、ロジックが組めるようになるための学習パスとしてforeachで要素ごとの処理->reduce要るやつ->隣の要素に用事があるやつ->状態管理いるやつ->スタックいるやつ->再帰->分割統治->DPみたいなのを考えている。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@uint256_t @takoeight0821 MinCamlのようにif式は最後まで残ってもいいのかもしれませんがどうなのでしょうね? 少なくともネストした式は展開された形にしたほうがいいでしょう。 SSA形式はレジスタがimmutableな形式になるので関数プログラミングに近くなりますね。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@uint256_t @takoeight0821 基本ブロックを基本としたコードフロー以外の形式ですと、継続渡し形式の関数によるコードフロー表現は可能です。gotoの代わりに関数呼び出しでそれぞれが自由変数を持たない或いは同じ環境を共有する形で表現できますよね。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「@uint256_t @takoeight0821 生存解析をして生きている変数を継続する関数呼び出しにすれば環境を共有しない形になる。一方でファイ関数を挿入する代わりに関数引数を挿入して1つの関数群は同じ環境を共有すれば無駄な生存解析なしでSSA形式をCPS形式に変換できるはずです。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「イラストでわかる圏論入門。集合論から始めて関数、圏、モノイドを解説し、実際的な例として命題論理を圏論の枠組みで説明している。 https://t.co/lUKaDkyZXE」 / Twitter
- Category Theory Illustrated - index
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「とくに興味ぶかい部分: 「科学や数学の世界では、物事の関係を説明するのに図を使うことがよくある。圏論はこの図による表示をさらに抽象化・定式化して、あらゆる概念を説明できる言語を作り上げたものなのである」」 / Twitter
ラムダ計算
コンビネータ論理
- コンビネータ論理 - Wikipedia
- SKIコンビネータ計算 - Wikipedia
- SKI combinator calculus - Wikipedia
- d.y.d.
- カリー=ハワード同型対応 - Wikipedia
- Haskell/カリー=ハワード同型 - Wikibooks
- B,C,K,Wシステム - Wikipedia
- モーダスポネンス - Wikipedia
- 直観主義論理 - Wikipedia
- ¥³¥ó¥Ó¥Í¡¼¥¿ÏÀÍý - 20180620.pdf
- lambda2.pdf
- 4.pdf
- IPSJ-TPRO4416006.pdf
- The SKI Combinator Calculus a universal formal system
- Urbit - Chapter 2 : Crash course in Nock
- Combinator Birds
- To Dissect a Mockingbird: A Graphical Notation for the Lambda Calculus with Animated Reduction
- お勧めの数理論理の本を2冊+新刊の予告 - hiroyukikojima’s blog
- ronri-part.pdf
- 現代数理論理学序説読んでる
- vatscy/CLwCalculator: 【数理論理学】体系CLwにおける式の正規化を行なう
- ラムダ計算 - Wikipedia
- コンビネータ論理 - Wikipedia
Y, Zコンビネータ
- 06gun_03hen_02.pdf
- 5-3. Recusive Functions
- lambda2.pdf
- 不動点コンビネータ - Wikipedia
- コンビネータ論理 - Wikipedia
- 不動点コンビネータを用いた無名再帰関数の実行(C#, F#) - Qiita
- TypeScriptで不動点コンビネータに型をつける - Qiita
- RubyでYコンビネーターとZコンビネーター - Qiita
- 不動点コンビネータで無名相互再帰 - Qiita
- 誰得UNIX: Schemer のための「すぐ理解できるYコンビネータ」
- Scheme:初心者の質問箱
- 不動点と不動点コンビネータ | 黒曜の吹き溜まり
- ネタ記録庫/不動点コンビネータ - ocaml-nagoya
- コンビネータ - mrsekut-p
- techlunch1.md
- Haskell+タグレスな型付きDSLで楽々!C言語コード生成 - keigoiの日記
- 不動点とfix演算子 - 一歩前進
- YコンビネータとZコンビネータ(Ruby) - Camera Obscura
- Haskell Language - ファンクタ | haskell Tutorial
- プログラミング言語 - 型なしラムダ計算で量化子を定義できるか|teratail
- 哲学
- F#入門
- ブロックチェーンの新たな言語 Simplicityの論文を読む −Core Simplicity編− | GMOインターネット 次世代システム研究室
- 第5章 パーサコンビネータ―小さなパーサを組み合わせて大きなパーサを作る:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
- Z - コンビネータ : tnomuraのブログ
- 2009-04-09
- 型システム入門 5章のメモ
- Combinatory Logic 0
- C++でラムダ式を再帰させる – 日和見荘404号室
- 楽しいプログラミング
- 🙂コンピュータサイエンスと魔法のYコンビネータ
- yコンビネータ 型 - Google 検索
- Zコンビネータ - Google 検索
型消去
- Simply typed lambda calculus - Wikipedia
- Type erasure - Wikipedia
- type erasure typed lambda - Google 検索
- type erasure - Google 検索
- LangSpec2.8-ja_JP.pdf
- types23.pdf
- TaPL9
ラムダ計算・書き換え
- Lambda calculus - Wikipedia
- How is Lambda Calculus a specific type of Term Writing system? - Theoretical Computer Science Stack Exchange
- REWRITE SYSTEMS AND LAMBDA-CALCULUS
- () - 1208.0515.pdf
- [0904.4120] On Constructor Rewrite Systems and the Lambda-Calculus (Long Version)
- On Constructor Rewrite Systems and the Lambda-Calculus | SpringerLink
- final.dvi - open-final.pdf
- Term rewriting systems | Programming languages and applied logic | Cambridge University Press
- The Origins of lambda-calculus and term rewriting systems - Inria
- The Lambda Calculus, General Term Rewriting and Food Nutrition | Beckman Meijer Overdrive | Channel 9
- Rewriting - Wikipedia
- lambda_en.pdf
- syntax.pdf
- hor-fct.pdf
- LNCS 4098 - A Terminating and Confluent Linear Lambda Calculus - rta06.pdf
- 148675853.pdf
- PII: S0304-3975(96)00173-9 - 82509885.pdf
- lambda.pdf
- syntax.pdf
- H8-garrigue.pdf
- IPSJ-TPRO4416006.pdf
- 21_73.pdf
- CoffeeScriptで理解する『ラムダ計算入門』 - slow living in the sky
項書き換え系
- ppl2-3.pdf
- 26_2_76.pdf
- 32_1_179.pdf
- KJ00003124054.pdf
- クヌース・ベンディックス完備化アルゴリズム - Wikipedia
- proof_completion.pdf
- Knuth-Bendixの完備化アルゴリズム
- Knuth-Bendixの完備化手続きとその応用
- C++でKnuth-Bendixの完備化アルゴリズムを頑張って実装した話 - Qiita
- IEICE Conferences Archives - 多重Knuth-Bendix完備化における危険対除去手法の導入
- CiNii 論文 - Knuth-Bendix の完備化手続きとその応用
- 表現系工学特論第3回 - 11JTEXT.pdf
意味論
- d.y.d.
- katsumata.pdf
- 並列論理和の続き - sumiiのブログ
- 並列論理和 - sumiiのブログ
ラムダ計算・System F
ラムダ計算
Prologでラムダ計算
- Koromo/Prolog-lambda: ラムダ計算のインタプリタみたいなの
- prologでラムダ計算 - 計算機と戯れる日々
- Prolog Advent Calendar 2016 - Qiita
- Prologよいよ - Qiita
- TAPL5-3. 型無しラムダ計算(λ) - Qiita
- _pdf
- ラムダ計算はHOAS - Google 検索
- インタプリタ · shiatsumat/wiwinwlh-jp Wiki
証明木・ラムダ計算
- ahuさんはTwitterを使っています: 「論理式が型ってのはわかるけど、証明がプログラムってののイメージがわかない」 / Twitter
- gentzen-NK.pdf
- sakurai10.pdf
- 20191109_C-3_resume(Tsunoda_Kentaro).pdf
- ppl3-4.pdf
- ch.pdf
- ppl1-3.pdf
- パースの法則 - Google 検索
- Glivenko の定理の代数的証明 - 論理とか計算機とか数学とか
- パースの法則 - Wikipedia
- 排中律、二重否定の除去、パースの法則 - Qiita
- 命題論理の自然演繹 : 定理 [数学についてのwebノート]
- パースの法則 - Skinerrian's blog
- 3. Peirce - airoboの日記
- call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog
- Introduction_to_Modal_Logic.pdf
- 継続 | haskell
- vol1.indb
- 84jGENP2.pdf
項書き換え・ラムダ計算
- 98ss_intro_trs.pdf
- agora-2005s-cd-b.pdf
- IPSJ-TPRO4416006.pdf
- 21_73.pdf
- ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記
- 正規化 (項書き換え) - Wikipedia
- Jacques Garrigue : Home Page
- lambda.pdf
- H8-garrigue.pdf
- trs.pdf
- 23_3_35.pdf
- 51237311.pdf
- IPSJ-MGN240207.pdf
- クヌース・ベンディックス完備化アルゴリズム - Wikipedia
- 合流性 - Wikipedia
- コンビネータ論理 - Wikipedia
- SKIコンビネータ計算 - Wikipedia
- 04mm004.pdf
- agora-2005s-cd-b.pdf
- 研究の紹介
項書き換え・操作的意味
- 3aa6257094ed385200cd3c7cd7f1a277622a.pdf
- ppltut.pdf
- 116_103.pdf
形式仕様 操作的意味
- Miura HidekiさんはTwitterを使っています 「本来はアプリケーションごとにDSLが作られてその上でアプリケーションが作られるべき」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 そしてDSL毎にそのための言語VMとIDEが作られて然るべきなのですキリリ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda さすがにこの辺は自動生成にしてほしい...」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 でしょ?カタログから命令セットを選択して、少数のカスタム命令の動作を MUL reg1, reg2, reg3 : reg3 ← reg1 * reg2みたく操作的意味を書いたら、各命令の前提が相互矛盾しないかとか、定義に穴がないかチェックした上で、自動的にVMを生成して欲しいでしょ?で、現状それに近いのって、形式仕様。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda なるほど。 * の操作的意味って自明じゃない気がしますが、どうなんでしょうか?」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 そうなんですよ。*は仕様記述言語側の意味論に帰着させるわけですが、bignumとかしんどいわけですよ。さらに割り算で泥沼ですよ。VMが提供する他の操作セットによって最適な定義もきっと変わるので、色々な*の操作的定義が必要になるかもしれません。こういう体験を積み上げている途中なんです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda 割り算は泥沼ですね。CPUの定義によるでは形式的な検査もあったもんじゃないでしょうし。確かに、このあたりの最適解は机上では分からないでしょうね。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 何度Nan-boxing教に入信しようと思ったことか。実際、IEEE754なfloatをVDMのrealに帰着させて定義したので、比較的簡単にNan-boxingな仕様を書けるはずです。そのうちこれもやりたい。いろんな数表現をポチリと選択してVM合成できるようにしたい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda 数のビットパターンもそうですけど、割り算だと負の場合の丸め方とか言語によって仕様が違うところをどうするのか気になります」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 ので、仕様記述言語が定義する演算を組み合わせてそのDSLでの割り算を一意に定義し、それを実行する命令を実装を生成するという皮算用です。もちろんホストCPUやホスト言語が提供する割り算によって最適な実装は異なるので、適切なものを自動的に導出可能にする、または選択可能にする必要があります。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda なるほど。なかなか茨を感じますが面白そうです」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「@miura1729 autoconfのようにネイティブ/ホスト言語の演算のセマンティクスを自動検出できたら面白いかなと、今思いました。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tomooda それいい研究テーマかも」 / Twitter
λ-lifting
- Lambda lifting - Wikipedia
- ラムダ計算から Grass へのコンパイラ作ったったwWWwwwwWWww - Object.create(null)
- Lambda lifting とは – 計算機科学Word
- Implicitly-Typed Deadlock-Free Process Calculus
- ヒビルテ(2006-09-12)
- amylase/コンパイラ課題メモ - IS2011 Wiki
Twitter
- muratakさんはTwitterを使っています 「Curry-Howard 同型対応、「論理と計算の間に対応がある」という説明をされると非常に非自明なことだけど、たとえば核となる(と思われる) 単純型付きラムダ計算と直観主義命題論理の間の対応は、シンプルすぎて当たり前というか、単にデカルト閉圏の具体例を2つあげただけという気もするんですよね。」 / Twitter
- 🌙さんはTwitterを使っています 「単純型付きラムダ計算を導入するためにラムダ計算を書いたのか」 / Twitter
- 🌙さんはTwitterを使っています 「あ、あと無名再帰のためによく使われるYコンビネータですが、再帰型の概念のない単純型付きラムダ計算では型付け不可能でしたねやっぱり」 / Twitter
- 🌙さんはTwitterを使っています 「単純型付きラムダ計算が正規化可能(停止性が保証されている)ってのはすごかった」 / Twitter
- 🌙さんはTwitterを使っています 「というか、単純型付きラムダ計算だと再帰関数が定義できないわけで、再代入もなければループすらかけないのだから停止性保証はある意味当たり前だわな」 / Twitter
- かすてらふぃさんはTwitterを使っています 「実は単純な型付きラムダ計算みたいな簡単な言語だと関数の引数の型だけ書けば良かったりするんだけど、型システムを拡張すると完璧な型推論は計算不能な問題になってしまうらしい」 / Twitter
- 戸次大介/Daisuke BekkiさんはTwitterを使っています 「研究室合宿で那須塩原に来ている。今年はゲーデルの不完全性定理、型付きラムダ計算の停止性、シーケント計算の証明探索の三本立て。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「e(Γ,i)::=integer|e(Γ,i)+e(Γ,i)|e(Γ,i)*e(Γ,i). e(Γ,b)::=true|false|e(Γ,i)<e(Γ,i). e(Γ,T)::=if(e(Γ,b),e(Γ,T),e(Γ,T)) | λ(x:e([x:T1,Γ],T2)),{T=T1->T2} | x,{x:T∈Γ} | e(Γ,T1->T) $ e(Γ,T1). と単純型付きラムダ計算の文法及び型付け規則を記述可能だ。」 / Twitter
- 粗製伍長さんはTwitterを使っています 「純粋な型付きラムダ計算 GCありきだし参照としてのポインタを剥き出しにすると阿鼻叫喚の地獄絵図になりそうという気づき」 / Twitter
- gatetogoさんはTwitterを使っています 「一階論理で量化子のドメインが非空であるとみなしてよくて(i.e. 「(∀x. P) → P」が導出可能)、一階論理を表現できるはずの依存型付きラムダ計算でそうみなせないのはどういうこと?」 / Twitter
- あわねずみさんはTwitterを使っています 「wikipediaにλPωのことλΠωって書いてあったが依存型付きラムダ計算のPってΠ(Pi)のことだったのか 前から気になってた」 / Twitter
- watcherさんはTwitterを使っています 「やべこれ「Lispは値渡しが基本なものの、 quoteマクロで名前渡しを実現しています。違いは何でしょうか」で済む話でしたorz 50年代にラムダ計算をモデルに実用言語として拡張されたLispと、 80〜90年代、型付きラムダ計算や純関数型言語の重要性が認識された後の、ラムダ計算処理系は何が違うんだっけ」 / Twitter
- 小林聡@京都産業大学さんはTwitterを使っています 「ほほう、命題論理の implicational fragment の話か、それとも単純型付きラムダ計算の話なのかな(なんでやねん」 / Twitter
- kannkyoさんはTwitterを使っています 「昔勉強したカリー・ハワードの対応と型付きラムダ計算がここに来て役立つ日が来るとは・・。 JavaScriptのカリー化について味見してみる https://t.co/AcYz1vun6x #Qiita」 / Twitter
- kentoさんはTwitterを使っています 「ソフトウェアの基礎では単純型付きラムダ計算が実装されてるんですが、依存型を追加するにはどうすればいいかわからない…」 / Twitter
- kentoさんはTwitterを使っています 「具体的には 単純型付きラムダ計算→ソフトウェアの基礎で定義されているのでパクる 依存型→がんばる 単純型付きラムダ計算の型チェックの関数→ソフトウェアの基礎で定義されているので、各規則にわけてパクる 依存型の型チェックの規則たち→↑の関数を参考にしてがんばる」 / Twitter
- MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn primitive type algorithmっていうなら単相型の型付きラムダ計算に(メタ的に)多相性を導入できることを指しますから、その言い方は誤解がある気がします…」 / Twitter
- MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn えーと、型注釈なしの単純型付きラムダ計算においてtypableなラムダ式につけうる型(これは無数にある)のうち、出現するatomic typeに他のtypeを代入することでつけうる全ての型を表現できるものをprincipal typeとして、これを先に言った構文木の解析(とunification)で求めるものを指しています」 / Twitter
- MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn これが可能な事は、単純型付きラムダ計算が明示的には単相であるにも関わらず、型注釈がない場合にはメタ側からはあたかもオーバーロードしているかのように見える、ということなのかと思っていました」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn ちょっと復習かねて時間取ってました。やはりその言い方は語弊があるのでは?(少なくとも(単相な)単純型付きラムダ計算の元では)aをconcrete typeとして具体化したらもう他の型として具体化できないですよね?それだと恒等関数を表現できていないのでは?」 / Twitter
- MoMAの冬ごっこしようぜ!お前壁な!さんはTwitterを使っています 「@kmizu @hennin_ltn それは同名の関数が同じ型をもつとは限らないというだけでは? そもそもラムダ計算には名前をつける文法はないので名前はあくまで略記であって、「ラムダ式の略記」と「型付きラムダ式の略記」を別々に用意しておけば問題はなさそうです?」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn 考えてみましたが、やはり無理なような。型推論をしようが、単純型付きラムダ計算上の型式だと適切な型を与えられないと言うか。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@takum97 @hennin_ltn 示唆する、というのは明確ではないですが、単純には無理というしかないような。ちょっとここから先は実際の型付きラムダ計算の体系と、その上の特定のラムダ式を例にして議論した方がいいような気がしてきました…(Twitter上だとつらひですが)。」 / Twitter
- 黒澤亮二さんはTwitterを使っています 「「プログラムの実行と定理の証明が対応する」というカリーハワード対応を理解したかったが、最後の章の内容で全然到達しなかった。とりあえず「圏論の歩き方」も読んでカルテシアン閉圏と型付きラムダ計算が対応するという事がわかったつもりになれたのでいいことにしたい・・・」 / Twitter
- kentoさんはTwitterを使っています 「実は論理式として型付きラムダ計算の型が使えるんだけど、なんで使えるかはカリー・ハワード同型対応でググってネ!と言ってしまえば証明論の話も回避できるので便利(?)」 / Twitter
- ayustateさんはTwitterを使っています 「ラムダ計算に型付きから入門した人は「プログラムをラムダ式で表現してラムダ抽象式は関数だから関数型A→Bを持つということにして関数適用はA→Bの型を持つ式とAという型を持つ式との間でしかできないとすると、そういったプログラムは必ず停止する」ことの感動を味わえないという煽りを思いついた。」 / Twitter
- ayustateさんはTwitterを使っています 「今は「ラムダ計算の入門書は何がよいですか?」という質問にTAPLとか大堀本とかが答えに挙がるんだなぁ。そんなに最初から型付きがよいのだろうか。昔は(世界の多くの人がイエローブックやクリーニ本で勉強している一方)母語が日本語である偶然に感謝して高橋本を読めといったものだが。」 / Twitter
- 緑に戻りたい!さんはTwitterを使っています 「@_Iwancof 型の安全性の照明とかに使われるらしい。 例えば型付きラムダ計算を理解すると一定の条件下で無限ループ判定が出来るので無限ループをしないソースコードをかける」 / Twitter
- ねこむらこねこさんはTwitterを使っています 「@_nabbe 単純にS x T x U → Vという型は、単一の引数しか扱わない(扱えるとしたら、それはカリー化しているから)型付きラムダ計算では取り扱えないでしょ。 だから、単純に理論上の取り扱いが楽になるからS x T x U → VとS → T → U → Vを同一視して欲しい。 さらにプログラマーも部分適用できるおまけつき」 / Twitter
- ╹ω╹腕が震えてGPUを茹でた1inguiniさんはTwitterを使っています 「ラムダ計算のチャーチエンコーディングされた整数は全部型が違うから型付きラムダ計算では使えないのか」 / Twitter
- 重城良国さんはTwitterを使っています 「HaskellのCore言語は、だいたいSystem FCだということ。僕はいまのところ(数学的にではなく感覚的に)untypedなラムダ計算は、わかる。つぎは単純型付きラムダ計算を学び、多相性を取り込んだSystem Fを学び、さらに「型変換をあらわす型」を明示的に引数にとるSystem FCを学ぶ必要がある。」 / Twitter
- 重城良国さんはTwitterを使っています 「あ、あと(たぶん)単純型付きラムダ計算だと再帰が表現できなかったと思うのだけど、そのあたりはSystem FCだと解決されているのだろうか。」 / Twitter
- ユーザーブログ:Hexirp/(2020-05-03) 計算可能関数と型付きラムダ計算 | 巨大数研究 Wiki | Fandom
- 基本編(TaPL 実装)OCaml Yacc / Lex で型付きラムダ計算を実装する - Qiita
- ラムダ計算 述語論理 - Google 検索
- 項書き換え系 述語論理 - Google 検索
- ラムダ計算 文字列 - Google 検索
- チャーチ数 sub - Google 検索
- resume4-rev.pdf
- resume5.pdf
- resume6.pdf
- main.pdf
- de bruijn ラムダ - Google 検索
- alpha 変換 ラムダ - Google 検索
不動点コンビネータ
- std::variantと不動点演算子 - in neuro
- In C++, how to make a variant that can contain a vector of of same variant? - Stack Overflow
- 不動点コンビネータ - Wikipedia
- コンビネータ論理 - Google 検索
- TypeScriptで不動点コンビネータに型をつける - Qiita
- d.y.d.
- 不動点コンビネータで無名再帰を作る流れをおさらい - 無駄と文化
PDF
- 8_1_34.pdf
- lambda.pdf
- 5.pdf
- cs2019muroya.pdf
- sou19.pdf
- 66_0661078.pdf
- MSJ20120328Fujita.dvi - MSJ20120328Fujita.pdf
- IPSJ-SE93097013.pdf
- stlc.pdf
- sakaue.pdf
- 私を SKI に連れてって
- cormoran's note - LazyK HelloWorldを目指す
- SKIコンビネータ AGAIN
- combinatory logic in nLab
- 画力・博士号さんはTwitterを使っています 「値呼びの型なしラムダ項をTeX言語コードにコンパイルし,それをTeX言語上に構築したVMで完全展開で評価できるようになった: https://t.co/OKy0aEYXXC 1枚目: 入力 2枚目: 処理の様子 3枚目: 出力コード 4枚目: LaTeXで処理した結果出てくるPDF https://t.co/Ufm4L1A0RX」 / Twitter
- 完全展開形 ラムダ - Google 検索
- ラムダ計算インタープリタ : tnomuraのブログ
- ラムダ計算 : tnomuraのブログ
- カテゴリー理論とプログラミング : カルテシアン閉カテゴリー
- メタリックはんぺんさんはTwitterを使っています 「カリーハワード同型の基本的なアイデアは「型付きλ計算の型の推論規則と直観主義論理の推論規則は対応関係が付くから実質『同じ』だよね」で、後半第五回の課題は「与えられた命題の証明木を見ればそっから与えられた型のλ式が作れるよね」っていう話だったはず」 / Twitter
- mod_poppoさんはTwitterを使っています 「F-ing modules, 型レベルのラムダが要るのか」 / Twitter
- mod_poppoさんはTwitterを使っています 「週末を使って自作SML処理系にopaque constraintを実装しようと思ったんだけどなかなか難儀だな」 / Twitter
- mod_poppoさんはTwitterを使っています 「まだFωの型検査を実装してるわけでもないし型レベルラムダの追加は3秒で終わった」 / Twitter
- El Pin AlさんはTwitterを使っています 「@mod_poppo Standard MLの範疇でしたら不要ですよ😀(必要になるのはapplicative functorがあるときだけ)」 / Twitter
- mod_poppoさんはTwitterを使っています 「@elpin1al そうなんですか。論文読み直します……」 / Twitter
継続・CPS・Algebraic Effects
fiber
Qiita
- coroutineとasync/awaitのあれこれ - Qiita
- 言語によってちょっと違うFuture/Promiseをまとめてみた(1) - Qiita
- 言語によってちょっと違うFuture/Promiseをまとめてみた(2) - Qiita
- 言語によってちょっと違うFuture/Promiseをまとめてみた(3) - Qiita
- Coroutine - Wikipedia
- future - Wikipedia
- Stackless vs. Stackful Coroutines - Varun Ramesh's Blog
- stackfulness of coroutines - lilyum ensemble
- async/awaitと合成可能性 | κeenのHappy Hacκing Blog
- (ネタ)ユーザー空間だけでプリエンプションする - livaの雑記帳
- コルーチンプログラミング - 増井俊之
- pro2019-01.pdf
- Ryou Ezoeさんのツイート: "すごい、ファイバーのコンテキストスイッチのコストとかを示すためにWandboxが使われている。 https://t.co/WXNeFk8A99 https://t.co/IJzj8EyiKG"
- Ryou Ezoeさんのツイート: "Fiber(stackful coroutine)は歴史上何度も試みられてきたがパフォーマンス上の恩恵が全くないのでやめておけ。今まともに使っているのはGOだけだがペナルティが大きい。 https://t.co/WXNeFk8A99"
- p1364r0.pdf
- p0866r0.pdf
- p1520r0.pdf
- 技術書典6・う38 デダルス・ユメノさんのツイート: "OSスレッドの切り替えには大量のレジスタ退避、復帰処理が必要だが、goroutineの切り替えはプログラムカウンタ、スタックポインタ、DX(多分RDXレジスタのこと)だけで済むらしい。協調マルチタスクの強みやな。 https://t.co/B8eQ4T7NyD"
- How Goroutines Work · Krishna's words
- 技術書典6・う38 デダルス・ユメノさんのツイート: "どうやら,context registerと呼ばれる役割らしい https://t.co/gPKnrPIaDX… "
- go - What is a context register in golang? - Stack Overflow
- Could JavaScript/Node.js be written without application-level callbacks, like if every program was wrapped inside a big goroutine? There’s no need for async-await, all I/O calls would just have that functionality builtin, and remains single-threaded. - Quora
- You can get deadlocks in stackless coroutines too. The reason node.js won't dead... | Hacker News
- I think stackful coroutines will always have their fans but the industry is head... | Hacker News
- c++ - How do stackless coroutines differ from stackful coroutines? - Stack Overflow
- ntaooさんはTwitterを使っています 「DartのIsolate (Actor Model) の基盤の上での、Single thread event loop モデルは、やはり扱いやすくていいなと思います。適切に高い抽象度でプロセスとスレッドを扱えますので... https://t.co/mQS6zLF8oA」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「@ntaoo 割り切りとしてとても良い落し所ですよね。パフォーマンスオタクからすると言いたいことはあるんでしょうけど、そういう人たちは、Platform/Dart ffiの方に案内すればいいですからね。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「Kotlinもさ、正直、コルーチンとかも良さげに見えて素人には罠だらけだと思うんだ。やっぱりマルチスレッドは常人には無理だよ。」 / Twitter
- ntaooさんはTwitterを使っています 「@espresso3389 そうですね。割り切って真にパフォーマンスが必要なごく少数の箇所はネイティブに移譲しつつ、クライアントサイドアプリケーションプログラミングの事情に沿ったIsolateの設計だと思います。もっとメニーコアになって対応が必要な時代になったら、ErlangのActorのアプローチを参考に進化するでしょうし」 / Twitter
- FadisさんはTwitterを使っています 「Boost.ContextからBoost依存を排除した、Deboost.Contextなるライブラリが存在する事を知った。Boost.ContextはWindowsのFibreや新しいスタックの確保とスタックポインタの書き換えを使って、ユーザ空間の単一スレッド上で複数のタスクを切り替えて実行する仕組みを提供する https://t.co/GZCAxn7bpw」 / Twitter
- septag/deboost.context: "Deboostified" version of boost.context (coroutines), Plain and simple C API for context switching. Easy build on multiple platforms.
非同期・ノンブロッキング・CPS
- 非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
- update a content · KeenS/KeenS.github.io@d46dad5
- How does the Go runtime work? What does it consist of? What functionalities does it provide, and what can be expected from a developer perspective? - Quora
- channel - go routine blocking the others one - Stack Overflow
- 「非同期とノンブロッキングとあと何か」について · Issue #1 · KeenS/KeenS.github.io
- Tanaka AkiraさんはTwitterを使っています 「@blackenedgold とりあえず synchronous I/O Operation が変だと思ったので、参照されている記事から IEEE Std 1003.1 に飛んでみましたが、内容だけでなくリンク先が 3.374 Synchronized I/O Completion だったり変じゃないですかね」 / Twitter
- Future パターン - Wikipedia
- Futures and promises - Wikipedia
- Overview of Blocking vs Non-Blocking | Node.js
CPS変換
- κeenさんはTwitterを使っています 「CPSしてる部分をIsoみたいに同型で抽象化できないかなって思ったけどあんま意味ないか」 / Twitter
- データ型のCPS変換について - Just $ A sandbox
- κeenさんはTwitterを使っています 「type (-'s, +'t) fn = {f: 'r. 's -> ('t -> 'r) -> 'r} type (-'s, +'t, +'a, -'b) t = ('a, 'b) fn -> ('s, 't) fn としとくとeta展開なしで書けはする。app, (>>), idまで特有でそれ以降は同じコードで動く(多分)」 / Twitter
- κeenさんはTwitterを使っています 「(>>), id はむしろ -> をそのまま -> として使えるので普通の(>>), idと言った方がいいかも」 / Twitter
- BiwaSchemeのためにCPS(継続渡し形式)でマージソートを実装した話 - yhara.jp
- κeenさんはTwitterを使っています 「ナイーブなCPS変換するときに元の式にはない簡約基ができるんだけどそのせいで変換前と変換後で同じ簡約が進むみたいなことが言いづらい。CPS変換のルールを複雑にして余計な簡約基が発生しないようにするのがよくある手法だけど、やっぱ複雑なルールの証明もつらいってことで多分みんな欲しかったやつ」 / Twitter
- κeenさんはTwitterを使っています 「思ったより理論寄りだった。reductionを保存しない変換でsemantic preservationを証明するときとかに使えるフレームワークらしい。で、例題としてCPSの正当性を証明してる。 Compiling with Continuations, Correctly (SPLASH 2021 - OOPSLA) - SPLASH 2021 https://t.co/UQL5IV9wEi」 / Twitter
- Compiling with Continuations, Correctly (SPLASH 2021 - OOPSLA) - SPLASH 2021
限定継続・CPS・EPS・停止性
浅井研
- sakaue09.pdf
- masuko09.pdf
- kitani09.pdf
- kitani10.pdf
- ppl10.dvi
- tsushima10.pdf
- ueda10.pdf
- masuko13.pdf
- kaneko13.pdf
- sou14.pdf
- ueda15.pdf
- sou15.pdf
- sou17.pdf
- ishio18.pdf
- CPS 変換の正当性の Agda による証明
- sou18.pdf
- sou19.pdf
- uehara17.pdf
- ishio19.pdf
- hirota13.pdf
- 限定継続処理の抽象機械導出のためのプログラム変換
- 情報学広場:情報処理学会電子図書館
- 限定継続命令をもつ依存型付き言語の設計
- sou18.pdf
- typedlmd.pdf
- 研究会 - 継続渡しスタイルの関数型プログラミング言語における分散処理の記述
- CB-002.pdf
- Implicitly-Typed Deadlock-Free Process Calculus
- 技術者/プログラマのためのラムダ計算、論理、圏 第3回に行ってきた
- 第14回 型=命題,プログラム=証明 | 日経 xTECH(クロステック)
- 構造化プログラミングと データ抽象
- _pdf
- d.y.d.
- Asai Laboratory, Ochanomizu University
- shift/reset と control/prompt の違い - まめめも
限定継続
- 限定継続 | κeenのHappy Hacκing Blog
- examples/README.md at master · krdlab/examples
- 限定継続でモナドを後付けする - Qiita
- sweet.jsでshift/reset: 限定継続を使ってコールバック地獄から抜け出す - 標高+1m
- SMLで継続を使ってprintf/scanf | κeenのHappy Hacκing Blog
- 36_2_47.pdf
型付きラムダ計算・CPS
- 型付きラムダ計算 CPS - Google 検索
- sou17.pdf
- sou19.pdf
- B-021.pdf
- ppl5-3.pdf
- KAKEN — 研究課題をさがす | λμ計算の表示的意味論に関する研究 (KAKENHI-PROJECT-14540119)
- 1569jabstract.pdf
- jssst2000.pdf
- ラムダ計算 - herp-technote
- ppl2005.pdf
- _pdf
- MSJ20120328Fujita.dvi
- 0992-24.pdf
- saika_21_3-nakazawa-takuji.pdf
- PPL 2019カテゴリ1,2,4採択論文・発表リスト
- Suzuki.pdf
- マイポータル - researchmap
- プログラミング言語理論・設計|法政大学シラバス
- 「計算論」を(中途半端に)読んだ
- d.y.d.
- 継続とかの話題サーベイ | κeenのHappy Hacκing Blog
- 「ソフトウェア基礎論」講義計画 佐藤、亀山 - Programming Logic Group
CPS・再帰
- 【関数型言語】CPS(継続渡し)と末尾再帰最適化 - kzono's diary
- 継続渡しスタイル - Wikipedia
- 再帰関数のスタックオーバーフローを倒す話 その1 - ぐるぐる~
- 6-3. Continuation Passing Style
- ppl8-2.pdf
- なんでも継続
- evaluatorの再帰実装→CPS化→Continuationのde-functionalize→ループ化 - ラシウラ
- Javaでフィボナッチ数を求める関数を末尾再帰最適化する
- Asai Laboratory, Ochanomizu University
CPS・並列
- Continuation Passing Style 並列処理 - Google 検索
- コールバック不要:Javascript に逐次プログラミングを取り戻す StratifiedJS
- Javaの非同期処理を,シングルスレッドのようにシンプルにコーディングするための設計パターン (並列処理を逐次処理にする) - 主に言語とシステム開発に関して
- 継続渡しスタイル - Wikipedia
- CPS - mrsekut-p
- 非同期と継続と私 - 技術日記@kiwanami
- JSDeferred Sample
- JSDeferred -> Promise 置き換え方法 | tech - 氾濫原
- JSDeferredで,面倒な非同期処理とサヨナラ:特集|gihyo.jp … 技術評論社
- 言語によってちょっと違うFuture/Promiseをまとめてみた(2) - Qiita
- Scheme 入門 16. 継続
- 並行プログラミングと継続モナド
- CB-002.pdf
- B-021.pdf
- cps.pdf
- 6J-05.pdf
- ppl8-2.pdf
CPS
- 継続渡しスタイル - Wikipedia
- 継続渡し形式(CPS)
- PHP で継続渡し - Sarabande.jp
- データ型のCPS変換について - Just $ A sandbox
- CPS というプログラミングスタイルの導入の話 - ゆずとみかんといちご
- お気楽 Scheme プログラミング入門
- なんでも継続
- cps.pdf
- CPS.pdf
- 時の羅針盤@blog: CPS変換
- 情報科学実験II資料 (4) CPS変換のアルゴリズム
- CPS変換と二重否定のカリーハワード対応の話 - Togetterまとめ
- Haskell で継続渡しスタイル (CPS) | すぐに忘れる脳みそのためのメモ
- 非同期処理の「その後」の話。goto、継続、限定継続、CPS、そしてコールバック地獄。 | κeenのHappy Hacκing Blog
- CPS変換 カテゴリーの記事一覧 - にわとり小屋でのプログラミング ブログ
- トランポリン化でStackOverflowの回避 - Qiita
- BiwaSchemeのためにCPS(継続渡し形式)でマージソートを実装した話 - 近&況
- chikoskiさんのツイート: "https://t.co/J93pxgLT47 「CPSとはコールバックのファンシーな呼び名だ」"
- RustでCPS変換が簡単になったよという話 | κeenのHappy Hacκing Blog
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「並行 amb を実装した.amb に出会うと引数の分だけ VM が分裂して並行に実行する(かっこいい).(amb) に出会った VM は消滅する(かっこいい).これだと CPS 変換は必要ない(以前作ったものは CPS 変換してスレッド化した). https://t.co/jRsberSc3z」 / Twitter
- hatsugai/Finesse: Tiny Scheme implementation
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「最近 LISP 成分が不足ぎみだったので作った.例はいつもの N-Queens.VM の足並みがそろうのですべての解が出る(たまたま).まー実質コンパイラが CPS 変換相当のことをしているじゃないかという話もなくもない…」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「スレッドをサポートし call/cc で取得した継続を別スレッドからも起動できるようにして(ここポイント高い),並行 amb をマクロ,call/cc,スレッドで実装する形にした.よりかっこよく整理された(amb 専用命令は廃止).apply や call/cc はトランポリンで対応できるけど thread-exit はいまいち.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「amb を手続きにすれば apply できてうれしこともあるけど,別に並列オペレータがなくて簡便に並列化したい場合はこの方がいいかな.そもそも目的はなんだって話だけど.書いてたら並列オペレータ作ればいっかという気持ちになってきた…」 / Twitter
- ジェネレーターを簡易的にCPS変換してみた - Qiita
- kontlang-shift-reset-lisp - Speaker Deck
- zehnpaard/kontlang: Language with Clojure-like syntax and semantics based on EoPL + Shift/Reset
- 継続モナドについて - Qiita
- CPS変換はじめてみた - Arantium Maestum
Algebraic Effects
- ワンショット代数的効果から 非対称コルーチンへの変換 - pro2019-01-slide.pdf
- コルーチンを用いた代数的効果の新しい実装方法の提案 - master_thesis.pdf
- 28_1_217.pdf
- 2021-03B-furudono.pdf
- Algebraic Effects 自習用資料まとめ. Web記事、論文、発表資料、コード、言語など | by Yuki Kodama | Medium
- 我々向けの Algebraic Effects 入門 — Overreacted
- 効果的効果 - ソフトウェアコンポーネント間の双方向通信の統合
- HERP TechHub - びしょ〜じょ
- Algebraic Effectsであそぼう / lilyum ensemble
- Yosuke FURUKAWAさんのツイート: "Facebook の人は3年くらい前からどうやって Algebraic EffectをJSで書くか検討してたみたいなんだよなー / “one-shot-delimited-continuations-with-effect-ha…” https://t.co/RKWE8n20CL"
- One-shot Delimited Continuations with Effect Handlers
CbC
- Kono's paper list
- 継続を基本とした言語CbCのgcc上の実装
- Continuation based Cを試す - Qiita
- Shinji KonoさんはTwitterを使っています 「CbCは巨大なswitch文として実装する方法もあり得るので、当時やるならそれだったかもな。ただ、今でもプログラミングには苦労してるので…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「先祖返りなんだよな。今までの方法論が使えないっていうか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Susman はHewittのActorを見て「Lispじゃん」で片付けたらしい。もっとも、その時に並列処理のいろいろがどうなるのかはよくわかってなくて…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「まあでも、Smalltalkの実装を見てる時にもLispじゃんと思ったので、そんなもん。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「CbCは a → ( b → t ) → t の形のみでプログラミングする言語だとも言える。これはCurry Howard対応的には否定に相当するような構造らしい。Actorの並列化で欲しかったのはそれってこと。自動的に並列処理を抜き出すみたいなのとは相性はよろしくない。まったく優しくない。」 / Twitter
- Monad と OS
- Shinji KonoさんはTwitterを使っています 「@wtakuo @miura1729 Apertosには入れなかったんじゃないかなぁ。なのでApertosのドキュメントはないかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Muse/ApertosをやるはずでソニーCSLにいたのだが、まぁ、あんまり手伝えず。T先生が「CS界で相対性理論に相当するようなものを発表したい」というので考え出したのがCFMだった。そういうの嫌いじゃないし、そういうのを期待されていたのだろうし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「その時には今のCbCの基本はあったのでメタ計算的な感じで計算場みたいなものがあるのだろうなという感じ。その頃はまだクラウドはなかったのだが… 90年でしょ? ノートPCクラスタみたいなの作ってた人もいたし、それほどはずれではなかったのだが… まぁ、残念な方向に。」 / Twitter
StackThreads
- Fine-grain multithreading with minimal compiler support—a cost effective approach to implementing efficient multithreading languages | Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
- PowerPoint Presentation - DNaward.talk.jp.final.pdf
- StackThreads
- Top
- spaghetti stack - Google 検索
- ppl5-1.pdf
Wikipedia
- 継続 - Wikipedia
- クロージャ - Wikipedia
- アクターモデル - Wikipedia
- 無名関数 - Wikipedia
Twitter
- Shiro KawaiさんはTwitterを使っています: 「@hatsugai GaucheはSchemeスタックがCスタックと別管理なので、「CからSchemeを呼び出している」箇所に戻らない限りは別スレッドでの継続起動は可能です。ネイティブスタックを共用する実装だと厳しそうですね。」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「Chez scheme 9.5.2 で,call/cc で取得した継続を fork-thread で 起動したスレッドから呼び出したらなにやらおかしくなった.最近どこかで実装についての解説を見かけたが,スレッドをまたぐのは難しそうな作りだと思ったっけ.他の処理系はどうなんだろ.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「Gauche で call/cc とスレッドを使った並列 amb を作ってみた.今回は手続きとして実装したので apply が使える. https://t.co/D1leRJfUxY」 / Twitter
- parallel-amb-callcc.scm
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「手続きということは eager 評価になるので,以下のような書き方はできない. (define (req p) (if (not p) (amb))) (define (an-element-of items) (req (not (null? items))) (amb (car items) (an-element-of (cdr items))))」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「@anohana ありがとうございます.やってみました. https://t.co/q8Qmip3JUA」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「https://t.co/wkfp0gEcK8 懐かしい、修論で作った言語がこんな感じで実装した。当時は、トランポリンを apply like functionって呼んでいた。こうすると、継続が常に取れるので軽いグリーンスレッドを作るのに有利で、これで並列オブジェクト指向言語を実装した。」 / Twitter
- Niyarin's blog
- Toru HisaiさんはTwitterを使っています 「https://t.co/SwdVuy6QDn Scheme で継続を使って非同期の API を同期呼び出しっぽくするラッパーを書いてみた。」 / Twitter
- async.scm
- monochromeさんはTwitterを使っています 「async/await、コルーチン、継続、ジェネレータ、統一的に概念を理解したい」 / Twitter
- Shinji KonoさんはTwitterを使っています 「一階述語論理の方では Skolem化のところで継続を使うと良かった。いろいろ発見があって面白い。」 / Twitter
- https://twitter.com/shinji_kono/status/1308052561576906753
- https://twitter.com/shinji_kono/status/1308052219183247362
- ふ''れいすさんはTwitterを使っています 「akkaというかactor modelはつまるところ継続だな、となったので取っつきやすかった。そういうたぐいの解説を読んだ記憶がないんだけど、みんなactor modelはどう理解しているんだろう。ステートマシン?」 / Twitter
- ふ''れいすさんはTwitterを使っています 「CSPというかgoroutine/channelはアレは結局よくわからん。いくつかイディオムちっくなものを覚えれば応用もできるようになるんだけど、actor modelのように腑に落ちる何かではないんだよなぁ」 / Twitter
- めざそう言語処理系の沼 カテゴリーの記事一覧 - Arantium Maestum
- 第2回 「単一代入」と「末尾再帰」 | 日経クロステック(xTECH)
- chap11.pdf
- chap12.pdf
- D_Ugawa_Tomoharu.pdf
- 25_1_167.pdf
- SLACS98 program
- athos))))))))さんはTwitterを使っています 「継続渡しスタイル、理解するのに結構苦労した覚えがあるけど、CPS版mapとかCPSで二分木をトラバースする(なんでも継続に解説がある)あたりのコードがそらで書けるようになると悟りが開ける認識。モナドでいうStateモナド的な位置付けのイメージ。」 / Twitter
- Swift async/await を支えるモナド、継続、コルーチン / iOSDC Japan 2021 - Speaker Deck
並列・並行
awk 的な言語で並列処理
- κeenさんはTwitterを使っています 「Rust製のAWK(っぽい言語)の実装。型推論してJITしたり並列化したりSIMDで高速化頑張ってたりするらしい ezrosent/frawk: an efficient awk-like language https://t.co/LbWgvlTsOj」 / Twitter
- ezrosent/frawk: an efficient awk-like language
- Miura HidekiさんはTwitterを使っています 「Rustでどうやってパーサー書くんだろう?(Cみたいにgetchar/ugetcがないっぽい)って悩んでいたけど、分かった。ありがたい https://t.co/vKPnrNLB8L」 / Twitter
- frawk/src at master · ezrosent/frawk
- Miura HidekiさんはTwitterを使っています 「結局、プログラム全体をがばっと文字列で読みこんでおいて、部分文字列を見ていけばいいだけか。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/fK45utrZZe awkで並列処理って意味あるのかな?って思ったけど意味大ありだな。賢い」 / Twitter
- frawk/parallelism.md at master · ezrosent/frawk
- Shiro KawaiさんはTwitterを使っています 「@miura1729 こういう粒度での並列処理あんまり考えたことなかったな。なるほど…」 / Twitter
非同期など
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C#の非同期プログラミングにおける「やっていいこと・いけないこと」一覧: https://t.co/2akbhgZ2QI」 / Twitter
- AspNetCoreDiagnosticScenarios/AsyncGuidance.md at master · davidfowl/AspNetCoreDiagnosticScenarios
- chikoskiさんのツイート: "そうか。パターンマッチが、メソッドの代わりになるのか。"
- κeenさんのツイート: "「エラー処理もエラートークンとして表われる」 #compiler_study"
- INADA Naokiさんのツイート: "monoでasync/await多用したコードのプロファイル結果を見てるんだけど、やっぱりスタックトレースが ThreadPool や Task を起点とする短いものが大量にあって、アプリケーション視点のスタックトレースが見えにくくなってるので、 Go の方が分かりやすいなぁ。"
- INADA Naokiさんのツイート: "見た目上は async / await でスッキリ書けると言っても、実際には細切れに分割された無名の関数がスレッドプールでコールバックされまくってるだけなので、デバッグしたりプロファイルしたりするときはコード上のわかりやすさが消える。 https://t.co/D0sy2dFOMV"
- .NET/.NET Coreのスタックトレースを洗練
- 渋川よしきさんのツイート: "Go言語がシンプルに書けるのは、同期APIを非同期に扱ったり、ブロッキングをノンブロッキングにしたり、入力側と出力側のプロトコル変換が容易で、インピーダンスを合わせるのが超絶楽、というのがコアにある気がすごいしてる。"
- なかのん&マジックさんのツイート: "ブラウザのエンジンの非同期化の何が難しいかって、入力との同期何だよな。例えば、APZは、wheelイベントのリスナがカーソルの下にある時は非同期描画を行わない。preventDefault()でキャンセルされるかもしれないから。 #もずでぶ"
- chikoskiさんのツイート: "SPAの人たちって、リンクやURLについてどう思ってらっしゃるんだろう。とサイトをみていて思う。アプリ育ちの人たちにとっては、別タブで開くってありえない(もしくは、させたくない)操作なのかしら。"
- chikoskiさんのツイート: "状態とリソースの区別が難しいとは思う。ゲームの途中状態みたいなものへはリンクできる必要はないと思う。Twitterのタイムラインのように、DBのエントリーを一覧表示し、操作で各エントリの詳細を表示する場合は、それぞれのエントリに対してリンクできるべきだと思う。前者は状態、後者はリソース。"
- chikoskiさんのツイート: "node.jsの非同期処理について厳密な定義が読みたい人は、こちらをどうぞ https://t.co/lSL4m75rg6 #wejs"
- Semantics of Asynchronous JavaScriptTechnical report, 2017-07-26
- なかのん&マジックさんのツイート: "がんばって誰が問題のイベントの複製をやっているのか突き止めたかったけど、スタックトレースからは分からなかった。イベントキューに放り込まれてて、そのキューからの取り出し以降しか見えないから。"
- κeenさんはTwitterを使っています 「面白かった。Actorモデルは表現力が足りないという仮説の下mutationなどを入れたモデルを開発。メッセージパッシングにsesstion type、mutationにseparation logicを使ってる。結果、actorにrefを渡してmutateするプログラムのreasoningができる。実装はIris。 https://t.co/Ul29XkcJj2」 / Twitter
- κeenさんはTwitterを使っています 「ところで並行プログラムのモデル、おおまかにメッセージパッシングとメモリ共有の2種類があって、reasoningのしやすさからここのところはメッセージパッシングが優勢だったという認識なんだけど今回のモデルみたいにメッセージパッシングに部分的にメモリ共有を混ぜたやつはどこまで戦えるんだろう。」 / Twitter
- RyuseiさんはTwitterを使っています 「async/awaitは、「Promise を使った非同期処理を平易に記述するための糖衣構文」ではなく、「古典的な制御構造を非同期処理に埋め込むための構文」と捉えるべきではないかと思います。」 / Twitter
- RyuseiさんはTwitterを使っています 「async/awaitと言うから、こいつらが重要に思えてしまうけど、本当に重要なのは、async関数に埋め込まれたlet文だとかwhile文だとかfor文とかtry/catch文の方です。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「確かに、この間訳あって脱糖しようとしたらやっぱforの翻訳がめんどくさかった... >RT」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Pythonのasync/awaitで、簡単にスレッドで実行できて感心した。スレッドだと速度は速くならないけれど、ブロッキングするコードも書ける。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Rustのasync/awaitも使ってみないと。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「async/awaitでブロッキングしないように頑張るなら、Erlangで良いんじゃ無いのかって気もするが。」 / Twitter
- Future と Promise | Scala Documentation
- ES2020 確定した機能セット
- ytakanoさんはTwitterを使っています 「GoroutineはCSPやπ計算の流れをくむ並行プロセスで、コルーチンは中断再開可能な関数なので、出生を考えると別物に思う。 なお、コルーチンは並行プログラミング入門の5.2章で、π計算は8.4章で扱ってます!(ダイレクトマーケティング)」 / Twitter
- ytakanoさんはTwitterを使っています 「Coroutineは中断再開がキモだと思っていて、その機能を使ってスタックを持たせてスケジューリングするとGoroutineにはなる。ただ、それはもう一段抽象度の上がった別物にも思う。「人間=水+タンパク質」なのか問題。全体は部分の総和なのか。」 / Twitter
- ytakanoさんはTwitterを使っています 「立場によって違うし、定義によっても違う。」 / Twitter
- yoh2さんはTwitterを使っています 「goroutine って coroutine と似て非なるものだからあえて別名付けてるんじゃなかったっけ? (うろ覚え) 実際別スレッドで動くこともあるはずだし。」 / Twitter
- mattnさんはTwitterを使っています 「@kotatsu_mi @yoh2_sdj 基本は1つのOSスレッド内でコルーチンとして動作しますが、ブロッキングするシステムコールを呼び出す時などは netpoller という機能を使って別のOSスレッド上で動き続けます。なので「俺はスレッドID N で動いていたはずなのに何時の間にか M になってた」みたいな事が起きます。」 / Twitter
- ytakanoさんはTwitterを使っています 「Futureの実現にコルーチンが必要な都合上、RustのFutureトレイトにはコルーチンと同等なインターフェースが定義されている都合上、難しいですね。pollがコルーチンの低レベルインターフェースで、async/awaitで利用するとFutureと抽象化される認識です。」 / Twitter
- legokichiさんはTwitterを使っています 「並行プログラミング入門、Futureのことをコルーチンと読んでる箇所があってもにょる」 / Twitter
- ytakanoさんはTwitterを使っています 「これも難しくて、コルーチンを使って抽象化したモノ(Futureなど)は同じくコルーチンと呼ぶべきなのかという問題だと認識しています。全体は部分の総和なのか。主義主張によると思いますが、自分は別物かなと。」 / Twitter
- legokichiさんはTwitterを使っています 「Rustにコルーチンはない、ことはなくてasync blockはコルーチン以外の何物でもない気がするがこの辺の解説大変そう(こなみ」 / Twitter
- PHPで書いて覚える非同期処理 / php-async-programming - Speaker Deck
- JavaScriptの非同期処理をじっくり理解する (1) 実行モデルとタスクキュー
- JavaScriptの非同期処理をじっくり理解する (2) Promise
依存関係グラフ
LMNtal
- CSLMNtal (仮) チュートリアル
- Research Areas of UEDA Lab.
- LMNtal - LMNtal PukiWiki
- jssst2002-dklic.pdf
- _pdf
PDF
- 26_3_109.pdf
- t-kanemt_sigss.pdf - t-kanemt_sigss2.pdf
- __ォ__e_杏M_本 - A_4.PDF
- 1093-40.pdf
- doctoral.dvi - doctoral.pdf
- Ito.pdf
- description_ja.pdf
- SE-171-11.pdf
- 223208578.pdf
- Makefile でファイルの依存関係をグラフ化する - Qiita
- データフローと依存関係グラフの並列化
- プログラム依存グラフを利用した 情報漏洩解析手法の提案と実現 - ppt download
- CiNii 論文 - プログラム依存グラフ可視化ツールの開発
- プログラム依存グラフを用いたリファクタリング候補の特定と可視化 : 2010-12|書誌詳細|国立国会図書館サーチ
- 佐々木 晃 (Akira Sasaki) - プログラム依存グラフを用いた機能性によるソースコードの分類 - 講演・口頭発表等 - researchmap
- PDG (プログラム依存グラフ) : R-Study
- 依存関係グラフ
- 依存関係フローグラフの例
- Understand 5の新機能・改善点 | テクマトリックス株式会社
- 依存関係 | Understand
- Understand Blog: グラフィカルビュー - 依存関係グラフ
- 依存グラフの解決を行うオブジェクトが必要な理由 #CodePiece
- クラスの依存関係グラフ 4 - 超ウィザード級ハッカーのたのしみ
- algorithm - トポロジカルソートの依存グラフのエッジ方向? - 初心者向けチュートリアル
- SQLスクリプト上でのテーブルや共通テーブル式の依存関係を可視化する|Dentsu Digital Tech Blog|note
- Pythonコードの依存グラフ生成 - Zaike Yuki Blog
- pythonの依存関係解析ツール、pydepsを使う - Techブログ - MNTSQ, Ltd.
- phpを使って簡単な依存グラフを可視化する方法は?
await 境界を超えて値を保持できないようにする警告
- Takashi KawasakiさんはTwitterを使っています 「これは他の言語にも欲しい。」 / Twitter
- ドッグさんはTwitterを使っています 「await 境界を超えて値を保持できないようにする警告 #[must_not_suspend] 属性が rustc に実装されてる.例えば mutex など await 超えて長期間保持し続けるのが適切でない値の型に使う RFC: https://t.co/UDPLPL9Qld 実装: https://t.co/lBcFnQ0NHX」 / Twitter
- rfcs/3014-must-not-suspend-lint.md at master · rust-lang/rfcs
- Implement `#[must_not_suspend]` by guswynn · Pull Request #88865 · rust-lang/rust
- ドッグさんはTwitterを使っています 「s/mutex/mutex のロック/」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「というか、静的解析でも比較的簡単に実装できそうだよな。」 / Twitter
Twitter
- 分散処理に詳しいオタクさんはTwitterを使っています 「"平行性"って英語だと"parallelism"なんだけど、"parallelism"を(計算機の文脈で)和訳すると"並列性"になるのどっかでバグってると思う。まぁ並行性と平行性はそもそも全然別の話なんじゃが。」 / Twitter
- こば(右)- Koba as a DB engineerさんはTwitterを使っています 「@kumagi 並行性をconcurrencyと訳したりもしますね。」 / Twitter
- 分散処理に詳しいオタクさんはTwitterを使っています 「@tzkb ちなみに僕はごっちゃになった時はparallelという単語は縦線が多いから同じく縦線の多い"列"と紐づけ、concurrentという単語はそれに比べると横線が多いので"行"と紐付けることで、並行・並列とconcurrent・parallelの混乱を解決しています。」 / Twitter
- 分散処理に詳しいオタクさんはTwitterを使っています 「僕の感覚では 並行: 朝ご飯を食べながらニュースを見る、のように複数の作業を手段はどうあれ時系列的にオーバーラップした状態でやること 並列:白米を咀嚼して嚥下しつつ目がニュースの映像を解釈して理解する、のように実際の動作が同時に行われる事。仕事の種類は関係ない https://t.co/7CMRYQGNgl」 / Twitter
- 君たちの「並行」の理解は間違ってる
- 分散処理に詳しいオタクさんはTwitterを使っています 「ご飯時にテレビをつけてさえいれば、ニュース鑑賞と食事を実際は交互にやっていてもそれは並行作業とは呼べる。目的が複数あれば並行。 それの効率化として咀嚼する間に暇な目と脳をニュースに向けるのなら並列作業。目的の数に依らず独立したアクチュエーターが複数あれば並列。」 / Twitter
- 分散処理に詳しいオタクさんはTwitterを使っています 「つまり並行・並列ってのはラベルを付けるレイヤーが違うので、並行かつ並列という状況もありうるし、例えば両手に箸を持つ事により倍のスループットで白米を口に運ぶというのならそれは並列と呼べる。計算処理にDMAをオーバーラップさせるのも複数のアクチュエータを同時に動かすので並列処理。」 / Twitter
- 分散処理に詳しいオタクさんはTwitterを使っています 「普段のCPUもメモリコントローラーとALUが同時に動いとるやんけみたいなクソリプを無限につければ何でも並列処理とは呼べるんだけど、まともな文脈において並列処理ってのは「複数のアクチュエータを同時に駆動させる事による高速化」を縮めて言ってるだけなので高速化とは関係のない文脈では使わない。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「並行に関して言うと concurrent が con-current じゃなくて concur-ent なのは罠だと思う。register 的なアレ」 / Twitter
- KOBA789さんはTwitterを使っています 「これは定義ではないけれど、並列化はそれらのタスクを直列に実行したときよりも完了までの時間が短くなることをしばしば期待するよね」 / Twitter
- KOBA789さんはTwitterを使っています 「下のレイヤーの詳細を知らずに速いソフトウェアを作れるわけなかったわ。大変失礼しました」 / Twitter
- _ko1さんはTwitterを使っています 「@KOBA789 下回りの詳細を知らないと速くできないCSの敗北」 / Twitter
- KOBA789さんはTwitterを使っています 「@_ko1 leaky abstraction に勝ちたい」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「concurrentとparallelについては昔@kumagiさんとやらかしたことがあったなあ(ぉぃ 「concurrentとparallelの違い説明会」 https://t.co/M3TT95Lgm2 個別の事例に対しこれは concurrent? これはparallel?って判断すれば意見はほぼ一致すると思うんだけど、一般的に説明しようとなんか紛糾する?」 / Twitter
- concurrentとparallelの違い説明会 - Togetter
- Toshio HirotsuさんはTwitterを使っています 「@hidemotoNakada @_ko1 昔、殆どの環境が (physical に) single thread だった時代には、論理的に同時に走る (incl. time slicing) を並行(Concurrent)、物理的に同時に走るを並列(Parallel)と呼んでいた時代もあったような。」 / Twitter
- _ko1さんはTwitterを使っています 「なお、私の理解: (走らせれば終わる)複数のタスクについて、 並行:待ってればいつか全部終わること(論理的に同時) 並列:並列計算機において、物理的に同時に走ること」 / Twitter
- _ko1さんはTwitterを使っています 「@t_hrt @hidemotoNakada 昔ブックオフで買った情報処理大辞典というのを見てみました。 並列は物理的に同時っぽく書いてありますが、並行処理はあんまり論理的じゃなかったようです。 https://t.co/bc1ukJrWnF」 / Twitter
- yohさんはTwitterを使っています 「並行/並列の"厳格な"定義はハナから無いと考えたほうが気楽なのかもしれず 文脈依存説」 / Twitter
- yohさんはTwitterを使っています 「といいつつ 個人な感覚では タスク記述の論理的な分離性が主眼=並行(concurrent)/タスク処理の物理的な高速化が目的=並列(parallel) 派」 / Twitter
- 画力・博士号さんはTwitterを使っています 「「並行処理に対してユニットテストを走らせる」ということ自体がナンセンスな気もするんよな,こういうところこそbisimulationの証明手法や(higher-order) model checkingが活かせる対象なんじゃないかなと思える」 / Twitter
- 画力・博士号さんはTwitterを使っています 「「活かせる」はここでは特に「産業的にも要請されやすい」の意です」 / Twitter
- Yoshimasa NiwaさんはTwitterを使っています 「雑なテストだけど、Big Sur だと TaskGroup でいっぱい Task つくると作っただけ Thread ができるけど、同じコードを Monterey で実行するとCPUの数(M1なら8個)までしか Thread ができない。Swift concurrency: Behind the scenes のプレゼンで言ってた通りの挙動してる。 https://t.co/VdnOdaoHUv」 / Twitter
- thread.swift
- mod_poppoさんはTwitterを使っています 「production-qualityやproduction-readyが「量産型」と訳されているらしい」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「自作言語処理系でコルーチンを実装してみた。といっても、アセンブラの力を借りてるんですけどね。これを言語組み込みの機能として実装してみたい。 https://t.co/yRTG79i3UD」 / Twitter
- 令掛ベインさんはTwitterを使っています 「並行で動作するステートマシンを渡したらランタイムがスレッドとかを使って並行計算をしてくれる、というプリミティブを用意してる。チャネルの読み書きやタスクの生成などの副作用をランタイム側に隠すため #milone_lang / https://t.co/wLkDPBLFw2」 / Twitter
- milone-lang/FSharpOnly.fs at 4d5f5899ffdeed32dda241af2fd102a5506c4458 · vain0x/milone-lang
- 令掛ベインさんはTwitterを使っています 「並行処理ではコマンドの処理が完了してアクションが生成される順番が非決定的なので、consumerはactionの順番に依存しない必要がある (可換性)。結果をソートとかで標準化して、決定性を取り戻してもいい #milone_lang」 / Twitter
- 令掛ベインさんはTwitterを使っています 「使用側: ソースファイルを並行にパースしてる。パースした結果の構文木に含まれるopen宣言から新たな依存しているモジュールが見つかる、というのがちょっと厄介 / https://t.co/inODypHBZl #milone_lang」 / Twitter
- milone-lang/AstBundle.fs at 4d5f5899ffdeed32dda241af2fd102a5506c4458 · vain0x/milone-lang
- 新しい並列for構文のご提案
- できる!並列・並行プログラミング
- JavaScript のスレッド並列実行環境
- エクサスケール・コンピューティングの鍵を握るLLVM | HPCwire Japan
- 自作Goコンパイラでマルチスレッドが動くようにするまで
- paraphrase_langさんはTwitterを使っています 「Paraphrase の並列処理のベンチマークとして使用しているメルセンヌ素数の探索プログラムでは、2^5000-1 までを確認する。 M1 mac だと数秒で終わるので、2^10000-1 まで計算=22 番目まで計算させてみた。1963 年に発見されたものまでなら 10 秒程度で計算できる (^^b https://t.co/0RABze90a6」 / Twitter
- メルセンヌ数 - Wikipedia
- 近況 2021-09-30 - ベインのブログ
- kawai🍎社会性の高いあおいちゃんさんはTwitterを使っています 「なるほど、ROSの本質は通信だからベースにCSPやアクターモデルの思想があるErlang(Elixir)を利用するっていうのは理にかなっているな #func_party」 / Twitter
- アクターモデルのサポート状況について
- 関数型っぽくROSロボットプログラミング
- rclex/rclex: Rclex: ROS 2 Client Library for Elixir
- Hyman's Code
- Certifying Derivation of State Machines from Coroutines (POPL 2022 - POPL Research Papers) - POPL 2022
defer 遅延評価
C に defer
- mattnさんはTwitterを使っています 「C言語に defer が欲しい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「C言語版のdefer、移植性を無視すれば、return addressと変数の内容をクローズしたクロージャーを作って、スタック上のreturn addressをそのクロージャのアドレスに書き換えることで実装は可能な気がする」 / Twitter
- Miura HidekiさんはTwitterを使っています 「GCCの拡張機能を駆使すれば分からないけど、基本的にC言語そのものでは無理だと思う」 / Twitter
- Miura HidekiさんはTwitterを使っています 「setjmpとかやられると無理か。setjmp半端ないって。あいつスタック無視してジャンプしまくるし。そんなのできひんやん普通!」 / Twitter
- Goメモ-18 (遅延呼び出し, Defer, Tour of Go) - いろいろ備忘録日記
- Go言語のdeferを正しく理解する | How defer in Golang works - Qiita
- 【Go入門】deferによる遅延処理とランタイムパニック
- メタ太郎: "goのdeferはそれ自体は遅延評価だけどdeferで呼ぶ関数の引数は即時評価されるという罠にハマ…" - マストドン丼部
- お気楽 Go 言語プログラミング入門
- Go言語のdefer,panic,recoverについて | エンジニアへの道
- 非同期と継続と私 - 技術日記@kiwanami
- Rubyで遅延評価を実行する方法を現役エンジニアが解説【初心者向け】 | TechAcademyマガジン
- A Tour of Go
- 遅延実行とレイジー評価 - LINQ to XML | Microsoft Docs
- エヌユルさんはTwitterを使っています 「Data.Text.Lazyとか何の役に立つんだと思ってたけどよく考えてみると無限の可能性のあるデータ型をshowしたものを出力するとかには普通に役立つ」 / Twitter
deepEquals
オブジェクトの比較
- Satoshi ImaiさんはTwitterを使っています 「オブジェクトを===で比較できないというツイートを見て、equalで比較できる、そうCommon Lispならね。 と書こうと思ったが、ベクタとかが入るとダメになるから簡単ではなかった https://t.co/XVYhxR3ist」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています 「@masatoi0 equalp では?」 / Twitter
- Satoshi ImaiさんはTwitterを使っています 「@nfunato equalpもありましたね。ほとんど使わないから忘れていました・・・ equalp、文字列の比較がcase-insensitiveだったりと色々余計なこともやってくれますね。 https://t.co/OvLRnHrUTM」 / Twitter
- Nobuhiko FUNATOさんはTwitterを使っています 「@masatoi0 我々は case-insensitive な未来の国から来たのですよ (^^) ちなみに、取引先の士業の方にファイル名が全角/半角insensitive な人がいて「こいつ、進化形やな」と思ったことあります。」 / Twitter
- INA LintaroさんはTwitterを使っています 「JavaScriptのオブジェクトの同値性、再帰的な構造とか作るとぜんぜん自明じゃないんだよなぁ。リンクの構造は違うけどプロパティを辿ったときのパスはどうやっても一致する(観測上は同じに見える)やつを同じとすべき? とか。」 / Twitter
- INA LintaroさんはTwitterを使っています 「なんか昔その辺も含めた同値性判定のメソッドを(趣味で)実装しようとしてこれとかを参考にした記憶がある: https://t.co/oP6Uoc880t」 / Twitter
- [PDF] Deep Equality Revisited | Semantic Scholar
- INA LintaroさんはTwitterを使っています 「補足しとくと、x = { a: { a: x } } と x = { a: x } は同じか、みたいなやつ。(同じでいいとおもうがそれをちゃんと判定できるか。)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「少なくともRubyはそうだが、ある程度複雑な構造のオブジェクトを扱える言語ではパフォーマンスのボトルネックは究極的にはオブジェクトの同値性の判定にある気がする」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Rubyでのオブジェクトの同値のパフォーマンスを上げるのがほんと大変 (現在 Arrat#__cmp_eqのインライン化コードを書いている。バグあり」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ある程度高性能なJITコンパイラを書いてその上で単なるベンチマークじゃないプログラムを動かしてプロファイリングを取ると、大抵 オブジェクトの同値判定かオブジェクトの生成に費やしている気がする (mrubyのJITでmmcを動かしたプロファイリングがそんな感じ」 / Twitter
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「そこで宣言型言語の出番ですよ.」 / Twitter
- mattnさんはTwitterを使っています 「処理系そのものが deepEquals を持ってないのがそもそもイカンのじゃ。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「Schemeのequal?は「循環をunfoldして(無限に続くかも知れない)木として比較した場合に一致すること」という定義ですね。(equal? '#0=(a . #0#) '#1=(a a . #1#)) ⇒ #t https://t.co/ISWkt4vwo1」 / Twitter
- 再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記
- Shiro KawaiさんはTwitterを使っています 「GaucheはAdams&Dybvigのアルゴリズムを使ってます https://t.co/KpFG8qzufu union-findでDFAとしての等価性を見るんですが、真面目にやると遅いので、一定の深さまで素直に再帰してからunion-findを使うように。」 / Twitter
- equal.pdf
- ytakanoさんはTwitterを使っています 「記事中にもあるけれど、「ある2つのプロセスが同じか?」と言う問題はπ計算やらを使って双模倣性と言う概念を定義すると答える事が出来る。 https://t.co/768dx35NdY」 / Twitter
- 再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記
- ytakanoさんはTwitterを使っています 「これやるとあまりに数学っぽくなるので、並行プログラミング入門では削ったトピックのひとつ。」 / Twitter
- ytakanoさんはTwitterを使っています 「プロセスの双模倣性が、循環オブジェクトの同値性判定になるのは面白いですね。」 / Twitter
software rejuvenation(ソフトウェア若化)
タイムトラベル
- Kota Mizushima (on a diet)さんはTwitterを使っています 「今朝も散歩してたのですが、凄まじく暑くて、湯だった頭で「タイムスリップ出来るプログラミング言語とかってどうだろう」とかどうでもいい事考えてました。 頭がおかしくなったわけではなく、1秒ごとにプロセスのスナップショットを取って、後から過去に戻れるようにしておく。で、 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「time_slip(1 hours ago) { debug_print(point.x) // 1時間前のpoint.xが取れる point.x = 20; // 1時間前のpoint.xを20にして、1時間前のスナップショットのスレッドを開始。現在のスレッドは破棄 } みたいなセマンティクスを持った言語は(凄く重いけど)作れそうだなと。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「結果的には、一昔前流行った可逆デバッガを言語に組み込んだぽいものになりそうですけど、時間だけじゃなくて、s1 = snapshot() で言語レベルで特定のスナップショットに戻れるとかすると、デバッグの役に立たないかなあとか。いや、元々は暑さで「タイムスリップ……プログラミング言語……」とか ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「タイムスリップというセマンティクスを持ったプログラミング言語を実装して、親なんとかのパラドックスを実行してみたらどうなるかなとかどうでもいいこと考えてたんですが。 ↓」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「ちなみに、ナイーヴな実装だと、子どもが過去に戻って親をdestroyすると、リンクしてる子のスナップショットが全部連鎖的にdestroyされて、全部メモリ空間から消滅するだけでパラドックスにならないですね。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「今朝考えていた「タイムスリップ」言語、どっちかというと「タイムリープ」言語な気がしてきました。 何度やり直しても、とある条件を満たさないと過去へのタイムリープを繰り返さざるを得ないSF風味を作れそうな。」 / Twitter
- h_sakuraiさんはTwitterを使っています 「変数の値も含めてタイムスリップできるのが Prolog のバックトラックなんだよな。SQL だとトランザクションのロールバックがタイムスリップ出来るものだな。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「高度なリフレクションがあると任意の言語で可能になるんだよな。タイムワープアルゴリズムで検索」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ググってみたけど、タイムワープアルゴリズムってマイナーなんだな、私の書いた日記が上位に来ていた」 / Twitter
- Miura HidekiさんはTwitterを使っています 「タイムワープアルゴリズム、とてもエレガントで実在するほとんどの言語で実装困難なんだけど、私が説明するのはおこがましすぎる」 / Twitter
- Miura HidekiさんはTwitterを使っています 「タイムワープアルゴリズム、面白いのに説明がないのは人類の損失だから賢者による説明が求められる (他力本願(多分元の意味)」 / Twitter
- タイムワープアルゴリズム - miura1729の日記
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「初めてdaemon作った時(1994)、サービス開始直前までセットアップしたらforkして、子供達に実サービスさせ、定期的に子供達をパージ&再生成する構造にしたっけ。 あとAndroidのVMは、ある程度VMセットアップ済みdaemon(zygote)が親となってforkすることで高速化してたような。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「software rejuvenation(ソフトウェア若化)という名前で実際に様々に研究がされている概念の一端でもあります。実は。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「別の host に process live migration してしまって、migration が終わったら元の host machine を再起動する、とかも」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「基本はプロセスの再起動だろうけれど、たとえば CRIU とかで正常時の process check point を逐一作っておいて、問題が起きたらマシン再起動してから問題が起きたプロセス以外は checkpoint から resume、みたいな乱暴な方法でも場合によってはうまくいくかもしれない、みたいなネタも」 / Twitter
- 1974年さんはTwitterを使っています 「メモリリークを解消させるには確かにコンピュータの電源を切ったほうがいいので、すべてのコンピュータの電源を切れば原理上すべてのプログラムが「正常」になる」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu Androidは https://t.co/vbnq7Hb3U8 の件ですね」 / Twitter
- kobaさんはTwitterを使っています 「Zygoteは通常必要になる全てのダイナミックリンクライブラリがあらかじめロードされている。だから新しいJavaのプロセスは最初から必要なダイナミックリンクライブラリがすでにメモリ上にある状態から開始される。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@n_soda @shirouzu zygote についてはその通りですが、software aging/rejuvenation とはほぼ関係ないトピックのような。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@n_soda @shirouzu fork 元になっている zygote プロセスが aging し続けてると仮定した場合その子である Android app も aging している状態を引き継いで開始してしまうのでは?という疑問点だったのであれば、それはそうかもしれませんが」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kotatsu_mi @shirouzu threadベースの並列化に比べ、forkベースの並列化の場合、一つないし一定数のクライアントの処理を終えるとforkしたプロセスは終了し、メモリその他の資源のリークやメモリの断片化の問題を避けられるので、これはまさにagingの話ですね。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@n_soda @shirouzu はい、daemon の最初の話で処理を別プロセスに切り離してたというのが aging 防止になっていたというのはその通りだと思うんですが、zygote の話のほうは(zygote の主眼は命名通りの部分にある高速化だと思うので)aging 防止だとかそういうのに繋げようとする作りではないだろうし関係なさそうかなと」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kotatsu_mi @shirouzu AndroidじゃないJava VMを使ったアプリとかSmalltalkシステムとかだと、VM一つ動かすってのが主流で、ZygoteはそうじゃなくVMが逐一forkして終わるって意味でaging防止寄りという見方もできると思います。 まあZygoteには権限管理のためにプロセス分けたいって意味もあるんですが…」 / Twitter
Thunk
- Hidemoto NakadaさんはTwitterを使っています 「juliaの分散周りのコードを読んでいたら、thunkという変数名をクロージャに対して使っている。普通の辞書にはそれっぽい意味がないので、ぐぐったらこんな記事を見つけた。なんとAlgol 60にまで遡る由緒正しいジャーゴンだったとは。。 https://t.co/J5vk7Vit38」 / Twitter
- S.F. Blog:thunk(サンク)というものについて
- Hidemoto NakadaさんはTwitterを使っています 「SICPにもでてくるらしい。確かに当時もなんだコレ、と思ったような。」 / Twitter
- 寺田 実さんはTwitterを使っています 「@hidemotoNakada Knuth を逆綴りにした、っていうあれですよね。はるか昔の理解では、ややこしい変数(名前呼びとか?)アクセスのために、アクセスの時に呼び出すコードのことだったような記憶が。」 / Twitter
- Hidemoto NakadaさんはTwitterを使っています 「@miterada wikipediaの記事を教えていただきました。かなり多方面でちょっとずつ違う意味で使われているようです。 https://t.co/GDGyCHEuUf Algol発祥なのは多分確かで、そこから派生していったということなのでしょう。。 https://t.co/zKzT0mUXDj」 / Twitter
- Thunk - Wikipedia
- Thunks: a way of compiling procedure statements with some comments on procedure declarations: Communications of the ACM: Vol 4, No 1
クエリ言語
- GraphQL(クエリ言語について) - Qiita
- クエリ言語の紹介 | Elasticsearchリファレンス [5.3] | Elastic
- Logging のクエリ言語 | Google Cloud
- クエリ言語を理解する - Azure Resource Graph | Microsoft Docs
- QUERY - ドキュメント エディタ ヘルプ
- クラスタークエリ言語 - Amazon Elastic Container Service
- Logica | Modern Logic Programming
- BigQuery ドキュメント | Google Cloud
- GoogleがCloud Monitoring用のクエリ言語”Monitoring Query Language”をGAリリース
トランザクション
The Unison language
- るとさんはTwitterを使っています 「関数や型などの定義がcontent-addressingされているプログラミング言語“Unison”。 https://t.co/ITOM1XD4zB コードのASTがGitのようなレポジトリ(codebase)で管理されている。ファイルにコードを書くと型チェックがされて、通るとcodebaseに追加できるようになる。」 / Twitter
- The Unison language
- るとさんはTwitterを使っています 「AST内では関数などはハッシュ値で参照されている。 関数を「更新」するときは新しい定義を追加して、他の関数が新しい定義のハッシュ値の方を使うように再帰的に「更新」する。 このとき更新された関数に関連するテストのみを実行するとかもできる。」 / Twitter
- るとさんはTwitterを使っています 「言語としてはHaskellに似た関数型言語で、algebraic effectsを持つ。FFIはまだ無いけど、IOはある。」 / Twitter
マイクロサービス
- マイクロサービスアーキテクチャを再評価する - 影響、運用面での複雑性、代替案
- モノリスからマイクロサービスへのマイグレーションで学んだ7つの教訓
- ogiwaraさんはTwitterを使っています 「2PLは - 二つのトランザクションの競合についてのみ考えれば、3以上のトランザクションの競合について考えるのと同値 - 任意の述語を制約としておいても大丈夫 だったのに、Snapshot Isolationにした瞬間に一気に - n個のトランザクションのケースについて考慮の必要 - 述語のクラスに依存 になるね」 / Twitter
- ogiwaraさんはTwitterを使っています 「やっぱりどう考えてもここら辺の理論が全然進んでなくて、どうにかしないと議論が進まないとかんじる」 / Twitter
- ogiwaraさんはTwitterを使っています 「データの粒度、読み込み、書き込み、制約として述語のクラス、実装と理論との乖離…無限に考えることが多いですね」 / Twitter
- ogiwaraさんはTwitterを使っています 「「計算」の次の段階の議論がまだまだ未開拓すぎる」 / Twitter
- ogiwaraさんはTwitterを使っています 「並行処理に対する人間の直感があまりにも脆いから、やっぱ証明でガッチガチに固める必要があると確信できる」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@designpatterngf そのあたりの概観を掴むのに良い教科書があります。あとで共有しますね。」 / Twitter
- ogiwaraさんはTwitterを使っています 「@zacky1972 とても有難いです!」 / Twitter
- κeenさんはTwitterを使っています 「案外property based testing(多分Rustのproptestライブラリ)なんかも入ってて適材適所って感じ。 Using lightweight formal methods to validate a key-value storage node in Amazon S3 - Amazon Science https://t.co/FifgTacu40」 / Twitter
- Using lightweight formal methods to validate a key-value storage node in Amazon S3 - Amazon Science
イベント
その他
- Mongo DBとS式検索 - Speaker Deck
- Oracle Blogs 日本語のまとめ: [SOA/BPM] EDNを流れるメッセージを確認する
- Oracle Blogs 日本語のまとめ: [SOA/BPM] Event Delivery Network (EDN) - A practical example
- 簡単なリアクティブシーケンス - Faith and Brave - C++で遊ぼう
- リアクティブシーケンスのフィルタ - Faith and Brave - C++で遊ぼう
- 2020年8月5日 Linux 5.8がリリース,コーディングスタイルに"inclusive terminology"適用:Linux Daily Topics|gihyo.jp … 技術評論社
- マイクロソフトが買収した「ThreadX」あらため「Azure RTOS」はまだ実体がない (1/3) - MONOist(モノイスト)
- CNCFが策定するクラウドイベントの標準仕様「CloudEvents 1.0」が登場。サーバレスのクラウド間互換を促進するか? - Publickey
- AxonDB - イベントストアの新たな実装
- data Artisansがストリームデータ上の直列化可能なACIDトランザクション機能を発表
- イベントストリームKafkaとワークフローエンジンZeebe
- Badooのデータエンジニアリング:1日あたり200億のイベントを処理
- 高可用性ワークフローエンジンZeebeが実運用対応に
- ワークフローにイベント駆動型の自動化を提供するPuppet Relay
- tagomorisさんはTwitterを使っています 「“遅れたログを永久に受け入れていると、ロードシステムの負荷が非常に大きい” これなー、弊社のログマージジョブも大変……(どんな過去のデータも捨てられない / “データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020 - クッ…” https://t.co/FvzF34MhGT」 / Twitter
- データ基盤チーム0人で運用は回るのか?! 前人未踏チャレンジ・クックパッドデータ基盤のすべて2020 - クックパッド開発者ブログ
- mumumuさんはTwitterを使っています 「Exploring the Performance of ROS2 ROS2のアーキテクチャを簡潔にまとめており,Pub/Sub通信を提供するミドルウェアの気持ちがわかった.さらに,ノード間通信の性能や,ボトルネックを調査していて非常に役立つ. 面白いな~と思って読み進めていたら共著者に来年~の指導教員いて笑ってしまった.」 / Twitter
- LinkedIn、システムの複雑性低減のためにLambdaアーキテクチャを廃止
- Event Driven Architecture
- 開発生産性と信頼性の両立を目指すための Event-Driven Architecture - より良いマイクロサービスアーキテクチャを求めて | Wantedly Engineer Blog
- 分散アプリケーションランタイム (Dapr) v1.0 が発表された
- BBCの分析プラットフォームの失敗に備えた設計
- OpenTelemetry仕様が1.0に到達、安定性の保証と新たなリリース候補を提供
- OpenTelemetryがメトリック仕様のロードマップを発表
- Grafanaで、マネージドな可観測性スタックにエンタープライズログを加わる
- Linux FoundationがAsyncAPIのホストを発表
- AmazonがS3 Object Lambdaを発表
- GitHub用にブラウザで長大なログを表示する
- HoneycombがRefineryを発表:トレース対応のサンプリングプロキシ
- Microsoftは、Azure Web PubSubと呼ばれるリアルタイムWebアプリケーションを構築するためのプレビューサービスを発表
- eBayは非同期API契約としてAsyncAPIを採用
- OpenTelemetryがPythonおよびSwift Tracing API/SDKを1.0に移行
- Amazon SNS、Amazon Kinesis Data Firehose経由でのメッセージのアーカイブと分析が可能に
- MicrosoftがEvent Hubs Premiumのプレビューを発表
- Mobx リアクティブ状態管理ライブラリバージョン 6がリリースされた
- Svelteを使ったアニメーション、レスポンシブ、リアクティブなデータ視覚化
- Dropboxがどのようにして大規模な分散非同期タスクフレームワークを構築したか
- マイクロサービスとメッセージングのなぜ [疑問編] - 赤帽エンジニアブログ
- κeenさんはTwitterを使っています 「Rust+PostgreSQLでジョブキューを作る記事。DBの扱いの例としても丁度いいのでは。 How to build a job queue with Rust and PostgreSQL - Sylvain Kerkour https://t.co/zGHUUIVoAr」 / Twitter
- How to build a job queue with Rust and PostgreSQL - Sylvain Kerkour
- Asserting JDK Flight Recorder Events with JfrUnit
- MicroStream 5.0がオープンソースになった
CQRS
- DDDで設計するならCQRSの利用を検討すべき - Qiita
- CORSまとめ - Qiita
- Cutting Edge - CQRS とイベント: 強力なコンビ
- Cutting Edge - 一般的なアプリケーション向けの CQRS
- CQRS + ESについてのまとめ - Output!!
- CQRSとイベントソーシングの使用法、または「CRUDに何か問題でも?」 | プログラミング | POSTD
- CQRSとイベントソーシングでシステムを構築する
- ドメインストーリテリングを使ってコンテキスト境界を見つけ出す
- Living Documentation by design, with Domain-Driven Designを読んだ | Web Scratch
- #teppeis_sushi でクライアントサイドDDDについて発表した | Web Scratch
- CQRSとイベントソーシングのフレームワークであるAxonの基本概念と今後について
- リトライと冪等性のデザインパターン - Blog by Sadayuki Furuhashi
- 続・リトライと冪等性のデザインパターン - リトライはいつ成功するか - Blog by Sadayuki Furuhashi
- 続々・リトライと冪等性のデザインパターン - あらゆる操作を冪等にする方法 - Blog by Sadayuki Furuhashi
- 松岡@DDDブログ書いてますさんはTwitterを使っています 「#peingddd CQRSのよくある誤解で、導入したら参照系と更新系それぞれのモデルしか使ってはいけないというのがあります。(続) #Peing #質問箱 https://t.co/B2NSJ5ZhbW」 / Twitter
- 松岡@DDDブログ書いてますさんはTwitterを使っています 「しかし、そんなことはありません。 こちらの記事に書いたのですが、CQRSは「必要な部分だけ導入する」でOKです。 https://t.co/qHdB1EvQyy 今回のご質問だと、いくつかのテーブルを参照したような複雑なクエリ部分だけ、そこに特化したクエリモデルを使用して検索するぐらいで良いと思います。」 / Twitter
- CQRS実践入門 [ドメイン駆動設計] - little hands' lab
- 松岡@DDDブログ書いてますさんはTwitterを使っています 「ただ、そのあとに更新処理を行う時には、リポジトリから取得したドメインオブジェクトを通じて行う方が良いでしょう。」 / Twitter
- 松岡@DDDブログ書いてますさんはTwitterを使っています 「なぜなら、重要なドメイン知識(ルール/制約)をドメインオブジェクトで表現し、そのコードを見ればドメイン知識が理解できることを目指したいのに、その他の部分に知識が分散してしまうとそれが見落とされてしまうことにあるからです。」 / Twitter
- Manabu UenoさんはTwitterを使っています 「重要なのは、ユーザーに「オブジェクトを直接操作している」というイリュージョンを与えることである。 記事の例でいえば、Deactivate のタスクを切り出すこと以前に、Deactivate という動詞がユーザーの行為の中で十分な意味性を持つか、ということをまず考える必要があるだろう。」 / Twitter
- タスクベースUIとCQRS - Qiita
- Manabu UenoさんはTwitterを使っています 「OOUI 本の記述をひとつのきっかけに骨太な議題が掘り起こされている。意味性を排除したデータ操作のUIは滑稽だが、Windows の端々に現れる使役的な「リンク」がオブジェクトをタスクの後ろに隠しがちなのも事実。単純な構文論に回収されないデザインの暗黙知がありそうだ。 https://t.co/SPMk6SMaSi」 / Twitter
- かとじゅんさんはTwitterを使っています 「CQRSはCとQを分離することなので、QからCに依存したら便利だとしても、そもそも分離にならないので、CQRSには該当しなくなると思います。これをCQRSと言ってしまうと論理的に矛盾すると思います。つまり、非CQRSとか、CQRSっぽいもの。たとえばこんな感じhttps://t.co/AcNDU2QITg」 / Twitter
- ざっくりCQRS/Event Sourcingを解説する - Speaker Deck
- 松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「最近僕は軽量CQRSとかクエリモデルの導入という表現をするようにしてたりします。前のCQRS解説記事も更新したいのですが…本を書き終えたら…orz」 / Twitter
- オープンソースのCNCF CloudEvents仕様、バージョン1.0のマイルストンに到達
- DDD、イベントストーミング、アクターモデルを使用したリアクティブシステムの設計
- RSpcket - SpringOneで発表された、リアクティブアプリケーションのための新たなアプリケーションネットワークプロトコル
- JavaScripr言語にリアクティビティを実現するフロントエンドフレームワークSvelte 3 - 作者のRich Harris氏に聞く
- イベントアーキテクチャとイベントストリーミング
- イベントソースシステムにおけるイベントのバージョン管理
- イベントはいかに現代のシステムを変えたか - Jonas Boner氏の講演より
- イベントは開発者の第一級ツールであるべきだ
- イベントは分散システムの将来を変えるか - Jonas Bonér氏のQCon Londonでの講演より
- イベントファースト思想はなぜ重要か
- イベント駆動システムに対する批判的見解 - Bernd Rücker氏のQCon Londonでの講演より
- イベント駆動からイベントソーシングへの移行 - MicroCPHのFangel, Ingerslev両氏の講演より
- イベントソーシングシステム開発時の間違いとリカバリ
- イベントソースシステムにおける過去と未来のイベント
- AWSがEventbridgeサービスにイベントリプレイとアーカイブ機能を導入
- AWSはAmazon MQがRabbitMQをサポートすると発表
- Amazon EventBridge Schema RegistryがAWSで一般向けに提供開始される
- GoogleがEventarcをプレビュー版で発表
- O'Reilly Software Architecture Conference NYで発表されたイベント駆動型マイクロサービス
- QCon London: 非同期イベントアーキテクチャにおけるアクタ導入の可否
- Kotlinの新しい非同期処理 - QCon SFでのRoman Elizarov氏の講演より
- C# 8の非同期ストリーム
- IAsyncDisposableとIAsyncEnumeratorの更新
- マイクロサービスからワークフローへの移行
- フレームワークは善か悪か,その両方か?
- アーキテクチャと設計 InfoQトレンドレポート - 2019年1月
- 「AsyncAPI Initiative」がLinux Foundationに参画、イベントドリブンなAPIの記述標準化を目指す - Publickey
- データメッシュの原則と論理アーキテクチャの定義
- PayPalは、次世代のデータ移動プラットフォームとしてApache AirflowとApache Gobblinを標準化
- WhatsApp、セキュアなマルチデバイス通信のためにSignalプロトコルを採用
- NetflixがMQTTとAlpakka-Kafkaのイベントソーシングで信頼性が高くスケーラブルなプラットフォームを構築
- 「Apache Kafka 3」が登場、KRaftを強化 | OSDN Magazine
関心の分離
OOP
MVC・MVP・MVVM
- Model View ViewModel - Wikipedia
- MVVMパターンの常識 ― 「M」「V」「VM」の役割とは?(1/5) - @IT
- ソフトウェアアーキテクチャー...?MVCやMVVMってなに!?
- MVVMを勉強するときに参考になった 概要まとめ & アンチパターン & リンク集 - Qiita
- » [WPF] MVVMパターンについて -入門編- 技術ブログ
- Vue.jsが採用しているMVVMパターンとは【目的を重点に解説】 | Raccoon Tech Blog [株式会社ラクーンホールディングス 技術戦略部ブログ]
- プログラミングな日々: MVVMとは何か
- いまさら学ぶMVVMパターン
- MVVMとはなんぞやを公理から求めてみる - 滅入るんるん
- 【C#活用】WPFでMVVMパターンを実装する際の注意点 | .NETコラム
- Webアプリケーション開発者から見た、MVCとMVP、そしてMVVMの違い - Qiita
- 現場で選ばれているiOSアーキテクチャ - Qiita
- 完璧なモデルビュー-どんなアーキテクチャでもRyanKay(MVP / MVC / MVVM)
- ソフトウェアアーキテクチャー...?MVCやMVVMってなに!?
- 開発中のアプリをMVVMからMVCに戻した理由 MVVM×RxSwiftでの開発で得られた教訓 - ログミーTech
- 開発者が知っておくべき、6つのUIアーキテクチャ・パターン - @IT
- MVPとかMVVMとか - ゆうなんとかさんの雑記帳的な。
- Androidアーキテクチャことはじめ ― 選定する意味と、MVP、Clean Architecture、MVVM、Fluxの特徴を理解する - エンジニアHub|Webエンジニアのキャリアを考える!
- 雑把の UI アーキテクチャー史(MVCからMVVMへ) | プログラマーズ雑記帳
- Fabulousにより、F#でiOS向けとAndroid向けの宣言型クロスプラットフォームUIが構築可能に
デザインパターン・DI
コンポジション
- 継承とコンポジションをどう使い分けるか
- コンポジションとは : JavaA2Z
- やはりお前らのコンポジションは間違っている - Qiita
- クラスの「継承」より「合成」がよい理由とは?ゲーム開発におけるコードのフレキシビリティと可読性の向上 | POSTD
- プログラミング 継承とかインターフェースとかコンポジションとか - はかせのラボ
- 合成と委譲ってなに? | 民主主義に乾杯
- 0.デザインパターンの基本 2 | TECHSCORE(テックスコア)
- 継承 (プログラミング) - Wikipedia
- プログラマー育成コース for Java Web開発のためのJava入門:7章 : 富士通アプリケーションズ
- 【23日目】オブジェクト指向プログラミング⑦コンポジションな関係を作る - 目指せ!Pythonプログラママー
- NAKAMURA AtsushiさんはTwitterを使っています 「DIコンテナを使う理由はそうなんだけど、なんでDIするか?の答えにはなっていないような 個人的には依存の解決はPullするかPush(Injection)するかしかないと思っていて、PullはStaticなリポジトリへ依存しないといけなくなるからDIするんだけど 前にこの辺にかいた https://t.co/LCSUv3Yzrm」 / Twitter
- Service LocatorとDependency InjectionパターンとDI Container - nuits.jp blog
- Takuto WadaさんはTwitterを使っています 「依存の注入はコンストラクタでやろう ↓ 依存と生成知識がシステム中に散らばる ↓ 生成知識をファクトリーで隠蔽しよう ↓ 今度はファクトリーがシステム中に散らばる ↓ ファクトリーはシステム中にDIコンテナひとつでよくね? ↓ DIコンテナが依存と生成知識を一括管理し、秩序と調和が訪れる(完)」 / Twitter
- Yuki Yugui SonodaさんはTwitterを使っています 「この流れで考えたら、唐突に「プリミティブ型の断片的な設定パラメータをinjectする」ことへの違和感と抵抗感の理由がわかった。 それだと整合性の担保や変更時のレビューが大変になるから、Abstract Factory相当のオブジェクトがほしかったんだ。」 / Twitter
- Yuki Yugui SonodaさんはTwitterを使っています 「diconファイルをモジュール化すれば自然にそういう単位になるけど、GuiceやDaggerで同じことをやるにはもう少し工夫が要る」 / Twitter
- Yuki Yugui SonodaさんはTwitterを使っています 「という発想が、デザインパターンを知ってるとできるようになるって話を書いた気がした。 https://t.co/R7mwTo9YDA DIコンテナでこの問題を解くときの実装はGoFのAbstract Factoryとはぜんぜん違う形になるはずだけど、状況と問題設定は同じ。」 / Twitter
- 一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか?に対するYuki Sonodaさんの回答 - Quora
- Kazuho OkuさんはTwitterを使っています 「そうなんだよね。結局、GUIフレームワークプログラミングで「発見」されたAbstract Factoryパターンをサーバサイドのフレームワークプログラミングで「再発見」したのがDIというか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「で、IoCについては、設定ベースではなく規約ベース(convention over configuration)でやる手法もあって(libcが呼ぶユーザプログラムの関数名がmainと決まってるのが端的な例)、サーバサイドフレームワークでも後々、規約ベースの手法も取られるようになった」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「IoCが、規約ベースなのか、コードベースなのか、専用言語を使うのか、という点はそれぞれ得失がある(クライアントサイドGUIでもしばしば専用言語を使う)けど、規約ベースやコードベースでやることの敷居が高い言語ほど、ごついDIになりがちなのはしょうがないよね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「デザインパターンについては Pree のメタパターンについての本が一番記憶に残ってるし、いい本だと思う。Amazon 見ると2009年に買い直してるから、部屋のなか探せば出てくるかな。 https://t.co/nuMeSzv5hX 内容については https://t.co/HTDBSCXQOd が参考になると思う」 / Twitter
- オブジェクト指向におけるデザインパターン
- 伊津野 英克さんはTwitterを使っています 「共有するドメインモデルと個々のメンタルモデルのギャップをMVCで回収するという解釈はいい気がする>DDDに関する論の主戦軸を整理してみた(2020年版) https://t.co/k61ltvIfbp #Qiita」 / Twitter
- DDDに関する論の主戦軸を整理してみた(2020年版) - Qiita
- ドメイン駆動設計 - Wikipedia
- GRASP - Wikipedia
- Abstract Factory パターン - Wikipedia
- Observer パターン - Wikipedia
- Flyweight パターン - Wikipedia
- Command パターン - Wikipedia
- nishio hirokazuさんはTwitterを使っています 「WebアプリのためのフレームワークがGUIの部品をクラスで作るようになった…しかしメジャーどころのReactが「クラスで部品を作るのはやめて関数で作る方向に移行します」と宣言(2019年)この状況において20年前のオブジェクト指向的設計はどの程度有効なのか?どういう修正を加える必要があるのか?」 / Twitter
- Tetsuya KaneuchiさんはTwitterを使っています 「これぞ「継承」の問題。 #オブジェクト指向」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「言葉の意味が時代と共にズレていくのはありがちな現象だけど、技術用語についてはそれは大いに問題であって、少なくとも意味を拡張する時には元の意味に矛盾しないようにしないと論理性に欠けるよね。ましてや元の意味は捨てるなんてダメでしょう。元の意味と矛盾するものは別の言葉を充てるべきでは。」 / Twitter
コンポーネント
- Githubが複雑なアプリケーションでWeb Componentsの開発を容易にするCatalystをリリース
- IonicのStencilコンポーネントコンパイラの設計に関する考慮事項 -- DotJS2019でのAdam Bradley氏の講演
- 効果的効果 - ソフトウェアコンポーネント間の双方向通信の統合
ドメイン駆動設計
- なぜDDD初心者はググり出してすぐに心がくじけてしまうのか - little hands' lab
- ドメイン駆動設計の定義についてEric Evansはなんと言っているのか[DDD] - little hands' lab
- モデルでドメイン知識を表現するとは何か[DDD] - little hands' lab
- ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か[DDD] - little hands' lab
- ドメイン駆動 + オニオンアーキテクチャ概略[DDD] - little hands' lab
- モデルとは"現実世界を正しく表現したもの"ではないという話 / 境界付けられたコンテキストの必要性[DDD] - little hands' lab
- ドメイン駆動設計関連情報のググるときのコツ - little hands' lab
- JJUG2017fall 「DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話」 - little hands' lab
- 境界づけられたコンテキスト 概念編 - ドメイン駆動設計用語解説 [DDD] - little hands' lab
- 境界づけられたコンテキスト 実装編 - ドメイン駆動設計用語解説 [DDD] - little hands' lab
- オニオンアーキテクチャにておいて、ドメイン層とアプリケーション層の責務はどう違うのか[DDD] - little hands' lab
- ドメイン駆動設計は何を解決しようとしているのか - little hands' lab
- DDD基礎解説:Entity、ValueObjectってなんなんだ - little hands' lab
- 新卒にも伝わるドメイン駆動設計のアーキテクチャ説明(オニオンアーキテクチャ)[DDD] - little hands' lab
- 非エンジニアの方に「DDDって何なの?」と聞かれたときの説明[ドメイン駆動設計] - little hands' lab
- ドメイン知識とユースケースの違いは何か?[ドメイン駆動設計][DDD] - little hands' lab
- 「DDDのモデリングとは何なのか、 そしてどうコードに落とすのか」資料 / Q&A - little hands' lab
- CQRS実践入門 [ドメイン駆動設計] - little hands' lab
- DDDはオブジェクト指向を利用してどのようにメンテナブルなコードを書くか - little hands' lab
- ドメイン駆動設計を導入するために転職して最初の3ヶ月でやったこと[DDD] - little hands' lab
- DDDで複数集約間の整合性を確保する方法(サンプルコードあり)[ドメイン駆動設計] - little hands' lab
- R. ShioyaさんはTwitterを使っています 「RustConf 2018 のキーノートなんだけど,スーファミとか64の時代のゲームの作りから始まり,オブジェクト指向はゲームに全くむいてない(For games, OO doesn’t really help, at all)とか,昔ながらの配列ベースの構造を発展させた ECS というものの説明がされてて面白かった https://t.co/InZWz9Wfqk」 / Twitter
- My RustConf 2018 Closing Keynote
- R. ShioyaさんはTwitterを使っています 「ゲームを作るのに(少なくとも古典的な)オブジェクト指向がむいていないのは体感的には昔から感じていて,“The problem with OO is that everything happens somewhere else” と書かれているように,オブジェクトの相互作用で全体の動作を実現するみたいのは作りにくいしわかりにくいんだよな.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「オブジェクト指向のメイヤー先生も「OOは、データと操作の並置ではなく、データ中心のアプローチ」と書いてはいたが、でもその独立性・自律性が別の扱いづらさを生むのはよく感じる話。 RDBとのミスマッチはわかり易いけど、多くの問題解決パターンとしてもミスマッチ多々発生してる印象。」 / Twitter
- オブジェクト指向はすでに粒度が時代にあっていない - きしだのHatena
- 関心の分離 - Wikipedia
- 関心の分離を意識した名前設計で巨大クラスを爆殺する - Qiita
- 責任(関心)を意識したアプリケーション設計 - Qiita
- 「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
- ryoheyさんはTwitterを使っています 「MVVMでモデルを頑張って分けすぎてモデル間の依存が多くなって良くない感じになるのと同じことが起きそう。最初のうちはあんまり分割しないで素直に書くのが良いかもな」 / Twitter
モデリング
SPIN・Promela
形式手法
- 「形式手法」をものづくりへ ─ 高品質・高効率な製品開発に向けて - NII SEEDs / 国立情報学研究所
- 形式手法のこれまでとこれから - ヾノ*>ㅅ<)ノシ帳
- Scaling symbolic evaluation for automated verification of systems code with Serval | Proceedings of the 27th ACM Symposium on Operating Systems Principles
- uw-unsat/serval-sosp19: This repo contains the artifact for our SOSP'19 paper on Serval
- ウワサのVeronaを眺めてみる | κeenのHappy Hacκing Blog
- リージョンについて | κeenのHappy Hacκing Blog
- 仕様記述テクニック「Promotion」の紹介 - DeNA Testing Blog
- Program Synthesis - Microsoft Research
- rosette.onward13.pdf
- osdi16-sigurbjarnarson.pdf
- Hyperkernel: Push-Button Verification of an OS Kernel
- Simple and Precise Static Analysisof Untrusted Linux Kernel Extensions
- 一人Computer Science Advent Calendar 2017 - Qiita
- Proof Assistantを作る・理論編 その1 - The curse of λ
- ゼロから学んだ形式手法 - DeNA Testing Blog
- CSP-Prover
- 電子情報通信学会知識ベース |1編 ソフトウェア基礎
- 電子情報通信学会知識ベース |2編 計算論とオートマトン
- 電子情報通信学会知識ベース |3編 アルゴリズムとデータ構造
- 電子情報通信学会知識ベース |7編 ディペンダブルコンピューティング
- 01gun_08hen_02.pdf
- モデル検査器を作って学ぶマルチスレッドプログラミング - connpass
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「モデリングはかんたんです。送受信するプログラム書くのと変わらないから。検査も自動なので全く問題なし。唯一"受理"の読み方が壁だけど、道具って使ってるうちにわかっちゃうもんです。とにかく仕様との違いを見つけてくれるという点が大きい。ずはりこれです。」 / Twitter
- 07gun_01hen_01.pdf
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Enterprise Architect のモデルから Promela を生成して Spin で検査、反例を読み込んで分析、という理解で正しい? https://t.co/6sdGxwNCZo」 / Twitter
- スパークスシステムズ ジャパン ニュースさんはTwitterを使っています 「構造計画研究所様 モデルベース形式検証ツールDynaSpec販売開始のお知らせ https://t.co/0niVmzNqtE」 / Twitter
- スパークスシステムズジャパン フォーラム - ニュース
- 構造計画研究所 | モデルベース形式検証 | DynaSpec | 日本
- Category:形式手法 - Wikipedia
- Category:プログラミング言語理論 - Wikipedia
- seminar_tokyo_20140916-02.pdf
- 000049838.pdf
- Tsukasa #01さんはTwitterを使っています 「暗号ライブラリの実装において、形式的検証が成されたプリミティブを C やアセンブリ言語の形態で出力する研究プロジェクト。 HACL* https://t.co/erpdiyzBET」 / Twitter
- project-everest/hacl-star: HACL*, a formally verified cryptographic library written in F*
- SPINによるモデル検査-1 - S2-a-material-nonaka.pdf
- 0.PROMELAの基本文法
- Microsoft PowerPoint - RS2010-spin1.pptx - RS2010-spin1.pdf
- xv6から始めるSPIN入門
- 猫でもわかる! モデル検査器 SPIN 入門
- 31_4_40.pdf
- UMLとモデル検証 | オブジェクトの広場
- B_020.pdf
- CiNii 論文 - 上流設計からモデル検査プロセスまでの一貫設計検証環境 : UML記述からSPINモデル検査器用プロセス定義及び線形時相論理式への自動変換手法
形式化されないもの
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「っていうか、値クラスとか、そんなこといわゆる設計で考えるようなことじゃないと思うのだけど。いわゆる設計界隈、プログラミングに引き摺られすぎじゃない?より重要な、構造に対する制約、機能に対する制約、後の改変が許される範囲、許容されるべきバリエーション、みたいな辺りがお留守に見える。」 / Twitter
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「つまり、デザインにおいて大切なものは形式化されないのですよ。でも、それらは然るべきスキルを持った人がプロダクトを見れば明らかなんです。ここがデザインと工学の衝突点。いちばんワクワクするところ。 https://t.co/Ex2AHF83eD」 / Twitter
- 杉本啓さんはTwitterを使っています 「いままさにリリースするプロダクトに、必要かつ十分な設計配慮が織り込まれているということ。不足もなく余分もなく。これが大事。あとは些事。」 / Twitter
- 杉本啓さんはTwitterを使っています 「ということは、リリースを重ねる都度、その新しいフィーチャを実現するためのコードだけでなく、関連する他の部分のコードも見直して、全体として最適なアーキテクチャにしなければならない。この点を見落としていると、増築を重ねた温泉旅館みたいなプロダクトになると思う。」 / Twitter
- ソースコード生成機能・ソースコードの読み込み機能について - UML/SysML/BPMNモデリングツール Enterprise Architect
- ステートマシン図からのコード生成 - UML/SysML/BPMNモデリングツール Enterprise Architect
- コード生成 - MATLAB & Simulink - MathWorks 日本
- RGen: Rubyのモデリングとコード生成フレームワーク
- E4-3.pdf
- MetaEdit+ 各種資料と動画デモ
- 11種類のソースコードを自動生成できる新UMLツールが登場 | 日経クロステック(xTECH)
- codegeneration | astah in 5 min
- SelexES_CaseStudy.pdf
- まちカドおるみんさんはTwitterを使っています 「結局オブシェクトの相互関係でモデリングできて何がうれしいのっていうのは何かしらの問題をオブシェクトでモデリングするという practice なしで伝わらない気がするし、」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「その上でこういう問題はこうモデリングする、という定式化がデザインパターンとして存在してる、という組み立てじゃないとわからないと思うし、わからなかった」 / Twitter
テスト
モデルベーステスト
モデル検査はモデルを検査するものではない
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「大手IT業者の方が講演で「モデル検査では分散システムはモデル化できない」とか言ってて「並行プロセス計算とか…」と言ったらキョトンとしていた。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「現在コンピュータを応用したシステムの多くは計算だけじゃなくて通信も大事な仕事の1つであるわけですが、通信するシステムを設計するときに基礎となる理論はあまり知られていないと思うのです。大学以外ではほどんど聞く機会がないんじゃないかと思うので、日曜日のセミナーは特におすすめなのです。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ここで設計といっているのは、システムの振る舞いを記述すること、つまり仕様を書くことと、システムを構成するコンポーネントを定めて、全体としての振る舞いを知ること、そして検証することです。それぞれの点で、計算を主とするプログラムとはだいぶ違ってきます。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「「どういうシステムなのか誤解があるようですね」とか言われて、大学院情報系の数十人の教員の前で小一時間問い詰めようかと思ったけど自粛した(しないほうが良かったかも」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「(そもそも「モデル検査」を「モデルを検査すること」だと思ってる時点で典型的な間違いですが。」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「https://t.co/zhxftFnVR3 https://t.co/hLlfPib9mr >We used the term Model Checking because we wanted to determine if the temporal formula f was true in the Kripke structure M, i.e., whether the structure M was a model for the formula f.」 / Twitter
- The Birth of Model Checking | SpringerLink
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「>Some people believe erroneously that the use of the term “model” refers to the dictionary meaning of this word (e.g., a miniature representation of something or a pattern of something to be made) and indicates that we are dealing with an abstraction of the actual system」 / Twitter
- 形式手法 定理証明 と テストベクタ生成 T-VEC Tabular Modeler
- IPSJ-JNL5302010.pdf
- 37136500.pdf
- ソフトウェア信頼性の向上のための形式手法・開発支援ツールの研究 - sss2012-software-oiwa-pub.pdf
- テスト駆動開発から証明駆動開発へ #JTF2019 / July Tech Festa 2019 - Speaker Deck
- バグ0の資産を積み上げるための証明駆動開発入門
- 62_134.pdf
- 自動テストに限界を感じた私がなぜ形式手法に魅了されたのか - 若くない何かの悩み
- 000049838.pdf
- Information for Prospective Students
- 研究テーマ/検証 - Takatalab
- モデルベーステスト - Wikipedia
- 7594591200220899443さんはTwitterを使っています 「「自動テストとはこの文脈ではコンピュータ・プログラムが想定通りに動くかテストする工程を自動化するもの」っていう定義でいうと、多分その作業を自動化するのはV字とか関係なくほとんど誰もできないと思うよ、それは自動テストというかもはや自動検収に近い https://t.co/lXX1MLCRQE」 / Twitter
- なぜ自動テストの導入は失敗するのか? - プログラマーの脳みそ
- 7594591200220899443さんはTwitterを使っています 「いわゆる関数とかの粒度のユニットテストは別に想定通りに動いているかの確認ではないと思う。スタブしまくった環境下でコードカバレッジ上げれば想定通りに動くだろうというのは幻想に過ぎない」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「「プログラムの想定」とは一体全体なんだったのか、というのは、案外深淵な問題で、一筋縄ではいかないものなのですよ、いわんやそれを自動化するに及んでは…」 / Twitter
- ytakanoさんはTwitterを使っています 「来年はスレッドライブラリでも自作してモデル検査で検証してもらおうかな」 / Twitter
テスト
- テスタは製品定義にどのように貢献できるのか
- 開発者がE2Eテストを書くことで得たもの
- テストピラミッドを使って品質を左シフトする
- マイクロサービスでのエンドツーエンドテストの課題
- Mock Service Workerライブラリにより、復元力のあるRESTおよびGraphQL APIテストが可能に
- Goがベータ版でファズテストをサポート
- テストコードのデザインパターン:Robotパターン - 千里霧中
- テスタビリティ(試験性)を確保するための設計方針 - 千里霧中
- テスタビリティ(試験性)の拡張を実現する実装 - 千里霧中
- ソフトウェア・テストを再考する - hidekatsu-izuno 日々の記録
- テスト自動化 / Test automation - Speaker Deck
- テスト戦略によってデプロイメント作業の完成度とプロダクト品質を向上する
- 2021年版、サーバーレスのテスト手法を考える / Serverless Testing 2021 - Speaker Deck
- ネットワークはなぜつながらないのか 〜インフラの意味論的検査を目指して〜 #AWSDevDay / AWS Dev Day Online Japan 2021 - Speaker Deck
テストダブル
- Masaki HaraさんはTwitterを使っています 「RDBに関係するテストはちゃんとした実装に繋いで実行したい派なんだけど、Railsに毒されているだけでmockしても意外と大丈夫なんだろうか……?」 / Twitter
- 🕳️🕳️🕳️さんはTwitterを使っています 「@qnighy Mockできる場合は * DBアクセスが非常に単純でテストが不要 * DBアクセスが完全にカプセル化され、単体でテストされてる のどちらかで、多くのソフトウェアはどちらにも該当しないのでmockしないほうがよいというのが実情と感じます。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@tomykaira_2 いい感じに言語化してもらえてありがたいです。」 / Twitter
- 🕳️🕳️🕳️さんはTwitterを使っています 「@qnighy 前者はKVSだと行けたりしますがRDB使ってるとほぼありえないし、DBアクセスを1レイヤに完全にまとめるのも負担でかいし、自分達の書いたDBアクセスコードはテストで動かしたいので「単体テスト」から外れてもDBは繋ぎたくなっちゃいますよね。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@tomykaira_2 同感です……」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@tomykaira_2 結局、テストする価値のあるインターフェースをテストするべきなんじゃないかって気はしますよね。 > 前者はKVSだと行けたりします わかります。しかしKVSくらい単純だと今度は期待する応答をハードコードするよりも、KVSの挙動をアプリケーションの言語でシミュレートしたほうが簡単なことも……」 / Twitter
- 🕳️🕳️🕳️さんはTwitterを使っています 「@qnighy はい、testing libraryの提供するmockというよりtest doubleですね。 dbへの呼び出しのexpectやresponseをちまちまmockすることはほぼあり得ないと思います…」 / Twitter
- test double - Google 検索
- 松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「「テストダブル」のダブルってどう言う意味かと思ったら「代役」と言う意味があるらしい。 MartinFowlerが「Stunt Doubleのようなものだと思ってくれ」といっていて、これはまさにスタントマン、代役のことを示すらしい https://t.co/PFi3hP8yK8」 / Twitter
- データベースをスコープで分けてテストしやすくする - ベインのブログ
fuzzer か property test
Property-Based Testing
- proptest - Google 検索
- Shinjuku.rs#10を開催しました│FORCIA CUBE│フォルシア株式会社
- Rust の Proptest の紹介 - Qiita
- Rust の proptest-derive の紹介 - Qiita
- proptest - Rust
- AltSysrq/proptest: Hypothesis-like property testing for Rust
- Introduction - Proptest
- Proptest
- (PDF) Proptest: A Property Based Test Pattern Generator for Sequential Circuits Using Test Compaction.
- Property-based testing in Rust with Proptest - LogRocket Blog
- proptest - crates.io: Rust Package Registry
- Property-Based Testing in Rust - Speaker Deck
- maguro.dev - 2020/06/30 に開催された Shinjuku.rs #10 に参加しました
- 眼力 玉壱號さんはTwitterを使っています 「取りあえず fuzzer か property test って話になるけど、こいつらは基本 framework が無いと辛い奴なんだよなあ🤔」 / Twitter
- ドッグさんはTwitterを使っています 「@objectxplosive どちらかというと Copilot 的に,一般的な「いじわる系テスト」を学習して似たようなテストを生成してほしい感ありますね」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@Linda_pp 『bug は境界に潜んでる』ってのは真理だからなあ…ただそれを test case として生成するには『対象 program における境界とは何か』を理解してないと難しくて Deep Learning でどうか出来るか今は微妙な所の気はする(将来は判らぬ)」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@Linda_pp 大抵の property testing framework は heuristics として『空の値』『null』をいの一番に値として生成するというのはあるけど、それ以上は対象の構造に依存しちゃう」 / Twitter
- ドッグさんはTwitterを使っています 「実装をいじめるためのテストケースを書くのがだるいので,エクセルの auto fill みたいに10個ぐらい書いたらあと990個ぐらい自動生成しといてほしい」 / Twitter
- Category:ソフトウェアテスティング - Wikipedia
エラー処理
- 井山梃子歴史館さんはTwitterを使っています 「SQLiteっぽい https://t.co/b2Xt7k5Uq6」 / Twitter
- The Use Of assert() In SQLite
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「assert にも同様の濫用があって「クラッシュは仕様」と「クラッシュしたらバグ」が混在していて、その辺りは昔ブログに書いた: https://t.co/gagW3ixhT3 > つまり、あらゆる assert は、プログラムが完全に想定 (仕様) 通りに動いたとするなら全く存在しなくても構わないように使うべきである。」 / Twitter
- Panic を恐れるべからず - 何とは言わない天然水飲みたさ
- 井山梃子歴史館さんはTwitterを使っています 「SQLiteはテストで条件分岐をフルにカバーするとこまで含めての話でもある」 / Twitter
- ドッグさんはTwitterを使っています 「自分はロジック上失敗しない(はず)なら .unwrap() でやってるな.そこでエラーになるのは実装上の理由なので,ユーザが見て分かるメッセージが出せないし,実装者が分かれば十分なら理由はコードコメントで十分で,あとはクラッシュした時のバックトレースが知れれば良い」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「これは文脈次第だと思っていて、「クラッシュする可能性がある (何かあったときクラッシュするのが仕様である)」場合はエラーとなった理由を書くし、「クラッシュしえない (クラッシュしたら実装のバグである)」場合はエラーになりえない理由を書くようにしている」 / Twitter
- ドッグさんはTwitterを使っています 「Result::expect の引数ってエラーになった理由を書くもんだと思ってる」 / Twitter
- ふみ a.k.a. DJ MonadさんはTwitterを使っています 「Rustでunwrapからのパニックを出すライブラリを見るとキレそうになるが、Haskellは実行時エラーを出す関数の数々が言語仕様レベルで決められているので人のことを言えなかった」 / Twitter
- ytakanoさんはTwitterを使っています 「Rustのパーサコンビネータのnomを使ってVerboseError使ったら、Rustコンパイラっぽいエラーを出せるのか。便利すぎる。 https://t.co/akPnA4LsFS」 / Twitter
- Masanao IgarashiさんはTwitterを使っています 「エラー処理、いちいちnilチェックするのか面倒とかイケてないって評してる人は、実は今までそんなにいちいちエラーのこと考えながらコード書いてこなかっただけだったりしない?いちいちエラー処理したほうがいいよ?どの言語使っても。optionとかresultでも。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「エラーチェックして結局メッセージ出してexitするだけなら、デフォルトのエラーハンドラを用意するのも考え方だと思うけどな。そもそも、printfの戻り値とかチェックしないでしょ? (printfの戻り値もチェックするのであれば何も言えません)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「後、組み込み、これはチェックしないといけないわね。もっともメッセージ出して終了なんて甘いエラー処理は許されないけど。」 / Twitter
- Inada NaokiさんはTwitterを使っています 「Goは好きだけど、この擁護の仕方にはあんまり同意できない。 大元でcatchしてエラーログとスタックトレースをログに書いて、Webアプリなら500 Internal Server Error返す、バッチならメールかslackに報告して終了するでいいケースは多い。 それはするべきエラー処理をサボってるわけでは無い。」 / Twitter
- Inada NaokiさんはTwitterを使っています 「逆に、ちゃんとした回復処理がある場合を除いて、処理するべきではない。 場合によってはエラーを書き換えること(低レベルエラーから高レベルエラーにする)もあるけど、多用するべきではない。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「全くそのとおり。Webアプリならむしろ個別にエラー処理しないことが推奨される。」 / Twitter
- コンパイラでのエラーの扱い - ベインのブログ
- エラーハンドリング - tasuwo's notes
Vala
- ValaによるGNOMEアプリケーションのプログラミング:Programing Bible - ITmedia エンタープライズ
- Vala - w_o’s diary
- Projects/Vala - GNOME Wiki!
error-tolerant parsing
- 井山梃子歴史館さんはTwitterを使っています 「Lossless Syntax Tree構築できて盛り上がっている https://t.co/dtqrtUWGtQ」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「∀y. (fun x -> y) = fun z -> y のパース結果」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「参考文献: https://t.co/ENSRkFmgZB https://t.co/6vwxnPwhlj」 / Twitter
- rust-analyzer/architecture.md at master · rust-analyzer/rust-analyzer
- Persistence, façades and Roslyn’s red-green trees | Fabulous adventures in coding
- 井山梃子歴史館さんはTwitterを使っています 「repo: https://t.co/4ofcm40Y8T」 / Twitter
- pratt/lib.rs at abec6651daf21d2a081c3d9026b08bd0c44b3dd1 · pandaman64/pratt
- 井山梃子歴史館さんはTwitterを使っています 「error-tolerant parsingで盛り上がっていけ https://t.co/SJoiUI5XYO」 / Twitter
- TypeProf for IDE: Enrich Development Experience without Annotations
- .NET Compiler Platform SDK 構文モデルを使用する | Microsoft Docs
- rust-analyzer/syntax.md at master · rust-analyzer/rust-analyzer
- error-resilient - Google 検索
- kateinoigakukunさんはTwitterを使っています 「世の中のほとんどパーサはIDEを書くのに向いてない。SwiftSyntaxは偉すぎる」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「error-resilientでトビリア付きのCSTを吐けるパーサジェネレータが必要」 / Twitter
- おもちメタルさんはTwitterを使っています 「@kateinoigakukun 生成文法系のツールって正常系以外は知らんってなりがちな印象」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「@omochimetaru そうなんですよ。一応エラーリカバリも研究されてるんですけど、いかに少ない手数でパースできるようにできるかをメトリクスにしてるんですよね。 IDE的にはリカバリじゃなくて、明らかに壊れてたらコンテキストをクリアして次のトークンをパースして欲しいんですよ。」 / Twitter
- おもちメタルさんはTwitterを使っています 「@kateinoigakukun 最小のエラーの解釈にするみたいな感じかな なんか文法定義文法自体を拡張してコンテキストのヒントみたいな概念をいれたりする方向が良さそうだなあ」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「@omochimetaru そんな感じになるんですかねぇ。 この辺はとっくの昔に研究され尽くされてると思ってたのに全然そんなことなかった。」 / Twitter
- おもちメタルさんはTwitterを使っています 「@kateinoigakukun 未踏だからSwiftも手書きなんじゃないか 家庭くんの卒業研究で世界狙うのにちょうど良さそう」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「@omochimetaru 世界狙うか…」 / Twitter
- おもちメタルさんはTwitterを使っています 「@kateinoigakukun 😲」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「そういえばASTの文字列出力に詳しい有識者いませんかというやつがある(括弧が必要以上に多く出力されてしまい困っている) https://t.co/wXK1bBzdvy」 / Twitter
- mod_poppoさんはTwitterを使っています 「HaskellのshowsPrecみたいに演算子の優先順位を表す整数を持って回ればいいのでは」 / Twitter
computed goto
- DSAS開発者の部屋:インタプリタ型言語を高速化する computed goto
- computed goto - MEMO:はてな支店
- Goto - Wikipedia
- Labels as Values (Using the GNU Compiler Collection (GCC))
- κeenさんはTwitterを使っています 「インタプリタを作るときのテクニックにVM化とかThreaded VM(computed goto)とかDirect Threaded VMとか色々あるんだけど、gotoが使えないRustでどこまで工夫できるか調べた記事。 Virtual Machine Dispatch Experiments in Rust https://t.co/lcMT86LsHw」 / Twitter
- Peter Liniker by pliniker
- κeenさんはTwitterを使っています 「それに関する反応も面白い。LLVMがloop {match{}}でほぼThreaded VMと同等のコードを吐いてくれるらしい。 Computed gotos, TCO, threaded interpreters: experiments and findings - Rust Internals https://t.co/LqpX5skeCI」 / Twitter
- Computed gotos, TCO, threaded interpreters: experiments and findings - Rust Internals
REPL 等
- uint256_tさんはTwitterを使っています 「大きなプログラムをインタプリタ(スクリプト)言語で書く意味をいまいち理解できていないんですよね」 / Twitter
- FUJI GoroさんはTwitterを使っています 「@uint256_t 動的型付けvs静的型付け、ではなくってことですよね? C以前のコンパイラは複雑なビルドスクリプトを用意しなければならず依存関係の管理もまともにできないのでそのへんを処理系自身が解決できたインタプリタが簡単でした。 今時の言語はcargo runとかで一発なので大きな差はないと思います。」 / Twitter
- FUJI GoroさんはTwitterを使っています 「@uint256_t 動的型付けvs静的型付け、ではなくってことですよね? C以前のコンパイラは複雑なビルドスクリプトを用意しなければならず依存関係の管理もまともにできないのでそのへんを処理系自身が解決できたインタプリタが簡単でした。 今時の言語はcargo runとかで一発なので大きな差はないと思います。」 / Twitter
- uint256_tさんはTwitterを使っています 「@__gfx__ 言語自身ではない所に問題があったんですね」 / Twitter
- FUJI GoroさんはTwitterを使っています 「@uint256_t そうそう、むしろ現代的な言語だとあまり意味のある区別ではない気がしますね。 あとは、スクリプト言語=インタプリタ言語=動的型付き言語、みたいな昔の処理系の典型的な実装に引きずられた定義もまだ生き残っているかもしれません。」 / Twitter
- uint256_tさんはTwitterを使っています 「@__gfx__ 確かに。Crystalとかはスクリプト言語っぽいけど静的型かつコンパイル型でしたね。」 / Twitter
- FUJI GoroさんはTwitterを使っています 「@uint256_t TypeScriptも静的型かつコンパイル言語なのに実行エンジンが動的型のスクリプト言語、しかもそのスクリプト言語はしばしば実際に実行するのはJITしたマシンコード、という具合ですしね。」 / Twitter
- _ko1さんはTwitterを使っています 「@uint256_t 前提によっていろんな意見がありそうです。 例えば、実行中にコード差し替えがやりやすいとかはあるかもしれません(試行錯誤しやすい) 典型的にはreplでゴニョゴニョしながらなんかするとか」 / Twitter
- uint256_tさんはTwitterを使っています 「@_ko1 確かにREPLは便利ですね」 / Twitter
- monochromeさんはTwitterを使っています 「@uint256_t 動的な言語(型やメソッドが実行時に変化する)の実行のためですかねえ。」 / Twitter
- uint256_tさんはTwitterを使っています 「@s_isshiki1969 それは確かにそうですね。(大きめのプロダクトとかでインタプリタ言語を使う意味を考えていました)」 / Twitter
- monochromeさんはTwitterを使っています 「@uint256_t Railsみたいなのは巨大だし、かつRubyの動的な性質をフルに活用していますね。 静的型付け言語の型の柔軟性が飛躍的に上がったので、遅い動的型付け言語を巨大プロジェクトで使う意味というのはどんどん縮小している気がする。」 / Twitter
- uint256_tさんはTwitterを使っています 「コンパイラ型かインタプリタ型かなんて関係なくて、ただ偶然好みの言語がどちらかの型だった、ってだけなのかもしれない」 / Twitter
式指向・行指向
- monaqaさんはTwitterを使っています 「Vim script 書いてると式指向で書けるエディタが羨ましくなるよね」 / Twitter
- きりえさんはTwitterを使っています 「式指向言語と文指向言語。式は値を持ち、文は何かを行う。Rust は式指向言語で、すべての文が式であり値を返す」 / Twitter
- 式指向構文が言語処理系にもたらす複雑性 - ベインのブログ
- 関数型プログラミング言語の構文は「すべてが式」ではない - ベインのブログ
- 近況 2019-04-30 - ベインのブログ
- HSP3 でスクリプト言語の処理系を書く - ベインのブログ
- Pattern Matching - p1371r3.pdf
- Rustの文でセミコロンを省略してよい条件 - 簡潔なQ
- 式指向プログラミング言語
- LISP - Wikipedia
データ構造とパフォーマンス
- 眼力 玉壱號さんはTwitterを使っています 「cache miss penalty が 30年位前とは比較にならない位デカイんだよねえ…なので pointer で繋いでいくタイプの data structure は理論性能と実性能が乖離しやすくなってる cf. https://t.co/YQ2cIuYuPV」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho https://t.co/UE5Q4LKWva の p.40 位に Hurb Shutter センセの『黙って array 使え』的な話が…勿論問題規模に依存はするけど、かなりの場合 array で行ける的な感触スね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「特に最近のCPUだとキャッシュや分岐予測あてるの重要だから選べるところではlinked listやハッシュよりarray使うんだけど、arrayは末尾以外の挿抜ができないから使いづらいことも多いよね #マジレス」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopyでは動的にサイズ変更できるVBufという、アドレス空間予約(MEM_RESERVE)利用の Arrayを多用している。 Win32アドレス空間予約は、mmap等の仮想メモリ確保と違い、 ・PTD/PTEすら消費しない ・プロセス/OSの仮想メモリ量は増えない のが良い点。 https://t.co/Y8mvNKscpm」 / Twitter
- SHIROUZU Personal Log
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これ、64bit OSでアドレス空間が増えてから特に威力を増した印象ある。 (予約だけならPTD/PTE増えず、タスクマネージャでも仮想ページ増えないため、遠慮なく大きくできる) 1dir直下に2000万ファイルといった状況にも対応できるよう、stat領域に8GB空間予約していたりなど。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(そして何より、性能と使い勝手はArrayそのものというのが良い」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえばこれ、スタック的な成長方向だけでなく、やろうと思えば基底側の成長できたりする。 (でもそれが必要な状況が浮かばない…思考が制約されてるのだろうか?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「オープンアドレス法は、MS-DOS時代に全盛だった方法くらいに捉えていて(想定以上のコリジョンで指数的に破綻、削除で嫌らしい話が出る)、大人になってこの方、チェイン法ばかり使っていたなぁ…ちょっと勉強し直すかな。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(とはいえ、「テーブルとデータ配列は別確保」という変則オープンアドレス版の話であって普通のそれは敬遠したほうが良さそう)」 / Twitter
ピボットテーブル
- chokudai(高橋 直大)🌸🍆🍡さんはTwitterを使っています 「意外と名前が付いているテクニックもあって、「重複のあるデータ列が与えられた時に、データ名:個数のペアに持ち変える」みたいなのって、名前がついてるはずなんだよね。自分も思い出せないし言っても多分伝わらないけど。」 / Twitter
- Feature #11076: Enumerable method count_by - Ruby master - Ruby Issue Tracking System
- Shiro KawaiさんはTwitterを使っています 「Scheme (R7RS-large) だとbagですね。自明でないかもしれませんが、内部的にデータ⇒個数で持ってます。特定のデータの個数を得るのはbag-element-count https://t.co/RGSFeDKmUp https://t.co/pozyzYhz12」 / Twitter
- Gauche ユーザリファレンス: R7RS large
- Keigo ImaiさんはTwitterを使っています 「ピボットテーブル… https://t.co/ZWEeJs2xkX」 / Twitter
open recursion・expression problem
- open recursion - Google 検索
- expression problem - Google 検索
- 画力・博士号さんはTwitterを使っています 「open recursionがあると嬉しい場面,所謂expression problemが顕著ではある」 / Twitter
- Yasuhiro InamiさんはTwitterを使っています 「この本質部分だけに注目すれば、関数型プログラミングでいう「コモナド」のことじゃないか、というのがすぐ分かる。」 / Twitter
- Yasuhiro InamiさんはTwitterを使っています 「ちなみに個人的な「オブジェクトの定義」は 「コモナド+可変参照」なので、副作用も若干絡んできます。 副作用の境界をカジュアルに持ち込んですぐ不純粋化するのが、オブジェクト指向プログラミングの個人的な印象。 https://t.co/vSwOA7AFVl」 / Twitter
- SwiftUI時代のFunctional iOS Architecture / iOSDC Japan 2020 - Speaker Deck
- がくぞさんはTwitterを使っています 「オブジェクト指向がまた盛り上がっているがopen recursionやexpression problemに言及する人はまだまだ少ない様だ……」 / Twitter
- zehnpaardさんはTwitterを使っています 「StroustrupはOpen RecursionがOOPの本質(抽象データ型に対する優位性)だと明確に認識していたようだ」 / Twitter
- がくぞさんはTwitterを使っています 「僕もかつて同様に思っていたのですが、r.f(x) と f(r, x) はopen recursionという性質を見ると差分が存在している感じですね」 / Twitter
- かとじゅんさんはTwitterを使っています 「"関数とデータ"とオブジェクトの境界が曖昧なところは確かにある。最近Go, Rustやってて思うが、r.f(x); と f(r, c); は字面が違うだけで同じ意味だと思う。関数でいい、オブジェクトでいいはどちらでも成り立つのではないか。」 / Twitter
- かとじゅんさんはTwitterを使っています 「確かに差分ありそう。」 / Twitter
- かとじゅんさんはTwitterを使っています 「f(r, c); → f(r, x);」 / Twitter
- かとじゅんさんはTwitterを使っています 「@gakuzzzz そうか、thisかselfが遅延束縛されているということですかね。」 / Twitter
- がくぞさんはTwitterを使っています 「@j5ik2o ですです。より言うと遅延かどうか(動的か静的か)よりもopenかどうか(後から差し替える事ができるか)がより重要な感じしますね」 / Twitter
- かとじゅんさんはTwitterを使っています 「@gakuzzzz なるほど。その辺の知識を得るには、文献はどのあたりあたるとよいですかねー?もしご存知なら教えてください。」 / Twitter
- かとじゅんさんはTwitterを使っています 「@gakuzzzz TaPLかな?」 / Twitter
- がくぞさんはTwitterを使っています 「@j5ik2o 僕もこの辺は文献から学習できたわけでもなくりりろじさんとかkmizuさんとか人に教えて頂いたみたいな所があり。まとまってると資料欲しいですよねー」 / Twitter
- かとじゅんさんはTwitterを使っています 「@gakuzzzz なるほど。欲しいですねー」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「実アプリケーションでopen recursionが無ければ死んでた!って状況に出会ったことがあんまりないんだよな… そこの振る舞い差し替えるんならcompositionで明示的にやったほうが良くない?って言って全部compositionに切り替えちゃう」 / Twitter
- がくぞさんはTwitterを使っています 「@Kory__3 それofそれ」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz うーむ…」 / Twitter
- がくぞさんはTwitterを使っています 「@Kory__3 性質としての明確な差分としてopen recursionは存在するけども、じゃあその性質をそんなに活用するかというと現実あまり活用してないので重要度は高くない。であればオブジェクトじゃなくて良くない?って話になるよなーという整理をしてます」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz なるほどなるほど」 / Twitter
- がくぞさんはTwitterを使っています 「@Kory__3 逆に言うとopen recursion以外の明確な性質の差分が存在するのならそれを知りたいのですが、そういった性質についての議論をあまり目撃しないのが寂しいなーと」 / Twitter
- ぱそこんわからんねこさんはTwitterを使っています 「@gakuzzzz たし🦀(fixによるopen recursionにJavaのコードをそのままトランスパイルしてみて起こる問題などを考えれば良さそう?)」 / Twitter
- がくぞさんはTwitterを使っています 「@Kory__3 (そのアプローチはそのアプローチでとても有効そうですね。とはいえ例えばEPで言われたような「構造を追加するのは容易だが操作を追加するのは困難」みたいな性質はそのアプローチで導くの難しそうだなーという思いもあり)」 / Twitter
デザインパターン
マイクロサービス
- なおぱーさんはTwitterを使っています 「他社のエンジニアの方から「マイクロサービスを始めたいんだけど」と相談を受けることが増えてきたんだけど、そのたびに「99.9%のケースではマイクロサービスにしない方がいいですよ」とお伝えしてる。ましてや新規サービスをマイクロサービスで作るのはかなり修羅の道。ソウゾウは極めて特殊」 / Twitter
- Sotaro Karasawa🍺さんはTwitterを使っています 「@naopr その発言する人無限にいるから説くの大変…(エンジニア3人のスタートアップで…とかさ…」 / Twitter
- なおぱーさんはTwitterを使っています 「@sotarok この間koemuさんともこの話で盛り上がったんですが、外から見てるとメルカリのマイクロサービス化が過剰にキラキラして見えてしまっているんだなーと感じます。リアルを伝えていかねば…」 / Twitter
- Sotaro Karasawa🍺さんはTwitterを使っています 「@naopr そう、大体みんなメルカリとか見てあれやりたいっていうの…w」 / Twitter
- なおぱーさんはTwitterを使っています 「@sotarok リファクタリング文脈でモノリスをマイクロサービス化したいと言われたら、「まずはユニットテストとe2eテストを書け。次に不要コードを消せ。話はそれからだ」というと「まあそうですよね…」とションボリされますが、そういうことをもっと発信していかないといけないですね!」 / Twitter
- Sotaro Karasawa🍺さんはTwitterを使っています 「@naopr あとは組織論もかな… マイクロサービスにして、それどんな組織でどう作っていく、運用していくイメージなのか。それがフィットしてなかったら無限に無駄だからなぁ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「GoFはデザインパターン集でしかなくて、中には特定の言語や状況でしか必要ないものが、たくさんあるわけで。言語やハードウェア技術の進化に伴って、それらを使う必要がない人が増えているのなら喜ばしいことですね」 / Twitter
- 徳永広夢さんはTwitterを使っています 「GoFを若者が読んでも「昔の人は大変だったんだなぁ」と、昔の人が千歯こき使ってた話を聞くのと同じようなテンションでしか読めないんじゃないかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Singleton、Factory的なもの、Flyweightなんかは、割と言語非依存の概念だし、使わざるを得ないんじゃないの」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「プリーのメタパターン知らずにデザパタ語っていいのは中2まで / “オブジェクト指向におけるデザインパターン” http://t.co/UsvsOi0h」 / Twitter
- オブジェクト指向におけるデザインパターン
- Shiro KawaiさんはTwitterを使っています 「メタクラスがある言語ならFactoryパターンって単にメタクラスのメソッドなんだよね まあ、デザパタって実装技術というよりもコミュニケーションツールと考えるべきだと思う。」 / Twitter
- 一時期プログラミングのデザインパターンというものが大流行しましたが、現在ではどのように評価されているのでしょうか? - Quora
- Data Mapperパターン - Google 検索
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「GoF はみんな読むべきだけど、言語のサポートがないまま小規模ソースコードでパターンを使おうとして無闇にコードを複雑にしてる例もわりと見られる気もして複雑な気持ち」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「「現代の言語機能ではすでにサポートされているものも多いから意義がない」はある側面では真だし GoF にある設計そのまま流用するのが良くないこともあると思っている。ただ、それが直ちに GoF そのものに意味はないし読まなくて良いということではない、ということまで至らない人が居るのがアレ」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「教条主義的に GoF をまるっきりそのまま使う人にとっては完全に意味がないことも多かろうとは思うけれど、そういう主旨の本じゃないもんね」 / Twitter
- 一ノ瀬 いろはさんはTwitterを使っています 「@kotatsu_mi 当時はそういう趣旨の本だった気もするけれど…… 今では歴史の本的な扱いな気がする。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@ichinose_iroha あくまで、こういう問題のときどう対処するかという設計の頻出について、分類したり名前をつけたりしてパターン化するという解決をしてみました、という話で、そのまま書き写しましょうでもこうしなければならないでもなかった気がする」 / Twitter
- 一ノ瀬 いろはさんはTwitterを使っています 「@kotatsu_mi そうは受け取らなかった読者がわりと見受けられたという方が正しかったかも知れ無い。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「業務システムならトランザクションスクリプトの方が明らかに設計もメンテナンスも楽なのに、なんでドメインモデルなんかが流行ってしまったんだろうなぁ。データモデルと処理がくっついてて嬉しいのはCollectionとかアルゴリズムが隠蔽されてる方が嬉しいやつだけでは。」 / Twitter
- トランザクションスクリプト - Google 検索
- ウェブエンドエンジニアさんはTwitterを使っています 「Ruby 使う会社に3社いたけど破滅した Active Record しか見たことがないので active record パターンが生産性高いという意見が全く理解できない…」 / Twitter
- ウェブエンドエンジニアさんはTwitterを使っています 「本来DBと関係ないロジックがModelという名目で ActiveRecord を継承したクラスメソッドに書かれてストレージとロジックが密結合なために純粋な関数のテストをするために大量の seed データを注入しないと動かないなどの現象が起こり、長大なセットアップスクリプトを要求されるのが苦痛」 / Twitter
- ウェブエンドエンジニアさんはTwitterを使っています 「あと認証認可の role 判定が save を上書きされる形で実装されて無関係なときに誤爆するなど、実装上のアンチパターンを誘発してるように思う。これは継承一般の問題台けど」 / Twitter
- オブジェクト指向言語は間違っていた! --- 新世紀言語 MixJuice ---
- オブジェクト指向が0.05%も理解できない記事 - Qiita
- オブジェクト指向プログラミング - Wikipedia
- なぜ日本人はオブジェクト指向をなかなか理解できないのか?:新刊ピックアップ|技術評論社
- オブジェクト指向におけるVisitorパターンは、F代数によるμ再帰を Church encoding したもの
実数
- 結城浩さんはTwitterを使っています 「「xは実数とする。0より大きいどんな実数aに対しても -a < x < a が成り立つならば、x = 0 である」というのを初めて知ったとき、強い驚きがありました。印象深いので何度も思い出します。」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「確かに考えたら、数値計算で理論上は0になるけど微妙に0にならないやつの判定の時って無意識的にこれやってるわけだな」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「数学的な言い回しって、個人的には「まどろっこしい表現だなあ」と感じがちだけど、コードに実装した後に俯瞰すると、ああ結局その言い回しの通りになるんだな、あれは確かに絶妙な表現なんだな、ってなるみたいな感じある」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「あの分野の人たちは言い回しそのものがめっちゃリファクタリングや最適化されつくした後のコードみたいになってる感」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「なので直感イメージそのままのラフい言い回しをすると怒られが発生する。でもコードだったらって考えたら納得」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「ああでもこれ無限大でもどうですかって言われたら直感だけで考えるの危険だな、やっぱしっかり確かめないといけないんだろうな」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「無限は怖い。怒られるイメージしかない」 / Twitter
- 結城浩さんはTwitterを使っています 「「xは実数とする。0より大きいどんな実数aに対しても、-a ≠ x かつ x ≠ a が成り立つならば、x = 0 である」というのをいま知って、強い驚きがありました。印象深いので何度も思い出しそうです。 https://t.co/SMF7MWM5ed」 / Twitter
- ぼんてんぴょん(Bontenpøn)さんはTwitterを使っています 「-a<x<aを「x≠-aかつx≠a」に弱めても成り立つ、つまり0以外のどれと等しい可能性も潰されるので0しかない……ので実数の完備性とか極限の話とか、実はあまり関係ないのよね。」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「ああそっか、等しくないというのは安全に言えるのか」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「大きい/小さい、ってそもそもなんなんだろうな」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「自然数としてはペアノの公理から出発して0からインクリメンタルに生成されてく、そこで大小(というよりは前後)の順序が付いて、そっから負の数、実数と広げてく感じかな?」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「でも自然数に0を入れない派もあるけどそっから出発して拡張するとどうやって0近傍の大小関係を引っ張り出すんだ?最初に0→1の順序決まってないと (-1,+1) で大小未定義みたいな謎空間にならんのかな? 負の数→実数→...の拡張考えるとやっぱ自然数の時点で0入れとくのが手っ取り早いのかな」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「そう考えるとやっぱ0から生成すんのが奇麗に思うな自然数は」 / Twitter
GUI
- GUIアプリのルーティング・ページ遷移 - ベインのブログ
- ReactのよさはUIが第一級なこと - ベインのブログ
- Takashi KawasakiさんはTwitterを使っています 「Flutterで一番辛いのはプラグイン感の干渉というか依存関係でビルドが通らなくなることで、この辺、まあ、モバイルアプリのアーキテクチャに依存する部分もあるわけだけど、サーバーサイドがコンテナとかマイクロサービスとかで疎結合になって管理が楽になってるのからすると、こっちもコンテナほしい」 / Twitter
- shinobu.dartさんはTwitterを使っています 「そして、実はFlutterもCode Searchあるんですよ! Androidほどではないけど、GitHub上で読むより体験は良さそう! https://t.co/JkZL1TOpRI」 / Twitter
- Google オープンソース
- SOLID原則で考えるReact設計
- モダンなマイクロフロントエンドライブラリのPiral
- [2021.08.31] V8 と Blink のアーキテクチャ - Google スライド
- PPL: Code generation in Blink-V8 binding - Google スライド
- mattnさんはTwitterを使っています 「マークアップとデータを表記できて WASM にコンパイルできる言語。 / “GitHub - pannous/wasp: 🐝 Wasp : Wasm programming language” https://t.co/4mSEJh75sn」 / Twitter
- pannous/wasp: 🐝 Wasp : Wasm programming language
- 関数型プログラミングの視点で考えるテーマ機能 on React
- サービス間連携のためのGraphQL APIをClojureで開発している話 - Opt Technologies Magazine
- sjiさんはTwitterを使っています 「最近だと言語環境的にはスレッドからの通信と I/O 同時に待てるイベントループが欲しいくらいだなー、欲を言えば generics」 / Twitter
- sjiさんはTwitterを使っています 「あとスレッド間のゼロコピーのデータ共有」 / Twitter
- ElmアーキテクチャでGUIプログラミング - Slidev
- Search API v2 を作った話 | メルカリエンジニアリング
- 「Firefox 93」正式版リリース、AVIFをサポート&タブの自動アンロード機能が追加されてメモリ使用量が低下 - GIGAZINE
- AVIFをサポートした「Firefox 93.0」が登場 | OSDN Magazine
- tottoさんはTwitterを使っています 「GUIのやつの資料になります https://t.co/bQsqYiNnpJ #func_party」 / Twitter
- ElmアーキテクチャでGUIプログラミング - Slidev
- Firefox 93に搭載された「タブのアンロード機能」はどのように動作するのか? - GIGAZINE
API Call & Debugger
Debug
その他
- Intel Debug Technology
- インライン値ビュー - 公式ヘルプ | CLion
- IBM Knowledge Center - マルチスレッド・プログラム・デバッガーの開発
- LLVM Project、次世代デバッガ「LLDB」を開発へ | OSDN Magazine
- c - reference to external function in disassembly code - Stack Overflow
- デバッグ - Security Akademeia
- USDT probe - Google 検索
- プログラマーの大敵“デバッグ”、AIで自動化へ向けてIntelが研究中 〜Intel、開発部門での研究成果発表イベント「Intel Labs Day 2020」 - PC Watch
- QEMUのトレース機能でOSのデバッグを支援する - uchan note
- FreeBSDのオンラインカーネルデバッグ with QEMU - うたもく
- VirtualBoxのビルトインデバッガを使いたい | mrtska.net
- Xamarin.Forms 5.0: デバッグ機能の改善、新機能、新しいコントロール
- Program Paper-Slide-Show
- blog/jit-debug.md at master · herumi/blog
- Chrome DevTools 89の新機能
- Angular公式のデバッグツール「Angular DevTools」、Googleが公開。有志による日本語ガイドも - Publickey
- 「Angular」公式の開発支援拡張「Angular DevTools」が公開 ~有志による日本語ガイドも - 窓の杜
MS
その他
- GFlags - Windows 10 hardware dev
- ページヒープ (PageHeap) によるヒープオーバーランの検出 - Web/DB プログラミング徹底解説
- PageHeap ユーザー ガイド
- ダンプファイルに保存されたイベントログを取り出す – Japan WDK Support Blog
- プロセスデバッガを作ってみる (1/2):CodeZine(コードジン)
- スタックの取得(ネィテブデバッガを作る2) – code-lab.net
- Win32デバッグ(11)・・・番外編: vanillaの日記
- Windows Vista で local kernel debug を行う - NyaRuRuが地球にいたころ
- Detecting debuggers by abusing a bad assumption within Windows
- CRT デバッグ拡張機能 ~ トレース機能 - Web/DB プログラミング徹底解説
- CRT ライブラリを使用したメモリのリークを検出 - Visual Studio | Microsoft Docs
- Visual Studio 2017 15.9プレビューではC++デバッグ機能が拡張された
- IDA Support: Freeware Version
- OllyDbg Q&A (Digital Travesia)
- Project Zero: Windows Exploitation Tricks: Abusing the User-Mode Debugger
- プログラムの実行内容を記録して再現する「タイムトラベルデバッグ」(Time Travel Debugging)機能、マイクロソフトがVisual Studioにプレビューで提供開始 - Publickey
- Debug live ASP.NET Azure apps - Visual Studio | Microsoft Docs
- ぬるぽへさんはTwitterを使っています 「考えたことがなかったけど配布にあたって確かにトレーサーは大事だなぁとなったうえで、それを突き詰めてMSがユーザーのダンプからバグ発生時まで巻き戻せるTTDを開発してたのを思い出した REPT: Reverse Debugging of Failures in Deployed Software | USENIX https://t.co/56FXkjdfdC」 / Twitter
- REPT: Reverse Debugging of Failures in Deployed Software | USENIX
- ぬるぽへさんはTwitterを使っています 「ちなみにこちらの手法は特許がとられており我々は使用することができません・・・」 / Twitter
- ぬるぽへさんはTwitterを使っています 「@kazuho この手法はオーバーヘッドがかなり少ないのと、おそらく唯一のマルチスレッドプログラムにも適用できる手法なんですよね シングルスレッドでもいいならMozillaのrrが有名ですね」 / Twitter
- NMIスイッチでWindowsのシステム・ダンプを取得 - KMCA
- EnC Part 3 – The CLR – Shotgun Debugging
- c++ - How does "Edit and continue" work in Visual Studio? - Stack Overflow
- Speed up your .NET and C++ development with Hot Reload in Visual Studio 2022 | Visual Studio Blog
backtrace
- C++ Windowsでスタックバックトレース | puarts.com
- windows - Win32 - Backtrace from C code - Stack Overflow
CodeView
- yasm/modules/dbgfmts/codeview at master · yasm/yasm
- get function by filename and line number - primitive: blog
- 5.4 COFFシンボル テーブル
- 6.1.2 デバッグ タイプ
- 6.1.6 Microsoft CodeView(r)デバッグ情報のためのリンカ サポート
- デバッガ
- デバッガ:デバッグ情報
PDB
The PDB File Format
- The PDB File Format — LLVM 6 documentation
- Microsoft/microsoft-pdb: Information from Microsoft about the PDB format. We'll try to keep this up to date. Just trying to help the CLANG/LLVM community get onto Windows.
- The MSF File Format — LLVM 6 documentation
- The PDB Info Stream (aka the PDB Stream) — LLVM 6 documentation
- UuidCreate function (Windows)
- IMAGE_DEBUG_DIRECTORY structure (Windows)
- The PDB TPI Stream — LLVM 6 documentation
- The PDB DBI (Debug Info) Stream — LLVM 6 documentation
- CV_CPU_TYPE_e
== Microsoft PE/COFF Specification ==
- Standard ECMA-335
- The Module Information Stream — LLVM 6 documentation
- The PDB Public Symbol Stream — LLVM 6 documentation
- The PDB Global Symbol Stream — LLVM 6 documentation
- The TPI & IPI Hash Streams — LLVM 6 documentation
- CodeView Symbol Records — LLVM 6 documentation
- CodeView Type Records — LLVM 6 documentation
- CodeView.pdf
YAML
- 第1回 YAMLライブラリのしくみ:言語別 YAML用ライブラリ徹底解説|gihyo.jp … 技術評論社
- YAMLとは何か? - いつもRailsの設定ファイルで出てくるやつの正体 - Qiita
- YAML - Wikipedia
- C++ から YAMLファイルを読み込む « Stop Making Sense
- Rubyist Magazine - プログラマーのための YAML 入門 (初級編)
- Kazuho OkuさんはTwitterを使っています: "YAML でファイルincludeするなら、 <<: !include foo.yaml みたいな形が一番自然なのかな"
- Kazuho OkuさんはTwitterを使っています: "“Includable YAML - r7kamura per second” https://t.co/LNy0XJ9flP"
- RAML (software) - Wikipedia
- h2o/yoml: YAML Object Model Layer - a DOM-like interface for YAML
- YAML で静的データ管理
- YAMLの概要 | backport
- Java開発者のためのYAML入門:XMLやJSONとの違い (1/3):CodeZine(コードジン)
- YAMLのエイリアスでAnsibleファイルの重複を減らす | Developers.IO
- YAMLに対応したAWS CloudFormation デザイナーを試してみた | Developers.IO
- PyYAMLが非常に遅かった - ゲームエンジニアな日々
- じゅげむさんはTwitterを使っています: 「YAML1.2からはYAMLはJSONの完全なスーパーセットになったと んで1.1と1.2でfloatの正規表現が異なる‥ https://t.co/EOKlHJTI12」 / Twitter
- quoting strings composed of digits · Issue #98 · yaml/pyyaml
DIA SDK
- Debug Interface Access SDK
- はじめに (Debug Interface Access SDK)
- 関数 (Debug Interface Access SDK)
- Debug Interface Access SDKを使って内部関数の名前解決を行う - るくすの日記 ~ Out_Of_Range ~
- [Win32] [COM] How to read PDB Symbol file using DIA SDK | すなのかたまり
- llvm-pdbutil - PDB File forensics and diagnostics — LLVM 6 documentation
- 本の虫: MicrosoftがPDBフォーマットの構造体定義のソースコードを公開
- 本の虫: LLVMがWindowsのデバッグ情報フォーマットのPDBをサポート
- LLVM Project Blog: LLVM on Windows now supports PDB Debug Info
- LLVM、WindowsのPDBに対応 | TECH+
- LLVMがPDBフォーマットのドキュメント化とYAMLへの変換を実現
- Portable PDBの紹介
- c++ - clang 5.0 pdb support as of 2017 - Stack Overflow
- シンボル ファイルの作成と取得 | デバッグ テクニック
- ペンギンさんのツイート: "PDBファイルを不要と言い張って作らないことを勧める人がいるとはたまげたなぁ・・・。 Visual StudioユーザーがReleaseビルドをするときに必ずやってほしい2つの設定 by @lainzero on @Qiita https://t.co/Nrm7wWVsOU"
- ペンギンさんのツイート: "PDBファイルがない場合、万が一問題が起きた際に逆アセンブルしながらデバッグする羽目になるので、リリースビルドでも作成して手元には残しておくべき。作らない方向ではなく、PDBファイルに含まれる内容、そのリスクを踏まえてどう取り扱うべきなのかまとめてあると良さそう。"
- ペンギンさんのツイート: "PDBファイルはビルド時に生成されるGUIDがEXEのDebug DirectoriesテーブルとPDBファイルに埋め込まれて一致しない場合VSやWinDbgで読めないので、後でビルドしなおせばよいというものでもないのが面倒。"
- ペンギンさんのツイート: "リリースビルドでPDBは要らないという人は、作って捨てるアプリケーションしか開発したことがないと言ってるようなもの、というのは言い過ぎか・・・。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPプロセスにロードされた自作Win32DLL。 VC++でUWPプロセスへのアタッチはできるが、DLL用pdbが違うと言われてシンボルが取り込めない謎…何だろう?"
- Understanding symbol files and Visual Studio’s symbol settings | Azure DevOps Blog
WinDbg
ライブデバッグ
- ライブデバッグ - Security Akademeia
- WinDBGを使ってnotepad.exeをデバッグする – PAYFORWARD
- Windbg – Japan WDK Support Blog
- wt : WinDbg のライブデバッグ時のトレースに使えるコマンド
- Time Travel Debugging FAQ – Debugging Tools for Windows
- User-mode memusage - NyaRuRuが地球にいたころ
- Time Travel Debugging recording question – Debugging Tools for Windows
- Text highlighting in WinDbg Preview – Debugging Tools for Windows
- Time Travel Debugging queries – Debugging Tools for Windows
- WinDBG. From A to Z!
- WinDbg でスタックトレースを得るには | MDN
- WinDbg Preview 1.1804.18003.0 Release Notes – Debugging Tools for Windows
- ITプロ(非開発者)向けWindowsカーネルデバッグ事始め (1/2):山市良のうぃんどうず日記(125) - @IT
- WinDbg Preview 1.1805.17002.0 Release Notes – Debugging Tools for Windows
- TTD (Time Travel Debugging) を用いてアプリケーションクラッシュの原因を調査
- WinDbg Preview 1.0.1807.11002 Release Notes – Debugging Tools for Windows
- Time Travel Debugging (Preview) の Lab – Japan WDK Support Blog
- WinDbg Preview 1.0.1810.2001 Release Notes – Debugging Tools for Windows
- WinDbg Preview 1.0.1812.12001 and new extensibility interfaces – Debugging Tools for Windows
- New C++ library for extending the debugger data model – Debugging Tools for Windows
- Makoto Kato ︎︎さんのツイート: "ふとEdgeのgithubを覗いたら、WinDBGでv8をデバッグするためのWinDBG Extensionが存在してて笑った https://t.co/LUlVxfkHOt"
- MicrosoftEdge/JsDbg: Debugging extensions for Microsoft Edge and other Chromium-based browsers
- Makoto Kato ︎︎さんのツイート: "IE6やってるときにdumpファイルからHTMLツリーを生成するWinDBG拡張作ったりいろいろやったなぁ。辞める時に全部削除したけど (オレオレツールだったので)"
- Best places to learn more about WinDbg – Debugging Tools for Windows
x64dbg
- x64dbg
- x64dbg/x64dbg: An open-source x64/x32 debugger for windows.
- x64dbg
- x64dbg.pdf
- Reverse Engineering Tips: An Introduction To x64dbg
- klks/checksec: x64dbg plugin to check security settings
- X64dbg Code search :: Add-ons for Firefox
- セキュリティエンジニア向けツール(Windows編) - Qiita
- x64dbg:デバッガの例
- オープンソースのデバッガー x64_dbg を用いて、ソースコードを編集することなく、アプリにパッチを適用
MASM
- C++ デバッグ構成のプロジェクト設定
- /Z7、/Zi、/ZI (デバッグ情報の形式)
- /DEBUG (デバッグ情報の生成)
- SYMBOL_INFO structure (Windows)
- IMAGEHLP_SYMBOL64 structure (Windows)
- ICallFrame interface (COM)
- Kleckner-CodeViewInLLVM.pdf
- MSVC compatibility — Clang 6 documentation
- Windows support — lld 5 documentation
- Windows support — lld 6 documentation
- KMC Staff Blog:LLVM/Clang 3.7.1をMSYS2でビルド
- New Extensions and Samples GitHub Repo – Debugging Tools for Windows
- 入谷 優さんはTwitterを使っています 「ブレークポイントのドラッグ アンド ドロップって、有りそうで無かった機能なのですね。配信の問題も解決したようなので、早速更新しています。」 / Twitter
- アプリケーション検証ツール - Windows drivers | Microsoft Docs
- GFlags と PageHeap - Windows drivers | Microsoft Docs
バイナリエディタ
- binary.ninja : a reverse engineering platform
- [CB16] バイナリロックスターになる:Binary Ninjaによるプログラム解析入門 by Sophia D’Antoine
- wxMEdit - クロスプラットフォームのテキスト/Hex エディタ
- hltj/wxMEdit: wxMEdit, a cross-platform Text/Hex Editor, an improved version of MadEdit
- Stirlingの詳細情報 : Vector ソフトを探す!
- Veles - Binary Analysis Tool - CodiSec CodiSec
- codilime/veles: Binary data analysis and visualization tool
Terminal
- Jun Rekimoto : 暦本純一さんはTwitterを使っています 「@a_saitoh 勢い余ってEmacsのソースコード(Gosling版)も読んだが、これもHCI研究者になるに際して大きな資産となった.. シリアル回線で画面を最適に再描画するために動的計画法を使うみたいな悪魔度コードもあって楽しい。」 / Twitter
- download
- clever hack to efficiently update the screen · Issue #15 · dominictarr/hipster
ORC
- Naoya HoriguchiさんはTwitterを使っています 「/proc/pid/wchan がしばらく前から壊れていて、どうやら ORC unwinding https://t.co/pyOpCwN34j というものが関係しているようなので、調べ始めた。こういう低レベル感ある話題に関われると勉強になってよい。」 / Twitter
- 9. ORC unwinder — The Linux Kernel documentation
- Naoya HoriguchiさんはTwitterを使っています 「ORC data というのがカーネル独自のデバッグ情報だというのはわかるけど、ORC ってなんの略かなと思ったらファンタジーに出てくる獣的な意味のオークだった。ELF、DWARF ときて、ORC ということですな。」 / Twitter
DWARF
デバッグ情報の分離
- Clang command line argument reference — Clang 13 documentation
- Ways to Compile with Clang on Windows | Metric Panda Games
- llvm-objdump - LLVM’s object file dumper — LLVM 13 documentation
- Debugging Options (Using the GNU Compiler Collection (GCC))
- GDB Internals - Table of Contents
- objcopy(1) manページ
- Gcc: ビルドターゲットの外部でgccデバッグシンボルを生成する方法は? | Code Hero
- Files (Debugging with GDB)
- Separate Debug Files (Debugging with GDB)
- [gcc][gdb]デバッグシンボルを別ファイルに分離してgdbで読み込ませる方法 - Qiita
- elfファイルのdebugセクション分割とgdbの分割されたデバッグ情報のサポート機能めも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
DWARF
- DWARF 3.0 Standard
- DWARF 4 Standard
- DWARF 5 Standard
- Download DWARF Standards
- DWARF Git Repositories - dwarf-doc.git/summary
- DWARF Extensions
- DwarfExtensions - elfutils
- yasm/modules/dbgfmts/dwarf2 at master · yasm/yasm
- デバッグ用フォーマット、DWARF と STAB
- DWARF - OSDev Wiki
- LLVM: include/llvm/BinaryFormat/Dwarf.h Source File
- DWARF debugging formatを利用する - Qiita
- PE勉強会#3参加メモ - やる気のないはてだ(A boring diary)
- PE勉強会ネタ帳 - 七誌の開発Wiki
- objdump (GNU Binary Utilities)
- objcopy (GNU Binary Utilities)
- AMD Extending DWARF To Better Handle GPU Debugging, Continues Collaborating With GCC & LLVM - Phoronix
WebAssembly
- WebAssembly向けのデバッガを開発しました - kateinoigakukunのブログ
- DWARF for WebAssembly
GAS 疑似命令
CFI
- Using as: CFI directives
- CFI with Abbrevs - Dwarf Wiki
- ImperialViolet - CFI directives in assembly files
- CFI support for GNU assembler (GAS)
- Andreas Krebbel - [PATCH] Add .cfi_val_offset GAS command.
- assembly - GAS: Объяснение .cfi_def_cfa_offset - Qaru
- [PATCH] Unwinding CFI for x86_64 signal frame (__restore_rt)
- F/OSS study : [DWARF] Call Frame Information
- Anitha Boyapati - Testing Call frame information in .debug_frame section
- Anitha Boyapati - Re: Testing Call frame information in .debug_frame section
- CFI - Call Frame Information
- [Resolved] CCS: Object file contains invalid call frame information at .debug_frame - Code Composer Forum - Code Composer Studio - TI E2E Community
- CFI - Call Frame Information | AcronymFinder
- How can I disable CFI directives on gas assembler output - Programming - Linux Tips
- [llvm] r211272 - Emit DWARF3 call frame information when DWARF3+ debug info is requested
- [llvm-dev] [cfe-dev] Call frame information query
- Vineet Gupta - .debug_frame not generated by ARC gas
- linux-2.6.33/CFI_ADJUST_CFA_OFFSET() - コグノスケ
- Using as: Gnu Assembler(GAS) Directives CFI - godjesse - 博客园
- Debugging with GDB: 21.3.13 CRIS
- 0xfee1dead
- gccのアセンブル出力を解析する時は-gオプションが便利
- 定数を返すだけの関数のアセンブリコード – ゴミ箱
- Using as
- Loc_mark_labels - Using as
- Loc - Using as
- Section - Using as
- CFI directives - Using as
- .debug_frameセクションの構造:DW_CFA命令編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- Byte - Using as
- File - Using as
- Global - Using as
- Ident - Using as
- Long - Using as
- Size - Using as
- Sleb128 - Using as
- String - Using as
- Text - Using as
- Type - Using as
- Uleb128 - Using as
Stack frame layout
- GNU Compiler Collection (GCC) Internals: Frame Layout
- Frame Layout - GNU Compiler Collection (GCC) Internals
- Stack frame layout on x86-64 - Eli Bendersky's website
- Stack layout
unwind
- gcc _Unwind_Backtrace()の謎
- LLVMと俺俺ランタイムで例外を実装する(その1) - yutopp's blog
- Exception Frames
- x86: undwarf unwinder [LWN.net]
- Mark J. Wielaard » Blog Archive » Stack unwinding
- libunwind LLVM Unwinder — libunwind 7.0 documentation
- ⚙ D38819 [libunwind] Add support for dwarf unwinding on windows on x86_64
- ⚙ D38900 libunwind: document tested FreeBSD configs and sort OS list
- libunwindstack - platform/system/core - Git at Google
backtrace
- [Linux][C/C++] backtrace取得方法まとめ - Qiita
- c++ - gcc C ++アプリケーションがクラッシュしたときにスタックトレースを生成する方法crash | CODE Q&A [日本語]
- C++で実行時エラーを追跡と特定します - Qiita
- C言語でバックトレース(スタックトレース) - Tomorrow is always fresh with no mistake in it.@備忘録 - アットウィキ
- Google Japan Blog: C++ のプログラムのデバッグを楽にする方法
- 実行中でのコールスタックの取得と表示 - 千里霧中
- 普通のやつらの下を行け: C でバックトレース表示 - bkブログ
ELF
- llvm-readobj - LLVM Object Reader — LLVM 6 documentation
- melancholic afternoon
- リンカーオプションの指定 - Oracle® Solaris 11.3 リンカーとライブラリガイド
- 特殊セクション - リンカーとライブラリ
- Manpage of ELF
- gcc
- 昔の最近の出来事(2016.02)
- ヒープオーバーフローによるGOT overwriteをやってみる - ももいろテクノロジー
__user
- Linux システム・コールを使用したカーネル・コマンド
- copy_from_user - Linuxの備忘録とか・・・(目次へ)
- sparse - 組み込み Linux 開発の手引き - アットウィキ
- c - What are the implications of the linux __user macro? - Stack Overflow
- __userってなんぞ? - syuu1228's blog
- KMC Staff Blog:GCC の名前付きアドレス空間サポート
- まさみさんは語りたいさんのツイート: "実は意外とData SegmentとCode SegmentとそれぞれのKernel/User Segmentがあるっていうことを知らない人が多いのでは。"
- まさみさんは語りたいさんのツイート: "あと__user ってruntimeでは無意味なんだけど、これも知られていない気がする。実行時に渡されるアドレス情報には__userかどうかが無いので、実行時の値ではなく、コンテキストでしか判断できない。これはデバッグ情報の属性値にも付いていないはず。"
- まさみさんは語りたいさんのツイート: "DWARF6とかで追加しないかなー。DW_AT_USER_DATAとか・・・。"
- まさみさんは語りたいさんのツイート: "64bitの世の中ではsegmentなんて失われた技術だよねー、みたいに言ってはいけない。あるんだ、まだ。"
- まさみさんは語りたいさんのツイート: "KERNEL_DS/USER_DSの話、x86-64でもarm/arm64でも問題にならなさそうなんだけど、そうするといつまでもバギーなコードが治らないっていうことか。"
普通のやつらの下を行け
- 普通のやつらの下を行け: ptrace で実行中のプロセスにちょっかいを出す - bkブログ
- 普通のやつらの下を行け: objcopy で実行ファイルにデータを埋め込む - bkブログ
- 普通のやつらの下を行け: BFDでデバッグ情報の取得 - bkブログ
- 普通のやつらの下を行け: Cで動的コード生成・実行 - bkブログ
- 普通のやつらの下を行け: assert_caller() - bkブログ
KMC Staff Blog
- KMC Staff Blog:DWARF
- KMC Staff Blog:DWARF 一年生
- KMC Staff Blog:DWARF と有限状態機械
- KMC Staff Blog:DWARF と有限状態機械 (2)
- KMC Staff Blog:DWARF と有限状態機械 (3)
- KMC Staff Blog:DWARF 3 の対応言語
- KMC Staff Blog:GCC でコンパイルした時のオプションをバイナリファイルから取得する
DSAS開発者の部屋
- DSAS開発者の部屋:オープンソースを楽しむエンジニアの二日目 - ftraceコマンドを書く
- DSAS開発者の部屋:オープンソースを楽しむエンジニア達のこだわり ~ ftrace で引数を表示する
- DSAS開発者の部屋:オープンソースを楽しむエンジニア達のこだわり ~ デバッグ情報を得る
LLVM
- LLVM Project Blog: LLDB is Coming to Windows
- Source Level Debugging with LLVM — LLVM 6 documentation
- Clang Compiler User’s Manual — Clang 6 documentation
- llvm-dwarfdump - dump and verify DWARF debug information — LLVM 6 documentation
- Clang command line argument reference — Clang 6 documentation
- LLVM IRにデバッグ情報を埋め込むためにいろいろ調べたときのメモ - 単子葉類プログラマーのメモ
- LLVMのデバッガ「LLDB」のWindows版、登場 | TECH+
PDF
- _pdf
- cbc-gcc.pdf
- Debugging using DWARF
Stack Overflow
- c++ - What do the CFI directives mean? (and some more questions) - Stack Overflow
- debugging - Is there a simple DWARF CFI represenation for functions that set up a conventional frame pointer? - Stack Overflow
- assembly - What are CFI directives in Gnu Assembler (GAS) used for? - Stack Overflow
- assembly - What are CFI directives in Gnu Assembler (GAS) used for? - Stack Overflow
- assembly - GAS: Explanation of .cfi_def_cfa_offset - Stack Overflow
- stack - In assembly code, how .cfi directive works? - Stack Overflow
- What is .cfi and .LFE in assembly code produced by GCC from c++ program? - Stack Overflow
- assembly - Why GCC compiled C program needs .eh_frame section? - Stack Overflow
- dwarf - Getting value of stack pointer while stack unwinding with dwarf2 - Stack Overflow
- x86 64 - Breaking a stack/call frame information chain on ELF/Linux? - Stack Overflow
OSDN
- DWARFファイルフォーマット - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- DWARFって何? - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- .debug_frameセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- .debug_frameセクションの構造:DW_CFA命令編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- .debug_frameセクションの構造:CIE編 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- .debug_arangesセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- .debug_pubnames/.debug_pubtypesセクションの構造 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
Wikipedia
- DWARF - Wikipedia
- DWARF - Wikipedia
Qiita
- デバッグ情報の歩き方 - Qiita
- [gcc][gdb]デバッグシンボルを別ファイルに分離してgdbで読み込ませる方法 - Qiita
- DWARF情報とpyelftoolsを使ってバックトレースする - Qiita
- backtrace with gdb-python-pyelftools
Twitter
- Urabe, Shyouheiさんのツイート: "コードの任意の領域に属性を横からつけるの、たぶん理論上はdwarfでできるといえばできると思うが、ちょっとdwarfに手を出す気にはなれないんだよな…"
- shinichiro hamajiさんはTwitterを使っています: 「DWARFから型情報拾ってきてC/C++(ひょっとしたら他の言語も)の変数をダンプするというやつ、ちょっと話題になってひさびさに動かしてみたらいくつかバグがあったので修正しておいた: https://t.co/sKFz1f02mH」 / Twitter
- shinh/dumper: A variable dumper for C/C++
- shinichiro hamajiさんはTwitterを使っています: 「メインはどっちも関数ポインタ関係で、DWARF4で導入された新しいフォーマットをハンドルしてなくてエラーメッセージ出てたので、あとPIE対応されてなかったのと。今なら libdwarf とか使わないだろうなあ……というのが感想だった」 / Twitter
- Chrome DevToolsさんはTwitterを使っています: 「Initial DWARF support has landed in Chrome DevTools! It means that you can resolve stack traces, set breakpoints and step-in/-over source code in C/C++/Rust natively, without generating source maps. https://t.co/s3IwkJV6Tr」 / Twitter
- Chrome DevToolsさんはTwitterを使っています: 「Bear in mind that this should "just work" with native compilers, but on the tooling side DWARF support is still in progress. For example, Emscripten (Binaryen) and wasm-bindgen don't support updating DWARF after transformations, so they won't benefit from this integration yet.」 / Twitter
- k0kubunさんはTwitterを使っています 「objdump --dwarf=decodedline の出力をパースするだけの簡単なスクリプトを書くつもりが、これは相対パスを出してくる (DW_AT_comp_dir を使った絶対パスへの変換をやってくれない) ので単体では役に立たないことに気付いてしまった」 / Twitter
- 成瀬さんはTwitterを使っています 「@k0kubun https://t.co/774KyiAKyg とかですかね」 / Twitter
- k0kubunさんはTwitterを使っています 「@nalsh このスクリプトは多分、ビルドディレクトリで実行される (少なくとも IO.foreach('https://t.co/GJB4czCRee') が動かないといけないし、decodedlineから出る相対パスと #line がマッチしないといけない) ことを仮定することで僕が言及した問題を解決してる感じじゃないですかねえ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ちなみに odjdump -l は 問1. addr2line等により得られる修飾されたスタックトレースが主張するコールサイト(呼出元)の行数は実際と異なるケースがある。それはどういう場合か? 問2. スタックトレースが主張するコールサイトが信頼できるか確認すればどうすれば良いか? という設問の話でした。」 / Twitter
- _ko1さんはTwitterを使っています 「objdump -l 知らなかったなあ(-S 使っちゃう) そういえば、よく使う(でも、覚えられない、デフォルト変えてほしい)オプション --insn-width」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「皆さん解答してくれていいんですよ!」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「少し具体的に。 if (cond) { f(a); } else { f(b); } return; というコードが関数f実行中にクラッシュし、バックトレースはf(a)の行から呼び出されたと主張する。が実際はf(b)からの呼出であった。なぜか?(呼出側のスタックフレームへの依存があるため)末尾呼出最適化は関係ない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「はい。正解は、最適化コンパイラは共通式をまとめることがあり、その場合f(a)とf(b)の呼出元は同じマシン語命令になる。DWARFをはじめとする実行ファイル形式は、命令のアドレスから行数への変換を行う(コマンド名がaddr2lineだったりするレベル)ので、このような同一命令が複数行に対応する場合...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「バックトレースの主張する行数は信頼できない。というのが問1の解答。 問2は、そのようなケースを追うには、DWARFのテーブルの可視化であるobjdump -lが便利、という話でした。 https://t.co/MS0X2LTgmL」 / Twitter
- _ko1さんはTwitterを使っています 「関数呼び出しがまとめられちゃうのはよく見る気がする」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています 「@kazuho あー、なるほど。 DWARF のテーブルをそのまま見られていい、という文脈でしたか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「GCCのオプションしては-fgcseとか-ftree-tail-mergeとか。いずれも-O2で有効になります」 / Twitter
- 成瀬さんはTwitterを使っています 「Rubyにはバックトレース出すために独自実装のdwarf対応addr2lineがあるのだが、本当はもうちょっと再利用可能な形にしてテストとか欲しいんだよなぁ。通常1回起動するかしないからから高速化のために癒着してるところがあるせいでやりづらいのだが」 / Twitter
- elfファイルのdebugセクション分割とgdbの分割されたデバッグ情報のサポート機能めも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- デバッグ情報を探る 〜.cfi_xx命令の動作〜 - ばびろん's すたっく
- Split DWARFを用いてデバッグ時間やメモリを節約 - ホワイトペーパーから - ローグウェーブソフトウェアのブログ
- 第5章 デバッグ - Red Hat Customer Portal
- GNUウイーク - gccのC++化 / gdb7.5 - .mjtの日記復帰計画
- k0kubun/dwarftree: A wrapper of objdump --dwarf=info to visualize an object's structure and show code size
- はじめてのにき(2020-11-28)
GDB
rr
- Kazuho OkuさんはTwitterを使っています 「むしろ時代はgdbでrrとかじゃないのかしら https://t.co/pLLc8yPIP9 https://t.co/i6LiheKfln」 / Twitter
- rr: lightweight recording & deterministic debugging
- SODA NoriyukiさんはTwitterを使っています 「@kazuho 再現率が低い奴、本番環境で条件に合致した場合にsyslogとかに詳しいログを出すっていう意味でのprintfデバッグなので、gdb仕掛けておくのはちょっと怖くてできません…^^;」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda あーすみません単にgdbでしか使えないナウい機能があるよという意味でした」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho いえいえ、record機能、はるか昔に新機能の紹介で見たもののずっと使わずじまいだったのでこれを機会に勉強します!」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「トランスポートプロトコルスタック、バグ発現がタイミング依存だからデバッガで停止できないし、ステートリプレイでデバッグできるの神!!!! と思ってるけどまだ使ったことないんですよね」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「面白そう…昔のjockeyの最新版みたいな感じなのかしらん? https://t.co/80TZrdYakK https://t.co/Q23w78K5JJ」 / Twitter
- Jockey で Linux のプログラムの実行を記録・再生する - bkブログ
- SODA NoriyukiさんはTwitterを使っています 「僕はgdbも使ってるけどprintfデバッグでさえも使う老害なので世の趨勢の参考にはならないだろうなあ (再現率が低い奴はデバッガよりもprintfデバッグの方が楽なの…) https://t.co/bJz8gmQIPV」 / Twitter
- Shinji KonoさんはTwitterを使っています 「LLVMのdebug用Buildが35GBあったり、Linux kernelが-gだと動かなかったりするのって、ソフトウェア工学的な敗北だと思うのだが もう誰もgdbでdebugなんかしてない 疑惑。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@shinji_kono ん?CONFIG_DEBUGINFO=yにしたらデバッグ情報は普通につくと思うのですが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@mhiramat 最適化切るとkernelは動作しなくて、最適化ありだと、-g付けても、ほとんどの変数は見えないんです。なのでレジスタ見てキャストで表示する感じ。一部だけ最適化を切るのもだめ。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@shinji_kono ああ、確かに最適化切ると動かないっていう報告は見た気がしますね…。コンパイラの問題のような気も。」 / Twitter
PEDA
- longld/peda: PEDA - Python Exploit Development Assistance for GDB
- Linux_Interactive_Exploit_Development_with_GDB_and_PEDA_Slides.pdf
- CTFのための gdb/gdb-peda 頻出コマンドのメモ - teriyaki note
- gdb-peda インストール for Ubuntu - miyagawNote
- gdb-peda 使い方 コマンド一覧 - miyagawNote
- ステップ1: Pwn とは|Tech Book Zone Manatee
- PwnやReversingに使えそうなデバッガ紹介 - Pwn De Ring
GDB/MI
- Debugging with GDB: GDB/MI
- CDT デバッガーとのインターフェース: 第 2 回 Eclipse の CDT と MI を使って gdb にアクセスする
- 5.3.6. GDB の代替ユーザーインターフェース - Red Hat Customer Portal
- Debugging with GDB - GDBの要約
- Debugging with GDB - gdb/miインターフェイス
- Debugging with GDB: 25.4 TUI固有のコマンド
- GDB/Machine Interface library / Wiki / Home
- GDB’s MI is not a Debug Protocol – Kichwa Coders
- autozimu/gdb_mi: A gdb Machine Interface (MI) output parser and session manager.
blog
- 実践しながら学ぶ Android USBガジェットの仕組み(2):KGDBを使って、Android組み込みボードをリモートデバッグしよう!【前編】~KGDBの仕組みを理解する~ (1/3) - MONOist(モノイスト)
- gdbを使ってRuby(2.3.3)のライブプロセスの情報を取得する - CubicLouve
- gdbで初期設定をAT&T記法からIntel記法に変更する方法 | サラリーマンがハッカーを真剣に目指す
- GDBのコマンド出力をファイルに保存する方法 - 技術日誌
- objdumpによる逆アセンブルとgdbの命令形式表示の比較 - 技術日誌
- 実践的低レベルプログラミング
- GDBでデバッグするなら-g3オプション - ククログ(2013-05-08)
- gdbでデバッグするためのgccのデバッグ情報のオプション - C言語入門
- debuginfod(elfutils debuginfo サーバー)の概要 - 赤帽エンジニアブログ
- JOS から学ぶ GDB デバッグ手法
- gdbの使い方のメモ - ももいろテクノロジー
- gcc+gdbによるプログラムのデバッグ 第2回 変数の監視、バックトレース、その他のコマンド
- 本の虫: GDBがeBPFのデバッグをサポートした
- Linuxカーネルのテスト実行とデバッグ (2) :GDB編 - Fixstars Tech Blog /proc/cpuinfo
- 時折飛んでくる原因不明な#GPをgdbで原因究明した備忘録 – Raphine Project
- GDBの使い方メモ – GitHub 出張所 – プログラム関係のブログはここに
OSDN
- GDB/GDBserverによるクロスターゲットのリモートデバッグ | OSDN Magazine
- リモートデバッガ/プロファイラを利用したデバッグ&性能解析 | OSDN Magazine
- D言語にも対応、GNU Debugger 7.2リリース | OSDN Magazine
- オープンソースのデバッガーGDB 7.4リリース、Pythonスクリプティング機能などで多くの改良が行われる | OSDN Magazine
- Go言語サポートが新たに追加された「GDB 7.5」リリース | OSDN Magazine
- 64ビットARM版Linuxをサポートした「GDB 7.6」リリース | OSDN Magazine
- 新コマンド導入、Python強化などが特徴の「GDB 7.7」がリリース | OSDN Magazine
- 「GDB 7.8」がリリース、Guileスクリプティングをサポート | OSDN Magazine
- 「GDB 7.9」がリリース、PythonスクリプティングAPIの強化などが行われる | OSDN Magazine
- 「GDB 7.10」リリース | OSDN Magazine
- 「GDB 8.0」リリース | OSDN Magazine
- RISC-Vサポートを強化した「GDB 8.3」リリース | OSDN Magazine
- 米Microsoft、Visual Studioのデバッガ拡張「MIEngine」を公開 | OSDN Magazine
- 「GDB 9.1」が公開 | OSDN Magazine
- 「GNU Debugger 11.1」が公開 | OSDN Magazine
Qiita
- はじめてのgdb - Qiita
- gdbで効率的にデバッグするためのTips - Qiita
- gdbのDynamic Printfを使う - Qiita
- Pythonでgdbを操作する。 - Qiita
Twitter
- Fadisさんのツイート: "ヒープ上で範囲外参照してSegmentation Faultするなんて可愛いモンだ。スタック上で範囲外参照して範囲外から有効っぽい値を拾ってよくわからないところに飛んでいったコードをデバッグするのと比べれば"
- Fadisさんのツイート: "x86_64でこういうのをデバッグするとき、稀によくgdbの逆アセンブル機能に「このアドレスが始点だったと思って逆アセしてくれ」が欲しくなる(もうあったりするのかな)"
- れっくすさんのツイート: "x/i https://t.co/VuUC5BacEP"
- rayfillさんのツイート: "https://t.co/j9URafEPDk disassemble start,end でできるように読めるんだけど・・・ https://t.co/gZae5eIpAf"
- Debugging with GDB: Machine Code
- れっくすさんのツイート: "examineなんでn命令見れて普通に便利ですね。あとCTFでよく使われるpeda/pwndbgあたりを入れると特定のアドレスでdisasする命令が増えた気がします… "
- Fadisさんのツイート: "テンプレート引数が極めて長い関数をgdbでdisasしたら、ジャンプする度にアドレスの横に出てくる関数名で画面が埋まって厳しい事になってる"
- herumiさんのツイート: "disassemble/rm $rip,+128 ならバイト列込みで逆アセンブルしてくれます。@_ko1 というかVisual Studio便利なんだけどなあ。 「Linux プロジェクトのデプロイ、実行、デバッグ」 https://t.co/XSdT5BSoQb"
- Visual Studio で C++ Linux プロジェクトを配置、実行、デバッグする | Microsoft Docs
- _ko1さんのツイート: "うお、すごい、gdbserver につなげられるんだ!… "
- Fadisさんのツイート: "gdbでデバッグ中の箇所でC言語のコードをコンパイルして実行するために使われているライブラリ化されたgcc libcc1がC++に対応した模様。デバッガから挿入するコードをC++で書けるように https://t.co/iHKqz7HOUO"
- FadisさんはTwitterを使っています: 「gdb 8.4からデバッグシンボルのロードをマルチスレッドで行えるようになるらしい。デバッグシンボルを読まないとしばしば人類に厳しいデバッグを強いられるけど、巨大なアプリケーションのギガいデバッグシンボルは読むだけで時間がかかる問題がこれで緩和される https://t.co/9rowszXJld」 / Twitter
- GDB Adds Multi-Threaded Symbol Loading For Faster Debugging Performance - Phoronix
- FadisさんはTwitterを使っています: 「デバッグシンボルがギガくなる大抵の原因はC++のマングルするととてつもなく長くなる型名なんだけど…」 / Twitter
- FadisさんはTwitterを使っています: 「マングルが直接的な原因ではないな。C++erはETでカジュアルに100キロバイトオーダーの型名を生み出してしまうのである」 / Twitter
- FadisさんはTwitterを使っています: 「Rustのマングリングルールに一種の可逆圧縮みたいなルールが備わってて、こいつC++(Itanium ABI)で辛かった所にしっかり対策入れてるなってなった」 / Twitter
- FadisさんはTwitterを使っています 「gdbがdebuginfodに対応したらしい。debuginfodはhttpでソースコードとデバッグ情報を配るデーモン。デバッガはローカルにソースとデバッグ情報が無くてもバイナリに埋め込まれた情報を元にリモートのdebuginfodからそれらを得る事で人類に優しいデバッグ環境を提供できる https://t.co/meD6YqbLlj」 / Twitter
- GDB Debugger Adds Support For Debuginfod Web Server - Phoronix
- uchanさんはTwitterを使っています 「GDBの条件付きブレークポイントの機能で,スタックポインタが16の倍数じゃないときにブレークする場合は condition <bnum> ((unsigned long)$rsp & 0xf) != 0 とするといいみたい。」 / Twitter
- uchanさんはTwitterを使っています 「ブレークポイントを作りつつ条件を設定するには break ... if <cond>」 / Twitter
- Shiro Kawaiさんのツイート: "おお、最近のLinuxはデフォルトでデバッガがアタッチできるプロセスに制約があるのか。久々に刺さったプロセスに外からgdbをアタッチしようとして知った。 https://t.co/iiKXWwtfLP"
- k0kubunさんはTwitterを使っています 「backtrace(3) がSEGVするような状況でもgdbは途中までbtを出せるのは何故なのか」 / Twitter
- 成瀬さんはTwitterを使っています 「@k0kubun どのアドレスを参照してよくて、どのアドレスを参照したら死ぬか知っているからですね。Linuxでも https://t.co/nUQFjeeakf を使えばそのへん制御できるかもしれませんが」 / Twitter
- ruby/vm_dump.c at 229ba1215fa7c8181b9296dff22807fb17442c74 · ruby/ruby
- k0kubunさんはTwitterを使っています 「@nalsh なるほど。見てるSEGVの再現率が絶望的に低いのでなかなか試せませんが、次簡単にヒットさせられる状態になったら試してみます」 / Twitter
- FadisさんはTwitterを使っています 「Debianがdebuginfodのサーバを立てたらしい。debuginfodはデバッグ情報とソースをデバッガに提供するHTTPサーバで、対応するgdbを使用するとローカルにデバッグ情報がなくても快適なデバッグが可能になる。RedHatを中心に作られた為Fedoraでは以前から対応が進められていた https://t.co/pUdZEie1kO」 / Twitter
- Debian Launches A Debuginfod Server For Smoother Debugging Experience - Phoronix
- henrichさんはTwitterを使っています 「debianプロジェクト公式インフラではなく、Debian公式開発者の一人が立ててみたよ、という話ね」 / Twitter
- 2021年2月25日 よきデバッグライフのために ―Debian,開発者向けdebuginfodサーバをローンチ:Linux Daily Topics|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「Linuxのio_uringはブロックするしかないI/Oを処理するために特殊なカーネルスレッドを作ってプロセスに結びつけるが、gdbがこのスレッドを発見するけどアタッチ出来ない状態になって詰んでしまう問題が見つかり、このスレッドはユーザ空間からどう見えるべきかで揉めている話 https://t.co/SoMHXh6cuV」 / Twitter
- GDB Internals - Table of Contents
- Debugging Output (Debugging with GDB)
- debugging with GDB
- GabrielMajeri/separate-symbols: How to separate debugging symbols from an ELF executable
- https://www.kernel.org/doc/Documentation/security/Yama.txt
- cyrus-and/gdb-dashboard: Modular visual interface for GDB in Python
- I0608173.pdf
- melancholic afternoon
- GDB to LLDB command map — The LLDB Debugger
- PermissionsDarwin - GDB Wiki
- Releases/FeatureBuildId - Fedora Project Wiki
- gdb remote protocol - Google 検索
- lldbでLLVMプログラムをデバッグする - yhara.jp
- assembly - How is effective address calculated with fs and gs registers - Stack Overflow
- x86 - Using GDB to read MSRs - Stack Overflow
rr
Julia
- ドッグさんはTwitterを使っています 「「rr がデバッグにすごく便利だから Julia にバグレポする時は使ってくれ」という Julia チームのブログ記事.rr の仕組みや perf も解説.rr は実行を巻き戻せる Mozilla の Linux 向け C, C++ デバッガ | 'Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting' https://t.co/pm2FwDJHjF」 / Twitter
- Julia 1.5 Feature Preview: Time Traveling (Linux) Bug Reporting
- ドッグさんはTwitterを使っています 「Julia では --bug-report=rr で簡単に使えるようになってるらしい.ただしプログラムが実行中に触ったファイルなども記録されるので,処理内容によってはアップロード前に privacy に気を付ける必要あり」 / Twitter
- ドッグさんはTwitterを使っています 「rr 自体は前から知ってたけど,ベンチマーク初めて見た.スレッドの切り替えが激しい処理だとオーバーヘッドが大きくなるのは仕組み上仕方ないとしても,それ以外でほぼ1〜2倍程度のオーバーヘッドに収まってるのすごいなぁ」 / Twitter
- ドッグさんはTwitterを使っています 「ちなみに rr の仕組みやパフォーマンス評価の詳細について興味がある人は,この paper を読むと良さそう(PDF) | 'Engineering Record And Replay For Deployability Extended Technical Report' https://t.co/NBNmKvYbli」 / Twitter
- 1705.05937.pdf
MariaDB
- Nayuta YanagisawaさんはTwitterを使っています 「"https://t.co/XzfU0PawTO --rr" とすると、rr を使ってテストを起動してくれるらしい。便利。 https://t.co/r9LRlSbtAH」 / Twitter
- [MDEV-22179] rr(record and replay) support for mtr - Jira
- Nayuta YanagisawaさんはTwitterを使っています 「rr (debugger)、一部の仮想環境では動かせないのか…」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「High precision timer 関連のエラーが出て rr が上手く動かない。この issue と同じエラーだが、同じ現象なのかは不明。https://t.co/f3GbgsPhgZ」 / Twitter
- Assertion `ticks_now == trace_ticks' failed to hold. ticks mismatch for 'INSTRUCTION_TRAP'; on AMD CPU · Issue #2862 · rr-debugger/rr
- Nayuta YanagisawaさんはTwitterを使っています 「仕事用の PC も個人開発機も Ryzen だから、rr が Intel CPU なら動くのかの確認ができない。1つぐらい Intel にしとくんだった。」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「苦闘の末、Ryzen9 3900 のビルドサーバーで rr が動作するようになった。OS すら入れ替えたから何がよかったかわからん。」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「これで地球の反対側にあるビルドサーバーとのレイテンシにイライラしなくてすむ。嬉しい。」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「Mozilla rr、最新のソースからビルドしないと、私の環境では上手く動かなかった。リリース版だと対応していない system call があるのかな?(よくわかってない)」 / Twitter
- rr: lightweight recording & deterministic debugging
- Robert O'CallahanさんはTwitterを使っています 「rr 5.4.0 released. The main new feature of this release is AMD Zen support. There is also experimental ARM Aarch64 support --- for platforms that don't use STREX. Plus tons of bug fixes and performance improvements as usual. https://t.co/yFEe9LsqZU」 / Twitter
- Release 5.4.0 · mozilla/rr
- ドッグさんはTwitterを使っています 「「rr がデバッグにすごく便利だから Julia にバグレポする時は使ってくれ」という Julia チームのブログ記事.rr の仕組みや perf も解説.rr は実行を巻き戻せる Mozilla の Linux 向け C, C++ デバッガ | 'Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting' https://t.co/pm2FwDJHjF」 / Twitter
- Coming in Julia 1.5: Time Traveling (Linux) Bug Reporting
- ドッグさんはTwitterを使っています 「Julia では --bug-report=rr で簡単に使えるようになってるらしい.ただしプログラムが実行中に触ったファイルなども記録されるので,処理内容によってはアップロード前に privacy に気を付ける必要あり」 / Twitter
- ドッグさんはTwitterを使っています 「rr 自体は前から知ってたけど,ベンチマーク初めて見た.スレッドの切り替えが激しい処理だとオーバーヘッドが大きくなるのは仕組み上仕方ないとしても,それ以外でほぼ1〜2倍程度のオーバーヘッドに収まってるのすごいなぁ」 / Twitter
- [1705.05937] Engineering Record And Replay For Deployability: Extended Technical Report
- 1705.05937.pdf
- Firefoxにブラウザ上の動作を記録・再生可能な「リプレイ機能」が搭載される予定 - GIGAZINE
- Replay Docs
- FadisさんはTwitterを使っています 「C言語とC++の為の新しいデバッグツールrrについての話。-g付きの実行可能バイナリをrr recordで実行すると「どのように動いたか」が記録され、rr replayするとブレークポイントを張ったり特定のメモリを監視しながらrecord時と同じように動くプロセスを観察出来る https://t.co/1KeuuGlP6i」 / Twitter
- Instant replay: Debugging C and C++ programs with rr - Red Hat Developer
- FadisさんはTwitterを使っています 「ソフトウェアがクラッシュした時、従来のgdbではコアダンプでクラッシュ時の状態を見て「何でそんな値が入っているのか」を人間が考える必要があったが、rr recordでクラッシュまでを記録できた場合reverse-continueで「おかしな値を入れたやつ」の時点まで時を遡る、というデバッグが可能になる」 / Twitter
- reroさんはTwitterを使っています 「@fadis_ 性能激落ちしそうだから、再現試験とかが前提ではあるんやろな。」 / Twitter
- Tsukasa #01さんはTwitterを使っています 「2010年にこの方式 (Record and Replay) を VM で試していたが、当時ようやく広がりつつあったマルチコアの追跡に適用するのが厳しく開発を断念した。rr はどうしてるのか――と見てみたら、全スレッドを 1 コアで (つまりは並列させずに) 動作するというとんでもない方法を使っていた。」 / Twitter
- Tsukasa #01さんはTwitterを使っています 「それこそ、Record and Replay は、私が実験していたときには OS を動かして (ほぼ無入力で) 1MB 程度のトレースだけで1秒、数億命令の実行履歴を再現できた。ただ、それはプロセッサが「大部分で決定論的に動作する」ということを前提にしたもので、マルチコア環境だとこの前提が大きく崩れるのだ。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「roc大先生のrrの素晴らしいところは、record&replay debuggerとして、圧倒的に速いってことですよ。速くなければ使い物にならないので https://t.co/fUGz2yt6FN」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「WinDBG Previewもrecord&replay debugger入ってるけど、遅いのが致命的なんだよな」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「昔聞いたところによれば、rrを他のプラットフォームで実装するには、それ用のsystem callがあれば行けると思うよ的な話聞いてるけど、現状はLinux限定ではある。 なおrrに関してはUSENIX ATCのpaperがあるから、それを読むと面白いよ https://t.co/9lWaniZjdL」 / Twitter
- atc17-o_callahan.pdf
- Makoto Kato ︎︎さんはTwitterを使っています 「なお、Firefox devtoolsでrecord&replayやってた人たちは、https://t.co/62UcrP6NA9 やってる」 / Twitter
- Replay: Record and replay web applications
- Makoto Kato ︎︎さんはTwitterを使っています 「RedHatのrrの記事では触れられてなかったけど、 https://t.co/Hmrk0UlrEm ってのをrocの会社で作ってる」 / Twitter
- Pernosco
- rr-debugger/rr: Record and Replay Framework
Processor Trace
- LibIPT – Intel Processor Trace Decoder Library | Firmware Security
- 01org/processor-trace: libipt - an Intel(R) Processor Trace decoder library
- Intel® Platform Analysis Library-Overview | Intel® Developer Zone
- Processor Tracing | Intel® Software
- BlueHat, Airplanes and Intel Pt – AaLl86 Security Corner
- linux/intel-pt.txt at master · torvalds/linux
- Intel Pinを使ってみる - ももいろテクノロジー
- Intel Pinでcmptraceを作ってみる - ももいろテクノロジー
- [CB16] COFIブレイク:実用的な制御フローインテグリティとプロセッサのトレースによるエクスプロイト阻止 by Ron Shina …
- Shirouzu Hiroaki(白水啓章)さんのツイート: "x86とx64、引数がスタックに見える分だけ、前者の方が多少解析しやすい印象がある。 (後者はx86で言うfastcallのようなレジスタ渡しが標準。ちなみにMSとLinuxで引数に使うレジスタが違う)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "例外発生命令の、直前の命令位置を保存したレジスタか何か欲しいなぁ。 (例えば、0番地にジャンプした後に例外ダンプをとっても、もう遅い)"
- きしもとさんのツイート: "エミュレータだと何命令か過去のヒストリがある奴あるよねというか、今なら実ハードでもそれぐらい(どれくらい?)の面積は確保してくれても良さそうという気もするが"
- 市川 真一さんのツイート: "例が GDB なのでアレですが、最近の Intel CPU 限定だと以下のような機能もあるようです: Processor Trace を使ってデバッグ時に詳細なトレースを取得する - Fixstars Tech Blog /proc/cpuinfo https://t.co/4hAfksgtmO… https://t.co/dur1hZ40Cq"
- Processor Trace を使ってデバッグ時に詳細なトレースを取得する - Fixstars Tech Blog /proc/cpuinfo
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ご紹介ありがとうございます。 今解析しているのはユーザ環境のダンプなのですが、これは、そういう環境でも使える可能性があるかな…あとで詳しく見ておきます。… "
- Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
- x86 に AVX-512、SHA Extensions、Memory Protection Extensions(MPX)、Processor Trace(PT) が追加 - 教育は参考ブログ
- perfから読み解くプロセッサトレースの仕組み (perf + Intel PT/ARM CoreSight) - Qiita
MAP, COD
- MAP (file format) - Wikipedia
- セクションとか.textとか
- C言語のプロセスにおけるMAPファイルとは何ですか? - 思い浮か... - Yahoo!知恵袋
- マップ デバッグ ファイル(*.map) - RAD Studio
- /MAP (マップ ファイルの生成)
- /MAPINFO (マップ ファイルに含める情報)
- マップファイルを使用したデバッグ | code-lab
- C言語のソースコードからどのようにメモリ領域を使用しているのかを図で説明してくれるソフト 回答数3 【OKWAVE】
- static関数がmapファイルに載らない理由 - C言語・C++・C# 解決済 | 教えて!goo
- JUNO通信: 不正落ちしたアドレスからエラー箇所を特定する
addr2line
- addr2lineを使った調査方法 - Qiita
- addr2lineを使ってスタックトレースから取得したアドレスをソースファイル名と行番号に変換する - Qiita
- Man page of addr2line
- Kazuho OkuさんはTwitterを使っています 「ちなみに odjdump -l は 問1. addr2line等により得られる修飾されたスタックトレースが主張するコールサイト(呼出元)の行数は実際と異なるケースがある。それはどういう場合か? 問2. スタックトレースが主張するコールサイトが信頼できるか確認すればどうすれば良いか? という設問の話でした。」 / Twitter
- _ko1さんはTwitterを使っています 「objdump -l 知らなかったなあ(-S 使っちゃう) そういえば、よく使う(でも、覚えられない、デフォルト変えてほしい)オプション --insn-width」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「皆さん解答してくれていいんですよ!」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「少し具体的に。 if (cond) { f(a); } else { f(b); } return; というコードが関数f実行中にクラッシュし、バックトレースはf(a)の行から呼び出されたと主張する。が実際はf(b)からの呼出であった。なぜか?(呼出側のスタックフレームへの依存があるため)末尾呼出最適化は関係ない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「はい。正解は、最適化コンパイラは共通式をまとめることがあり、その場合f(a)とf(b)の呼出元は同じマシン語命令になる。DWARFをはじめとする実行ファイル形式は、命令のアドレスから行数への変換を行う(コマンド名がaddr2lineだったりするレベル)ので、このような同一命令が複数行に対応する場合...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「バックトレースの主張する行数は信頼できない。というのが問1の解答。 問2は、そのようなケースを追うには、DWARFのテーブルの可視化であるobjdump -lが便利、という話でした。 https://t.co/MS0X2LTgmL」 / Twitter
- _ko1さんはTwitterを使っています 「関数呼び出しがまとめられちゃうのはよく見る気がする」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています 「@kazuho あー、なるほど。 DWARF のテーブルをそのまま見られていい、という文脈でしたか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「GCCのオプションしては-fgcseとか-ftree-tail-mergeとか。いずれも-O2で有効になります」 / Twitter
- 成瀬さんはTwitterを使っています 「Rubyにはバックトレース出すために独自実装のdwarf対応addr2lineがあるのだが、本当はもうちょっと再利用可能な形にしてテストとか欲しいんだよなぁ。通常1回起動するかしないからから高速化のために癒着してるところがあるせいでやりづらいのだが」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Debianのperfはプロセス中のアドレス解決のためにaddr2lineコマンドを何万回も呼んでいる。これは非常に遅く、libbfdとリンクすれば60倍程度は速くなる。しかしそのバイナリはGPLv2とv3+の混合ライセンスとなりDebianでは配布できなくなってしまう。 https://t.co/n6qypg39cY」 / Twitter
- ~60x speed-up of Linux "perf" (eighty-twenty news)
libSegFault
- 普通のやつらの下を行け: C でバックトレース表示 - bkブログ
- スタックトレースの吐出しファイル名 - Linux Square - @IT
- windows - How can one grab a stack trace in C? - Stack Overflow
- スタックトレース - Wikipedia
- C言語でバックトレース(スタックトレース) - Tomorrow is always fresh with no mistake in it.@備忘録 - atwiki(アットウィキ)
- [Linux][C/C++] backtrace取得方法まとめ - Qiita
Sanitizer
AddressSanitizer(ASan)
KASAN
- KASan - Kernel Address Sanitizer(kernel 4.0)は、コンパイル時に組込んで、シャドウメモリによるメモリ内容の検査を行う - つれづれ日記
- KernelAddressSanitizer (KASan) による Linux のメモリ破壊問題の検出 - Qiita
- Linux:面白そうなpatch(Address sanitizer for kernel)を見てみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- The Kernel Address Sanitizer (KASAN) — The Linux Kernel documentation
- Home · google/kasan Wiki
- kasan.txt - kandamotohiro
- 社会人でもOSを作りたいさんはTwitterを使っています: 「KASan(カーネルアドレスサニタイザー)は,シャドウメモリと呼ばれる部分に,各メモリアドレスの状態(初期化済みであるかどうかなど)を記憶しており,メモリ読み書き命令が正当なものであるかをシャドウメモリの情報と照らし合わせて判定する。」 / Twitter
- google/sanitizers: AddressSanitizer, ThreadSanitizer, MemorySanitizer
- AddressSanitizer · google/sanitizers Wiki
- Home · google/sanitizers Wiki
- google/sanitizers: AddressSanitizer, ThreadSanitizer, MemorySanitizer
- AddressSanitizer — Clang 7 documentation
- AddressSanitizer - Wikipedia
- Google Developers Japan: サニタイザーによる Android のバグ退治
- Address Sanitizerで独自Frameworkのメモリエラーを検出する - Qiita
- clang の AddressSanitizer を使って、バッファオーバーフロー/ヒープオーバーフローを検出する - Qiita
- Address Sanitizerでメモリ不正アクセスを検知する - Qiita
- clang/gccに組み込まれたAddressSanitizer/LeakSanitizerでメモリエラーを捕捉する - 千里霧中
- AddressSanitizerが思った以上に優秀 | Project Flora
- AddressSanitizerを試す - cuspy diary
- cormoran's note - clang のSanitizerについて
- バグ #4270: StateMachine.hでheap-use-after-free - OpenRTM-aist (C++) - Redmine for OpenRTM-aist
- Debian -- jessie の libasan0 パッケージに関する詳細
- Debian -- jessie の libasan1-dbg パッケージに関する詳細
- 参照カウンタオーバーフローを利用したLinuxカーネルエクスプロイト(CVE-2016-0728) - るくすの日記 ~ Out_Of_Range ~
- 入力の検証とプロセス間通信
- [iOS 11] Xcode 9で“だいぶまとも”に!新機能をまとめてみた | Developers.IO
- るくすさんのツイート: "ASan有効のWebKitビルドしたら、ビルド中に動くツールにメモリリークがあり、それをASanが検知してしまうため一生ビルドが完了しない。 キレそう"
- るくすさんのツイート: "でもラップトップだとビルド通るんだよな 何もわからん"
- c++ : Poisoning Memory with (or without) Address Sanitizer
- AddressSanitizerManualPoisoning · google/sanitizers Wiki
- Rockridgeさんのツイート: "Windows向け64bit版のビルド時にAddress Sanitizerと呼ばれるメモリエラーの検出ツールが働くようになった。参照:https://t.co/TSOKN3H8a7 https://t.co/I7KJVWTpa2 https://t.co/dDfe0RPHtE"
- Introducing the ASan Nightly Project | Mozilla Security Blog
LeakSanitizer
- clang/gccに組み込まれたAddressSanitizer/LeakSanitizerでメモリエラーを捕捉する - 千里霧中
- LeakSanitizer — Clang 8 documentation
- AddressSanitizerLeakSanitizer · google/sanitizers Wiki
- LeakSanitizer - The Chromium Projects
- c++ - LeakSanitizer: get run time leak reports? - Stack Overflow
MemorySanitizer
- melancholic afternoon
- MemorySanitizer — Clang 7 documentation
- MemorySanitizer · google/sanitizers Wiki
- Memory sanitizer
- Memory Sanitizer - Mozilla | MDN
- c++ - Memory Sanitizer - Stack Overflow
ThreadSanitizer(TSan)
- ThreadSanitizer — Clang 8 documentation
- ThreadSanitizerCppManual · google/sanitizers Wiki
- Home · google/sanitizers Wiki
- SwiftのAddress/Thread Sanitizer - Qiita
- ThreadSanitizer: data race detection in practice
- c++11 - Why does ThreadSanitizer report a race with this lock-free example? - Stack Overflow
- ThreadSanitizer (TSan) v. 2 - The Chromium Projects
- shinichiro hamajiさんのツイート: "#tcfm TSanまわりはいくつか論文読んだ記憶がある。ナイーブなeraserはくさんfalse-positiveが出て、例えばデカい配列作ってスレッドたくさん作ってjoin、みたいなやつだとワーカーとメインスレッドがraceとされちゃう。で、happens-beforeてのとのハイブリッドにしましたってのがTSanだという理解"
DataFlowSanitizer
- DataFlowSanitizer — Clang 8 documentation
- pannzh/dataflow-pass: A LLVM Pass with runtime dataflow sanitization
- u1240976/dfsan_test: test llvm dataflow sanitizer
- Address Sanitizer clashes with Dataflow Sanitizer - Google グループ
- Clang Developers - Dataflow sanitizer memory mapping question
- Oscar Forner's personal website
- Engineering Secure Software and Systems: 9th International Symposium, ESSoS ... - Google ブックス
- clang-sanitizers
- Sanitizers.def source code [clang/include/clang/Basic/Sanitizers.def] - Woboq Code Browser
UndefinedBehaviorSanitizer(UBSan)
- UndefinedBehaviorSanitizer — Clang 7 documentation
- Google Developers Japan: サニタイザーによる Android のバグ退治
- Linuxカーネル4.5リリース、細かな改善点が中心の小規模リリース | OSDN Magazine
- The Undefined Behavior Sanitizer - UBSAN — The Linux Kernel documentation
- The Undefined Behavior Sanitizer - UBSAN — The Linux Kernel 4.11.0-rc4-00191-g7de6e5d documentation
- UndefinedBehaviorSanitizer (UBSan) - The Chromium Projects
- Undefined Behavior Sanitizer | Apple Developer Documentation
- GCC Undefined Behavior Sanitizer - ubsan - RHD Blog
- c++ - UBSan And Asan usage with GCC 4.9.2 - Stack Overflow
- GCC Undefined Behavior Sanitizer – ubsan (RH Developer Blog) [LWN.net]
- LLVM Sanitizerを試す - FPGA開発日記
Intel Pin
- Intel Pinを使ってみる - ももいろテクノロジー
- Intel Pinでlivestringsを作ってみる - ももいろテクノロジー
- Intel Pinを触る
- アプリケーション インストルメンテーション - Pin によるアプリケーション分析
- Intel PinにおけるNXの扱い | 一生あとで読んでろ
- PinからPEMUへ | 一生あとで読んでろ
angr
- angr例文集 書いて覚えるバイナリ自動解析技術 - Qiita
- angrメモ - HackMD
- angr+bingraphvisで実行パス差分ビューワを作ってみる - Qiita
最適化コードのデバッグ
- IBM Knowledge Center - 最適化コードのデバッグ
- 方法 : 最適化されたコードをデバッグする
Source Map
- Source Map Revision 3 Proposal - Google ドキュメント
- mozilla/source-map: Parse and consume source maps.
- Rockridgeさんのツイート: "Fx50:開発ツールのWebコンソールにソースマップ機能が実装された。デフォルトでは無効。 / “670002 – Use source maps in the web console” https://t.co/ehqBfbNvNj"
- ソースマップを使用する - 開発ツール | MDN
- Safx: JavaScriptのSource Mapの内部表現について
- 各ブラウザでソースマップを確認する方法 - Qiita
- [JavaScript] sourceMapの作り方 - Qiita
- To Be "Soulful": gulp + Sourcemap + Uglify + Debug で気を付けるポイント
- jQuery 1.9 のソースマップ対応で圧縮版でもデバッグが簡単になった話 - てっく煮ブログ
- Source Mapを扱う関連ライブラリのまとめ | Web Scratch
- Source Mapsについて調べた - console.lealog();
- Browserify を使ってみる 2 – Source Map – アカベコマイリ
- なかのん&マジックさんのツイート: "普通のWebサイトも難読化してるところにペナルティを与えて欲しいと思えるぐらいに、最近のWebアプリがブラウザの何が非互換で動かないのか調べるのは難しい。 / Google、信頼できるChrome拡張にするための対策を発表 | スラド IT https://t.co/ykzZJhRTsu"
- Google、信頼できるChrome拡張にするための対策を発表 | スラド
- なかのん&マジックさんのツイート: "最小化は必要なんだろうけど、それを復元する、もしくはオリジナルにアクセスする手段が標準化・用意されていないのはなかなかにキッツい。"
- なかのん&マジックさんのツイート: "各ブラウザの開発ツールが追加で読み込める、デバッグシンボルみたいなのあってて欲しい。"
- 市川 真一さんのツイート: "Source Map とソースコードを zip で固めたファイルなら、比較的簡単に実現しそうな気もしますが、外部の人間にソースコードを渡す企業は限られるという問題があると思います… "
- なかのん&マジックさんのツイート: "もう、くれないところは逆にWebの仕様変更時にブラウザベンダのサポート受けられないよ、的なコンセンサス欲しいですわ。… "
- 市川 真一さんのツイート: "それ、いいですね。多くの日本企業が市場から退場しそう… "
HAR ファイル
- .har - Wikipedia
- HTTP Archive (HAR) format
- HAR 1.2 Spec | Software is hard
- HAR ファイルの作成と Web リクエストの分析 - アトラシアン製品ドキュメント
- Firefox の Firebug や Chrome のデベロッパーツールの Network の結果を HAR にエクスポートしたり PDF に印刷する方法 | ウェブル
- harファイルをローカルで表示できる「HAR Viewer」|プログラミング
- HARファイルの内容から指定URLの内容のみを抽出する方法 - Qiita
- HARからファイルを抽出する - Qiita
- JSONパーサーを作る - Qiita
- HAR で Web ブラウザの動きを見よう! - 赤帽エンジニアブログ
blog
RogueWave
CodeDynamics
- CodeDynamics 2015.09 初リリース - エンタープライズ向け 動的コード解析ツール - ローグウェーブソフトウェアのブログ
- CodeDynamics 2015.11 リリース C++11対応と新しい検索ツール - ローグウェーブソフトウェアのブログ
- CodeDynamics 2016.01 リリース - 高機能デバッガ wrap searchとブレークポイントハイライト - ローグウェーブソフトウェアのブログ
- CodeDynamics 2016.04 リリース - 動的解析 CUDAデバッグ、Evaluation Point、バリアポイント、ReplayEngine強化 - ローグウェーブソフトウェアのブログ
- エンタープライズ領域におけるソフトウェア開発の進化 - ローグウェーブソフトウェアのブログ
- 分散環境におけるメモリエラー解析 - ホワイトペーパー紹介 - ローグウェーブソフトウェアのブログ
- 動的解析のエンジンを再構築した理由 - CodeBuzzから - ローグウェーブソフトウェアのブログ
- 並列デバッガ TotalViewの多様なインターフェースと使い方 - ローグウェーブソフトウェアのブログ
- 複雑なデバッグをシンプルに - TotalViewのTransformations機能 - CodeBuzzから - ローグウェーブソフトウェアのブログ
- TotalViewのType Transformations機能 - ローグウェーブソフトウェアのブログ
- TotalView 並列アプリケーションのデバッグ機能 - ローグウェーブソフトウェアのブログ
- TotalViewのCUDA関連機能 - ローグウェーブソフトウェアのブログ
- TotalView 新UIでのFortranデバッグとリバースデバッグの紹介動画 - ローグウェーブソフトウェアのブログ
- TotalView Python C++混合デバッグ - ホワイトペーパー紹介 - ローグウェーブソフトウェアのブログ
- TotalView 2017.0 リリース - ReplayEngine高速化、新UIにウォッチポイント、NVIDIA Tesla P100 - ローグウェーブソフトウェアのブログ
- TotalView 2017.1リリース - Python混合デバッグ、リバースデバッグのブックマーク、Split DWARF - ローグウェーブソフトウェアのブログ
- TotalView 2017.2ベータ版 - Python混合デバッグのサポート強化、バッチデバッグとリバースデバッグ - ローグウェーブソフトウェアのブログ
- TotalView 2017.2リリース - バッチデバッグでReplayEngine利用可能に、PythonとC/C++混合デバッグ強化 - ローグウェーブソフトウェアのブログ
φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxカーネルをgdbでデバッグ(またはディストリビューションのカーネルを使うときは当たってるパッチにも注意しよう) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linux kernelをgdbでリモートデバッグするときはKASLRをoffにするのを忘れずに(´・ω・`) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxでプロセス単位にaslrのon/offを切り替える仕組みめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- dynamic_debugはどのようにソースコードの行数、関数名などを読み取っているのか - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- libbfdのめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
NyaRuRuが地球にいたころ
- 日記を書いている途中にブラウザがハング・暴走したときするべきこと - NyaRuRuが地球にいたころ
- Google Chrome をデバッグする (1) - NyaRuRuが地球にいたころ
- Chromium (Chrome) のソースを読む - NyaRuRuが地球にいたころ
脱力系日記
- IDAの便利プラグイン3選!!! - 脱力系日記
- IDAプラグインの更新をサボっていたら割れIDAへのリンクを貼られた - 脱力系日記
- PinなどのDBIツールでトレースした結果をIDAにマッピングするプラグイン「Lighthouse」を使ってみた - 脱力系日記
MySQL/MariaDB
- Debugging MySQL/MariaDB (1): Build and Test - nayuta-yanagisawa's blog
- Debugging MySQL/MariaDB (2): DBUG and Trace - nayuta-yanagisawa's blog
- Debugging MySQL/MariaDB (3): GDB Debugging - nayuta-yanagisawa's blog
- 実例で学ぶ MySQL/MariaDB デバッグ - nayuta-yanagisawa's blog
Project Zero
- Project Zero: The story of Adobe Reader symbols
- Project Zero: Part II: Returning to Adobe Reader symbols on macOS
- Project Zero: Windows Exploitation Tricks: Abusing the User-Mode Debugger
J’s Lab
- OVMFをソースデバッグするお話 | J’s Lab
- Intel DCI 続編(資料まとめ) | J’s Lab
- スレッド名にデバッグ情報を埋め込むと激しく捗る件 - Cybozu Inside Out | サイボウズエンジニアのブログ
- 本の虫: ラバーダックデバッグとは
- プログラマーの理想と現実 - メモリ破壊バグをつきとめる | 株式会社創夢 — SOUM/misc
- EternalRed0’s Unicorn Engine tutorial | Firmware Security
- バイナリエディタを作りました! - プログラムモグモグ
- ccov: printfデバッグを支援するツール | retrage.github.io
- Binary Translation型エミュレータを作る(ステップ実行のサポート) - FPGA開発日記
- エクスプロイト可能なバグかの判断:REVEN を使用して NULL ポインタの参照先の値を取得
- Jockey で Linux のプログラムの実行を記録・再生する - bkブログ
- 第16回「 kernel-debug ノススメ」 | NTTデータ先端技術株式会社
- Bokken 1.8使ってみた - Twitterに書ききれないこと
- (第15回)Ctrl-Cブレーク対応
- mozregressionを使って、いつFirefoxの機能が壊れたのかを調べる - ククログ(2018-07-18)
- デバッガ自作から学ぶ低レイヤー - Nao Technology
- デバッガ自作から学ぶ低レイヤ2 - Nao Technology
- OpenBSD in Stereo with Linux VFIO | joshua stein
- アーケードゲームを支えるデバッグ術 - SEGA TECH Blog
- goroutine内のpanic handling | Money Forward Engineers' Blog
- Valgrindでコード解析してみる - CADDi Tech Blog
- Chrome DevToolsのRenderingタブを活用しよう | フロントエンドBlog | ミツエーリンクス
PDF
- purify.pdf
- tsushima12.pdf
- tsushima13.pdf
- ishii14.pdf
- wakikawa18.pdf
- doctoral.dvi - doctoral.pdf
- general4-1.pdf
- コンパイラの型推論を使用した型デバッガの提案
- 重み付き型エラースライスの提案
- バイナリコードから脅威度を推定する 脆弱性検出ツールの実装と評価
スライド
- Reverse Debugging with radare2 - Speaker Deck
- More efficient remote debugging with Thin Hypervisor - Speaker Deck
- ゆるバグ
- The Game is Over. Nintendo switch has been totally compromised - Speaker Deck
- Python + GDB = Javaデバッガ
GitHub
- WICG/devtools-protocol
- gdabah/distorm: Powerful Disassembler Library For x86/AMD64
- zydis | The ultimate X86 & X86-64 disassembler library
- zyantific/zydis: Fast and lightweight x86/x86-64 disassembler library
- PXE BootとIntel DCIを用いたLinux Debug環境 | J’s Lab
- _ko1さんはTwitterを使っています 「こういうことやるために https://t.co/8jOhpESY5b を作って mri のログがこんな感じで見れる(けどドキュメントないから誰も知らない) ヘッダ表示どうしよかな」 / Twitter
- ko1/kv: kv: A page viewer written in Ruby
- athos))))))))さんはTwitterを使っています 「デバッグに必要な情報をデータとして集めて、後から必要に応じて切ったり貼ったりして整形して表示するデバッグテクニック、むちゃくちゃ素朴なわりにデバッガとかprintデバッグに比べて「全体として何が起きたのか」を俯瞰して把握しやすいので好き https://t.co/aOt1q9G0x1」 / Twitter
- athos))))))))さんはTwitterを使っています 「デバッグ情報が単なるデータとして手に入ると、それがプログラムを書ける対象になるので、どこまでも便利な解析ツールをカスタムで作り込んでいけて、デバッグ作業を気合いと根性で進めないといけないような状況に陥りにくい(デバッガのステップ実行をひたすら繰り返すとかデバッグログの目grepとか)」 / Twitter
- masa matsuさんはTwitterを使っています 「@athos0220 >デバッグ情報が単なるデータとして手に入ると、それがプログラムを書ける対象になる まさにLispのメリット(ってことですよね?)」 / Twitter
- athos))))))))さんはTwitterを使っています 「@MasMatsum Lispだけのメリットというつもりはないですが、REPLをヘビーに使うLispだととても効果的に使えるテクニックだとは思います」 / Twitter
infoQ
- 既にコンパイルされたアセンブリをデバッグできる.NET Reflector
- ElasTestで実現するテスト時の可観測性
- WebDriverIOバージョン6リリースは、ネイティブのChrome DevToolsオートメーションプロトコルを新たにサポート
- New LiveRecorder for Java Enables Software Failure Replay
- Chrome 83 DevToolsでは視覚障害とロケールをエミュレート
- 新しいChrome拡張機能で、C++ソースファイルをステップ実行してコンパイル済みWasmコードをデバッグ
- Chrome 88 Devtoolsの新機能
- Node-RED 2.0で新たにフローデバッガーとフローリンターを提供し、開発者エクスペリエンスを向上
Qiita
- gdbのリモートデバッグのextended-remoteモードを試す(1) - Qiita
- gdbのリモートデバッグのextended-remoteモードを試す(2) - Qiita
- gdbのリモートデバッグのextended-remoteモードを試す(3) - Qiita
- Shirouzu Hiroaki(白水啓章)さんのツイート: "chromeにデバッガがアタッチできなかった話は、保護プロセスが理由だった。https://t.co/GmoAFDpGGq そして「Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法」。勉強になった。 https://t.co/1VAkqHCmfA"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ここ数週間、chromeのプチフリーズ(5-10秒)が頻発。 VS2015のデバッガでchromeプロセスにアタッチしようとするとリジェクトされてしまうのはなぜだろう。"
- Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法 - Qiita
- Shirouzu Hiroaki(白水啓章)さんのツイート: "さらに、Windows Defender の場合はデバッガをアタッチしても、書き込み権を落としたハンドルしか渡せないという防御もあり、そのためのフィルタコールバックを如何に無効化するかという話も。ハッカーすぎる(笑)"
- curl は何をしているか #システムコール編 - Qiita
- 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
- Linuxカーネルの起動時トレースの話 - Qiita
- [Linux] coreファイルについて - Qiita
- Linux シグナルの基本と仕組み (カーネル v5.5 時点) - Qiita
Wikipedia
- 逆アセンブラ - Wikipedia
- Disassembler - Wikipedia
- 逆コンパイラ - Wikipedia
- Decompiler - Wikipedia
- TotalView - Wikipedia
Twitter
その他
SoC_デバッグ
- Yuji IshikawaさんはTwitterを使っています: 「守秘義務は外すとして、ここのところ頭を悩ませていた案件に光明が見えてきた。aarch64のLinuxカーネルにプラットフォームデバイスを認識させる作業。 さくっとデバイスツリーを書いて、SoC固有のところをいじるだけなのだが、ムズい。意外と資料がない。指南書ほしい。指南書書きたい。」 / Twitter
- Yuji IshikawaさんはTwitterを使っています: 「だいぶやられた後に言いたいことは、有名なSoCと同じIPを使っているからと言って、やすやすとドライバが移植できると思うなよ!だった。合ってるのは公開レジスタセットの所だけで、ベンダ固有の謎のHWや、よくわからん感じにマルチプレクスされた割り込みが理不尽な振る舞いをする。」 / Twitter
- Yuji IshikawaさんはTwitterを使っています: 「ベンダ依存の少ないレジスタセットを使ったコアロジックは使い回せるので、ベンダ依存部分さえ直せば驚くほどすんなりドライバが動く。 まさに巨人の肩によじ登ったワンダー。 しかし重ねていうが、工数を安請け合いしてはならない。」 / Twitter
- Yuji IshikawaさんはTwitterを使っています: 「結局、pr_infoを仕掛けて回る、サブのプロセッサコアをLinuxの支配下に置かずにデバッグ用につかまえておいて、横からレジスタを覗いたり書き換えたりして反応を観る、という形でデバッグしてた。もっと良い方法を知りたい。」 / Twitter
- Yuji IshikawaさんはTwitterを使っています: 「@Tatsuro_Ueda こういうのが強い人って、本当に強いんですよ。私がハマっていた所なんて、タネが割れてしまえば本当に簡単なこと、数十行のハックで最低限の動作ができてしまう。 でも、最初に仕組みを見通すメンタルモデルを獲得するには、莫大な研鑽が必要。偉い人にわかってほしい。」 / Twitter
histric-1
- Makoto Kato ︎︎さんのツイート: "10年前の時点で自分の環境用のデバッグツールで、IEのプロセスダンプから現在開いているURLを収集および表示してるHTMLをダンプするcdbエクステンションを持ってたけど、自分のやってたところまでサポートは追いついてないのか"
- Hirochika Asaiさんのツイート: "実機だとOSの挙動がおかしくなる問題のデバッグにはCPU 0以外のコンテキストをダンプをする機能が必要。お行儀の良くない初期化しただけでこんなに影響出るものなのか…?"
- Kazuho Okuさんのツイート: "えぇぇぇぇ gdb で C-x 1 って入れたらソースコード表示しながらデバッグできるの!!! 知らなかった / “CppCon 2015: Greg Law " Give me 15 minutes & I'll change…” https://t.co/XDazrCP2mN"
- 側転幼女おるみんちゃんさんのツイート: "gdb --tui でもできる機能ですね。 https://t.co/4Y1ntlpj3o"
- ぺお(ozaki-r)さんのツイート: "DTraceをNetBSD/armに移植するときも未定義命令を使ったような記憶が… "
- なかのん&マジックさんのツイート: "特定のメソッドから、任意の数遡った、可能なスタックを全て表示してくれるツールとかないんかな(´ρ`)"
- yukiさんのツイート: "コードを書いていくとインタラクティブにアセンブリに直してくれるサービス.すごいのが,コードのどこがどのアセンブリに対応しているのか色付きで教えてくれるところ.勉強になる.もちろんRustもある! / Compiler Explorer https://t.co/9fppGUrHHG"
- Compiler Explorer
- Shirouzu Hiroaki(白水啓章)さんのツイート: "某大学の講義の感想で「(二分探索的な)printデバッグ時のコストが log2 N になる話が良く判らない」という感想が出たので、次回用にフォロー資料を書いてみたり。 再現性が良く、テストしやすいプログラムの場合、printデバッグは現代でも効率が良い問題究明方法。… https://t.co/M4FDQDATwG"
- なかのん&マジックさんのツイート: "Linuxで他のモジュール内部も含んだスタックトレースってどうやってとったらええんかな。"
- 秀の介@柏さんのツイート: "Debianならデバッグシンボルパッケージをインストールすれば良いようです。 https://t.co/59tgzJ1q1T… "
- Debian 9: デバッグシンボルのdbgsymでパッケージをデバッグする - Narrow Escape
- なかのん&マジックさんのツイート: "おー、ありがとうございます。やってみます。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ワーカースレッドが多いとデバッガで見たいスレッドを発見するのが手間になっていく。 デバッガでコールスタック解析して、同じコールスタックで眠っているスレッドは除外するフィルタ等があるといいのだが。 (VSSDKで作れるのかな?)"
- DrumatoさんはTwitterを使っています: 「自作バイナリに独自デバッグセクションを埋め込んで,それを解析するツールも実行プログラム基盤に埋め込めた!!! ・ユーザ空間に実装したローダ ・ --run オプション ・独自readelf ・ --relocs/-r オプション(これは一部) ・独自デバッグセクション ・独自readelfで解析可能 https://t.co/Qi4MMXf6Cs」 / Twitter
- DrumatoさんはTwitterを使っています: 「ユーザが特定のフォーマットでコメントアウトした時.それをバイナリから参照できるようにしたいな. 新しくセクションを打って,ヘッダからそれを参照する. https://t.co/4yGJ3PofaI」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「マルチスレッドでタイミング依存、高負荷でのみ発生、最適化に依存(大半はコード側問題の顕在化&稀に最適化バグ)といった経験を経て大人になる…そしてprintf(リングバッファ的なロギング系含む)の侵入副作用の小ささと環境非依存に「再び鮒釣りに帰ってくる老人」みたいな心境に(笑) https://t.co/ASEQrrDhhk」 / Twitter
- Kengo Sawatsu@日本カネ不足協会さんはTwitterを使っています 「永遠の初心者なのでprintf普通にします (gdbかました時だけ再現しない問題とか、普通に経験ある人多いんじゃないかなあ、。) https://t.co/rJoiNKKxEU」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「全力動作でないと問題発生しない系に対して、ロギング用リングバッファを作ってメモリ上でトレース&問題検出と同時にダンプ。後は大量に出たログを眺めて動作を脳内シミュレート(と一連の作業のイテレーション)した人も多いのでは。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「RS232C出力のコンソール画面だとフロー制御するので、stdout/stderr出力が固まるってありますね。 昔々、UNISYS WSで「システム動作が停止したぞ?」と大騒ぎになった時、誰かが画面電源をOFFにしていたオチ。(で画面ONにすると何事も無かったように動作再開…) https://t.co/sUzYc1gH5I」 / Twitter
- Kengo Sawatsu@日本カネ不足協会さんはTwitterを使っています 「あるあるある、。RT そしてfflush(stdout)もセットになったりします(笑) stderrがシリアルコンソールに物理的にひもづいててリングバッファからのflushが異常遅延してとかそういう思い出があったようななかったような https://t.co/ZLiLfjy5qJ」 / Twitter
- ryoさんはTwitterを使っています 「というかSMPでhardware watchpoint/breakpointを共有しないと使いものにならないというTODOを思い出した」 / Twitter
- herumiさんはTwitterを使っています 「https://t.co/bqgvd5sz7J ありましたね。 私が経験した中でレアなやつは コード整形しただけのはずなのに再起動するようになった(OSのバグ) gdbで起動するとgdbが落ちる実行バイナリ(gdbのバグ) 未定義命令で落ちる(VMのcpuidエミュレーションバグ) とか。そういうの集めてしゃべると楽しいかも。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「ログ出すとprintfがスタックをじわじわ使うのでそこで少しずつスタック拡張が起き、その次に呼ぶ関数でもスタックが使える ログなしだと該当関数がスタックを大量に確保していきなり前のほうを使うのだが、それをOSはスタック拡張と認識できず死ぬ というのがあったな…(光成さんも経験されてたような https://t.co/tjqpC7YVN8」 / Twitter
- uchanさんはTwitterを使っています 「まてまてまてまて!なんだこの現象は。ログ出力を1行加えたら現象が治まったぞ!?(OS開発あるある)」 / Twitter
- とみながたけひろさんはTwitterを使っています 「この現象に初めてはまった時は、リアルタイムOS厨だったので「スタックサイズ拡張なんて邪道だろ」とか思った記憶がある(中二病ぽい)」 / Twitter
- ryoさんはTwitterを使っています 「PACのコード読み。なんとなく疑問点が氷解した。なぜPACがポインタ全体を暗号化せずにunused bitだけに認証コード埋め込むのかは、ポインタの値を拾いたい場合もあり得るからか。今のところlrだけなのでbacktraceくらいだけど。」 / Twitter
- ryoさんはTwitterを使っています 「OpenBSDのRETGUARDはARM64 PACのソフト実装みたいな感じだが、こちらはspとreturn addressをxorしているので全bitが意味を為さなくなってポインタとしては扱えない。(が、db_traceでやってるみたいに自前でxorしなおせばいい)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「printfデバッグ、二分検索を念頭において print 文を足していった結果、少ないステップ数で原因絞り込めると快感」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「すべてのCファイルをいったんgccでコンパイルして、そのあと1ファイルだけ自作コンパイラでコンパイルしてリンクするみたいな方法でミスコンパイルしている場所は比較的簡単に絞り込めるので、デバグはあんまり難しくない。」 / Twitter
- ある🍄まじろう / 加来量一さんはTwitterを使っています 「printf() を挿入するとバグが止まることは本当によくあって、メモリ未初期化が収まるパターンとメモリ破壊がずれるパターンと、スレッドスケジュールが変わるパターンがある 特に最後のは気づきにくくて厄介」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「debuginfod (https://t.co/3WrAAVzHyn) を見ながら、やっとWiindows debuggerの世界の20年前に追いついたと。cdb/windbgだと20年前に出来たことだよな」 / Twitter
- Introducing debuginfod, the elfutils debuginfo server - Red Hat Developer
- Shinji KonoさんはTwitterを使っています 「結局、lldb 、Rust compilerに対して役に立ってない。デタラメに止めてstepくらいはできる。もう、debuggerの時代は終わりかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「アドレスが間違ってるので、nmの出力を解析できればアドレス直打ちで止められるかも。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「昔と違ってgithub上でかなりいろいろできるし。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「gdb/lldbはコンパイラとの連携がそもそもダメ。Dwarf formatは言語非依存を目指したものだが、それ自体が時代遅れ。コンパイラ実装でも負担になるだけだし、表示は、その言語自体が行ないと無理。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「サボってるのはgdb/lldb、あるいはソフトウェア工学そのものだな。なんか作るか。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「OSのdebugger APIも古色蒼然。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「lldb/gdbがうまくdebugできなくなってるのは、Rustだけじゃなくて、他の言語でもそう。C/C++でもだめ。」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「rustcに対してデバッガをかけたいというのは確かに大変そうだ…」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「optimized binary + debug infoに対してどれぐらいデバッガが効くのかは分からないな」 / Twitter
- κeenさんはTwitterを使っています 「そういうのなかったっけ?lspよろしくdebudder server protocolみたいなの。実装されてるかは知らないけど。」 / Twitter
- κeenさんはTwitterを使っています 「MSのDebugger Adapter Protocolか。これ微妙だな…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Rustc、一応、LLVMコード生成部分は捕まえられた。lldbは使い物にならなくて、gdbでもデータ表示はできない状態。40万行。」 / Twitter
- mumumuさんはTwitterを使っています 「Reverse Debugging of Kernel Failures in Deployed Systems [ATC '20] 既存のPERTというAppのReverse DebuggingのツールをKernelに適用する.Kernel固有の問題として,system callはすべてのアプリケーションが呼び出すため,どのような単位でトレースするか,割り込みをどうするか等に対処している」 / Twitter
- ぬるぽへさんはTwitterを使っています 「Logpoints, C/C++とかでもprintfと違って構造体をぶち込んで雑にログできて便利、という理想的な状態に反して実際は内容が省略されてしまう上に、表示がただのログアウトプットでブレークポイントと違ってインタラクティブなやつじゃないので中身をクリックして後から展開とかもできない」 / Twitter
- ぬるぽへさんはTwitterを使っています 「理想的にはdev toolsのconsole.log状態になってほしいわね」 / Twitter
- hsjoihsさんはTwitterを使っています 「@niw UTF-8 のデコードを覚えると Wikipedia とかのパーセントエンコードされた URL が読めるので実用的ですね。なお私は覚えてません」 / Twitter
- Yoshimasa NiwaさんはTwitterを使っています 「@hsjoihs ですねえ。デバッガとかでバイトそのまま読めたら便利だよなあと思った。」 / Twitter
bt
- shinichiro hamajiさんはTwitterを使っています 「@nullpo_head @kazuho 僕は普段は backtrace 吐いて死ぬけど、環境変数セットしてあると getpid 表示して wait する、くらいが好みでした。これみたいな: https://t.co/88ubOcbLzH これだと /proc/<pid>/maps 見に行くとか、 gdb 以外のこともできますし」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ソフトウェアを配布するにあたっては、質の高いバグレポートをもらうというのは死活的に重要で、そのためには、きちんとしたバックトレーサを同梱しておくと良いので、僕は今のところ * backtrace_symbols_fd をシグナルハンドラで実行 * その出力をaddr2lineに噛ませるようなラッパーを予め起動」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「という方法をとってます。cf. https://t.co/cDGwQzIg57 https://t.co/e4i17DHQ3X」 / Twitter
- h2o/main.c at 8ad43f45dd570e72e66cf2af70d8c6135c197776 · h2o/h2o
- Kazuho OkuさんはTwitterを使っています 「これでだいたい行番号付きのバックトレースが送られてくる。ビルドされたgit commit idも入れるべきだな...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @shinh @nullpo_head 実際のところシグナルハンドラ適用後に復帰する使い方ではないので、だいたいのケースで動けばそれでいいですね」 / Twitter
コールスタック
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「根の深い例外ダンプが送られてきた…起動時に作っているはずのメインObjのアドレスが0近傍になっている。 近傍=保持しているオブジェクト0でそのオフセット値という可能性高いも、何か合点がいかない感。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「類似状況を試したら、NTDLLを呼んでいる場合だけに現れる、一時的なコールスタック表示崩れの問題のようだ。 とはいえ、IP=0 でSEGV例外になった点は事実。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえばデバッガは、コールスタック途中のレジスタ復元どうやっているのだろう?(エピローグpushからスタック退避位置を推定?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「エピローグではなくプロローグ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「security cookie を有効のため、スタック破壊で0に飛ぶことは無い。 ということは、vtblの中身が破壊された?(obj ptrがnullの場合、vtblを引く操作でエラー=eipが0になる前に例外になるはず)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、ソースコードに bo_test() というコードを仕込んでいて、時折、有効化したビルドを行って、buffer overflow 時の挙動&ダンプの中身を確認している。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「なお、今時のVC++は bo時の例外ハンドラ起動を許さないので、そのx86/x64コードにnopを動的に入れることで、自前ハンドラに飛ばすhackを行っている。 (良い子はマネしない方が良い)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まあ年に数回であれば、ダンプを眺めるのは良い訓練。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「たぶん判った。 これは特殊な条件で、OS/デバドラ側が非同期でスタックを壊しに来てる…うーむ、どうしたものやら。」 / Twitter
Custom section(WASM)
- chikoskiさんのツイート: "custom sectionね。… "
- chikoskiさんのツイート: "Custom section の仕様:https://t.co/JUTEAiTUjA"
- Custom Sections — WebAssembly 1.0
int 3
histric-1
- まさみさんは語りたいさんのツイート: "https://t.co/RL88Qp8eam デバッグレジスタを使ったメモリアクセストレース(所謂hwbreakpoint)の例外発生パターンが、一部の命令だけ違っていることを見落としていた話。ほぼ全ての命令ではメモリアクセス命令の直前で例外が発生するが、スタックセグメント(SS)レジスタのPOPとMOVだけ命令の直後。"
- POP SS debug exception- CVE-2018-8897 [Moderate] & CVE-2018-1087 [Important] - Red Hat Customer Portal
- まさみさんは語りたいさんのツイート: "基本的には全てメモリアクセス命令の直前で止まっていると思って処理をするため、例外発生アドレスが指す命令を記録してエミュレートする(あるいはDRを一時的にクリアしてシングルステップ実行?)ことになるけど、同じ処理をするとMOV SSとPOP SSだけ2度実行されることになる?"
- まさみさんは語りたいさんのツイート: "うーん、なんかもっと深刻な酷さだぞ。何だこの酷い仕様。 the processor delivers pending interrupts and/or debug exceptions after the first instruction following when the stack switch is executed."
- まさみさんは語りたいさんのツイート: "普通スタックの切り替えはセグメント切り替え+スタックポインタ復帰の2命令で行われる MOV SS, [RAX] MOV RSP, RBP なのでデバッグ例外は2つめの命令が実行されるのを待ってから行われると。 ところが単に命令数をカウントしているだけなので、MOV RSPではなくSYSENTERとかだと・・・"
- まさみさんは語りたいさんのツイート: "MOV SS, [RAX] SYSENTER で、RAXの指すアドレスのリードアクセスをデバッグレジスタに指定すると、デバッグ例外がSYSENTERのハンドラ(ring0に変更済み)の先頭で発生する・・・? そうか、そうするとkaslrで移動させたアドレスがバレバレになるのか。"
- まさみさんは語りたいさんのツイート: "https://t.co/hhLvrHFK7i んー??CVE-2018-8897は違う問題か?icebp(ICE breakpoint)っていう隠し命令があるという話。"
- kernel/git/torvalds/linux.git - Linux kernel source tree
- まさみさんは語りたいさんのツイート: "icebp、胸熱命令だな。int3はBP例外を発生させるけど、icebpはDB例外を発生させることのできる命令らしい。ICEが繋がっているとそちらからハンドリングできるソフトウェア命令と。"
- まさみさんは語りたいさんのツイート: "https://t.co/hhLvrHFK7i 修正パッチが全く違うのは異なるCVE番号が付いているから。2つのCVEがあるという話らしい。"
- kernel/git/torvalds/linux.git - Linux kernel source tree
- まさみさんは語りたいさんのツイート: "icebpはint1か。linuxカーネルだとdo_debugでヒューリスティックにicebpではないかと推測して処理されるけど、kvmではvmxに明示的にフラグが立つので確実に処理できると。"
- まさみさんは語りたいさんのツイート: "Loading the SS register with a MOV instruction inhibits all interrupts until after the execution of the next instruction. This operation allows a stack pointer to be loaded into the ESP register with the next instruction (MOV ESP, stack-pointer value) before an interrupt occurs."
- まさみさんは語りたいさんのツイート: "If a code instruction breakpoint (for debug) is placed on an instruction located immediately after a MOV SS instruction, the breakpoint may not be triggered."
- まさみさんは語りたいさんのツイート: "However, in a sequence of instructions that load the SS register, only the first instruction in the sequence is guaranteed to delay an interrupt."
- まさみさんは語りたいさんのツイート: "In the following sequence, interrupts may be recognized before MOV ESP, EBP executes: MOV SS, EDX MOV SS, EAX MOV ESP, EBP えっ、なにそれ??"
- まさみさんは語りたいさんのツイート: "本当に一命令だけ遅延させるんかwww"
- まさみさんは語りたいさんのツイート: "あっ、これはIntelの聖典のMOV命令のところに書いてる。"
- まさみさんは語りたいさんのツイート: "2018 MayのIntel SDMではICEBPという名前が見えるけど、一箇所だけ、脚注にあるだけっぽい。"
- まさみさんは語りたいさんのツイート: "MOV SS/POP SSはシングルステップ実行のトラップも遅延させるぐらい強力なものなのか。kprobesの場合、MOV SS/POP SSは両方共booster対象なのでシングルステップ実行はしないけど、uprobesはヤバイんじゃないかな。"
- まさみさんは語りたいさんのツイート: "https://t.co/JlzgRoXsYf Andyの書いたテストプログラムに酷い仕様が書かれている。MOV SSのあとにint3を挟むと、なんとint3の例外は発生せずdebug例外だけ起きるらしい。"
- まさみさんは語りたいさんのツイート: "これからint3を入れるときには、事前に一つ前の命令を確認してmov ssではないことを確かめないといけないってことになるのでは。あるいはdo_debugで発生命令がint3だったときにはdo_int3を呼び出すとか。"
- まさみさんは語りたいさんのツイート: "んー?int3とbreakpointが別れて書かれてるということは、このbreakpointはhw breakpointのことなのか。じゃあ大丈夫かな?"
- まさみさんは語りたいさんのツイート: "最新のIntel SDMをダウンロードして、"MOV SS"で検索すると、凄いポピュラーな単語になっててワロタw"
- るくすさんのツイート: "CVE-2018-8897ようやくちゃんと読んだんですが、これは結局Linuxだと MOV SS, [RAX] INT 3 とすると、INT 3を実行して#BP用のISTが切り替わった最中に1行目のwatchpointにより#DBが届いてしまい、同じISTを使おうとしてカーネルクラッシュ→DoS という認識で良いのかな"
- るくすさんのツイート: "ただ一つ分からないのが、Linux以外で#DBにISTを使わずそのままカーネルスタックを使うような設計のOSだと"権限昇格"ができる可能性があると記述されているのだけど、これはどういう意味なんですかね..."
- まさみさんは語りたいさんのツイート: "MOV SS; INT3の場合、BP例外ハンドラの先頭でDB例外が発生→処理されてからBP例外が継続、なのでこのケースは気にしなくてもいいっていうことだな。むしろMOV SSにINT3入れるとSingleStepが出来なくて死ぬ。"
- るくすさんのツイート: "Linuxカーネル開発サイクルに関する一般的な質問なのですが、いくつかのパッチは、とりあえずマージせずにstable-queue(?)とかいうのに置いてあって、今回過去のパッチが脆弱性修正に繋がると判断したのでmainlineにマージしました、という認識であってますか?… https://t.co/WNYer77UF4"
- まさみさんは語りたいさんのツイート: "というわけでkprobesとuprobesのパッチ作っているなう。"
- まさみさんは語りたいさんのツイート: "mov hoge,%ssなんて見つかるわけ無いだろー?とか思ってたら案外_switch_toでさっくり見つかって驚いている。"
- まさみさんは語りたいさんのツイート: "LSS使えってSDMに書いているのに、結構ポピュラーなんだ・・・。"
- まさみさんは語りたいさんのツイート: "まあ、実行される箇所はポピュラーだけど、実際にこれ以外にはsecondary_startup_64ぐらいでしか見つからないので、ポピュラーとはいえないか。"
- まさみさんは語りたいさんのツイート: "arm64のpatch_textの実装確認したらstop_machine使ってた・・・まじか。"
- まさみさんは語りたいさんのツイート: "stop_machineはかなり重い処理だから、余り使いたくない。特にコア数が増えるとものすごいジッタが発生するはず。IPI送って、それぞれのコアの待ち合わせを行った上で、処理をしてる間も止まってるわけだから。"
- まさみさんは語りたいさんのツイート: "x86の場合はint3使って迂回路を生成して書き換えるっていうkprobes由来の方法が一般化されて利用されてる。さらにエイリアスページを使う念の入りよう。"
- Kazuho Okuさんのツイート: "Linuxの USDT サポートが /proc/<pid>/mem を開いてフラグを書き換えたり、おそらく同時に NOP -> INT3 してることはわかったけど、INT3 受け取ったカーネル内での、デバッガ呼び出しと eBPF 呼び出しの切り分けはどうやってるんだろう"
@mhiramat
- まさみさんは語りたいさんのツイート: "おっ、綺麗にスタックが出た!っとおもったら何故か PC is at _raw_spin_lock_irqsave+0x2c/0x6c これはひどい。(多分メモリ領域壊している)"
- まさみさんは語りたいさんのツイート: "にわかには信じられないけど、この2つの関数の組み合わせだけで起きる。一つずつだと起きない。関連性が全く分からん。"
- まさみさんは語りたいさんのツイート: "ウオオオわかった https://t.co/SVYRV1RS1v kprobe on arm、お前・・・未定義命令だったのか・・・"
- まさみさんは語りたいさんのツイート: "いやそれはおいておいて、アセンブラを書く羽目になっている"
- まさみさんは語りたいさんのツイート: "よし、本件についてはクローズしたとみなす。"
- まさみさんは語りたいさんのツイート: "あちゃー、まずいな。ftraceとperfの両方がそれぞれ違うring_buffer構造体を作ってるんだけど(同じ名前で)、debug情報がこれをごっちゃにしているのが分かった。ftraceのring_bufferをダンプするとperfのring_bufferの型をつかってダンプしよる・・・。"
- まさみさんは語りたいさんのツイート: "えっ、これgdbのバグ?binutilsのバグ?gccのバグ??"
- まさみさんは語りたいさんのツイート: "IDA/radare2 というのを使って逆アセンブルする。radare2というのがベーシックブロック解析付きの逆アセンブラみたいな感じ? #kernelvm"
@fadis_
- Fadisさんのツイート: "CPUを初期化ペリフェラルの初期化、DRAMの初期化をした後u-bootは自身をRAMにコピーしてそこにジャンプする。→ アドレスが変わるためgdbで追うのが辛い → relocateaddrを調べてgdbでadd-symbol-fileする #kernelvm"
- Fadisさんのツイート: "書いたコードがSEGVで停止するのは幸運なケースだ。本当に面倒なバグは配列の範囲外だけど書き込み可能なページ内をしれっと書き換えていく"
- Kazuho OkuさんはTwitterを使っています 「CI で asan だけコケてるの見て、これはなんか遅い場合だけ出るタイミング依存のバグかなーってんで考えて、テストコードいじって再現成功して、USDT probe 使って原因つきとめて、修正パッチ書けたから今日はいい日」 / Twitter
- まさみさんは語りたいさんのツイート: "Googleのエキスパート Chromeのフリーズを直すまでの奮闘記 #ldnews https://t.co/yRsSKYWcbX 面白い。メモリ断片化でフリーズって、昔はサーバの問題だったのに。"
- Googleのエキスパート Chromeのフリーズを直すまでの奮闘記 - ライブドアニュース
- C++でOS自作 技術書典5 お05さんのツイート: "研究ではC#に対して実装してた。事前に対象プログラムにデバッグコードを埋め込むことで、ステートメント単位の実行、変数の値の取得などを行っていた。C++でやるとしたらLLVMでASTを取得して書き換えれば同じことができそう。"
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「実行時エラーのほうが具体的な実行コンテキストがある分、バグを潰しやすいと思う。なので、コンパイラがエラーを吐く時には、具体的にどんな実行コンテキストだとどのような実行時エラーにつながるかを例示して、実際にそのような実行トレースを生成してデバッガを起動して欲しい。」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「コンパイルエラーが厳しいって意見、しばしば見ますけど、それ実行時エラーのほうがいいですか……?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「面白い。けど処理の性質次第という気も。 木構造の制御に直接データが流れる場合、コンテキストの情報はスタックに乗ってるけど、高階関数を渡して制御グラフを組み立ててからデータを流すような処理の場合、実行時エラーが出た時には「組み立ての手順」はもう見えないことが多い。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「静的解析のサポートが欲しいのは後者のような場合で、「エラー時の実行環境を見れば分かる」ようなバグならあまり必要性は高くないとも言える。 あと後者で静的にエラーが出た場合は、そもそも「実行可能な組み合わせが作れない」ということだから実行時エラーを例示することも不可能だったり。」 / Twitter
- DQNEOさんはTwitterを使っています 「あ、こんな便利記事あったのね。今まで完全に自己流でやってたわ...w https://t.co/AahEJT2gxh」 / Twitter
- Debugging Go Code with GDB - The Go Programming Language
- 小崎資広さん「人に依存しないデバッグのために,道具の使い方を知ってほしい」〜RubyKaigi 2015基調講演 2日目:RubyKaigi 2015レポート|gihyo.jp … 技術評論社
- デバッガのための実行基盤の実装について
- ぬるぽへさんはTwitterを使っています 「外部入力がデフォルトで分離されてて内部に非決定性の無いwasmは、実装がめっちゃ簡単なのでデバッガはtime travel debugできるのが標準になってほしい、そしてproxy-wasmとか組み込み環境にとってこそデバッガがタイツトラベルを標準サポートしてくれるとめっちゃ嬉しくない??」 / Twitter
- Add wasminspect as source-level debugger by rhysd · Pull Request #1 · vshymanskyy/awesome-wasm-tools
LLVM bugpoint
- Miura HidekiさんはTwitterを使っています 「将棋みたいにデバッグのための操作をしたらそれがどのくらい有効か点数が出るAIがあるといいのに。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「いや、本当に有効なデバッグ方法は再現する最低限のプログラム・入力データを切りだすことって分かっているんですけどね...。この作業ははっきり言って面白くない。少なくともそれ以外のprintf/breakpointで試行錯誤するデバッグより」 / Twitter
- LLVM Bugpoint | Logan's Note
- LLVM bugpoint tool: design and usage — LLVM 13 documentation
- llvm bugpoint - Google Scholar
- Concolic testing - Wikipedia
- QuickCheck - Google 検索
- C-Reduce
- csmith-project/creduce: C-Reduce, a C program reducer
- Test-Case Reduction for C Compiler Bugs - pldi12-preprint.pdf
- uint256_tさんはTwitterを使っています 「@tenpoku1000 @miura1729 https://t.co/OxQx1TyBUX コードを見ればわかりそうですね(大したことはやっていないように見える)」 / Twitter
- llvm-project/llvm/tools/bugpoint at main · llvm/llvm-project
クラッシュダンプ
MS
その他
- usskim / ワトソン博士
- Windbg を用いたリモートデバッグ - Web/DB プログラミング徹底解説
- Debug Diagnostic Tool を利用したクラッシュ時のデバッグ方法 - Web/DB プログラミング徹底解説
- 「ReadProcessMemory 要求またはWriteProcessMemory 要求の一部だけを完了しました」と出てアップデートが出来ません - HASP
- めもりーくりーなー 「ReadProcessMemory 要求または~」と出る?
- Windowsプログラミングそこそこ役に立つサンプル集-[API-ReadProcessMemory]
- Windows:Windows Error Reportを使ってプロセスがクラッシュした際のダンプファイルを取得できるようにする設定方法
- NKY-TECH. ソフトウェア開発部: プロセス ダンプ(ユーザー ダンプ)の作成
- デバッガを接続していないアプリが不正終了した時にミニダンプを作成する方法
- 「その場で」と「あとから」と成功体験 - NyaRuRuが地球にいたころ
- 他プロセスのメインモジュールのエントリーポイントアドレスを取得したい。 • C言語交流フォーラム ~ mixC++ ~
- i4shamrock - きままに情報発信
- メモリダンプから様々な情報を抽出するためのオープンソースのツール : volatility
- IBM MustGather: Windows でのアプリケーションやシステムハングの診断情報収集について - Japan
- DSAS開発者の部屋:Win32 プログラムのデバッグTips (1)
- Windows 10 Active Memory Dumpとカーネルメモリダンプ
- Windows 10 Active Memory Dumpとカーネルメモリダンプ
- Windows XP/7/8/10のセッションとプロセス
- Impact of Session 0 Isolation on Services and Drivers in Windows - Windows 10 hardware dev | Microsoft Docs
Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "MiniDumpWriteDumpで特定の仮想アドレス範囲を除外したダンプを作るには、MiniDumpCallbackを用意して、ごにょごにょすれば可能なはずなのだが、どうも上手くいかないな…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "IPMsgで例外ダンプが送られてきて解析したのだが、ダンプから推測した範囲ではNICにIPアドレスを100個以上付与している環境らしかった。(例外発生はそれに起因) ともあれ、ミニダンプは解析にとても役立つ。 https://t.co/Q9gepzbHfG"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "例外ログ(スタックのhexデータ)から手動で関数フレームを辿る計算をしていた時代に比べると、統合環境から解析できるようになったのは、徒歩から新幹線くらいの差がある…(稀に脱線して使えないときは、想像力+手計算が有効な場合も)"
- Windowsで不要なデータを除いたダンプを作成する
- Windowsで不要なデータを除いたダンプを作成する
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、delete [] p; のようなコードで例外発生していた。 ダンプ解析経験者なら皆ご存じの通り、メモリ開放中の例外は解析が困難なことが多い。(原因箇所よりも後で例外発生のため、原因箇所が確定しづらい) ただ幸い今回は原因箇所と例外発生が近かったため、比較的スムーズに解析できた。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ヒープではなくスタック侵犯だと、カナリア検出で例外発生となるはずだが、関数フレームも壊れている可能性が高いため、解析はかなり困難になる。 (とはいえ、(カナリアなしで)存在しないメモリ番地に飛んで落ちるよりはマシで、命令アドレスは一応見える、はず)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみにVCライブラリのカナリア処理は、例外ハンドラ登録(SetUnhandledExceptionFilterで登録した関数)に遷移せずに強制終了するコードになっている。 (IPMsg/FastCopyではここにメモリ上でパッチを当ててダンプを出してから強制終了するようにしている)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "といったことを書くと、未だにメモリ管理で消耗してるの?とか煽られる時代になった気も…いや、それはそれで正しいんですが。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Wine上で作成されたミニダンプがVisualStudioでそれなりに見える。"
- Minidump Files (Windows)
- MINIDUMP_TYPE enumeration (Windows)
- ReadProcessMemory 関数
- クラッシュ ダンプの分析
- メモリ ダンプ ファイルを生成する方法について | Ask CORE
- OCA ミニダンプ ファイルをデバッグする - Windows 10 hardware dev
- Using WER (Windows)
- クラッシュが発生した場合に、Windows によって作成された最小メモリ ダンプ ファイルを読み取る方法
- Windows でシステム障害と回復のオプションを構成する方法
- クラッシュ後 Windows でメモリ ダンプ ファイルが保存されない
- Windows Server 2003 でカーネル ダンプ ファイルや完全メモリ ダンプ ファイルを生成する方法
- シンボルを使用したデバッグ
- Windows シンボル パッケージのダウンロード - Windows ハードウェア デベロッパー センター
- Symbol Files (Windows)
- DBG ファイル
- Windows ベース システムでは、NMI を使用して、完全なクラッシュ ダンプ ファイルまたはカーネル クラッシュ ダンプ ファイルを生成する方法
ブルースクリーン
- 本の虫: Old New Thing: ブルースクリーンを書いた人間は、まあ、僕さ
- クラッシュ・ダンプ - マイクロソフト系技術情報 Wiki
- @IT:Windows TIPS -- Tips:障害調査用のメモリ・ダンプを無効にする
- 一方、ふうえんさんちでは… メモリ異常によるブルースクリーンの対処法
- WinDbg
- デバッグにあると便利なシンボルとは? - Web/DB プログラミング徹底解説
- DBGファイルを活用する方法
- なかのん&マジックさんのツイート: "とりあえず、BSODはドライバが原因の場合は、どれがクラッシュしたのかの情報を明示して欲しい。「最近、追加したハードウェア、または更新したソフト」みたいな文言は、自動アップデートが当たり前な昨今、ナンセンス。"
- なかのん&マジックさんのツイート: "BSODの画面上デザインを変更するときに、なんで、根本的に分かり易いエラー内容表示にしようとしなかったのか、割と不思議に思ってる。"
マルチスレッド
- Windows C++ マルチスレッドアプリケーション デバッグ法 | Wander Alone Like A Rhinoceros Horn
- めんどうくさいSQL Serverのデバッグ (1/2):EnterpriseZine(エンタープライズジン)
- gdbでのマルチスレッド処理のデバッグや制御について - 千里霧中
- (第22回)GDBのスレッド対応(その5:スレッド切替えとまとめ)
- Debugging with GDB: 5.4 マルチスレッドプログラムの実行停止と実行再開
- Debugging with GDB - 停止と継続
マルチプロセス
- Debugging with GDB - GDB配下でのプログラムの実行
- Debugging with GDB: 4.11 forkするプログラムのデバッグ
- 既に起動しているプロセスをgdbで制御する:Geekなぺーじ
- マルチプロセスデバッグと資源割り当てで思いを馳せる | Everyday Deadlock
kdump
- kdumpでダンプを取得する方法
- 26.2.3. コマンドライン上で kdump の設定 - Red Hat Customer Portal
- 第26章 kdump クラッシュリカバリーサービス - Red Hat Customer Portal
- 第1回「 kdump ノススメ」 | NTTデータ先端技術株式会社
- カーネルダンプ出力設定メモ - Qiita
- kdump
- CentOS 6 で kdump の設定をしてみた | 黒ぶちメガネのblog
- ◇Kdump(CentOS6)◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆
- kdump (Linux) - Wikipedia
- Kdump - ArchWiki
POSIX
- Solarisでいきましょか? -クラッシュダンプ(PANIC)-
- ダンプ解析講座 ~第3回 ダンプの構造~ | VA Linux Systems Japan株式会社
- Executable and Linkable Format - Wikipedia
- Tips ELFフォーマットその1 ELFフォーマットについて
- gdb - ELF core file format - Stack Overflow
- Anatomy of an ELF core file - /dev/posts/
- A brief look into core dumps
- Man page of CORE
- core(5) - NetBSD Manual Pages
- How to read/write memory in an external process
- Microsoft/ProcDump-for-Linux: A Linux version of the ProcDump Sysinternals tool
Android
- Crash Fast: Androidのクラッシュに対するSquareのアプローチ
- Google – www.developer-plus.com
- xuningjack/JCrash: Android自定义异常处理模块(Based on KSCrash)
Java
- システムのクラッシュ
- JVMのクラッシュ
- ポストモーテム診断ツール
ストレートマップ
- 魔術師見習いのノート
Wikipedia
- Memory corruption - Wikipedia
- コアダンプ - Wikipedia
- Core dump - Wikipedia
- クラッシュ (コンピュータ) - Wikipedia
- ブルースクリーン - Wikipedia
- Blue Screen of Death - Wikipedia
GitHub
- pd: process dump
- glmcdona/Process-Dump: Windows tool for dumping malware PE files from memory back to disk for analysis.
Twitter
その他
- Fadisさんのツイート: "Linuxカーネルにクラッシュしたとき代わりのカーネルを上げてデバッグする仕組み(kdmup)があるようにsystemd死んだら死んだとき用systemdが上がってくる必要がありそうなヤツだ…"
- ぶんちょうさんのツイート: "次鳥小屋作るとしたら、どう考えてもwebサーバーがsandboxのwsサーバーのアドレスと認証キー返すようにして、ブラウザはそこに繋ぎに行くだけの設計にするんだよな"
- メモリダンプと模様が見える男|kamezawa.hiroyuki|note
- Makoto Kato ︎︎さんはTwitterを使っています 「MSのPermier Supportだと一日数本ダンプ解析の依頼来てたけど (今はしらない)、ジュニアなエンジニアに解析させると、わからないのに頑張って調査しようとするから、あれをジュニアな人たちにやらせるのはそんなに良くないんだよな。個人的にはダンプ解析なんてジグソーパズルみたいなものですよ。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「NとかFとかHとかが中途半端に解析してきたログを見ると、半分以上見当違いな調査してて、まぁなんというか、センス問われる」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「というかWindowsでもそうだったけど、論理的な原因理由がないとクラッシュダンプの痕跡だけだと、直さないの普通じゃない?日本のパートナー企業はそういうところで変なこと言い出して揉める印象」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「もちろん政治的に揉めた案件とか、信頼できる人からの修正リクエストだと、必ずリジェクトされることではないが。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「ただダサすぎな例外もあって、組織として (WinDiv) 、クラッシュレート下げろっていう指令がトップダウンで落ちてした時なんて、よくわからないワークアラウンドコードが入ったりしてた」 / Twitter
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WinFsp(Windowsファイルシステムプロキシ)、Windows版Fuseの一種らしいが、実用レベルで使えている印象。 https://t.co/eNNuJ4AUF7 (ドイツから、FastCopyに例外が出るという連絡で知った)"
- Main | WinFsp
- billziss-gh/winfsp: Windows File System Proxy - FUSE for Windows
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ダンプ解析したところ、WNetGetUniversalName が成功を返しているのにlpUniversalNameがNULLなのが原因。 WinFspの互換性が微妙に足りていないのか、WNet系に渡せないという意味で意図的にNULL?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ともあれ、こういう類の解析は嫌いじゃないなぁ。 次のバージョンから、ミニダンプも入れる予定。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「例外ダンプは無駄にスカスカなので、zlib圧縮化。 8MB -> 0.9MBと約1/9くらいに。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「このバージョンから例外ダンプをzlib圧縮したので、1MB未満になることが多くなるはず。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「内部エラーが検出された時は、「内部エラーが発生しました」などを表示するより、安全にクラッシュさせてdumpを送ってもらった方が良いな。 (滅多にある話ではないけれど)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「プログラマーの特性として、クラッシュはつい禁忌しがちだけど、自前ダンプ機構を実装しているときは意識を変えたほうが良さそう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「確実にクラッシュさせる方法についての議論。 Redisは *(char*)-1 = 'x'; らしい、、、正確には未定義かもだが、現実的なコードと。 https://t.co/1oQ24rkm74」 / Twitter
- What is the easiest way to make a C++ program crash? - Stack Overflow
- 蒲地 輝尚さんはTwitterを使っています 「@shirouzu これほんとそうですね。例外をつかまえてエラーメッセージを表示するほうがユーザーにとっては親切かと思うんですが、クラッシュダンプがないと例外の本当の原因がわからないままになってしまう。そして開発者に通知されることもなくいつまでも残ってしまう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tkmc そう思います。 Windowsだとダンプ出力の送付は、ユーザにおまかせ(メール等)という感じなのですが、Android/iOSは送信する仕組みがあるのでしたっけ。」 / Twitter
- 蒲地 輝尚さんはTwitterを使っています 「@shirouzu ユーザーが診断情報の提供に同意していれば、クラッシュ時の状況が自動送信されます。Androidはこれがないととてもデバッグしきれませんでした。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tkmc それいいですね。Windowsにも搭載して欲しい…」 / Twitter
- 市川 真一さんはTwitterを使っています 「@shirouzu @tkmc 法人なら WER が使える可能性がありそうですが、書籍「Advanced Windows 第5版 下 第26章 エラー報告とアプリケーションの回復」に書かれています。利用経験がないので、今でも使えるのかは不明ですが: Windows Error Reporting - Win32 apps | Microsoft Docs https://t.co/KaOtfJd86g」 / Twitter
- Windows Error Reporting - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tenpoku1000 @tkmc ありがとうございます。 あのレポートシステムは、MSしか使えないかと勘違いしてました。」 / Twitter
- 蒲地 輝尚さんはTwitterを使っています 「@shirouzu @tenpoku1000 これでデバッグが捗る! ^^」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++ だと __debugbreak() を使うのが良いかも。 (例外コードが int3 ... 0x80000003 になり、SEGVの 0xC0000005 と間違わずに済む) https://t.co/tQf6IPaSEl」 / Twitter
@vyv03354
- vyv03354さんのツイート: "@piro_or Cu.crashIfNotInAutomation(); で、Mozillaの自動テスト環境以外なら「安全に」(メモリ破壊を起こさず)クラッシュさせられます。"
- vyv03354さんのツイート: "Firefox 62からabout:crashparentとabout:crashcontentが追加されて、さらにお手軽にクラッシュさせられるようになりました。 https://t.co/VqsGtkKKYQ… "
@rockridge07
- Rockridgeさんのツイート: "Firefoxのクラッシュ率を分析・比較するMission Controlは、現在も開発中。2018年後半に正式版へ。参照:https://t.co/qXKKoCRgB0 / “Mission Control update” https://t.co/LLhyatSRac"
- Rockridgeさんのツイート: "Mozillaが測定しているFirefoxのクラッシュ率は、検知したクラッシュ数をアクティブな利用時間で割って算出しているらしい。Android版は利用時間が少ないため、デスクトップ版と率を比べるのが困難だという。 / “Fir…” https://t.co/j9zbp45uKr"
- Rockridgeさんのツイート: "Mozillaはユーザーからのデータ収集を必要最小限にとどめ、データを収集する場面ではユーザーに通知し、収集したデータはきちんと保護するという。 / “Lean Data Practices — Mozilla” https://t.co/R2QpFKzoGn"
@satoru_takeuchi
- satさんのツイート: "「ハードが悪い」って、言葉にすると簡単なんですが、サポートからしたら重い言葉です。直接ハードが犯人である証拠は掴みづらいので、だいたいは「ソフトではありえない」という方法で証明する必要があります。これがかなりつらい"
- satさんのツイート: "さらにハード屋さんに通じる言葉(たとえば論理CPU番号でなくLAPIC ID、とか)でボールを渡さなきゃいけない、とか。その後ハード交換しても再発したら交換したハードの原価と工賃をドブに捨てることになりますし、「おい、話が違うやんけ」となって泥沼"
- satさんのツイート: "体感ではカーネルパニックの殆どはソフト(カーネル)バグで説明付きましたね。メモリを含む「ソフトではありえない。これはハードだな」ってケースはかなり珍しい"
@jeffi7
- Taisuke 'Jeff' Inoueさんのツイート: "これが組み込みになると「ごめん、ハードやったわ、リメーク、リメーク。あ、ワークアラウンドこれね。」ってのがそこそこの頻度であるので(ry… "
- Taisuke 'Jeff' Inoueさんのツイート: "スマホとか競争が激しくて先を争って新しいハードを積むやつは、チップセットもボードも、従ってBSPやドライバも、ほんでOSもみーんな新規だったりするので、枯れてるのはカーネルくらい。低レベルがおかしいってなったら、ハード屋とソフト屋ががーっと集まって一緒にデバッグしてましたね。… https://t.co/PsrMiMaTgX"
@d_toybox
- sanonosa(インフラエンジニア)さんのツイート: "経験的に、OSのブルースクリーンやカーネルパニックはメモリ故障起因が多い。CPU使用率いきなり100%継続はストレージまわり起因。NIC link upがいきなり1Gbpsから10Mbpsとかに落ちるのはLANケーブル不良起因。この手の話しをうまく本に収めたいけどうまく書けなくてつらい。"
- なかのん&マジックさんのツイート: "私の経験では、BSODはドライバのバグも多い。"
- なかのん&マジックさんのツイート: "クラッシュしてる理由は納得だけど、nsIFrameのアドレスが全ビット1になってるの、どういう状況なんだっけ。 / [@ mozilla::PresShell::EventHandler::EventTargetData::SetFrameAndComputePresShell] - Firefox 67.0 Crash Report https://t.co/O2BygMnkGZ"
- [@ mozilla::PresShell::EventHandler::EventTargetData::SetFrameAndComputePresShell] - Firefox 67.0 Crash Report - Report ID: 1890d652-b339-4bf5-bfa9-b44560190605
- Makoto Kato ︎︎さんのツイート: "ハードウェアエラーによるビット化けかUse After Freeかと… "
- なかのん&マジックさんのツイート: "確かnsIFrameのインスタンスはPresShellが用意してる広大なエリア上に確保されるんで、delete時にわざわざビット立ててるかもしれないんですけど、そのコードをまだ発見していないんですよね(セキュリティのために元データを消してしまう話があったような)。… https://t.co/eClb9YWEoL"
@mhiramat
- まさみさんは語りたいさんのツイート: "うッ・・・新人の時に最初に担当したカーネルロックアップ(しかもしばらくしたら復帰する)が、どうやって調べても当時最新技術だったHTが絡んでいたのではないかというトラウマが。(タイミングよく全スレッドでSpinlock取り合うと、関係ないロック同士でも動作がめちゃくちゃ遅くなる)"
- まさみさんは語りたいさんのツイート: "まあ、あんなにハードウェア由来の問題だったのはあとIA64サーバで起きたロックアップ問題ぐらいだし、初物のハードウェアは老舗であっても問題が多いっていうことですね。"
- 障害の事後分析を読んで得た教訓 ― 「何がシステムを停止させるのか?」 | 開発手法・プロジェクト管理 | POSTD
- Go言語のトラブルシューティング機能 // Speaker Deck
- エラーレポートツール - LibreOffice Help
- 暗号屋から見たEメールの死について(EFAIL解説) - そんなことはさておいて
- Webシステムへのアクセス集中時に処理要求を待ち行列で管理するWebアクセス制御システム「WebLobby」を発売|日立ソリューションズ((旧)日立システムアンドサービス)
- iOS13にバグが多い理由、元Appleのソフトウェア技術者が語る - iPhone Mania
- Linux 版の Sysinternals ProcDump を試す (1) - hibomaの日記
- Linux 版の Sysinternals ProcDump を試す (2) - hibomaの日記
- Windows の予期しない再起動が発生した原因について | Microsoft Docs
- イベント ID 41 に関する高度なトラブルシューティング-"システムは、最初に正常に起動していない状態で再起動しました" | Microsoft Docs
- メモリダンプの模様とはどのようなものなのか(入門編) - 覚書
- 第673回 カーネルのクラッシュ情報を取得する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第674回 カーネルのクラッシュ情報を解析する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- SODA NoriyukiさんはTwitterを使っています 「BSD系等ではまだ「ps -M /dev/mem」でカーネルメモリを直接読んで動いたり。 残ってる理由は-Mでkernel crash dump ファイルを指定して postmortem debug する用途がまだあるから。 あとBSDでは/procファイルシステムは必須じゃないので、psのデフォルトではsysctl(2)でプロセス情報を取得します。」 / Twitter
SEH
MS
例外処理 (x64)
- 例外処理 (x64)
例外処理とデバッガー サポートのためのアンワインド データ
- 例外処理とデバッガー サポートのためのアンワインド データ
- 構造体 RUNTIME_FUNCTION
- 構造体 UNWIND_INFO
- 構造体 UNWIND_CODE
- チェーン アンワインド情報の構造
- アンワインド プロシージャ
- 言語固有のハンドラー
MASM のアンワインド ヘルパー
- MASM のアンワインド ヘルパー
- 生の擬似演算
- MASM マクロ
- スタック割り当て
- 動的なパラメーター スタック領域の構成
- 関数の型
- malloc アライメント
- alloca
- C でのアンワインド データの定義
- Visual C++ での例外処理
- C++ 例外処理
- 構造化例外処理 (C/C++)
- Structured Exception Handling Functions (Windows)
- Structured Exception Handling Structures (Windows)
- RtlUnwindEx function (Windows)
- Masaru IritaniさんはTwitterを使っています: 「今日は同僚の方に Stowed Exception について教えてもらいました。記録されたときにはもう居ない、幽霊のような例外ですね。運が良ければ手掛かりが掴めるかも、と…… https://t.co/mQ5hmLZ8KL」 / Twitter
- Stowed Exception C000027B | Inside Show | Channel 9
x64
Vectored Exception Handling
- Vectored Exception Handling (Windows)
- Using a Vectored Exception Handler (Windows)
- Windows ベクトル化例外処理 (ベクタ例外処理, VEH) - Web/DB プログラミング徹底解説
- GCとか継続とか例外処理とか | 日々の反省1
- W64.Shruggle.1318 | シマンテック 日本
- Exploring the x64
- www.ffri.jp/assets/files/research/research_papers/psj10-murakami_JP.pdf
- 16.2. win64 Structured Exception Handling
- X64 の TrapFrame は信用できない? - Beyond the Basics - Windows Debugging & Troubleshooting Blog - Site Home - TechNet Blogs
- japanese.sugawara-systems.com/systemverilog/movement_to64.htm
- X64 Deep Dive - moon-walker's tech blog
- Makoto Kato ︎︎さんのツイート: "Windows x64とかarm/aarch64のehabiなら例外はunwind infoからスタックがとれるのにね。。。今時じゃないABIは。。。"
- Makoto Kato ︎︎さんのツイート: "dwarfいらず"
x86
SEHOP・EMET
- Preventing the Exploitation of Structured Exception Handler (SEH) Overwrites with SEHOP – Security Research & Defense
- SEHOP per-process opt-in support in Windows 7 – Security Research & Defense
- SEH_Overwrite.pdf
- EMETReport.pdf
- Application Compatibility Database - Google 検索
- www.ffri.jp/assets/files/monthly_research/MR201307_Investigation_into_EMET4.0_JPN.pdf
- エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~番外編SEHOP~ « 他人の空似
- EMET 4.0/4.1のSEHOPおかしくね? - Togetter
- Nothing but Programming: SEH and SEHOP 現在の疑問
- SEH and SEHOP 現在の疑問 とりあえず解決? | JugglerShu.Net
- WindowsでEMETを回避するシェルコードを書いてみる - ももいろテクノロジー
- Microsoft、脆弱性緩和ツール「EMET」の開発を終了 - 窓の杜
- EMET の新しいバージョン V.2.1 をリリースしました! – 日本のセキュリティチーム
- EMET は Windows 10 Defender Exploitation Guard へ統合されます – 日本のセキュリティチーム
- EMET II のさらに先へ – Windows Defender Exploit Guard – 日本のセキュリティチーム
- Enhanced Mitigation Experience Toolkit - Wikipedia
- How to enable Structured Exception Handling Overwrite Protection (SEHOP) in Windows operating systems
- Bypassing SEHOP
- Bypassing SEHOP
- /SAFESEH (安全な例外ハンドラーがあるイメージ)
- C言語系/memos/VC++/11, 構造化例外処理と"/SAFESEH"リンカオプション - Glamenv-Septzen.net
- 15.2. win32: Safe Structured Exception Handling
- Nothing But Programming - SEH
- A Crash Course on theDepths of Win32 Structured Exception Handling, MSJ January 1997
C++
C 関数を通過する例外
- herumiさんのツイート: "yupo5656さんの記事は大昔読んだことあります。 でも何年か前に試したときは動くようになってました。 https://t.co/dlq1b8gKsS 今試したらyupo5656さんのコードも落ちないようです(gcc-7, clang-6.0)。 https://t.co/XH6ke51Hnr"
- misc/cpp/throw_in_c at master · herumi/misc
- yohさんのツイート: "#nakamecpp で @herumi さんが言及してたC関数を例外通過する件 https://t.co/htNaOeUAVO https://t.co/pNgUzZwXUe GCCでも明示的に-funwind-tables指定が要るような気はするけどどうだろう"
- herumiさんのツイート: "Visual Studio 2017だと/EHaオプションでCの関数内で呼んだC++関数のthrowをcatchできました。"
- herumiさんのツイート: "どの程度のcallbackを想定されていらっしゃるのかわかりませんが、 https://t.co/dlq1b8gKsS のu.cpp, v.c, w.cpp程度のcallbackは動きました。 https://t.co/mKqYU5BETm"
- misc/cpp/throw_in_c at master · herumi/misc
- にゃははー仙人さんのツイート: "動きましたというのはabortせずにということですよね?考えてたのはまさにextern "C"でリンクするのではなく、関数ポインタを渡すようなものです… "
Twitter
- Fadisさんのツイート: "C言語のerrnoはその場で見なければ失敗が無視されるから拾っていなければ直ちに不具合だけど、C++の例外をその場で拾うべきかどうかは、その場で起こった問題からの回復が可能かどうかに依る。bad_allocする状況は多くの場合回復不能な状況だからそのままabortするしかないケースは少なくない"
- Fadisさんのツイート: "あと、bad_allocを拾って標準出力にデバッグ情報を書こうとするマンは、メモリが全く確保できない状況でそれを行うと何が起こるかについて少し考えてみてほしい。bad_allocが飛んできた時にできることは本当に少ない"
- Ryou Ezoeさんのツイート: "メモリ確保失敗したときにできるのは実質terminate()だけなんだからterminateしようぜ、メモリ解放とかはアロケーターに仕込んどくべきだろとウォルターブライトが言っていたな。… "
- オスツ🍣さんのツイート: "うおおおお、2 週間ぐらい超悩んだ、なぜか C++ の例外が AArch64 で GCC 5/6 では動かなくて、7 では動くという問題。最終的に __builtin_eh_return が異常挙動という所まで追い詰めで、GCC のソース差分見て、7 では omit-frame-pointer 時でも強制的に fp を埋め込むというハックが入ったことを発見"
- Ryou Ezoeさんのツイート: "例外を一部の場合にゼロオーバーヘッドにすりゃお前ら使うだろという提案。 https://t.co/2nH5hQlHyd"
- p0709r1.pdf
- Ryou Ezoeさんのツイート: "例外がゼロオーバーヘッドの原則を満たすようになれば無効化されないしみんな使うだろうという考えのもと、特別な整数型ならばreturnで戻してif文で比較するのと同じパフォーマンス特性にしてしまおうという提案。"
- C++ 例外処理と構造化例外処理 (1) - Web/DB プログラミング徹底解説
- C++ 例外処理と構造化例外処理 (2) - Web/DB プログラミング徹底解説
- VC++構造化例外メモ(Hishidama's VC++2005 SEH Memo)
- How a C++ compiler implements exception handling - CodeProject
- LLVMで例外を実装するには - 近&況
- Exception_basic_struct
- 本の虫: C++に提案されている静的例外
Wikipedia
- Microsoft-specific exception handling mechanisms - Wikipedia
- 例外 - Wikipedia
- コールスタック - Wikipedia
- 例外処理 - Wikipedia
Twitter
- 渋川よしきさんのツイート: "これ、昔から超思ってた。例外、存在自体が矛盾してるしてる。 https://t.co/9CqtCKFZWh"
- 渋川よしきさんのツイート: "例外を「設計」した段階でそれは「例外」ではなく「想定の範囲内」になってしまうという論理的矛盾。"
- 渋川よしきさんのツイート: "例外処理の説明の時に、だいたい「例外==想定外」とか書かれていることが多いのが良くない。正常ケース、非正常ケースなら分かる。"
- 渋川よしきさんのツイート: "例外について考えていたこと、例外のパラドックスという名前がついていた。 https://t.co/6ocDMQZx5f"
- Fadisさんのツイート: "例外はその例外からの復帰が可能なレイヤーでcatchするんだよ。握り潰して失敗をなかった事にされても困るし、起こった問題から復帰させるべきレイヤーを超えて中の実装を知らないレイヤーに例外が届いても困る。本当に誰の手にもおえない例外が飛んだ場合は、そのままabortさせるのが多くの場合正しい"
- Fadisさんのツイート: "あと正常系で例外が飛ぶような作りにしてるとgdbを使う時に発狂するから例外は文字通り例外的な状況で飛ぶようにしておいた方がいい"
- Makoto Kato ︎︎さんのツイート: "Windows x64とかarm/aarch64のehabiなら例外はunwind infoからスタックがとれるのにね。。。今時じゃないABIは。。。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "むむ、VC6だとSEGV系もtry/catch出来ていた記憶があるのだが、少なくともVS2017では__try/__exceptを使ったWin32構造化例外を明示指定しないとキャッチできない様子。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SEGVが例外の枠組みで処理できるのは、一部状況ではとても助かる。 gccの場合、-fnon-call-exceptions で同様の動作が可能。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、try/catch + -fnon-call-exceptionsの場合、throw "sigsegv" 等を記述したsigfuncをSEGV等に紐づけておく必要あり。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2017ではコンパイルオプションの /EHa、GUIだと「C++の例外を有効にする」を「はい - SEHの例外あり」を選べば良かったらしい。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「一部状況」というのは、こちらの手出しできない、標準モジュール内SEGVに暫定対処したいとき。 (例えば、INetFwProductというOS標準COMモジュールの呼び出しが、稀な環境で内部SEGV発生とか)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2005以降だったか、スタック破壊を検出した場合、CRT(の __raise_securityfailure関数)で、登録ハンドラを意図的にキャンセル(例外ハンドラをNULLに再セット)して強制終了させている話ですね。… "
- yoh2さんのツイート: "WindowsはスタックオーバーフローでC++の例外と統合された構造化例外すっ飛ばしたり、MFCのCStringがprintf系の %s に渡されても動いたり、thisがnullptrで非virtualなメンバ関数呼び出せたりとなかなかやりたい放題ですよねw"
- yoh2さんのツイート: "Windowsのスタックオーバーフローで例外すっ飛ぶってやつから、スタックを消費する関数は決してnoexceptを付けられないんじゃないかという疑問もわきそうだけど、これに関する私の見解は以下の通り。 その例外を考慮したい: noexcept は諦めてね 考慮しない: SO時は未定義と覚悟してnoexcept付けよう"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "これは g++ 等でも同じではないのかしらん? > thisがnullptrで非virtualなメンバ関数呼び出せたり"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでは、__raise_securityfailure(staticリンク)の一部に動的にnopを入れて、キャンセル動作を抑止している。(なお独自ハンドラはMiniDumpを吐いて終了するもの) https://t.co/nBDLF22Egp"
- FastCopy/tmisc.cpp at 72655443c775af09a69cc2fd2aa6a602b4d987c9 · shirouzu/FastCopy
- C#機能: Deferredエラー処理
- 構造化例外処理と UnhandledExceptionFilter - Web/DB プログラミング徹底解説
- 構造化例外処理 ~ 例外情報の取得 - Web/DB プログラミング徹底解説
- Super Technique 講座~longjmpと例外
- Center CLR Try!開発 #2 – kekyoの丼
- Windows における例外ハンドリング - @a4lg の準技術的日記 (See Left side for My Twitter Link)
- Windows における例外ハンドリングとか 64-bit プロセス固有のあれそれとか - NyaRuRuが地球にいたころ
- SHIROUZU Personal Log(2016-10-18)
- won't fix: llvmとrustにおけるWindows/aarch64のサポート
- スタックオーバーフローのハンドリング (Stack Overflow Handling)
- 構造化例外のフィルタ処理(C++) - RAD Studio
- .NET非同期処理(async-await)と例外の制御 – kekyoの丼
- Exception Handling in LLVM — LLVM 12 documentation
- unwind-protect - Google 検索
MS
- Winternl - Win32 apps | Microsoft Docs
- Calling Internal APIs - Win32 apps | Microsoft Docs
- Getting the Active Console Session ID - Win32 apps | Microsoft Docs
- Getting the Session ID of the Current Process - Win32 apps | Microsoft Docs
- TlsGetValue function (Windows)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(なお、他のモダン言語から見れば「1つの戻り値」で、正常値とエラーを混在ゆえの問題ではある)」 / Twitter
- TlsGetValue function (processthreadsapi.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「TlsGetValue API は戻り値が 0 の場合だけ、GetLastError(UNIXの errno相当) も 0 に書き換えられるので注意が必要。 (正しい値0なのか、エラーなのかの識別用) https://t.co/LFg77TNfm8」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「TlsGetValue API は戻り値が 0 の場合だけ」と書いたが、TlsGetValueの成功時は常に GetLastError() == 0 に書き換えられる、が正しかった。」 / Twitter
- GetModuleHandleExA function (libloaderapi.h) - Win32 apps | Microsoft Docs
- LoadLibraryExA function (libloaderapi.h) - Win32 apps | Microsoft Docs
- GetProcAddress function (libloaderapi.h) - Win32 apps | Microsoft Docs
- FreeLibrary function (libloaderapi.h) - Win32 apps | Microsoft Docs
Thread Environment Block
- Win32 Thread Information Block - Wikipedia
- svchost.exe - Wikipedia
- TEB (winternl.h) - Win32 apps | Microsoft Docs
- Thread Environment Block (Debugging Notes) - Win32 apps | Microsoft Docs
- PEB / TEB の覚書 - Windows 2000 Blog
- Win32デバッグ(12)・・・SEH(Structured Exception Handling): vanillaの日記
- ASCII.jp:Windowsのメモリー管理をx86の仕組みから読み解く (3/4)|基礎から覚える 最新OSのアーキテクチャー
- WinDbg - マイクロソフト系技術情報 Wiki
- デバッグメニュー デバッガ
Process Environment Block
- PEB (winternl.h) - Win32 apps | Microsoft Docs
- PEB_LDR_DATA (winternl.h) - Win32 apps | Microsoft Docs
- Process Environment Block - Wikipedia
- 他プロセスのメモリを読む(C++編) - # riosu's memo
- Windowsプログラミングそこそこ役に立つサンプル集-[API-ReadProcessMemory]
- スライド 1 - MR201312_History and Current State of Heap Exploit_JPN.pdf
- デバッガ検出技術:PEB.BeingDebuggedFlag:IsDebuggerPresent() - Log.i53
- アンチアンチデバッギング #LT駆動
リバースエンジニアリング入門
- シェルコードから始めるマルウェア解析 (1/2):リバースエンジニアリング入門(1) - @IT
- コツ? 開発者の立場になって考えることさ! (1/2):リバースエンジニアリング入門(2) - @IT
- シェルコード解析に必携の「5つ道具」 (1/3):リバースエンジニアリング入門(3) - @IT
- Undocumentedなデータ構造体を知る (1/3):リバースエンジニアリング入門(4) - @IT
- Undocumentedなデータ構造体を知る (2/3):リバースエンジニアリング入門(4) - @IT
- Undocumentedなデータ構造体を知る (3/3):リバースエンジニアリング入門(4) - @IT
- PEフォーマットを解釈せよ! (1/3):リバースエンジニアリング入門(5) - @IT
- PEフォーマットを解釈せよ! (2/3):リバースエンジニアリング入門(5) - @IT
- PEフォーマットを解釈せよ! (3/3):リバースエンジニアリング入門(5) - @IT
- API名のハッシュ化テクニックを理解せよ! (1/3):リバースエンジニアリング入門(6) - @IT
- API名のハッシュ化テクニックを理解せよ! (2/3):リバースエンジニアリング入門(6) - @IT
- API名のハッシュ化テクニックを理解せよ! (3/3):リバースエンジニアリング入門(6) - @IT
- SQL Slammerのコードを解析せよ! (1/3):リバースエンジニアリング入門(最終回) - @IT
ASCII.jp
- ASCII.jp:なぜWindows 7のカーネルはVistaより軽量化できたのか? (1/2)
- ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (1/2)
- ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (2/2)
- ASCII.jp:ARM版Windows 8実現の布石となったWindows 7の「MinWin」 (3/4)
Twitter
- Kazuho OkuさんはTwitterを使っています 「Userspace DTrace だったり、一部命令を書き換えて動的にログ出力・解析するのが流行だと思ってる(自分がやってるだけ、とも言う)」 / Twitter
- 渋川よしきさんはTwitterを使っています 「printデバッグを「低レベルなデバッグ手法」みたいに扱うのはやめた方が良いというか、クラウドとか分散システムとかが増えてきて、適切なprintデバッグ手法の確立を進めた方が良い気がしている(GCP Cloud Debuggerとか、VSCodeのリモート開発みたいな変態技術はおいといて)」 / Twitter
- MURAOKA TaroさんはTwitterを使っています 「printfデバッグができるのは深い理解があってこそなんだよな。ビジュアルデバッガーは大量のシンプルなバグを直すには向くけど、そのせいで浅い理解に留まる傾向にあるように見える。もっともバグの大多数はシンプルなやつなのでそれで良いとも言えるけど。 まれにある複雑なのに手が出なくなる。」 / Twitter
- 渋川よしきさんはTwitterを使っています 「デバッグだけでなく、どの情報を出すかの選択とか、本番環境のログ設計にもシームレスに繋がるようなprintデバッグ道みたいなのがある気がしてる。」 / Twitter
- LIST_ENTRY の仕組みと利用方法 - Web/DB プログラミング徹底解説
- LIST_ENTRY に関するデバッグコマンド - Web/DB プログラミング徹底解説
- Windows の内部動作 - Web/DB プログラミング徹底解説
- Reflective DLL Injection | すなのかたまり
- msmania/procjack at 1.0
- Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
- Windowsで電卓を起動するシェルコードを書いてみる - ももいろテクノロジー
- 黒翼猫のコンピュータ日記 2nd Edition:2017年07月21日 - Windows 2000 Blog
- CTF writeup 2|岸辺の旅
- SHIROUZU Personal Log(2016-11-01)
- GetProcAddress を書く手間を減らすあれそれ - NyaRuRuが地球にいたころ
- kobaさんはTwitterを使っています 「@kotatsu_mi そんなとき -Og はいかがですか。デバッガに支障が出ない範囲で最適化するというものです。 gccのドキュメントではここ。clangでも同様のオプションがあるはずです。 https://t.co/dzahH8dQoE」 / Twitter
- Optimize Options (Using the GNU Compiler Collection (GCC))
- ReadApiSetSchema更新 « 他人の空似
- VirtualDLLの仕組み « 他人の空似
- daem0nc0reさんはTwitterを使っています 「惜しまれつつ開発を終了したdnSpyですが、やはり無いとリバースエンジニアリングでは困る人が多いからか、意欲ある技術者が開発を引き取ったようです。 やったね! https://t.co/NPJaxHNagK」 / Twitter
- dnSpyEx/dnSpy: Revival of the well known .NET debugger and assembly editor, dnSpy
重点項目
カバレッジ測定
gcov
- gcov の使い方 - まめめも
- OpenCppCoverageによるカバレージの計測 (1/2):CodeZine(コードジン)
- gcov(1) FreeBSDドキュメントJMan
- GCCでC言語の分岐カバレッジを試す。思ったのとちょっと違った。 CodingFirst
- gcovでカバレッジテストをしてみる: 綺麗なコードが良い
- タダでソフト開発の生産性と品質を上げる方法(7):高機能な単体テストツール「GoogleTest」を使いこなす(その2) (1/3) - MONOist(モノイスト)
- Cutterでカバレッジ……改良しちゃいます - しがないSEのブログ
- EM+PLS|IoT|サイバートラスト株式会社
- rubyhackchallenge/6_coverage.md at master · ko1/rubyhackchallenge
- Linuxにおけるカバレッジテスト | ~Rhythmical Life~
- C/C++開発環境 - Qiita
- GCC 7 | 10.2 gcovの呼び出し - 初心者入門サンプル
- GCC 7 | 10.4 gcovデータファイルの簡単な説明 - 初心者入門サンプル
- gcov.txt - kandamotohiro
- Dialy & Material book: gccとgcovコマンドを使ってCソースのcoverage(カバレッジ)を測定する
- GCCのコードカバレッジオプションはどのように機能しますか? - コードログ
- QEMU / GDB経由の.gcdaカバレッジファイルの生成 - 埋め込みコードカバレッジ、gcov
- Samuel Jacob's Web Log: GCOV internals overview
- Linux Test Project / Re: [Ltp-coverage] gcov's data files format
- セグメンテーション違反が発生した場合でも、どうすれば“ gcov”を使用できますか? - コードログ
- Gcov - Wikipedia
- Gcov Data Files - Using the GNU Compiler Collection (GCC)
- Coverture
gcov_log_マージ
- gcovのログファイルをマージするツールを拾った && 手直しした - 新・日々録 by TRASH BOX@Eel
- code-coverage – 2つのgcovファイルを1つにマージする方法はありますか - コードログ
- g – gcov/gcovrを使って2つの実行ファイルのカバレッジデータをマージすることは可能ですか? - コードログ
- plugin gcov 警告: サマリーのマージの不一致 - 初心者入門サンプル
- Parasoft Blog: テストを複数回実施したカバレッジのログをマージする
- Using and Porting the GNU Compiler Collection (GCC) - gcov: テスト・カバレッジ・プログラム
- On-line Manual of "gcov"
- 猫でも使えるソフトウェアのテスト網羅(3):無料ツールで単体テストを楽に実行しよう (4/4) - MONOist(モノイスト)
- ブログズミ: [C++] Coveralls でコードカバレッジ - その2
- 「gcov: テスト・カバレッジ・プログラム」 (Using and Porting the GNU Compiler Collection (GCC)) - メモの日々(2006-07-09)
- 中村 実さんのツイート: "100%コードカバレッジの悲劇 / “The tragedy of 100% code coverage | IG Labs” https://t.co/myt2ldH9F0"
- The tragedy of 100% code coverage | IG Labs
- Makoto Kato ︎︎さんのツイート: "テストカバレッジできてないコードは大概怪しいとか、comm-centralでしか使えないコード (absolutely position editor) とかいろいろあるよ https://t.co/jS0TG2oqRj… "
- Using gcov with the Linux kernel — The Linux Kernel documentation
- まさみさんは語りたいさんのツイート: "ftraceのgcovをコンテナ内部で取れるようになった。良い。"
- まさみさんは語りたいさんのツイート: "これでカバレッジテスト増やすんじゃー。"
- まさみさんは語りたいさんのツイート: "lcovの結果を眺めながら、テスト漏れしてる関数を叩くにはどういうテストを掛けばいいかを考えて追加する簡単なお仕事。"
- まさみさんは語りたいさんのツイート: "gcovを使ってftrace内のftracetestとboottestでカバーされる関数を調べ、足りないテストケースを能動的に探し出して追加するというアプローチに出ているが、結構ややこしいケースがあるなあ。"
- まさみさんは語りたいさんのツイート: "GCOVでテストを走らせながらソースコードを読むと、消し忘れたヘルパー関数っていうのが見つかることがある。何かの処理のためにヘルパーを作って使ったけど、使った方のコードが書き直されたせいで使われなくなったhelper関数。これからはトマソンと呼ぼう。"
- まさみさんは語りたいさんのツイート: "トマソンを探せ"
- まさみさんは語りたいさんのツイート: "トマソンというかジャンクコードというかで人文学科か生物学科かが分かる。"
- まさみさんは語りたいさんのツイート: "カバレッジ出来ないコードを削除していくスタイル"
- まさみさんは語りたいさんのツイート: "GCOVはプログラムをコンパイルする時にカウンタを埋め込み、C言語の各行に対応する機械語の生成時にこのカウンタをインクリメントする、という動作をするようだ。問題はarmとかだと規模が大きいカーネルのようなプログラムの場合、カウンタを置く場所が離れてしまい1命令ではインクリメント出来ない"
- まさみさんは語りたいさんのツイート: "なので、恐らくカウンタのテーブルを分割し、コード領域の近くに埋め込んで、一命令でインクリメント出来るようにしている。しかしLinuxカーネル内には.text.exitという領域があって、これは終了時にしか利用しないコードをビルドするんだけど、最終的にリンク時に削除されるようになっている。"
- まさみさんは語りたいさんのツイート: "そうすると、このexitコード用のカウンタテーブルも一緒に削除されちゃうんだけど、当然そんなことを想定していないGCOVの関数からこのテーブルは参照されているので、リンカがエラーを吐きよるわけですよ。"
- まさみさんは語りたいさんのツイート: "多分同様の問題が他の機能にもあったのか、armのリンカスクリプトで、CONFIG_GENERIC_BUGとかCONFIG_JUMP_LABELが定義されていたらtext.exitを削除しないようにするスイッチがあるのを見つけたから、これにGCOV_KERNELを追加したら案の定エラー消えた。"
- uint256_tさんのツイート: "(ASTカバレッジ..?"
- uint256_tさんのツイート: "カバレッジが行数なの, 疑問に思ったことなかったなぁ"
- ccov: printfデバッグを支援するツール - Blog posts by @retrage01
コード分析
その他
- コード分析ツールを利用する - プログラマが知るべき97のこと
- 冗長コードの検知と解析
- 日記 (2014 年 2 月下旬)
- Software rot - Wikipedia
- NetBeans IDE Javaエディタでの静的コード分析
- ルール ベース分析
- Google Developers Japan: サニタイザーによる Android のバグ退治
- プロならゲーム開発で品質保持/CIは当たり前:C#/C++の本格的なゲーム開発において品質を高めるために知っておきたい静的解析とは - @IT
- ElectricCommander
- バグハンターのためのクライアントサイドJavaScriptの静的解析 - No1zy Web Security Blog
- golang.org/x/tools/go/analysisで静的解析ツールを自作する #gounco / how to create the static analysis tool for go - Speaker Deck
- Mozilla、Firefox開発プロセスにUbisoftのAI技術を採用へ | OSDN Magazine
- MozillaがFirefoxのバグ発見と修正にAI支援ツールを導入。過去のバグを学習することで、バグがありそうなコードを判別するだけでなく修正案も提示可能 - Publickey
- 米Facebook、抽象解釈を土台としたコード解析ライブラリ「SPARTA」を公開 | OSDN Magazine
- 国際会議 SOSP 2019 - 品川研究室のブログ
- プログラム解析の目的 - uchan note
- 静的解析の育て方 / How to make your static analysis strong - Speaker Deck
- CircleCIで勝手に強くなる静的解析の作り方 - Cybozu Inside Out | サイボウズエンジニアのブログ
- JetBrains は IntelliJ 2020.2 をリリース
- ソフトウェアテストの実行を機械学習で効率化する。Jenkins作者の川口氏が立ち上げた「Launchable」で実現しようとしていることとは(前編) - Publickey
- ソフトウェアテストの実行を機械学習で効率化する。Jenkins作者の川口氏が立ち上げた「Launchable」で実現しようとしていることとは(後編) - Publickey
- 開発者の扱うコードの量や複雑さはここ10年で100倍以上に増えている - GIGAZINE
- Sonatype LiftがFacebook Infer、Google ErrorProne等のコード分析ツールを統合
ポインタ解析
- FadisさんはTwitterを使っています: 「みんな戻ってきたので少し早いですが @kristopher「Kiyomizu: LLVM IRを解析によってコードの脆弱性を防ぐ」が始まります #kernelvm」 / Twitter
- FadisさんはTwitterを使っています: 「「清水の舞台から飛び降りて無事だったら、願いが叶う」→「チェッカを通して無事だったら、安全なコードである」 Project Kiyomizu #kernelvm」 / Twitter
- FadisさんはTwitterを使っています: 「LLVM IRのレベルでメモリアクセスの解析やコールグラフ解析を行う事で、様々な言語を安全に書けるようにする、と #kernelvm」 / Twitter
- FadisさんはTwitterを使っています: 「社会インフラを構成するシステムに存在する脆弱性の多くが正しくないメモリアクセスを原因としている、と #kernelvm」 / Twitter
- FadisさんはTwitterを使っています: 「ポインタ解析ではある関数がアクセスして良いアドレスの範囲の情報を作って、それに違反していないかをチェックする、と #kernelvm」 / Twitter
- FadisさんはTwitterを使っています: 「言語に型の条件チェックを付けて安全なコードを書けるようにしました、という話を目撃する度に「それC++で(以下略)」というお気持ちになってる」 / Twitter
- FadisさんはTwitterを使っています: 「でも実行時にならないと確定しないようなものをテストと結びつけてチェックできるのは羨ましい」 / Twitter
Snyk
- 渋川よしきさんのツイート: "アカウント登録必要だけど、snykを別に使えば、セキュリティチェックを別に行うことは可能。これはnode.js以外のGoとかにも対応してる。audit入る前からこれ使ってた(vulsの神戸さんに教えてもらった) #ll2018jp"
- Open Source Security Platform | Snyk
- Scan Your Code and Open Source for Vulnerabilities for Free | Snyk
- オープンソースコードのセキュリティチェックと問題修復を開発のワークフローに組み込むSnyk、GitHubとの統合も可能 | TechCrunch Japan
- オープンソースのライブラリのセキュリティチェックと脆弱性フィックスを代行するSnykが$7Mを調達 | TechCrunch Japan
- snyk/snyk: CLI and build-time tool to find & fix known vulnerabilities in open-source dependencies
- Snyk
- snyk/vulnerabilitydb: Snyk's public vulnerability database
Clang-Tidy
- 冬休み到来! clang-tidy で安心安全な C/C++ コーディングを極めよう! - Qiita
- clang-tidyで命名規則のチェック(&自動修正) - Qiita
- Clang-Tidy — Extra Clang Tools 8 documentation
- Clang-Tidyインテグレーション - 公式ヘルプ | CLion
- clang-tidy - Google 検索
SCALe
- カーネギーメロン大学、ソースコード解析ツール「SCALe」を公開 | マイナビニュース
- SEI CERT Division Releases Downloadable Source Code Analysis Tool
- cmu-sei/SCALe: SCALe (Source Code Analysis Lab) is a static analysis aggregator/correlator which enables a source code analyst to combine static analysis results from multiple tools into one interface, and also provides mappings for diagnostics from the tools to the SEI CERT Secure Coding standards.
- コードを静的解析して脆弱性を検出する「SCALe」、米CERTがオープンソースで公開 - Publickey
MS
- コード分析を使用した C/C++ コードの品質の分析
- C/C++ のコード分析の概要
- 「Visual Studio 2019」がリリース候補(RC)版に ~CodeLens機能がCommunity版にも開放 - 窓の杜
KMC Staff Blog
- KMC Staff Blog:sparse チェッカーを使ってみる。
- KMC Staff Blog:GCC の名前付きアドレス空間サポート
- KMC Staff Blog:GCC の profile mode を試してみる。
Twitter
- 高梨陣平さんのツイート: "正規表現ライブラリに動的にメモリ破壊の可能性を解析するlibFuzzerを使ったら5つも問題を見つけたとの話。C/C++を用いるOSSには定期的に検査をかけてくれるOSS-Fuzzというのもある。利用申請が必要。 https://t.co/kWENHQIqCq https://t.co/lGAoq90Njo"
- Masakazu Asamaさんのツイート: "Clang の ML に「Clang の static analyzer 使って Linux の TCP/IP スタックの検証してみたいんだけど」みたいなスレあって色々調べてたら FreeBSD は Wiki にカーネルの static analyzer にかける方法が載ってた。"
- Masakazu Asamaさんのツイート: "@m_asama 「これで潰せたバグの一覧」とかあったら個人的にめちゃくちゃ興味あるんだけどどうなんだろ。 https://t.co/8vggEG1lHH"
- Rockridgeさんのツイート: "MozReviewに送信されるすべてのパッチに対し自動的に静的コード解析が行われるようになる模様。解析の結果指摘された問題点を解消しない限り、パッチのチェックインができなくなるそうだ。 / “Intent to Enable: …” https://t.co/vyQR5pNHTq"
- Kazuho Okuさんのツイート: "Cの静的解析ツール、false positiveの管理が辛くて、その点Coverity Scanはウェブベースだからグループ開発にむいてる"
- Kazuho Okuさんのツイート: "Cコードのregressionを見つける比率で言うと、CI : fuzzer : 静的解析 = 100 : 10 : 1 くらいの僕的印象"
- 眼力 玉壱號さんのツイート: "@kazuho code flow はよく見ている印象。C++11〜 の対応が弱いのが少し辛い> Coverity"
- とみながたけひろさんのツイート: "ふつーのコンパイラの警告, cppcheck, coverity, fortifyあたりを併用しているけど、まあどれも一長一短な感がある。お値段とか精度とか速度とかいろいろ"
- 鯵.pngさんのツイート: "ソースコードとコンパイラが吐いたバイナリが同じ挙動をするかどうか、ハードウェアみたいにフォーマルベリファイアで確認することが必須になる未来を見てみたい"
- Kentaro Haraさんのツイート: "Googleの2億行のソースコードを解析した結果、関数に渡す引数の順番を間違える系のバグは、引数の個数が6個以上になったときに著しく増えるので、引数の個数は5個以下が望ましいことがわかったという話。 https://t.co/R5yy31pDyu"
- なかのん&マジックさんのツイート: "CheckSomething()って名前のメソッドはプロジェクト問わずだいたいダメ。"
- なかのん&マジックさんのツイート: "Checkすることで何が起きるのかよく分からない、つまり、実装する人によってそのメソッドの性格が変わるということを意味してる、非常に良くない単語。"
- FadisさんはTwitterを使っています: 「gcc 10からC言語のコンパイル時に-fanalyzerをつけることで静的解析をかけられるようになる話。さしあたってはまずいメモリ確保/解放を見つけるようになるらしい。コンパイラの中間表現を使って静的解析を行う試みは既にclangで行われていたが昨年末にgcc向けの実装が登場した https://t.co/orYlhY267F」 / Twitter
- GCC 10 Introduces A Static Analyzer - Static Analysis On C Code With "-fanalyzer" Option - Phoronix
- mumumuさんはTwitterを使っています 「Finding Error Handling Bugs in OpenSSL using Coccinelle OpenSSL特有のある種のバグをLinuxで使われているC言語ソースコードのパターンマッチツールで検出する試み.あくまで静的解析でデータフロー解析などはできないが,それでも30個見つけている. https://t.co/1ZFGlzTd7e」 / Twitter
- Finding Error Handling Bugs in OpenSSL Using Coccinelle - IEEE Conference Publication
- returntocorp/semgrep: Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
- FacebookがSuperpackでコード分析を活用してAndroidアプリを圧縮
プロファイラ
パフォーマンス計測
その他
- 小崎資広さん「人に依存しないデバッグのために,道具の使い方を知ってほしい」〜RubyKaigi 2015基調講演 2日目:RubyKaigi 2015レポート|gihyo.jp … 技術評論社
- 本の虫: cpの速度を計測する方法
- 本の虫: cpで大量のファイルをコピーした(4億3200万件、39TB)
- DSAS開発者の部屋:「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない
- Tips IA32(x86)命令一覧 Rから始まる命令 RDPMC命令
- 命令単体の性能を計測する
- インテル® パフォーマンス・カウンター・モニター - より優れた CPU 使用率の測定方法 | iSUS
- Android Studio 3.2 Canaryはトレースサポートの改善、Lintチェックなどを提供
- はじめてのにき(2018-02-19)
- 2018年11月22日 Oracle,eBPFによるDTraceエンハンスのプランを公開:Linux Daily Topics|gihyo.jp … 技術評論社
- パケットフィルターでトレーシング? Linuxで活用が進む「Berkeley Packet Filter(BPF)」とは何か (1/3):Berkeley Packet Filter(BPF)入門(1) - @IT
- Linuxのパフォーマンス計測ツールの違いとか - Yabu.log
- Makoto Kato ︎︎さんのツイート: "ETWを使ってDTrace likeなのを動かすようにしただけなのか"
- DTrace on Windows - Microsoft Tech Community - 362902
- Next Windows release will include DTrace support | Ars Technica
- 2019年3月12日 Microsoft,「DTrace on Windows」をCDDLで公開:Linux Daily Topics|gihyo.jp … 技術評論社
- 3.3 アプリケーションへのUSDTプローブの追加
- 3.4 USDTプローブの使用
- パフォーマンスカウンタを読んでみる - ziita’s blog
- レイテンシの直感的な理解のためのメモ書き | Qrunch(クランチ)
- 俺の仮想マシンルーターがこんなに遅いはずはない/ KernelVM online 1 - Speaker Deck
- Grafanaが分散トレースシステムGrafana Tempoを発表
- LTTng - Wikipedia
- プロファイラの比較(+簡単な使い方) - Qiita
- Indicium: V8 runtime tracer tool · V8
BPF
MS
- Making eBPF work on Windows - Microsoft Open Source Blog
- microsoft/ebpf-for-windows: eBPF implementation that runs on top of Windows
- FadisさんはTwitterを使っています 「MicrosoftがWindowsのカーネル空間でeBPFの実行を試みているぞ、という話。eBPFはLinuxカーネル空間に専用の中間コードで書かれた命令列を送って実行する為の仕組み。ユーザ空間プロセスのように空間の分離は行われないが、静的解析によってカーネルを破壊しない事を保証する https://t.co/fS2Op5X22p」 / Twitter
- Microsoft Bringing eBPF Support To Windows - Phoronix
- FadisさんはTwitterを使っています 「eBPFのフルネームはextended Berkeley Packet Filterで、元になったBPFはパケットフィルタのルールを記述するために考え出された物だが、カーネルの振る舞いを容易に拡張できるという特徴はあまりにも便利な為、今日のLinuxカーネルではネットワークに限らずeBPFを挟める箇所が大量に用意されている」 / Twitter
- FadisさんはTwitterを使っています 「しまった、BerkeleyでもPacketでもFilterでもないeBPFは今はもうextended Berkeley Packet Filterの略じゃなくて「eBPF」という技術用語なんだった…」 / Twitter
- Miura HidekiさんはTwitterを使っています 「セキュリティーのために(おそらく)消えてしまった(多分)ActiveMessageが名前を変えてまだ生きているのか。胸熱」 / Twitter
- Miura HidekiさんはTwitterを使っています 「静的解析でも抽象解析でも何でも使ってセキュリティーを担保したActiveMessageは分散環境のメッセージパッシングの中で最速だと思う。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Morris Worm、bitの解説記事を見て、すごく感心した記憶がある」 / Twitter
- WindowsがまたLinuxを取り込む。マイクロソフト、Linuxカーネルが備える拡張機能「eBPF」互換機能をWindowsにもオープンソースで実装へ - Publickey
- MicrosoftがeBPFのWindowsへの導入に向けて取り組んでいる
libbcc
- Kazuho OkuさんはTwitterを使っています 「libbcc 使って h2o/quicly/picotls のイベント記録して通信パターンの可視化ツールに放り込んでトランスポート層のデバッグやる話 / https://t.co/TbzssfjHPX」 / Twitter
- Debugging QUIC with H2O and QLog | Fastly
- libbcc - Google 検索
BPF CO-RE
- FadisさんはTwitterを使っています 「OracleがgccでBPF CO-REを吐けるようにしている話。eBPFはカーネルの構造体を直接触る為従来特定のバージョンのカーネル向けにコンパイルする必要があったが、CO-REはコンパイル済みのバイナリに付加情報を載せてロード時に変換することでバージョン間の違いを吸収する https://t.co/xnBmHnDqr1」 / Twitter
- Oracle Working On BPF CO-RE Support For GCC To Easily Run BPF Programs On Any Kernel - Phoronix
- FadisさんはTwitterを使っています 「LLVMには既にBPF CO-REを吐くための対応が入っているらしい」 / Twitter
睡分不足
- BPFプログラムからカーネル内のデータ構造にアクセスする方法 - 睡分不足
- BPF_PROG_TYPE_RAW_TRACEPOINT (raw tracepoint) について - 睡分不足
- BPFプログラムからカーネル内のデータ構造にアクセスする方法 - 睡分不足
- BPF_PROG_TYPE_RAW_TRACEPOINT (raw tracepoint) について - 睡分不足
- macでbpftraceを試す - 睡分不足
- bpftrace 2020 - 睡分不足
- SpectreとeBPF - 睡分不足
- cBPFプログラムをLLVM IRに変換する - 睡分不足
- LinuxのBPF : (1) パケットフィルタ - 睡分不足
- LinuxのBPF : (2) seccompでの利用 - 睡分不足
- LinuxのBPF : (3) eBPFの基礎 - 睡分不足
- LinuxのBPF : (4) ClangによるeBPFプログラムの作成と,BPF Compiler Collection (BCC) - 睡分不足
- LinuxのBPF : (5) eBPFによるLinux Kernel Tracing - 睡分不足
資料
- mumumuさんはTwitterを使っています 「今からeBPFで性能解析とかで遊ぶならどの資料読むのが最短なんだろうか?」 / Twitter
- 竹さんはTwitterを使っています 「@mumumu_vm BPF Performance Toolsとかは?」 / Twitter
- 竹さんはTwitterを使っています 「@mumumu_vm 一方でくそ分厚いのでやりたいベクトルが決まってるならiovisorやbccのissueやフォーラムとかで調べた方が早かったりするかなーー」 / Twitter
- 竹さんはTwitterを使っています 「@mumumu_vm もし全然書いたことなくよくわかってないなら今年のebpfサミットのそれっぽいタイトルのスピーカーの話を聞いてから進めたら楽かも https://t.co/9qzywBBDPj」 / Twitter
- eBPF Summit 2020
- mumumuさんはTwitterを使っています 「@takemioIO うおー,ありがとう.とりあえず何ができるかわかってないので,本買ってみます」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「Brendan Gregg 氏の著作では」 / Twitter
- mumumuさんはTwitterを使っています 「@kotatsu_mi あざます,さっそく買って読んでみます!!」 / Twitter
- bcc/eBPFのtraceの使い方を調査 - ソフトウェアプラットフォーム屋のメモ帳
- bcc – BCC – BPFベースのLinux IO分析、ネットワーク、監視などのためのツール – GitHubじゃ!Pythonじゃ!
- BPFによるパケットトレース――C言語によるBPFプログラムの作り方、使い方 (1/2):Berkeley Packet Filter(BPF)入門(5) - @IT
- Berkeley Packet Filter(BPF)入門 - @IT
- Cloudflare architecture and how BPF eats the world
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm BCC - BPF Compiler Collection https://t.co/jtyVfOQPY6」 / Twitter
- brendangregg/bpf-perf-tools-book: Official repository for the BPF Performance Tools book
- iovisor/bpftrace: High-level tracing language for Linux eBPF
- FadisさんはTwitterを使っています 「eBPFをコンパイルしてカーネルに流すBCCはPythonでラップされていてPythonから使うのが一般的だけど、RubyistだからRubyラッパーを作ってRubyから使ってみた、と #kernelvm」 / Twitter
- udzura/rbbcc: BCC port for MRI - this is unofficial bonsai project.
- BCC(BPF Compiler Collection) for Ruby - Speaker Deck
- FadisさんはTwitterを使っています 「LinuxのBerkeley Packet Filter(BPF)の実行環境は元々パケットフィルタをユーザ空間で書いてカーネル空間で実行するために導入されたが、カーネル空間に任意の処理を安全に突っ込めるのはとても便利なので今日ではカーネルのありとあらゆる任意の処理を書きたいところに応用されている。」 / Twitter
- FadisさんはTwitterを使っています 「色々な用途で使うとBPFの中でブロックする必要がある処理を書きたくなってくるが、現在のBPFの実行環境は処理を中断できるように作られていない。そこで、一部の用途に限りBPF_F_SLEEPABLEをつける事で中断可能な実行環境で実行されるようにしよう、という提案がなされている https://t.co/0ijGZ9cpVg」 / Twitter
- FadisさんはTwitterを使っています 「中断可能なBPFが再開時にRCUでアップデートされるリソースの古いデータを握り続けていると解放済みのデータを参照してしまうため、中断可能なBPFでは代わりにリソースに対するアクセスに制限がかかり、BPFのロード時のチェック内容が変化する」 / Twitter
- BCCでBPF toolsの開発をするための基礎知識 - Islands in the byte stream
- h2ologにみるBPF toolsの構造と設計 - Islands in the byte stream
- FadisさんはTwitterを使っています 「Linux 5.13から使えるようになった「BPFからカーネルの関数を呼ぶ機能」についての話。eBPFはカーネル空間で実行されるものの、従来カーネルの関数を呼べないようになっていた。Linux 5.13からeBPFを実行するcontextが認める関数に限り、eBPFの中から呼べるようになる https://t.co/GTHYT0g4Qq」 / Twitter
- FadisさんはTwitterを使っています 「これは「BPFでTCPの輻輳制御を使うのに、カーネルの実装が使えずBPF用を実装する必要があるのが辛い」問題を解決する為に入った物だが、カーネルの関数は将来ABI互換を壊さない事を保証していない、雑なcontextがチェックを省略するとカーネルの万物がユーザ空間に公開される等色々な懸念が生じている」 / Twitter
- GDBがeBPFのデバッグをサポートした
- GNU Debugger Adding eBPF Debugging Support - Phoronix
- Takekazu Omi 🖖さんはTwitterを使っています 「USENIX LISA2021 BPF Internals (eBPF) https://t.co/7zLiXWwOJy eBPFは、BPFと呼ばれるようになりました。 https://t.co/OrErxaZ0j0」 / Twitter
- USENIX LISA2021 BPF Internals (eBPF)
- RustでLinuxカーネルの機能を拡張しよう!Linuxカーネルの機能を安全に拡張できるeBPFのコードはC言語で実装する必要があると知り、がっかりしているクラウドネイティブ 世代の皆様に朗報です。 | nttlabs
- daem0nc0reさんはTwitterを使っています 「eBPFを用いたRootkitの検知手法。eBPF for Windowsを使えばこの手法がWindowsに使えるのかは気になるところ https://t.co/2bqLKu4KFM」 / Twitter
- Detecting Kernel Hooking using eBPF | pat_h/to/file
- Google、Facebook、マイクロソフトらが、OSカーネルをプログラマブルに拡張できる「eBPF」の開発と発展を目指す「eBPF Foundation」を結成 - Publickey
- BPFバイナリはどのようなELF形式か(1) - 最低限の情報とは? - ローファイ日記
- BPFバイナリはどのようなELF形式か(2) - mrubyのDSLを書いたらELFを吐く - ローファイ日記
- BPF Performance Toolsを読んだ感想 - go_vargoのブログ
- BPFのアーキテクチャ、命令セット、cBPFとeBPFの違い:Berkeley Packet Filter(BPF)入門(2)(2/2 ページ) - @IT
- eBPF FoundationがeBPFの機能と採用のさらなる進展を目指す
- Early Patches Bring BPF To The Linux Scheduler - Phoronix
bpftracer
- 高梨陣平さんのツイート: "DTrace 2.0なる、bpftraceについての紹介記事。freeBSDのbpfがeBPFとしてLinuxに搭載。DTraceの大ファンがそのVMを利用する形で一から実装。まだDTraceの全ての機能がある訳ではない。歴史の部分が面白い。Sunが体力に物を言わせてDTraceを実装するもLinuxはRHが先行するも普遍的なものが無しに。… https://t.co/XkwfmBxF3q"
- まさみさんは語りたいさんのツイート: "トレーサでスクリプト書きたい場合はbpftraceがメインになるだろうなあ。stapは結局カーネルと一体化していないし。ただ、トレーサって実装が必ずカーネルと乖離するので、その上でどうマネジメントしていくかは思案のしどころ"
- まさみさんは語りたいさんのツイート: "ところでbpftracer、ローカル変数アクセス機能ちゃんとつけたんだっけ?いつも忘れてしまう。Huaweiの人を昔手伝った記憶があるんだけども・・・。"
- まさみさんは語りたいさんのツイート: "Diamonとかいろいろな動きがあるんで、トレーサは群雄割拠している感じがすごい。基本的にはみんな協力していて、ユースケースが違うだけなんだけど。"
- まさみさんは語りたいさんのツイート: "この前もなんかプローブポイントを設定すると、バージョンが変わったりコンフィグ変わったりすると使えなくなるんだけど、どうしたらいい?とか聞かれたから、それはstable ABIじゃないし、ソースコードが変わると変えざるを得ないよね、っていう話をした。"
- まさみさんは語りたいさんのツイート: "Dtraceに引き続き、SystemtapもeBPFベースに実装を変えてくれないだろうか・・・。まあそうするとStapgamesは多分全滅すると思うけど。"
- まさみさんは語りたいさんのツイート: "stapgamesで厄介なのはループを多用するっていうところだから、その点をなんとか出来れば解決できるのではないか。"
strace
- strace コマンドの使い方をまとめてみた - sonots:blog
- 第11回「 strace ノススメ」 | NTTデータ先端技術株式会社
- straceコマンドの使い方 - Qiita
- straceを使ったデバッグ | OSDN Magazine
- strace - Wikipedia
- straceがどうやってシステムコールの情報を取得しているか - ローファイ日記
- プログラムから呼ばれるシステムコールを確認する:strace:Technical tips:Media hub
- よく使う strace のオプション - Qiita
- kati とか依存関係とか strace とか - straceが遅い
- naoさんのツイート: "Linuxで動くとあるシミュレーターの評価版がアホほど遅くて評価にならないのでstraceかけて眺めてみたら馬鹿みたいにusleepを発行。ptraceで特定のパターンのみusleepを無視するラッパを作成・実行して本来の性能なら問題ないと確認できたのでめでたく購入、ということがあった。"
- Linux Kernel: rtnl_mutex を長時間 ロックして刺さった状態を観察する - hibomaの日記
- strace 5.2 で追加された -z -Z オプション - hibomaの日記
- strace -c を使う際に -w オプションを使い分けよう - hibomaの日記
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「たまに、strace の unfinished と resume を繋げたログを見たいことある」 / Twitter
ltrace
- dlopen()した共有ライブラリ内の関数呼び出しをltraceする - Qiita
- Debian -- sid の ltrace パッケージに関する詳細
- ltrace で共有ライブラリの関数呼び出しをトレースする - bkブログ
- tips – ltrace で共有ライブラリの関数呼び出しをトレースする|てくめも@ecoop.net
- ltrace - Wikipedia
- ltrace(1): library call tracer - Linux man page
- straceとltraceでトレース - Szarny.io
- AWSがElasticsearch Serviceに分散トレースを追加
- sltrace.dvi
- 第17章 システムモニタリングユーティリティ
- IBM Knowledge Center - 一般的なデバッグ手法
perf tools
- perfの使いかた
- perf - Wikipedia
- perf使ってみた - Qiita
- :matsuu:さんのツイート: "Linux perf profilerのGUIクライアントらしい。ほう / “hotspot - a GUI for the Linux perf profiler - KDAB” https://t.co/2GoKwlWmGs"
- hotspot - a GUI for the Linux perf profiler - KDAB
- Linuxのperfプロファイラ向けGUI「hotspot 1.0」が公開 | OSDN Magazine
- Dockerコンテナが遅くなるもう一つの原因 | POSTD
- まさみさんは語りたいさんのツイート: "バックトレースも一緒に取る? ちなみにどのロックインスタンスが、というのはたとえアドレスが出たとしても難しい。その場合そのインスタンスに関わる別のオブジェクトのインスタンスを調べないといけなくて、その意味をさらに追いかけないといけない。… https://t.co/SzF0ktKSoI"
- まさみさんは語りたいさんのツイート: "perf probeでinline関数をプローブすると、場所的にはcallerの方の行が表示されちゃうのか。ややこしいな。"
- Linux perf Examples
- Kazuho OkuさんはTwitterを使っています 「perf って定期的にプロセス止めてスタックをトラバースしてるのかな。だとすると遅いCPUでは、スタックが深い奴ほど重たく表示される?」 / Twitter
- 成瀬さんはTwitterを使っています 「@kazuho 多分途中まで取ってあとで合成してるんじゃないかなって気がするのと、call-graphオプションでスタックトレースの取得方法を選べますが、dwarfの場合は遅いかもですがlbrは速いです https://t.co/X32R7pRx0X」 / Twitter
- perf-record(1) - Linux manual page
- てらモス♋️さんはTwitterを使っています 「perfがカーネルに依存しているのはカーネルがCPUのPMUの違いを吸収していてくれるからなので、コンテナ内で使うにはむしろnvidia-smiみたいにホスト側のperfコマンドをコンテナ内から見えるようにするのが筋ですね…(´・ω・`)」 / Twitter
- Perf Tutorial 1
- てらモス♋️さんはTwitterを使っています 「perfのプロファイラとしての利点は元のプログラムに変更を加えずにCPU側から情報を取ることで本来の状態に近い状態でプロファイルが取れる、そもそもCPUしか知り得ないキャッシュミスとかの情報をとってこれるなどがあるはず(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「gprofみたいに-pgフラグをコンパイル時につけることで関数呼び出しにフックをつける見たいな事をせずに済むわけだ...」 / Twitter
- てらモス♋️さんはTwitterを使っています 「逆にgprofはあくまでglibcまでのレイヤーで頑張るのでユーザー空間のみで完結するのが利点と言えるですかね?」 / Twitter
ベンチマーク
AMD と Intel
- Kazuho OkuさんはTwitterを使っています 「Ryzen 向けの governor 信頼してないから、いいっちゃいいんだけど、なんで最大周波数セットできる値がコアによって異なるの? 同一物理コアのハイパースレッドですら違うw https://t.co/y6jBHB6Y1H」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「「速度制限無視する奴の速度制限読み取り能力を云々してもしょうがないんじゃないんですか」」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「IntelのCPUだとデチューンして確実に、分散の小さな綺麗なベンチマークが取れるし、Intel CPUのことだけ考えてチューニングしたい」 / Twitter
- satさんはTwitterを使っています 「@kazuho ハードウェア固有のところに踏み込んだRASを含めた細かいところはまだまだIntelの独壇場だと感じます。AMDの石はperfの結果すらあってるのかどうかわからなかったりしますし」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@satoru_takeuchi 昔はプログラムが時々落ちるレベルで泣いて直したって聞きました!!!」 / Twitter
スーパーコンピュータ
- Hideyuki Tanakaさんのツイート: "なんか何一つ正しいことが書いてなくてやばいですね…これ書いた人は一体どこで勉強して書いたのか、あるいは何かの目的のためにうそを自覚しながら記事を書き連ねたのか…?… "
- 新国産スパコン開発 日本製はGreen500で上位独占
- Hideyuki Tanakaさんのツイート: "やばすぎる記事だ(´・_・`) / 1件のコメント https://t.co/lehpuGBNbI “新国産スパコン開発 日本製はGreen500で上位独占” (1 user) https://t.co/15VN7jrGcp"
- Hideyuki Tanakaさんのツイート: ">違いはTOP500は簡単な計算を繰り返す理論上の最大能力、Graph500は複雑な計算をさせることで、TOP500のほうは低性能機材でも高い数値が出る。 Top500は密行列の連立一次方程式を解く速度、Graph500は無向グラフの幅優先探索をする速度、別にどっちも複雑な計算ではない。必要なリソースが違うだけ。"
- Hideyuki Tanakaさんのツイート: ">TOP500はスパコンを構成するユニット1個の理論上の性能から全体の数値を推測し、100倍だなとか1万倍だななどと計算しています。 >たとえ本物のコンピュータは1個だけで他は段ボールを並べただけであっても、TOP500では世界一を取れます。 違います。Top500は巨大な方程式を解くタスクの実行性能です"
- Hideyuki Tanakaさんのツイート: "ちゃんとスケールするように構成しなければTop500で世界一は取れません。現在のスパコンでは、特にネットワークがボトルネックになってくるので、ほかの典型的なアプリと比べても少なくないネットワーク帯域が必要だと思います。"
- Hideyuki Tanakaさんのツイート: ">中国のスパコンは段ボール製なのか、「神威太湖之光」や「天河2号」は一度も全体を稼働させたことがありません 全体というのがよくわからないですが、昨今の巨大システムでは常時数%は死んでいるのを許容する方向性なので、そういう意味ではそうかもしれないけど、基本的には全系動いてましたよ。"
- Hideyuki Tanakaさんのツイート: ">一つ一つのユニットが低性能でも数をたくさん並べれば数字が大きくなるのがTOP500で、しかも実際にユニットが存在するか誰も確かめていないのです。 二度目だけど、これは嘘です。"
- Hideyuki Tanakaさんのツイート: ">もうひとつのGreen500はユニット単位の省エネや計算速度を競うもので、実はこれが本当のスパコンの性能です。 Green500のスコアっていうのは、Top500のスコアを単に消費電力で割ったものです。Top500が無意味というなら、自動的にこれも無意味です。この人Green500のことわかってないでしょ"
- Hideyuki Tanakaさんのツイート: ">中国スパコンがやっているのは「市販のパソコンでも数多く並べれば合計で世界一」のような手法で、だから段ボールコンピューターになります。 そういうのやってるのはXeonとV100ならべてるやつに行ってあげて欲しくて、中国のTaihuLightは独自アーキの独自チップ並べてるからその批判はおかしい。"
- Hideyuki Tanakaさんのツイート: ">日本がやっているのはユニット単位の性能を向上させて少ないユニット数にする手法で、このほうが実用的です。 そんなことはやっていませんね。ポスト京のチップを一度見てみるといいですよ…。"
- Hideyuki Tanakaさんのツイート: ">Green500は日本製のスパコンが上位を独占していて、すべてが実際に稼働し利用されています。 これは好ましいことだし、まあそうあってほしいんだけど実際にはその中の最大級のシステムが、なぜか殺されましたね…"
- Hideyuki Tanakaさんのツイート: ">中国の「神威太湖之光」や「天河2号」は先ほど書いたように製造以来現在まで、一回もユニット全体を稼働した事がありません。 天河2号はしらないけど、神威太湖之光は実際に動いていましたよ。まあこんな記事に対して超絶今更だけど、一体どういう根拠なんだろ。"
- Hideyuki Tanakaさんのツイート: "(´・_・`)いやしかし一行ごとにでたらめが書いてあるこの記事やばすぎひん?"
- Hideyuki Tanakaさんのツイート: "いや大げさじゃなくまじで1行ごとにうそが書いてあるんだけど、このブログのほかの記事はどうなんだ(´・_・`)…詳しくない分野はわかんないから、詳しくない分野でこういうブログがあるんじゃないかと思うと、怖くなってきたゾ…(´・_・`)"
- Hideyuki Tanakaさんのツイート: "よく誤解される?のか変なプロパガンダ流してる人がいてそれの影響受けてる人がいる?のか知らないけど、Top500が単純な演算の繰り返しで、Graph500が複雑なタスクとかいうのは、全然そんなことはなくて、Top500はLU分解、Graph500はBFSというどっちもシンプルなアルゴリズムで、"
- Hideyuki Tanakaさんのツイート: "1コアCPUで動かすならどっちも10行程度のCのコードで書けるものです。並列化する際にボトルネックになるところが違ってくるので、計算機のどの辺が一番先に問題になってくるのかを測る指標の一つとして使われとるっちゅー話ですよ。Graph500が一番ボトルネックになるのはネットワークですね。"
- Hideyuki Tanakaさんのツイート: "Graph500では演算性能はほとんどいらないので、スコアはシステムの総インターコネクト帯域にほぼ比例すると思われて、京はそういう意味では6次元メッシュトーラスのTofuがいまだに世界1という話で、ほかのスパコンはそこまでのネットワーク帯域はいらないだろうという判断になっているという話では"
- Hideyuki Tanakaさんのツイート: "というか、Graph500、いったいどういうアプリに関係する性能なのか(ビッグデータ云々と宣伝してるけど、こんな恣意的に並列化しやすい形した無向グラフを単にBFSすることなんてあるか?)謎なのか?、500という名前なのにエントリーが248しかないのを何とかしてあげて"
- Hideyuki Tanakaさんのツイート: "単一始点最短パスの要するに枝に重みがついたバージョンも最近できたんだけど、エントリー数が21しかないので何とかしてあげてほしい(´・_・`)"
- Hideyuki Tanakaさんのツイート: "Green Graph のエントリー復活してた(´・_・`) IBM Moscow && MSU Alex Kolganovなるサイトのマシンがトップなのか(´・_・`) https://t.co/eE7RtJJZZh"
- Hideyuki Tanakaさんのツイート: "しかしスケール30(わずか10億頂点)、1ノードのマシンがトップ…というかランキングのほとんどが1ノードっていうの、完全にコンセプトとして破綻していますよね…"
- Hideyuki Tanakaさんのツイート: "10位にマックブックプロが入るスパコンベンチがあるらしいな(´・_・`)… "
- Hideyuki Tanakaさんのツイート: "スパコンの実用性能ランキング10位にマックブックプロが入ったらしい(棒)"
- くそでかいイリエワニがみたい!@転職活動中さんのツイート: "https://t.co/7Yx3Y2RYSr ベンチマークのとり方うんぬんの話が出たので、そっとこれを置いておきます。"
- How to run a stable benchmark // Speaker Deck
- SODA Noriyukiさんのツイート: "RTしたスライドにもちょっと出てるけど、環境変数の量の違いでスタックのアライメントが変て性能が変化したみたいな話もあったなあ。"
- 前田敦司さんのツイート: "https://t.co/dxsyGqWs34 に同じような話があります.(図1(b)や,4.2節)… "
- Producing Wrong Data Without Doing Anything Obviously Wrong!
- Hideyuki Tanakaさんのツイート: "どのベンチにするかと言っても、結局は理論演算性能とB/F比とネットワーク帯域のバランスで一番先にボトルネックが来たとこに引っ張られるだけなんだから、この三つの要件どこが一番厳しいのかもアプリにもよるから、どれそれが実アプリ性能だなんて宣伝してたらそれは全部嘘ですよ。"
- Green500 Lists | TOP500 Supercomputer Sites
- TOP500 Lists | TOP500 Supercomputer Sites
- SODA Noriyukiさんのツイート: "今回のIntelの件で言うと、firmwareの更新前と後での比較なので、ハードウェアその他含め厳密な比較が容易にできるのでこの論理じゃ弁護できないと思う。… "
- SKSの申し子さんのツイート: "ベンチマーク非公開ねぇ.俺も反対ではあるんだけど,ベンチマークって正確に取るのって難しいんですよね.特に世の中には他の人が再現出来ないベンチマーク記事を公開する人はそれなりにいて,更にセットアップとかが間違っていることが結構あって,そしてそれを信じてしまう人が結構いる.悩ましい…"
- SODA Noriyukiさんのツイート: "ベンチマークの取り方が悪いのって確かにホントに多いんだけど(例えばディスクベンチでディスクじゃなくて、カーネルの持つpage cacheからユーザ空間へのメモリコピー性能計測しているのってホントによくある)、今回のケースでは、そういうベンチマークで差がでてもやはり問題なわけで。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Windows系でも、本当に多いのですよね、これ。 さらにキャッシュの影響を排除した後も、HDDだと物理的なアロケート位置の変化=速度変化、SSDだとユーザ要求以外の処理がSSD内部で不定期に発生(+温度問題)などは、試行回数を増やして誤差を減らすしかなかったり。… https://t.co/zRdsLEqCCz"
- SODA Noriyukiさんのツイート: "ディスクの割り当てブロックの問題は、umount して毎回 newfs して mount し直してから測るとか、UNIX系なら raw device で計測するとかいろいろあるけど、SSDのケースは厳しいなあ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "HDD/SSDのデバイス性能を調べたい時はその通りなんですが、一方で、コピーソフトの性能を調べたい時は、真っ新な状態でのテストだと実用的な計測になりづらいんですよねぇ。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、適度に使用したファイルシステムのrawブロック群を、ddで毎回復元してから…が最強なんでしょうけど、1回のテストに掛かるコストが厳しい(笑)"
- SODA Noriyukiさんのツイート: "newfsまでするのは稀で何回か測ってバラつきが少なく整合性のある結果が出ればそれでヨシにしちゃうことが多いです。自分で測る時はraw deviceに対するバンド幅/レイテンシ計測みたいに簡単に測れてベースラインとして使える値は必ずとるんですが、人にお願いするときにはそれも面倒なことがorz… https://t.co/uxQe5y68ez"
- Huawei製スマホで3DMarkの自動ブーストが発覚 - PC Watch
- OPPO製スマホのアプリ名による3DMark最適化は「ある意味妥当」 - PC Watch
- 本の虫: コンパイラーを負かす
- 404 Blog Not Found:アルゴリズム百選 - 迷ったらbenchmark
- Kazuho OkuさんはTwitterを使っています 「ベンチマーク取る際に「CPUの割り当てを〇〇にして、クロックを△△Hzに固定します」って言うと、その時点で「えっ」って言われることがあって、こっちが「えっ」ってなる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ロードアベレージ見る場合とかクロック固定必須じゃないですか...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ひさしぶりにテスト機にログインして「おっそいなー」とか思ってると、CPUコア1個のみ、1GHz固定、みたいな状況のまま、前回の実験から放置されてるとか、ありがち」 / Twitter
B/F比
- B/f値とキャッシュ | Pravdaの日記 | スラド
- チュートリアル資料2.key
- 第一原理計算入門 計算機科学 理解への道
- SC11 - 京の技術を向上させた富士通の新スパコン「PRIMEHPC FX10」 (1) ピーク演算性能が前世代比で約2倍に向上したSPARC64 IXfx | マイナビニュース
- 0613watanabe.pdf
- どの分野の開発難易度が低いのか?(最新HPC事情に思うこと。)
- SODA Noriyukiさんのツイート: "そりゃ勿論、メモリバンド幅を向上させること自体は(それが妥当なコストでできるなら)望ましいことだからですよ。京の次世代がHBM載せるのもそういう理由。ただし、コストは上がるし、トレンドとしてメモリバンド幅を要求するアプリは徐徐にHPCの主流から外れていくという話です。… https://t.co/5FHRUypJb9"
ptrace
- るくすさんのツイート: "多分ptraceレベルで出来ると嬉しいのって、breakとかmalloc/freeみたいなツールによって決められたタイミングごとのインスペクトを回避してオレオレができちゃう所だと思っていて、それってなんだろうなぁ...結局よくできたトレーサーで出来ちゃうんじゃないの?とか"
- Kazuho Okuさんのツイート: "言語によらず手軽に障害解析できて便利… "
- るくすさんのツイート: "そこを推すのもありですねぇ… "
- Kazuho Okuさんのツイート: "あとはオーバーヘッドが小さくて実環境で使えるところですかね。 https://t.co/AJFflFrYok にあるように、プロファイルを取り続けるとか… "
- DeNAインフラの今とこれから - 今編 -
- るくすさんのツイート: "そう。インフラ屋さんとかいかにもケースに応じたプロファイラとか書いてそうだなと思ってたんだけどやっぱやってんすね"
OProfile
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ぬぬ、最近は oprofile を debian の apt 経由でインストールできないのか…"
- OProfileの使い方備忘録 - hogeなlog
- Oprofileによるボトルネックの調査 メモ - Qiita
- 第23章 OProfile - Red Hat Customer Portal
- About OProfile
- OProfile - A System Profiler for Linux (News)
- Oprofile | IT用語辞典 | 大塚商会
- Oprofileを使用してプロファイルを取る | 組み込みLinuxのArmadilloサイト
- OProfile - Wikipedia
- OProfile | 日経 xTECH(クロステック)
- openSUSE 13.1: 第8章 OProfile—システム全体に対するプロファイラ
ipftrace
- ipftrace: A Linux Function Tracer for Network People - Speaker Deck
- FadisさんはTwitterを使っています 「SystemTapは指定したカーネル関数の実行を見張るが対象がはっきりしないと使いにくい→ftraceはカーネル全体の関数を見張れるが、出力が多すぎてつらい→ネットワーク屋が見たいのは特定のパケットが通った関数だ→ipftrace #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「ipftraceの戦略: Linuxでパケットを処理する関数はだいたい引数にsk_buffをとる→この構造体を引数にとる関数を全部フックする→ターゲットのパケットにマークをつけておいて、フックはsk_buffにマークが付いていたら出力 #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「iptablesのアクションでマークをつけるからiptablesのルールでいろんなマークのつけ方が出来るのめっちゃ賢い #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「Linuxカーネルはキャッシュヒット率を上げるためにsk_buffをできるだけ使いまわそうとするため、アドレスが再利用されてトレースが続いてしまう事がよく起こる、と #kernelvm」 / Twitter
- YutaroHayakawa/ipftrace2: A Linux function tracer for network people
SystemTap
- SystemTap - Wikipedia
- SystemTap とは何ですか? どのように使用しますか? - Red Hat Customer Portal
- SystemTap ビギナーズガイド
- SystemTap
- 第14回「 SystemTap ノススメ」 | NTTデータ先端技術株式会社
- SystemTap メモ - myokotaの日記
- Linux のイントロスペクションと SystemTap
- systemtapを使った動的追跡 | Let's Postgres
- SystemTap - Wikinote
- Linux向け追跡ツール「SystemTap 4.2」リリース | OSDN Magazine
DTrace
- まさみさんは語りたいさんのツイート: "モダンと言っていいのかどうか・・・方向性が違うのだと思う(誰が使うかを含め)。ちなみにR社内ということは、Linuxに移植されたDTraceと言ってるのはSystemTapのDTraceラッパーですね。DTraceスクリプトをSystemTapスクリプトに変換してから使う。… https://t.co/wRpBgI7kYv"
- まさみさんは語りたいさんのツイート: "これややこしくて、実はO社の人は今でもDTraceをLinuxに移植しようとしているんです。あとDTraceはアドミンがシステムモニタをスクリプト化するためのツールだけど、Linuxのftraceとかはカーネルハッカーがデバッグするためのツール。eBPFはその中間かなあ。"
- まさみさんは語りたいさんのツイート: "なぜこうなるかと言うと、DTraceはトレースするイベントの種類が規定されている(そうでないとスクリプトが環境依存になってしまう)けど、Linuxはカーネル実装をコロコロ変えたいから、そこで代表的な挙動が規定されてしまうと困るわけです。デバッグ用途ならそういう規定は緩くてもいい。"
- まさみさんは語りたいさんのツイート: "つまりOSの代表的な挙動というものを想定するか、それともデバッグ用途と考えて挙動の規定はいつでも変わると想定するか(あくまで可能性や自由度の話)、それによってツールの性質が変わる。挙動を想定する場合、実装にまで踏み込んだイベントは規定できない。"
- まさみさんは語りたいさんのツイート: "でも実装に踏み込んだイベントを導入しなければOS自体のデバッグ用途には使えないので、どうしても2種類の実装が必要になってくる。eBPFやSystemTapはスクリプト言語は規定するけど、イベントは規定していないはず。これは苦しい解で、実装が変わるとスクリプトが動かなくなる可能性はある。"
- まさみさんは語りたいさんのツイート: "今私自身はftrace/probe-eventのメンテナンスをしているけど、これは本当にデバッグ用途だけを指向しています。OS実装のデバッグをするためにbreakpointを追加したいという用途。はっきり言ってアドミンには不向きなツールだけど、OS開発には役に立つ。"
- まさみさんは語りたいさんのツイート: "逆にアドミン向けにDTraceみたいなのが必要になるとは思うけど、それをネイティブに実装するか、SystemTapやeBPF上に実装するかは、どれだけネイティブ実装するメリットがあるかという話になるんじゃないだろうか。(個人的にはいくら聞いてもそのメリット部分がよくわからない・・・)"
- Takafumi Yonekuraさんのツイート: "Dtraceでdebugに使うのはほぼfbtプロバイダ だけで、スクリプト用途はシステム系のプロバイダで割とうまく共存してると思います… "
- Takafumi Yonekuraさんのツイート: "でも、fbtプロバイダは若干貧弱なので、もう少しリッチな独自プロバイダが欲しいな、となると途端にめんどくなる印象。"
blktrace
- blktrace User Guide
- VOYAGE GROUP エンジニアブログ : blktraceによるI/Oトレース
- 6.3. ツール
- blktrace(8) - Linux manual page
- Etsukata blog: blktrace で block IO の分布を可視化する
- Disk I/O性能測定するときに活躍する道具たち - お菓子食べる部
ftrace
Qiita
- ftraceについての勉強メモ - Qiita
- Ftraceでカーネルの一部の処理を追いかける方法 - Qiita
Twitter
- まさみさんは語りたいさんのツイート: "ftracetestで出来ることに限界があった。(bpfとperf関係はツールが必要・・・)"
- まさみさんは語りたいさんのツイート: "うーん、ftrace内部をkprobeでトレースしてみてるけど、イベント記録中の処理からは多重にイベント記録が出来ないのか。取り敢えず各所に置いてみてどこを経由してるかだけでも調べるなど。"
- まさみさんは語りたいさんのツイート: "ftraceをコンテナ内部から操作した場合、pid filterが使えないことに気がついた。(当たり前だが) コンテナ内部から使えちゃう時点で問題な気がしなくもない。"
- まさみさんは語りたいさんのツイート: "clangでLinuxのクロスコンパイルする話を聞いていたらftrace on armを有効にするとビルド失敗するっていう話があって、それmcountのシーケンスがちゃうからやでーっていうコメントしてた。"
- まさみさんは語りたいさんのツイート: "recordmcount.cっていうベタなプログラムを走らせて、各アーキテクチャ毎のmcount呼び出しシーケンスを確認しながらnopに変えるという処理をしているけど、コンパイラ実装が違うとシーケンスが違うから失敗する。あとはclangがどういうコード生成するのかに依存。"
- まさみさんは語りたいさんのツイート: "clangを使ってビルドしても、自動的にlldは使われない(gccのldが使われる)ので並列リンクは実行されないけど、誰かがそれとは別にlldを使うパッチを書いているらしい。探さないと(主にDeveloperBox向けに)"
- まさみさんは語りたいさんのツイート: "ftraceの中でmutex依存関係の地獄に悩まされている。リソースをget/putしない造りだからだ・・・。"
- まさみさんは語りたいさんのツイート: "まあ、Linuxだと簡単な統計データを取る用途だったら、DTrace要らないからなあ。既にevent-based histogramはftraceに実装されている。"
- まさみさんは語りたいさんのツイート: "kprobesをworkqueue関係の関数に突っ込んで10分ぐらいしたらrcuでエラー起きるっていうバグが報告されているんだけど、どうもredhatカーネルの上だけで起きているのではないかという気がする。あとこのあたりの関数は突っ込んでも全てftraceになるんだが・・・。"
- まさみさんは語りたいさんのツイート: "念の為全部+5したアドレスでもプローブしてみた。10分待ってみよう。"
- まさみさんは語りたいさんのツイート: "これ豆知識だけどx86-64のftraceは基本的にfentryの機能のため関数の最初5バイトにjmp命令が入るので、kprobesでその5バイトを避けると確実に命令境界になる上ftraceの対象にならない。"
- Kazuho Okuさんのツイート: "trqce-bpfccはコマンド指定して動かすオプションがないからbpftraceをsnapで入れたらオプションはあるけどexecveが見つからんとか言うから自分でビルドしてデバッグするかと思ったらubuntuのclangの付属ファイルが足りなくてupgradeで直る予定って書いてあったからアプグレしたけもダメ"
- Kazuho Okuさんのツイート: "MySQL が Userspace DTrace Probe を deprecate する決断をした翌年に linux 界隈が bpftrace で(DTrace 2.0だって)盛り上がるの皮肉だなぁ"
- Kazuho Okuさんのツイート: "bpftrace、masterで-cオプションがだいたい動くんだけど、probeが有効になる前に実行開始するから取りこぼしが発生してて、単純にexecveを遅延するとプロセス起動前だからprobeがセットできなくて、つまりはptraceでexecveタップしてほげほげやればいいんだけどめんどくさい"
- まさみさん⋈語りたいさんはTwitterを使っています: 「ふーむ、ClangにShadowCallStackという機能があるのか。これのkernel implementationでkretprobesが使えなくなるっていう話が出ている。 https://t.co/a1DWiGQGYt」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「スタックとは別の場所に影のコールスタックを用意しておいて関数呼び出し元を記録、戻る時にスタックを使わず、影のコールスタックを用いるとのこと。あれ?これfunction graph tracerじゃね?」 / Twitter
- function graph tracer - Google 検索
- まさみさん⋈語りたいさんはTwitterを使っています: 「kprobesを関数の頭にセットすると自動的にftraceが使われる機能は実装されてる。ただしkprobeの呼び出しに変更するためのトランポリンが使われる。今回のは、これをbpfにも適用できるよう変更したってことかな。多分レジスタセットを作らずにBPFで使うcallar savedレジスタだけ保存するのだろう。」 / Twitter
- トレーサ関連に大きな進展、ftraceがデファクトに?(1/2) - @IT
- 3.8. レイテンシ追跡用の ftrace ユーティリティの使用
- 6.5. ftrace
- https://www.kernel.org/doc/Documentation/trace/ftrace.txt
- 組み込み Linux - ftraceのトレースログをお持ちいただくには
- ftraceの仕組みとアーキテクチャ - テストステ論
- 第4回 Linuxイベントトレース最前線:LinuxCon Japan 2013 Preview|gihyo.jp … 技術評論社
- Ftrace と Systrace - steps to phantasien
- perf, ftraceのしくみ - 睡分不足
- 2019年4月26日 関数トレースをグラフィカルに実行する「KernelShark」,正式リリースに向けロゴ募集中:Linux Daily Topics|gihyo.jp … 技術評論社
- Fadisさんのツイート: "KernelShark初の安定版となるバージョン1.0が近くリリースされるらしい。KernelSharkはLinuxカーネルのftraceをtrace-cmdでダンプした物をGUIで表示するツール。カーネルの関数のcallやreturnがいつ発生したかをズームしたりフィルタしたりして眺めることができる https://t.co/xpXTZdD2jE"
- KernelShark 1.0 Soon Being Released For Visualizing "Trace-cmd" Linux Kernel Tracing - Phoronix
- perf, ftraceのしくみ - 睡分不足 (1)
バウンド
- :matsuu:さんのツイート: "CPUバウンドならWSLの方が高速、I/OバウンドならVirtualBoxの方が高速。なるほど。 / “Windows 10 WSL vs. VirtualBox Ubuntu Performance On An Intel C…” https://t.co/dFgfewLApr"
- チャネル・コントローラ - Wikipedia
- コンピュータ・アーキテクチャ - Wikipedia
- CPUバウンド - 英和辞典・和英辞典 Weblio辞書
- CPU boundの意味 - 英和辞典 Weblio辞書
- I/O boundの意味 - 英和辞典 Weblio辞書
- サーバ負荷を確認する方法 - Qiita
- CPUバウンドとGPUバウンド – ひにけにGD
- Node.js - nodeでのCPUバウンドな処理、分散処理への考え方について(child_processを使う?clusterを使う?)(31995)|teratail
- CPU バウンド・サービス
- コマンドによる「負荷」の原因切り分け
- I/O バウンド・サービス
- サーバ/インフラを支える技術4 Linux単一ホストの負荷を見極める 2 負荷とは何か - by shigemk2
- Clojureのいろんな並行処理の使い分け - tyano's Techlog
- サーバが重いときの対策メモ - 目の前に僕らの道がある
Twitter
Intel PCM
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 64bitでドライバ開発は署名問題で若干面倒というのはあるが、それ以上に、そもそもIntel PCMをVS2017+WDKでビルドしようとすると、あちこち手直しが必要で骨が折れる。 Intelさん、最新VSに追随する気が薄いのかな…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "リリースビルドプロジェクトに_DEBUGが付いていたり、CLR必要なものとそうでないものが入り混じっていたり、warning大量発生したり…linuxやMacと共通コードしようと頑張っている風だが、だったら極一部だけCLR利用とか中途半端感が。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ようやくIntel PCMドライバをカーネルに入れて、関連サービスも登録して、パフォーマンスモニタで監視。だが、いまのところ決め手になる情報は取れていない。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "上記の図を解説すると…。 キャッシュライン版とAVX2版のIPCは同レベル。 そして、AVX2のほうが L2/L3のキャッシュミス率はずっと高い。 しかし恐らくReadキャッシュのために実効的なペナルティとしては、キャッシュライン版の方が影響が大きく、AVX2の方が2倍高速だった、というところ。… https://t.co/TwTUKx387Z"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、この時点ではメモリ帯域用のドライバが入っておらず(これはgithubのgoogle配下にあるsysを入れる必要)、Read/Write帯域は0のままだった。"
- とみながたけひろさんのツイート: "いまのコンパイラって、コンパイル後の実行結果をフィードバックする仕組みが弱いんですよね。プロファイルガイディッドとかゆーてもループ回数とか関数呼び出し回数とかぐらいで、命令スケジュールとかデータ構造を性能カウンターみながら変えるとかできないので、、、… https://t.co/xjQglfDetN"
- まさみさんは語りたいさんのツイート: "おっ、やはりそうなんですね。まあ、プロセッサモデルで異なる最適化手法までバイナリに適用し始めたらそれはそれで・・・。さらに、データ構造は流石に勝手に変えられないというか(笑)… "
- とみながたけひろさんのツイート: "まあ、そこが「ワンパスコンパイラ」たる人間の出番ですよね😄 なお最近のgccはハードウェアプリフェッチャーの動作を予想して、構造体からデータを読み書きするときに、順序をいじるという仕組みがあるみたい(たしかlinaroの人がいれようとしてた記憶… https://t.co/fFt0aqjM9S"
- まさみさんは語りたいさんのツイート: "x86の命令毎のレイテンシを測る発表、OoOやストアバッファの挙動を予め考慮しておきながら、投機的実行が行われない依存関係のあるループをいかに作って行くかという話で面白い。 #x86opti"
- まさみさんは語りたいさんのツイート: "xbyakを使うとコード中で任意の機械語を詰めることが出来るわけだ。これはいいな。#x86opti"
- まさみさんは語りたいさんのツイート: "なんでperfコマンドを使わないのかが不思議なんだけど・・・。"
- とみながたけひろさんのツイート: "いま某CPU向けにまさに同じことをやっているのでとても参考になるのだった(x86じゃないのでXybakがなくて辛い)。私は頑張り切らない感じなので割り算命令の速度は割る数を1<<n(n=0-31とか)で変化させて「あー1クロックに4ビット計算できるのね」ぐらいを確かめて終わりにした #x86opti"
- とみながたけひろさんのツイート: "あと、しょぼい環境だとパフォーマンスカウンタをsyscallで読むのに時間がかかる(そしてジッターが大きい)ので辛いので、専用カーネルモジュールを作ってユーザーランドから直接読めるようにするとかやるのであった #x86opti"
- とみながたけひろさんのツイート: "そしてXybakじゃなくXbyakだった(汗)"
- とみながたけひろさんのツイート: "なおしょぼい環境だと掛け算も32bit*32bitなのかそうでないのか、とかで性能が変わるので辛い(ここで68000を思い出すおっさんであった)"
- satさんのツイート: "ミリ秒、マイクロ単位の最適化の話は書いてるとめちゃくちゃ楽しいのですが、いかんせんその点の最適化が必要な人は非常に少ないし、その人たちは本見なくても自分で勝手に調べそうというジレンマがありまして"
- まさみさんは語りたいさんのツイート: "マイクロ秒を切るテクニックばっかり追い求めてた感じはするなあ。 スピンロックは遅いからCPUローカルな変数にしてロックレス化とか、割り込み禁止も別の処理の反応速度を落とすからできるだけ回避とか・・・。"
- まさみさんは語りたいさんのツイート: "ソフトウェアの最適化の要は、そういう手練手管を駆使することより、どこがhotpathかを見極めて、それ以外の所は可能な限り富豪的プログラミングを適用して楽することなんだよね。"
- satさんのツイート: "それですよ。たのしいけど、それはホットスポットが見つけたあとの話であって、ホットスポットを見つける技術が最適化のために一番必要な技術かもしれない… "
- まさみさんは語りたいさんのツイート: "今はperfがあるのでマイクロ秒単位の遅い所は余裕で見つけられますよ。あとstraceとltraceを駆使するとシステムコールやライブラリコールの遅延も測れるから、ミリ秒単位の遅延場所も特定できますね。… "
- satさんのツイート: "perf最強です。もう頭が上がらない… "
- まさみさんは語りたいさんのツイート: "よくある最適化初心者の間違いは、なんかもうmain関数から最適化を始めてしまったり、コーディングスタイルとしてfutexじゃなく自作のspinlockを使ったり、というチグハグなところにあるんだよね。"
- まさみさんは語りたいさんのツイート: "スピンロックはスピンロック自体が遅いわけではなく(ナノ秒で見ると遅いけど)、スピンロックの粒度の調整が難しいということを付け加えさせていただく。大きくロックすると衝突しやすくなり、小さくロックするとメモリバスが乱されて遅くなる。per-cpuさいつよ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "このあたりに詳しい人が見たら、一発で見切れてしまう話なのでは?とも思いつつ(笑) (IntelPCMはWin系の場合、モジュールをコンパイルしてドライバを入れて、ようやくパフォーマンスモニタから細かなCPU関連の統計情報を参照できるようになる)"
- satさんのツイート: "x軸で示されたサイズのメモリにストライドをキャッシュラインサイズにして合計40億回メモリアクセスした場合の平均アクセスレイテンシ。x軸もy軸もlog scale。だいたいL1d(2^5 KB), L2(2^8 KB), L3(2^12 KB)で性能が一段階劣化。想定通り #livadevbox… https://t.co/cOBHoEy2PL"
- satさんのツイート: "これだと知ってる人には「そうですね」なので、次は今使ってるマイクロベンチプログラムを改編して各キャッシュがどのコアで共有されてるかを調べる。これは公式HPに載ってない情報 #livadevbox"
- まさみさんは語りたいさんのツイート: "トレーサのオーバヘッドの話は、どうやってもある程度出るのをどう削るか、みたいな話にしかならないし、あまりユーザビリティの観点からは気にされないのが現状なんだよなあ。"
- まさみさんは語りたいさんのツイート: "なのでLTTngのオーバヘッドが10%ほど低いです!っていう主張をされても、そうですか、という感想しかないのが現状・・・。"
- C++でOS自作 技術書典5 お05さんのツイート: "ストレージの各種メトリックを基にアプリが遅延した原因を推測するの難しいなあ。"
- まさみさんは語りたいさんのツイート: "「静的なトレースイベントはカーネルAPIだからバージョン依存しないとは言っていない(キリッ」っていうのが公式見解だったと思う。ただしまあ、トレースイベント自体はとても良く考えられている場合があるのでそういうのは結構硬い。"
- まさみさんは語りたいさんのツイート: "イベント発生回数やレイテンシの測定とか、定型的な処理だったら今でもftraceで出来るようになっているんだよね。結局典型的でよく使われる機能は固定化されるっていう話。"
- まさみさんは語りたいさんのツイート: "kprobeを使ったとしてもレジスタとかじゃなく元の引数でアクセスできるようにすべき。systemtapは既にそうしているし、perf probeを使えば出来るはずなんだけど・・・。"
- まさみさんは語りたいさんのツイート: "perf_event_open(2)は本当にちょっとアレだよなあ・・・。"
- まさみさんは語りたいさんのツイート: "bccの面白い所、多言語バインディングしてるけどカーネル内で動かす部分はCっぽい何かのままなんだよなあ。"
- まさみさんは語りたいさんのツイート: "bccでmodified Cが必要な理由は、多分ループが使えないからじゃないかな。"
- まさみさんは語りたいさんのツイート: "bcc使う、使わないは、使っているカーネルと環境とターゲットに依存するんすよね。"
- まさみさんは語りたいさんのツイート: "bpftraceとply、開発続いてたんだ。"
- Kazuo MoriwakaさんはTwitterを使っています 「@satoru_takeuchi bcc-toolsにはいってるcachestat、キャッシュメモリの利用状況みるのによさそうです。ディストリビューションによって微妙に名前がちがったりするのが難です。 https://t.co/bKfHTxjsPA」 / Twitter
- sat📒さんはTwitterを使っています 「@moriwaka ubuntuだとbpfcc-toolsのようですね。べんりそう。ありがとうございます。perfよりはとっつきやすそう」 / Twitter
- H1karu SA1T0@クソ雑魚インフラエンジニア🐈さんはTwitterを使っています 「linux performance tool 👀 メッチャ良いなこの資料 https://t.co/nnCe2M9J4z https://t.co/YHVX2LAx5W」 / Twitter
- linux_perf_tools_full.png (3000×2100)
- RyotoさんはTwitterを使っています 「gdbやstraceはptrace(2)を呼んでて、実行を止めてしまうので副作用が大きい #kernelvm」 / Twitter
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm 代表的なツール gdb, strace: ptrace(2)を利用(実行パフォーマンスに影響大) perf: perf_event_open(2) (ユーザーランド側の処理が多くパフォーマンスに若干影響あり) bpftrace, BCC: bpf(2), perf_event_open(2) (カーネル側で実行されるのでオーバーヘッドが小さい)」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「ftrace/systemtapもフィルタリングをカーネルで実行するよ。 #kernelvm」 / Twitter
- 各種メモリ/ストレージのアクセス時間,所要クロックサイクル,転送速度,容量の目安 - Qiita
- 計算の高速化のために必要なこと: メモリの観点 - Qiita
- 𝘼𝙧𝙧𝙖𝙮-𝙨𝙖𝙣さんはTwitterを使っています 「このページ、知見の塊やんけと思ったら、詳解システムパフォーマンスの著者だった。 https://t.co/uGQUy63JyN」 / Twitter
- Brendan Gregg: Overview
- ytakanoさんはTwitterを使っています 「複雑性の科学、大まかなパラメータはわかるんだけど、それをパフォーマンスチューニングとかにどう活かせば良いのかがわからない。」 / Twitter
- ytakanoさんはTwitterを使っています 「ある構造にフラクタル性を持たせて、1次元上のスケールでパフォーマンス向上させるとかになるのかな。」 / Twitter
遅いコードの改善
- herumiさんはTwitterを使っています 「@kazuho @syohex 遅くなってるときはfrontend_retired.dsb_missの値が極端に大きい。 https://t.co/TiuEAKRAI2」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@herumi @syohex ありがとうございます!!!!!! これはつまり、uop cacheでコリジョンが発生してるってことなんでしょうか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「やっぱり gcc -O3 に頼るとコードがデカくなりすぎるから、 -O2 で同等に動作するように、自前でループあんロールとかするのかなぁ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「uop cache collision ってそういうことだよね。facebook の bolt とか使うとマシにはなるんだろうけど、コードサイズでかいのはそもそもよくない」 / Twitter
- Inada NaokiさんはTwitterを使っています 「@kazuho __attribute__((hot)) 使うとかどうでしょう? 特定の関数だけ、他より積極的にアライメント取ってくれないかな。」 / Twitter
- herumiさんはTwitterを使っています 「@kazuho @syohex コリジョンというか、ptls_fusion_aesgcm_encryptの最内ループでアンロールできてないところが足かせになってパイプラインがつまっていた感じです。 こんなふうにしたら大分ましになりました。 https://t.co/Qz13rOFyH9」 / Twitter
- unroll · herumi/picotls@cadd1e4
- herumiさんはTwitterを使っています 「@kazuho -O3でも先程の手動unrollはread-modify-writeが並列実行しやすそうに並んでました。いくつか試す限りでは顕著に遅くなるということは減ってるようです。https://t.co/Byh0OTf8tq のO3-before.txtとO3-after.txt 変動が大きいですが元のコードはストールすることが多いです(with-2.png)。」 / Twitter
- picotls/result at master · herumi/picotls
- Kazuho OkuさんはTwitterを使っています 「@herumi ありがとうございます。手動アンロールとuop cacheへのプレッシャーという示唆をいただき https://t.co/uzbKp3SzmI を作りました。僕の環境で、手動アンロールは -O3 の自動アンロールと速度差がなかったのですが(続く)」 / Twitter
- Optimize for size, while unrolling the hottest loops by kazuho · Pull Request #308 · h2o/picotls
- Kazuho OkuさんはTwitterを使っています 「@herumi 、大きなループの手動アンロール廃止と組み合わせることで、半分以下のコードサイズで同等の速度がでるようになりました」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@herumi 当初の問題 https://t.co/gh0JxvBq4A についても、コードサイズが大きく変わったから確かなことは言えませんが新コードの -O2 -fno-unroll-loops では問題が発生しないことは確認できました」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@herumi @syohex このスレにやってきた人が解決策にたどりつけるように貼っておきます。問題を修正したPRはこちら https://t.co/uzbKp3SzmI 原因は端的にいうと、コードがでかいわりに無駄が多くて、あちこちに負荷がかかっていたことでした」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今はCPU系の高パフォーマンスのためには、disasで眺めても、perfでキャッシュミスを観察するだけでもダメで、遂に uop-cacheの効きを観察せねばならんのか、、、面白すぎる(笑) StackOverflowにも uop-cache絡みの話が出ていた。 https://t.co/KdcRmh496p https://t.co/24yQj82qp3」 / Twitter
- performance - 32-byte aligned routine does not fit the uops cache - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そのうち、コードを書いていると「これだとuop-cacheの効きが悪くなりそうだ」とかピンと来るようになるのかしらん? 下記レベルやTLB, L1, pagingなどは意識していたが、uopレベルはさすがに気にしていなかった。 https://t.co/X5UIyCl0nH」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「しかし(データならともかく)プログラムコードのアドレスがちょっとずれただけで30%も性能が落ちることがあるなんて、イマドキのCPUでの最適化作業って辛いすぎ… https://t.co/2PnxVPe5HH」 / Twitter
- Improving LLVM-Generated Code Size for X86 Processors - Ansari-Code-Alignment.pdf
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @herumi @syohex このあたりの コードの32byteアライメント問題で良いのですかね。 https://t.co/3QCZHChS9i https://t.co/KdcRmh496p」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @kazuho @herumi @syohex https://t.co/87fJsE6Yd1 という話なので DSB が問題ってとこまでは間違いなさそうです。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「uop意識したループのコツ解説があった。 コード整列に問題がある場合、1-2clock / iterのペナルティがある感じかな…最悪値は 1ループのuop数が23,24の場合で、6 → 8clock / iter となり、33%の性能劣化と。 (この周辺以外だと差は相対的に小さい) https://t.co/JA8qYHjy8C https://t.co/5w9f7a5DzI」 / Twitter
- assembly - Is performance reduced when executing loops whose uop count is not a multiple of processor width? - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ループ内を融合済uop数でカウントして(一覧資料あり)、33~63opsで4N+1 や 4N+2 ならループ展開したほうがいいとか、そこまでやるか的なコツが書いてある。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「CPU外部から見えないはずの uOp / uOp-Cache が、僅かな命令位置依存の性能変化でその輪郭が顕在化する様子は、物理学で直接見えない / 取り出せない存在を間接的な輪郭から推測 / 確認する姿と似ているかも(笑)」 / Twitter
- herumiさんはTwitterを使っています 「みなさん、いろいろ情報ありがとうございます。 Intelの最適化マニュアル3.4やB.5.7章にフロントエンドのストールの細かい話や調査方法が載ってるのですが、複雑です。元の問題は@kazuhoさんが解決されてるので時間を見て調べてみようと思います。 https://t.co/LmxipbOUzs https://t.co/bfvojMN3zK」 / Twitter
- xxqiさんはTwitterを使っています 「DSBだとこのエラッタを踏んでいそうな気が https://t.co/dmuo3bW6IG https://t.co/YKhJXwwMiH」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「https://t.co/VnDfTOsrIf 命令が間に合わなくなるの、 PS3 の cell のバグ(?)を思い出した。あれも 128B の空間に load/store がたまたま集まってしまうと命令フェッチが間に合わなくてストールするとかで、一切使ってない関数を消したら遅くなったりして大混乱してた思い出 https://t.co/sWA0ZzqyBP」 / Twitter
- Hack the Cell - なんとなく全く使ってない関数消したら速くなった/遅くなった!
- プロファイラのしくみ - Backnumbers: Steps to Phantasien
- プロファイル測定 | VA Linux Systems Japan株式会社
- VS2017 15.8プレビュー2でCPUプロファイリング、F#サポートが改善
- flamegraph プロファイリング - Google 検索
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています: 「profilerに出てこなくなってからが本番やで?」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています: 「profilerに出て来てるところがメモリコピーとかの必要なコストだけになって来てから、もう、アイデア勝負。どれだけ汚くない最適化をほどこすか。」 / Twitter
- 0から始めるNode.jsパフォーマンスチューニング | kohsweblog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「プロファイリングとメトリクスの違い: メトリクス: 短い間隔でとられる、自由に選ばれた時系列データ プロファイリング: あらかじめ決まった指標を長い期間でとられる、スタックトレースと紐付けられる統計 #o11yjp」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「自由に」と言うより「自発的に」と言うべきか #o11yjp」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうプロファイリングの結果表示方法初めてだ。網羅的で分かりやすい #o11yjp」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「継続してprofilingするために、バージョンとrevisionをビルド時に埋め込んでおこう。」 / Twitter
- k0kubunさんはTwitterを使っています 「perf-profile既に爆裂に便利だけど、(インライン化されてて存在しない) インライン化元のフレームをdwarf読んで計算してカウントできれば更に便利な気がするが、できるのかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「これ、当初は割と荒いサンプル取ってて 「パケットサイズが1320バイト超えるあたりで特性が変わるのは何かTCP/IPスタックにMTUサイズに近いパケット向きの最適化が入ってるんじゃないか」 みたいな推論してたし、統計から裏にあるモデルを推論するのは常に注意が必要。 https://t.co/7wiU0l5Ejp」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ワークセットが27KBあたりになるあたりで数%速度が低下するの、これL1キャッシュの壁なんだろうなぁ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そして、ソフトウェア実験だから仮説を確認するためにサンプル増やした結果、当初の仮説を棄却することができた、という話。他の分野だと、なかなかこうはいかない。 なお、結論としては、パフォーマンスカウンタの値も見ずにL1キャッシュのせいにするようなエンジニアは信用ならない、です。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「バックプレッシャーなしでデータ書いてるからメモリ不足に陥りそうなものなのに、なんでCPU利用率100%でサチるのかなーって思ったら、バッファ量が増えてmemmoveのコストが支配的になる、という変なバックプレッシャーが働いてた」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Ryzenに対する最大の不満は、linuxで使う際にCPUクロックの細かい制御ができないところです(できないよね?)。ベンチマーク条件いじりづらいじゃん!」 / Twitter
- Intel VTune Profiler の使い方 - Qiita
- 144447146.pdf
- ドッグさんはTwitterを使っています 「tracy っていう C++ のフレームプロファイラ便利そう | 'wolfpld/tracy - Bitbucket' https://t.co/wZx7l0ndJx」 / Twitter
- wolfpld / tracy — Bitbucket
- New RelicがJFRを利用したリアルタイムJavaプロファイラを提供
- [Ann] ABBench: Lightweight Microbenchmarking Library | Weekly news about Pharo
- hurutoriyaさんはTwitterを使っています 「記事でも参照させていただいた @hagino3000 さんとの会話、もう一年前なのか。時が経つのは速い。」 / Twitter
- システムの応答速度は本質的な価値提供であることを示す A/B テストの実例 | Shunya Ueta
- hurutoriyaさんはTwitterを使っています 「システムの応答速度は速いほど正義ですが、実際にどれ位速くなれば定量的にどの程度ビジネスインパクトがあるかを示したA/Bテスト事例についてまとめた。誰もが信じる直感を定量的に検証する姿勢が素晴らしい / “システムの応答速度は本質的な価値提供であることを示す A/B…” https://t.co/RyYIfEm5cZ」 / Twitter
- sjiさんはTwitterを使っています 「プロファイラ作ってるとわりといかようにも情報つけたり足したり整形したりできるコールトレースが得られ、このコールトレースというのは簡単にデータ量を沢山手に入れられる比較的有機的な感じのデータであり、なにか面白い使い方があるような気がしているものの思いつかない」 / Twitter
最適化
その他
- 最適化レポートの制御方法 | インテルソフト あるある情報局
- /LTCG (リンク時のコード生成)
- MSVC code optimizer improvements in Visual Studio 2017 versions 15.5 and 15.3 | Visual C++ Team Blog
- インライン・メソッド・キャッシュによる動的ディスパッチ高速化(2/3) - @IT
- 富士通C++コンパイラの最適化機能の改善について
- メニーコア時代のアプリ性能検討WG 成果報告書 | サイエンティフィックシステム研究会(SS研)
- コンパイラの構造を解説 | Shinta's Site
- Tips IA32(x86)命令一覧 Rから始まる命令 RDPMC命令
- bitwise-simd
- KAKEN — Research Projects | 2019 Fiscal Year Annual Research Report (KAKENHI-PROJECT-17H01764)
- プログラミング言語のPythonの速度は遅いことで有名だが、C言語くらい速さにすることは可能なのか?に対する十河 伸一郎 (Shinichiro Sogo)さんの回答 - Quora
- branch folding - Google 検索
- const folding - Google 検索
- プログラム融合変換 - Google 検索
- llvm metadata - Google 検索
Micro + Macro Fusion
- 【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUマイクロアーキテクチャ「ZEN」の命令デコード - PC Watch
- assembly - What is instruction fusion in contemporary x86 processors? - Stack Overflow
- MacroFusion in Intel CPUs. | Easyperf
- Macro-Operation Fusion (MOP Fusion) - WikiChip
- Micro-op fusion in x86 | Hacker News
- Microsoft Word - msoC5849.doc - Performance_Characterization_SPEC_CPU_Benchmarks.pdf
分岐予測のヒント
配列化による順次アクセス
- MasaTamさんはTwitterを使っています 「'L1キャッシュから値をロードするにはわずか3から4サイクルのレイテンシで済むのに対して、メインメモリから値をロードする時のレイテンシは数百サイクルを要することもある。アプリケーションは典型的には時間的局所性(temporal locality)を示すため、キャッシュによってアプリケーションの性能は"」 / Twitter
- MasaTamさんはTwitterを使っています 「"向上する。つまり、メモリ中のある位置が最近アクセスされたのであれば、すぐに再び同じ位置がアクセスされる可能性が非常に高い。(中略)アプリケーションは空間的局所性(spatial locality)も示すことがある。つまり、メモリ中のある位置がアクセスされれば、その近くも近いうちにアクセスされやすい"」 / Twitter
- MasaTamさんはTwitterを使っています 「ガベージコレクションより Parallel Programmingの授業を思い出した。キャッシュの観点からも配列は順次アクセスされる場合、非常に効率がいい。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています 「@masatam81 最近のSDRAMのプロトコルを見ても,順次アクセスの方がランダムアクセスより効率良くなるように出来ています。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています 「@masatam81 データだけでなくプログラムコードも,順次アクセスになるように,つまり分岐なしに処理する方が高速になります。どうしても分岐する場合は分岐予測のヒントを与えると高速になります。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています 「@masatam81 ちなみにPelemayの高速性の源泉は,リストを配列化して順次アクセスすることと,生成するコードに徹底的に分岐予測のヒントを付与することにあります。」 / Twitter
- Fadisさんのツイート: "DPDK、同梱のサンプルプログラムがカジュアルに「指定したレベルのキャッシュまでデータをプリフェッチする」と「分岐予測にヒントを付ける」を活用してて、ネットワークプログラミングには使っているプロセッサに対する深い理解が必要です、的なアレを感じる"
- インテル アーキテクチャ 最適化
- 分岐予測 - Wikipedia
- 条件分岐のヒントとしてlikelyやunlikelyを指定してみる - Qiita
- ハードウェアに対する分岐ヒント 竹下世界塔の計算機よもやま話/ウェブリブログ
- C++ SIMD クラスの機能
- fnami: Assembler
- Tips IA32(x86)命令一覧 補足
- repz ret - repz ret
- コンパイラは分岐情報を使って何ができますか?
- Kazuho OkuさんはTwitterを使っています 「分岐予測器に優しいコードを書くの、21世紀の最適化の鉄則だと思ってる。分岐がほぼ一方に倒れるようなコードにするとか、マージしたあと再分岐みたいなのを減らす(インライン展開のタイミング含む)とか、できることは色々ある」 / Twitter
- Miura HidekiさんはTwitterを使っています 「mrubyのJIT、型のガードはほとんどの場合成り立つことが期待できるから、それをCPUに伝えると速くなるのでは?と思って、Jccの分岐ヒントプリフィクスを入れてみた。あまり効果は無いようだ(CPUは昔のi5です) https://t.co/SLtf0aVVD6」 / Twitter
- Tips IA32(x86)命令一覧 補足
- Miura HidekiさんはTwitterを使っています 「mrubyのJIT、間接ジャンプの後にud2命令を入れると速くなったような気もするし、変わらないような気もする」 / Twitter
プリフェッチ
- インターネット・ストリーミングSIMD拡張命令
- The 3 key challenges in programming for MC
- プリフェッチ - Wikipedia
- SIMD 演算におけるキャッシュ制御方法とか - kawa0810 のブログ
- ASCII.jp:キャッシュの実装方式から見える AMDとインテルの置かれた状況 (2/3)|ロードマップでわかる!当世プロセッサー事情
- プリフェッチのサポート
Profile Guided Optimization
- Hideyuki Tanakaさんのツイート: "profile guided optimizationをRustでやるやつらしい(´・_・`) / “GitHub - Geal/pgo-rust: Testing LLVM's profile guided optimizat…” https://t.co/Skcuk2aauP"
- Hideyuki Tanakaさんのツイート: "profile guided optimizationをCargoのサブコマンドとしてお手軽にできるようにするやつみたい(´・_・`) / “GitHub - vadimcn/cargo-pgo: Supercharge you…” https://t.co/AoA3QjaQUX"
- Hideyuki Tanakaさんのツイート: "実際んとこprofile guided optimizationってそんな速くなんの?(´・_・`)"
- Hideyuki Tanakaさんのツイート: "2,3割も速くなるケースもあるみたいだけど自分でやってそんな速くなったためしないんだよなあ(´・_・`)"
- [Profile Guided Optimization (プロファイルに基づく最適化)] ダイアログボックス
- Profile-guided optimization - Wikipedia
- Profile Guided Optimizationが.NET Coreでも利用可能に
- rigayaの日記兼メモ帳 x265 ビルド ~ Visual Studio PGOビルド
- koie blog : PGO: Profile Guided Optimizationをためしてみた
- [Options (オプション)]: [Profile Guided Optimization (プロファイルに基づく最適化)] ダイアログボックス
- ガイド付き最適化のプロファイル
- 15%の高速化を達成。Windows版「Google Chrome」でMicrosoftのPGO技術が採用される - 窓の杜
- Rust で Profile-Guided Optimization やってみた - はやくプログラムになりたい
x86 C
- 相沢陽菜さんのツイート: "この間、「x86ターゲットだと謎の計算式に置き換えられるけど、ARMだと普通に計算されちゃう。謎の計算式のほうが速いとおもうけど、最適化のための重み的なのあってるのかなこれ」みたいなことを某学生がいってた"
- 相沢陽菜さんのツイート: "intの変数を定数でわる関数とか作ってO3とかかけるとなぞの処理になるんだよ(なぜそうなるかはよく考えるとわかるらしい"
- 相沢陽菜さんのツイート: "コンパイラ「 movl %edi, %eax movl $1717986919, %edx sarl $31, %edi imull %edx sarl %edx subl %edi, %edx movl %edx, %eax ret 、はい、5で割れました」 PG「は???」"
- hoge.c
Polly
- Hideyuki Tanakaさんのツイート: "これなんだろ(´・_・`) / 他1コメント https://t.co/qAZ1G8NXkr “Polly - Polyhedral optimizations for LLVM” https://t.co/l3yHixsSwP"
- はてなブックマーク - Polly - Polyhedral optimizations for LLVM
- Polly - Polyhedral optimizations for LLVM
- Hideyuki Tanakaさんのツイート: "https://t.co/MyJn2qXtl0 ここのグラフ観てるとpollyに掛けるだけでGEMMのコードが死ぬほど早くなってるけどそんなことできるなら使ってみたいしPEZY-SCで動かすコードに簡単に使えたりせんのかな"
- Hideyuki Tanakaさんのツイート: "普通に書いたら当然だけどGEMM全然性能出ないみたいだけどpollyに掛けるだけでたぶんハンドチューンされたBLASとかの2割引きぐらいの性能になるとかすごすぎんよお…"
- Hideyuki Tanakaさんのツイート: "“Polyhedral Compilation Techniques”なんてのがあるのか / “IMPACT 2017 - International Workshop on Polyhedral Compilation Tec…” https://t.co/qh3AYAad0E"
- IMPACT 2017 - International Workshop on Polyhedral Compilation Techniques
マルチグレイン並列処理
- マルチグレイン並列処理
- ipsj2003_1.pdf
- 高速化 | オスカーテクノロジー株式会社
- IPSJ-ARC02150007.pdf
- マルチグレイン並列処理の意味・用法を知る - astamuse
- マルチグレイン並列化技術 オスカーテクノロジー | イプロスものづくり
自動ベクトル化
- 自動並行化と自動ベクター化
- SIMD - primitive: blog
- Core i7のSSE4.2にも対応、インテル コンパイラーで作るSSE対応プログラム - HPC/並列プログラミングポータル - OSDN
- コンパイラー最適化入門: 第4回 自動ベクトル化はどんな時に行われるか | iSUS
- 自動ベクトル化の使用
- ロボ太さんのツイート: "環境やターゲットに強く依存するのだと思いますが、科学技術計算に話を限ると、そんなに「コンパイラが賢いコードを吐く」印象はないですね・・・。わりと残念なコードを吐いててがっかりすることが結構あります。ただ、x86系では(他の石に比べて)特異的にコンパイラが賢い印象があります。… https://t.co/AopKgh6kl3"
- SODA Noriyukiさんのツイート: "SIMD命令まわりの使い方の話かな?"
- 梅澤威志/ゆーむさんのツイート: "自分が書きたい分野(画像処理)のコード(のベクトル化)だとコンパイラが全く当てにならないので結果として人間(=俺)がintrinsicで適当に書いたコードの方が圧倒的に速くて悲しい>RT https://t.co/OjAjEKizyI"
- ロボ太さんのツイート: "DEC Alphaはコンパイラが賢かった記憶があり、Cell/B.E.は触ったことないけどコンパイラがまともなコードを吐ける気がせず(違ったらすいません)、逆にIA64的なVLIW系ではコンパイラより賢いコードをかける気がしないので、石というか、ベンダーのコンパイラ部隊のやる気に強く依存している気が・・・。"
- OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi こちらは 2015年の Cray User Groupでの Sandia National Labによる Intel・Cray・gccコンパイラの x86ベクトル化の比較報告です https://t.co/3xpbYCAXjX TSVC (Test Suite for Vectorizing Compilers) Benchmark LCALS (Livermore Compiler Analysis Suite) Benchmark… https://t.co/KNYzaZGc2s"
- インテル® Advisor ユーザー向けベクトル化リソース | iSUS
- 2018年注目していきたかった技術の振り返りと個人的振り返り | κeenのHappy Hacκing Blog
- Elixir におけるC言語コード生成・最適化の試み - Speaker Deck
- Exploiting superword level parallelism with multimedia instruction sets | Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
- [Abstract: simd] AND [Abstract: generation] AND [Abstract: optimization] AND [Publication Date: (01/01/2000 TO 12/31/2021)] : Search
- Posts | Easyperf
最適化レポート
- えびちゃんさんのツイート: "わけわからんすぎる コンパイラしゃんは最適化するときに「これはこんな理由でこんな風に最適化できるんだよ〜」ってコメントをつけといてほしい"
- TIke / Ti11192916さんのツイート: "gcc って最適化レポート吐けませんでしたっけ… "
- えびちゃんさんのツイート: "うーん、別物を見ていそう(Intel 製だと -opt-report があるらしい?) ループをアンロールしたよ、とかベクトル化したよ、とかくらいの簡素なものしか出なかったです… "
C++ vtable
- 島鉄雄さんのツイート: "vtable の中身ってインスタンスが生成された時点で決まってるし、オフセットも定数だから、ストールとか発生するはずが無いと思われる。 仮想関数呼び出しが遅く感じるのは、インライン化されない影響の方がデカい気がする。… "
- Masayuki Ishikawaさんのツイート: "大昔C++を初めて使い始めた時、会社の先輩がC++の呼び出しオーバーヘッドが気になるって言われた事があります… "
- iruka3さんのツイート: "仮想関数のvtableをなるべく手前でloadするようにコンパイラ(か、人間)が工夫するしかないです。 分岐先が直前まで未定のjmpやcallはストールせざるをえない・・・… "
- iruka3さんのツイート: "C言語で書けば、(アルゴリズム的に無駄やってないなら)今のCPUは十分早いです。 問題は、C++で仮想関数使い始めてからですねぇ・・・ (呼び出しがレジスタ間接になるけど直前にしかロードされないので投機出来なくてストールとかそんなやつです)… https://t.co/xcVHtcwU4y"
- 島鉄雄さんのツイート: "パイプラインがストールする案件ってのは、飛び先が分からないからじゃなくて、フェッチした飛び先が実際にジャンプする前に書き換わった時でしょ? フェッチからやり直しになるのをストールという。 vtable の中身は書き換わる事が無いから、ストールしないよ。… https://t.co/XC0Kvm0gMu"
- iruka3さんのツイート: "その通り >vtable の中身ってインスタンスが生成された時点で決まってる vtableから、呼び出し先アドレスを得るフェッチをするまで飛び先が分からないので、CPUの命令フェッチパイプラインがストール C++コンパイラが、これを先回りロードしてレジスタに保持出来ればいいけど、そうなるとは限らない… https://t.co/KZv7bsFUoV"
- iruka3さんのツイート: "https://t.co/xY41qwoWfz ((TypeGetArea*)s->vftable[VF_GetArea])(s); CPUの命令フェッチパイプラインの問題だけであって、命令ステップ数的には、べつにどうということはない感じ"
- [雑記] 仮想関数テーブル - C# によるプログラミング入門 | ++C++; // 未確認飛行 C
- iruka3さんのツイート: "もしかしたら今のintel CPUは間接分岐命令のアドレス予測をやっているのかもしれないけど。"
- 島鉄雄さんのツイート: "0:フェッチ→解釈 →実行 →書き戻し 1:解釈 →実行 →書き戻し→フェッチ 2:実行 →書き戻し→フェッチ→解釈 こんな感じでパイプラインがオーバーラップしてるけど、0は実行するまでに2が何かを書き換える可能性があるから、2次第では0はまたフェッチからやり直しになる"
- 島鉄雄さんのツイート: "フェッチからやり直しになるストールは発生しないけど、プリフェッチがされてなくてL1キャッシュミスでストールするという事を言いたかったのか。 それ言ったら、C++はobj->child->data->func()みたいな長い間接参照しつつ関数呼び出しされまくるからvtableだけ特別遅いとも思えない。… https://t.co/crdPdwLPJt"
- iruka3さんのツイート: "それはそうなんですけど、 https://t.co/xY41qwoWfz ((TypeGetArea*)s->vftable[VF_GetArea])(s); を普通にマシン語で並べると、呼び出し先アドレスをレジスタに取ってきて、間接call発行なので、命令プリフェッチが効かない場合が多いのです。… https://t.co/DmeaHkGBs8"
- iruka3さんのツイート: "仮想関数を呼び出すクラスがほぼ固定されていたら、分岐予測キャッシュに溜まる可能性が高いですけど、多態性を多く持たせている(呼び出される可能性のあるクラスが沢山存在する)場合はそうでもないとかそんな感じ"
- 島鉄雄さんのツイート: "auto data = obj->child->data; data->func1(); data->func2(); の方が速そうだけど一々手間なんで obj->child->data->func1(); obj->child->data->func2(); と書くけど、これはコンパイラが最適化してくれてるはず。 それと同じで同じオブジェクトの連続した仮想関数呼び出しも最適化されてるはず。"
エスケープ解析
- エスケープ解析 - Wikipedia
- Golang エスケープ解析 - Qiita
- Javaのエスケープ解析についていろいろと実験してみる - Qiita
- Java HotSpot仮想マシン・パフォーマンス向上
- Linuxはじめました & エスケープ解析の検討 - miura1729の日記
- エスケープ解析による御利益: #include <fujita.h>
Self
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 動的型付け言語の最適化だとselfで用いたテクニックが大体標準かなって思います。動的も静的もLLVMのような話は過去一杯あったけど失敗しています。LLVMはありったけのリソースを投入できるので、静的だからではなくLLVMだから成功したのだと思います。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 これですね。勉強になる。 https://t.co/OufsOKRhTO 静的型だとどの言語でも似たような中間表現に変換しうるようなイメージがあるんですが、私の勘違いなんですかね。データの持ち方も基本的には共通のような。」 / Twitter
- A Self Bibliography — Self Papers 4.5.0 documentation
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 SSAが出来てからはそれに収束した感がありますね。その前はいろいろバライティに富んでいましたが。おそらく動的型付き言語もSSAに収束すると思います。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 SSAは様々な最適化に適した中間表現と思いますが、もっと素朴な奴でも動くもの(かついろんな静的言語からコンパイルできるやつ)は作れそうに思います。動くけどネイティブの処理系より遅いので意味ないよね、ていうのがLLVM登場以前の話だったのですよね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 おお、selfの論文がまとまっているページがあるんですね。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 動的型はオブジェクトの(最適な)内部表現が言語仕様によって異なる(例えばRubyとJS)ので、SSAの手前の段階で既にunifyするのが厳しいんじゃないか、という気がします。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 おそらく、色々な言語に対応しようとするとバカでっかくなり、その開発に耐えられなくなるってのが大きいと思います。LLVMってすごくたくさんの機能や命令があるわけですが、結局そういうのが必要になってくると思います。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 そうでもないと思ったのですが、考えてみると得意分野によって高速化するデータタイプが速くなるように内部表現を変えますね。この辺を抽象化するって言う手はありますけど(mrubyがそうやっているように)」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 A + B みたいな基本的な演算でもAやBの型によって全く違うことやるわけですから、どの言語でも共通に使える(かつ高速な)フレームワークを提供するってのはなかなか困難ですよね。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 その通りと思いますが、動的型だと「そのバカでかくなり具合」がより一層爆発的なものになる気が。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 確かにそうかもしれない。本当の所はどうなのか気になります」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 動的型、静的型関係なく対応すると称しているGraalVMとかありますよね。どうなってんだろう。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 GraalVMですか。すごいですね。もし、RubyKaigiで開発者の方がお見えになるならお話したい(どうやって?)ですけど、RubyKaigiがあるのだろうか・・・」 / Twitter
mem2reg
- LLVM 6.0 で作るフロントエンドの道しるべ - Qiita
- 7.3. LLVMにおけるメモリ – 日曜研究室
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています 「@esumii mem2regもLLVMオリジナル版とCoq版で生成されるコードの性能はほぼ同じ(LLVMオリジナル版は内部allocaも知ってるので僅かに有利)。LLVM -O3と-O1はあまり変わらないがmem2regはかなり速くなるので重要(だからCoqで実装&証明した)」 / Twitter
- きつねさんとおぼえるLLVM の訂正個所【2013年2月24日追記】 - 餅ちゃんの備忘録
- 最適化抑制属性(optnone) - Design x Verification
- clang - LLVM SSA形式を生成する方法 - ITツールウェブ
- Rui UeyamaさんはTwitterを使っています 「@uint256_t mem2reg、定数式畳み込み、レジスタ割り当てくらいがあれば、めちゃくちゃ素直でナイーブなフロントエンドでも普通によいコードが出せるのではという気がしてる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t 計算の途中結果は全部メモリ上の変数に書き出していって、変数は使い捨て。明らかな冗長さは定数式畳み込みで消えるからフロントエンドではまったく気にしない。みたいな方針でなんとかなるんじゃないかなと。(僕がいま作っているのも)」 / Twitter
- h_sakuraiさんはTwitterを使っています 「mem2regの後半の処理の本質はmutableな基本ブロックからimmutableな基本ブロックに変換するCPS変換なのだな。 https://t.co/WKSV0XCSLw」 / Twitter
- 120行で書いた CPS変換/Prolog出力 while言語コンパイラ - Qiita
レジスタ割付
SSA
- uint256_tさんはTwitterを使っています: 「#cilk なんか動かないなぁと思ってたら,関数呼び出しをまたいで使用されるvregの保存を実現するために呼び出し前にスタックに退避・後で新しいvreg(SSAなので)に代入してたけど,古いvregのuseを新しいので置き換えるときにbasic blockにループが存在する可能性のことを考えてなかった」 / Twitter
- uint256_tさんはTwitterを使っています: 「レジスタ同士を紐付ければいいのかしら」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t Basic block でループがあるとは?」 / Twitter
- uint256_tさんはTwitterを使っています: 「@zacky1972 これで伝われば嬉しい: https://t.co/i85rxk6LWN」 / Twitter
- problem.txt
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t φを用いないんですか?」 / Twitter
- uint256_tさんはTwitterを使っています: 「@zacky1972 どこでどのように使うと良いのでしょうか」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t まず Wikipedia の説明を読んでください。 https://t.co/WVqdkKgYLK」 / Twitter
- 静的単一代入 - Wikipedia
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t たぶん,こんな感じ? https://t.co/bT9aeZDCgo」 / Twitter
- solution.txt
- uint256_tさんはTwitterを使っています: 「@zacky1972 わざわざありがとうございます.phi自体はすでに理解できていたみたいです. 物理レジスタ割り当てのことで頭がいっぱいで,phiを使ってコードをまとめ直すことができるという考え方が浮かびませんでした.」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t SSAではphiは基本なので,活用してください。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t 「Basic block にループが存在する」という表現は矛盾している (なぜならば basic block はループを含まないというのが定義だから) ので,表現は正確に。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「@uint256_t この例では「basic blockを複数つなぎ合わせてループを構成する」が正しい表現ですね。」 / Twitter
- uint256_tさんはTwitterを使っています: 「basic block '間' にループがある」 / Twitter
- ssa-nyumon.pdf
- monochromeさんはTwitterを使っています 「@zacky1972 ああ、それはそうですね。ASTをバイトコードに落とす前の段階でSSAっぽいIRを挟んでおき、インタプリタ用にはバイトコードへコンパイル、JITする場合にはSSAに戻って機械語へコンパイルするイメージでした。」 / Twitter
- monochromeさんはTwitterを使っています 「@zacky1972 SSAだと評価の途中結果がID付きでずらっと(仮想レジスタとして)並ぶ形になるので、型(RubyなのでClass)の評価がやりやすいのかな?という想像です。 動的型付け言語の場合、型の推論とかプロファイリングが重要かつ一番の難関と考えてますので。」 / Twitter
- monochromeさんはTwitterを使っています 「@zacky1972 あとは、一時的に使用されて捨てられるオブジェクトと、生き残るものが明確になるという点もあるかなと。 というのも、アロケーションのコストとGCへの負荷を下げる意味でも、捨てる値が分かってると有り難いんですよね。」 / Twitter
- monochromeさんはTwitterを使っています 「@zacky1972 つまり、a-eが文字列のようなヒープアロケートされるオブジェクトだとして、 a = ((b+c)+d)+e みたいな処理があった場合、b+c、b+c+dという2つのオブジェクトが生成され、評価完了とともに不要になります。これらを後からGCで回収するのではなく、その場で開放したい、というモチベーションです。」 / Twitter
- Modern Compiler Implementation in C 19章後半(451ページから) - ppt download
- uint256_tさんはTwitterを使っています 「SSAだろうと値は変わるんだなぁ」 / Twitter
- 市川 真一さんはTwitterを使っています 「wasm のローカル変数のアドレスが取れないから線形メモリを使わないといけなかったりして不便なので、ローカル変数は線形メモリへのアクセスのためのベース・レジスタ的な使い方しかしてない」 / Twitter
- YutakaAokiさんはTwitterを使っています 「@tenpoku1000 そういえば、Wasmの母体になることが多いLLVMの場合、レジスタがそれと似ていて、SSA方式なので一度書き込むと二度と書き換えられず、Cのローカル変数はほぼ必ずレジスタではなくallocaされたメモリー領域に対応し、レジスタはその先頭アドレスとしての役割が多いです。」 / Twitter
- YutakaAokiさんはTwitterを使っています 「@tenpoku1000 何度も書き換える働きを持つローカル変数は必ずallocaされたメモリー領域に対応し、レジスタは、四則演算の途中経過や、メモリーからメモリーへload,storeするの間の仲介役を担うことが多いです。ただし、phi nodeという方法を使うとこの限りでは有りませんが。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@YutakaAoki3 私の場合、LLVM は使わずスクラッチ開発していますが、そんな感じですね。最適化は実装してないので、SSA や phi は無いのですが: tenpoku1000/PE_COFF: 独自 WASM64 を生成し、PE/COFF や PE32+(UEFI アプリ)に変換するバックエンド試作版 https://t.co/8cElIwUZt0」 / Twitter
- 静的単一代入形式に基づく最適化に関する研究
- 25_1_2.pdf
Wikipedia
- 和集合 - Wikipedia
- 数学記号の表 - Wikipedia
- レジスタ割り付け - Wikipedia
- データフロー解析 - Wikipedia
- Data-flow analysis - Wikipedia
- 制御フローグラフ - Wikipedia
- Control flow graph - Wikipedia
- 大域値番号付け - Wikipedia
- レジスタ・リネーミング - Wikipedia
- ソフトウェアパイプライン - Wikipedia
- Reservation Station - Wikipedia
- Tomasuloのアルゴリズム - Wikipedia
- レジスタファイル - Wikipedia
- 連想メモリ - Wikipedia
- Set
- 東北大学電気通信研究所 大堀・上野研究室 - レジスタ割り付け
- 電子情報通信学会知識ベース |トップページ
- 06gun_03hen_03.pdf
- 8-w.pdf
- www.cs.is.noda.tus.ac.jp/~mune/master/10/m2010.pdf
- www.is.titech.ac.jp/~sassa/lab/papers-written/08B24652-mori.pdf
- データフロー解析(DFA)とはなんですか? | 東陽テクニカ
- フロー解析とは | ソフトウェアの検証の種類 | テクマトリックス株式会社
- Compiler Construction Lecture 2/1
- コンパイラ講義をなんとなく監視 - Togetter
- レジスタ割り付けをしたい(1)データフローを作る - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
- レジスタ割り付けをしたい(2)生存情報を求める - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
- Liveness Analysis - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
- 累積レジスタ割付による仮想マシンの高速化 - 一人一党党
- LLVM Register Allocation (2nd Version)
- LLVM Project Blog: Greedy Register Allocation in LLVM 3.0
- dominance frontier - Google 検索
- iterated dominance frontier - Google 検索
- uint256_tさんはTwitterを使っています 「Dominance frontier, いまは愚直に求めてて遅っいから改善したい (llvmが使ってるアルゴリズムの論文読むのが早い」 / Twitter
- uint256_tさんはTwitterを使っています 「LLVMが使っているアルゴリズムの論文に書いてある手法をそのまま実装すると遅いよなあ, と思ってLLVMのコードを見てみたら, より良い手法が使われていた時の気持ち.」 / Twitter
- Yatsina-LLVM Greedy Register Allocator - Yatsina-LLVM Greedy Register Allocator.pdf
- uint256_tさんはTwitterを使っています 「dominator treeのrootから下へ降りて行って, ある時に注目しているnode dominates its predならloop?」 / Twitter
- uint256_tさんはTwitterを使っています 「reducibleなcfgでloop検出, まだ理解できていない」 / Twitter
- mem2regを解説してみる - Qiita
- 静的単一代入形式を用いた最適化(導入編)
- A linear time algorithm for placing φ-nodes | Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
- Rui UeyamaさんはTwitterを使っています 「@uint256_t これって常にSSA形式になってるようにやってるんだと思うんですが、SSAじゃなくなるように単純に書き換えてからSSAに戻すアルゴリズムを走らせるのと比べてどっちがいいんですかね?」 / Twitter
- uint256_tさんはTwitterを使っています 「@rui314 storeやload は元々SSAからはみ出しているような気がしますが, それ以外の部分も先にSSAじゃないように書き換えるということでしょうか」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t レジスタも複数回代入してもいいからとりあえず変換してしまって、その後でSSA形式に再度戻すというやり方もあると思うのですが(それがいいかどうかは別問題で)。」 / Twitter
- uint256_tさんはTwitterを使っています 「@rui314 再度SSAに戻すと言う操作それ自体がmem2regに相当するのではないかと思いました (見当違いだったらすみません)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t そうか、たしかに。」 / Twitter
- DrumatoさんはTwitterを使っています 「虎本だとIR生成とベーシックブロックの生成を別のフェーズでやっているような記載があるんだけど,確かにこのほうが実装しやすい気もするな.」 / Twitter
- LLVM Spiller 关键代码剖析_Enorsee的博客-CSDN博客_inlinespiller
- Partitioned Boolean Quadratic Programming (PBQP)
- uint256_tさんはTwitterを使っています 「SATソルバで最適なレジスタ割付をできたとしても, 現実は厳しいのであんまり速くならない」 / Twitter
- lstm reg alloc - 1912.03700.pdf
CFG
- gccを使って、制御フローグラフを作成 - Qiita
- _pdf
- 制御フローグラフ - Wikipedia
- 無限ループ - Wikipedia
- 201303tanabe.pdf
PDG
- 26_3_109.pdf
グラフ書き換え系
- グラフ書換え系 - Google 検索
- 33_1_126.pdf
- uint256_tさんはTwitterを使っています 「あまり関連性はなさそうな気もしますが,詳しくないのでよくわかりません.色々なCFGがあったときにそれらが同型かを判別できると便利そうですが,最適化に使えるのかなあ. #マシュマロを投げ合おう https://t.co/3qYCxCoxdJ」 / Twitter
- jicchoさんはTwitterを使っています 「@uint256_t 僕の先輩でCFGの同型性判定に基づいてコードクローンを見つけ出し、他のコード最適化に利用するってことをやってる人がいました。 詳しいところは忘れてしまいましたが。」 / Twitter
- uint256_tさんはTwitterを使っています 「@Jiccho96 なるほど,関連性は一応ありそうですね.ありがとうございます」 / Twitter
blog
Jicchoの箱
- 自作Cコンパイラができつつある報告的な。 - Jicchoの箱
- コンパイラのコード最適化や解析手法の論文のサーベイ - Jicchoの箱
- Lazy Code Motion - Jicchoの箱
- Reaching Definition - Jicchoの箱
- Common Sub-expression Elimination(共通部分式削除,CSE) - Jicchoの箱
- Dead Code Elimination(無用コード除去, DCE) - Jicchoの箱
- CFG,トポロジカルソート,Bit Vector,ワークリストアルゴリズム - Jicchoの箱
Fixstars Tech Blog
- RustがC++に速度で勝った話 - Fixstars Tech Blog /proc/cpuinfo
- ソフトウェアパイプラインの手書きをDRYで行う - Fixstars Tech Blog /proc/cpuinfo
- ソフトウェアパイプラインを考えてみる - Fixstars Tech Blog /proc/cpuinfo
- x86/x64最適化勉強会7 で発表しました - Fixstars Tech Blog /proc/cpuinfo
本の虫
- 本の虫: コンパイラーを負かす
- 本の虫: なんでGCCはa*a*a*a*a*a を (a*a*a)*(a*a*a) に最適化できないの?っと
- 本の虫: ループカウンタを64bitにしたり、 バッファのサイズを定数にしたらパフォーマンス激落ちなんだけど何で?
- 本の虫: とても賢いコンパイラーの逆襲
in neuro
- 基本ベクトルの場合の最適化(3次元幾何) - in neuro
- コンパイラの最適化と専用命令について - in neuro
- コンパイル時ルックアップテーブル生成について - in neuro
- reluを分岐無しで実装する - in neuro
- DSAS開発者の部屋:「推測するな計測せよ」は「性能上がらなかったら捨てろ」ではない
- x86/x64最適化勉強会7レポート | Cybozu Inside Out | サイボウズエンジニアのブログ
- Intel CPU の popcnt 命令で性能激落ちくんの話 - Lark_mpの日記
- SIMD vectorization for the Lennard-Jones potential with AVX2 and AVX-512 instructions - ScienceDirect
- Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか? – ゆびてく
- Cコンパイラの末尾呼び出しを活用した 効率的命令ディスパッチ手法の研究開発
- 高性能プロセッサの分岐予測のサーベイ論文を読んで分岐予測について学ぶ (4. 予測が難しい分岐のための分岐予測器) - FPGA開発日記
- 日記 (2019 年 10 月下旬)
- Swiftにおける所有権付きSSA形式 | メルカリエンジニアリング
- A JavaScript optimizing compiler | Carlo Piovesan | leaningtech
- RustのLLVM IRでプログラム分析ことはじめ - Toshihiro YAMAGUCHI’s Diary
- 命令単体の性能を計測する
- Dependency Analysis入門 | κeenのHappy Hacκing Blog
- adv intro
- Aug. 2017
- Google Summer of Code 2021 を終えました :: Hello
- a21_opt - essen-wiki
- uint256_tさんはTwitterを使っています 「unroll して sccp すると scev とか考えなくてもいいってことか。おもしろい」 / Twitter
スライド
- SIMD化とは何か / Basics of SIMD - Speaker Deck
- 人間でもわかるLLVMバックエンド入門 // Speaker Deck
- Elixirにおける データ並列スケルトンに基づく SIMD並列化の性能評価 - Speaker Deck
- Microsoft Word - coins-rensai-ssa-transbacktrans-57.doc
- 融合変換による最適化の理論的基盤と正当性 (2006-06-27)
- LLVM Register Allocation
PDF
- COINS 解説
- intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap2-1.pdf
- 248966-024JA.pdf
- SSA-based Compiler Design
- Branch Divergence Reduction Based on Code Motion
- [PDF] A Graph-Free Approach to Data-Flow Analysis | Semantic Scholar
GitHub
- x86opti/readme.md at master · herumi/x86opti
- kaityo256/mdacp: MDACP - Molecular Dynamics code for Avogadro Challenge Project
- Getting Started — CompilerGym 0.1.7 documentation
- Play with LLVM-IR, without LLVM :: Hello
- dgryski/go-perfbook: Thoughts on Go performance optimization
Zenn
- 最適化コンパイラへのいざない (1) 導入 | Zenn
Qiita
- MDループのソフトウェアパイプライニング:ステップ・バイ・ステップ - Qiita
- インテルコンパイラのアセンブル時最適化 - Qiita
- 関数ポインタと関数オブジェクトのインライン展開 - Qiita
- 定数配列がからんだ定数畳み込み最適化 - Qiita
- ZEAM開発ログ2018年総集編その2: Elixir 研究構想についてふりかえる(後編) - Qiita
- WASM3の末尾呼び出しVMがかしこい - Qiita
- C++コンパイラはあなたよりも良いコードを書く - Qiita
- 最適化コンパイラを作りたい人にとって必要な解析器の数学的基礎を与えてくれそうな An Introduction to the Theory of Optimizing Compilers の斜め読みのしかた - Qiita
- 最適化コンパイラへのいざない (1) - Qiita
- 最適化コンパイラへのいざない (2) マルチパスコンパイラ - Qiita
- 最適化コンパイラへのいざない (3) 定数に関する最適化 - Qiita
- 最適化コンパイラへのいざない (4) プログラムの構造 - Qiita
- オーバーライドされた仮想関数にまつわる最適化 - Qiita
- 末尾呼び出し最適化についてあれこれ - Qiita
- mrubyの可変引数最適化 - Qiita
- Goのコンパイル時の最適化結果を確認する(インライン化の条件についても記載) - Qiita
- Chapter 11: Tips and Tricks | Go Bootcamp | Softcover.io
Wikipedia
- Interprocedural optimization - Wikipedia
- Category:コンパイラ最適化 - Wikipedia
- Category:ソフトウェア最適化 - Wikipedia
Twitter
その他
histric
histric-1
- とみながたけひろさんのツイート: "いまのコンパイラって、コンパイル後の実行結果をフィードバックする仕組みが弱いんですよね。プロファイルガイディッドとかゆーてもループ回数とか関数呼び出し回数とかぐらいで、命令スケジュールとかデータ構造を性能カウンターみながら変えるとかできないので、、、… https://t.co/xjQglfDetN"
- まさみさんは語りたいさんのツイート: "おっ、やはりそうなんですね。まあ、プロセッサモデルで異なる最適化手法までバイナリに適用し始めたらそれはそれで・・・。さらに、データ構造は流石に勝手に変えられないというか(笑)… "
- とみながたけひろさんのツイート: "まあ、そこが「ワンパスコンパイラ」たる人間の出番ですよね😄 なお最近のgccはハードウェアプリフェッチャーの動作を予想して、構造体からデータを読み書きするときに、順序をいじるという仕組みがあるみたい(たしかlinaroの人がいれようとしてた記憶… https://t.co/fFt0aqjM9S"
- まさみさんは語りたいさんのツイート: "x86の命令毎のレイテンシを測る発表、OoOやストアバッファの挙動を予め考慮しておきながら、投機的実行が行われない依存関係のあるループをいかに作って行くかという話で面白い。 #x86opti"
- まさみさんは語りたいさんのツイート: "xbyakを使うとコード中で任意の機械語を詰めることが出来るわけだ。これはいいな。#x86opti"
- まさみさんは語りたいさんのツイート: "なんでperfコマンドを使わないのかが不思議なんだけど・・・。"
- とみながたけひろさんのツイート: "いま某CPU向けにまさに同じことをやっているのでとても参考になるのだった(x86じゃないのでXybakがなくて辛い)。私は頑張り切らない感じなので割り算命令の速度は割る数を1<<n(n=0-31とか)で変化させて「あー1クロックに4ビット計算できるのね」ぐらいを確かめて終わりにした #x86opti"
- とみながたけひろさんのツイート: "あと、しょぼい環境だとパフォーマンスカウンタをsyscallで読むのに時間がかかる(そしてジッターが大きい)ので辛いので、専用カーネルモジュールを作ってユーザーランドから直接読めるようにするとかやるのであった #x86opti"
- とみながたけひろさんのツイート: "そしてXybakじゃなくXbyakだった(汗)"
- とみながたけひろさんのツイート: "なおしょぼい環境だと掛け算も32bit*32bitなのかそうでないのか、とかで性能が変わるので辛い(ここで68000を思い出すおっさんであった)"
- satさんのツイート: "ミリ秒、マイクロ単位の最適化の話は書いてるとめちゃくちゃ楽しいのですが、いかんせんその点の最適化が必要な人は非常に少ないし、その人たちは本見なくても自分で勝手に調べそうというジレンマがありまして"
- まさみさんは語りたいさんのツイート: "マイクロ秒を切るテクニックばっかり追い求めてた感じはするなあ。 スピンロックは遅いからCPUローカルな変数にしてロックレス化とか、割り込み禁止も別の処理の反応速度を落とすからできるだけ回避とか・・・。"
- まさみさんは語りたいさんのツイート: "ソフトウェアの最適化の要は、そういう手練手管を駆使することより、どこがhotpathかを見極めて、それ以外の所は可能な限り富豪的プログラミングを適用して楽することなんだよね。"
- satさんのツイート: "それですよ。たのしいけど、それはホットスポットが見つけたあとの話であって、ホットスポットを見つける技術が最適化のために一番必要な技術かもしれない… "
- まさみさんは語りたいさんのツイート: "今はperfがあるのでマイクロ秒単位の遅い所は余裕で見つけられますよ。あとstraceとltraceを駆使するとシステムコールやライブラリコールの遅延も測れるから、ミリ秒単位の遅延場所も特定できますね。… "
- satさんのツイート: "perf最強です。もう頭が上がらない… "
- まさみさんは語りたいさんのツイート: "よくある最適化初心者の間違いは、なんかもうmain関数から最適化を始めてしまったり、コーディングスタイルとしてfutexじゃなく自作のspinlockを使ったり、というチグハグなところにあるんだよね。"
- まさみさんは語りたいさんのツイート: "スピンロックはスピンロック自体が遅いわけではなく(ナノ秒で見ると遅いけど)、スピンロックの粒度の調整が難しいということを付け加えさせていただく。大きくロックすると衝突しやすくなり、小さくロックするとメモリバスが乱されて遅くなる。per-cpuさいつよ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "このあたりに詳しい人が見たら、一発で見切れてしまう話なのでは?とも思いつつ(笑) (IntelPCMはWin系の場合、モジュールをコンパイルしてドライバを入れて、ようやくパフォーマンスモニタから細かなCPU関連の統計情報を参照できるようになる)"
- satさんのツイート: "x軸で示されたサイズのメモリにストライドをキャッシュラインサイズにして合計40億回メモリアクセスした場合の平均アクセスレイテンシ。x軸もy軸もlog scale。だいたいL1d(2^5 KB), L2(2^8 KB), L3(2^12 KB)で性能が一段階劣化。想定通り #livadevbox… https://t.co/cOBHoEy2PL"
- satさんのツイート: "これだと知ってる人には「そうですね」なので、次は今使ってるマイクロベンチプログラムを改編して各キャッシュがどのコアで共有されてるかを調べる。これは公式HPに載ってない情報 #livadevbox"
- まさみさんは語りたいさんのツイート: "トレーサのオーバヘッドの話は、どうやってもある程度出るのをどう削るか、みたいな話にしかならないし、あまりユーザビリティの観点からは気にされないのが現状なんだよなあ。"
- まさみさんは語りたいさんのツイート: "なのでLTTngのオーバヘッドが10%ほど低いです!っていう主張をされても、そうですか、という感想しかないのが現状・・・。"
histric-2
histric-3
- C++でOS自作 技術書典5 お05さんのツイート: "ストレージの各種メトリックを基にアプリが遅延した原因を推測するの難しいなあ。"
- まさみさんは語りたいさんのツイート: "「静的なトレースイベントはカーネルAPIだからバージョン依存しないとは言っていない(キリッ」っていうのが公式見解だったと思う。ただしまあ、トレースイベント自体はとても良く考えられている場合があるのでそういうのは結構硬い。"
- まさみさんは語りたいさんのツイート: "イベント発生回数やレイテンシの測定とか、定型的な処理だったら今でもftraceで出来るようになっているんだよね。結局典型的でよく使われる機能は固定化されるっていう話。"
- まさみさんは語りたいさんのツイート: "kprobeを使ったとしてもレジスタとかじゃなく元の引数でアクセスできるようにすべき。systemtapは既にそうしているし、perf probeを使えば出来るはずなんだけど・・・。"
- まさみさんは語りたいさんのツイート: "perf_event_open(2)は本当にちょっとアレだよなあ・・・。"
- まさみさんは語りたいさんのツイート: "bccの面白い所、多言語バインディングしてるけどカーネル内で動かす部分はCっぽい何かのままなんだよなあ。"
- まさみさんは語りたいさんのツイート: "bccでmodified Cが必要な理由は、多分ループが使えないからじゃないかな。"
- まさみさんは語りたいさんのツイート: "bcc使う、使わないは、使っているカーネルと環境とターゲットに依存するんすよね。"
- まさみさんは語りたいさんのツイート: "bpftraceとply、開発続いてたんだ。"
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t PLDI, CGO あたりを読むのが良さそうですが,どうでしょうか?」 / Twitter
- FadisさんはTwitterを使っています 「LLVMに新しい最適化パスMachine Function Splitterが提案されている。この最適化は関数の中の実行される可能性が高そうな部分と低そうな部分を分離し別々のsectionに吐く。実行される可能性が高いマシン語の列が密に配置され命令キャッシュのヒット率が上がり、性能が向上する https://t.co/soUjc9eLmA」 / Twitter
- Google Engineers Propose "Machine Function Splitter" For Faster Performance - Phoronix
- Fadisさんのツイート: "gccに新しい最適化フラグ-O1gを追加しようという提案がなされている。-O1gでは-O1で行われる最適化のうち、デバッガで覗いた時に悲しみが溢れる物を除外した最適化を行う。最適化するとデバッグが捗らないけど、最適化しないと遅すぎてデバッグが捗らない時に役に立ちそう https://t.co/woaqbvpahc"
- New "-O1g" Optimization Level Proposed For The GCC Compiler - Phoronix
- chikoskiさんはTwitterを使っています 「仮定をいくつか置くことでも最適化できる。例えば、今見てるアドレスよりも引くアドレスにはアクセスしないという仮定ができれば、アドレスの足し算を消して、オフセットを使ったメモリアクセスに書き換えられる。これも効く」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「共用体メンバ」じゃなくて、「共用体メンバのうち、アクセスが無いメンバ」だな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "でも、gcc側の問題のような気も。似た落とし穴に嵌る人も多そうだなぁ…"
- ゆたかさんさんのツイート: "Infinibandドライバでstruct sockaddrのアクセス方法が変更となりましたが、元のコードだとなぜダメなのかよく分かりませんでした。共用体は沼が深いです。 × &sgid._sockaddr ○ (struct sockaddr *)&sgid https://t.co/ZYTCUvG3iI #カーネルパッチ勉強会… https://t.co/INOsrww15L"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 ローカル&static関数でしかアクセスしない共用体メンバは、存在しないものとして最適化が走るんだろうなぁ。… "
- とみながたけひろさんのツイート: "https://t.co/gKiaPJMdZ3 コンパイル時間との絡みでどこまでやるかよく議題になる定数・値域伝搬最適化ですな。 f(a,b){int r=a;while (++a<b) r*=a; return r;}はa<0<bとかだと0にできるけど、やります?みたいな"
- Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
- Kazuho Okuさんのツイート: "「コンパイラは、異なる型の仮引数についてaliasingされているとは考えなくてよい」っての、割と一般的な strict aliasing の説明だったと思うけど、それが問題になってるの..."
- Kazuho Okuさんのツイート: "Cに落とすことで実装さぼりたいという意図で言うと、aliasingで最適化無効になるの避けたいしスタックベースの中間表現さけたいのはよくわかる"
histric-4
- κeenさんのツイート: "「SSAをハッシュして持っとくと共通部分式が見付けやすい」へー。 #compiler_study"
- κeenさんのツイート: "「SSAだとGlobal Variable Numberingがやりやすい」 #compiler_study"
- κeenさんのツイート: "link time optimizationとwhole program optimization、LTOの方がコンパイル時間が短いけど諸々の理由で中間ファイルにメタデータを埋め込めなかったらWPOになっちゃうよね。"
- もっちぃさんのツイート: "形式検証では不変量の自動抽出が鍵になり、Invariant is holy glory of formal verification なんて言われます。で、この不変量、当然最適化にも利用可能です。その意味で、最適化と形式検証は表裏一体であり、ともに協調して発展していく事が大事です https://t.co/BCYQa4kkwM"
- Kazuho Okuさんのツイート: "スタックをグローバル配列じゃなくローカル変数な配列でもつようにしたら速くなるはず... っていうけど、そもそも遅いのはエリアシングじゃないのかな。だとすると、ローカル変数な配列にしても関数呼出が発生しうるパスがあるとダメな気がするけど"
- もっちぃさんのツイート: "値番号に基づく部分冗長性除去 https://t.co/7PceHkvgGO https://t.co/uoYsZdcu0q #compiler_study"
- herumiさんのツイート: "岩永さんによる最近のC#の概要。stackalloc, Span構造体, ref周りの拡張など、C++が無法地帯からなんとか安全な方向を目指すのと逆向きでC#が安全なところからぎりぎりを攻める感じが面白い。if (uint)x < y)みたいな最適化を2018年に見るとは思わなかった。https://t.co/QBcf7GtiNu #decode18 #ad19"
- Jacob Torreyさんのツイート: "Still one of the strangest things I've learned from the x86 manuals. ADDING dead/redundant code will improve prefetching and overall performance!… https://t.co/ne5YEHo3oc"
- Nerry@さんのツイート: "いまどきのCPUはほぼOoO動作していて、そのとき空いてるユニットにぶち込んで依存性のない命令はどんどん勝手に実行されていくのに、命令生成の段階で命令の順序に気を配る必要性あるんだろうか?"
- Nerry@さんのツイート: "いくらコンパイラが頑張って命令配置してもCPUが無理って思った命令は後回しにされるし逆に行けるって思った命令はどんどん実行されちゃうから並べ方に気をつけても???"
- Nerry@さんのツイート: "いくらコンパイラが頑張って命令並べてもCPUのOoOの方が優秀で重要ってのがVLIWの知見なわけで…"
- hsjoihsさんのツイート: "「言語仕様を盾に、コンパイラが非直感的な最適化をどんどんしてくるようになってきた頃から」なのでは、というのはいろんな話を聞いていて思う… "
- デダルス・ユメノさんのツイート: "あるスーパープログラマが「最近の若い人は言語仕様に拘るよね、昔はコンパイラが仕様に従ってないことがざらにあって、現物でちゃんと動くコードを書く(たとえ仕様違反でも)ことに価値があった。」と言っていたのを思い出した。いつ頃から言語仕様が神格化されたのか。"
- hsjoihsさんのツイート: "時系列的にはこっちの要素の方が先かも https://t.co/lQ8HkmTHp7"
- yoh2さんのツイート: "「現物でちゃんと動くコード (言語仕様違反)」がコンパイラのバージョン違いで動かなくなる地獄に遭遇したからだよ。 かと言って言語仕様通りでもコンパイラのバグで動かないことも稀にあるので、言語仕様+コンパイラの独自拡張通りかつ現物で動くものが大事。 https://t.co/41hEhHEt2p"
- 電子計算機の沼さんはTwitterを使っています 「ちなみに自動並列化・最適化されてほしいねえという話をさっきからしていますが... 最適化や並列化をすると演算順序の変更により誤差の入り方も変わって答えが変わって...みたいな沼の話もあって楽しいんですが皆さんどうですか」 / Twitter
- 伊丹十三世さんはTwitterを使っています 「@Hishinuma_t CT再構成はまさにそこですね…並列処理をきちんと考えないと誤差を含んでボケた画像になるので…故に基本GPUは使ってはいけない…」 / Twitter
- uint256_tさんはTwitterを使っています 「https://t.co/dBL7fQ4ghB ここらへん眺めながら,面白そうなのを実装していきたいね」 / Twitter
- LLVM’s Analysis and Transform Passes — LLVM 12 documentation
- uint256_tさんはTwitterを使っています 「- 命令選択マクロは便利だけど、似たような記述が増えていって不便 (正規表現でマッチするものを自動生成してもいいけど、proc-macroが複雑になりすぎる) - DAGをunsafeなノードのグラフとして表現するのはどうなのか - IRのBasic Blockがliveness情報を持っているのはどうなの (Functionとかに渡そう)」 / Twitter
- uint256_tさんはTwitterを使っています 「拡張基本ブロックは偉大だなぁ...」 / Twitter
- uint256_tさんはTwitterを使っています 「LLVMでいうSelectionDAGみたいなのをどうやって表現すれば一番適切なのか」 / Twitter
- uint256_tさんはTwitterを使っています 「動的な命令選択パターンマッチャを作る。costは多分アーキテクチャごとに命令のlatencyやらを考えながら決めるんだろうけど、今は面倒だから cost=1/どれだけ多くのノードをカバーできたか でいいか。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「RT 元の表や元のブログ記事はちょっと勘違いがある気がして(ROB とスケジューラの区別がたぶんついてないかも),でも文字では説明がしんどいので絵を描いてみた・・・ らえらいごちゃごちゃになった. インテルや IBM がいろいろ呼び方変えててめんどくさいのは,そうだなぁと思う. https://t.co/W28eoKuOnb」 / Twitter
- R. ShioyaさんはTwitterを使っています 「たとえばこの Zen2 の AMD がだしてるブロック図は Scheduler が分散になっているのでそこが少し違うけど,おおむね自分の描いた図と一致しているとおもう. ちなみにサイズは Scheduler が合計92命令,ROB が224命令で,最近はだいたいこんなもんかも. https://t.co/uWnxjWeSV7」 / Twitter
- 拡大画像 photo12l | Ryzen Deep Dive! 「Zen2」の内部構造を分析する - 第3世代Ryzen+NAVI徹底攻略 (1) | マイナビニュース
- Shinji KonoさんはTwitterを使っています 「Cは実は関数呼び出しかなり重くて、関数展開しまくってようやっとなんとかなってる。なので、native compiler な言語なら勝てる余地はいろいろある。」 / Twitter
- FadisさんはTwitterを使っています 「今日殆どのC++コンパイラは末尾再帰最適化を行うが、C++の規格は末尾再帰最適化を行う事を特に要求していない為、末尾再帰最適化がかからなければスタックが溢れて死ぬようなコードはコンパイラとコンパイルオプションが指定されない限り「互換性に問題のあるコード」ということになる」 / Twitter
- そすうぽよ(早寝早起き)さんはTwitterを使っています 「最適化するとデバッグできなくてしんどいが、最適化しないと遅くてつらい、という悩みを軽減するために、GCCにはデバッグをあまり妨げないような最適化のみ行う、-Ogオプションがあって便利です」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「なおローレンツ方程式というのは初期値鋭敏性という性質を示す微分方程式で、微小な差が時間発展に伴って急速に成長するので、どっかで誤差の出方が変わる最適化とかを暗黙的に行ってしまっていないかと言う確認とかによさそうな気がするやつです(もっといいのたくさんあるはずだけど書き慣れてるので」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「にもかかわらず数学関数を一切呼ぶ必要ないからそのへんの実装依存の精度差を食らわんって点も好きで、実際C/C++でも誤差桁まで同じ結果出たので、IEEE754準拠で同じ丸めモードで同じFPU/CPU使ってれば少なくとも手元環境ではそれくらい合ってくれるっぽい?」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu @n_soda 次にコンパイラ技術が進んだら VLIW でどうにかなるのかというと,個人的には無理だと思います.これは VLIW というかコンパイラでは分岐の方向やキャッシュのヒットミス,メモリの依存関係などが動的に頻繁に変わるものには基本的に対応できないからです.」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu @n_soda あとは,静的にコンパイラでどうにかする技術は,プロセッサがアップデートされて構成が変わった際に追随できないと言うことがあります.新製品で動かすとキャッシュのレイテンシが伸びて再コンパイルしない限りは毎サイクルストールする,なんてことがありえると思います.」 / Twitter
- Miura HidekiさんはTwitterを使っています 「なるほど、うなづくしかないが、「コンパイラでは分岐の方向やキャッシュのヒットミス,メモリの依存関係などが動的に頻繁に変わるものには基本的に対応できないからです.」は果たして本当にそうなんだろうか?って思った」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ただ、その際にはつねに裏でプロファイラが走っていて必要に応じてOSRするって感じになるだろうけど、コア余っているからそれもいいよね?という」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Clang/LLVMは、アホなO(n)関数 (ループを使って偶数かどうか判定する) をビット演算を使った O(1)関数に最適化できてしまう(!)。アホな再帰関数も同様。これは - ループがある1つの変数のみを計算する目的であり - ループカウンタが前もって計算可能 のときに起こる。すごい https://t.co/TcZhvw6dXW」 / Twitter
- Exploring Clang/LLVM optimization on programming horror
- daem0nc0reさんはTwitterを使っています 「あからさまに非効率な関数を書いてビルドする場合に、LLVMがどうやって最適化してくれるのかというのを検証したという記事。 https://t.co/Jiy6iYBUxs」 / Twitter
@Jiccho96
- jicchoさんはTwitterを使っています 「以前にこんな感じのことできたらなぁと考えてたやつがCGO 2020に出てた https://t.co/oCLK3f5Z6u」 / Twitter
- Speculative reconvergence for improved SIMT efficiency | Proceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 おお,読んでみます! この研究の提案手法と, @Jiccho96 さんの以前紹介してくださった提案手法との違いは何ですか?」 / Twitter
- jicchoさんはTwitterを使っています 「@zacky1972 ほとんど別物ですね。 分岐発散を低減したいというところだけ共通しています。 僕が以前ご紹介した手法は分岐発散の性質を利用して式を投機的に巻き上げるのに対し、この研究では直後支配節より早い点で投機的にreconvergenceして分岐発散自体を抑える手法になっています。」 / Twitter
- jicchoさんはTwitterを使っています 「@zacky1972 こんなことできたらなって妄想してましたが、NVIDIAはさすがですね。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 とてもよく理解できました。感謝します。」 / Twitter
@telmin_orca
- Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「「この位置にprintfが無いとなぜか動かないんだ。」 https://t.co/Crr7nvXnJg 注釈の解説が本編だった。 恥ずかしながらTSTの中にもこれと大差ない(副作用に期待した)コードがある。「ここで一回イベントループを終わらせてFirefox側の処理完了後に回さないと動かない」とか。」 / Twitter
- 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
- 富岳てるみさんはTwitterを使っています 「これと直接同じ話ではないけど、コンパイラが賢いせいでスタックを大量に消費するから最適化を無理やり切るために変なブロックを打ち込むとか、レジスタを消費しすぎて割り付けの自由度が著しく低下してるから関数に切り出すとか、世の中には色々辛い話がある(?)」 / Twitter
- 富岳てるみさんはTwitterを使っています 「最内ループでスピルしまくると涙ちょちょぎれちゃう」 / Twitter
命令選択
- kateinoigakukunさんはTwitterを使っています 「中間言語からネイティブ命令を選択する際には複数の中間言語命令が一つのネイティブ命令に畳み込めるパターンがあるのでBasicBlockの下から選択していきたい」 / Twitter
- uint256_tさんはTwitterを使っています 「下から舐めてって、DAG作りがち」 / Twitter
- uint256_tさんはTwitterを使っています 「craneliftもそう」 / Twitter
volatile
- ryoさんはTwitterを使っています 「MCOUNT_ENTERで定義してるasm()にvolatileつけ忘れてて、https://t.co/3AbZtShgM5 の MCOUNT_ENTER と __cpu_simple_lock() の順序が入れ替わってたせいだった。以前も似たようなことがあったな。https://t.co/q6GV1ljMsT まるで学習していない…」 / Twitter
- Cross Reference: /src/common/lib/libc/gmon/mcount.c
- ryoさんはTwitterを使っています 「asm()でやってるシステムレジスタの読み込みにvolatileが付いてなくて読み込み結果が使いまわされてた。よく今まで動いてたなw」 / Twitter
強化学習
- κeenさんはTwitterを使っています 「面白い。機械学習エンジニアが強化学習でコンパイラの最適化問題を解くための環境を用意している。 普通、コンパイラの最適化はどのパスをどの順番で適用するかは手作業で決める facebookresearch/CompilerGym: A reinforcement learning toolkit for compiler optimizations https://t.co/HlelTYg0Tv」 / Twitter
- facebookresearch/CompilerGym: A reinforcement learning toolkit for compiler optimizations
- κeenさんはTwitterを使っています 「探索空間は思ったより広くて、LLVMでパスが数百くらいあったはず。それにABABみたいに同じパスが何度も出ることもあるし、パスにパラメータがあったりもする。」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「@blackenedgold ChrisCumminsさんはこの方ですね "Deep learning for compilers", Chris Cummins, PhD Thesis, 2020 https://t.co/GyDORHUMeM Chris Cummins https://t.co/aOiNu6qFAQ https://t.co/ZQOsWl85Ot Facebook AI Research, Research Software Engineer: 2020 - present」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「@blackenedgold ChrisCumminsさんはこの方ですね "Deep learning for compilers", Chris Cummins, PhD Thesis, 2020 https://t.co/GyDORHUMeM Chris Cummins https://t.co/aOiNu6qFAQ https://t.co/ZQOsWl85Ot Facebook AI Research, Research Software Engineer: 2020 - present」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「=> "Deep learning for compilers", Chris Cummins, PhD Thesis, 2020 https://t.co/ptgCu42vFJ https://t.co/I2t8qRS6zP https://t.co/sh4w7ZPJZW "Machine Learning in Compilers: Past, Present and Future", FDL 2020 PDF https://t.co/DlQzZB4aeJ PACT 2017, Best Paper https://t.co/yLUrgHg8jl https://t.co/aK82FqQeQR」 / Twitter
- ChrisCummins (Chris Cummins)
- Resume | Chris Cummins
- FadisさんはTwitterを使っています 「FacebookがOpenAI Gym互換の新しいenv、CompilerGymを作った話。コンパイラには膨大な最適化オプションがあり、どれを有効にすれば効率よく高品質なバイナリが得られるか予想するのは囲碁並に難しい …ので適切に選ぶAIを強化学習で作るために、コンパイルをenvにしたらしい https://t.co/ZKjc57tM1Y」 / Twitter
- Facebook Is Aiming To Make Compilers Faster Using Machine Learning With CompilerGym - Phoronix
- FadisさんはTwitterを使っています 「コンパイルオプションがアクションで、コンパイルにかかった時間とコンパイル結果に含まれる命令数をもとに報酬が計算される。短いコードが常に良いとも限らないので、ビルド結果の詳細を覗き見もできるようになっている」 / Twitter
- FadisさんはTwitterを使っています 「ビルド職人も機械学習でやる時代なのか…」 / Twitter
- FadisさんはTwitterを使っています 「これ観測できる状態にソースコードが含まれているから、エージェントは「このソースならこの最適化が効くんじゃないかな」を学習することになって、アクションの順番で結果に違いは出ないから、学習が上手くいくと初手で有効なオプションを全部つけるようになって、通常のビルドに組み込めるって話か」 / Twitter
- CompilerGymを試してみた
VM
- Kazuho OkuさんはTwitterを使っています 「面白い。入力が高級言語で書かれたプログラムなら、whileとifを使うJavaScriptを生成できると思うけど、switch-caseに展開するのと速度差が出るのか(出ないのか)気になる / https://t.co/KjHhM2GczH」 / Twitter
- JavaScript における VM の高速化手法
- Kazuho OkuさんはTwitterを使っています 「実際にはその前に stack や local variable に配列使うのやめろって話になるか」 / Twitter
LICM
- uint256_tさんはTwitterを使っています 「#sericum LICMしてもstoreとかloadが移動してくれないから、そんなに速くならない。早くエイリアス解析を実装しないとどうしようもないね。」 / Twitter
- jicchoさんはTwitterを使っています 「@uint256_t エイリアス解析をしなくても、load命令で読み込む先のメモリ番地にあるデータを変更するような命令があったらkillするというような保守的なデータフロー解析をすれば、LICMできますよ。」 / Twitter
- uint256_tさんはTwitterを使っています 「@Jiccho96 確かにそうですね。 (最終的にエイリアス解析をパスのような形で実装しないと、後々面倒だよなぁと考えていました)」 / Twitter
- jicchoさんはTwitterを使っています 「@uint256_t まぁエイリアスを全部解析するのは中々難しいですね😔」 / Twitter
PGO
- κeenさんはTwitterを使っています 「面白い。Rustコンパイラ自身をPGOで高速化する試み。rustcはRust部分とC++部分(LLVM)がありちょっと複雑だができなくはないと。十数%高速化するらしい。 Exploring PGO for the Rust compiler | Inside Rust Blog https://t.co/JXDhAkaICU」 / Twitter
- Exploring PGO for the Rust compiler | Inside Rust Blog
- κeenさんはTwitterを使っています 「PGO(Profiler Guided Optimization)はコンパイルしたコードを一度走らせてみて遅い部分などを特定してそこを重点的に最適化するよう再度コンパイルする仕組み。その複雑な仕組みから公式配布するrustcのコンパイルに使うのは簡単ではなさそうと.」 / Twitter
- κeenさんはTwitterを使っています 「1つ注意しておくと、これはrustc自身をPGOで最適化する話。普通のRustのコードのPGOは既にサポートされてるよ。 Profile-guided Optimization - The rustc book https://t.co/h0mUbn6pSC」 / Twitter
- Profile-guided Optimization - The rustc book
- ガイド付き最適化のプロファイル | Microsoft Docs
- プロファイルに基づく最適化の概要
PGO(Linux)
- retrageさんはTwitterを使っています 「Linux kernelでPGOなんてデータどうするのかと思っていたらsysfs経由で見られるようにするらしい。」 / Twitter
- PhoronixさんはTwitterを使っています 「Profile Guided Optimizations (#PGO) Likely Coming To #Linux 5.14 For #LLVM #Clang https://t.co/4gHRuHPfye」 / Twitter
- Profile Guided Optimizations (PGO) Likely Coming To Linux 5.14 For Clang - Phoronix
- retrageさんはTwitterを使っています 「ぱっと見た感じリンク時にプロファイルデータ用の領域をシンボルと共に確保しておいて実行時にそこにためたデータをdebugfsでアクセスしたときにシリアライズしてユーザ空間に見せる、みたいなことをしているっぽい https://t.co/SqtG1Gqj0b」 / Twitter
- kernel/git/kees/linux.git - Various feature branches
basic block parameter
- uint256_tさんはTwitterを使っています 「basic block parameters を知りました.Phiより良いかもしれませんね.」 / Twitter
- uint256_tさんはTwitterを使っています 「#cilk 難しい. basic block parameter を実装しようとしたけど, そもそもbasic block間をまたいで使われる変数が許容されなくなるのか. だから data-flow analysis しやすい,と. extended basic blockに以降したほうが良さそうだし, 色々仕様を変えないと実現できなさそう.」 / Twitter
- uint256_tさんはTwitterを使っています 「#cilk とりあえず, PhiとAllocaだけ扱いを変えよう.」 / Twitter
関数分割
- 7594591200220899443さんはTwitterを使っています 「あっ、関数を勝手に二個に分けてコールドパスっぽい箇所を別のセクションにしちゃうやつだ。2.33% runtime improvement with a ~32% reduction in iTLB and sTLB misses 強いなー」 / Twitter
- Hacker News 200さんはTwitterを使っています 「LLVM merges machine function splitter for reduction in TLB misses https://t.co/9m4HHQIPZ4 (https://t.co/4xFIgNV2mz)」 / Twitter
- [llvm-dev] [RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
- LLVM merges machine function splitter for reduction in TLB misses | Hacker News
- _ko1さんはTwitterを使っています 「@shyouhei Unlikely にレベルが欲しくなるね...」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「@_ko1 えっ、普通にありますけど…」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「@_ko1 https://t.co/T7PYXyxYoT __builtin_expect_with_probability」 / Twitter
- Other Builtins (Using the GNU Compiler Collection (GCC))
- _ko1さんはTwitterを使っています 「@shyouhei gcc 9 からか」 / Twitter
- ドッグさんはTwitterを使っています 「LLVM にこんなパッチ出てたのか.profile data から関数の中で cold なパスを見つけ,リンカがそれらのコードを関数の外にまとめて配置.hot なパスの凝縮度が上がってキャッシュ効率が上がる.2%以上のパフォーマンス改善 | '[llvm-dev] [RFC] Machine Function Splitter' https://t.co/3JEoJZ71DL」 / Twitter
- ドッグさんはTwitterを使っています 「Google では profile data driven なアグレッシブなインライン化をやっていて,それによってコードの肥大化と実行コードの fragmentation がひどくなっていることの対策.最も hot な関数のコードの実に50%は(hot なのでキャッシュに乗ってるにも関わらず)実際は実行されてないらしい」 / Twitter
- エヌユルさんはTwitterを使っています 「C++だとコンパイラはインライン展開が得意な割にキャッシュヒットのための関数分割が苦手な傾向あるし関数は分割していった方が良いんですが JavaScriptのJITエンジンはどうなんですかね」 / Twitter
支配木
先にcritical edgeを除去
- uint256_tさんはTwitterを使っています 「途中でブロックを追加したりするから支配木を再計算しないといけない. 効率が悪いので良い方法を探したい」 / Twitter
- jicchoさんはTwitterを使っています 「@uint256_t 先にcritical edgeを除去しておくってのはどうでしょう?」 / Twitter
- uint256_tさんはTwitterを使っています 「@Jiccho96 なるほど. ループのヘッダを計算しなくても critical edge を除去することはできますね. ありがとうございます」 / Twitter
- uint256_tさんはTwitterを使っています 「@Jiccho96 (ループのヘッダを計算するのは, プリヘッダを追加するため)」 / Twitter
- uint256_tさんはTwitterを使っています 「CFGで,ブロックxからブロックyへの経路があるかっていうのはどうやって調べるのでしょうか 支配木を使って, xがyを支配する or xの支配辺境がyを支配する, でいいんだろうか」 / Twitter
- κeenさんはTwitterを使っています 「@uint256_t それだと2回流入があるケースに対応できないです。 \ \ x--df1--df2-y xがyを支配する or xの支配辺境の支配辺境の…と辿った集合がyを支配するの条件が必要です。」 / Twitter
- uint256_tさんはTwitterを使っています 「@blackenedgold なるほど. それ以上簡単に判別する方法はないのでしょうか」 / Twitter
- κeenさんはTwitterを使っています 「@uint256_t これ以外ないかと言われると自信ないですが、支配木を使ったアルゴリズムは私はこれしか知らないです。」 / Twitter
- uint256_tさんはTwitterを使っています 「@blackenedgold ありがとうございます.」 / Twitter
- κeenさんはTwitterを使っています 「@uint256_t 余談ですが支配辺境の支配辺境の…と辿った集合はiterated dominance frontier(反復支配辺境?)という名前がついているそうです。」 / Twitter
- uint256_tさんはTwitterを使っています 「@blackenedgold 聞いたことあります. なるほど, こういう場合に役立つのか...」 / Twitter
- Basic Block Reordering - GNU Project - Free Software Foundation (FSF)
BOLT
- uint256_tさんはTwitterを使っています 「BOLT: a practical binary optimizer for data centers and beyond」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t 並び替えるだけでこんなパフォーマンス変わるとは。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t あとディスアセンブルして並び替えてアセンブルすると元と同じように実行できるバイナリになるっていうのが結構すごい(細かいところを実装するのが大変そう)。」 / Twitter
PRE
- uint256_tさんはTwitterを使っています 「partial redundancy elimination よくわからない.これもdominator treeとか使えば綺麗に実装できるのだろうか」 / Twitter
- uint256_tさんはTwitterを使っています 「なんか先にglobal value numberingの事を考えた方がいい気がしてきた」 / Twitter
- jicchoさんはTwitterを使っています 「@uint256_t PREの一つであるLazy Code Motion(LCM)の実装方法が、以前に紹介したBuilding an Optimizing Compilerに載ってますよ。まずLCMの元の論文を読んでみてもいいかもしれませんね。PREはド専門なので、わからなかったら是非聞いてください(^^)」 / Twitter
- uint256_tさんはTwitterを使っています 「@Jiccho96 ありがとうございます.(今コンパイラの構成と最適化を読んでいて,SSAの場合どうするのが楽なのか考えていました)」 / Twitter
- jicchoさんはTwitterを使っています 「@uint256_t SSAPREという手法が実は既に提案されています。ちょっと自分で考えてみてから論文を読んでみるといいかもですね。 https://t.co/AK8cMSBIst」 / Twitter
- A new algorithm for partial redundancy elimination based on SSA form | ACM SIGPLAN Notices
in-order 発行+out-of-order 完了
- R. ShioyaさんはTwitterを使っています 「去年ぐらいから in-order な CPU(正確には in-order 発行+out-of-order 完了)の性能解析をする機会がちょくちょくあって,out-of-order な CPU との性能差の要因の1つとして,分岐命令の処理方法の違いが大きいってのがあんま本とかでは見た覚えがなかったので面白かった」 / Twitter
- R. ShioyaさんはTwitterを使っています 「out-of-order 発行だと,分岐命令はディスティネーションがないので(予測が当たっている限りは)全体の実行を遅らせることは基本ないけど,in-order 発行だとロードに依存する分岐とかは依存元の値が取れるまで発行を止めないといけないので,ここで性能差がごりごり出ることが多い」 / Twitter
- R. ShioyaさんはTwitterを使っています 「分岐予測が当たってる限りは分岐命令は性能に影響与えないよねとか思っちゃうんだけど,それとは別に in-order 発行の場合は真の依存があると止めないとダメだってのがあって,当たり前ではあるんだけど見落としがちな感じ」 / Twitter
- uint256_tさんはTwitterを使っています 「どうでもいいけど sparse conditional constant propagation って何かの必殺技っぽい」 / Twitter
- コンパイル時に定数を処理してしまうアレ | κeenのHappy Hacκing Blog
- κeenさんはTwitterを使っています 「エントリー書きました。うだうだ。 コンパイル時に定数を処理してしまうアレ | κeenのHappy Hacκing Blog https://t.co/7ua1tCPhX8」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Itaniumはコンパイラの開発が追いつかなかったと言われるけど、実際はもともと無理筋で、単に数値計算みたいなコンパイラが並列化しやすい特殊な用途の研究成果を見て、一般的にこれくらい性能向上できると勘違いしてしまったというのが正確だと思うんだよな。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「そういえば、Itaniumのコンパイラって実際にはどういうレベルだったんだろう?って気になって調べてみたら面白い記事を見つけた。おそらく機械翻訳で文がこなれていないが面白い https://t.co/00jfMr4x3x」 / Twitter
- history — Itaniumプロセッサがコンパイラを書くのが難しいのはなぜですか?
- Miura HidekiさんはTwitterを使っています 「ネイティブコード生成してオーバフローチェックを省くとこんな速度向上するのは驚き」 / Twitter
- Chris SeatonさんはTwitterを使っています 「Is it possible to safely turn off overflow checks for integer arithmetic in Ruby? Yes! You just have to write a proof for the compiler that they're not needed. https://t.co/NyIkCU3Ol9 https://t.co/awkt4QfdPw」 / Twitter
- Stamping Out Overflow Checks in Ruby
- V8 release v8.0 · V8
- Compressed pointers in V8 (public doc) - Google ドキュメント
- Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
セキュリティ
その他
- Linuxカーネル4.13リリース | OSDN Magazine
- Googleがオープンソースの安全性改善に総額100万ドル出資ーー「Secure Open Source Rewards」 | OSDN Magazine
- An Introduction to Speculative Optimization in V8
- seclang01 - essen-wiki
- Return-oriented Programmingとは何かを学ぶ|株式会社レピダム
- CVSS(共通脆弱性評価システム)3.0から3.1への変更点:OpenSCAPで脆弱性対策はどう変わる?(7) - @IT
- ipa ファイル レースコンディション - Google 検索
- 9_188.pdf
- 自分のこと、知れてますか。 〜自分のPCをフォレンジック〜 - Qiita
- セキュリティ専門家の40%以上が「2030年までにAIに仕事を奪われる」と予想している - GIGAZINE
- Go、D言語、Nim、Rust製マルウェアが増えている怖いワケ:マイナーなプログラミング言語がなぜ選ばれるのか - TechTargetジャパン セキュリティ
OWASP Top 10
- とある診断員さんはTwitterを使っています 「OWASP Top 10 https://t.co/DZOkpcWyFu OWASP Top 10の2021版がリリースされたようですね。SSRFがランクインしてますね。なんか段々一つの項目に従来の複数項目が沢山インクルードされてきている印象かな。そもそも10個の項目に収めるのが難しいってことなのかもしれないけど。」 / Twitter
- OWASP Top 10
- とある診断員さんはTwitterを使っています 「https://t.co/Tdd8w4e7rm 知り合いに指摘されて気づいたのですが、一応現段階ではドラフト版のようですね。」 / Twitter
- Notice - OWASP Top 10
- Yosuke HASEGAWAさんはTwitterを使っています 「OWASP Top 10 2021年版、目次部分の前半ざっくりと日本語に訳しました。 https://t.co/DDE915gfvH」 / Twitter
- OAWSP Top 10 2021 ja
システムコール
- FadisさんはTwitterを使っています 「OpenBSDが「libcのようなシステムコールを使うことが意図されたライブラリの置かれたアドレス以外から飛んでくる不審なシステムコールは拒否しよう」という仕組みを導入したら、不審なGo言語で作られたバイナリが全く動かなくなってしまった話良い」 / Twitter
- FadisさんはTwitterを使っています 「で、それに対するOpenBSDの対応が「Go言語がきちんとlibc経由でシステムコールを呼ぶように修正する」なのが更に良い https://t.co/8eoSVQEjtr」 / Twitter
- κeenさんはTwitterを使っています 「システムコールは叩きたいけどC FFIは用意する気がない言語を作りたいときに非常に困る。極論、OSは場を提供する親なので逆らえないし嫌なら出てけって話なんだけど…」 / Twitter
- 鯉江さんはTwitterを使っています 「@blackenedgold システムコール直にたたくと移植性が落ちません?」 / Twitter
- κeenさんはTwitterを使っています 「@koie 移植すればいいだけです。それに、Cそのまま呼べる特殊な言語でない限りABI気にしないといけないのでどのみちプラットフォームごとの処理は必要です。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「syscallレベルで「も」互換性確保しようするとOSの変化の足かせになる、というのはあるのかな。brk廃止できないとかvdsoに移行したあと古いsyscall消せないとか。またtcpみたくライブラリとして提供されがちな機能もあるわけで(Solarisや最近のApple)、syscallで機能がそろうと期待するのがそもそもry」 / Twitter
- DrumatoさんはTwitterを使っています 「keenさんほどハイレベルなこと考えているわけじゃないけど,気持ちはよくわかります. 今作っているPeachili言語ではC FFIを用意する代わりにインラインアセンブラみたいな構文を用意して標準ライブラリに組み込んである. (かなり大変だった) (そういう話じゃなかったらすみません」 / Twitter
- とみながたけひろさんはTwitterを使っています 「ページ属性に特定のビットが立ってないとシステムコールが発行できない、という仕組みがあったCPUってなんだったっけ…とhttps://t.co/KPAIFeCYVJ をみてそうだPA-RISCとIA-64だと思い出した」 / Twitter
- 仮想メモリ方式の分類
- dancerj 🗾さんはTwitterを使っています 「@takehiro_t sysenterもまあそういうノリな気がします」 / Twitter
- FadisさんはTwitterを使っています 「Linuxにシステムコールを呼べるメモリの範囲を制限する仕組みを追加する提案がなされている。ただ、攻撃者の妨害を狙ったOpenBSDの同種の機能と異なり、Linuxの狙いはWindowsの実行可能バイナリをLinux上で実行したときに発行されたシステムコールを捉える事らしい https://t.co/US0EbzPndP」 / Twitter
- FadisさんはTwitterを使っています 「WindowsバイナリをWindowsじゃないところで実行するWineは従来Windows APIを自前で実装する事で実現されていたが、近年Windows APIを使わず自分でシステムコールを投げるアプリケーションが増えていて、この方法ではWindows用のシステムコールが飛んでしまうらしい」 / Twitter
- FadisさんはTwitterを使っています 「そこでmmapのオプションにシステムコール禁止フラグを追加し、Windowsの実行可能バイナリをロードした領域だけシステムコール禁止にして、Windowsの実行可能バイナリ内から行われたsyscallを捕捉してエミュレーション用のコードを実行しよう、という魂胆らしい」 / Twitter
署名
ASN.1
- 自堕落な技術者の日記 : オススメASN.1ビューアaatool - livedoor Blog(ブログ)
- www5d.biglobe.ne.jp/stssk/asn1/index.html
- もいちど知りたい、セキュアコーディングの基本(5):見落としがちな整数関連の脆弱性(後編) (1/2) - @IT
- ASN.1 バイナリ変換規則 (BER, CER, DER)
- ASN.1 データ生成/解析の事始 — SOUM/misc
- Tools
- vlm/asn1c: The ASN.1 Compiler
- Lev Walkin → ASN.1 Exposed
- ITU-T Recommendation database
- ITU-T Recommendation database
- ITU-T Recommendation database
- ITU-T Recommendation database
- ITU-T Recommendation database
- RFC3641 ASN.1での一般的文字列コード化規則(GSER)
- RFC 3641 - Generic String Encoding Rules (GSER) for ASN.1 Types
- RFC 4792 - Encoding Instructions for the Generic String Encoding Rules (GSER)
- Specification # 36.331
- 2-3_urushima.pdf
- Application fields of ASN.1
- FFASN1 Compiler
- ffasn1dump ASN.1 Message Converter
X.509
RFC
- RFC 2459 - Certificate and CRL Profile
- Internet X.509 PKI Certificate and CRL Profile
- RFC 3280 - Certificate and CRL Profile
- RFC 4325 - Internet X.509 Public Key Infrastructure Authority Information Access Certificate Revocation List (CRL) Extension
- RFC 4630 - Update to DirectoryString Processing in the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
- RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
- Internet X.509 PKI Certificate and Certificate Revocation List (CRL) Profile
- RFC 6818 - Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
EternalWindows
- MakeCert Functions
- 証明書の形式
Qiita
- certificate - RSA鍵、証明書のファイルフォーマットについて - Qiita
Wikipedia
- 自己署名証明書 - Wikipedia
- Self-signed certificate - Wikipedia
- X.509 - Wikipedia
- X.509 - Wikipedia
Twitter
- Kazuho Okuさんのツイート: "PKIの証明書の時間的分解能は、時差がないから24時間以下とかにはできないのか。なるほど #ietf96j"
- Kazuho Okuさんのツイート: "「どうせ短寿命証明書はやる方向なんだし、それに乗っかるんだったらLurk WGは不要だよね」 #ietf96j"
- 情報セキュリティ入門 - PKI(後編)---X.509証明書とPKIの仕組み:ITpro
- X.509証明書
- 電子証明書のデータ形式 - RFC3289 X.509 Public Key Infrastructure Certificate and CRL Profile
- X.509 の解説
- 暗号技術基礎
- 公開鍵基盤(PKI)の概要
BLS署名
- BLS署名と秘密分散を組み合わせる - Qiita
- BLS署名の紹介と実装 - Qiita
EternalWindows
- 署名の格納
- ファイルと署名
- 副署名の設定
- 署名と属性
- 署名の構造
- 署名の取得
Wikipedia
- 電子署名 - Wikipedia
- RSA暗号 - Wikipedia
- Abstract Syntax Notation One - Wikipedia
- Abstract Syntax Notation One - Wikipedia
- X.690 - Wikipedia
Qiita
- 公開鍵暗号と電子署名の基礎知識 - Qiita
- 電子署名のファイルフォーマット - Qiita
- コードサイニングとは | セキュリティ用語解説 | 日立ソリューションズの情報セキュリティブログ
- コードサイニングの複数署名とハッシュアルゴリズムの異なる証明書の無償発行 -SHA-1署名のみのためインターネットからダウンロードする際に警告されていたりSHA-2署名のみのため旧バージョンのOSで問題が起こっているソフトウェアの作者へ-
- デジタル署名とデジタルID用のコード署名デジタル証明書
- セキュリティー関連の規格 のメモ
- extract-authenticode/README.ja.md at master · trueroad/extract-authenticode
- HIRT-PUB14002:Authenticode 署名:Hitachi Incident Response Team:日立
- 自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第1回) - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第2回) - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : Microsoft Authenticodeのタイムスタンプについてお勉強(第3回:最終回) - livedoor Blog(ブログ)
- RFC 2315 - PKCS #7: Cryptographic Message Syntax Version 1.5
- 署名を作成する
- 署名を検証する
- セキュリティー関連の規格 のメモ 署名アルゴリズム
- 自堕落な技術者の日記 : 図説RSA署名の巻 - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : RSAとECDSA、署名生成と署名検証どっちが速い? - livedoor Blog(ブログ)
- RFC 8032 - Edwards-Curve Digital Signature Algorithm (EdDSA)
- 改良型Winternitz one time署名の提案と安全性評価
- Hash-Based Signatures Part I: One-Time Signatures (OTS)
- jedisct1/minisign: A dead simple tool to sign files and verify digital signatures.
- Criminal use of code signing certificates | Firmware Security
- macOSにコード署名チェックをバイパスできる脆弱性 - PC Watch
/GS
MS
- /GS (バッファーのセキュリティ チェック)
- コンパイラ セキュリティの徹底調査
- コンパイラ セキュリティの徹底調査
- safebuffers
- __security_init_cookie
- C++ - Visual C++ Support for Stack-Based Buffer Protection
- WindowsでSEH overwriteによるstack canary(/GS)回避をやってみる - ももいろテクノロジー
- Beyond Zero-day Attacks(2):スタックに対する攻撃とその対策 (3/3) - @IT
- スライド 1
- /GS ‐ 通信用語の基礎知識
- IPA ISEC セキュア・プログラミング講座:C/C++言語編 第10章 著名な脆弱性対策:バッファオーバーフロー: #5 運用環境における防御
- C言語系/memos/VC++/09, スタック破壊の検出・防止("/GS", "/RTC", "/GZ") - Glamenv-Septzen.net
- __security_check_cookie | すなのかたまり
- C言語系/memos/VC++/10, "/NODEFAULTLIB"使用時の注意 - Glamenv-Septzen.net
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VS2017でカナリアを有効(/gs)にすると、atoi(0) がスタックオーバーフロー扱いで、例外ハンドラへの遷移を許さずに即時終了する様子。 atoi内部で使っている、パラメータ検査ルーチンにはこんな記述が。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SetUnhandledExceptionFilterは無視されるが、_set_invalid_parameter_handlerを仕込んでおくと、こちらが呼ばれる様子。 うーん、統一的なハンドリング方法を提供して欲しいところ。"
Intel MPX
- インテル® Memory Protection Extensions (インテル® MPX) 利用ガイド | iSUS
- Visual Studio 2015 Update 1: New Experimental Feature – MPX | Visual C++ Team Blog
- check-pointers-mpx、Qcheck-pointers-mpx
- Intel® Memory Protection Extensions Enabling Guide | Intel® Software
- How to Protect Apps from Buffer Overflow Attacks | Intel® Software
- Study overview
- VirtualQuery function (Windows)
- GetSystemInfo function (Windows)
- SYSTEM_INFO structure (Windows)
- Getting Hardware Information (Windows)
- Intel GoldmontとMPXとゆるふわなごや
- Intel MPX - Wikipedia
Control Flow Guard
Control Flow Integrity
- Control-flow integrity - Wikipedia
- Control-Flow Integrity - Microsoft Research
- Control-Flow Integrity - Microsoft Research
- ccs05.pdf
- Control Flow Integrity — Clang 7 documentation
- Control-Flow Integrity: An Introduction
- Control-flow integrity
- Out Of Control: Overcoming Control-Flow Integrity
- usenix13.pdf
- Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM – Google AI
- SSTIC2015-Article-control_flow_integrity_on_llvm_ir-fontaine_chifflier_coudray_esfrDAl.pdf
- Let’s talk about CFI: clang edition | Trail of Bits Blog
- Practical Control-Flow Integrity
- Google Online Security Blog: Compiler-based security mitigations in Android P
- Kostya Serebryanyさんのツイート: "New security hardening in Android P: CFI and [un]signed-integer-overflow checks. (my team is responsible for the LLVM side of these things) https://t.co/zgylJE9AjW"
- Android Developers Blog: Compiler-based security mitigations in Android P
- まさみさんは語りたいさんのツイート: "Control Flow Integrityって、コンパイラ屋なのにCFIって略称使うの気持ち悪くないのかな?Call Frame Informationの略でもあるんだけど。"
- Google Online Security Blog: Control Flow Integrity in the Android kernel
- mumumuさんはTwitterを使っています 「Control-Flow Integrity [CCS '05] いわゆるCFIを最初に(?)提唱した論文.共著でMSに人たちがいて,実装はWindows上でやってるのは面白い.全ての命令の遷移を,instrumentにより,予め与えられたCFGに基づいて妥当かどうか実行時に判断する戦略,直感的でわかりやすい. https://t.co/nvojQmYhqx」 / Twitter
- Abadi et al._2005_Control Flow Integrity.pdf
MS
- Control Flow Guard (Windows)
- Windows 10 Memory Protection Features | Ask Premier Field Engineering (PFE) Platforms
- -guard (有効にする Control Flow Guard) | Microsoft Docs
- ガード (ガード チェックを有効にする) | Microsoft Docs
- -guard (Enable Control Flow Guard)
- -GUARD (Enable Guard Checks)
- -HIGHENTROPYVA (Support 64-Bit ASLR)
- Memory Management Reference (Windows)
- Memory Management Functions (Windows)
- Memory Management Registry Keys (Windows)
- Memory Management Structures (Windows)
- Memory Protection Constants (Windows)
- Memory Protection Constants (Windows)
- SetProcessValidCallTargets function (Preliminary)
- VirtualProtect function (Windows)
- VirtualAlloc function (Windows)
- LoadEnclaveData function (Windows)
- CreateFileMapping function (Windows)
- Memory Protection (Windows)
- VirtualAllocEx function (Windows)
- Control Flow Guard (Windows)
- Control Flow Guard - Win32 apps | Microsoft Docs
- MSRC-Security-Research/BHUSA16_Weston_Miller_Windows_10_Mitigation_Improvements.pdf at master · microsoft/MSRC-Security-Research
- Announcing Changes to Microsoft’s Mitigation Bypass Bounty - Microsoft Security Response Center
- MR201412_Control_Flow_Guard_JPN.pdf
- Windowsのセキュリティ機能Control Flow Guard解説 « 他人の空似
- エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~CFG export suppression~ « 他人の空似
- Run-TimeErrorChecksとBufferSecurityCheck « 他人の空似
- Windows開発はclang+lldでも実用レベルか?セキュリティ面から調べてみた « 他人の空似
- Rockridgeさんのツイート: "Fx60:Windows版で、firefox.exeがControl Flow Guardに対応。Windows 8.1 Update以降の環境でセキュリティが強化されるという。参照:https://t.co/25VQMWSHXZ https://t.co/J1IuXmnWy5"
- Gadgets Zoo: Bypassing Control Flow Guard in Windows 10 - Rafal Wojtczuk Jared DeMott Derbycon 2015 (Hacking Illustrated Series InfoSec Tutorial Videos)
- Exploring Control Flow Guard in Windows 10
- Manual Control Flow Guard in C « null program
- Let’s talk about CFI: Microsoft Edition | Trail of Bits Blog
- DerbyCon: Former BlueHat prize winner will bypass Control Flow Guard in Windows 10 | CSO Online
- mumumuさんはTwitterを使っています 「Code-Pointer Integrity [OSDI '14] データのRWができる攻撃者からのControl Flow Hijackを防ぐために,Control Flowに影響があるポインタ(Sensitive Pointer)のみ別のメモリ空間に保存し,Instrumentによる安全性の担保を行う.CFI等の既存手法よりも低オーバヘッドで強い保障を与えられるのが売り.」 / Twitter
CET(Control-flow Enforcement Technology)
- Fadisさんのツイート: "gcc8からIntel CETに対応する模様。CETはCALL RET等の一部の命令だけが読み書きできるリターンアドレスだけが積まれた裏スタックを作り、従来のスタックとリターンアドレスの比較を行う事でROPを検知する https://t.co/ZQFPQrSZYo"
- Control-Flow Enforcement Technology Begins To Land In GCC 8 - Phoronix
- るくすさんのツイート: "戻りアドレスをチェックしてROP等の攻撃を防ぐControl-Flow Enforcement Technology (CET)がGCCに追加される予定とのこと。 https://t.co/DKJEXYlI9U"
- Intel Posts Control-Flow Enforcement Support For GCC - Phoronix
- Rui Ueyamaさんのツイート: "@RKX1209 そういやABI拡張が提案されていた。 https://t.co/zRo7Z2CX23"
- RFC: Update x86 psABIs to support IBT
BranchScope
- CPU攻撃の新たな手法「BranchScope」、Intel製CPUで実証 - ITmedia NEWS
- BranchScope: A New Side-Channel Attack on Directional Branch Predictor
- Spectreと同じ分岐予測を利用した新たなCPU脆弱性「BranchScope」 ~Haswell/Skylakeなどで実証に成功、Intel SGXを突破 - PC Watch
- まさみさんは語りたいさんのツイート: "BTB対策の時にBPU(BPB)も対策(分離)されてると思うんだけど、どうだろうか。… "
- まさみさんは語りたいさんのツイート: "BPBじゃないBHBだ。SpectreBustersのスライドP25にあるやつ。 https://t.co/zh9yE5dYjb"
- まさみさんは語りたいさんのツイート: "SpectreもBranchScopeも、Intelの分岐予測実装が、分岐結果を共有しても意味がない、異なるコンテキストに対して共有しているから、そこをサイドチャネルにしてリークしてる、ということかと思うんで、HWの対策としては同じなんじゃないの?と。"
- まさみさんは語りたいさんのツイート: "攻撃側でBHBを読み取る試みをする場合は、ソフトウェアで出来ることは殆ど無いから、攻撃手法として強力なのは分かる。HTをオフにした上で、マイクロコードでCR2変更時にBHB消せるようにするしかないんではないかと。"
- まさみさんは語りたいさんのツイート: "あるいはカーネルのスケジューラにisolationレベルを導入して、isolation levelが高いプロセスは、他のプロセスと同じコアを使わせないとか、コンテキスト切替時に只管クリーンナップするとか、特別な手立てを講じることになるんじゃないかな。"
- CPUの脆弱性を突く新たなテクニック "BranchScope" の仕組みを読み解く (1) - FPGA開発日記
- CPUの脆弱性を突く新たなテクニック "BranchScope" で何が攻撃できるのか?(2) - FPGA開発日記
Spectre
Spectre
Spectre:Variant 1: bounds check bypass (CVE-2017-5753)対策:array_index_nospec(array_ptr)
NetSpectre
- Fadisさんのツイート: "NetSpectre: よくある通信プロトコルがリクエストで要求された位置が配列内かをチェックするのを利用して、リモートからSpectre V1を踏ませる。通信の応答時間はSpectre V1以外にも様々な理由で揺らぐが、大量のリクエストを投げて統計的な方法でキャッシュに当たったか判別 https://t.co/o97bcB6P04"
- NetSpectre Vulnerability Can Reveal Arbitrary Memory Over Network - Phoronix
- OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi @mhiramat @n_soda @houmei Daniel Grussさん (Graz, University of Technologyポスドク) 等から NetSpectre: A generic remote Spectre variant 1のペーパーが公開されました https://t.co/lFERTGpr6T"
- NetSpectre: Read Arbitrary Memory over Network
- 20180728
WebKit
- webkit/Source/WTF/wtf at master · WebKit/webkit
- webkit/Poisoned.h at master · WebKit/webkit
- webkit/Poisoned.cpp at master · WebKit/webkit
- webkit/PoisonedUniquePtr.h at master · WebKit/webkit
- webkit/JSCPoison.cpp at master · WebKit/webkit
- webkit/LowLevelInterpreter.asm at master · WebKit/webkit
@xharaken
- Kentaro Haraさんのツイート: "世間を騒がせているCPUの致命的なバグ、SpectreとMeltdown。Spectreの方は初歩的なプログラミングの知識で理解できるので、4ツイートで簡単に解説してみる。"
- Kentaro Haraさんのツイート: "こういうArrayクラスがあったとする。 class Array { char at(unsigned i) { if (i >= length) // (a) return -1; return data[i]; // (b) } un… https://t.co/jqU6n6Gyk4"
- Kentaro Haraさんのツイート: "ここで、次のコードを実行する。 char mem[257]; char v = array->at(12345678); // 秘密のデータが保存されているアドレスを指定 if (v & 1) { mem[0]; } else { mem[256]; } // (c)"
- Kentaro Haraさんのツイート: "CPUの分岐予測をうまく利用すると、(a)のCPU命令が完了する前に、分岐を(b)の方に予測させて、(c)を投機的に実行させることができる。もちろん(a)が完了した時点で投機実行された(c)は捨てられるのだが、すでにCPUはmem[0]またはmem[256]を投機的にキャッシュへ… https://t.co/fC9k45cW0j"
- Kentaro Haraさんのツイート: "よって、mem[0]とmem[256]へのアクセス速度を測ってどっちがキャッシュに乗ったかを調べれば、狙ったアドレスのデータが0なのか1なのかがばれる。バッファオーバーフローを防ぐための範囲チェックが役に立たなくなって、好きなメモリアドレスの値を読めてしまう。。。というのがSpe… https://t.co/0gQGqguJu9"
- Kentaro Haraさんのツイート: "CPUの分岐予測に関する根本的なバグなのでソフトウェア側で対処するのは難しいのだが、Chromiumでは、if文を使わない形に範囲チェックを書き換える、(キャッシュへのアクセス速度を調べられないように)タイマーの精度を意図的に落とす、高精度タイマーが作れるAPIを無効化するなどで… https://t.co/FYYt5Nnu1F"
- What Spectre and Meltdown Mean For WebKit | WebKit
- c - Branchless Overflow Handling - Stack Overflow
- End-of-buffer checks in decompressors | The ryg blog
- A Branchless UTF-8 Decoder « null program
- skeeto/branchless-utf8: Branchless UTF-8 decoder
- A Branchless UTF-8 Decoder : cpp
- まさみさんは語りたいさんのツイート: "先週末に出てきた別の機能 Array_ptr https://t.co/dkgIBes9Fm これはSpectreV1対策だけど、境界条件チェックをif文なしで行うためのマクロ。境界条件を超えるとNULLが返ってくるようになるので、投機的実行で任意のアドレスにアクセスさせることが出来なくなる。"
- LKML: Dan Williams: [PATCH v4 00/10] prevent bounds-check bypass via speculative execution
- まさみさんは語りたいさんのツイート: "1月初めに出てきていた Array_ptrの元になったマクロ https://t.co/8OnV6FqMtD これはARM64版のアセンブラを使った実装になっている。CSDBというバリア命令を使う。これはどうやらIntel/AMDがマイクロコードに追加したIBPBみたいな命令らしい。以下のARMのWPにある。 https://t.co/zUOOIHceDk"
- LKML: Mark Rutland: [RFC PATCH 0/4] API for inhibiting speculative arbitrary read primitives
- prevent bounds-check bypass via speculative execution [LWN.net]
- [PATCH v2 00/19] prevent bounds-check bypass via speculative execution [LWN.net]
- [PATCH v3 0/9] core, x86: prevent bounds-check bypass via speculative execution [LWN.net]
- [PATCH v4 00/10] prevent bounds-check bypass via speculative execution [LWN.net]
- まさみさんは語りたいさんのツイート: "最後のミスだけ補足したのは、gccでretpolineを有効にしても、array_ptrを必要なライブラリなどが使わなければ、Spectre V1に対しては脆弱なままだからです。array_ptrは明示的に使う必要があるため、ソースコードの修正も必要になります。"
- まさみさんは語りたいさんのツイート: "retpolineについて調べていたはずが、array_ptrの方が闇が深かったという結果になった。"
- まさみさんは語りたいさんのツイート: "あっ、この2週間でarray_ptrがarray_index_nospecに変わってる。"
- 米Red Hat、Spectre脆弱性変種1向けのスキャンツールを公開 | OSDN Magazine
- SPECTRE Variant 1 scanning tool - Red Hat Customer Portal
Spectre:Variant 2: branch target injection (CVE-2017-5715)対策:Retpoline
LLVM
- [PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
- ⚙ D41760 Introduce __builtin_load_no_speculate
- ⚙ D41761 Introduce llvm.nospeculateload intrinsic
- [PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
Intel
- Intel Analysis of Speculative Execution Side Channels
- Intel® Product Security Center
- Google Online Security Blog: More details about mitigations for the CPU Speculative Execution issue
- SpectreBustersあるいはLinuxにおけるSpectre対策
- https://docs.google.com/document/d/e/2PACX-1vSnV92CM3w9n_IWCGbqb2txXBDNRgkTmQ5LKQEFkCCMMteLH0AHTm79e8z3a0tMx7_u1xc7u42tcZq7/pub?embedded=true
- まさみさんは語りたいさんのツイート: "いっそのこと、retpolineのコード(__x86_indirect_thunk)をVDSOでLinuxカーネルから渡すようにしたらいいのではないか(おい)"
- まさみさんは語りたいさんのツイート: "残念なお知らせだ。retpolineで遅くなると思って関数ポインタからSwitch-caseベースに変更したprobe eventだが、かえって数ナノ秒遅くなってる。例外はメモリアクセス。"
- Makoto Kato ︎︎さんのツイート: "昨日のx86/x64最適化勉強会とか、前のフロントエンドカンファレンスでも思ったけど、SpectreがJITエンジンにも同じ対策を求められることってみんな理解してないのね。コンパイラな解決方法はすべてJITにも言えることで。。。"
- 鈴木光宏さんのツイート: "https://t.co/W9RAFezHc2 Spectre 脆弱性の実験コード(論文https://t.co/QSBSfSmutm)、FreeBSD-current / Intel Core i5 で見事動作。メモリ上の文字列の取得に成功してます。 git clone して… https://t.co/LL1zO6Paau"
- Eugnis/spectre-attack: Example of using revealed "Spectre" exploit (CVE-2017-5753 and CVE-2017-5715)
- Retpoline: a software construct for preventing branch-target-injection - Google ヘルプ
- はてなブックマーク - Retpoline: a software construct for preventing branch-target-injection - Google Help
- Spectre example code
- ⚙ D41723 Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
- [PATCH] D41723: Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre..
- Is MSVC also being updated to include the retpoline mitigation? : cpp
- Meltdown/Spectreの脆弱性、リスク、対策
- Ubuntu 17.10 その195 - MeltdownとSpectreについて知っておくべきこと(前編) - kledgeb
- Ubuntu 17.10 その196 - MeltdownとSpectreについて知っておくべきこと(後編) - kledgeb
- プロセッサ脆弱性SpectreとMeltdownのLinux用チェッカー – がとらぼ
- CPUの脆弱性におけるEC2(Amazon Linux、Windows)とECSの対応 - Qiita
- SODA Noriyukiさんのツイート: "in-order でも、分岐予測とそれに基づいた命令プリフェッチはあるので、Spectre Variant 2 は可能という話ですかね。… "
Spectre:Variant 4: Speculative Store Bypass (SSB)(CVE-2018-3639)
Twitter
- LWN.netさんのツイート: "Spectre variants 3a and 4 https://t.co/9LZeAQYrfq"
- Hisaki Oharaさんのツイート: "Variant 4について: Addressing New Research for Side-Channel Analysis https://t.co/PaoH1AepPx"
- Hisaki Oharaさんのツイート: "Analysis and mitigation of speculative store bypass (CVE-2018-3639) https://t.co/eBAdoCuRbY"
- まさみさんは語りたいさんのツイート: "https://t.co/y3DiunBczh あー、Variant4が出てるなあ。OoO技術、実はボロボロやんけ、というのが2018年にわかった事実。"
- まさみさんは語りたいさんのツイート: "Spectre Variant4はMemory Disambiguatorが、他のストア命令に依存しないであろうロード命令を予測するのを騙して、実は依存するロード命令を投機的実行させることにより、それに続く命令をL1キャッシュのデータを元に投機的実行させることが出来る。"
- まさみさんは語りたいさんのツイート: "予測機構をだまくらかして、あとで反故にされるデータを利用して投機実行し、足跡をキャッシュに残すというところはSpectre v1/v2と全く同じなのでSpectre v4と呼ばれる。"
- まさみさんは語りたいさんのツイート: "Spectre v1はまだソフトウェア的に回避しようがあった(array_ptrとか)けど、このV4のいやらしい所は、完全にプロセッサ内部の機構が勝手にやってることなので、このMDと呼ばれる機能を停止させる他無いっていうところ。"
- まさみさんは語りたいさんのツイート: "ハードウェア的に改善するなら、MDで投機的実行をある程度許可してもいいけど、その投機実行中にメモリアクセスがあったら一端投機実行を停止する、という処理になるのかなあ。"
- Spectre Variants 3A & 4 Exposed As Latest Speculative Execution Vulnerabilities - Phoronix
- Fadisさんのツイート: "Spectre Variant4: いくつかの投機的実行を行うCPUが、書き込み先アドレスが未知のwriteの後ろにあるreadを「多分同じアドレスを読まない」と期待して読んで、writeとアドレスが被っていたらreadをやり直す、という処理をするのを利用して分岐の無い所でSpectreする手法 https://t.co/GKKsCMqMaQ"
- Spectre派生の新たな投機実行脆弱性が発表。多数のCPUが攻撃対象に - PC Watch
- 「Spectre」「Meltdown」脆弱性に新たな変種 - CNET Japan
- CPU由来の脆弱性情報(CVE-2018-3639 – Speculative Store Bypass (SSB) (Variant 4) / CVE-2018-3640 – Rogue System Register Read (RSRE) – (Variant 3a)) – 脆弱性情報ブログ(仮)
- Kernel Side-Channel Attack using Speculative Store Bypass - CVE-2018-3639 - Red Hat Customer Portal
- 投機的ストアバイパスを使用したカーネルのサイドチャネル攻撃 - CVE-2018-3639 - Red Hat Customer Portal
- Spectre/Meltdownに続くCPU脆弱性、GoogleとMSが「Variant 4」公表 | マイナビニュース
- Intel製およびARM製CPUに新たな脆弱性「Variant 4 SpectreNG」 | マイナビニュース
- 1528 - speculative execution, variant 4: speculative store bypass - project-zero - Monorail
- INTEL-SA-00115
- CPU脆弱性、新種「Variant 4」の存在が明らかに - CIOニュース:CIO Magazine
- CPUに内在する脆弱性「Spectre」に新種「Variant 4」が登場、Intel・AMD・ARMは対応策を発表 - GIGAZINE
- “Spectre”脆弱性の新しい亜種、各ベンダーが一斉に製品への影響と回避策を案内 - 窓の杜
- Spectre/Meltdown脆弱性の新バリアント2件が公表される | スラド ハードウェア
- 新たに「Meltdown」「Spectre」関連の脆弱性、IntelはBIOSアップデートの準備 - ITmedia エンタープライズ
- Speculative Store Bypass に学ぶ現代プロセッサの高速メモリアクセスユニットの仕組み - FPGA開発日記
- SpectreNG および Variant 3a 脆弱性の WebClass への影響に関して|メンテナンスのご案内|サポート|WebClass|日本データパシフィック株式会社
- NetBSD 8.0がSpectre V2/V4、Meltdown、Lazy FPUの軽減などを提供
Spectre SWAPGS(SWAPGSAttack)
- New Windows hack warning: Patch Intel systems now to block SWAPGSAttack exploits | ZDNet
- 【セキュリティ ニュース】「Spectre」に新亜種、「SWAPGS攻撃」受けるおそれ - MSは7月に対処済み(1ページ目 / 全2ページ):Security NEXT
- Bypassing KPTI Using the Speculative Behavior of the SWAPGS Instruction – Bitdefender Labs
- CVE-2019-1125: Spectre SWAPGS gadget vulnerability - Red Hat Customer Portal
- FadisさんはTwitterを使っています: 「CVE-2019-1125: x86_64のLinuxはGSをユーザ空間とカーネル空間で別の用途で使う → システムコール時にSWAPGSでGSを切り替える → カーネルはSWAPGS前にそれをすべき状況か確認する → この分岐の予測を失敗させCPUに誤ったGSを食べてカーネル空間で何かした夢を見せるSpectre https://t.co/EAzoTz5HYq」 / Twitter
- Ivy Bridge以降のIntel CPUに投機実行に脆弱性 - PC Watch
- More information on SWAPGS and Speculative only Segment Loads
- Deep Dive: Intel Analysis of Speculative Behavior of SWAPGS and Segment Registers
- Processors Affected: Speculative Behavior of SWAPGS and Segment Registers
Spectre 1.1/1.2
- 品川 高廣さんのツイート: "Spectre1.1 と Spectre1.2。進化してる。https://t.co/NRjcocZE7t"
- [1807.03757] Speculative Buffer Overflows: Attacks and Defenses
- 「Spectre」関連の脆弱性、また新たに発覚 IntelやARMのプロセッサに影響 - ITmedia エンタープライズ
- 2018年7月20日号 18.04.1 Server InstallerのCall for Testing,“Spectre” Variant 1.1/1.2。Bounds Check Bypass Store (BCBS):Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- Spectre 1.1および1.2の脆弱性が公開された
- Spectre 1.1 (CVE-2018-3693) の論文を読む - FPGA開発日記
- ROP(Return-Oriented Programming)についての勉強 - FPGA開発日記
SpectreRSB
- CPUの脆弱性を突く新たな攻撃手法「SpectreRSB」 - CNET Japan
- 「Spectre」関連の新たな脆弱性、米研究チームが発表 - ITmedia エンタープライズ
Spectre/MeltdownPrime
- Meltdown-Spectre flaws: We've found new attack variants, say researchers | ZDNet
- まさみさんは語りたいさんのツイート: "LLC使った攻撃か。違うコアで実行した投機的実行の結果を知ることが出来る攻撃手法というわけだ。> Spectre/MeltdownPrime"
- まさみさんは語りたいさんのツイート: "KPTIで防げるのかな?"
- satさんのツイート: "新しい脆弱性の名前、MeltdownPrimeとSpectrePrimeだそうです。絶対ふざけて決めただろ https://t.co/IKpZRYZyiA"
- 1802.03802.pdf
- まさみさんは語りたいさんのツイート: "消して埋めさせる方法と、埋めて上書きさせる方法、の違いというか。… "
- ZDNet Japanさんのツイート: "CPU脆弱性「Meltdown/Spectre」を悪用した新たな攻撃手法--研究者らが発見 https://t.co/TWhDfKj8tH"
- まさみさんは語りたいさんのツイート: "元の方法だと「遅い遅い遅い速い遅い遅い」が Primeだと「速い速い速い遅い速い速い」になる、という感じで良いんだろうか。"
- まさみさんは語りたいさんのツイート: "MeltdownPrime→KPTIで防げる(アクセス先がない) SpectrePrimeV1→array_index_nospecで防げる(アクセス先が安全) SpectrePrimeV2→retpolineで防げる(V1が防げればOK) 今回はサイドチャネルの作り方の工夫なので対策法はこれまでと同じ。"
- まさみさんは語りたいさんのツイート: "そもそもPrime+Probeにハードウェアサイドの対処ってあったっけ?"
- CPU脆弱性「Meltdown/Spectre」を悪用した新たな攻撃手法--研究者らが発見 - ZDNet Japan
- MeltdownPrime and SpectrePrime: Automatically-Synthesized Attacks Exploiting Invalidation-Based Coherence Protocols
- Meltdown and Spectre
- spectre.pdf
- 図解でわかるSpectreとMeltdown // Speaker Deck
- 本当にわかる Spectre と Meltdown
- chikoskiさんのツイート: "Spectre対策でSharedArrayBufferは無効化されたと思っていたけれど、Chrome68から再び有効になってたのね。c.f. SpectreとSharedArrayBuffer https://t.co/S2XKSFIE0e"
- fantastictimers.pdf
- chikoskiさんのツイート: "Site Isolation(Rendererプロセスが保持するdocumentを最大で1つに制限する)ことで、iframeを使ったサイドチャネル攻撃に対処したと。https://t.co/kaCAWOsCry"
- Google Online Security Blog: Mitigating Spectre with Site Isolation in Chrome
- SGX After Spectre and Meltdown: Status, Analysis and Remediations | Firmware Security
- SgxPectre Attacks: Leaking Enclave Secrets via Speculative Execution | Firmware Security
- Windowsアーキテクチャー、Meltdown and Spectre、メモリ、オブジェクト
- 20180505
- 【CPU】 Intel CPUに新たな脆弱性『Spectre Next Generation』?ドイツメディアが報じる : ニッチなPCゲーマーの環境構築
- インテル® コンパイラーを使用して投機実行サイドチャネルの問題を緩和 | iSUS
- 日記 (2018 年 1 月中旬)
- Long-Term Web Browser Mitigations for Spectre - Google ドキュメント
- 【連載】SperctreやMeltdownを根本から防ぐSafeSpec | マイナビニュース
micro-opキャッシュ
- FadisさんはTwitterを使っています 「新種のSpectreの話。x86プロセッサのmicro-opキャッシュの振る舞いを観測することでSMTでこのキャッシュを共有する隣のスレッドからプロセスの動きを覗き見する。既存のmitigationはこのキャッシュに対する攻撃を想定しておらず、この攻撃はIntelでもAMDでも有効らしい https://t.co/p72yTNMXuf」 / Twitter
- New Spectre Variants Discovered By Exploiting Micro-op Caches - Phoronix
- isca2021a.pdf
- FadisさんはTwitterを使っています 「x86は命令が複雑なため、CPUは内部でx86の命令列をより簡素な命令列(micro-op)に翻訳しながら実行している。頻繁に実行する命令列に対してこの翻訳を省略するためにCPUは翻訳済みのmicro-opのキャッシュを持っている。キャッシュにヒットすれば命令が片付くのが速くなるので、あとはいつものSpectre」 / Twitter
- FadisさんはTwitterを使っています 「micro-opキャッシュはCPU毎に仕様が異なり、ドキュメント化されている情報も少ないため今まで安定したサイドチャネル攻撃には使えなかったが、ドキュメント化されていない部分を気合のリバースエンジニアリングで何とかして安定してサイドチャネル攻撃を行えるようにしたらしい」 / Twitter
- FadisさんはTwitterを使っています 「まぁ、やっぱりハイパースレッディングはオワコン、という話でしかないわけだが」 / Twitter
- とみながたけひろさんはTwitterを使っています 「よーわからんが、uops cacheに入ってると全ビット一致しなくても実行してしまう、みたいなのを使ってるの? しかしDefenselessとはなかなかすごい名前だ」 / Twitter
- Computer scientists discover new vulnerability affecting computers globally -- ScienceDaily
- New x86 micro-op vulnerability breaks all known Spectre defenses | Hacker News
MS
その他
- 投機実行の脆弱性修正、Haswell世代以前では性能への影響大 ~I/O集中型アプリケーションを利用するサーバーは慎重な選択を。AMDはほぼ影響受けず - PC Watch
- Microsoft、Intelの脆弱性対策を無効化する緊急アップデートを配信 ~適用で再起動問題を回避、Windows 7/Haswell以降が対象 - PC Watch
- 【特集】Spectre V2対策による性能低下を緩和する「Retpoline」の効果を確認する - PC Watch
- Broadwell以前でも性能低下がほぼない「Spectre V2」対策がWindows 10に実装へ - PC Watch
- Microsoft、Skylake用のSpectre V2対策コードを提供開始 - PC Watch
- Windows月例更新でVIAプロセッサにもSpectre/Meltdown対策が盛り込まれる ~ただしAvast、Avira、Sophosと競合する不具合 - PC Watch
- 「Windows 10 19H1」、「Spectre Variant 2」対策にグーグルの「Retpoline」を採用へ - ZDNet Japan
- 「Spectre」攻撃、インテルの「SGX」保護機能に影響 - ZDNet Japan
- 緊急パッチだけではプロセッサ脆弱性対策は不十分――Spectre&Meltdown対策状況を再チェック:山市良のうぃんどうず日記(117:緊急特別編) - @IT
- 山市良のえぬなんとかわーるど: 仕事始めは Windows Update から(例の Intel/AMD/ARM CPU 問題に関する追記あり)
- 山市良のえぬなんとかわーるど: 例の CPU 脆弱性問題にフルアーマーな PC
- 山市良のえぬなんとかわーるど: 例の CPU 脆弱性問題の Windows 関連の続報(リンクまとめ+α)
- Project Zero: Reading privileged memory with a side-channel
- Mitigating speculative execution side-channel attacks in Microsoft Edge and Internet Explorer - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
- Update on Spectre and Meltdown security updates for Windows devices | Windows Experience Blog
- Windows Analytics で Meltdown と Spectre への対策状況が評価可能に - Windows Blog for JapanWindows Blog for Japan
- Windows クライアントで投機的実行のサイドチャネルの脆弱性から保護する
- Protect your Windows devices against speculative execution side-channel attacks - Windows Help
- CVE-2017-5715 (分岐先インジェクション) からのゲスト仮想マシンの保護 | Microsoft Docs
- Windows システム上の Spectre および Meltdown に対する緩和策のパフォーマンスへの影響について - Microsoft Security Response Center
- 2018年11月2日号 Spectre v2対策 “Enhanced IBRS”のマージ,IBMによるRed Hat買収に関するMark Shutleworthからのステートメント:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- Intel Prepares "Enhanced IBRS" As Better Spectre V2 Protection For Future CPUs - Phoronix
- Mitigating Spectre variant 2 with Retpoline on Windows - Microsoft Tech Community - 295618
- Spectre mitigations in MSVC | C++ Team Blog
- Spectre mitigation changes in Visual Studio 2017 Version 15.7 Preview 3 | C++ Team Blog
- Spectre diagnostic in Visual Studio 2017 Version 15.7 Preview 4 | C++ Team Blog
- Mitigating speculative execution side channel hardware vulnerabilities - Microsoft Security Response Center
- Analysis and mitigation of speculative store bypass (CVE-2018-3639) - Microsoft Security Response Center
- Project Zero: Bypassing Mitigations by Attacking JIT Server in Microsoft Edge
Google
- Project Zero: Reading privileged memory with a side-channel
- Google Online Security Blog: Today's CPU vulnerability: what you need to know
- Google、CPU脆弱性“Meltdown”“Spectre”の緩和策を「Google Chrome 64」へ導入 - 窓の杜
- Site Isolation - The Chromium Projects
- Actions Required to Mitigate Speculative Side-Channel Attack Techniques - The Chromium Projects
- Product Status - Google ヘルプ
- RealJTG/Meltdown: Meltdown PoC for reading passwords from Google Chrome.
- 「Google Chrome 66」が正式版に ~新しい開発者機能とセキュリティ・安定性の向上策 - 窓の杜
- 「Google Chrome 67」が正式版に ~“Spectre”脆弱性の緩和策“サイト分離”をテスト - 窓の杜
- なかのん&マジックさんのツイート: "Site Isolationでメモリ使用量1割増、か…… / Google Online Security Blog: Mitigating Spectre with Site Isolation in Chrome https://t.co/Akgcac45is"
- なかのん&マジックさんのツイート: "Spectreはプロセス境界どころかそれ以上に越境できてしまうのが問題という認識だったんだけど、Site IsolationでSharedArrayBufferを復活させても大丈夫なもんなの?"
- なかのん&マジックさんのツイート: "とっとと対策したCPU出てよ、とは思う、そもそも。"
- Google Developers Japan: Chrome の Site Isolation で Spectre のリスクを軽減する
- Googleの研究者ら曰く、Spectre脆弱性の修正は難しい | スラド
- 1902.05178.pdf
- Google Says Spectre And Meltdown Are Too Difficult To Fix
- CPU脆弱性「Spectre」の概念実証と脆弱なエンドポイントを探す拡張機能「Spectroscope」をGoogleが公開 - GIGAZINE
Mozilla
- Meltdown と Spectre
- Rockridgeさんのツイート: "MozillaはSpectre/Meltdown問題への当面の対策をFirefox 57.0.4に投入する模様。対策にはSharedArrayBufferの無効化が含まれる。参照:https://t.co/wMmPg7YCtU https://t.co/bN5nYqiV3t"
- Mitigations landing for new class of timing attack | Mozilla Security Blog
- sharedarraybuffer webassembly - Google 検索
- Kazuho Okuさんのツイート: "Meltdown / Spectre 脆弱性の悪用防止のため、高精度のタイマー実装に使うことのできる SharedArrayBuffer が一時利用不可能に / “Mitigations landing for new clas…” https://t.co/rHZAnVN8Og"
- more on Meltdown and Spectre | Firmware Security
- Mozilla、「Firefox」v57.0.4を公開 ~CPU脆弱性“Meltdown”“Spectre”へ対策 - 窓の杜
- Ryou Ezoeさんのツイート: "SharedArrayBufferを高精度タイマーに使うのってどうするんだろ。"
- Kazuho Okuさんのツイート: "@EzoeRyou ServiceWorker(要は別スレッド)でビジーループでカウンタアップテードさせる"
- Rockridgeさんのツイート: "Fx59:Spectre対策として、デフォルトのタイマー解像度を2ミリ秒に落とした。従来は0.02ミリ秒だった。 / “1435296 - Reduce Timer Resolution to 2ms” https://t.co/TJWWKoS4GM"
- Rockridgeさんのツイート: "Project Fissionでは、サイト単位でcontentプロセスを分離することによって、Spectre問題への対策とする。 / “Project Fission - MozillaWiki” https://t.co/LjbKftTgA1"
- Project Fission - MozillaWiki
Linux
- Mitigation Status by Kernel Version | Intel® Software
- 2018年1月10日 Linus,Intel相手に“おこ始め”―「メルトダウン」で幕開けの2018年:Linux Daily Topics|gihyo.jp … 技術評論社
- 2018年1月22日 Meltdown/Spectreの影響は大きく… Linus,Linux 4.15のリリースを1週間延期しRC9を公開:Linux Daily Topics|gihyo.jp … 技術評論社
- 投機的実行の脆弱性によるパフォーマンスへの影響: CVE-2017-5754、CVE-2017-5753、および CVE-2017-5715 に対するセキュリティーパッチによるパフォーマンスへの影響 - Red Hat Customer Portal
- Red Hat Enterprise Linux パラメーターで、CVE-2017-5754、CVE-2017-5715、および CVE-2017-5753 で提供されているマイクロコードおよびセキュリティーのパッチによるパフォーマンスへの影響を制御する - Red Hat Customer Portal
- LinuxカーネルにおけるMeltdownとSpectre問題の脆弱性対策が出来ているかどうかを調べるコマンド: Project Valkyrie
- OSがMeltdownとSpectreに対応しているか確認する | 普段使いのArch Linux
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「3年前のSpectre対策(Retpolines)で、Linuxのファイルシステム用AES暗号(AES-XTS)が 1/2~1/3に速度低下していたが、最近の数行パッチでほぼ回復という話。 https://t.co/2VNdIYbnFP」 / Twitter
- AES-NI XTS To See 2~3x Performance Recovery After Regressing Hard From Retpolines - Phoronix
BSD
- SpeculativeExecutionVulnerabilities - FreeBSD Wiki
- 第131回 影響範囲広大プロセッサバグ「Meltdown」と「Spectre」,各プロジェクトの対応現状ほか:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第133回 OpenBSD on iTWire:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第136回 FreeBSDのMeltdown/Spectre対策:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第137回 FreeBSDのMeltdown/Spectre対策,11系にマージ:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第138回 OpenBSD,Meltdown対策機能をマージ:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第139回 OpenBSD,Meltdownバイナリパッチ提供開始:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第142回 FreeBSD Meltdown対策機能による性能影響ベンチマーク:BSD界隈四方山話|gihyo.jp … 技術評論社
blog
- Meltdown, Spectre で学ぶ高性能コンピュータアーキテクチャ - FPGA開発日記
- コンピュータセキュリティと様々なサイドチャネル攻撃|Rui Ueyama|note
- Meltdown、Spectre、およびシスコのクラウド コラボレーション セキュリティ
- Spectre & Meltdown を防ぐマイクロアーキテクチャSafeSpecの論文を読む - FPGA開発日記
- 2015年以降のインテルCPUの脆弱性チェックプログラム - 発声練習
- 山市良のえぬなんとかわーるど: Intel マイクロコード アップデートが再配布?(自動的な再起動にご注意)
- CPU律速なRuby/Pythonコードはデフォルト設定のdocker上で遅くなる - まめめも
- 現行のSpectre防御を無効にする新たなエクスプロイト、修正はパフォーマンスに影響
- Google Online Security Blog: A Spectre proof-of-concept for a Spectre-proof web
News
- 【連載】新たな脅威 - SpectreとMeltdown | マイナビニュース
- Intel、第8~6世代CPUで脆弱性対策後のベンチマーク結果を公開 ~性能低下はおおむね数%以内 - PC Watch
- Intel、Sandy BridgeからKaby Lakeのシステムで“再起動問題”が発生中 ~投機実行脆弱性アップデートが影響 - PC Watch
- Intel、脆弱性対処でHaswell/Broadwellシステムが予期せぬ再起動をする原因を特定 - PC Watch
- Spectre/Meltdown脆弱性を利用したマルウェアが発見 - PC Watch
- Intel、Skylake向けのSpectre脆弱性対策マイクロコードの提供開始 ~Sandy Bridge以降向けも近く提供か - PC Watch
- Broadwell以前でも性能低下がほぼない「Spectre V2」対策がWindows 10に実装へ - PC Watch
- 「LLVM 6.0」リリース | OSDN Magazine
- SpectreとMeltdownの詳細
- CPU“脆弱性問題”の現状と対策 ~セキュリティは? パフォーマンスは? ユーザーへの影響を確認する - PC Watch
- 「Spectre」攻撃、インテルの「SGX」保護機能に影響 - CNET Japan
- 大原雄介のエレ・組み込みプレイバック:収束しない現代的CPUの脆弱性と、苦境を脱せないQualcomm (1/3) - TechFactory
- IntelのCPUに新たな8つの脆弱性が発見される、内4つは「高い危険性」との評価 - GIGAZINE
- 20180616
- Boffins offer to make speculative execution great again with Spectre-Meltdown CPU fix • The Register
- Your Title Here
- まさみさんは語りたいさんのツイート: "かなりストレートな解法ですが、まあそれしかないのかも。… "
- fjのYog教祖様さんのツイート: "シャドウキャッシュの管理の仕方次第ではあるだろうが、ほぼ間違いなく「シャドウキャッシュの内容による速度変化」を引きずり出す方法が発見されて終わるだけだと思う。… "
- まさみさんは語りたいさんのツイート: "そうですね。SpectreはL2以下のキャッシュの方が影響が大きい気がするんだけど、L1だけで大丈夫か??という。… "
- Debian10アートワーク募集中🍥さんのツイート: "IntelのCPUセキュリティバグ、どうやらIntelはDebianとOracleには事前に開示しなかった&Red Hat・SUSE・Canonicalには情報の共有を禁じていたようですね。いやはや。。。 https://t.co/0VWEyQLU51"
- Linus Torvalds talks frankly about Intel security bugs | ZDNet
- Debian10アートワーク募集中🍥さんのツイート: "結局、現在はきちんといつもどおりの情報共有ができるようになり対応がスムースになってるようなので、今回の件をハンドリングしたIntelの中の人がおかしな判断をした、ということなのですが。"
- IT業界を根幹から揺るがした脆弱性「Spectre」「Meltdown」はCPUのパフォーマンスにどんな爪痕を残したのか? - GIGAZINE
- FadisさんはTwitterを使っています 「Phoronixによる「各世代のCPUでCPUの脆弱性の対策を行なった場合と行わなかった場合で、どのくらい性能に差が出るか」を計測したベンチマーク。7ページ目のシステムコール、コンテキストスイッチが頻発するタイプのワークロードの場合が大惨事 https://t.co/hqVcWPTD5f」 / Twitter
- A Look At The CPU Security Mitigation Costs Three Years After Spectre/Meltdown - Phoronix
- Firefoxに「サイト隔離」機能が登場、「Spectre」「Meltdown」への根本的な対策に - GIGAZINE
GitHub
- mniip/spectre-meltdown-poc: A semi-demi-working proof of concept for a mix of spectre and meltdown vulnerabilities
- ryanlayer/giggle: Interval data structure
- crozone/SpectrePoC: Proof of concept code for the Spectre CPU exploit.
- lgeek/spec_poc_arm: Dump privileged ARM system registers from usermode using variant 3a of Meltdown
- paboldin/meltdown-exploit: Meltdown Exploit PoC
- ryoさんのツイート: "https://t.co/xzyDUqtftW だとN/core-i7でもkernel領域読めた。思ったより成功確立低い。というか特定のアドレスしか成功してないように見える。Intelの謎キャッシュポリシーの影響もあるんだろうなぁ。https://t.co/6kqdx398ux"
- HarsaroopDhillon/Meltdown: Meltdown POC
- Intel Ivy Bridge Cache Replacement Policy « Blog
- IAIK/meltdown: This repository contains several applications, demonstrating the Meltdown bug.
- lsds/spectre-attack-sgx: Spectre attack against SGX enclave
- GitMirar/meltdown-poc: A PoC implementation of the meltdown attack described in https://meltdownattack.com/meltdown.pdf
- ionescu007/SpecuCheck: SpecuCheck is a Windows utility for checking the state of the software mitigations against CVE-2017-5754 (Meltdown) and hardware mitigations against CVE-2017-5715 (Spectre)
- idea4good/spectre: Demo Spectre with 70 lines code
Qiita
- MeltdownとかSpectreとか騒ぎがあったので、Amazon Aurora(MySQL互換)R4インスタンス再テスト(mysqlslap) - Qiita
- LinuxコアメンバーによるMeltdownとSpectre 対応状況の説明 - Qiita
Wikipedia
- Spectre - Wikipedia
- Spectre (security vulnerability) - Wikipedia
- Spectre (security vulnerability) - Wikipedia
Twitter
dynamic function
- まさみさんは語りたいさんのツイート: "あー、休み中にSteveがdynamic functionとかいうのを作ってる。ちょっと調査中。 https://t.co/Q6cS65C7gG"
- [POC][RFC][PATCH 1/2] jump_function: Addition of new feature "jump_function"
- まさみさんは語りたいさんのツイート: "retpolineで遅くなるので、代わりに固定long jumpするトランポリンコードを作っておき、それを使う、というアイデアなんだろうか?なんかSpectre対策になら無さそうだけど。"
- まさみさんは語りたいさんのツイート: "多分これはtracepointがretpolineに置換されてしまうという問題に対する回答だけど、これだとalternativesで良くね??"
- まさみさんは語りたいさんのツイート: "またマルチスレッドで実行される場合でも、全スレッドを対象にして実行パスを書き換える用途でしか使え無さそうなので、spectreに対するgenericな解ではないと思う。強いて言えば、プレースホルダ付きoptprobeみたいなものへの置換。"
- まさみさんは語りたいさんのツイート: "同じツッコミをPeterZがしてた(笑)。… "
- まさみさんは語りたいさんのツイート: "あー、なるほど。合点がいった。関数コールをあとから埋め込もうとすると、引数を渡すコードを事前に生成しておかないといけない。それを作らせるために最小関数をアセンブラで作り、それをコールするコードをコンパイルすれば引数準備のコードは実装できると。"
- まさみさんは語りたいさんのツイート: "optprobeは性質上あとからレジスタなどを保存して参照できるようにするけど、これは呼び出し元で引数を保存する。本当にretpolineを避けるためだけの構造のようだ。"
- まさみさんは語りたいさんのツイート: "retpolineの問題は、対象となる間接参照呼び出しが、スレッドコンテキスト依存の呼び出しなのか、単にplugableな呼び出しなのかを区別せずに適用されてしまうこと。前者はretpolineが必要だが、後者はlivepatchで静的呼び出しに変更できる。これは後者の問題を解くもの。"
- まさみさんは語りたいさんのツイート: "Livepatchと違い、consistencyを考慮しないでいい部分についてはこの dynamic functionを使えば良いわけだが、そのためにjmpするトランポリンを設けなくても良いのではないか、というコメントを入れておいた。そもそもデフォルト関数を実装するならそれを変更したら良いと。"
Spectre
- さてはGentooだなオメーさんのツイート: "RHELがパッケージとして配布したSpectre variant 2対策のmicrocodeは一部環境で問題があったので差し戻し、今後RHELとしてvarant 2対策のmicrocodeをリリースする予定はない。CPU製造元に問… https://t.co/8Tm70ZTI2s"
- What CPU microcode is available via the microcode_ctl package to mitigate CVE-2017-5715 (variant 2)? - Red Hat Customer Portal
- Hajime Tairaさんのツイート: "一律同じ microcode を配ったところ、大量のメモリーを搭載できるハイエンドサーバーの一部に影響が出まして…。… "
- さてはGentooだなオメーさんのツイート: "恐ろしやー。ちなみにこのリンク先、英語は全公開なのに日本語は隠れてて悲しいです。… "
- まさみさんは語りたいさんのツイート: "IBPBって何かと思ったらIndirect Branch Speculation Barrierっていう新しいマイクロコードなんだね。ていうか、新しいマイクロコードの命令を直接使うコードが追加されたぞ・・・。"
- まさみさんは語りたいさんのツイート: "Spectre対策を色々探っていると非常に深い。この3週間ぐらいで色んなテクニックが試されている。んで、決定版になっているのがどれかと言うとよくわからない。"
- まさみさんは語りたいさんのツイート: "ひとつだけ確かなのは、Spectre V2対策は未だに決定版がなく、いくつかのテクニックを駆使して修正が行われている最中であり、しかもカーネルだけじゃなくユーザアプリも修正が必要で、コンパイラを変えるだけではなくソースコードも修正が必要になるっていうことで影響が大きい。"
- まさみさんは語りたいさんのツイート: "昨日出てきた新機能。IBPB https://t.co/9WrTuIzfCV AMD/Intelが導入した新しいマイクロコード命令を使うためのマクロ。MSR越しに呼び出すと、間接分岐命令の分岐先がロードされるまで、投機的実行を止めるものらしい。"
- LKML: KarimAllah Ahmed: [RFC 00/10] Speculation Control feature support
- Hiromichi Itouさんのツイート: "IBRSを利用するために必要なmicrocodeを導入すると再起動する確率が上がるという問題が解決していないので、代替案としてretpolineによる対策を準備しないといけない勢なので、先週からコンパイルばかりしている。"
- IntelによるSpectre対策のアップデート、Core iシリーズのほぼ全世代で不具合が出る可能性 | スラド セキュリティ
- Intel Sightings in ESXi Bundled Microcode Patches for VMSA-2018-0004 (52345)
- まさみさんは語りたいさんのツイート: "IBRSはSpectre V2向けのマイクロコードで提供される機能のようだが、プロセッサによってはうまく動かない模様なので、Retpolineによる緩和策を使うほうが低リスクかもしれん。やることは多くなるけど。"
- まさみさんは語りたいさんのツイート: "IBPBのパッチシリーズの先にIBRSの機能も追加されていた。IBRSはこれも新しいマイクロコードの機能で、Indirect Branch Speculationを止める。提出されたパッチではカーネル空間に入る時に全てのIBSを止めるっぽい。"
- まさみさんは語りたいさんのツイート: "RetpolineがあるからIBRSなんて要らないじゃーん?って思ったあなた、大体あってる。問題はRetpolineは半分コンパイラのお仕事になるんだけど、コンパイラが古いと対応できないこと、CONFIG_RETPOLINE=nでビルドされちゃうかもしれないことから、IBRSが必要になる。"
- まさみさんは語りたいさんのツイート: "Spectre V2緩和策のオプションとして、IBRSかRetpolineかを選べるようになる模様。基本的にはAutoでいいけど、コンパイラの更新(Retpoline)か、マイクロコードの更新(IBRS)をした上で、カーネルの再構築が必要になる。"
- まさみさんは語りたいさんのツイート: "おっと、重要な情報です。この脆弱性はLivepatchでは対処できません。"
- まさみさんは語りたいさんのツイート: "たしかにこのシリーズ、indirect_branch_prediction_barrier(IBPB)と(un)restrict_branch_speculation(所謂IBRSの有効・無効コード)が混ざっていて分かりにくいんだよね。最初の4つはIBPB、後の6つはIBRSで、それぞれ使う所が違う。"
- まさみさんは語りたいさんのツイート: "両方共Intel/AMDがマイクロコードでSpectre V1とV2に対応しようとして追加した機能なんよ。"
- まさみさんは語りたいさんのツイート: "ごめん、IBPBもIBRSもIndirect Branchを安全にするためだからどっちもSpectre V2向けだった。"
- まさみさんは語りたいさんのツイート: "もしかして、ARMはSMTサポートしていないから、スレッド間でBTBを共有する可能性がないので、Spectre V2対策はプロセス間とプロセス/カーネル間で逐次BTBフラッシュするだけでOKなのか?"
- satさんのツイート: "SpectreとMeltdownはモノがモノだからしゃあないんだが、ソフトの対策、石の対策が入り混じってて何が何だかわかりにくい"
- まさみさんは語りたいさんのツイート: "ソフトウェアの緩和策は可能だけど適用されるのに時間がかかるし、石の緩和策もソフトウェアの更新は必要だし型番によってはリスクもある。ハイブリッドで環境によって選んでくださいっていうのをもりもり入れているのが現状ですね。… "
- satさんのツイート: "これ、こないだひらまつさんがついーとで言及してたamazonのような情報が集まる位置に居続ける企業でなければ、相当対応がキツいでしょうね… "
- まさみさんは語りたいさんのツイート: "IBPBとIBRSについては、ハードウェア(マイクロコード)側で妥協できるならあのラインだろうと思うので、機能が無意味だとは思わない。 が、あんなものでお茶を濁そうとしてるなら、Linusのように怒っていい。いずれにしても新しい世代ではもっとスマートなBTBを導入する必要がある。"
- まさみさんは語りたいさんのツイート: "Hyperthreadに対応したBTBと、リングによってBTBを切り替える機能、およびページテーブル切り替え時にBTBを消去する機能があれば、全体的な性能の低下はあってもV2対応は可能だろう。"
- まさみさんは語りたいさんのツイート: "めんどくさいのはV1対応なんだよなー。リタイアしてない命令が引き起こしたキャッシュアクセスをなかったことにする、とかが根本解決になるけど、これはめんどくさそう。"
- まさみさんは語りたいさんのツイート: "IBPBのパッチは最終的に取り込まれた模様?ちゃんと追いかけないとだけど、IntelかあらIBPBシリーズ前提で拡張パッチが出されている。"
- Re: [PATCH 2/2] x86/speculation: Support "Enhanced IBRS" on future CPUs — Linux Kernel
- まさみさんは語りたいさんのツイート: "https://t.co/3HeYfQA9Wp Intelの今後の動向がすけて見えるコミット"
- [PATCH 2/2] x86/speculation: Support "Enhanced IBRS" on future CPUs — Linux Kernel
- 高梨陣平さんのツイート: "VancouverでのLinuxカンファレンスにおいてLinusが対談。IntelのCPUの脆弱性Spectreについて語った。彼は投棄実行自体には問題が無くやるべきで、やるべきでない問題のある投棄実行も知られていたと語った。Intelの当初の対応は酷く彼は自分達が原因でないのに働くのは不公平に感じたと主張(続… https://t.co/lBFzbaEATS"
- 高梨陣平さんのツイート: "2つ、3つしか存在しなかったと振り返った。SpectreのLinusに対する影響は多大で4.19のマージウィンドウは通常、2週間で終わるものの、公開できないパッチを含んだためにとてもストレスの大きなものだったと述べた。しかしこの問題を超えて良い結果としてLinuxとWindwosの開発者がCPU脆弱性について協力"
- 高梨陣平さんのツイート: "できるようになったとKroah-Hartmanは述べた。我々は素晴しい裏ルートを手に入れた。御互いに議論し、バグを潰していると言う。5年前に誰が予想できただろうか?(終)"
- まさみさんは語りたいさんのツイート: "うーむ、static callのパッチをレビューしようとしたけど、前提条件として役に立つかというと微妙すぎるのでコメントしづらい。indirect callがretpolineのせいで遅くなるのでstatic callに自己書き換えしようという話だけど、適用先が限定的すぎる(コンテキスト依存な場所では使えない)。"
- まさみさんは語りたいさんのツイート: "コンテキストに依存しないindirect callってどれだけあるのかというと微妙すぎるし、pv_opsぐらいかなあ。tracepointは関数の引数を準備するところをスキップするjump labelを使っているので意味がある。"
- まさみさんは語りたいさんのツイート: "jump labelと併用すればいいんだっけ?いや、ないか??"
TLB
- まさみさんは語りたいさんのツイート: "うーん、speculative page table walker問題というのがあり得るのか。投機的にTLBをフィルする挙動がテンポラリにマップしたページをTLBにキャッシュするらしい。"
Linux
- とみながたけひろさんのツイート: "Linuxといえどもガチヤバい脆弱性だったらコア開発者だけで公開MLとかなじゃない、非公開のメールのやり取りでパッチ作成するよね…しないのかな(←わかってない)"
- KOSAKI Motohiroさんのツイート: "もちろん非公開でやります。非公開MLでだけ、なぜやばいのかを「具体的に」説明してLinusの承認をもらいます。というか、securityをハンドルするMLはコア開発者もあんまり入ってなくて専業メンテなとdistro security屋がハンドルしつつ、関係ある人が個別にCCされて… https://t.co/o7mJ87X2Xu"
- とみながたけひろさんのツイート: "@kosaki55tea なるほど。パッチができることよりもパッチを適用することのほうが困難かつ重要だったりするので、そういう運用になるのはよくわかります"
- Kazuki Oikawaさんのツイート: "Threadripper + 4.14.14 bugs: sysret_ss_attrs null_seg spectre_v1 spectre_v2… "
- Kazuki Oikawaさんのツイート: "あ、/proc/cpuinfoの情報もいつの間にか変わってた bugs : cpu_meltdown spectre_v1 spectre_v2"
- このコード、オシャカルトっ!さんのツイート: "/proc/cpuinfoのbugs欄の出方が変わってる 前 bugs : cpu_insecure 4.14.13-300.fc27 bugs : cpu_meltdown spectre_v1 spectre_v2"
- このコード、オシャカルトっ!さんのツイート: "φ(..)メモメモ sysfsの/sys/devices/system/cpu/vulnerabilitiesというディレクトリにcpuの脆弱性情報があるということを知った… "
- まさみさんは語りたいさんのツイート: "KPTI有効にしたカーネルつかっても、デスクトップだとそれほど有意な違いを感じない。多分グラフに取ってないとわからない。"
- まさみさんは語りたいさんのツイート: "PTIはCONFIG_PAGE_TABLE_ISOLATIONで、Security optionsに含まれているがデフォルトで有効になる。"
- henrichさんのツイート: "いやいや、マイナーリリースごとにバイナリリビルドするバイナリディストロなんて聞いたことないんですが。。。… "
- henrichさんのツイート: "私が知らないだけで実は存在してるのかしら?(開発版をFTBFS洗い出しでビルドし直しはテストとして実施はするだろうけど。。。)… "
- hitoさんのツイート: "しない状態で今まで来ていて、「Repolineするためにはもしやこれは全部リビルドしてリリースせんといかんのではQAどうしよう」つーてみんな頭を抱えてる認識。… "
- henrichさんのツイート: "そう(リビルド)すべきもんだろ?という立場から言ってるのであれば、実施する際のトレードオフ考えたら妥当な結論(毎度リビルドしてリリースとかあり得んだろ)ということで… "
- Fadisさんのツイート: "現在Intel CPU上で動くLinuxはSpectre/Meltdown対策がデフォルトで有効だが、Atom N270等のin-order実行のCPUにはこれらの脆弱性は無いから、これらのCPUでは対策をデフォルトで無効にして貧弱なネットブックが不必要に更に貧弱になるのを防ごう、という提案がなされている https://t.co/xMyBKxG4kc"
- Spectre V2 & Meltdown Linux Fixes Might Get Disabled For Atom N270 & Other In-Order CPUs - Phoronix
microcode
HT, ベンチマーク
- インテルがセキュリティパッチの影響示すベンチマーク公表禁止に?--オープンソース界の著名人が批判 - ZDNet Japan
- Intel、脆弱性パッチ適用前後のベンチマーク比較禁止の規約を撤回 ただしパフォーマンスはお察しの模様 | ジサクテック
- Hideyuki Tanakaさんのツイート: ">Intelが沈黙の誓いを立てているのには、仮想マシンをForeshadowの脅威から保護するためにHyper-Threading機能をオフにする必要があり、それによりパフォーマンスに大きな影響が出るからである。 (´・_・`)なるほどなあ…"
- Hideyuki Tanakaさんのツイート: "IntelのHTはもう終わりです…(´・_・`)次の何とかレイクが8コア8スレは正解(´・_・`)Intel自身が一番分かってたんだな"
- Hideyuki Tanakaさんのツイート: "TLBleedだけじゃなくて今回見つかったForeshadowも結局HT無効化しか対処法がなくて、実質的にもう現アーキのHT死んでるんすね(´・_・`)"
- Tsuzuさんのツイート: "HTTって全然効果実感したことないんだけどそんなに効果あるんですかね"
- Hideyuki Tanakaさんのツイート: "(´・_・`)どーなんだろ?レイテンシ隠しには使えるんじゃないんすかね。僕が昔実感した例としては、めっちゃでかいメモリから二分探索を超大量に行うようなアプリでは、ほぼ演算器が回らないので、HTで性能倍になりましたけど、まあこんなのはよっぽどなケースですよね"
- Hideyuki Tanakaさんのツイート: "まあそれに最近はHT前提で平均的なコードの命令レベル並列性よりも多くの演算器搭載してるかもしれないし?いやあれ1スレで使い切れる前提なのかな?よーわからんすけど"
- Tsuzuさんのツイート: "いまいちどういう場面でHTTが効果を発揮するかわかってないんだけど、以前clangのビルドをした時は並列数を論理コア数でやるより物理コア数でやったほうが早かったので良くわからなかった"
- Hideyuki Tanakaさんのツイート: "clangのビルドとか整数演算器しか使わない上に、コンパイル自体はそんなに巨大なメモリを必要としないから、ほぼキャッシュに入って演算器もフルで回るようなタスクになってるんじゃないんすかね。あまりHTきかないタスクだと思う。"
- Hideyuki Tanakaさんのツイート: ">Solving these bugs requires new cpu microcode, a coding workaround, *AND* the disabling of SMT / Hyperthreading. 新しいバグ(TLBleedとT1TF)を解決するには、新しいマイクロコードと、コーディングワークアラウンド「と」、SMT/ハイパースレッディングの無効化を要する。 (´・_・`)とな"
- Hideyuki Tanakaさんのツイート: "https://t.co/AJLWIRLIt8 >Disable SMT/Hyperthreading in all Intel BIOSes >2018-08-23 18:35:22 (´・_・`)ふーん"
- Lucas Holtさんのツイート: "Performance is so bad on the latest spectre patch that intel had to prohibit publishing benchmarks https://t.co/Et8FfNr6EZ"
- Intel Publishes Microcode Security Patches With No Benchmarks Or Profiling Allowed - Slashdot
- まさみさんは語りたいさんのツイート: "よし、HTが使えない今がARMサーバ飛躍のチャンス・・・"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "1/5とはすごい速度低下。 でも、ページ単位かそれ以上でのまとまったI/Oだとすると(=TLBに優しく、ユーザ/カーネル間の遷移も多くない?)、MeltdownやSpectre対策がどう具体的に影響したのか、想像がつかない…… "
- SODA Noriyukiさんのツイート: "これ、仕事関係で問題になったことがあって、業務に差し支えるんですが… https://t.co/KAKhYw4JO6 meltdown/spectre のパッチ当てたら RAID の BBWC へ同期書き込み性能が 1/5 以下に低下したことがあった。"
- Hideyuki Tanakaさんのツイート: "(´・o・`)・・・。 / “Intel、マイクロコードアップデート前後のベンチマーク比較公開を規約で禁止へ | ジサクテック” https://t.co/fcdgMTSq3q"
- Intel、マイクロコードアップデート前後のベンチマーク比較公開を規約で禁止へ | ジサクテック
- SODA Noriyukiさんのツイート: "これは512バイト単位でO_BINARYモードで書き込む計測でした。そのマシンは(RDBじゃないんですが似たような)ジャーナリング・ファイルの書き込みがボトルネックになるので、write(2)がRAIDのメモリキャッシュに書き込む部分の性能が最重要で、システムコール性能の低下が強烈に出たようです… https://t.co/BX7RhItZCj"
- SODA Noriyukiさんのツイート: "あ、間違えた。O_BINARYじゃなくてO_DIRECTです。(O_BINARYってMS-DOS時代から数十年使ってないオプションなのに、なぜここで出てくるのか…^^;… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、小さなO_DIRECTはそれ自体でやたらと遅いですよね。(大きくするか非同期I/Oと組み合わせないと、実用的な速度にならない) でも、Meltdown/Spectre対策をすると、それも目でないくらい、write自体の(トランザクションの?)オーバーヘッドが大きくなると。 うーん、不思議…… https://t.co/6tRnbchfvK"
- SODA Noriyukiさんのツイート: "普通ならすごく遅いんですが、対象がジャーナルファイルで容量が限られていて、かつRAIDがバッテリバックアップつきのDRAMキャッシュを載せているので、この応用の場合に限ればやってることの本質はメモリコピーに過ぎず、すごく速いです。14000~19000 iopsくらい出てました。… https://t.co/DtTgv91Ft4"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、少し判りました。 それで、syscall自体のオーバーヘッドが分かり易く出てしまう、と。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そうだとしても、1/5はすごいなぁ。… "
- SODA Noriyukiさんのツイート: "1/5でも 3000iops 越えなので遅くはないんですが、遠隔地でのactive-standby 構成で性能が揃ってないと足をひっぱられるのに、standby側として予定していたほうを更新したらこうなっちゃって問題になってました…… "
- Kazuho Okuさんのツイート: "なんとですね。秒間syscall数がダイレクトにパフォーマンスに影響するネットワークサーバ系ソフトウェアで大きな問題になっていないことを考えると、単純にsyscallのオーバーヘッドではなく、なにかwrite+O_DIRECT特有の事情がありそうですね… https://t.co/c9M073GS0x"
- Kazuho Okuさんのツイート: "httpd とかだと 200k network io calls / sec.core くらい出るわけです"
- Intelプロセッサ向けマイクロコードアップデートのニュースをファクトチェック!:その知識、ホントに正しい? Windowsにまつわる都市伝説(117) - @IT
@utshina2
- 品川 高廣さんのツイート: "Meltdown はアウトオブオーダー実行、Spectre は分岐予測の実装の問題を突くという違いはあるけれど、どちらも本来権限のないメモリ読み込み命令を投機的に実行させて、その結果キャッシュに残ったサイドエフェクトから値を読み取るという点ではよく似ている。"
- 品川 高廣さんのツイート: "Meltdown は今のところ Intel CPU 固有の問題だけど、ユーザ空間から簡単にカーネル空間のメモリを読み出せる(多分JavaScriptとかでは難しい)。これを防ぐには、ユーザ空間とカーネル空間でページテーブルを分ける Kernel Page-Table Isolat… https://t.co/08pPUzRZVb"
- 品川 高廣さんのツイート: "Meltdown の本質ってC言語で書くとこれだけだよね。 a = *kptr; b = array[a<<12]; aにカーネルメモリの値が入って、arrayの対応する部分がキャッシュに乗る。もちろん例外を起こして実行は取り消されるけど、キャッシュはそのままなので、arra… https://t.co/PX1Em76srz"
- 品川 高廣さんのツイート: "Spectre のような投機的実行の脆弱性があるCPU上では、共有アドレス空間内で言語処理系の機能によって機密性を担保することは事実上不可能であるという主張ですかね。アドレス空間を分離するしかないと。https://t.co/uDgMpzYZ4a"
- [1902.05178] Spectre is here to stay: An analysis of side-channels and speculative execution
- 品川 高廣さんのツイート: "(1) タイマー機能(解像度によらず)と、(2) 投機的 pointer crafting を可能にする様々な言語機能(の実装)との組み合わせで、共有アドレス空間内の任意の1bitが読み込める universal read gadget が実現可能であると。これらを包括的に防ぐ方法は見つかっていない。"
- 品川 高廣さんのツイート: "この種の side-channel が生じる根本的原因は、CPUの1つの(外部)アーキテクチャ的状態が、複数の(内部)マイクロアーキテクチャ的状態にマップ可能であることであり、投機的実行をおこなう任意のCPUで起こりうる。これはCPUの設計上の欠陥というより、理論的な「計算」の基部にある問題であると。"
- 品川 高廣さんのツイート: "平たく言うと、Chrome の JavaScript エンジン V8 で Spectre 対策いろいろ頑張ったけど、もう無理だからあきらめるで、って感じ?"
- hrk先生さんのツイート: "これが原因でLLCのShareは止める方向に向かうのではないかと思います。Shareしていて、今後あるであろう種々のアタックに耐えられるとは思えないので。それだけで、CPU問題が解決するわけではないですが。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コア間でキャッシュを共有しないと…本当にそんな日が来るのかしらん?(SMT無効化くらいにしておいて欲しいなぁ)… "
- satさんのツイート: "まずはOpenBSDでLLC共有するコアは一個を除いて全部殺されるところあたりでしょうか… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "確かにありえそう。SMTを無効化した実績もあるみたいですし。 「OpenBSD、セキュリティ優先でハイパースレッディング機能を無効化」 https://t.co/O4m4rK98Uu… "
- satさんのツイート: "はい、それを念頭に置いてのコメントでした… "
@r0ktex1209
- るくすさんのツイート: "んん、バグというか仕様というか 結構前からある話だけどなー 特にWindowsカーネルとかはKASLRのエントロピーが低くて、初期から叩き台にされてたり"
- るくすさんのツイート: "@a4lg いえ、エントロピーは関係あるはずです。 https://t.co/hIVtE6P1aA これの事ですよね? 基本的にカーネルのロードされる場所の候補が絞れる前提かと。WinにせよLinuxにせよKASLRはスライドさせる感じの実装なんですよ。"
- るくすさんのツイート: "@a4lg まあ正直KAISERより、KASLRの実装を見直すのが本質的な対策かなと思ってます。まあかなり難しそうですが...."
- るくすさんのツイート: "@a4lg 読みました。 なーるほど。 あるアドレス変換に対してページレベル毎のキャッシュ情報が取れるから、幅優先的に探索していけるんですね。 これめちゃくちゃ強いっすね...."
- るくすさんのツイート: "普通に勘でも思いつかなかった.... 流石ac4lgさん.... 確かにこれで出来るならエントロピーは殆ど関係ない。"
- るくすさんのツイート: "出回ってるPoCの多くはbrute forceなんすよね でも言われてみれば確かに階層まで分かるなら、自明に枝刈りができる"
- るくすさんのツイート: "正直初めてKAISERのパッチ見た時は、ええこれまたLinus大激怒するんじゃないの.... だった。まあマージされるまでの細かい議論は追ってないから何ともだけど、パフォーマンス大低下させてまでやるべきなのかというか...."
- るくすさんのツイート: "KPTI(KAISER)はカーネルエリアをUnmapする事でサイドチャネルを防ぎますが、カーネルエクスプロイターにはあまり影響ないです。 こいつはあくまでユーザーモード実行中の話で、カーネルモード実行中は今まで通りユーザー空間がMapされたままのモデルだからですね。"
- るくすさんのツイート: "要するにret2usrもret2dirも基本的には今まで通り使えるはず。 そもそもKAISERの目指すモデルはARMアーキテクチャのTTB0/TTB1のような完全にユーザー/カーネルでテーブルが分離された"Stronger Kernel Isolation"モデルだったんだけど、… https://t.co/wZHTZiOrlF"
- るくすさんのツイート: "Intel CPUの性能低下、何がクリティカルな要因かまでは知らないけど、大体PCIDとかで何とかならないの?と思ったら、何とかなってる事例がMacなのね。"
- るくすさんのツイート: "KPTIはユーザー/カーネル空間を完全に排他的にマップする訳では無いんだけど、仮に完全排他"Strong Kernel Isolation"を実現するとどの程度パフォーマンスが落ちるかについてはGruss et al. https://t.co/TCTJEJMH7L に一応書い… https://t.co/jBTMGG1SrC"
- prefetch.pdf
- るくすさんのツイート: "なので、件の論文はおそらくPCID無効でやってる気がするんですけど、なんでこんなオーバーヘッド少なくなってるんだろう... わけわかんね..."
- ファッション自作OSマンさんのツイート: "その筋の専門家=るくすさん https://t.co/6hFDxuzvJO"
- るくすさんのツイート: "いやマジで、Spectre/Meltdownとその対策云々については一回その筋の専門家が真面目に検証,解説記事を書いた方が良い気がしてる。 今回のは特に、表面的にもそれなりに理解できてしまう内容だから、正直真に欲しい情報が書いていない事が多い。"
#x86opti
- とみながたけひろさんのツイート: "ああそうか、Spectreでページサイズぐらいの間隔にしてたのはページ境界をまたいだプリフェッチが働かないのを使っているのか。TLBのヒット差も入れるためかなあと思ってたんだけど、そっちだったのだな #x86opti"
- まさみさんは語りたいさんのツイート: "KPTIで処理速度が落ちる話、カーネル側の処理はこれまで通りじゃなかったっけ?ページテーブル切り替えでオーバヘッドはかかるんだけど、実際のアクセスについては出来るような。"
- まさみさんは語りたいさんのツイート: "Unixプログラムの場合Sigsegvは無視できるんだよね。"
- まさみさんは語りたいさんのツイート: "Meltdownは本当に大変な問題なんだよね。簡単に出来るから。 #x86opti"
- とみながたけひろさんのツイート: "本当にVariant3は怖いよなあ。SELinuxとかでプロセスの権限とか削りまくってもほとんど回避できないからなあ #x86opti"
- まさみさんは語りたいさんのツイート: "KPTIのオーバヘッドの話。ページテーブルの切り替えオーバヘッド+TLBフラッシュ、あとはTLBミスとかの増加か。"
- まさみさんは語りたいさんのツイート: "PCIDの話もするのかー。"
- まさみさんは語りたいさんのツイート: "INVPCIDがないとPCIDを使い回すことができなくなっちゃう(使いまわすと前のTLBとかそのまま使ってしまうので)ので使いようがないよな。 #x86opti"
- まさみさんは語りたいさんのツイート: "ああ、なるほど。TSXをつかったらシグナル関係ないからな。その前に実行失敗したかどうかが分かる。 #x86opti"
- とみながたけひろさんのツイート: "ああ、サイドチャネル攻撃、TSXが最速だったのか。現状イマイチTSXが有効利用されてないことを考えると、このままでは攻撃専用命令扱いになってしまうな…(ぉぃ #x86opti"
- まさみさんは語りたいさんのツイート: "通常 アクセス→例外→カーネルが処理→signal飛ばす→ユーザアプリに戻る TSX アクセス→TSXミス→TSXミスハンドラ(ユーザ定義)に飛ぶ"
- とみながたけひろさんのツイート: "TSX使えばシグナルハンドラに飛ぶまでもなく失敗したかどうかがわかるから爆速になる、ということかな #x86opti"
- shinichiro hamajiさんのツイート: "というか失敗は常にするけどシグナルハンドラで無視するよりTSXで無視した方が速いっていうだけの話じゃないかなと。TSXを手法の一部と言うの違和感ありました… "
- とみながたけひろさんのツイート: "https://t.co/2gHq6FSXnO シグナルハンドラが呼ばれるのは一緒だけどカーネルを経由しない、ということか。なるる"
- satさんのツイート: "TSX: 503KB/s signal handler: 123KB/s です。数倍程度早いです P12 #x86opti https://t.co/f9iXXJg3XW… "
- satさんのツイート: "最適化勉強会、客層が読めなかったので前提知識として - サイドチャネルアタック - Flush+Reload攻撃 - 分岐予測による投機的実行 - OoO実行 あたりを説明したんだけど、その間半分くらいの人の目からハイライトが消えてたので「なるほどね?」っておもった"
- ほろころさんのツイート: "Branch Predictionの機能を既に知っているか否かによりますね。 https://t.co/j2zLG3H26t"
- x86/x64最適化勉強会8 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
- まさみさんは語りたいさんのツイート: "variant5も打ち込んできたなー"
- まさみさんは語りたいさんのツイート: "そういえばgregがspectreで上げた脆弱なコードの例は、脆弱性にならないんだよね。話はもっとややこしい。2つの異なる配列をアクセスしないと、結果が読み取れないからね。"
- Thread Reader Appさんのツイート: "Saluti you can read it here: Thread by @ogawa_tter: "Meltdown, Spectreで学ぶ高性能コンピュータアーキテクチャ、 @dev_msyksphinz 、2018/1/6 https://t.co/9fA0aWza4I… 勉強になります 分岐予測 d […]" https://t.co/HtrV9pxEoC Have a good day. 🤖… https://t.co/6b7uIIPICx"
- OGAWA, Tadashiさんのツイート: ".@satoru_takeuchi @mhiramat @n_soda @houmei HPCアプリケーション (WRF/GROMACS/NAND/GSI) での Meltdown/Spectre Patchesの影響について、 TACC (Texas Advanced Computing Center) の報告です https://t.co/CBAQtk1YXk IXPUG (2018/3/5): Intel eXtreme Performance Users Group"
- まさみさんは語りたいさんのツイート: "CD/DVDのデバイスIOについてカーネル内の配列を直接悪用するspectreのexploitを読んで、これだとユーザ空間から直にindexを渡される配列のアクセスについてはすべからく危険だなあと思った。 https://t.co/ViUQBwvHiQ"
- linux-exploit/leak_pkt_devs.c at master · jinb-park/linux-exploit
- まさみさんは語りたいさんのツイート: "ユーザ空間のメモリをキャッシュアウト→カーネルの配列アクセスに巨大な値を埋め込んで投機的実行させ、キャッシュが乗るかどうかを確認→キャッシュが乗ったら、その配列のvaddrが確認できる。これはカーネルのデータがリークするわけじゃないけど、アドレスはリークするのでKASLRを破れる。"
- まさみさんは語りたいさんのツイート: "Spectreを使ってカーネル内のデータを取得するには2つの配列アクセスが必要で、ほとんど無理ゲーだけど、カーネル内のアドレスを取得するだけなら1つの配列アクセスだけで済むので、結構簡単に出来てしまう、という話。"
- suzakiさんのツイート: "NDSSマルウェア五つ目。マルウェアを隠すためにSpectreを使うExSectreの発表(Colorado Bouder)。実行を検出することできず、またCPUの状態を覗いてもわからない。 ASN-NI命令がガジェットに使えるのが面白い。Loadは使えるが、Storeはダメ。またsyscallは使えない。 https://t.co/gcfcYmv2eZ"
- ndss2019_02B-5_Wampler_paper.pdf
- suzakiさんのツイート: "確かSpectreをcovert Channelに使う研究があったけど同じ系統ですね。 そういえば、ARM TrustZoneのCovert ChannelであるPrime+Countの発表がACSAC18であった。"
- Spectre/Meltdownとその派生
- security rhel disable - retpolineとは何ですか?どのように動作しますか? - CODE Q&A 問題解決
- Kazuho Okuさんのツイート: "retpoline「Spectreは俺が倒した」Intel「ペナルティが必ずかかると思ってた?馬鹿め」retpoline「ぐぬぬ」って流れじゃなかったでしたっけ… "
- _ko1さんのツイート: "え、そういう話だったんだ(全然調べてない)。call cache があるとかないとか。… "
- Kazuho Okuさんのツイート: "return address stackがret命令の分岐先予測に失敗したら、確実にストールするというのがretpolineの設計の前提なんだけど、最近のIntel CPUだと別の予測も組み合わせているのでそうとは限らないみたいな話だったような気がするなーと… "
- _ko1さんのツイート: "まじすか最近のプロセッサすげーな… "
- Kazuho Okuさんのツイート: "もともと https://t.co/rnFUx2bnP4 みたいな話はあるのですが、これ以外になんのために、なにをやってるんでしょうね… "
- はじめてのにき(2010-07-06)
- Kazuho Okuさんのツイート: "そういえば、関数ポインタを nullable にして if (p) (*p)() とやるより、non-nullable にして空関数を (*p)() にするほうが速いことがあるって @herumi さんが言ってたのも、call-ret使ってeip取るイディオムを最適化する関係なのかなぁ"
- Kazuho Okuさんのツイート: "あーそうか Intel CPU が RET 命令について Return Stack Buffer 以外にも分岐予測を組み合わせてるって件、例外処理とかコンテクストスイッチでずれてフラッシュした際のバックアップなのかなと考えると納得いく"
- Kazuho Okuさんのツイート: "分岐「先」予測"
- KOSAKI MotohiroさんはTwitterを使っています 「Intelは性能劣化するパッチは全ベンダが性能劣化する形で作ってきますね」 / Twitter
- matsuuさんはTwitterを使っています 「KVMにおいてIntel CPUの脆弱性対策パッチが、必要ないはずのAMD CPUにも適用されており性能劣化がおきているらしい。oh。今後修正&バックポートされる見込み。 / “Linux KVM Virtualization Had Mistakenly Been Applying L1TF Workaround To Unaffected CPUs - Phoronix” https://t.co/empisPTwjN」 / Twitter
- ChromeとFirefoxの新しいCOOPとCOEPはセキュリティを高めるクロスオリジンポリシー
SPOILER
- インテル製チップに新たな脆弱性「SPOILER」--AMD、armにはない固有脆弱性。: なんとなく綴ってみた
- インテル製チップに新たな脆弱性「SPOILER」--修正は困難との指摘も - CNET Japan
- 1903.00446.pdf
- Fail-Safe C: Top Page
Checked C
- Checked C - Microsoft Research
- Microsoft/checkedc: Checked C is an extension of C that adds bounds checking to C. This repo contains the specification for the extension, test code, and samples.
- Microsoft、C言語を拡張する「Checked C」を開発中 | マイナビニュース
- Microsoft、C言語を拡張した「Checked C」をオープンソース化 | スラド デベロッパー
- Microsoft、C言語に静的/動的チェック機能を加えた「Checked C」を公開 | OSDN Magazine
- LLVMを拡張してメモリ空間安全性をCで実現するChecked C
- Security | すなのかたまり | ページ 2
ASLR Cache(AnC)
- 既存のx86/ARM CPUほぼ全てに通用するJavaScript攻撃が発見される ~アドレス空間配置のランダム化を突破 - PC Watch
- JavaScriptでASLRを無効化する攻撃「AnC」 | スラド セキュリティ
- vusec/revanc: Reverse Engineering Page Table Caches in Your Processor
ASLR Cache
- int $0x03@SNS部さんのツイート: "cpuの分岐予測のキャッシュ機能がASLRをバイパスするキーになると / “121412” https://t.co/sX6tgMiVHB"
- Bypassing ASLR in 60 Milliseconds | Threatpost | The first stop for security news
Stack Smashing Protection
- 単純なスタックバッファオーバーフロー攻撃をやってみる - ももいろテクノロジー
- Buffer overflow protection - Wikipedia
- Stack Smashing Protector - OSDev Wiki
- 000013695.pdf
- stack smashing | スタック破壊 - Qiita
- Stack-smashing Protection (SSP) - OWASP
- Security Technologies: Stack Smashing Protection (StackGuard) - Red Hat Customer Portal
- What is the meaning of "Stack smashing protect failure"? · Issue #1455 · espressif/arduino-esp32
- Prevent Stack-Smashing Attacks - Network Security Hacks [Book]
- ubuntu - is stack-smashing protection on on Debian? - Unix & Linux Stack Exchange
- FadisさんはTwitterを使っています 「stack protectorのカナリアはexec毎に異なる値になるが、forkしただけでは変わらないため、子プロセスに通信の相手をさせて子プロセスが落ちたら親プロセスが作り直すようなサーバアプリケーション(よくある)では子プロセスのスタックを破壊して漏らしたカナリアの値が、次の一撃に使える、と」 / Twitter
Automatic Fortification
- バッファオーバーフローへの対策技術入門
- 2017年10月25日のtwitterセキュリティクラスタ – twitterセキュリティネタまとめ
- Advances in Information and Computer Security: 13th International Workshop ... - Google ブックス
- Fortification of IT Security by Automatic Security Advisory Processing - IEEE Conference Publication
- Bread and Its Fortification: Nutrition and Health Benefits - Google ブックス
- gcc4 on cygwin - BOOLEANLABEL
Pwn入門
- Fadisさんのツイート: ". @megumish さんの「Pwn入門」が始まります #kernelvm"
- Fadisさんのツイート: "Pwnとは: サーバを攻撃して制御を奪う。シェルとかを実行する #kernelvm"
- Fadisさんのツイート: "メモリ上の命令列を書き換えるのがPwnを行う最も簡単な方法だが、今日のプロセッサではメモリ領域に対して行える操作が設定されていて普通は実行可能バイナリを直接書き換える事はできない #kernelvm"
- OS作れないマン 技術書典3 あ11企さんのツイート: "Pwnするにはメモリの値を書き換えたい。そのためにバッファオーバーフローや書式文字列の攻撃を使うわけか。ROP(Return Oriented Programming)もその一つ。 #kernelvm"
- Fadisさんのツイート: "バッファオーバーフロー、ROP、Format String Attackなどを使ってPwnを行う #kernelvm"
- Fadisさんのツイート: "スタックの変数の範囲外に書き込める不具合があるとリターンアドレスを書き換えられる→retで実行可能バイナリの好きなところに飛ぶ事ができる #kernelvm"
- OS作れないマン 技術書典3 あ11企さんのツイート: "ASLRがあるとスタック領域の場所がわからないので、.bss領域を使う #kernelvm"
- Fadisさんのツイート: "バッファオーバーフローでリターンアドレスが.bssを指す状態にしてbssにシェルコードを書いておく → NXbitが有効に使われているとこの方法は使えない → そういうときはROP #kernelvm"
- Fadisさんのツイート: "任意のサイズのmallocが可能 かつ Heap Over Flowができる状況では File Stream Oriented Programmingが可能になる #kernelvm"
- Fadisさんのツイート: "発表者「正しく知識として身につけるためにはmallocの実装を理解する必要がある」 #kernelvm"
- OS作れないマン 技術書典3 あ11企さんのツイート: "小崎先生のmalloc動画を見ていたお陰でmain arenaが何なのかはなんとなく分かるぞ。見といてよかったmalloc動画。 #kernelvm"
Beyond Zero-day Attacks
- Beyond Zero-day Attacks - @IT
- 脆弱性と攻撃をめぐる事件と話題 (1/2):Beyond Zero-day Attacks(1) - @IT
- スタックに対する攻撃とその対策 (1/3):Beyond Zero-day Attacks(2) - @IT
- ヒープに対する攻撃とその対策 (1/3):Beyond Zero-day Attacks(3) - @IT
- Use After Freeとヒープスプレー (1/3):Beyond Zero-day Attacks(4) - @IT
- DEPの仕組みとその回避手法 (1/3):Beyond Zero-day Attacks(5) - @IT
Wikipedia
- Transient execution CPU vulnerabilities - Wikipedia
- Hardware security bug - Wikipedia
- Return-oriented programming - Wikipedia
- Sigreturn-oriented programming - Wikipedia
- JIT spraying - Wikipedia
GIGAZINE
- Appleが「プライバシー上の懸念あり」としてSafariへの一部ウェブAPIの実装を拒否 - GIGAZINE
- HDDのコントローラーをハッキングするとデータの傍受やHDD基板へのLinuxインストールが行える - GIGAZINE
- Microsoftがオープンソースの機械学習セキュリティフレームワークをリリース - GIGAZINE
- ソフトウェアの「パッケージ」を利用してAppleやPayPalなどの大企業をハッキングする方法とは? - GIGAZINE
- 技術革新が世界にもたらす危機とは? - GIGAZINE
- Googleがオープンソース脆弱性のデータベースをPythonやGoにまで拡大 - GIGAZINE
- Mozillaが「スパイウェアを見つける方法」を解説 - GIGAZINE
- Did you hear about Apple’s security vulnerability? Here’s how to find and remove spyware.
スライド
- "どこ"から脆弱性を発見するか
- セキュリティとプログラミング
- スタックの歩き方 - Speaker Deck
- マクロな視点から捉える Web セキュリティ / Web Security from the Macro Perspective - Speaker Deck
- 趣味と実益のための著名なOSSライブラリ起因の脆弱性の探求/seccamp2021-b5 - Speaker Deck
- 君のセキュリティはデプロイするまでもなく間違っている #CICD2021 / CICD Conference 2021 - Speaker Deck
- SPAセキュリティ入門~PHP Conference Japan 2021
- IoTセキュリティ概観 (供養)
- AWSセキュリティは「論理」に訊け! Automated Reasoning の理論と実践 - ログミーTech
PDF
- 嶋田 創のページ
- Microsoft PowerPoint - lecture_slide0525_rev05.pptx - lecture_slide0525_rev2.pdf
- Microsoft PowerPoint - lecture20160524v03.pptx - lecture20160524_1up_rev1.pdf
- Microsoft PowerPoint - lecture0427_rev06.pptx - lecture_slide0427.pdf
- Microsoft PowerPoint - IScompendium2016rev13.pptx - IScompendium2016.pdf
blog
Project Zero
- Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
- Project Zero: Searching statically-linked vulnerable library functions in executable code
- Project Zero: Bypassing Mitigations by Attacking JIT Server in Microsoft Edge
- Project Zero: Trashing the Flow of Data
- Project Zero: Déjà vu-lnerability
- Project Zero: Hunting for Bugs in Windows Mini-Filter Drivers
- Googleの脆弱性発見チーム「Project Zero」が開示ポリシーを変更、パッチ適用までの猶予が設けられる - GIGAZINE
- Project Zero: Policy and Disclosure: 2021 Edition
- Project Zero: Fuzzing Closed-Source JavaScript Engines with Coverage Feedback
ももいろテクノロジー
- WindowsでIDT overwriteによる権限昇格をやってみる - ももいろテクノロジー
- IAT書き換えによるAPIフックをやってみる - ももいろテクノロジー
- ROP検知手法RAPについてまとめてみる - ももいろテクノロジー
- JIT-ROP緩和手法Heisenbyteについてまとめてみる - ももいろテクノロジー
- x64でDynamic ROPによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
- x64でROP stager + Return-to-dl-resolve + DT_DEBUG readによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
- ROP stager + Return-to-dl-resolve + DT_DEBUG readによるASLR+DEP+RELRO回避 - ももいろテクノロジー
- ROP stager + read/writeによるASLR+DEP回避 - ももいろテクノロジー
- ROP stagerによるシェルコード実行をやってみる - ももいろテクノロジー
- Shuffler: Fast and Deployable Continuous Code Re-Randomization の紹介 - 脱力系日記
- Shuffler: Fast and Deployable Continuous Code Re-Randomization | USENIX
- osdi16_slides_williams-king.pdf
- Amazon EC2のGPUインスタンスでハッシュ解読をやってみる - ももいろテクノロジー
- Pythonでネイティブコードを実行する - ももいろテクノロジー
- glibc malloc exploit techniques - ももいろテクノロジー
- plain RSAに対するLSB decryption oracle attackをやってみる - ももいろテクノロジー
- The Malloc Maleficarum (Bugtraq 2005) - ももいろテクノロジー
- Exploit系複合テクニックのメモ - ももいろテクノロジー
- 「Can We Prevent Use-after-free Attacks?」というタイトルで発表した - ももいろテクノロジー
- Can We Prevent Use-after-free Attacks?
- x64でSigreturn Oriented ProgrammingによるASLR+DEP+RELRO回避をやってみる - ももいろテクノロジー
- Windows x64でReturn-oriented Programming(ROP)によるDEP回避をやってみる - ももいろテクノロジー
- Windowsでnon-ASLR DLLを利用したROPによるDEP回避をやってみる - ももいろテクノロジー
- ROP stager + Return-to-dl-resolveによるASLR+DEP回避 - ももいろテクノロジー
yohgaki's blog
OWASP
- 2017年版OWASP TOP 10 – yohgaki's blog
- 2017年度版 OWASP TOP 10 で変るWebセキュリティのルール – yohgaki's blog
- OWASP Secure Coding Practices – Quick Reference Guide – yohgaki's blog
- OWASP Secure Coding Practices – Quick Reference Guideの訳語 – yohgaki's blog
- OWASP TOP 10のセキュリティ対策 – yohgaki's blog
- 知っておくべきITセキュリティ概念Top 10 〜ショート版〜 – yohgaki's blog
- 当たり前?非常識?開発者必修のセキュリティ概念 Top 10 – yohgaki's blog
構造・原理・原則・基本・基礎
- セキュリティの原理、原則、ベストプラクティス – yohgaki's blog
- 攻撃可能面の管理 – セキュリティの基本 – yohgaki's blog
- アプリとライブラリの違い – セキュリティの基礎 – yohgaki's blog
- プライバシーの8原則 – yohgaki's blog
- ITセキュリティ対策の構造化 – yohgaki's blog
- アプリケーションのセキュリティと必要十分条件 – yohgaki's blog
- セキュリティを論理的に構築する方法 – yohgaki's blog
- 究極のセキュリティ要求事項とは? – yohgaki's blog
分析
- データフロー分析とセキュリティ – yohgaki's blog
- 無視されているリスク分析 – yohgaki's blog
- リスク分析とリスク対応をしよう – yohgaki's blog
脆弱性・攻撃
- まだ誰も知らない脆弱性/攻撃に備える方法 – yohgaki's blog
- コード”だけ”に着目すると脆弱性が量産される – yohgaki's blog
- 脆弱性を呼ばれた側の責任にする、は通用しない – yohgaki's blog
- インジェクション攻撃は3種類ある – yohgaki's blog
対策
- セキュリティ対策が論理的に正しいか検証する方法 – yohgaki's blog
- OSコマンドのエスケープ – yohgaki's blog
- JavaScript文字列のエスケープ – yohgaki's blog
- そもそもエスケープとは何なのか? – yohgaki's blog
- 完全なSQLインジェクション対策 – yohgaki's blog
- JSONのエスケープ – yohgaki's blog
- PHPとXML eXternal Entity(XXE)対策 – yohgaki's blog
- 本当にプリペアードクエリだけを使っていますか? – yohgaki's blog
- クロスサイト攻撃からローカルネットワークのシステムを守る簡単な方法 – yohgaki's blog
- PHPのHTMLエスケープ – yohgaki's blog
- validate-phpのPHPスクリプト版 – yohgaki's blog
- hash_hkdf()でわざわざバイナリキー/バイナリSaltを使うことに意味はない – yohgaki's blog
- SQLクエリと識別子エスケープの話 – yohgaki's blog
- PHPでCSRF対策を自動的に行う方法 – yohgaki's blog
- ソーシャルメディアフィンガープリントとその対策 – yohgaki's blog
- ”雑”なソフトウェアセキュリティ対策 – yohgaki's blog
- データのセキュリティ対策が無いセキュリティ対策?! – yohgaki's blog
- 実は知られていない?リスク対策の原則? – yohgaki's blog
- 出力対策の3つの役割 – yohgaki's blog
- PHPセッションとSameSiteサポート – CSRF, XSS対策 – yohgaki's blog
- 何故こうなった?プログラムの動作原理を無視したセキュリティ対策 – yohgaki's blog
認証
- 間違いだらけのHTTPセッション管理とその対策 – yohgaki's blog
- 解答:まちがった自動ログイン処理 – yohgaki's blog
- 今すぐできる、Webサイトへの2要素認証導入 – yohgaki's blog
バリデーション
- Yasuo Ohgaki (大垣靖男)さんのツイート: "結局ところ、セキュリティホールを無くそう、と考えて作るよりも、正しく動く事を保証しよう、考えて作る方が近道。 #セキュアコーディング"
- バリデーションには3種類のバリデーションがある 〜 セキュアなアプリケーションの構造 〜 – yohgaki's blog
- バリデーションですべきこと – yohgaki's blog
- エンジニアなら分かる文字エンコーディングバリデーションの必要性 – yohgaki's blog
- 数値のバリデーションは無意味なのか? – yohgaki's blog
- 入力値の種類は3種類しかない – yohgaki's blog
- 出力対策の3原則 – yohgaki's blog
- ”形式的検証”と”組み合わせ爆発”から学ぶ入力バリデーション – yohgaki's blog
- 入力バリデーションで許可した文字で発生するリスク – yohgaki's blog
- 入力バリデーションが甘いソースコードの検査は本当に大変 – yohgaki's blog
- ドイツ人と入力バリデーションについて議論した話 – yohgaki's blog
- 入力データのバリデーションを簡単に 〜 Validate for PHP 0.7.0 – yohgaki's blog
- ゼロトラストとフェイルファースト – yohgaki's blog
- 「フェイルセーフ」とは何なのか? – yohgaki's blog
- データ検証をしない仕様には「脆弱性名」を付けた方が良いのでは? – 未検証入力 – yohgaki's blog
アンチプラクティス
- ベストプラクティスもどきのアンチプラクティス TOP 10 – yohgaki's blog
- 「脆弱性を局所的に潰す」はアンチプラクティス – yohgaki's blog
- 第一のソフトウェアセキュリティ原則さえ普及しない最大の理由とは? – yohgaki's blog
- ホワイトリスト派とブラックリスト派 〜 セキュアコーディングが行われない理由 – yohgaki's blog
- 「出力対策だけのセキュリティ設計」が誤りである理由 – yohgaki's blog
- ソフトウェアは「入り口ノーガード設計」のままで良いのか? – yohgaki's blog
プログラミング言語
- X-Content-Type-Options: nosniff はIE以外にも必要 – yohgaki's blog
- JavaScriptでインジェクションリスクがある関数/機能など – yohgaki's blog
- PHPの危い関数リスト – yohgaki's blog
- JSONPは危険なので禁止 – yohgaki's blog
- PHPのserialize()/unserialize()を安全に利用する方法 – yohgaki's blog
- セキュアコーディングは言語を問わず適用できる – yohgaki's blog
- PHPのPharを使ったコード実行 – yohgaki's blog
- PHP 5.6.38他で修正された任意コンテンツ送信脆弱性について – yohgaki's blog
- PHP用のCookieセッションセーブハンドラー – yohgaki's blog
- Railsのリモートコード実行、今昔 – yohgaki's blog
- Risk of the session adoption – yohgaki's blog
- PHP 7.3 – yohgaki's blog
設計・コーディング
- プログラムから「想定外」を無くす方法 – yohgaki's blog
- 構造化設計とセキュアコーディング設計の世界観は二者択一なのか? – yohgaki's blog
- コマンド実行時、コマンドと引数を分離すれば完璧? – yohgaki's blog
- 命令と引数を分離すれば安全、と考えてしまう”とんでもない誤解”はどこから生まれるのか? – yohgaki's blog
- 今さら聞けない「コード」と「データ」の話 – yohgaki's blog
- 今のソフトウェアセキュリティが不十分である原因とは? – yohgaki's blog
- 正しく動作するソフトウェアの作り方 – yohgaki's blog
- APIを過信するとおかしな事になる例 – SAML認証成り済まし – yohgaki's blog
- プログラミングを覚えたら先ず知るべきコーディングプラクティス – yohgaki's blog
- データのコンテクスト – セキュリティ対策の基本 – yohgaki's blog
- セキュリティに拘ってもセキュアにならない – 開発環境セキュリティ – yohgaki's blog
- 開発者の自由を許容するセキュリティ、自由を束縛するセキュリティ – yohgaki's blog
- セキュアコーディングの構造/原理/原則 – yohgaki's blog
- ファイルパスを安全に出力可能か? – yohgaki's blog
RDBMS
- RDBMSから学ぶデータセキュリティ – yohgaki's blog
- PostgreSQLの文字列型の最大長は? – yohgaki's blog
- SQLインジェクション対策保証付きソースコード検査はじめました – yohgaki's blog
- IPAは基礎的誤りを明示し、正しい原則を開発者に啓蒙すべき – yohgaki's blog
- IPA セキュア・プログラミング講座:IPA 独立行政法人 情報処理推進機構
- なぜWebセキュリティはここまでダメなのか? – yohgaki's blog
- それは”ただのバグ”なのか?それとも? – yohgaki's blog
- 知らないと勘違いする「合成の誤謬」の罠 – yohgaki's blog
- とあるネットワーク技術者の防御法 – yohgaki's blog
- セキュリティ対策の目的 – yohgaki's blog
- 危険なコードを書くメカニズム – yohgaki's blog
- 遅すぎるサニタイズではダメな例 – yohgaki's blog
- コードで学ぶセキュアコーディング 〜 SQLインジェクション編 – yohgaki's blog
- IPAは基礎的誤りを明示し、正しい原則を開発者に啓蒙すべき – その2 – yohgaki's blog
- マイクロサービスアーキテクチャーのSSRF問題とセキュアコーディング – yohgaki's blog
- CWE-20は知られているか? 〜 開発者必修のNo.1脆弱性のハズが知られていない 〜 – yohgaki's blog
- 正規表現をより安全に使う方法 – yohgaki's blog
- エラーと例外とセキュアコーディング – yohgaki's blog
- IPAの「安全なWebサイトの作り方」は安全な作り方のガイドではない – yohgaki's blog
- MITREがCWEを大幅更新 – yohgaki's blog
- 開発者必修の7PKとは? – yohgaki's blog
- コードの共通化を原則とするのはアンチプラクティス 〜 現代のプログラミング原則 – yohgaki's blog
- セキュリティソフトウェア ≠ ソフトウェアセキュリティ – yohgaki's blog
- 7PK – APIの乱用とは? – yohgaki's blog
- 欧州の個人データ移転規制が日本は対象外となる件について – yohgaki's blog
- セキュリティ機能の利用はソフトウェアセキュリティではない – yohgaki's blog
- ソフトウェアには入力バリデーションは必要ない 〜 ただし条件付きで – yohgaki's blog
- おかしなCWE-20の読み解き方 – yohgaki's blog
- データ型とセキュアコーディング – yohgaki's blog
- コンパイラに仕込まれた細工とシステムのセキュリティの話|Rui Ueyama|note
- マイクロソフト、バグや脆弱性の検出を自動化する「Project OneFuzz」をオープンソース公開。すでに同社内でWindowsやMicorosoft Edgeのデバッグに利用中 - Publickey
- エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~CallerCheckとSimExec~ – 他人の空似
- 【インターンレポート】LINEクライアント内に見つかった脆弱性について - LINE ENGINEERING
- セキュリティ・キャンプ全国大会「マルウェアの暗号処理を解析しよう」の紹介, Hiroki Hada
- スタックプロテクターは alloca 割り当てを使うプログラムも守ってくれるか? - IKB: 雑記帖
- Intel 社製グラフィックス アクセラレータ用の Intel Unified Shader コンパイラで発見された脆弱性
- Google Developers Japan: Android の FORTIFY
- 確率的並行ファジング - arahori.exeの日記
- experiments/windows-defender/ASR at master · commial/experiments
- Advanced ROP techniques. Rop or return-oriented-programming is… | by Aneesh Dogra | Aneesh Dogra’s Blog
- daem0nc0reさんはTwitterを使っています 「このWindows Kernel Exploitの記事、めっちゃいいですね。 WNFはしばらく触ってないから勉強し直さないとな https://t.co/rKASxMKPWv」 / Twitter
- CVE-2021-31956 Exploiting the Windows Kernel (NTFS with WNF) – Part 1 – NCC Group Research
- 【2020年】CTF Web問題の攻撃手法まとめ - こんとろーるしーこんとろーるぶい
- 「Chrome」からメモリ関連の脆弱性を取り除くには? ~Googleがその取り組みを解説 - 窓の杜
- κeenさんはTwitterを使っています 「Chromeの脆弱性の70%以上がメモリ起因ということで、どうにかしたいという話。C++の静的解析は限界があるのでパフォーマンスを犠牲にして動的解析するか移行コストを払って安全な言語にするか Google Online Security Blog: An update on Memory Safety in Chrome https://t.co/22CshtXqzS」 / Twitter
- Google Online Security Blog: An update on Memory Safety in Chrome
- κeenさんはTwitterを使っています 「どちらも検討している。動的解析ではMiraclePtrが有望で50%くらいのuse-after-freeが消そうだが、モバイルではリソースが厳しいなど。静的解析ではRustが有望そうで単体では安全そうだがどうやってC++とのインタフェースを切るかなど。」 / Twitter
infoQ
- Android Pがコンパイラベースのセキュリティ対策を拡大
- セキュリティ研究者を狙う持続的標的型攻撃、US-CERTが警戒呼びかけ | TECH+
- GitLab Protocol Fuzzer CEがオープンソースに
- 継続的セキュリティテストを有効にしてテストにセキュリティを追加する
- インフラストラクチャ脆弱性スキャナーのCheckovがコンテキストアウェア評価を追加
- クラウドプロバイダがランサムウェア軽減戦略を公開
- Azure Firewallに新しいセキュリティ機能を導入
Twitter
その他
- 港務部長オルミンの温冷鮭サンドイッチさんのツイート: "CVE-2014-9322 #kernelvm [sokutenable]"
- OS作れないマン WalB担当さんのツイート: "ROPは、コード領域で自分が欲しい命令列になるアドレスを頑張って探してジャンプする #kernelvm"
- るくすさんのツイート: "久しぶりにヒープ系のエクスプロイト書いた。 WebKit OOB 1byte-writeでよろしくやるコードですね。これで分かる人は分かると思う。 (pwn2own 2014のやつ)"
- $Hell on Sony Snatch the Kernel privilage from Browser // Speaker Deck
- suzakiさんのツイート: "バイナリが本当のソースから作られたことを検証するdiffing Toolsに関するブログ。IDAProに類似度比較のPlugInを入れる。 https://t.co/OP4rHkMeTR Hacktivity18の”Diffing C Sources to Binaries”で発表される。 https://t.co/yJN3HNbi64"
- Histories of comparing binaries with source codes | Unintended Results
- OSC2019東京・春出展さんのツイート: "HMAC(key, msg) == signature; のどこが問題かという話.比較関数==は(大抵の実装では)先頭から調べて一致しなくなったらfalseを返すので,1文字目が一致するかしないかで応答時間が微妙に異なる.そこを計測できるとMACを推定することが可能."
- uint256_tさんはTwitterを使っています 「Anti hacking compiler ってなんだろう」 / Twitter
- uint256_tさんはTwitterを使っています 「https://t.co/FMlgTMBDMR」 / Twitter
- DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
- mumumuさんはTwitterを使っています 「AddressSanitizer: A Fast Address Sanity Checker [ATC '12] 所謂Asanの比較的初期の頃?の仕組みと実装をまとめた論文.コンパイラのInstrumentation + Shadow Memory.スライドのSummaryに"C++ is suddenly a much safer language"って書いてあって:thinking_face: https://t.co/779BlbNITw」 / Twitter
- serebryany_atc12_slides.pdf
- daem0nc0reさんはTwitterを使っています 「このWriteupは面白いですね。 どういう条件が揃っているとXSSから遠隔コード実行まで持っていけるかが勉強できて良いと思います。 https://t.co/FrosfsYgW5」 / Twitter
- Stored XSS to RCE Chain as SYSTEM in ManageEngine ServiceDesk Plus | by Chris Lyne | Tenable TechBlog | Aug, 2021 | Medium
code randomization
- まさみさんは語りたいさんのツイート: "intelの人のcode randomizationのセッションに来た"
- まさみさんは語りたいさんのツイート: "honkey tonkだ。"
- まさみさんは語りたいさんのツイート: "kaslrはエントロピーが少なすぎてブルートフォース攻撃を許してしまうと。"
- まさみさんは語りたいさんのツイート: "あー、これは来るぞ"
- まさみさんは語りたいさんのツイート: "日立のときに最後に出した特許と同じ話するんじゃないかなー。"
- まさみさんは語りたいさんのツイート: "関数単位でのreorderingか、少し期待はずれだけど、多分このあと変わるんじゃないか。"
- まさみさんは語りたいさんのツイート: "function bodyをbasic blockに分割し、初期化時あるいは実行中にBBをreorderあるいはshiftすることでROPを防ぐ、という話を書いたことがある。symbol tableや関数アドレスはそのまま使えるがコードが別の場所に飛んでいる。"
- まさみさんは語りたいさんのツイート: "うーむ、タイトルからspectre系の話だと思ってたのに。"
- まさみさんは語りたいさんのツイート: "質問したいけど次の発表が隣だから"
CFI
- FadisさんはTwitterを使っています 「LinuxカーネルがclangのCFIを有効にしてビルドできるようになったらしい。CFIはサニタイザの一種で、関数呼び出し時や戻り時に呼んで良い(or 戻って良い)アドレスに正しい型の引数を付けて飛んでいる事を確認する。ROPのgadgetを呼ぶような操作が検知される https://t.co/e9H0CEsZZz」 / Twitter
- Clang CFI Support Upstreamed For Linux 5.13 - But Only On ARM64 For Now - Phoronix
- FadisさんはTwitterを使っています 「LinuxカーネルをCFI付きでビルドするのは元々GoogleがAndroidの開発の為に内部で使っていた物で、現時点では64bit ARMのみが対応していてx86_64版は準備中らしい」 / Twitter
kernelvm
2017-11-18
CTF
No.1
- Fadisさんのツイート: ". @Charo_ITCODE さんの「BLUE CTF 2017で出した問題の話」が始まります #kernelvm"
- Fadisさんのツイート: "プログラムを乗っ取るために書き込みを試みる対象: 関数ポインタ、スタック上のリターンアドレスなどそれらを保持する配列のポインタ等、ジャンプ先を司っている値 #kernelvm"
- Fadisさんのツイート: "関数呼び出しはほとんどのアーキテクチャにおいて関数が置かれたアドレスへの特殊なジャンプ(アーキテクチャによっては本当にただのジャンプ命令)だから、飛び先のアドレスが書き換わっていれば違うものが実行される #kernelvm"
- Fadisさんのツイート: ".got.pltのポインタを書き換えて本来と違うコードの実行を行う。最近のアーキテクチャではデータ領域に置いた任意のデータの実行を阻む仕組みが備わっている事があるが、プロセス中に実行可能バイナリとしてロードされている他の実行可能バイナリなら実行できる #kernelvm"
- Fadisさんのツイート: "ASLR PIEなどを使ったバイナリでは関数はランダムなアドレスに配置され、攻撃者が狙って特定の関数呼び出しを行う事が難しくなる #kernelvm"
- Fadisさんのツイート: "バッファオーバーフローによってリンクリストのデータの次にあるnextの値が書き換えられる時、nextのアドレスを書き換えて次の要素に書き込みが起こるような処理を行えば任意の箇所に書き込みを行うことができる #kernelvm"
- Fadisさんのツイート: "ASLRがある場合ライブラリ関数の配置がわからないため、アドレスリークが可能な脆弱性が無いと確実な乗っ取りは行えない #kernelvm"
- Fadisさんのツイート: "偽のstrtabを用意してdynamicセクションを書き換えてライブラリ関数のアドレス解決時に別のアドレスが返るようにする #kernelvm"
- Fadisさんのツイート: "strcmp関数を読んだ時実際に実行される関数がsystem関数になるような偽のstrtabを用意し、strcmpに実行したいコマンドを渡してシェルを得る #kernelvm"
- Fadisさんのツイート: "CTFで8/554チームがこの問題をクリア → まずまずの難易度 (まずまずとは) #kernelvm"
No.2
- Fadisさんのツイート: "printf("%3$d",2,1,0); // 0が出る printfでは指定した位置の引数を$で引っ張ってくる事ができる #kernelvm"
- Fadisさんのツイート: "printf( "%3$*4$d%5$n", 2, 1, 0, 5, &a ) // 文字数を出力することもできる #kernelvm"
- Fadisさんのツイート: "printfのformat stringで足し算ができる!!! #kernelvm"
- Fadisさんのツイート: "format stringで処理系を作るwww #kernelvm"
- Fadisさんのツイート: "プログラムカウンタ、リンクレジスタ、汎用レジスタ、関節参照アドレスレジスタ等を用意し、全てprintfに引数として渡し、format stringを駆使してこのレジスタ上で計算を行う #kernelvm"
- Fadisさんのツイート: "引き算: 2の補数の足し算ができれば良い → 補数を求めるテーブルを用意 #kernelvm"
- Fadisさんのツイート: "このprintfの問題は狂気じみた問題にもかかわらずCTFで11/554チームが解けた #kernelvm"
@fadis_
- Fadisさんのツイート: "最近のメモリで見られる 同じ行に連続してアクセスすると直接アクセスしていない領域の値が化ける現象(RowHammer問題) を利用してLinuxで権限昇格ができる模様 http://t.co/10kwCTzMyJ"
- Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
- Fadisさんのツイート: "「バッファオーバーランによる脆弱性の仕組みを学びましょう、まずここのリターンアドレスが潰れるようにシェルコードを… stack-protector「スタック破壊を検知しました」 NXビット「そもそもそこ実行できんで」 ASLR「シェルコードの中で呼んでるその関数、そこにはないよ」 「」"
- Fadisさんのツイート: "スタックに任意の書き込みが出来る状態から任意の処理を実行出来るようにするためには、popでレジスタに値をロードして、retで走らせたい命令列がある場所にジャンプする、と"
- Fadisさんのツイート: "そんなわけでROPはまず目当てのレジスタにpopしてretqしてるところを探す事から始まる、と"
- Fadisさんのツイート: "よっしゃ、ROP動いた"
- Fadisさんのツイート: "retを使わない事でReturn Oriented Programmingを阻止する話を探してたら、retじゃない命令でReturn Oriented Programmingする論文を見つけちゃったところ https://t.co/pkdYlxJYAr"
- Return-oriented programming without returns
- Fadisさんのツイート: "CRIU: Linuxで実行中のコマンドのダンプと復帰を行うツール https://t.co/HbYJgGHVn4 #kernelvm"
- Fadisさんのツイート: "範囲外参照の不具合とWebCore::CSSSelector::specifyを組み合わせて1bitだけ書き込むことができる → ArrayBufferのサイズの情報を書き換える→ArrayBufferから範囲外の値を読み書きできるようになる #kernelvm"
- Fadisさんのツイート: "自由に書き換えられるようになった領域にさらにArrayBufferViewを作って、ベースアドレスを書き換えてさらに広い領域を自由に書き換えられるようにする、と #kernelvm"
- Fadisさんのツイート: "そのままこの領域にバイナリを書いてvtableを書き換えてジャンプしてもNXビットが立ってて実行されない → Return Oriented Programmingだ! #kernelvm"
- Fadisさんのツイート: "stack pivotを使って書き換え可能な領域がスタックだったことにする #kernelvm"
- Fadisさんのツイート: "iretが#SS例外を投げるとユーザ空間のGSのままカーネルが実行されるバグがLinuxカーネルに見つかる → その後呼び出される関数がGSが指す構造体に0を書き込む → ユーザ空間から指定した位置に0を書き込むことができる #kernelvm"
- Fadisさんのツイート: "PS4はFreeBSD4で動いている → ページフォルトハンドラが書き換え可能になっているため、ここを書き換える #kernelvm"
- Fadisさんのツイート: "Linuxの場合は割り込みテーブルがリードオンリーになっているため、カーネル内でROPをして各種保護を切って書き換える #kernelvm"
- Fadisさんのツイート: "A Turing complete ROP compiler https://t.co/olv8tOFzBR #kernelvm"
- download;jsessionid=7BE7708C4BC9D07131666776F6159B34
- Apple、iOSやmacOSなどの脆弱性を多数修正 | スラド アップル
- Fadisさんのツイート: "stack-protectorはスタック破壊を「検知」することはできるけど「修復」することはできなくて、従ってカーネルのstack-protectorは攻撃者がring 0で任意のコードを実行しうる脆弱性を、攻撃者がカーネルパニックさせられる脆弱性に弱める物で、スタック破壊による攻撃を無力化する働きはない"
- FadisさんはTwitterを使っています 「stack protector同様ASLRもforkしただけでは配置を変えられない。攻撃者はバッファオーバーラン脆弱性を使って既知のカナリアの後ろのリターンアドレスを書き換える事で「子プロセスがクラッシュしたかどうか」でASLRで配置換えされたページがどこに行ったかを探る事が出来る。これがBlind ROP、と」 / Twitter
- FadisさんはTwitterを使っています 「で、ここまでの手法はいくらでも子プロセスをクラッシュさせられる場合専用だったわけだけど、BlindSide(https://t.co/xeEaTxQ5f5)はこれにSpectreを組み合わせて、ないかもしれないページを読んだ後で無かったことにしてその時の応答を観測する事で、プロセスをクラッシュさせずにASLRを乗り越える」 / Twitter
- BlindSide - VUSec
@tanimocchi
- もっちぃさんのツイート: "Side Channel Analysis via Model Counting Constraint Solvers https://t.co/YbVLNq3pur Side Channel Analysis Using a Model Counting Constraint Solver and Symbolic Execution https://t.co/wXQx1WHOhl String Analysis for Vulnerability Detection and Repair https://t.co/lQsOs1Sb5p… https://t.co/nBTZiopJN6"
- もっちぃさんのツイート: "サイドチャネル攻撃耐性のあるコード設計&バイナリ生成技術も既に研究されていて、その紹介スライドは下記が良いかなと。 Verifying Cryptographic Implementations with F* https://t.co/4CEBFBDlPt… "
- Verifying Cryptographic Implementations with F*
- るくすさんはTwitterを使っています 「2年ぐらい前にアメリカにいた時に「ゼロデイを見つける時代は終わりだ。これからはいかにバレないようにゼロデイを"埋め込んでいくか"の時代が来るんだぜ」って言われて、んなアホなと思ってたが最近マジでそうなりつつあるな」 / Twitter
- るくすさんはTwitterを使っています 「当時ですら既に国防総省肝いりのきな臭そうな(?)バックドア挿入の研究プロジェクトあったから今とかもっと凄そう」 / Twitter
- 品川 (utshina2)さんはTwitterを使っています 「これは ring 0 に対してはやってなかったか。」 / Twitter
- Microsoft Word - exoshim.docx - tr15-001.pdf
- Tsukasa #01さんはTwitterを使っています 「まさかのこの性質を使っている論文を見つけてしまった。 Brookes et al. https://t.co/vQHHUeI3kM」 / Twitter
- 品川 (utshina2)さんはTwitterを使っています 「Readactor の方が先かなぁ。 https://t.co/XniM2nuPsH」 / Twitter
- Readactor:メモリ開示に強い実用的なコードランダム化| IEEEカンファレンスパブリケーション| IEEE Xplore
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Spook.js - Chromeのサイドチャネル攻撃を使って、悪意あるページからブラウザ中で開かれている別のページの内容を盗み見できる。LastPass機能拡張の内部状態からマスターパスワードを復元することすら可能。 https://t.co/xic7jvIYMO」 / Twitter
- Spook.js
- daem0nc0reさんはTwitterを使っています 「WindowsのAMSI Bypassの手法は、ゆっくりではあるけど対策はされている印象なので、定期的に調査結果をまとめてくれる人がいるのはありがたいですね https://t.co/7Gs3qj9pCe」 / Twitter
- Defense Evasion Series Part 1 AMSI Bypass | Dazzy Ddos
- daem0nc0reさんはTwitterを使っています 「このJavaScript EngineのExploitの問題は面白そうです https://t.co/cCSKo2KMYY」 / Twitter
- TCTF 2021 Promise
- daem0nc0reさんはTwitterを使っています 「自作EDR、良いですね。 Windows Kernelの知識を深めたい人は読むべし https://t.co/KT05fdgB1J」 / Twitter
- Blinding EDR On Windows - Red Team Blog
- daem0nc0reさんはTwitterを使っています 「Remote Desktop ProtocolのFuzzingについての記事。 かなり詳しく書いてあります。 じっくり読んでいきたいと思います。 https://t.co/4d9gqyqjHd」 / Twitter
- Fuzzing RDP: Holding the Stick at Both Ends
- 株式会社リチェルカセキュリティ
- オープンソースセキュリティへの取り組みを集約した“Open Source Security Foundation”が設立 - 窓の杜
- 情報漏洩の定量化によってシステムを保護する
JIT
JIT 無効化
- MicrosoftがEdgeでJITを無効化し安全なブラウジングができる「Super Duper Secure Mode」をテスト - GIGAZINE
- 一ノ瀬 いろはさんはTwitterを使っています 「JavaScript の JIT (V8 実装に限らず)はバグが多い割に速度上のメリットも少なくなってきたので無効化しても問題ないんじゃね?と言う所か。」 / Twitter
- Andreas KlingさんはTwitterを使っています 「Microsoft Edge is experimenting with disabling the JavaScript JIT in order to greatly improve browser security. I am 100% in favor of this. As fun as it is to compete on benchmarks, end user benefit has hit diminishing returns a long time ago IMO. https://t.co/ix1nC9Yq4l」 / Twitter
- Super Duper Secure Mode | Microsoft Browser Vulnerability Research
- 一ノ瀬 いろはさんはTwitterを使っています 「JIT が複雑で実装が難しいと言うのは当初PHP7で実装される予定だった物がPHP8に持ち越された事を考えてもある程度想定出来る。 以前はそれでもメリットの方が大きかったんだろうけれど。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「JITがUnsecureになりうるのは、Optimize JITのデバッグが大変辛いという話なので、それはWASMであってもOptimize JITが実行されれば、同じ理論が発生するだろうし、InterpreterやTemplate JIT (Baseline JIT)みたいなデバッグしやすいものよりも安全ではないというだけの話としか」 / Twitter
- Microsoft Edgeに“スーパースゴイ”セキュリティモード - PC Watch
- JavaScript性能低下よりも大事なEdgeの新セキュリティ機能 - 阿久津良和のWindows Weekly Report | マイナビニュース
V8
- Miura HidekiさんはTwitterを使っています 「https://t.co/OMwoQQE6Gk mrubyのJITにそっくりな位置づけのコンパイラ。のぞき穴最適化しかできないと書いてあるけど、一応基本ブロック内で型情報を渡して自明なガードを削除するとかはできますよ。」 / Twitter
- Sparkplug — a non-optimizing JavaScript compiler · V8
- Short builtin calls · V8
- Super fast super property access · V8
- Faster JavaScript calls · V8
- Slack tracking in V8 · V8
トランポリン
trampfd
- FadisさんはTwitterを使っています 「libffi等の厄介な関数呼び出しをするソフトウェアは実行時に関数呼び出しを変換するトランポリンを作るが、トランポリンはexecutableかつwritableなページを要する為、攻撃者に絶好の任意のコード置き場を与える。そこでLinuxに新機能trampfdが提案されている https://t.co/iG7mBWegnU」 / Twitter
- Microsoft Engineer Proposes "TRAMPFD" For Improving Linux Security - Phoronix
- FadisさんはTwitterを使っています 「trampfdは「レジスタを書き換えスタックに何か積んで飛び先に飛ぶ」トランポリンをカーネルに作らせる。trampfdを作成し、レジスタとスタックの操作と飛び先を設定し、mmapして割り当てられた領域にジャンプすると、レジスタとスタックの操作が行われ、飛び先に飛ぶ。この領域への書き込みは禁止される」 / Twitter
- トランポリン - 兼雑記
- 独自CPU開発で学ぶコンピュータのしくみ - 伊藤剛浩, 川田裕貴 - Google ブックス
- アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita
- セキュアなプログラマー: バッファー・オーバーフローに対抗する
PyPy
Tracing JIT
型アノテーション
- アノテーション - Wikipedia
- 26.1. typing — 型ヒントのサポート — Python 3.6.5 ドキュメント
- Pythonの関数アノテーションと型ヒント、typingモジュール | note.nkmk.me
- Pythonではじまる、型のある世界 - Qiita
- Python の型アノテーションと ast モジュールで, python コードから C/C++ コード生成に思いを馳せる - Qiita
- Python と型アノテーション
- 型アノテーション · GitBook
- PythonのTypeHints ~型アノテーション~ - Tocyukiのブログ
- Pythonと型 〜 Docstring、関数アノテーション、型推論 〜 - Blank File
- [翻訳] PEP 0484 -- 型ヒント (Type Hints) - Qiita
- RPython 型付け器 — pypyja 1.7 documentation
- PyPy - RPython toolchain — PyPy 1.6 documentation
- トレーシング実行時コンパイル - Wikipedia
- Tracing just-in-time compilation - Wikipedia
- PyPy Status Blog JA: 部分評価とトレーシングの比較 Part 1
- PyPy Status Blog JA: FlowGraph 言語のための単純なトレーサ
- PyPy Status Blog JA: FlowGraph 言語のトレースの最適化
- より大きなフローグラフ言語の例
- web.archive.org/web/20130122090621/http://www.longsleeper.com/
- Wayback Machine
- #3 PyPyについての講演,ハンズオン,スプリント:そうだ! EuroPython 2011へ行こう|gihyo.jp … 技術評論社
- Tracing the Meta-levelとは?PyPyのJITコンパイラについて - TECH-MICCHON.jar
- 流行りのJITコンパイラは嫌いですか? — PyPy Advent Calendar 2011 v1.0 documentation
- 言語のJITコンパイラをその言語自身で作る事の意義とは - Togetterまとめ
- どきっ!mrubyだらけのTracing JITコンパイラ解説 バグりもあるよ - Qiita
- Tracing_JITs11_tracing_the_meta_level.pdf
- The Essence of Meta-Tracing JIT Compilers.pdf
- BoCuFiRi09_246.pdf
- Laurence Tratt: The Impact of Meta-Tracing on VM Design and Implementation
- Tracing the meta-level: PyPy's tracing JIT compiler | Request PDF
- Runtime feedback in a meta-tracing JIT for efficient dynamic languages | Request PDF
- Trace-based just-in-time compiler for Haskell with RPython
- pycket-draft.pdf
- 34
RPython
- Frequently Asked Questions — RPython Documentation
- Getting Started with RPython — RPython Documentation
- Welcome to RPython’s documentation! — RPython Documentation
- rpython 0.1.4 : Python Package Index
- PyPy - RPython toolchain — pypyja 1.7 documentation
- PyPy - RPython toolchain — PyPy 1.6 documentation
- Building An Interpreter In RPython - PyCon Japan 2016 // Speaker Deck
- Pyrlang: RPythonを用いた高性能仮想機械 – 増原英彦研究室
- PyPyの基礎知識まとめ その1 - Qiita
- RPythonの情報とRPythonで実装されている言語処理系 - rokujyouhitoma's blog
- RPythonToolChainでOok!を実装した時のノウハウ紹介。PyPy Advent Calendar 2011 7日目 - rokujyouhitoma's blog
- Shibu's Diary: PyPyよりも5倍高速な最速のPython処理系
- RPythonで書かれたRuby処理系Topazで遊ぶ
- RPythonについて軽く | κeenのHappy Hacκing Blog
- Graal/Truffleについて軽く | κeenのHappy Hacκing Blog
- Hideyuki TanakaさんはTwitterを使っています: 「なるほどMesaPy(´・_・`) / 2件のコメント https://t.co/40dKogXBMU “GitHub - mesalock-linux/mesapy: A Fast and Safe Python based on PyPy” (11 users) https://t.co/itU9MPPTVE」 / Twitter
- mesalock-linux/mesapy: A Fast and Safe Python based on PyPy
- Hideyuki TanakaさんはTwitterを使っています: 「RPythonのCの部分はFormal Verificationして、外部ライブラリはRustのものに置き換えてメモリ安全という話なの(´・_・`)」 / Twitter
- RPythonについて軽く | κeenのHappy Hacκing Blog
continulet
- 覚え書き: Pausable Unittest その1 (continulet と tasklet)
- アプリケーションレベルのスタックレス機能 — pypyja 1.7 documentation
- Emerge Technology: pypyのスレッドとかgreenletとか何か
OSDN
- Python処理系「PyPy 4.0」リリース、起動時間を大きく改善 | OSDN Magazine
- 「PyPy 5.0」リリース、起動時間やメモリ使用量の短縮が行われる | OSDN Magazine
- Python実行環境「PyPy 5.1」公開、ウォームアップ時間やメモリ要求をさらに強化 | OSDN Magazine
- 「PyPy2.7 v5.6」リリース | OSDN Magazine
- 「PyPy 5.9」リリース、NumPyとPandasをPython 2.7向けでサポート | OSDN Magazine
- 「PyPy 7.0」リリース、アルファ段階の機能としてPython 3.6対応を追加 | OSDN Magazine
- aarch64に対応した「PyPy 7.2」が公開 | OSDN Magazine
- PyPy - Wikipedia
- PyPy Advent Calendar 2011 6日目 Frequently Asked Questions - YAMAGUCHI::weblog
- ryu22eBlog跡地:第八回ありえるえりあ勉強会 ~PyPyのキホンの気 に参加しました #arielarea
- PyPy 紹介
- 次世代言語 Python による PyPy を使った次世代の処理系開発
- PyPy開発へようこそ — pypyja 1.7 documentation
- Coding Guide — PyPy documentation
- PyPyのPyObjectの実装が謎い - Togetterまとめ
- PyPyの論文つぶやき - Togetterまとめ
- Python を速くする取り組み - methaneのブログ
- PyPyがCより速いケース - karasuyamatenguの日記
- PyPy 4.0登場 - SIMDベクトル化機能付きJIT搭載 | マイナビニュース
- PyPy 5.0登場 - 起動処理が30%高速化 | マイナビニュース
- さらに高速化、PyPy 5.1登場 | マイナビニュース
- PyPy ソースコードリーディング事始め - プログラマのネタ帳
- PyPy Advent Calendar 15日目 - 低レベルっぽいことをやってみる - プログラマのネタ帳
- PyPy Status Blog: PyPy JIT for Aarch64
- Miura HidekiさんはTwitterを使っています 「インタープリタをコンパイラに変換する射影は、例えばインタープリタの実行コードをそのままコピーするとかで比較的簡単に出来ると思う。もちろんそれで例えばインタープリタに勝てるくらいの効率のいいものとなると難しいわけで、つまりpypyはすごい」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「インタプリタがあればコンパイラが生成できるし、なんとなれば「インタプリタを与えるとコンパイラを出力するプログラム」も生成できる二村射影って凄い発明。(ただし部分計算系αの構築は激ムズ)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「コンパイラを作ったことの無い人は信じられないかもしれませんが、カリカリにチューンされたインタープリタに勝てるコンパイラを書くのは結構大変なことです」 / Twitter
メソッド・キャッシュ
- メソッド実行結果をキャッシュする - うなの日記
- rubyのメソッドをキャッシュするコードです。詳細はブログで紹介してます。 http://ameblo.jp/syou007/entry-11468918541.html
- インライン・メソッド・キャッシュによる動的ディスパッチ高速化(1/3) - @IT
- The Story of Method Lookup - Qiita
- 第15章 メソッド
- API キャッシュを有効にして応答性を強化する - Amazon API Gateway
グリーンスレッド
- グリーンスレッド - Wikipedia
- Green threads - Wikipedia
- Inside Meinheld - Qiita
goroutine
- 【翻訳】goroutine の仕組み - まるまるこふこふ
- build-web-application-with-golang/02.7.md at master · astaxie/build-web-application-with-golang
- Go言語の並列処理 goroutineとchannel - Qiita
- Go言語感想文 - なるせにっき
- nobonoboさんのツイート: "一旦 #golang のgoroutineに慣れちゃうと他の環境でネイティブとグリーンそれぞれに同期操作が別々のため基礎ライブラリが2セットにダブってしまってるの超めんどくさすぎてツライ。"
- GoConで発表してきたのでついでにruntime以下の知識をまとめていく #golang - niconegoto Blog
- Futureとその周辺 | κeenのHappy Hacκing Blog
- 島鉄雄さんのツイート: "Emacs Lisp に Async/Await を実装しましたよ。 仕事のほとんどは generator.el と promise-core.el で済んでるので、TypeScript のやり方を参考に繋げただけです。 これで非同期処理を同期処理と同じように書けるよ。… https://t.co/YYOhoR1g33"
- TAN-Y(たに)さんのツイート: "・コルーチンは使うだけなら簡単。 ・std::futureは標準でawaitできるけど戻ってくるスレッドが毎度生成のワーカースレッドなので事実上使い物にならない。(まあこれは仕方ない) ・C++/WinRTはUWPのランタイムとからめてうまくawaitできるようにしてるんだろうなあと想像。"
- Big Sky :: 書評「Go言語による並行処理」
- 渋川よしきさんのツイート: "既存のgenerator base coroutine、coroutineとしても使えるけど、外部インタフェースとしては第一はiteratorなんだよな。coroutineがプリエンプティブ・マルチタスクのための言語機能というのであれば、今後一番複雑なタスク管理の中心になるasyncioと親和性高くデザインされる、というのは違和感ない"
- C++ でコルーチン (async/await 準備編) - Qiita
- C++ で async/await をする - Qiita
C3線形化
- The History of Python.jp: メソッド解決順序(MRO)
- よくわからないので実装して理解するRubyのメソッド解決順序 - Qiita
Threaded code
- スレッデッドコード - Wikipedia
- Threaded code - Wikipedia
- 第一級ラベルを持たない言語におけるDirect Threaded VMの実装 | κeenのHappy Hacκing Blog
- Rubyist Magazine - YARV Maniacs 【第 3 回】 命令ディスパッチの高速化
- direct threaded code - imHo
- Direct Threaded Code
- Threaded Code - moiの頭の中
- 楓 software: direct threaded code
- ICFP Programming Contest 2006 “The Cult of Bound Variable” に挑戦してみる | 雑記帳
- Computed gotos, TCO, threaded interpreters: experiments and findings - Rust Internals
NaN boxing
- NaN boxing - 枕を欹てて聴く
- mrubyのJITの64bit対応 - Qiita
- NaN boxing
- NaN Boxing - albertnetymk's notes
- zuiderkwast/nanbox: NaN-boxing in C
- design patterns - What is the purpose of NaN boxing? - Software Engineering Stack Exchange
- NaN-BoxingによるJavaScriptの最適化 | CodeLunch.fm
- value representation in javascript implementations -- wingolog
- NaN-Boxing [sean.cm]
- Yukihiro Matsumotoさんのツイート: "@miura1729 NaN boxingはそのうちやってみたいんですが。64bit対応が難しそうです。LuaJITの対応方法がどうにも理解できない。どうせ自分はまだ32bit環境だから32bitだけ対応するかなあ。"
- Internals - SpiderMonkey | MDN
VM
- vmgen で簡単なレジスタベースの VM を作る(1/2) - Qiita
- vmgen で簡単なレジスタベースの VM を作る(2/2) - Qiita
- VMの本を見てみた: なつたん
- Dalvik仮想マシンのアーキテクチャ
- Software Basic
- Java SE Specifications
- Java仮想マシン - Wikipedia
- Java仮想マシントリビア - JVM仕様のベリファイアの説明がPrologで書かれている! - Qiita
- JVMの中身を可視化してみた
- JVMのメモ | Java好き
- Kazuho Okuさんのツイート: "何度でも言うけど this[n] って C++ だと合法的なテクニックだし実際に使われるから! 僕のMacBookの中にあるコードを検索するだけでも用例が見つかる。ちなみにこれは JavaScirptCore(SafariのJS実装)の CallFrame.h https://t.co/toppExfr7t"
- Kazuho Okuさんのツイート: "メモリ上に連続に一次元として配置されるオブジェクトかつ隣接するものの参照が必要になる場合に有用なテクニックであることを考えると、言語処理系以外にエディタの文字処理(バリアントセレクタ)とかでも使ってそう"
- Kazuho Okuさんのツイート: "なんでこれが良いか解説すると、言語処理系のVMスタック上の値はそれぞれ異なる型をもつ(例:呼出フレーム、リターンアドレス、引数)ので、たとえば呼出フレームからリターンアドレスを参照するのは this[OFFSET_OF_RETURN_ADDR_FROM_FRAME] になる"
- Kazuho Okuさんのツイート: "スタックフレーム上の各値をそれぞれ異なる「正しい型」で表現しているから、コーディングミスを抑制することができるわけで、良いコーディングパターンなわけです。もちろんコンストラクタの呼出をprivateにしたり、サブクラスでメンバ変数の追加を禁止するなどの前提があるけど"
- Kazuho Okuさんのツイート: "他の用例としては MySQL のクエリプラン構築コードに this[-1].next_select = sub_select_op; ってのがある。jon用のクエリプラン生成時に、直前の命令の属性を書き換えてる感じなのかな"
- Kazuho Okuさんのツイート: "まあ正直mysqlのコードはアドホックなところが割とあるのでアレだけど"
- Kazuho Okuさんのツイート: "クラスファイル内のLineNumberTable削除してから比較すればコメントやインデント変更の影響を検知することはなくなると思うけど、それが簡単にできるツールないのかしら / “Javaのリファクタリングした際にclassファ…” https://t.co/7hvYnGXD9u"
- Javaのリファクタリングした際にclassファイルの差分比較をしてテスト要否を判断したい - Qiita
- [調査]JVMのスタックサイズについて - Akira's Tech Notes
- 眼力 玉壱號さんのツイート: "JVM、中に interpreter 持ってるけど、byte code 解釈する部分は立ち上がりの時点で template の穴埋めして動的生成していたりもする cf. https://t.co/LFbIMbouhG… "
- openjdk.java.net/groups/hotspot/docs/RuntimeOverview.html#Interpreter|outline
- 今後のJavaのサポートやアップデートについてJavaチャンピオンが執筆したドキュメント、Java is Still Freeの日本語訳を公開 - Fight the Future
- Javaは今も無償です - Google ドキュメント
- YARV命令ごとの実行コストを知るには - なるせにっき
- JVMことはじめ その1: クラスファイル - Qiita
- report.pdf
- Nextcloud
- 極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣さんはTwitterを使っています 「Pharoのツヨツヨ兄ちゃんがSlang(Smalltalk VMを記述している、CにトランスレートされるSmalltalkサブセット)でのVMプログラミングについて「2つの異なる意味論を持つ言語の両方でたまたま同じ動作をするソースコードを書くというパズル」と言っていたのを思い出した。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「分かる気がする。確かにそんな感じ。私の場合はソース言語のサブセットではなく、内部構造(ASTや型情報)からターゲット言語(C)の変換メソッドだけど」 / Twitter
バイトコード
- バイトコード - Wikipedia
- Javaバイトコード - Wikipedia
- プログラミング言語を作る/静的・バイトコード実行型言語を作る
- 簡易スタック型VM(バイトコードインタプリタ)でのフィボナッチ数計算速度 - sileのブログ
- Rubyist Magazine - YARV Maniacs 【第 2 回】 VM ってなんだろう
- チューニングのためのJava VM講座(前編):Hotspot VMの基本構造を理解する (2/2) - @IT
- Javaバイトコードの読み方 - わらばんし仄聞記
- Java VMとバイトコードとマイコンの親和性は良好? - Lynx-EyEDの電音鍵盤 新館
チューニング(キャッシュ)
- herumiさんのツイート: "https://t.co/ge6QtuNysQ MKL-DNNはそのあたり(キャッシュサイズを見て実行時コード生成のパラメータを変える)のことをやってるようです。 https://t.co/gLmXqSEPfS ただcpuidはAWSなどのVM環境(のせい?)では結構適当な値が返ることがあるようでときどきトラブってます。 https://t.co/TV80bXyBnK"
- yohさんのツイート: "正直 キャッシュ階層とかメニーコアNUMA構成を活用した"最適"性能チューニングを考え出すと 髪の毛が何本あっても足りないので お近づきになりたくはない領域..."
- yohさんのツイート: "#nakamecpp L1$ラインサイズの話題ででてきた L3$による性能ペナルティの話 https://t.co/kzY6aSdzeP このあたりで図解されてて面白いかも x86だとCPUID命令で情報とれるやつ→ https://t.co/wDDyMZn1Lb"
- Gallery of Processor Cache Effects
- The CPUID Explorer: Part 2
- yohさんのツイート: "#nakamecpp で指摘のあった「既存std::lock_guardを複数Mutex対応しないの?」 https://t.co/BOtardjiuQ 当初提案ではまさにその通りで、ABIを壊すからscoped_lockとして新規導入したよとのことでした。ちゃんと書いてありましたね m(_ _;m)"
- Variadic lock_guard (Rev. 2)
- nakameguro_feature.cpp vol.8
- docs/nakamecpp8_20180913.pdf at master · yohhoy/docs
- mkl-dnn/jit_avx512_core_fp32_wino_conv_2x3.cpp at 19588d1484911a3dc7933b32ce71d2f1b9bbbb78 · intel/mkl-dnn
- Prevent cores_sharing_data_cache being zero on Intel Xeon E5 v2 by playertwo · Pull Request #67 · herumi/xbyak
Ruby
- mrubyのJITの概要 - Qiita
- 「Ruby 2.6.0」が正式リリース ~JITコンパイラーの導入でパフォーマンスが向上 - 窓の杜
- 「Ruby 2.6」リリース、JITコンパイラを導入 | OSDN Magazine
- Ruby 用の JIT コンパイラを作りました。ただし VM のではない。 | Chiba’s website
- Yadriggy C · csg-tokyo/yadriggy Wiki
- Ruby 2.6正式版リリース。JITコンバイラを初めて実験的に搭載 - Publickey
Java
LTS
- Red Hat、Windows版OpenJDKの長期商用サポート提供を発表 - Publickey
- AWSが独自のOpenJDK「Amazon Corretto」発表。AWS内部で使っていたJavaを外部提供へ。Java 8は2023年まで、Java 11は2024年まで無償でLTSを提供 - Publickey
- Microsoft Azure上での実行目的ならJavaの長期サポート(LTS)を無料提供、MacやWindowsでの開発用途もOK。マイクロソフトとAzul Systemsが提携で - Publickey
- AWS版OpenJDKの「Amazon Corretto 8」正式版リリース。少なくとも2023年6月まで無償でアップデート提供 - Publickey
- OpenJDK を開発する流れ - #chiroito ’s blog
- AWS、Java 11対応の独自OpenJDK「Amazon Corretto 11」プレビュー版を公開 - Publickey
- Javaでなぜ問題が起きるのか 〜システムをきちんと運用するための基礎知識:連載|gihyo.jp … 技術評論社
- Java-MA16-JIT.pdf
- shuJIT: a Java Just-in-Time Compiler for x86
- shudo/shujit: Java Just-in-Time Compiler for x86 processors
- Java12新機能まとめ - Qiita
- ところでJavaのRaw Sring Literalsはどうなってるの? - きしだのはてな
- JDKの新しいリリース・モデル、および提供ライセンスについて
- 米Red Hat、「OpenJDK 8」と「OpenJDK 11」の開発を統括することを発表 | OSDN Magazine
- RedHatがJava 8および11の幹事になる
- EclipseとOracle、javaxパッケージ名前空間と商標の扱いに関する合意を断念
- Javaは今でも無償ですという話と最近のJava Webフレームワーク / Java is still free and Java Web FW - Speaker Deck
- これからのJDK/JVM 何を選ぶ?どう選ぶ?
- Java EE仕様はJakarta EEに改名された
- 米Microsoft、JVMのチューニング技術を持つjClarityを買収 | OSDN Magazine
- 「AzureをJavaにとってよりよいプラットフォームにする」、マイクロソフトがJavaツールベンダのjClarityを買収 - Publickey
- JVM上で動くWebアプリケーションがリソースを食いつぶす原因を探るためにやったこと【Backlog Play化プロジェクト】 | Backlogブログ
- JIT コンパイラのコンパイラスレッド、コード最適化について - それが僕には楽しかったんです。
- JIT コンパイラのコードキャッシュ - それが僕には楽しかったんです。
- Java のJIT コンパイルについて - それが僕には楽しかったんです。
TypeScript
- κeenさんはTwitterを使っています 「JITエンジンは作ったことないので実際のところは分からないけど理論的にはTypeScriptの型システムは健全性がないのでコンパイルの補助には使えない。使うと簡単に壊れたコードを生成させられる」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ヒープアロケーションをエスケープ解析しまくってスタックアロケーションに出来るなら勝てると思う(脱最適化が必要などJITコンパイルでは限界があると思う)。それをしないとJITコンパイルの実行時の情報を使ってのコンパイルには敵わないと思う。」 / Twitter
- トデス子'\さんはTwitterを使っています 「TSの型を全面的に信じてAOTで機械語吐く、別の型が入りそうなところは実行時チェックでslow pathに逃がすというのはできそうだけど、JSのJITに勝てるだろうか。anyやasを厳格に廃したコードで固めればワンチャンあるんかな」 / Twitter
- エヌユルさんはTwitterを使っています 「DartのAOTがDartVMやJavaScriptにコンパイルしたDartのパフォーマンスに劣らないのを見るとパフォーマンスの面ではいけそう 互換性切って同等程度のパフォーマンスで良いかは謎」 / Twitter
- エヌユルさんはTwitterを使っています 「asm.jsでは||で数値つけるとかで型推論の補助して高速化してたし TypeScriptの型システムを応用してもそれぐらいの補助は出来ると思うんですよね でもそれやって限られたシステムのみで高速化するならwasm使えって感じではある」 / Twitter
- zakkiさんはTwitterを使っています 「MSRのStatic TypeScriptがそれでフットプリントは小さく出来るけど速度的にはJITに勝てないだったような https://t.co/52uOQp077W」 / Twitter
- Static TypeScript: An Implementation of a Static Compiler for the TypeScript Language - Microsoft Research
- zakkiさんはTwitterを使っています 「そもそもがちっちゃいデバイス向けで速度に振ってないっていうのもあるとは思うので、強い会社が無限に頑張れば速度も頑張れるのかも」 / Twitter
スライド
- Java仮想マシンの実装技術
- 静的型付き言語用Just-In-Timeコンパイラの再利用による、動的型付き言語用コンパイラの実装と最適化
- mrubyのJIT
- V6でJIT・部分適用・継続
blog
- Scheme インタプリタにおける仮想マシンアーキテクチャの最適化
- Gauche:VMの最適化:JIT:予備実験
- DSAS開発者の部屋:最近のPython-dev(2017-04)
- won't fix: JIT platform by major browser vendor (Feb 2013)
- 米国から見た日本のRuby事情(翻訳)
- VMに手を加えずRubyを高速化するJITコンパイラ「YARV-MJIT」の話 - k0kubun's blog
- CRuby向けのLLVMベースのJITコンパイラを書いている話 - k0kubun's blog
- ヒープメモリに実行権限を与える件 - syuu1228's blog
- LL Future, tracing jit, IBM Java Just-in-Time Compiler - NyaRuRuが地球にいたころ
- Binary Size, Partial Memory Mapped File, Just In Time Compile, Latency and Throughput - NyaRuRuが地球にいたころ
- JIT コンパイラの Dead Code Elimination を利用して,同一の CIL から複数の実装を生成する - NyaRuRuが地球にいたころ
- Kazuho Okuさんのツイート: "局所性が悪い(TLB miss)というよりcache line collisionじゃないのかな / “RubyのJITに生成コードのメモリ局所性対策を入れた話 - k0kubun's blog” https://t.co/DFVdPtX0Cc"
- RubyのJITに生成コードのメモリ局所性対策を入れた話 - k0kubun's blog
- JITあれこれ | κeenのHappy Hacκing Blog
- 自作JavaScriptエンジンの進捗 - uint256_t's blog
- 論文メモ: HHVM JIT: A Profile-Guided, Region-Based Compiler for PHP and Hack | κeenのHappy Hacκing Blog
- code bloat - Google 検索
- JITコンパイル時の関数呼び出しの扱い方 - 茅の下
- melancholic afternoon
- melancholic afternoon
- https://cfallin.org/blog/2020/09/18/cranelift-isel-1/
- v8 "Launching ignition and Turbofan" 和訳 - kakts-log
- How JIT Compilers are Implemented and Fast: Pypy, LuaJIT, Graal and More | Carol's Blog
- Project Zero: JITSploitation I: A JIT Bug
- Project Zero: JITSploitation II: Getting Read/Write
- Project Zero: JITSploitation III: Subverting Control Flow
- The MIR C interpreter and Just-in-Time (JIT) compiler - Red Hat Developer
- 眼力 玉壱號さんはTwitterを使っています 「https://t.co/SPvtlNiWb3 Modern JS engine が何をしているか、低い startup cost、高い実効性能をどうやって実現しようとしているかを一望出来るこの blog entry は一読の価値がある。 # 高性能 JIT engine はこの entry に出て来る様な事を大体実装してる…膨大な engineering resource を費やして」 / Twitter
- Speculation in JavaScriptCore | WebKit
- 眼力 玉壱號さんはTwitterを使っています 「@tanakh 長い時間回る様な奴でないと startup cost が高いのでねえ > JIT # その辺りのバランスを何とかすべく各社鎬を削ってたので、dynamic typed language の JIT に関する知見が溜まったとも言えるのだけど」 / Twitter
- Documentation · V8
- Sparkplug — a non-optimizing JavaScript compiler · V8
- AArch64でJITしてみる | 雑記帳
- Universal MachineのJITコンパイラーを書いた | 雑記帳
infoQ
- Lua: 組込みスクリプトエンジン、新しい高性能VMを搭載したLuaJIT 2.0
- Javaの新JITコンパイラ、Graalを解説
- Safari、新しい低レベルコンパイラB3 JIT導入 | TECH+
- WebKitがWebAssemblyを完全にサポートした
- AppleがLLVM JITを使用してWebKitのJSエンジンをスピードアップ
- Unladen Swallow 回顧録 - YAMAGUCHI::weblog
- Introducing the B3 JIT Compiler | WebKit
Qiita
- LuaJIT 解析 - Qiita
- かRuby 2.6のJITで実装か検討を行なった最適化集 - Qiita
- Kinx での JIT、そして MIR の話 ... Ruby だけでは勿体ないネ - Qiita
POSTD
- JITコンパイルでの冒険 パート1:インタプリタ | コンピュータサイエンス | POSTD
- JITコンパイルでの冒険 パート2:x64 JIT | コンピュータサイエンス | POSTD
GitHub
rhizome
- Miura HidekiさんはTwitterを使っています 「これはすごい。ひょっとしたら、最高のJITコンパイラの教科書なのでは? https://t.co/6fDaUuHwRN」 / Twitter
- chrisseaton/rhizome: A JIT for Ruby, implemented in pure Ruby
- Jay Kumogata🔢さんはTwitterを使っています 「そんなことできるんだ。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@jay_kumogata はい、RubyでRubyのJITコンパイラを書くことは可能です。すごく簡単なものですが、私も書いたことがあります。 https://t.co/yASTkcD6S8」 / Twitter
- どきっ!mrubyだらけのTracing JITコンパイラ解説 バグりもあるよ - Qiita
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata 処理系標準機能でその処理系のJITコンパイラを書けるようにした場合、ユーザコードが適当なバイナリ作って呼び出すってこともできちゃうんだけど、あんまり気軽に触って欲しくないと時にうまく権限管理する定番ってありますかね。外部ライブラリリンク可能なら結局何でもできるからみんな気にしてない?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata FFI(JNI)を禁止するのは大前提として、JVMのJava bytecode verifierが一番の定番じゃないかと思います。ちょっと保守的でしょうからもう少し自由があり得るかもしれませんが」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata なるほど、しかしverifierまでやるのはネイティブコード対象だとちと手間がかかりますね。完全なsandboxを提供したいわけじゃなくて、内部状態をぶっ壊しちゃうコードをうっかり書いちゃうのを防ぎたいって思うんですが、徹底しないとあんまり意味が無いのかなあ。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata ネイティブコード対象だとあるバイトコードをどういうコードに落とすかは任意なのであまり意味がない気がします。バイトコードで悪意を持ってバッファオーバフロー攻撃とかを防ぐにはverifierは必要な気がします。うっかりだとどうなんでしょうかね? 続く」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata 自明に無限ループになりえる条件さえ検出できれば(完全にやるのは不可能ですが)何とかなる気もします。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata 心配してるのは、JIT用内部ルーチンのネイティブコード組み立て→実行可能ページに置いてcall、というのがユーザから気軽に呼べちゃうと、ちょっとでもミスるとABI守らずにスタック壊したりヒープ壊したりしちゃうコードが実行できちゃうなあ、というとこなんですよね。安全マットが欲しい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata なるほど。実行可能ページのアクセスを許した時点でJITとか関係なくまずい気がします。悪意が無い場合だとどうなるんだろう?決められたAPI経由(Xbyakみたいな感じ)でしか機械語命令を書き込めなくてその時点でVerifilerが動くという仕組みにすればよいのかな?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata リフレクションのある言語だと内部的に使ってるルーチンが呼べちゃったりするので、処理系内部で権限管理してユーザからの直接呼び出しを禁止するとかかなあ。Gaucheで試してるFFIは動的コード生成があるんですが、実行可能ページへのネイティブコード書き込みやジャンプ、というユーティリティ→」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @jay_kumogata にはアクセスさせたくないので、「初期化時のみ束縛が存在→内部ルーチンは定義時に束縛をクロージャ内に取り込む→初期化ルーチンの最後で危ないユーティリティへの束縛を消す」というのをやってみてはいるんですが。他の処理系で何かやってるのかなあと。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @jay_kumogata これはエレガントですね。この手の危ない機構は公開されないのかもしれないですね。例は全く知らないです。」 / Twitter
- Morgan-Stanley/hobbes: A language and an embedded JIT compiler
- k0kubun/llrb: LLVM-based JIT Compiler for Ruby
- Links.md
- vnmakarov/mir: A light-weight JIT compiler based on MIR (Medium Internal Representation)
- runtime/docs/design/coreclr/jit at master · dotnet/runtime
Twitter
その他
- Miura Hidekiさんのツイート: "mrubyのJIT、インテルさんの言うとおりにしたら速くなったのでインテルすげー https://t.co/QKwwuxomP0"
- 小倉唯さんのツイート: "あと JIT compiler だと runtime に cpuid に query かけて best op 選ぶチャンスがあるか."
- Rockridgeさんのツイート: "JavaScript JITエンジンへの新機能追加をRust言語で行えるようにするメタJITコンパイラをMozillaが実験的に開発中。名をHolyJitという。安全なコードを書けるメリットがある。 / “HolyJit: A …” https://t.co/MUfaa2wq7n"
- HolyJit: A New Hope | JavaScript
- とみながたけひろさんのツイート: "コンパイラの本はいっぱい(?)あるけど、インタプリタの本ってあんまりないよねえ…。あとバイナリトランスレーションとかCPUじゃなくてGPUとかのエミュレーションとかも。まあ真面目に実装すると色々特許とかリバースエンジニアリングとかが絡んで政治的に面倒くさいからな…"
- 瑣末u 🗹さんのツイート: "動作中のプロセスを解析してJITコンパイラでメモリ上のプログラムを書き換えてCPU性能を改善するツールらしい。現在対応しているのはMySQL系だが今後増える模様。 / “Dynimize: CPU Performance Vir…” https://t.co/CpLQ4oNwmw"
- Dynimize: CPU Performance Virtualization
- ロックフリーのkumagiさんのツイート: "JITの効果の結構大事な部分が関数のインライン化だからそれを阻害するネイティブ関数呼び出しは鬼門っていうの、pypyでmsgpackのC拡張動かしてベンチマーク取った時に痛感したな。"
- 眼力 玉壱號さんのツイート: "JavaScript 界隈でも似たような話は出てましたね(cf. https://t.co/HIBHHtHpRe ) 言語境界を跨いで inlining 出来ないと速くならない(に対する1つの approach が #GraalVM なのかもしれない)… "
- ぼうくんさんのツイート: "Js の Array sort と自前 quick sort のパフォーマンス差は JIT がかかればかかるほど大きくなるし、これは V8 とかの JS エンジンがより効率化するほど広がる http://t.co/g0oroGZu"
- yemotoさんのツイート: ""HHVM JIT: A profile-guided, region-based compiler for PHP and Hack" https://t.co/7tPa8JC6SP #engineer #feedly"
- HHVM JIT: A profile-guided, region-based compiler for PHP and Hack | the morning paper
- 渋川よしきさんのツイート: "関連研究?では日本語入力で使うLOUDSも簡潔データ構造だし、あれは木構造だから言語処理系の中でも使い所が多そうな気がする。 : 簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ https://t.co/GpBB4RW0z1"
- 簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
- 渋川よしきさんのツイート: "JIT、ネイティブにするしない、ではなくて、アルゴリズム選択みたいなのもあると楽しそうだなあって少し思ってる"
- Shiro Kawaiさんのツイート: "Gaucheはrequireされるfeatureごとに「まだrequireされてない」「require解決中」「providedされた」の状態を持ってる。この状態テーブルは排他制御されるので一つのスレッドが解決中なら参照しようとした他のスレッドは待たされる。循環は検出してエラーにしてる https://t.co/qTJ8urw8uL"
- 2019-04-20-akr-autoload-rubykaigi-after-party.pdf
- Shiro Kawaiさんのツイート: "循環というか相互依存か。自分がrequire中に他のfeatureをrequireしようとしてそれが既にrequire中になってたら諦める。既にそれまで読んで実行されちゃった分は巻き戻せないんだけど、そもそもそういう関係を作るのが設計ミスってことにしてる。"
- Fadisさんのツイート: "Webサーバの性能向上の為に度々破天荒な物を作るFacebookが今度はC++をJITコンパイルしてスクリプト言語扱いする手法を編み出したらしい。ソースはコンパイル済みヘッダと共にLLVM IRに変換されOrcJITで実行される。この手法はEuroLLVMで発表されているがOSS化はされていない https://t.co/KRLU1QcQ9C"
- Facebook Is JIT'ing C++ Code To Treat It Like A Crazy Fast Scripting Language - Phoronix
- FadisさんはTwitterを使っています 「JavaScriptでは関数の引数の型が実行するまで確定しない為、ある型で実行された際に作られたJITコンパイルの結果が以後の関数呼び出しで再利用できるかを実行環境は常にチェックしている → WebAssemblyの関数は型が確定している為この処理を 丸ごと省略できる、を #kernelvm」 / Twitter
- R. ShioyaさんはTwitterを使っています 「スクリプト言語では組み込み関数はCとかで書かれてるのでそっちのが高速ってのが相場だと思うけど,javascript に関しては「ネイティブの(特定のパラーメタに)専用化されたコード > JIT された js の専用化コード > ネイティブの汎用コード」があったりして,自前で書いたほうが全然速いことあるな」 / Twitter
- R. ShioyaさんはTwitterを使っています 「node.js だと,parseInt(16)(10 は専用化ルーチンが実装されてるのでそっちのが速い),split(入力があんま長くない時),readline あたりは注意深く組めば数割から倍以上のレベルで自前の方が速いね.ただ,古代C言語文字列プログラミングみたいなことを今更やるはめになる…」 / Twitter
- R. ShioyaさんはTwitterを使っています 「あとルーチン自体は自前の方が速くなっても,変数の使用量が増えるせいか Minor GC の回数が豪快に増えてかえって遅くなるとかもあるのでなかなかムズカシイ」 / Twitter
- κeenさんはTwitterを使っています 「Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework (DLS - Dynamic Languages Symposium) - DLS https://t.co/1yikKpSmwf」 / Twitter
- Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework (DLS - Dynamic Languages Symposium) - DLS
CacheIR
- ドッグさんはTwitterを使っています 「Firefox の JIT コンパイラが大きく改善されたらしい.昨年開発された Baseline コンパイラの inline cache を利用することで型情報を削減し,多くのサイトで 5-15% の高速化.Nightly で試せる | 'Dogfooding Warp' https://t.co/fUjJa0ra43」 / Twitter
- ドッグさんはTwitterを使っています 「Firefox のインラインキャッシュ CacheIR について: https://t.co/EaAh7b4k04」 / Twitter
- CacheIR: A new approach to Inline Caching in Firefox
- ドッグさんはTwitterを使っています 「s/多くのサイトで/多くのメトリクステストで/」 / Twitter
smi
- R. ShioyaさんはTwitterを使っています 「v8 の JIT トレース見てたらたまに型の一貫性がとれなくなったとかで deopt が起きてて不思議だったのだけど,どうも整数が31ビット範囲を超えると内部的に倍精度型に型が切り替わるのでそのあおりをくらって構造体全体やそれを見てる関数の最適化コードが根こそぎ破壊されてたと言うことがわかった」 / Twitter
- R. ShioyaさんはTwitterを使っています 「これ,メンバが必要とする値の範囲の変化に応じて動的に構造体の再構築と関連する部分の再コンパイルをしてるわけで,そう思うと結構すごいことやってるなと思う.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya 最初から8byte確保して、適応的にint64 or double切り替えとかではダメなんですかね、、、」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu smi (small integer) というのが定義されていて,union 的にポインタに埋め込む感じの実装になっているからのようです.31 ビットなのは互換性のためらしく,64bit アーキなら本来は 63? ビットまではいける気もします. https://t.co/j9PLf2ntEC https://t.co/3RDJOsANt5 https://t.co/EovPvfPhXK」 / Twitter
- Elements kinds in V8 · V8
- V8エンジンでのJavaScriptの機能と最適化コードの書き方に関する5つのベストプラクティス | POSTD
- V8 javascript engineについての細かい話 (Node.js Advent Calendar 2017) - abcdefGets
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど。 64bitだと63bitまで行けるにしても、int -> double についてはサイズだけでなく、ポインタ埋め込みから、ヒープ確保なdoubleオブジェクトに変わる感じなのですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「まあこの辺はmrubyのJITでもやっているからこの手のJITコンパイラでは普通かと。mrubyのJITはコードを破壊するコードを使わなくなったメソッドのコード跡に置いておくって方法」 / Twitter
部分評価
- Shuhei KadowakiさんはTwitterを使っています 「Dartの話がめちゃくちゃ魅力的。AOTとJITの良い部分を使い分けられたらいろいろな楽しいことできるよね。開発の柔軟性とリリースでのパフォーマンス両立できるとかめちゃくちゃいい。 #camphor_day」 / Twitter
- Miura HidekiさんはTwitterを使っています 「どういう話か気になる。Rubyの究極のコンパイラはAOTで徹底的に解析さえれた後、プログラムコードと共にそのプログラムにカスタマイズされたJITもAOTのコンパイル時に生成する形だろうなって今の所思っている。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@miura1729 部分評価を取り入れた感じですね。わかります。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@zacky1972 なるほど、そう言う考え方も出来ますね。コンパイラのサブセットなどをランタイムの一環として持つみたいなイメージでいました。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@miura1729 Pelemayでも近々同様の仕組みは必要だと見越しています。できるだけAOTで生成し、プロファイラー情報をもとに最小限のJITコード生成をする感じにしたいです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@zacky1972 やはり必要ですよね。実際に実行しなくてもおそらく抽象実行で必要な情報が集められる気がします。コンパイル速度が非現実的になるかもですが。再定義が起きうるとか、evalが実行される・evalでサポートが必要な言語仕様(数値のみとか)、が得られるんじゃないかと思います。」 / Twitter
Java
- ABAさんのツイート: "Javaで2 * (i * i)が2 * i * iより速くなる理由。JITのループアンローリングによって生成されるアセンブリコードが大きく変わるため https://t.co/fo92ZP5xwo"
- FFFumihiro MMMatsuiさんのツイート: "演算順序変わるからバイトコード変わるまではうんそうだよなって感じだけどその段階では速度差の原因が自明ではなくてJIT生成コードまで掘り下げにゃならんのな"
- FFFumihiro MMMatsuiさんのツイート: "確かにスクリプト処理系のVM高速化の時とかもある程度以上はjavap結果からのイメージと素直に繋がらなくなってそれ以上はJVMともっと下側のやり取りまで見えないとわからんなって感じした"
- FFFumihiro MMMatsuiさんのツイート: "for文にJVM側でSIMD効かしてくれる挙動も、確かfor文の中身がちょっと複雑になるとJREバージョンによって速度違ったし。そういうシビアさを気にして結局そこは高速化はほどほどにして、部分的には元に戻したりもした"
- FFFumihiro MMMatsuiさんのツイート: "ほんとに特定環境で突き詰めたらVnanoのベクトル演算は倍精度8GFLOPS近く出せたんだけど結局5GFLOPSあたりの感じで着地した"
- FFFumihiro MMMatsuiさんのツイート: "配列の算術演算を複数コンボで連ねる時に a[ i ] = b[ i ] + c[ i ]; みたいなパックしてSIMDに投げやすそうな雰囲気の単位に切って回した方がいいのか a[ i ] = b[ i ] + c[ i ] + d[ i ]; みたいに詰めた方がいいのかとかそういう試行錯誤だったっけ 確かどっちが速いか環境によってた"
- FFFumihiro MMMatsuiさんのツイート: "あくまでも特定の1つのコード内において試しただけなのでこの書き方だけ抜き出して有利不利は言えなさそうだけど、ちょっと前の環境だと後者が結構伸びて数割有利で、今の環境だと両者トントンで、なので後者はなんかシビアそうなので演算器オブジェクト実装したけど無効化して前者が動くようにしてる"
- FFFumihiro MMMatsuiさんのツイート: "これだ。 高速化のために実装したもののFLOPSが環境で結構大きくブレるっぽいので無効化してる2連ベクトル加算器オブジェクトの処理: https://t.co/BsHRxKVOhv 代わりに動いてるのは普通に1連のこっち: https://t.co/Vm2MeSsz6h 4~8GFLOPSくらいの間の変動幅なのでたぶんSIMDの効き方が違う?"
- FFFumihiro MMMatsuiさんのツイート: "このあたりのやつ演算対象データ全体がCPUの何次キャッシュまでに載りきるかどうかで速度何倍も違うけど、一応は前者も後者も両方全部1次キャッシュに乗り切る領域で測ったはず、確か"
- FFFumihiro MMMatsuiさんのツイート: "後者のベクトル長を横軸にしたFLOPS値のグラフはこれ https://t.co/b34UZTqdZK SIMD 有効/無効はjava実行時のオプションでUseSuperWord(だっけ?)有効(確かデフォ)にしたり無効にしたり"
- FFFumihiro MMMatsuiさんのツイート: "そんななので、やっぱJava上だけで速くする時って、普段はバイトコード読んで効率的か?はそれなりに有用な情報と思うけど、結局JVMはスタックマシンで、CPUというレジスタマシンにJITして、んでCPUの機能も使ったりするので、バイトコード見た印象から乖離した不思議な速い遅いは確かにあるっぽいなと"
- FFFumihiro MMMatsuiさんのツイート: "さっきの記事に納得したのでした。 着地できた"
- FFFumihiro MMMatsuiさんのツイート: "そういえばProject Panamaだっけ? JavaでSIMD機能のAPI叩けるようになるとかいうやつ超期待してる"
Erlang OTP24
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ErlangはOTP24でJITコンパイルされるようになったが、JITを入れるまでの経緯がなかなか興味深い。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「OTP24で入ったJITはとても愚直なJITだ。最適化は考えない。とりあえずネイティブコードはどんなコードであれ早いのだから愚直にネイティブコードに置き換える。結果としてだいぶ早くなった。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「そのアプローチだと計算主体のトイプログラミングだと効果あるけど、大きなプログラムだとワーキングセットがでっかくなって逆効果な気がする >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「JITコンパイラはネイティブコードを置き変える効果より、命令の粒度が小さくなって最適化しやすいことによる効果の方が大きいような気がする」 / Twitter
@RKX1209
- るくすさんのツイート: "DalvikVM、最初はDEXインタプリタとプロファイラ動かしつつ、ボトルネックな所をJITにするのは知っていたけど、最近のARTはAOT(Ahead-of-Time)で最初にコンパイルしてしまうのか。加えてランタイムな情報を元に一部だけコンパイルし直すと"
- るくすさんのツイート: "けど全てAOTだとコスト高すぎるので最初はJITにしておいて、充電中とかのアイドル時にコンパイルするみたいな仕組みに変わった? いずれにせよすごいチューニング力だな..."
- るくすさんのツイート: "@slankdev BSD含め、kernel interpreterは大体JIT対応してるはずですね"
- るくすさんのツイート: "ああそういえば今年のセキュキャンには"セキュアなCPUを作ろう"なんてコースがあって、データの型チェックとかUse-After-Free防止のためのシグネチャの仕組みなんかをCPUがやってくれるという中々アツい物っぽいです。興味のある人ぜひ #seccamp"
@kazuho
- Kazuho Okuさんのツイート: "歴史的に言うと、インタプリタの歴史においては逐次パース&実行のほうが、CPUとメモリが潤沢になった近年までは一般的な形式だったんじゃないの"
- Kazuho Okuさんのツイート: ".@ockeghem @mattn_jp たとえばシェルスクリプトの処理系は今でも行単位だと思います"
- Kazuho Okuさんのツイート: "JITの中間表現にCコード使うアプローチ、アムダールの法則との戦い辛そうなの以外にも、エリアシング関連の無駄なオーバヘッドがコンパイル時と実行時にある気がするんだのね"
- Kazuho Okuさんのツイート: "crubyのJITがCコンパイラ経由なの、今まで得心が言ってなかったけど、今日の話聞いて納得したというか、競争がある中で段々と速くしていくのは正しいんだろうなと思った"
@shinh
- shinichiro hamajiさんのツイート: "MJITのdlopenを置き換えるパッチ書いてたりしてた話について書いた https://t.co/J1mfh50erH まとめるとdlopenのオーバヘッドを調べる程度の役には立つんじゃないの、という気持ちで作ったという感じです。あと .o て定期的に直接ロードしたくなる (https://t.co/cuRJhCqjNm とか tinycc はそれできる)"
- MJIT で dlopen 使わずに ELF オブジェクトを直接ロードする話 - 兼雑記
- Dynamic Test Runner 0.0.3 - 兼雑記
- Shiro Kawaiさんのツイート: "Cコード動的に生成してコンパイルしてdlopenという手は20年以上前にシミュレーションツール作った時にやったことある(シミュレーションの式が変更される度にコンパイル)。ずっと使ってるとメモリ食いつぶすのは再起動してねで済ませた。自力でロードはさすがに考えなかったなあhttps://t.co/TdAbFyRMOG"
- Shiro Kawaiさんのツイート: "いや、メモリ食いつぶすのは、処理系のGCの都合でdlcloseできない事情があったせいだったような気がする。だとしたら自力でマップしてても同じことだったかもしれん。"
- shinichiro hamajiさんのツイート: "Mach-O とかならともかく、 ELF の arch 追加はたぶんそれほど大変ではないかな…ということで x86:https://t.co/sPnxLg24CD と arm:https://t.co/gAqR0QZyYa やってみた。 MJIT で動くかは謎… https://t.co/bNphJDuJ8C"
- Add support for 32bit x86 · shinh/objfcn@fc6d8db
- Add support for ARM · shinh/objfcn@92e5047
- NeoCatさんのツイート: ".so経由で読むのが不都合ならバイナリを自力で読めば…とは思うけどarch依存もありそうだしやっぱり実用的ではないですよね…。RubyKaigiでLightWeight-JIT作ってるという話もあったけどこれもMRI並のarch対… https://t.co/i7YFGDdUjp"
@blackenedgold
- κeenさんのツイート: "VMとかJITとかのテクニックが色々載ってて良い資料だった。所でJITのコードの goto **buf;のインパクトが凄くて… Virtual machine and javascript engine https://t.co/DiFH3mTa6z"
- Virtual machine and javascript engine
- κeenさんのツイート: "インタプリタを作る本がないとは言ってないですよ。少ないと。そして欲しいのはただ作るだけじゃなくて高速なものを作る本が欲しい。シンプルなインタプリタとVMの話から命令フュージョン、Threaded VMやJIT、word boxingやNaN boxing、global dbとメソッドキャッシュなんかの話が載ってる本が欲しい"
- Miura HidekiさんはTwitterを使っています 「JITコンパイラのデバッグ、Xbyakを使ったネイティブコードを直接生成とC言語生成では、Xbyakを使った方が簡単で、期待しないコードが出てきたときはワッチポイントを掛けるだけでいい。一方、C言語生成ではどこで生成されたものか分からないから、例えばコメントを生成するとかやるけど、めんどくさい」 / Twitter
- GDB JIT Interface · v8/v8 Wiki
- 早稲田大学リポジトリ
- Elixir試飲録 (7) – Erlangの軽量プロセスはどのように実現されているのか? – ゆびてく
- esbasic0011 - essen-wiki
- SML#でJITコンパイラを作る軽い話 | κeenのHappy Hacκing Blog
GC
nursery
- uint256_tさんはTwitterを使っています 「うん? https://t.co/pPoEGLXNjS」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@uint256_t スタックポインタをスタック種類分管理しないとならないのが面倒そうです。 スタックをnurseryとして使う(popせず、一杯になったらgcする)という処理系がありますが(Chicken Scheme)、そこからの発想で特定の種類のオブジェクトのnurseryを設ける、というのはGaucheでやってます。」 / Twitter
- _ko1さんはTwitterを使っています 「@anohana @uint256_t 溢れたら全体でgcですか?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@_ko1 @uint256_t nurseryは溢れたらそこだけgcします。一種の限定的な世代別で、nurseryを指すポインタはVMのレジスタやスタックなど限られた場所にしかないので軽いgcです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @_ko1 @uint256_t つまり、nurseryはBOXINGされたオブジェクトを格納するというイメージですか?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @_ko1 @uint256_t ヒープの第0世代みたいな感覚です。単にポインタ移動でアロケートできるから速い+ほとんど一時的オブジェクトだから溢れてgcする時点では本当のヒープに移す生きてるオブジェクトは少ない、という。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @_ko1 @uint256_t なるほど!すっきりしました。ありがとうございます」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @_ko1 @uint256_t これを徹底したのがChickenで、オブジェクトはまずCスタック上にアロケートされ、関数はリターンでスタックをポップせず、スタックが溢れそうになったら活きてるのだけヒープに移して先頭にlongjmpします。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana @_ko1 @uint256_t なるほど。スタックマップの実装を工夫すればスタック上はUNBOXに出来そうですね」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 @anohana @_ko1 @uint256_t tcfmで話されていたネタですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 @anohana @_ko1 @uint256_t あれ?どの回でしたっけ?」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 @anohana @_ko1 @uint256_t https://t.co/Viq5jXjSNO」 / Twitter
- Turing Complete FM:Apple Podcast内の19. Gauche Schemeのスタックとヒープのハンドリング (川合史朗)
- Miura HidekiさんはTwitterを使っています 「ヒープの第0世代、新しい目線を頂いた。この目線で次期プロジェクトを検討しなおしたい >RT」 / Twitter
リージョン推論
- Orumin de Izumoensisさんのツイート: "参照カウンタの GC とかはあったほうがいいとおもうけど"
- ぶんちょうさんのツイート: "まあ普通に自動でやりたいのでリージョン推論でもGCでもいいのだけど"
- Orumin de Izumoensisさんのツイート: "リージョン推論、静的にメモリ管理されるし自動的によくやってくれて最高っぽい"
- Experimental Rhino develop-log: 徒然なるままにrust書いて;スタックベースのリージョン推論とGCの話
- 定義 RBMM: リージョン推論に基づくメモリ管理 - Region-Based Memory Management
- リージョンについて | κeenのHappy Hacκing Blog
- 静的なメモリ管理の話。リージョン推論とλ計算からRustまで | κeenのHappy Hacκing Blog
- The GC Handbook - 10.2 Region inferencing(リージョン推論) その1 - 毎朝ほんを30分くらいよむますブログ
- The GC Handbook - 10.2 Region inferencing(リージョン推論) その2 - 毎朝ほんを30分くらいよむますブログ
- Non-Lexical Lifetimes - Qiita
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「rustc は中間表現のコントロールフロー上でリージョン推論するらしくて、えっそれコンパイルの再現性とかそういうのは大丈夫なんですかね」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「assert x is not None を書くと型検査が通ったり通らなかったりする Python とか TypeScript と同じような不安感が」 / Twitter
Boehm GC
- Boehm GC - HoneyComb
- Boehm GCの使い方
- Boehm GC ライブラリを使って C/C++ でもガベージコレクションしよう
- Boehm GC ライブラリを使って C/C++ でもガベージコレクションしよう(1)
- LinuxC | GC
- A garbage collector for C and C++
- Boehm garbage collector - Wikipedia, the free encyclopedia
- BoehmGCでC++でもガベージコレクション♪ - きままにブログ
- Boehm GC人門 - snipsnipsnip
- Lush Green
- LLVMで動くオブジェクト指向言語を作ってレイトレした - 近&況
- boehm gcを触ってみた - 近&況
Java
- Java VisualVM
- Javaガベージコレクションのエッセンス
- JavaVM監視・解析ツール HeapStatsを使ってみた | キャスレーコンサルティング 技術ブログ
- Java 8リリースの変更
- www.is.titech.ac.jp/~sassa/kenkyuu-memo/agesen-garbage-collection-PLDI98.010308
- G1GCのログの読み方 - sugarlife's blog
- チューニングのためのJava VM講座(後編):ガベージコレクタの仕組みを理解する (1/2) - @IT
- チューニングのためのJava VM講座(前編):Hotspot VMの基本構造を理解する (1/2) - @IT
- インフラエンジニアのメモ : GCログが再起動のたびにログが上書きされてしまう
- Java VisualVM
- IBM Knowledge Center - 並行マーク
- PowerPoint Presentation
- 正確なGCへの道
- 第5回 Java VMの情報を取得する(前編):Javaでなぜ問題が起きるのか 〜システムをきちんと運用するための基礎知識|gihyo.jp … 技術評論社
- Java における Scavenge GC と Full GC の違い - スタック・オーバーフロー
- ZGC - オラクルの巨大ヒープ向けガベージコレクタ
- Java 10 Release Candidate 1 公開
- Javaの超低レイテンシなGCアルゴリズム、ZGCをコンパイルして動作を試す - くろの雑記帳
- 島鉄雄さんのツイート: "Java で開発中の ZGC が驚愕のスペックなんでビビった。 TB 単位のヒープでも止まる時間が 10ms 以下というと、十分ゲームで使えるレベルに思える 代わりに通常の処理が少し遅くなるようだが、少しぐらいなら大した問題ではない 同様のものが自前で実装出来れば最高だが… https://t.co/HZNcbz1L2l"
- The Z Garbage Collector - An Introduction
- 「Java 12」リリース | OSDN Magazine
- 島鉄雄さんのツイート: "Java 12 の ZGC の性能評価の記事があったけど、やっぱ凄いわ…これ以外の GC が必要なのかと思ってしまう。 メモリが大量に載っている環境用みたいな触れ込みだったけど、8GB でも良好な結果だ。 これを C とかでも使えるようにライブラリ化されないかな。 https://t.co/4hy3x7CJQH"
- サマーインターンシップでHBaseをJDK 11で動かしZGCとの性能を評価してもらった話 - LINE ENGINEERING
- 島鉄雄さんのツイート: "良く考えたらライブラリ化は無理だった… こういう最新の並行 GC は read barrier の様な部分をコンパイル時に仕込まないといけないから、コンパイラ込みの実装が必要なんだよなぁ。"
- Switch式とShenandoah GCを試験的に備えたJava 12がリリース
- 島鉄雄さんのツイート: "Java11のZGCはポインタの上位数ビットにフラグを埋め込んでるけど(いわゆるtagged pointer、ZGCではcolored pointer)、仮想記憶を使う事でマスク不要にしてる。 ポインタを0x0fとすると0x1fや0x2fを0x0fにマップする事で0x0f, 0x1f, 0x2fは同じメモリにアクセス出来る。 だから現状Linux専用のようだ。"
- 島鉄雄さんのツイート: "64bit ポインタ基本的に 58bit しか使われておらず、上位 16bit が空いている。 ここに型情報やらフラグを埋め込んだりしてるけど、ポインタとして使うたびにマスクして上位ビットを 0 にする必要がある。 使ってない部分は CPU が無視してくれれば、仮想記憶を使ったトリックなんて必要なかったんだ。"
- 島鉄雄さんのツイート: "おかげで、ZGC は家庭用ゲーム機や組み込み機器などに移植する事は出来そうにない。 なので、もし次世代 GC を移植したくなった場合は、Java12 の Shenandoah GC が候補になるかな。"
- 島鉄雄さんのツイート: "> 58bit しか使われておらず、 48bit の間違いだった…"
- 島鉄雄さんはTwitterを使っています: 「コンパクションのあるGCの場合は、大抵ポインタのポインタを使ってるよ。(Java12のshenandoahとか) JavaVMは参照の実装方法を規定してないから、そういう実装も出来ると思うけど、C++も別にコンパイラがそういう風にコンパイルすれば良いだけだと思う。 https://t.co/AVYdETuc5H」 / Twitter
- oooooさんはTwitterを使っています: 「@yuyabu2 GCがコンパクションするとオブジェクトのアドレスが変わります。つまりGCのある言語ではポインタが使えません。そのためJavaではポインタよりも抽象度の高い参照という概念を導入しています。ちなみにC++の参照はポインタのシンタックスシュガーでしかないのでJavaの参照とは別物です」 / Twitter
- oooooさんはTwitterを使っています: 「@shima_tetsuo そうですね。だからポインタ=アドレス値という関係が壊れるという話しです」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「@ooooo いや壊れてないよ。 ポインタ=アドレス(オブジェクトのアドレス) ポインタ=アドレス(GCが管理している領域のアドレス)→アドレス(オブジェクトのアドレス) と間接参照が1つ増えてるだけで。」 / Twitter
- oooooさんはTwitterを使っています: 「@shima_tetsuo それは言葉遊びでは?ポインタがオブジェクトのアドレスを直接指さないならCで言う所のポインタとは言えないでしょう」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「@ooooo 自分が言いたいのはC++とJavaの参照はCのポインタと同等という事ですが、C++やJavaでコンパクションを実装するにはポインタのポインタが必要といったけど、もしCで実装する時も同じようにポインタのポインタを使います。 要するにアセンブラ的に全く同じコードになるでしょう。」 / Twitter
- yuyabu@ネスペ10/20さんはTwitterを使っています: 「@ooooo @shima_tetsuo ダブルポインタも一応ポインタでは?」 / Twitter
- oooooさんはTwitterを使っています: 「@yuyabu2 @shima_tetsuo そういう意図の話しではないのです。わかりにくかったらごめんなさい」 / Twitter
- yuyabu@ネスペ10/20さんはTwitterを使っています: 「@ooooo @shima_tetsuo うーん理解不足なのでダブルポインタがポインタかどうかという話をしているようにしか見えません。すいません。 https://t.co/8zVH614ZvT (やっぱりこういう論争についていけません...)」 / Twitter
- yuyabu@ネスペ10/20さんはTwitterを使っています: 「参照、参照渡し、参照の値渡し あたりの論争はあんまり理解してない」 / Twitter
- 「Jakarta EE 8」リリース、Java EE 8と完全互換 | OSDN Magazine
- [速報]Java 13が登場。ZGCの改善やSwitch文の実現など新機能。 Oracle Code One 2019 - Publickey
- 高梨陣平さんはTwitterを使っています: 「JDK11にはGCが無ければどれだけ速いかを検査するための何もしないGC、Epsilonが用意されている。 https://t.co/bkiSg689Cj」 / Twitter
- Heapothesys - Amazon Corretto によるオープンソース GC レイテンシベンチマーク
- OpenJDK 16のShenandoahガベージコレクション:並行参照処理 - 赤帽エンジニアブログ
- JVM における G1GC とヒープの雑な話 - それが僕には楽しかったんです。
- Microsoft、JVM GCログを活用するGCToolkitをオープンソースとして公開
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Java 17 はどれくらい速いのか? デフォルトのG1GCを使った場合、Java 11と比べて約8.7%速く、Java 16 と比べて約2.4%速い。なお、ParallelGCを使うとさらに16%ほど速くなるが、旧バージョンとの差は小さくなる。 https://t.co/9gyi8jFfMa」 / Twitter
- OptaPlanner - How much faster is Java 17?
Android
- 富豪的 Android プログラマの為の Eclipse Memory Analyzer Tool 入門 - sandbox
- Eclipse Memory Analyzer Tool と Android 環境での Out of memory デバッグ | Drowsy Dog's Diary
- アンドロイドアプリのThreadがリークするとき « 大阪のアンドロイド/iOS・ Webアプリ開発会社 ノーティス
- Leak canaryで メモリリーク調査
C#
- [sos]!GCRoot:オブジェクトを参照しているオブジェクトのパスを表示
- Microsoftが.NETの手動メモリ管理機構をSnowflakeとして公開
- .NET の「実行時型情報」は immutable かつ GC 不可能 - NyaRuRuが地球にいたころ
- .NET GC & Memory (1) - NyaRuRuが地球にいたころ
- .NET GC & Memory (2) - NyaRuRuが地球にいたころ
- 変数スコープの最後までオブジェクトは生きているという誤解 - NyaRuRuが地球にいたころ
- write barrier - NyaRuRuが地球にいたころ
Ruby
Twitter
- κeenさんのツイート: "CoWさせるためにBitMapで管理ってRubyで結構前から取り組んでるよね。 Island Life - GC切って性能向上 https://t.co/lMSGajMKMA"
- Kazuho Okuさんのツイート: "ruby専用のarenaを作っとくのが一番いい解決策なんじゃないのかな(そこはGlobal VM Lockとるからひとつでいいわけだし) / “Malloc Can Double Multi-threaded Ruby Prog…” https://t.co/LcY7hq33y9"
- Malloc Can Double Multi-threaded Ruby Program Memory Usage
- Kazuho Okuさんのツイート: "色んなスレッドに紐付いたarenaに、gc対象のオブジェクトから紐付いたmalloc領域を作っちゃうのが問題、というのが正しいかな。それらの領域のほとんどは短命なオブジェクトなのでgc時に解放されるが、一部は長命なのでスラブは解放されない。というのがいくつものarenaで発生する"
- Yukihiro Matsumotoさんのツイート: "Rubyも malloc で確保するメモリについてはやってるんですが、GPU のメモリは対象外ですね。… "
- Kazuho Okuさんのツイート: "なるほどありがとうございます。任意のクラスのオブジェクト(GPUメモリ、ファイルデスクリプタ、etc)について、それぞれカウンタをもち、どれかが閾値を超えた時点でGCを動かすのが理想なんだろうなぁと思いました… "
- Urabe, Shyouheiさんのツイート: "malloc以外でもrb_gc_adjust_memory_usage() っていう最近追加されたAPIはあるんですよ。 https://t.co/dKQukYvTyU ただGPUみたいなアドレス空間から違うやつは厳しい。あくまでメインメモリのプレッシャーしか計測してないので。… https://t.co/j2VEmprEBM"
- Urabe, Shyouheiさんのツイート: "ファイルディスクリプタに関しては一応一発open(2)してみてerrnoがEMFILEとかで失敗したときはGCしてみる、みたいな処理は入ってますね… "
- Kazuho Okuさんのツイート: "プロセス単位のfd制限がない場合にosの資源使い切ったりします?… "
- Urabe, Shyouheiさんのツイート: "とくに考慮してないから使いきれると思われます。… "
- Kazuho Okuさんのツイート: "V8とかだとGC外に確保されたメモリ量のカウンタがあって、それをベースにGC起動するようになってるって話は前にしましたっけ… "
- そのっつ (Naotoshi Seo)さんのツイート: "RubyなどGCな言語でGPUを使っていると、GPUメモリを大量に使っていてもメインメモリ上では全然使っていないように見えてGCしなくてもまだ良いんじゃね?って処理系に思われてしまうんだけど、Pythonなど参照カウントな言語だと参照がなくなった瞬間にGPUにメモリを返却できるので嬉しいのです。"
- Kazuho Okuさんのツイート: "共有オブジェクトの生成と管理に制限を設けることで、マルチスレッド環境でのGC等の並列性がどう高まるのかが鍵だと思うし、そのへんの話を楽しみにしてる #rubykaigiA"
- Kazuho Okuさんのツイート: "共有オブジェクトは専用のGCアリーナにプロモートしてそこで適宜GCするみたいなやり方なのかなぁと想像"
- Kazuho Okuさんのツイート: "複数のアリーナをもつGCにして、共有オブジェクトから参照されるオブジェクトは専用のアリーナに移動させるみたいなやりかたではないのか... #rubykaigiA"
- Kazuho Okuさんのツイート: "実装としては移動もしくはコピーによるmessage passingなのね #rubykaigiA"
- Kazuho Okuさんのツイート: ""shared object" って言い方をしてるけど、"no shared" なmessage passingだって言った方がわかりやすいのでは(内部では必要に応じてデータ共有するんだろうけど) #rubykaigiA"
- Kazuho Okuさんのツイート: "immutableなオブジェクトを交換するメッセージパッシングなら意味論的にはメッセージは全部コピーでよくて、GuildごとにVM別で良いし、GCやVMを共有する背景にはメッセージパッシング以外にやりたいことがあるからだと思うんだけど、具体的に何なんだろう #rubykaigiA"
- Kazuho Okuさんのツイート: "kh_mt_t をラップする型をつくって、その型の中にROMテーブルへのポインタを追加し、RClass から参照するのはラップされた型にすればうまくいきそう #rubykaigiC"
- Miura HidekiさんはTwitterを使っています 「Rubyのコンパクションってどうやって参照元を書き変えているのかな?とずっと疑問だったけど解決した。多くのアプリケーションで効果がありそうな気がする。」 / Twitter
- Yukihiro MatsumotoさんはTwitterを使っています 「Link: Ruby Garbage Collection Deep Dive: Compaction | Jemma Issroff https://t.co/jHdanerOEZ」 / Twitter
- Ruby Garbage Collection Deep Dive: Compaction | Jemma Issroff
- Rubyist Magazine - レアでアレなGCの話
- 第5章 ガ-ベージコレクション
- GUIアプリケーションなどが保持するmrubyのオブジェクトのGC対策 - Qiita
- 最近のruby-core (2016年2月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年3月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年4月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年9月) | Money Forward Engineers' Blog
- RubyでOSやGCを書く野望 - Qiita
D
- D言語のGCの仕組み
- ガベージコレクション - プログラミング言語 D (日本語訳)
Go
- Go言語の低レイテンシGC実現のための取り組み | プログラミング | POSTD
- 本の虫: Goは32bit開発に不適
- Go言語のリアルタイムGC 理論と実践 | プログラミング | POSTD
- GolangのGCを追う | SOTA
- 論文紹介:The benefits and costs of writing a POSIX kernel in a high-level language | ブログにしてブログにあらず
- go gc algorithm 101 - Speaker Deck
Mozilla
- ServoのDOMバインディングの話 - snyk_s log
- Garbage collection - SpiderMonkey | MDN
- Rockridgeさんのツイート: "Fx54:マルチプロセス機能(e10s)有効時、ユーザーの入力中はインクリメンタルGCの処理は停止時間の最も少ないものだけを実行するようにした。 / “1338518 – Consider to not run 40ms GC …” https://t.co/tYITC2kaeA"
- Rockridgeさんのツイート: "Fx58:ガベージコレクションに関する処理の一部を非同期化した結果、メモリ解放の処理能力がアップした、ということのようだ。 / “1298018 - Investigate allocating nursery chunks i…” https://t.co/aDjcs0HF1G"
- Rockridgeさんのツイート: "Fx63:ガベージコレクションの処理を改善した件について、詳細な内容が綴られている。最近のCPUで効果が高いらしく、Intel Core i7-6600Uの環境でSpeedometerのスコアが2.5%アップした。参照:… https://t.co/QUBapMkcRi"
Cycle Collector
- なかのん&マジックさんのツイート: "最近見たクラッシュバグを見てると、Cycle collectionは仕組みかGeckoでの実装のどちらかがまずい感じしかない。普段のrefcountのincrementのコストを無視できるゆるいプロダクトなら良いんだけど。"
- GC and CC logs - Mozilla | MDN
- Interfacing with the XPCOM cycle collector | MDN
- 言語の GC 機能と参照カウント (中編) - muddy brown thang
- A Cycle Collector on Gecko - Backnumbers: Steps to Phantasien
Google
- V8 5.4ではJavaScript Engineのガベージコレクタ改善でヒープメモリ使用量を最大40%削減、パーサ性能も向上 - Publickey
- どどんとふ公式鯖中の人さんのツイート: "Ciscoのサーバーは、BIOS設定に標高ってパラメーターがあって、設定値に応じてメモリーのバックグラウンドチェックの頻度が変わるのを最近知った。 会社ぐるみで割と本気で宇宙線気にしてる。 https://t.co/rWosoTuieb"
- ロボ太さんのツイート: "宇宙線問題、BlueGeneは例外飛ばしてプログラマ側でチェックポイントリスタートかけるんで、どこで例外が来ても大丈夫なようにコードを書くのが大変だったと聞いたけど、京コンピュータはハード側に命令リトライ機構を備えているので、プログラマはそこを気にしなくて良かった。"
- Kentaro HaraさんはTwitterを使っています: "「宇宙線が降ってきてメモリのビットが狂う」「ハードウェアのバグでメモリのビットが狂う」というのは非常にまれな現象だけど、Chromeくらいのユ
- Kentaro Haraさんのツイート: "Oilpan(BlinkのGC)でヒープコンパクションが有効化されました。アプリによっては数MBのメモリ削減になります。Operaで先駆けて実装されたものを(Operaブログ:https://t.co/ruZu1wRswf)、Operaのお友だちがBlinkに移植してくれました!"
- Kentaro Haraさんのツイート: "ちなみに、そのヒープコンパクションのパッチがこれ(https://t.co/s0hfSf8hmr)。まるでC言語の教科書みたいにポインタのポインタをめまぐるしく駆使した技巧的な実装で、レビューするだけで丸々3日以上かかりました(やってることの複雑性からしてやむをえない)。"
- Rockridgeさんのツイート: "本記事ではWebコンテンツの表示のカクつきをジャンクと呼び、Chrome 46時点までにこのジャンクを減らすべくガベージコレクションの一部処理を別スレッド化するなどの改良を加えたことを説明している。 / “V8 JavaScri…” https://t.co/801xJuIaKf"
- Rockridgeさんのツイート: "GoogleはChrome搭載のV8にOrinocoと呼ばれる新しいガベージコレクション機構を組み込もうとしている。これまで以上に処理の別スレッド化を進め、スイープすべきオブジェクトの選別手法も洗練させた。 / “V8 Java…” https://t.co/TAuj8oIEJT"
- Rockridgeさんのツイート: "Chrome 51ではOrinoco(新しいガベージコレクション機構)の一部機能が実装されているほか、WebAssemblyの初期段階のサポートも行われている。 / “V8 JavaScript Engine: V8 Relea…” https://t.co/9rm2ShZREn"
- Kentaro Haraさんのツイート: "Chromeのメモリヒープを眺めてると、Gmailを長時間放置すると3〜5割くらいのフラグメンテーションを起こしている。C++なのでコンパクションするのは難しいのだが、オブジェクトの割当を賢くするだけでもフラグメンテーションは大幅に減らせるはずで、"
- Kentaro Haraさんのツイート: "たとえばオブジェクトを割り当てるときに、型やサイズをヒントに寿命を予測して、短寿命のものと長寿命のものを別ヒープに振り分けるだけでも相当マシになる気がする。これこそ機械学習させたいのだが、if文ひとつを挿入することも許されない性能カチカチのmallocの世界でどうやるか。"
- Kentaro Haraさんのツイート: "(っていうか一般論として、ブラウザがページを読み込むときに発生するオブジェクトのアロケーションパターンなんてだいたい似通っているはずで、dynamic profilingベースで割当アドレスを最適化できれば相当マシにできる気はする。勝負はいかにそれを軽く実現できるか。)"
- V8 JavaScript Engine: Concurrent marking in V8
- Kentaro Haraさんのツイート: "Oilpanプロジェクトを始めてほぼ6年、ついにBlinkとV8の統合GCをローンチしました!!(๑˃̵ᴗ˂̵)و https://t.co/KahYum19aQ https://t.co/EXabaWg2lu さて次はBlink側のコンカレントGCを作るか・・・。"
- unified-heap: Enable per default (I473f85bb) · Gerrit Code Review
- Towards a Unified Blink and JavaScript Heap // slidr.io
- Unified V8-Blink Garbage Collected Heaps - Google グループ
- nhirokiさんはTwitterを使っています 「講演する機会を頂きました。Chrome (Chromium) がウェブ特有の実行モデルやセキュリティモデルを守りながらどのように V8 と協調しているのか、そのアーキテクチャを紹介する予定です。他にもチームメイトが C++ / JS を跨ぐクロスコンポーネント GC と Web IDL コードジェネレータについて話します。」 / Twitter
- Blink GC API reference
- Cross-Component Garbage Collection – Google Research
- High-performance garbage collection for C++ · V8
- Pointer Compression in V8 · V8
Apple
- Rockridgeさんのツイート: "Riptideは次期Safariに搭載される新しいコンカレントGCシステム。ガベージコレクション処理の非同期化と並列化を進めるなどし、長い停止時間の発生を極力抑えたという。 / “Introducing Riptide: Web…” https://t.co/vx33WpTcFX"
blog
κeenのHappy Hacκing Blog
- WebAssemblyでGC | κeenのHappy Hacκing Blog
- Thoughts on GCs | κeenのHappy Hacκing Blog
- Kazuho Okuさんのツイート: "C言語でアプリケーション書く最大のメリットのひとつが、メモリ管理戦略を含むデータ構造の設計を自由に行えるというところだというのは、強調してもしすぎる論点ではないと思う… "
- Kazuho Okuさんのツイート: "H2OはWebサーバとしては小規模だけど、メモリ確保手法だけでもmalloc/free、プール、参照カウント、バッファ(一定サイズを越えるとtmpfsベースになる)の4種類を使い分けるようになってるし、まあそんな感じでやるもんです。大容量バッファをメモリ管理戦略の一部にできるのは64bit時代ならでは。"
- Kazuho Okuさんのツイート: "細かいこと言うと、メモリを逐次解放するつもりがないなら、malloc呼ぶのは誤り。大きなブロックを確保して、先頭から順次使っていくのが正しい戦略です。処理が単純化し使用メモリ量が減り局所性が向上する結果、速度が向上する。世代GCやサーバ等多くのプログラムで用いられる一般的な手法です"
- Kazuho Okuさんのツイート: "リクエストで使う文字列→リクエスト毎のプールで確保し、完了時にまとめて解放 同一H2接続のリクエスト間で共有するHPACK文字列→参照カウンタで確保しプールに登録。全てのリクエスト完了時に解放 POSTデータ→tmpfsにフォールバックするバッファに確保 H2接続を表現するオブジェクト→malloc/free"
Tociyuki::Diary
- Oberon システムのゴミ集め - Tociyuki::Diary
- 型記述子ごとの Cheney Copying ゴミ集め (その 2) - Tociyuki::Diary
- DSAS開発者の部屋:最近のPython-dev(2018-06)
- ざっくりわかった気になるモダンGC入門 - Cybozu Inside Out | サイボウズエンジニアのブログ
- clearstackの話 - 兼雑記
- LUA 5.1 の GC - NyaRuRuが地球にいたころ
- Island Life - GC切って性能向上
- Flashのガベージコレクション – 遅延参照カウント « Rest Term
- 本の虫: C++30周年を記念してCFrontのバグ調査をしてみた
- Memory allocation (& GC 処理) : メモリの確保処理 (GC 処理) : slow-path の処理 (4) GC 処理 : ParallelScavengeHeap の場合 : Minor GC の処理
- 簡単なGCを書いてみたらメモリ使用量が1/1000になって驚いた話 · うさぎ小屋
- GCアルゴリズム詳細解説
- ガベージコレクションの実装法と評価
- GCが止まらない - Documents
- メモリリークが起こってしまう原因は?予防策もご紹介します! | Qbook
- JDK 13のShenandoah GC パート1:ロードリファレンスバリア - 赤帽エンジニアブログ
- JDK 13のShenandoah GC パート2:転送ポインタワードの廃止 - 赤帽エンジニアブログ
- JDK 13のShenandoah GC パート3:アーキテクチャとオペレーティングシステム - 赤帽エンジニアブログ
- JDK 14のShenandoah GC パート1:自己修正バリア - 赤帽エンジニアブログ
- JDK 14のShenandoah GC パート2:並行ルートとクラスアンロード - 赤帽エンジニアブログ
- BlinkOn 9: Towards a Unified Blink and JavaScript Heap - Google スライド
スライド
- Miura Hidekiさんのツイート: "GCでメタデータを省略すると言えば、Precise garbage collection for Cという論文があって面白いよ、手前みそだけど紹介のスライド作っているので見てみて https://t.co/RDfj88iarb #tcfm"
- Precise garbage collection for c
- GCと1bit | κeenのHappy Hacκing Blog
- introduction-to-modern-gc // Speaker Deck
- WebAssemblyでGC | κeenのHappy Hacκing Blog
- make of MiniGC
- shinjuku.rs#12:ruruby_2 - Google スライド
- Rustでつくるガーベジコレクタ - Speaker Deck
- GCと1bit | κeenのHappy Hacκing Blog
POSTD
- Haskell、OCaml、RacketでGCのレイテンシを測る | コンピュータサイエンス | POSTD
GitHub
- nyuichi/gc.h: Header file-only Non-moving & Precise GC for C (< 100LOC w/o comments)
Qiita
- C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita
- MiniLispのガベージコレクションを解説する - Qiita
Twitter
その他
- Fadisさんのツイート: "shared_ptr、計測してみると割と無視できないオーバーヘッドになってたりするから、激しくポインタをつつくループの前とかでは、「shared_ptrをローカルスコープに置いてその範囲での寿命を保証」した上で「同じアドレスを持つ生ポインタを同じスコープに置く事でオーバーヘッドを回避」は良くやる"
- INADA Naokiさんのツイート: "昨日 #tcfm のQ&Aで紹介していたGCのデバッグ(エンバグしたところからずっと後で問題が起こる)に使ったツール、これです。 https://t.co/lJCIEDXOSB"
- 渋川よしきさんのツイート: "参照カウントも、カウンタの増減を自動化できるかどうかで、GCとしての使い勝手はだいぶ変わるよね。"
- Kentaro Haraさんのツイート: "同僚「去年、家をコピーGCしたときにさー・・・」(邦訳:去年、家を引っ越したときにさー) マイナーGC => 毎週のお掃除 フルGC => 大掃除 コピーGC => 家のお引越し コンサーバティブGC => また使うかもしれないから取っておこうと断捨離できないタイプのお掃除"
- NaOHaq(仮性ソーダ)さんのツイート: "Copying GCだと解放されるTreeのtraverseは起きない。けど代わりに生きているTreeがcopyのためにtraverseされる。 https://t.co/wUbatymBiQ"
- Rockridgeさんのツイート: "Fx57:インクリメンタルGCのスライス時間を調節し、応答性に影響を及ぼすような長い処理停止を抑制。 / “1368972 - Increase slice time for long-running incremental G…” https://t.co/zTA79nT3lL"
- INADA Naokiさんのツイート: "#tcfm Python の GC は言語仕様じゃなくて、実際に PyPy は参照カウント使ってないので with 文使わないとリソース開放が遅延して問題起こしますね。"
- shinichiro hamajiさんのツイート: "世代別GCと命令融合を持ち、従来の最速実装の2倍速く2倍省メモリなインタプリタすごい!(ただし言語はUnlambda)… "
- iroriさんのツイート: "はてなブログに投稿しました Unlambdaインタプリタを作った - iroriの日記 https://t.co/CnBPs0q648 #はてなブログ"
- Unlambdaインタプリタを作った - iroriの日記
- hikaliumさんのツイート: "主流のアーキで上方伸長スタックを採用しているものは聞いたことがないです。(「熱血アセンブリ入門」曰く、xstormy16というマイコンは上方伸長のようです。) 上方伸長だとスタックオーバーフローでreturn pointerを書き換えられずに済むという利点があると知って、なるほどと思いました。… https://t.co/Kx1yOaFH9u"
- Kazuho Okuさんのツイート: "mrb_str_catが非破壊結合だから非効率ってのはそのとおりだろうけど、なんで12GBもメモリ使ったんだろう。GCはlive objectのメモリ使用量の定数倍しかメモリ使わないように設計してると思うんだけど、なにか秘孔があるのかな #builderscon"
- 島鉄雄さんのツイート: "Unity の GC がどうなってるか調べたら Boehm 使ってるのかよ… これじゃゲームがカクカクになるだろうと、更に調べたらみんな苦労して GC が発生しないように頑張ってるようだ。 ゲームプログラマは、ホントによく訓練されてるよ… https://t.co/q3BN03ngjq"
- UnityのGCはどんな実装になっているのか │ Aiming 開発者ブログ
- 島鉄雄さんのツイート: "インタプリタを実装する時には C を使う事が多いけど、例えば Lisp の場合 Object form = list(...); eval(form); の様に書くけど、こうなると form はレジスタやスタックに載ってる可能性があって、GC を行うときにルートから辿れなくなり、コード実行中での GC がほぼ不可能になる。(続く)"
- 島鉄雄さんのツイート: "Bohem GC は、アセンブラを使ってレジスタやスタックにアクセスしてこの問題に対処しているけど、C だけで実装したい場合は、自前のスタックを用意して PUSH(list(...)); eval(); ← 引数はスタックから取り出す こんな感じで全てのオブジェクトを自前のスタックに積むことにより、(続く)"
- 島鉄雄さんのツイート: "コード実行中でも全てのオブジェクトを走査する事が出来て GC が実装可能になる。 要するに、スタックマシーンを実装する事になり、GC の観点からもバイトコードにコンパイルする事は必要な事だという結論に至った。"
- 島鉄雄さんのツイート: "PS4版ドラクエ11の記事だけど、 > まだガベージコレクションに絡む画面のカクつき問題が残ったままになっていました。 > さっき言った画面のカクカク問題の対策は1月から始めて5月まで続いて、すごく時間がかかりましたね。 GC は罪な奴だぜ… https://t.co/j6JneI70KP"
- 島鉄雄さんのツイート: "一方、UE4 ドキュメントには > UE4 のガーベジ コレクションは高速かつ効率的です。 ホントかよ… リアルタイム3Dゲームでカクつかない GC が出来ればいいけどね。 Java11 に実装された ZGC がそうであるんじゃないかと思ってる。 https://t.co/n472hA2m6O"
- 島鉄雄さんのツイート: "でも、ドラクエ11 の成果が UE4 に盛り込まれたらしいから、今の UE4 は大きめのプロジェクトを動かしても、カクカクしないのかもね。"
- Kazuho Okuさんのツイート: "GCの有無の基準は、「いつ回収するか」を意識する必要があるかどうかで決まるんだろうな。その基準でいうと、refcountは「穴があるGC」。Rustの所有権は、いつ回収するかを明示するための手法であって、意識しなくてよくなるわけではない"
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 Cのコード生成系をいじって正確なGCをサポートして、LinuxにGCを入れた例がありますね。 (https://t.co/dX31V8jVjT (PDF)) この論文紹介を私が発表したことがありますのでよかったこっちも... https://t.co/RDfj88iarb」 / Twitter
- ismm09-rwrf.pdf
- monochromeさんはTwitterを使っています: 「@miura1729 なるほど!面白いですね。今だとGoで書き直せ、って話になるんでしょうけど。 CRubyには全く使えないな〜と思って読んでいたら、論文中でも動かそうと頑張ってみたけど全く動かないのでさじを投げた唯一の例として挙げられていました。まあそりゃそうだ。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 たしかにGoで書き直す方が現実的ですね。あの論文を読んでからOSはむしろGCのある言語で書くべきと思っています。CRubyはまあポインタでビット演算しているから無理でしょうね」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 gVisorみたいなバリバリに使われているシステムソフトウェアがGoで書かれて普通に動いているので、実用上も問題なさそうですね。あとはRustみたいな方向性ですかねえ。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 Rustみたいな方向性は制約が強すぎてリファレンスカウントの山になって却ってよくないと思うんですけどね。定量的な評価がみたいです。」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 GoでOS作る話はdrumatoさんが論文紹介していました。ちょっと遅いけどまあまあ良い、という話。 https://t.co/RL8aZUKUP4」 / Twitter
- The benefits and costs of writing a POSIX kernel in a high-level language
- DrumatoさんはTwitterを使っています: 「この論文ではHLLの機能の中でもGCについてフォーカスしていて、 自動的メモリ管理による「安全性」と「パフォーマンス」はトレードオフの関係にあると主張しているんだけど、 あれ、じゃあRustでOSカーネルを実装してC実装と性能比較したみたいな論文って無いのかな? と思ったらあるっぽい https://t.co/8ReN7PGFVe」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 Rustはunsafeなコードを認めていないわけじゃなくて、必要なら範囲を明示して使えるし、unsafeなライブラリ関数も多数用意されているんですよね。あと、標準でスレッド安全が保証されているのは大きいと思っています。(まだ勉強中なので見当違いかもしれませんが」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 なるほど、静的解析。昔はOSを高級言語で書くなんてって言われたわけですから変っていくんじゃないでしょうかね」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 OSだとunsafeじゃない部分がどのくらいあるのかな?って思いましたが、結構あるのかな?unsafe割合しだいですが、スレッド安全はありがたそうです。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 リフレクションタワーはリフレクション話で一番面白いところですからね。Rubyはこの辺で出てきた知見を取り入れていますが、タワーが無かったり当初より美しくないですね。まあ、当初のは実装がすごく難しいですけど」 / Twitter
- monochromeさんはTwitterを使っています: 「@miura1729 Ruby、クラス定義とかが不必要なまでに動的に可能で処理系作りながら何なんだこれは…と思っていたんですが、動かしながら自分自身に機能を追加したり変更したりするモデルが念頭にあったんだとすると、なるほど~と感じました。」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@s_isshiki1969 この手の話はもともとLispが発祥なんですけど、30年くらい前に色々混乱していたのを整理してリフレクションって名前を付けたものです。この時整理したものをまともに実装すると凄く重いのでいまではリフレクション機能っていうとRubyも含めて昔のLispのもののようなものが多い気がします。」 / Twitter
- ドッグさんはTwitterを使っています 「ガベコレで Eden 領域というのがあって,何だろうと思ったらいわゆる Nursery のことなのか.オブジェクトが生まれるところが Eden で,Young 領域に"追放"される(一度 Young に行くともう戻ってこれない).オブジェクトが犯した罪とは…」 / Twitter
- Shinya KatoさんはTwitterを使っています 「GC が当たり前の言語を使っている人に malloc とか free とかの話しても「何それ?」ってなりそう」 / Twitter
- Miura HidekiさんはTwitterを使っています 「GCが当たり前の言語を使っているユーザ、なぜかGCやメモリ管理のアルゴリズムに詳しいという説があってな ... >RT」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「GC のデバッグは、ヒープが満たすべき不変条件とある特定の時点で成り立つ表明を検査する関数を用意して、疑わしいところすべてに配置するという原始的な方法で行った。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「Snapshot GC は mutator と collector が(協調的に)並行に動作するといっていいと思う。これと異なり以前実装した並行版というのは、 複数の mutator と複数の collector がそれぞれ固有の native スレッドで走るというもの。」 / Twitter
Learned Garbage Collection
- Masahiro SakaiさんはTwitterを使っています 「Learned Garbage Collection https://t.co/JVH3M4pHi2 CPythonのGCタイミングを強化学習で。状態はアロケーションを行うバイトコードのアドレスと現在の使用メモリ量、アクションはGCしないかk以下の世代のGCで、報酬は時間あたりのリクエスト処理数などで、(DQNではなくテーブルを用いる)Q学習。」 / Twitter
- Learned garbage collection | Proceedings of the 4th ACM SIGPLAN International Workshop on Machine Learning and Programming Languages
- Masahiro SakaiさんはTwitterを使っています 「いくつか工夫を入れたバージョン&ベンチマークプログラムではCPythonのデフォルトよりも良い結果。Webサーバの例で、GCをOSのI/Oとオーバーラップするような方策が学習出来てたりするの面白い。 スライド: https://t.co/tbBO5kN7Wi 講演動画: https://t.co/RcLvn1zbJd」 / Twitter
- Learned Garbage Collection - Google スライド
- Masahiro SakaiさんはTwitterを使っています 「CPythonではGCはあくまでリファレンスカウンタの補助で、(回収可能な)サイクルが存在しない状態でGCしても無意味というのがやっぱり特殊なのと、あと一般にはコンテキスト(=コールスタック)の情報を何らかの形で状態に含めないとうまくいかないんじゃないかと思った。」 / Twitter
ハザードポインタ
- Ryou Ezoeさんのツイート: "ハザードポインターの概要は理解した。ハザードポインターというのはGCの手段だ。ロックフリーデータ構造では複数のスレッドが同時にポインターを参照していることがあるので、メモリーを破棄するには何らかのGCが必要になる。"
- Ryou Ezoeさんのツイート: "GCをどうやって実装すればいいのか。参照数をカウントしてしまえばいいが、他の方法としてハザードポインターが考案された。"
- Ryou Ezoeさんのツイート: "ハザードポインターの仕組みは簡単だ。 1. スレッドはポインターを使う前にスレッドに紐付けられたハザードポインターにポインターを格納する 2. ポインターの参照するメモリを破棄する前に、すべてのハザードポインターに同じ値のポインターが存在しないことを確認する。"
- Ryou Ezoeさんのツイート: "ハザードポインターにポインターが存在するポインターはどこかのスレッドが使っているので破棄してはいけない。あとで破棄する。ハザードポインターに存在しないポインターはすぐに破棄してよい。"
- Ryou Ezoeさんのツイート: "問題は、スレッドごとにハザードポインターを確保し、必要がなくなったら解放する仕組みを効率よくしかもロックフリーで実装するのが難しいということだ。"
- Ryou Ezoeさんのツイート: "正直ハザードポインターがロックフリーで実装できるならリファレンスカウントもロックフリーで実装できるのでは。"
@blackenedgold
Rust
- κeenさんのツイート: "ふむ。メモリ管理やスレッドセーフティに厳格なRustの上になんでもありなGCを実装するのはかなりの苦しみなんだけどやってのけたのか Shifgrethor I: Garbage collection as a Rust library https://t.co/NdA6XdM1K7"
- withoutboats/shifgrethor: research
- κeenさんのツイート: "withoutboats/shifgrethor: research https://t.co/JIPM4BNW5B"
- Shifgrethor I: Garbage collection as a Rust library
- κeenさんのツイート: "これ使ってkappaLisp作り直してみるかな"
- κeenさんのツイート: "そういえばブログ記事、なんか勢いで書いたのでCopy GCのゴミ回収が速いって書いてたけどあれ、多くの場合嘘だよね"
- κeenさんのツイート: "そうか。分散合意しようとすると1つのノードでGCが走ると他のノードにも影響があるのか。 Rust in TiKV · TiDB Blog https://t.co/vTRg2l2TuO"
- κeenさんのツイート: "CopyGCについても言及しようと思ったけど巨大なTree育ててる時点で既にGCコスト払ってるのでいっかと思って放置してました"
- κeenさんはTwitterを使っています 「全てイミュータブルで使われるときにコピーする、それでGCレスにできると思うけどコピーコストが嵩んで恐ろしく遅くなるんじゃないかな?例えばconsなんて何回コピーが走るか怖くてできなくなる。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「たとえば、線形論理っていう理論を使って注意深く参照数を高々1にすることでGCを無くしたLisp、liner lispってのがあります。昔、その記事を書いたことがあるので、良かったらどうぞ https://t.co/PN4xfy9RZy」 / Twitter
- GC撲滅への道 - GC Advent Calendar - miura1729の日記
- ACM Sigplan Notices 27, 8 (Aug. 1992), 89-98.
- 1+1ができない子と線形論理 - 檜山正幸のキマイラ飼育記 (はてなBlog)
- Let's try ML Kit with Regions
- Home Page
- だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「メモリ管理の手法としては ・スタックのみ ・手動メモリ管理 ・参照カウント ・GC ・リージョン推論 などがあって、それぞれメリットデメリットがあるわけで、既存の手法にあるような欠点を持たない全く新しい手法が無から生まれることは考えづらい」 / Twitter
- だめぽラボ@技術書典7 し03DさんはTwitterを使っています 「もしも全く新しい方法が登場するとしても、いきなり実用的な言語に実装されるのではなく、先に論文が出てそう」 / Twitter
- Miura HidekiさんはTwitterを使っています 「処理をトランザクションとして見て、そのトランザクションを終了したらそれに関わるメモリを開放するって言う感じのメモリ管理は組み込みでは一杯やられていそうだし、あんまり論文は無さそうな気がする」 / Twitter
- uint256_tさんはTwitterを使っています 「計算理論 破綻しそう」 / Twitter
- ╹ω╹linguini.leanさんはTwitterを使っています 「@uint256_t どういうふうに」 / Twitter
- uint256_tさんはTwitterを使っています 「@1inguini 事前にどのようにメモリが消費されるのかわかるなら, 停止性問題解けそう (適当)」 / Twitter
@anohana
- Shiro Kawaiさんのツイート: "#tcfm 16回 https://t.co/JfkqRA6N4P VMWareの二重スワップ問題、二重丸め問題とかデュアルGC問題とか、「賢い二者がお互いに相手のことを気づかずに手を出してダメダメになる」みたいなメタな問題構造があるようなないような。"
- Shiro Kawaiさんのツイート: "いや二重丸めやGCは乱択化(一方の賢さを減じる)では解決にならないから別のクラスの問題と考えるべきかな。"
- Shiro Kawaiさんのツイート: "今主流のアーキテクチャ(CPUで選べる場合はOS込み)で、上方向に伸びるのを採用してるのってありますか? 自分でGC書いてた頃はautoconfマクロでチェックしてた覚えがありますが最近気にしたことないなあ… "
- tracing GC - Google 検索
- 井山梃子歴史館さんはTwitterを使っています 「自動的/手動的 暗黙的/明示的 大域的/局所的 の3軸ぐらいで分類するのが良い」 / Twitter
- GCアルゴリズム詳細解説
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合はやはり GC がらみかなあ。シングルスレッドでもマーク漏れはつらかった。並行 GC のバグは最終的にコードからリバースモデリングしてモデル検査で問題点を見つけた。」 / Twitter
- Goでの並行処理を徹底解剖!
- PPL C++とJSを跨ぐ クロスコンポーネント ガベージコレクタ - Google スライド
GPU
SPIR-V
- KhronosGroup/SPIRV-Cross: SPIRV-Cross is a practical tool and library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages.
- KhronosGroup/SPIRV-Headers: SPIRV-Headers
- KhronosGroup/SPIRV-Tools
- KhronosGroup/SPIRV-LLVM: LLVM framework with SPIR-V support. It's intended to contain LLVM <-> SPIR-V converter and serve as a foundation for LLVM-based front-end compilers targeting SPIR-V.
- Khronos SPIR-V Registry
- OpenGL で SPIR-V のシェーダー
- すらりんさんのツイート: "OpenGL 使い(自分) が求めていたのは GL_ARB_get_program_binary ではなく GL_ARB_gl_spirv 。コードからコンパイル済みの中間データなのでおそらく他環境へ持って行っても大丈夫なはず(未検証"
- Fadisさんのツイート: "OpenGLではシェーダはGLSLという高級言語の状態でランタイムに渡し実行時にコンパイルするが、大量のシェーダを使う今日のグラフィックではこのコンパイル時間が深刻な問題になっていたため、事前にコンパイルしておける中間言語SPIRを後付けで規格化し、拡張で対応していた"
- Fadisさんのツイート: "VulkanではSPIRの後継にあたる中間言語SPIR-Vがランタイムが要求するシェーダの形式になっており、Vulkanに対応した環境ならどこでも事前にシェーダをコンパイルできる。Vulkanの規格は高級言語に何を使ったかは問わない"
- Fadisさんのツイート: "で、使い慣れたGLSLをVulkanで使いたい人の為にGLSLをSPIR-Vにコンパイルする拡張が用意されてる https://t.co/fLUP7rhFd3"
- Fadisさんのツイート: "これ、VulkanにGLSLを足す拡張ではなく、OpenGLランタイムがVulkan用のSPIR-Vを吐けるようにするOpenGLの拡張なんだなw"
- Fadisさんのツイート: "MesaのAMDGPUドライバのGLSLコンパイラをNIRに対応させたい→Vulkan側にSPIR-V→NIR→マシン語の実装が既にあるからGLSLをSPIR-Vにコンパイルしよう→MesaにARB_gl_spirv実装の機運 https://t.co/S00U7UHxz1"
- Fadisさんのツイート: "ARB_gl_spirvってのはOpenGLランタイムがGLSLをコンパイルして、それを自分で実行するのではなくVulkanの中間言語形式SPIR-Vで出力できるようにする拡張。これを使えばGLSLで書いたシェーダをコンパイルしてVulkanに食べさせる事ができる"
- Fadisさんのツイート: "今年のGSoCに「SPIR-VをLLVM IRにコンパイルしてCPUで走るVulkanレンダラ」を目指す学生さん登場。メンターはMesaのRADEON用Vulkanドライバの人。まだ殆ど何も無いけどgithubにリポジトリが出来てる https://t.co/42YzLu8KMq"
- The Git Repository For The Vulkan Software Renderer In Development - Phoronix
- google/clspv
- SPIR-Vシェーダー拡張を統合した「OpenGL 4.6」が公開 | OSDN Magazine
- Christopheさんのツイート: "SPIR-V back-end in Microsoft HLSL compiler: https://t.co/GdN1DC0nP8"
- Fadisさんのツイート: "HLSLをSPIR-Vにコンパイルする場合の機能の対応関係について https://t.co/B9LNM9RfgW"
- DirectXShaderCompiler/SPIR-V.rst at master · Microsoft/DirectXShaderCompiler
- GPGPU戦争の歴史を紐解く ―勃発から現在に至るまで― - syghの新フラグメント置き場
- OpenGL 4.6の進化点やOpenCLの将来について,Khronos Group代表のNeil Trevett氏に聞いてみた - 4Gamer.net
- いぐにすさんさんのツイート: "GPGPU黎明期に飛びついて少し触った人(の一部)、「自分もGPGPUの経験あるけどメモリ足りないしhost/deviceのメモリ転送コスト高い」と言い出すんやけど、現代は1枚10GB搭載グラボ簡単に手に入るので知識をアップデートして欲しい"
- Fadisさんのツイート: "マッピングでややこしいメモリ転送が簡単になったし、カーネル内からカーネル呼べるようになって動的な並列度の変更もしやすくなったし、コンパイラは初期より正しくC++を読むようになったし、ちょっとした用途なら便利なライブラリが揃ってるし、確かに初期のCUDAの感触は微塵も役に立たないな"
- Fadisさんのツイート: "クロノスグループ、LLVM IRとSPIR-Vの双方向の変換を行うトランスレータを公開。LLVM IRに落とせるプログラミング言語を使ったシェーダの記述やLLVMがサポートするアーキテクチャ上でのシェーダの実行等への応用が期待される https://t.co/WYUcm2otdF"
- Khronos Officially Announces Its LLVM/SPIR-V Translator - Phoronix
- FadisさんはTwitterを使っています: 「RustのサブセットをSPIR-Vにコンパイルする猛者が現れた。SPIR-VはGPUで実行する処理の中間表現で、従来GLSLやHLSLをコンパイルして作る物だった。Vulkan等はこれを食べてGPUのネイティブバイナリを作る。サブセットはRust Like Shading Language(略してRLSL)と呼ばれている https://t.co/hHFlGkCoJp」 / Twitter
- RLSL Allows Running A Subset Of Rust On Vulkan/SPIR-V Enabled GPUs - Phoronix
- FadisさんはTwitterを使っています: 「W3CがWeb Gameに関する進捗報告の中で、WebGPUでSPIR-Vをシェーダの形式として利用できないかクロノスグループと議論した事が述べられているのがPhoronixの記事になっている。SPIR-VはVulkan等で使われているシェーダの中間表現、WebGPUはWebGLの後継とされるグラフィックAPI https://t.co/cr9bwswUPp」 / Twitter
- Khronos + W3C Collaborating On SPIR-V Potentially Being The Shading Language For The Web - Phoronix
- HPVM: Heterogeneous Parallel Virtual Machine についてのメモ - FPGA開発日記
- FadisさんはTwitterを使っています 「HPVM: GPUのような並列度で性能を稼ぐアーキテクチャは現状それぞれの実装でPTXやHSAILといった中間言語を持っているが、これではアーキテクチャ非依存の最適化を実装しにくいので、LLVM IRを拡張してこの種の中間言語が持っている機能の和集合となるような物を定義したらしい https://t.co/NzRpbFLbCi」 / Twitter
- HPVM - Heterogeneous Parallel Virtual Machine
- FadisさんはTwitterを使っています 「HPVMで書かれたコードを、NVIDIAのPTXに落とすことも、AMDやARMで使われるHSAIRに落とすことも、OpenCLの中間言語形式SPIRに落とすことも、CPUのSIMD命令で実行する命令列に落とすこともできる、と」 / Twitter
- てらモス♋️さんはTwitterを使っています 「コンパイラとは、実装とは別に形式論理的に定義されるプログラミング言語という制約条件下で最適化を行うプログラムなので、言語拡張というものは醜悪で、プログラミング言語上で並列化に関する構文を作りコンパイラがそれに基づいてコードを生成するというのは本筋だと思うですよ(´・ω・`)」 / Twitter
- Cure-RiceさんはTwitterを使っています 「”謎の半導体メーカー”のコンパイラが指示行なしで種々の Fortran 構文を自動 GPU 並列化してくれるようになるらしい。 DO CONCURRENT は前にもニュースになっていたけれど、かなり広い範囲に適用されそう。 https://t.co/G7eFueIQZD」 / Twitter
- てらモス♋️さんはTwitterを使っています 「もうハードウェアがあってソフトウェアがある時代じゃなくて、ソフトウェアがあってそれが高速に動作するハードウェアを作る時代やからな(´・ω・`)」 / Twitter
- FadisさんはTwitterを使っています 「SPIRV-Reflectを使うとSPIR-Vを自力でパースするより楽にSPIR-Vのバイナリが持っている入力の型と個数、出力の型と個数、デスクリプタセットに並べる必要があるリソースの型と個数を取得することができる https://t.co/IiaY9Li0AK」 / Twitter
- KhronosGroup/SPIRV-Reflect: SPIRV-Reflect is a lightweight library that provides a C/C++ reflection API for SPIR-V shader bytecode in Vulkan applications.
KTX 2.0
- FadisさんはTwitterを使っています 「KTX 2.0が発表されたらしい。KTX 2.0はKhronosが標準化したテクスチャ画像を1つのファイルにまとめるコンテナ形式で、Basis Universal形式(GST)による圧縮がサポートされる。これは何種類もあるGPUが直接読める圧縮形式に変換できる中間表現で、変換をGPU上で行えるのが特徴 https://t.co/pklsAZVOWz」 / Twitter
- Khronos KTX 2.0 Textures Enable Compact, Visually Rich, glTF 3D Assets - The Khronos Group Inc
- FadisさんはTwitterを使っています 「KTX 2.0はテクスチャストリーミングを想定して小さいmipmapを先出しできるファイル形式になっている他、glTFからKTX形式のテクスチャを参照する為の拡張 KHR_texture_basisu がglTFに追加される。」 / Twitter
- FadisさんはTwitterを使っています 「KTX 2.0のファイルのmagicが面白くて、KTXである事を確認するKTX 20の他に、7bit文字しか通らない伝送路でバイナリが壊れていない事を確認する\xab、改行コード変換でバイナリが壊れていない事を確認する為のCR LF、文字列と誤認するソフトウェアを減らす為の\x1aが入ってる https://t.co/w2Qgu2NyCn」 / Twitter
- KTX File Format Specification
MIAOW
- 【連載】Hot Chips 27 - ウィスコンシン大学のOpen GPU「MIAOW」 | マイナビニュース
- MIAOW GPU
- VerticalResearchGroup/miaow: An open source GPU based off of the AMD Southern Islands ISA.
- Raghuraman Balasubramanian's research works | University of Wisconsin–Madison, Wisconsin (UW) and other places
- Enabling GPGPU low-level hardware explorations with MIAOW: An open-source RTL implementation of a GPGPU | Request PDF
- Enabling GPGPU Low-Level Hardware Explorations with MIAOW: An Open-Source RTL Implementation of a GPGPU: ACM Transactions on Architecture and Code Optimization: Vol 12, No 2
PC Watch
- 【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第1回 ~固定機能からシェーダへの移り変わり - PC Watch
- 【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第2回 ~GPGPUへの最適化や電力効率向上へ進んだNVIDIA GPUの歩み - PC Watch
- 【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第3回 ~ビッグGPUから効率重視へ、そしてGCNへと繋がるAMD GPUの歴史 - PC Watch
- 【1カ月集中講座】骨まで理解するPCアーキテクチャ(GPU編) 第4回 ~GPGPU性能引き上げのカギとなるCPUとGPUの連携 - PC Watch
- Apple、macOS/iOSで「OpenGL/CL」の利用を“非推奨”に - PC Watch
- 【後藤弘茂のWeekly海外ニュース】GTCでKhronosが明らかにしたAPIアップデート - PC Watch
マイナビ
コンピュータアーキテクチャの話
310-324
- コンピュータアーキテクチャの話 (310) 超マルチスレッドプロセサである「GPU」に見るグラフィックス処理 | マイナビニュース
- コンピュータアーキテクチャの話 (311) 現在のGPUの主流となっている「ユニファイドシェーダ」 | マイナビニュース
- コンピュータアーキテクチャの話 (312) 固定小数点の演算から、浮動小数点の演算へ | マイナビニュース
- コンピュータアーキテクチャの話 (313) 1つの命令で複数の演算器を動かす「SIMD」 | マイナビニュース
- コンピュータアーキテクチャの話 (314) Teslaアーキテクチャが採用した「SIMT方式」 | マイナビニュース
- コンピュータアーキテクチャの話 (315) ばらばらのメモリアクセスパターンを処理する必要があるSIMT方式 | マイナビニュース
- コンピュータアーキテクチャの話 (316) GPUが高性能な理由 | マイナビニュース
- コンピュータアーキテクチャの話 (317) 浮動小数点演算器の搭載により科学技術計算分野での活用が進んだGPU | マイナビニュース
- コンピュータアーキテクチャの話 (318) GPUはどうやってマルチスレッド処理を行っているか | マイナビニュース
- コンピュータアーキテクチャの話 (319) CPUに比べて圧倒的に多いレジスタ数 | マイナビニュース
- コンピュータアーキテクチャの話 (320) なぜGPUにはDDR DRAMではなくGDDR DRAMが用いられるのか? | マイナビニュース
- コンピュータアーキテクチャの話 (321) GDDR5の後継として検討されるHBM | マイナビニュース
- コンピュータアーキテクチャの話 (322) GPUが用いるメモリのアクセス時間の短縮方法 | マイナビニュース
- コンピュータアーキテクチャの話 (323) GPUで用いられるメモリのエラー検出手法とその訂正手法 | マイナビニュース
- コンピュータアーキテクチャの話 (324) GPUのエラー発生頻度はどの程度のものであるか? | マイナビニュース
325-349
- コンピュータアーキテクチャの話 (325) エラーの検出方法 | マイナビニュース
- コンピュータアーキテクチャの話 (326) 1ビット訂正ハミングコード | マイナビニュース
- コンピュータアーキテクチャの話 (327) CMOSにおける消費エネルギーと動作速度の関係 | マイナビニュース
- コンピュータアーキテクチャの話 (328) 「GPU」はスループット重視のプロセサ | マイナビニュース
- コンピュータアーキテクチャの話 (329) GPUは膨大なバンド幅をどうやって実現しているのか? | マイナビニュース
- コンピュータアーキテクチャの話 (330) レジスタファイルとシェアードメモリ | マイナビニュース
- コンピュータアーキテクチャの話 (331) 汎用の科学技術計算におけるGPUのキャッシュの必要性 | マイナビニュース
- コンピュータアーキテクチャの話 (332) シェアードメモリとキャッシュメモリは何が違うのか | マイナビニュース
- コンピュータアーキテクチャの話 (333) GPUにおける1スレッドあたりのキャッシュ容量の考え方 | マイナビニュース
- コンピュータアーキテクチャの話 (334) キャッシュのコヒーレンスはどのように保たれているのか | マイナビニュース
- NVIDIA GPUのキャッシュを考える (335) キャッシュの実装を世代ごとに変化させてきたNVIDIA | マイナビニュース
- GPUのコアと2次キャッシュの関係性 (336) CPUと異なるGPUにおけるコアと2次キャッシュの関係性 | マイナビニュース
- CPUと異なるGPUのキャッシュ活用 (337) 実はそれほど速くはないGPUのメモリアクセス時間 | マイナビニュース
- 実はGPUは低速処理のプロセッサ!? (338) 1命令の実行時間は遅いが、複数命令の同時処理で高性能を実現するGPU | マイナビニュース
- コンピュータアーキテクチャの話 (339) よくわかっていないGPUのハードウェアの造り | マイナビニュース
- NVIDIA GPUの基本的な実行方式 (340) NVIDIAのGPUにおける実行方式 | マイナビニュース
- 事実上標準のGPUの実行方式とは? (341) GPUの事実上の標準となりつつある実行方式 | マイナビニュース
- GPUで用いる2つの変数の大きな違い (342) 「nBlocks」と「nThreads」、2つの変数の大きな違い | マイナビニュース
- NVIDIAの「ギガスレッドエンジン」 (343) 多数のスレッドを実行させるNVIDIAの「ギガスレッドエンジン」 | マイナビニュース
- ワープスケジューラの仕組み (344) ワープスケジューラの仕組み | マイナビニュース
- Kepler GPUの構成を読み解く (345) Kepler GPUの構成 | マイナビニュース
- GPUの演算単位を推測する (346) Kepler GPUとMaxwell GPUの演算単位を推測する | マイナビニュース
- レジスタ対応が固定ではないGPU (347) CPUとは異なり、レジスタ対応が固定ではないGPU | マイナビニュース
- GPUにおけるメモリアクセス (348) 複数のデータの処理を一度に行うGPUのメモリアクセス | マイナビニュース
- GPUにおける条件分岐の方法 (349) GPUにおける条件分岐の方法 | マイナビニュース
350-374
- コンピュータアーキテクチャの話 (350) NVIDIAの世代別GPUに見るハードウェアの違い | マイナビニュース
- GPUでスレッドを同期させる手法 (351) GPUでスレッドを同期させる手法 | マイナビニュース
- コンピュータアーキテクチャの話 (352) GPUで用いられるシェアードメモリの原理 | マイナビニュース
- コンピュータアーキテクチャの話 (353) GPUにおける1次キャッシュのコヒーレンシ | マイナビニュース
- GPUのデバイスメモリの考え方 (354) GPUのデバイスメモリのアドレスの考え方 | マイナビニュース
- GPUにおけるECCの考え方 (355) GPUにおけるECCの考え方 | マイナビニュース
- なぜHBMが期待されるのか (356) 積層することで性能向上を図ったHBM | マイナビニュース
- コンピュータアーキテクチャの話 (357) CPUとGPUの通信 | マイナビニュース
- HPCでのCPU-GPU間データ転送方法 (358) HPCにおけるCPU-GPU間のデータのやり取り | マイナビニュース
- コンピュータアーキテクチャの話 (359) GPUプログラミングを難しくするCPUとGPUのメモリの分散 | マイナビニュース
- コンピュータアーキテクチャの話 (360) CPUとGPUで処理を分担する場合のメモリのコピー手法 | マイナビニュース
- コンピュータアーキテクチャの話 (361) 仮想化で1つのGPUを複数ユーザで活用する | マイナビニュース
- コンピュータアーキテクチャの話 (362) ATIを買収してGPUを手に入れたAMD | マイナビニュース
- コンピュータアーキテクチャの話 (363) VLIW命令をSIMD実行することで効率を高めたATI | マイナビニュース
- コンピュータアーキテクチャの話 (364) AMDの新GPUアーキテクチャ「GCN」 | マイナビニュース
- コンピュータアーキテクチャの話 (365) GCNのブロックダイヤグラムを読む | マイナビニュース
- コンピュータアーキテクチャの話 (366) GCNのスカラユニットとベクトル演算 | マイナビニュース
- コンピュータアーキテクチャの話 (367) GCNの性能を活かすのに必要なコンピュートユニット内蔵メモリ | マイナビニュース
- コンピュータアーキテクチャの話 (368) GCNアーキテクチャにおける1次データキャッシュの構造 | マイナビニュース
- コンピュータアーキテクチャの話 (369) AMDのGPUが用いているデバイスメモリの種類 | マイナビニュース
- コンピュータアーキテクチャの話 (370) ディープラーニングを支えるGPU | マイナビニュース
- コンピュータアーキテクチャの話 (371) AlexNetの構造を読み解く | マイナビニュース
- コンピュータアーキテクチャの話 (372) ディープラーニングの入力の重みの値を決める「学習」 | マイナビニュース
- コンピュータアーキテクチャの話 (373) 「推論」の精度 - INT8でも性能低下は僅か | マイナビニュース
GPU MEMORY BOOTCAMP
- GPU活用のためのMEMORY BOOTCAMP (1) 新人のCUDAプログラマを一人前に育て上げるGPU MEMORY BOOTCAMP | マイナビニュース
- 輸送機で考えるGPUのメモリ移動 (2) 輸送機で考えるGPUのメモリバンド幅とレーテンシ | マイナビニュース
- GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (3) 行列の転置を行う場合のメモリアクセス | マイナビニュース
- NVVPでGPUアプリの性能を改善 (4) プロファイラの活用で、性能改善を図る | マイナビニュース
- GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (5) グリッドを大きくする方法 | マイナビニュース
- GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (6) メモリバンド幅の解析を実行し、さらに並列度を上げる | マイナビニュース
- GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (7) スレッドのメモリ読み出し要求の仕組みを知る | マイナビニュース
- GPUにおける行列の転置を考える (8) 行列の転置では書き込みは飛び飛びアドレスになる | マイナビニュース
- GPUのシェアードメモリを活用する (9) シェアードメモリ中での転置で、連続アドレスへの書き込みを実現 | マイナビニュース
- GPUアプリの性能を最大限に引き出すためのGPU MEMORY BOOTCAMP (10) バンクコンフリクトを避けるには? | マイナビニュース
blog
- 本の虫: vectordash: 暗号通貨採掘している奴らに暗号通貨採掘よりは歩合のよい報酬を払ってGPGPU計算を購入するGPU版AirBnBみたいなサービス
- OpenCLやる前にSIMD使い切れっていう幻想 - aokomoriuta's blog
- Vectordash: GPU instances for deep learning
- ハードウェアの速度をどう評価するか考える(2) ~メモリ、メモリ律速~ - arutema47's blog
- GPUの温度と性能低下 - Fixstars Tech Blog /proc/cpuinfo
- Intel GPU専用言語C for Metalの解説 - Fixstars Tech Blog /proc/cpuinfo
- OpenACC vs OpenMP GPU Offloading (環境構築編) - Fixstars Tech Blog /proc/cpuinfo
- OpenVINOでIntel HD Graphicsを活用する(導入編) - 少ないリソースを酷使する
- LLVM IRからGPUの実行可能ファイルを出力するコンパイルフローのまとめ - Jicchoの箱
- GPU向けコンパイラの最適化の紹介と論文のサーベイ - Jicchoの箱
Wikipedia
- GPGPU - Wikipedia
- General-purpose computing on graphics processing units - Wikipedia
- FLOPS - Wikipedia
- FLOPS - Wikipedia
Qiita
- GPUSound入門 - Qiita
- 研究が"飛ぶ"瞬間 - Qiita
- Clang で CUDA コードを NVPTX に変換するメモ - Qiita
- GPUでIFを使うな!? - Qiita
Twitter
分岐
- okuokuさんはTwitterを使っています 「GPU上で動くRISC-Vエミュレータのコード公開されたのか https://t.co/3U92nNK0tF VRChatのワールドまである。GPUと言えども今や巨大なswitch-case https://t.co/3D6t2QbAeM を実行できるわけで、何でも行けるのか。 / 手作りGPUの前に自前のシェーダコアのエミュレータをGPUで動かす手も行けそうだな。」 / Twitter
- PiMaker/rvc: A 32-bit RISC-V emulator in a shader (and C)
- rvc/emu.h at 4bf645734e676bc8254d10dba0bfa8a37b006c44 · PiMaker/rvc
Julia
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 の特徴に関する質問を見たのだが、流れて行ってしまった。もう遅いかもしれないですが、以下のリンク先のネタを再現してみました。 マンデルブロ集合をGPUを使ってCPUの1スレッドの100倍以上の速さで計算する方法。 ポイント:GPU用の特別なコードを書く必要がない。続く https://t.co/i5yt2oHL8C」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 ソースコードは https://t.co/8n5qsdoW8y にあります。 添付画像はそのCPU用のコードです。マンデルブロ集合の定義を知って入れば特別なことをしていない陳腐なコードであることが分かるはずです。 どこにも具体的な型名が書かれていないことにも注目。続く https://t.co/Kp66p4tLTp」 / Twitter
- public/mandelbrot by cuda.ipynb at main · genkuroki/public
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 GPUではFloat32を使いたいので、インプットの複素数の配列をFloat32の複素数の配列にしています。この段階ではまだCPUで計算しています。 https://t.co/4crLOE6W5J」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#Julia言語 これがGPUを使った計算です。 CPUによる計算で使ったmandelbrot(c)函数をそのままGPUでの計算で使っていることに注目! cu(z32)はGPUで計算される配列を作る操作で、collectは通常の配列に戻す操作です。 その結果が100倍以上の計算の高速化! このように非常に気軽にGPUを使えます。 https://t.co/ZQ5LjNcj7l」 / Twitter
GPGPU
- 猫 a.k.a INAさんのツイート: "これ読むとPEZYがあのL1でやれてるのが不思議なんだけど隣の読みに行けるとか階層キャッシュのテクニックとかソフトウェア的なあれこれがあるんじゃろか"
- Hideyuki Tanakaさんのツイート: "1コア当たり8スレッドにすることでレイテンシーを隠蔽しようとしてて、実際L2のレイテンシまでは完全に隠せるように行列乗算コードを書いているから、L1は現在のコードならば、どんだけ小さくてもそれなりの速度は出ますね…"
- Hideyuki Tanakaさんのツイート: "700Mhzで、4サイクルに一回しか実行回ってこないし、ロード隠ぺいするための裏スレッドを使ってるので、まあそこらへんは一応頑張れば隠せるように用意はしてありますね…"
- Hideyuki Tanakaさんのツイート: "GPGPUだと死ぬほど多いスレッドを使って勝手にレイテンシ隠そうとしてる感じだけど、まあ、PEZY-SCのでもそんなに大変なわけじゃないよ(大変)GPGPU向けのGEMM書いたことないからわかんないけど…"
- Hideyuki Tanakaさんのツイート: "ほんとは4x2じゃなくて、8スレのラウンドロビンにしてくれ~って感じだけど、無理らしいからまあいいかという(´・_・`)"
- Hideyuki Tanakaさんのツイート: "@objectxplosive うーん、パイプライニングなのかなあ?命令のレイテンシはMAD以外全部1命令分のサイクルだけど、メモリのレイテンシー隠蔽だけでそういうものなのかな?"
- Hideyuki Tanakaさんのツイート: "@09SEPGR スレッド増やせば増やすほど簡単になるけど、増やし過ぎてもリソース食いすぎるし、そもそもレイテンシを隠すためだけにスレッドたくさん使うのもなんかよくない気がする(多分ハードウェアリソース的に?)んでまあその辺のバランスをとってるんだと思う"
ライセンス
- VさんはTwitterを使っています 「自分が調べた限りハードウェアエンコーダで特許料支払われているのはほぼありませんよ。ちゃんと払っているのは Raspberry Pi くらいです。」 / Twitter
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「普通はハードウェアエンコーダつかうし当然そのハードウェアで特許料支払いされてるので関係ないのだけど、Dockerとかで動画エンコード機能を持ったツールを公開したいときとかにはハードウェア前提にしたり商用エンコーダ同梱できないから無償ソフトエンコーダ必要なのよね。」 / Twitter
- VさんはTwitterを使っています 「NVIDIA や MPEG-LA にきちんと確認しているので間違いないです。」 / Twitter
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas ええぇ、ハードウェアエンコーダ屋さん、ライセンス料払ってなかったの!!! まぁ買う側で何とかしてくれ責任持たねぇって言いたい気持ちも分かるけど。 といっても、私がここでいうハードウェアエンコーダってチップやSBCレベルじゃなくて商用エンコーダ機器レベルのつもりだったのだけど。」 / Twitter
- VさんはTwitterを使っています 「@dynamitter ARM / Apple / Intel / NVIDIA / AMD に搭載されているハードウェアエンコーダを商用で利用する場合はすべてライセンス取得が別途必須という認識です。」 / Twitter
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas まぁエンコード専用チップではないので、その機能使うなら自分でライセンス払ってねと言うのが自然よね。 組み込みのルネサスとかもSoC側で払ってなかった気がする。 エンコード専用チップの方は例えばソシオネクストとか払ってたりするのかな。やはりそれも採用側に任せてるのかな。」 / Twitter
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「@voluntas そうか、Jetson Nanoちゃん...」 / Twitter
libcu++
- FadisさんはTwitterを使っています 「NVIDIAがlibcu++のソースコードをApacheライセンスでGitHubに上げたらしい。libcu++はC++標準ライブラリに似たAPIをcuda::の下に生やすライブラリで、標準ライブラリと異なり定義された型や関数はデバイス側で使用する事ができ、値はホストとデバイスで直接やり取りできる https://t.co/WIEoSJLEsU」 / Twitter
- NVIDIA C++ Standard Library Now Available Via GitHub - Phoronix
- Overview - libcu++
histric-1
- Out-of-Domain Awardさんのツイート: "今まで踏んだ一番ひどいエラーは、数千個あるCUDAコアのどれか1個だけバグでNaNしか返さなくなっていて、運悪くそのコアがアサインされるとbackpropagationで伝播してモデルが台無しになる。NaNを弾くコードを入れていないと数日経ってから気づくことになる"
- Rockridgeさんのツイート: "Blinkの開発チームがWebGPU(新3DグラフィックスAPI)の実装を開始。WebGL/WebGL 2の後継となるもので、Safariが既に実験的に実装しているが、EdgeやFirefoxでも採用されるらしい。 / “Int…” https://t.co/elmcqYDaTl"
- 渋川よしきさんのツイート: "WWDCの話で1番やべえなってのは、Metal推奨でOpenGL非推奨化へ、という話ですね。"
- Dustin Westphalさんのツイート: "OpenGL is deprecated in 10.14 Mojave. /eyetwitch… "
- Apple Deprecates OpenGL & OpenCL - Phoronix
- Jun Mukaiさんのツイート: "MetalとVulkanの関係ってどうなってるんだっけ?と思って調べたらhttps://t.co/InEoEGsj4b こういうのあるのか。OpenGLがなくなっても、こういうのをつかえばよいのかな"
- Molten | Vulkan, and faster OpenGL ES, on iOS and macOS
- Makoto Kato ︎︎さんのツイート: "MS has stopped investment for OpenGL at Windows 2000 era, then their API moves to DirectX. Apple wants to control APIs for GPU like MS..."
- Fadisさんのツイート: "いまのAppleのOpenGLの扱いに対して、ジョブズの時代はこうではなかったというのは全くの間違いで、ジョブズ氏の時代からAppleのOpenGLの扱いは酷かった。ただ彼にはOpenGL2を強いられたあの時代でさえ、それを世界で最も先進的なグラフィックと言い切る能力があった"
- ハガさんのツイート: "モバイルGPUのタイルベースなレンダリングとか複雑になるだけじゃん要らねーよと思ってたけど、タイルごとにラスタライズの解像度を変えられると知って急にとても良いものに思えてきた・・・。"
- 次世代のWebGPUの可能性 - WebGLと比較して理解する描画機能の違い - ICS MEDIA
- Makoto Kato ︎︎さんのツイート: "自分の知ってる話と他の情報からすると、WebGPUはプロトタイプはAppleが作ったけど、正式なAPIは作り直し (他のOSやブラウザ的にありかないかも含めて) になるかもって話なので、今はAPIを覚えるのはフィードバック用でしかないと思うんだ"
- Makoto Kato ︎︎さんのツイート: "No more Canvas API的な"
- Makoto Kato ︎︎さんのツイート: "誰もVulkan -> Metalのトランスパイラ作りたいなんて思ってない (ANGLEのGLSL -> HLSLみちゃうとね)"
- Fadisさんのツイート: "Vulkan 1.1で利用可能になったsubgroupは、同一Warp内の別のスレッドの計算結果を覗き見して演算を行う事が出来る。これによってイケてるハードウェア上ではWarp内でのreductionのような計算がシェアードメモリを使った場合より高速に行えるようになる。 …何この後ろのハードウェアが透けて見える機能"
- chikoskiさんはTwitterを使っています: 「WebGPUの紹介記事。まだ先かな、と思っていたけどChromeでenable-unsafe-webgpuのフラグを立てると使える模様。簡単なコードとGPUの説明が続く。最後に行列の掛け算を使ったベンチマーク。256x256以上はGPUの方が早く、512x512以降は大きな差がつく。という内容: https://t.co/YtW91JmNES」 / Twitter
- Get started with GPU Compute on the Web | Web | Google Developers
- FadisさんはTwitterを使っています: 「プログラミング言語Taichi: 空間的に疎なデータを処理するコードを汎用的な言語で書くのが煩雑過ぎるから、データの保持方法の定義と、何らかの方法で保持されたデータを操作する処理を分離して書いて、CPUやGPUで効率よく実行出来るコードに落とせるDSL https://t.co/przYp05IzO」 / Twitter
- Taichi
- FadisさんはTwitterを使っています: 「あれば便利には違いないけど、これがオーバーヘッドなくライブラリで実現出来ないか、という点についてはC++なら出来んことはない気がする」 / Twitter
- FadisさんはTwitterを使っています: 「Mitsuba2: オープンソースのグラフィックレンダラーMitsubaの後継。Mitsubaとの違いはメタいC++で書かれたレイに対する処理をCPUだけでなくGPUでも実行できるようになった点、それを自動微分して逆レンダリングができるようになった点、スペクトルレンダリングに対応した点等 https://t.co/MLf4BPe30G」 / Twitter
- RGL | Mitsuba 2: A Retargetable Forward and Inverse Renderer
- FadisさんはTwitterを使っています: 「いろんなプラットフォームで効率の良いSIMDな実行可能バイナリを生成する為の最適化はMitsuba2本体から分離されていて、Enokiなるライブラリにまとめられているらしい https://t.co/eNkdTLTII2」 / Twitter
- mitsuba-renderer/enoki: Enoki: structured vectorization and differentiation on modern processor architectures
histric-2
- FadisさんはTwitterを使っています: 「学習済みのニューラルネットワークを使って評価を行う際に、重みの精度は出力の品質に影響を与えにくい事が知られている。このためGPUの命令は精度を下げて一度に計算できる行列のサイズを大きくするように拡張されており、NVIDIA Turingでは4bit整数で出来た行列の演算を高速に行う事ができるらしい」 / Twitter
- FadisさんはTwitterを使っています 「今は昔ほどGPUが多様でないから低レイヤーAPIでいけるというのは間違ってて、メモリの構成はGPU毎に異なるし、タイルベースGPUがでかい顔してるし、TensorCoreみたいなの生えてくるし、出ていく先はsRGBじゃないかもしれないし、VRでマルチGPU(以下略)で、控えめに言って世紀末なんだよな」 / Twitter
- FadisさんはTwitterを使っています 「じゃあ何でVulkanみたいな薄いAPIで多様なハードウェア抽象化できるかと言うと、抽象化出来てないんだ。Vulkanはハードウェアの違いを吸収しない。Vulkanは世の中には色んなGPUがあるという現実をそのままプログラマにつきつけてくる。プログラマは倒れる。」 / Twitter
- FadisさんはTwitterを使っています 「VulkanとOpenGLの方向性の違いがわかりやすく出てるのがVK_KHR_surface拡張で、この拡張は普通の画面とはどんな物で、どうすれば画面に描画結果を表示できるかを定義する。これが拡張であるという事は「Vulkanが動く」だけでは画面表示能力は無いかもしれない、という意味になる」 / Twitter
- FadisさんはTwitterを使っています 「@RKX1209 Bounding Volume Hierarchy。AABBを再帰的に重ねた木構造で、logオーダーである範囲に存在する要素を探せる。これを作っておくとある直線と交差する面を高速に求める事ができるからリアルタイムレイトレーシングには欠かせない。」 / Twitter
- FadisさんはTwitterを使っています 「@RKX1209 動くシーンのレイトレーシングでは動きに合わせてBVHを素早く更新できる必要があって、これがリアルタイムレイトレーシング実現のための難題だったんだけど、ナウいGPUはBVH作る専用ハードウェア積んで解決してしまった」 / Twitter
- FadisさんはTwitterを使っています 「netgpu: 1つのマシンに収まらないニューラルネットワークを扱うにはGPUの計算結果をネットワークに載せ、別のGPUを積んだマシンで受ける必要がある。このデータの移動をCPUが行うとボトルネックになるので、GPUとNIC でバッファを共有させ送受信の要求だけをCPUから行うLinuxカーネルのパッチがnetgpu」 / Twitter
- FadisさんはTwitterを使っています 「netgpuの作者が、このパッチをバニラカーネルに入れようと提案したら激しく燃えた話。netgpuは現状nvidiaのGPUのみをサポートしており、nvidiaのプロプリドライバに付いてくるカーネルモジュールのコードが所定の位置にインストールされている事を期待しているのが原因 https://t.co/oNSAK4U0Ow」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t CPUよりも高速に計算させようと思うと意外と大変です。ボトルネックがCPUとGPUの間のI/O転送にあるので。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t CUDAやMetalの潜在能力を出し切るようなコーティングも結構大変ですね。」 / Twitter
- FadisさんはTwitterを使っています 「GL_NV_command_list: OpenGLでGPUへのコマンドを記録して何度も繰り返し流せるようにする拡張。ランタイムのAPIから実際にGPUで実行するコードへ落とす作業はCPUを要する処理で、コマンド列を塊にする事でこの作業を事前に行いフレーム毎のCPUの負担を抑える。なにこのVulkan https://t.co/NX07BdsLEi」 / Twitter
- https://www.khronos.org/registry/OpenGL/extensions/NV/NV_command_list.txt
- FadisさんはTwitterを使っています 「Linux 5.11からTTMの実装が変わるらしい。TTMはGPUが触るメモリの管理を行うDRMのアロケータで、書き直された実装はロックの回避でメモリ確保がより高速になり、出来るだけ連続したメモリを塊で割り当てる事でTLBキャッシュヒット率が向上、AMDGPU等で性能の向上が期待できる https://t.co/MsDyLXhf9W」 / Twitter
- New TTM Allocator For AMDGPU Graphics Memory Landing With Linux 5.11 - Phoronix
- Ryo SuzukiさんはTwitterを使っています 「大量の三角形を、CPU で色や座標の情報を決めずに GPU だけで描画する機能を追加 #OpenSiv3D (v0.6) 複雑な形状を早く処理できる。 https://t.co/Tmg7VXhbcK」 / Twitter
- Ryo SuzukiさんはTwitterを使っています 「いわゆる null vertex buffer.」 / Twitter
- FadisさんはTwitterを使っています 「ZLUDA: Intel oneAPI Level Zeroの上に実装されたCUDA Driver API。早い話がIntel GPU上でCUDAするための実装。ちなみにIntelはoneAPIをプラットフォーム非依存でアクセラレータを利用するためのAPIとしているが、Intel以外は乗り気ではない為事実上Intel専用になっている https://t.co/uuYSYSDQbD」 / Twitter
- vosen/ZLUDA: CUDA on Intel GPUs
- Yao Tadahito(八尾 唯仁)さんはTwitterを使っています 「機械学習のエントリー勢向けに計算性能は抑え目でもVRAMを多めにしてミドルレンジ価格帯のグラボって需要があると思うけど、そういうのが存在しないってことはグラボの値段ってVRAMが支配的なんだろうな…。」 / Twitter
- FadisさんはTwitterを使っています 「GPUってIOMMUが適切に設定されたホストのメモリを触れるから、性能無視でメモリだけ広いマシンが欲しいならホストのメモリを使えば良いんじゃないかな」 / Twitter
- FadisさんはTwitterを使っています 「コンピュータグラフィクス向けにGPUを使う場合も、GPUのデバイスメモリが狭くて必要なものが乗り切らん時は次善の手としてホストのメモリをスワップ領域として使うというのが割とよく行われる」 / Twitter
- FadisさんはTwitterを使っています 「Mesaからswrastが削除されるらしい。MesaはOpenGL等のAPIのオープンソースな実装で、GPUが無い場合に備えてソフトウェアラスタライザを持つが、llvmpipeやOpenSWR等の新しいソフトウェアラスタライザの登場により初期の最も素朴な実装であるswrastは殆ど使われなくなっていた https://t.co/YEYShhhaWr」 / Twitter
- Mesa 21.0 Has Finally Killed The Classic "SWRAST" Software Rasterizer - Phoronix
- FadisさんはTwitterを使っています 「3DグラフィクスをCPUで処理するためにSSEだ3DNow!だとか言ってた時代があったなぁ。3Dグラフィクスをデバイス側で処理するGPUが家庭のPCに普及し出すのは90年代の終わり頃だし、DirectX 7時代のGPUはラスタライザから先はハードウェアで処理するけど座標変換はCPUでやれっていう仕様だったんだよな」 / Twitter
- とみながたけひろさんはTwitterを使っています 「そのSSEでレイトレは高速に、、、と思ってたらいつの間にかレイトレもGPU側に入るようになったのであった(笑)」 / Twitter
- FadisさんはTwitterを使っています 「メッシュの頂点数を減らすのはいいけど、その為に細長い三角形を生み出すのはやめよう。その三角形は接平面空間で計算するプログラマに刺さる」 / Twitter
- FadisさんはTwitterを使っています 「NVIDIAがVulkanでCuBINを実行する拡張を作っている話。CUDAはホストのコードとデバイスのコードを同じバイナリの異なるセクションに置くが、新しめのnvccはデバイスのコードだけを別ファイル(CuBIN)に吐く事ができる。この拡張はそれをVulkanからロードして実行する為のもの https://t.co/VPheiKtwtJ」 / Twitter
- NVIDIA Adding Experimental Vulkan Support For Executing CUDA Binaries - Phoronix
- てらモス♋️さんはTwitterを使っています 「@Hishinuma_t CUDAからか... OpenMPが生成した PTX をどうやってオブジェクトファイルに格納するかについては(GCC の場合は) https://t.co/NeePioon3a ここにまとまっているわけで、これを真面目にパースしたらいけるはず........」 / Twitter
- Offloading - GCC Wiki
- jicchoさんはTwitterを使っています 「GPU最適化、GPUを使って何かの計算を最適化するのか、ある計算をGPUに合わせて最適化するのか、GPU上で行われる処理を最適化するのか」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 どれも興味ありますね。ただ,それぞれが戦略的に大きく異なるということは理解しているつもりです。」 / Twitter
- jicchoさんはTwitterを使っています 「@zacky1972 最初の二つは、主に工学の分野で盛んに行われていますよね。最後の一つはハードウェア/ソフトウェアの観点からGPUを速く動作させようということなので、理学と工学が複雑に絡み合っている感じです。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@Jiccho96 私は,まず3つ目の道を探究し続けて,そこから,第1・第2の道を探りたいです。」 / Twitter
- ABAさんはTwitterを使っています 「C#のコードをGPU上でパラレルに動かせるようにしてGPGPUをC#プログラマに簡単に扱えるようにするためのライブラリComputeSharp / https://t.co/f6livgelDN」 / Twitter
- Sergio0694/ComputeSharp at dev
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「GPUに詳しい人知ってたら教えてください。 OSのsched_yield(2)みたいな感じで、あるwarpの実行中に強制的に別のwarpにスケジューリングする命令とかありませんかね? (GPUで自前mutexを作る場合、同一Warpの別スレッドがロックを取った時、そのスレッドに実行を渡さないと永遠にロック待ちになる…。」 / Twitter
- 海外 浩平|KaiGai Kohei🌻さんはTwitterを使っています 「@gogotea3 ただ、その後アセンブラ命令の一覧も見てみたんですが、それっぽい命令はない(nanosleepはVolta以降)ので、ちょっと期待薄かもしれませんね。 https://t.co/K1ewHAb9FP」 / Twitter
- PTX ISA :: CUDA Toolkit Documentation
- 002: HW Validation List · heterodb/pg-strom Wiki
- Deno 1.8が、WebGPUサポート、動的アクセス許可などと共にリリースへ
- オープンソースのニューラルネットワーク向けプログラミング言語「Triton」をOpenAIが公開 - GIGAZINE
- C++ AMPの死について
浮動小数点数
その他
- ビットで表す数字の世界~浮動小数点編~
- 浮動小数点数について本気出して考えてみた - 一から勉強させてください( ̄ω ̄;)
- 【5分で覚えるIT基礎の基礎】ゼロから学ぶ2進数 第4回 | 日経 xTECH(クロステック)
- 浮動小数点数型と誤差
- 浮動小数点計算の基本的事実 – 「浮動小数点数は実数ではない」ということ | POSTD
- 浮動小数点
- 浮動小数点数は実数ではない | プログラマが知るべき97のこと
- 電子工作
- 浮動小数点数型
- 浮動小数点数の内部表現(IEEE)
- Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
- 浮動小数点数内部表現シミュレーター - instant tools
- PEZY-SC2上における倍々精度Rgemmの実装と評価
- Comparing Floating Point Numbers, 2012 Edition | Random ASCII – tech blog of Bruce Dawson
- Ryu: Fast Float-to-String Conversion
- ちょっとだけ怖い三角関数のはなし
- WDM ドライバーでの浮動小数点の使用 - Windows drivers | Microsoft Docs
- Boost math constantsの変遷記録 - in neuro
NaN boxing
- 複数精度の浮動小数点を取り扱うための手法NaN Boxingについて - FPGA開発日記
- NaN boxingとsizeof(mrb_value) - mirichiの日記
- NaN boxing - 枕を欹てて聴く
- NaN Boxingというテクニックを知った
- mrubyのJITの64bit対応 - Qiita
- 3. NaN-BoxingによるJavaScriptの最適化 | CodeLunch.fm
- C#でNaN Boxing - RoundWide Systems
言語
JavaScript
- Kazuho OkuさんはTwitterを使っています 「あー面白い。IEEE 754でバッチリ決まらない、近似が必要になるやつ、関数呼出になってれば自分で差し替えて精度確保できるけど、演算子になると無理。で、「** だけ」が、この問題にひっかかるということか」 / Twitter
- Takuo KihiraさんはTwitterを使っています 「見てる: https://t.co/B2jSQh8ZCM "ECMAScript® 2022 Language Specification"。なんてこった、 x ** y の実装は implementation-approximated なのね…。x ** y の出力を実装を超えて合わせようと思っても ** をオーバーライド出来ないから、ソースを手動で Math.pow に変更しないといけないのか。」 / Twitter
- ECMAScript® 2022 Language Specification
- Takuo KihiraさんはTwitterを使っています 「@kazuho そうなんですよ。配列の文字列化が自動で Array#join を呼ぶように、内部で自動的に Math.pow を呼ぶ仕様にしてくれればよかったのに。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@tkihira 演算子として定義するなら、そうすべきだった感ありますね」 / Twitter
- Takuo KihiraさんはTwitterを使っています 「@kazuho https://t.co/erI8H33LgD まだ Stage 3 ですね、提案してみればよいのかな?」 / Twitter
- tc39/proposal-exponentiation-operator: Progress tracking for ES7 exponentiation operator
- petamorikenさんはTwitterを使っています 「@tkihira @kazuho 残念ながら ES2016 で既に入ってますね。 https://t.co/E4PoFyfdAZ ただ互換性的にそこまで問題にならない気がするので提案するのはありだと思います!」 / Twitter
- proposals/finished-proposals.md at master · tc39/proposals
- Takuo KihiraさんはTwitterを使っています 「@petamoriken @kazuho ご確認ありがとうございます、ちょうど @petamoriken -san にお伺いしようと思っていたところでした!さすがのアンテナ…ありがとうございます。この状態で提案するのは、どこでするのが筋でしょうか。」 / Twitter
- petamorikenさんはTwitterを使っています 「@tkihira @kazuho 公式の Discource がいいかなと思います。 https://t.co/vRzvQ9Guga ふと思ったのですが Exponentiation Operators は BigInt でも使えるのですが、Math.pow はそうではないという仕様になっているので、一筋縄にはいかないかもです……。」 / Twitter
- TC39 - Specifying JavaScript
- Takuo KihiraさんはTwitterを使っています 「@petamoriken @kazuho なるほど、そうですね、たしかに」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@tkihira @petamoriken 仕様理解していないので外しているかもしれませんが bigint の ** は整数演算だから誤差がなく、従って特別扱いで良い気はします」 / Twitter
- petamorikenさんはTwitterを使っています 「@kazuho @tkihira 仕様を見てみたのですが 6.1.6.2.3 BigInt::exponentiate はそのままで 6.1.6.1.3 Number::exponentiate にのみ手を加える形で提案できそうですね。」 / Twitter
- petamorikenさんはTwitterを使っています 「@kazuho @tkihira 正確には 6.1.6.1.3 Number::exponentiate 21.3.2.26 Math.pow の両方でした。 特に大きな互換性やパフォーマンスの問題がなければ入れてもらえると思うので、あとは有用性をいかにアピールできるかですね。 https://t.co/UiIl0sXO9T」 / Twitter
- ECMAScript® 2022 Language Specification
- Shiro KawaiさんはTwitterを使っています 「Oops. Gaucheもバグってた。 https://t.co/ayu1BO7Zz3」 / Twitter
- Fix (abs -0.0) · shirok/Gauche@9a9b635
- 高梨陣平さんはTwitterを使っています 「実数の絶対値を求めるのなんて簡単だろうと思うでしょ? Javaは違うのだよ。Javaは :-) IEEE 754では+0.0と-0.0が別に存在、から色々と面倒な話に。」 / Twitter
- Hacker NewsさんはTwitterを使っています 「One does not simply calculate the absolute value: https://t.co/bwX6nPTvlO Comments: https://t.co/ebPzH0rFJr」 / Twitter
- One does not simply calculate the absolute value / Habr
- One does not simply calculate the absolute value | Hacker News
- mod_poppoさんはTwitterを使っています 「Java関係ねえ、というのは置いておいて、俺が今朝遭遇したのはGHCのabs関数の話だったのでタイムリーだ(俺が困ったのは素朴な実装がNaNの符号を変えてくれない話で、元記事ではそこまでは扱っていないが)」 / Twitter
- JavaScript クイズ解説: NaN === NaN の結果はどうなる?
- mod_poppoさんはTwitterを使っています 「ECMAScriptのstrict modeで変数名に禁止されているのはevalとargumentsで、undefinedとNaNはshadowingできるのだったか」 / Twitter
MetaLibm
- mod_poppoさんはTwitterを使っています 「高級言語もいいけど、C言語を置き換えるレイヤーの言語も作ってみたい(具体的にはlibmを記述できる言語を作りたい)」 / Twitter
- mod_poppoさんはTwitterを使っています 「書いたコードに証明がつけられると良いんだろうけど依存型とかに関する勉強が足りない」 / Twitter
- mod_poppoさんはTwitterを使っています 「「libmを記述」について、MetaLibmというプロジェクトがあるのは知っている(けど中身はよく知らない)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「MetaLibm、ちょっと調べたら無茶苦茶強そうなプロジェクトだった」 / Twitter
- Miura HidekiさんはTwitterを使っています 「https://t.co/igZKzTnvBO」 / Twitter
- MetaLibm: code generators for the libm and beyond
Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数の曖昧な比較」の適切なやり方はケースバイケースなので、言語標準でそういう関数や演算子が提供されていても考えなしで使ってはいけない。」 / Twitter
- yhara (Yutaka HARA)さんはTwitterを使っています 「浮動小数点数から文字列への変換。Ryuというアルゴリズムがあるのか / 1件のコメント https://t.co/7yZxeJ5xiu https://t.co/OrG1TP67qr」 / Twitter
- [B! rust] https://crates.io/crates/ryu/
- ryu - crates.io: Rust Package Registry
- だめぽラボ@技術書典9さんはTwitterを使っています 「自作SML処理系での数学関数(Math.sinとか)のテストをどう書いたものか悩んでいたが、「MPFRで真の値±100ULP(適当)な区間を事前に計算して、テストコード中にその値を埋め込んで結果がその区間に収まっているか確認する」みたいなのが一番現実的な気がする」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の数学関数は一部を除き厳密な等式が成立することは期待できないが、sinとcosを取り違えるようなやつは流石にテストで弾きたい」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「libmを実装するわけでもないし「原点から遠いところでの三角関数」みたいなやつはテストしない。とは言ってもULP基準だと値が0に近い時にアレだな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数のunordered周り、何らかの方法で提供したいのはわかるけど言語組み込みの演算子で提供するほどじゃなかったね」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語ではisunorderedみたいなアルファベットからなる名前が使われている」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「使用するlibc (libm)がAlpine Linuxではmusl, Debianではglibcなのが差異の原因ではないかと思います。四則やsqrt等の一部の関数はいいのですが、sinやexpを含む多くの数学関数の精度はlibcの実装に依存します。」 / Twitter
- ぜり (zeriyoshi)さんはTwitterを使っています 「何が原因なのかわからないけど -O0 の -fno-fast-math なのに Alpine Linux と Debian で倍精度浮動小数点の誤差が違って泣いてる gcc のバージョン違うけどなんか変わったんかな…」 / Twitter
- えびちゃんさんはTwitterを使っています 「@mod_poppo これらの関数の精度に関して IEEE 754 ではどう規定されてるんでしたっけ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「@rsk0315_h4x この場合重要なのはIEEEよりもむしろC言語の規格の方で、C99のAnnex Fでは「sqrtやremainder等の一部の関数はIEEE準拠、他の多くについては精度を規定しない」としています。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Cコンパイラにおける浮動小数点数の最適化 constA * variable / constB を (constA / constB) * variable に変換して constA / constB をコンパイル時に計算するって、一般的にやってくれるんでしたっけ? 何かできない理由があって、やらないんでしたっけ」 / Twitter
- Seiya YazakiさんはTwitterを使っています 「@kazuho C99 でいうところの 5.1.2.3 で示されているような理由でしょうか。 参考: https://t.co/3UEmgGQtxc GCC, clang では -fassociative-math や -funsafe-math-optimizations 等でオプトインできた記憶があります」 / Twitter
- FLP01-C. 浮動小数点式の演算の順序に注意する
- Kazuho OkuさんはTwitterを使っています 「@saiya_moebius ありがとうございます。そのあたりがドンピシャでほしかった情報でした。」 / Twitter
- mod_poppoさんはTwitterを使っています 「そもそも1/3は二進浮動小数点数では正確に表現できないのでアレという問題もあった。C言語のcbrt関数なら指数部の表現の問題を受けずに1/3乗できる。」 / Twitter
- mod_poppoさんはTwitterを使っています 「GCCは数学関数の定数畳み込みにはMPFRを使っているという認識で良いのかな https://t.co/R7a36tCgv1」 / Twitter
- 29335 – transcendental functions with constant arguments should be resolved at compile-time
- mod_poppoさんはTwitterを使っています 「mingw(-w64)のように数学関数の精度が良くないところがターゲットだと、コンパイル時の計算と実行時の計算で値が全然違うということになる」 / Twitter
- κeenさんはTwitterを使っています 「Rustの浮動小数点数型にIEEE 754で定義されている「次の値」を求める関数を追加する提案。実装はビット演算っぽい。 Add RFC float-next-up-down. by orlp · Pull Request #3173 · rust-lang/rfcs https://t.co/FUGoXa9wBw」 / Twitter
- Add RFC float-next-up-down. by orlp · Pull Request #3173 · rust-lang/rfcs
- PHP: 浮動小数点数 - Manual
- Go言語の浮動小数点数のお話
- マシンの中のリアル : Dの浮動小数点数 - プログラミング言語 D (日本語訳)
- Java 入門 | IEEE754 浮動小数点数表現
- JavaScript:float32による小数演算最適化 | ψ(プサイ)の興味関心空間
- ECMAScriptの浮動小数点数の丸め仕様がスゴい - hnwの日記
- nan("is Not-a-Number") - yohhoyの日記
- 浮動小数点数比較マクロ - yohhoyの日記
- sqrt(dx*dx + dy*dy)とhypot(dx, dy) - yohhoyの日記
strtod
- だめぽラボ@技術書典9さんはTwitterを使っています 「そのうち「十進小数から二進浮動小数点数への変換が(各種処理系で)何桁まで正しく行われるか試してみた」みたいなやつをやる必要があるな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「十進小数型がどっちのビット列表現を使っているか判断するプログラムも書きたいね」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「0x1.00000000000008pN の形の数の正確な十進表記と、それを若干ずらした物を手元の環境のstrtodに与えてみたが、用意した例については全て正しい丸めが行われた。意外」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「普通に十進変換しても800桁未満にしかならないので、もっと末尾の 000...0001 を長くして文字列長を稼ぐか」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「MacもLinuxも(libcの)strtodが真面目に実装されすぎてて面白くねえ。一方MSVCは極端なケースで間違えてくれた(規格準拠の範囲ではある)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Cのstrtodは結構真面目に実装されていることがわかったので、他のプログラミング言語処理系も試すべきかな。といっても内部的にCを呼んでいたら同じことだけど」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数周りの関数が「真面目に実装されすぎてて面白くねえ」ってひどい言い草だな」 / Twitter
atof
- 文字列少数点数表記を IEEE754 倍精度浮動小数点数にエンコードする方法|Sukesan1984|note
- きしもとさんはTwitterを使っています 「atof に関してはラスボスが居てですね……そこまで要求されることは普通は無いにしても https://t.co/bhnYhi2qdV」 / Twitter
- Gauche:浮動小数点数をどこまで読むか
- きしもとさんはTwitterを使っています 「このパターン、atof が実のところ一番簡単な use case で、2進小数でちょうど境界になる場合、「厳密に計算した後、正しく丸めた」結果を得るには、関数によってはどれだけ計算が必要か予め決められないとして、Table Maker's Dilemma と、カハン先生によって命名されています https://t.co/c2RfXrW9eB」 / Twitter
- Introduction to the Table Maker's Dilemma
- きしもとさんはTwitterを使っています 「@ksmakoto このテーブルというのはイケアで売ってるような木工とかのことではなくて、「数表」のことですが、余談ですが以前、数表に関してこんなツイートを見ました(2重丸めに注意という話)」 / Twitter
dtoa.c
- 島鉄雄さんのツイート: "libc を使わ(え)ない環境で strtod (古くは atof)が必要になった場合に、ネットにある GPL じゃない実装を比較検討したところ、1つ以外全部 glibc の strtod と結果が合わなかった。(要するに精度が悪い) 以下のページの this code のリンク先にある dtoa.c が唯一の解だね。 https://t.co/6R2VfOHHAI"
- How strtod() Works (and Sometimes Doesn't) - Exploring Binary
- https://www.ampl.com/netlib/fp/dtoa.c
- rounding.pdf
- 島鉄雄さんのツイート: "コンパイルする時は $ gcc -c -DIEEE_8087 dtoa.c のようにする。 紹介したページの解説をみたり、this paper のリンク先の論文をぱっと見したりすると、strtod は素人が実装出来るしろもんじゃない事が良く分かる…"
- 島鉄雄さんのツイート: "Ruby も 2019/2 に strtod を dtoa.c のに変えたようだ。 (勿論 libc の strtod が有ればそっちを使うはず) https://t.co/J8Amrv3zv7"
- History for missing/dtoa.c - ruby/ruby
- 島鉄雄さんのツイート: "Windows の場合は libc が msvcrt.dll になるけど、strtod の挙動は微妙に違うようだ。 なので、マルチプラットフォームなインタプリタを実装している場合は dtoa.c のものに統一する方がいいだろう。 インタプリタは strtod を使いまくるので、複雑な計算をした場合に OS 毎に結果が違う事態を防げる"
- 島鉄雄さんのツイート: "Rust や Go はセルフホストなので、strtod のような処理を自前で実装してるので見たところ、文字列→10進浮動小数(いわゆる decimal)→2進浮動小数(通常の double)としているようだった。 (ちなみに Rust のコードはぱっと見訳が分からないw Go は atof.go と物凄い分かり易かった) 続く"
- 島鉄雄さんのツイート: "先の論文も decimal → double へ変換する際の誤差を減らすというもののようだし、結局以下の事が言えそう。 ・double だけ使って実装された strtod は全てなんちゃっての可能性が高い ・セルフホストする言語を実装するには decimal を実装した方がいいだろう(浮動小数のパースに使う為)"
- 島鉄雄さんのツイート: "dtoa.c もざっと見てみると、必要最小限の10進浮動小数(のような?もの BigInt)が実装されていた。"
例外
- Microsoft Visual c 浮動小数点の最適化 | Microsoft Docs
- cfenv - cpprefjp C++日本語リファレンス
- 浮動小数点例外Cなぜそしてそれは何ですか。 - コードログ
- HiPEとclangの浮動小数点例外 - Qiita
- 浮動小数点例外 - 数理計画用語集
- 浮動小数点例外
- 次のプログラムをコンパイルしたところ、”浮動小数点演算例外です... - Yahoo!知恵袋
- 浮動小数点例外の処理
- 浮動小数点例外処理 (-fpe) オプションの使用
- 実行したところエラーがでました - プログラマ専用SNS ミクプラ
- 概要: 浮動小数点例外の制御
- 浮動小数点環境 - cppreference.com
- 浮動小数点演算ではまった話 - bkブログ
- 整数除算のオーバーフローについて - やた@はてな日記
- 浮動小数点の最適化
- WGC1 第4章 浮動小数点表現 4.6 浮動小数点の例外 - みちしるべ
- Exception handling
- ieee - 浮動小数点例外モードを設定
用語
- 浮動小数点数(フドウショウスウテンスウ)とは - コトバンク
- 浮動小数点演算(フドウショウスウテンエンザン)とは - コトバンク
- IEEE 754 ‐ 通信用語の基礎知識
IEEE754
- IEEE754 について
- あちゃぴーの自転車通勤: 32-bit float IEEE 754 浮動小数点数について
- IEEE754について。モダンなコンピュータはどのように少数を扱っているのか - Yabu.log
- IEEE 754-2019 - IEEE Approved Draft Standard for Floating-Point Arithmetic
- 黒澤亮二さんはTwitterを使っています: 「浮動小数点の仕様IEEE 754が少し改訂されたらしい。2008年にも改訂されていて、ほぼ10年ごとのサイクル?2008ではdecimal floatの追加があったようだが今回はそこまで大きい追加はなさそう。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「2の補数表現以外の符号付き整数表現をするハードウェアは滅びたと思っていたが、IEEE-754の指数部ってoffset binaryなんだな。」 / Twitter
- dif_engineさんはTwitterを使っています 「IEEE754はよく考えられた規格で,一見不合理だったり冗長だったりするように見える規則を捨てて実装するとたいていどこかおかしくなる. (高速化を目的として多くのチップメーカーがIEEE754の変形実装をしたけど,それで評判を落としたことが多い).」 / Twitter
- だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@dif_engine だが一番普及してしまってるintel x87がカハン教授が加入する前の草案で見切り発車してクソ実装してしまったから。速い代わりに計算精度低くて、カハン教授のコンプラ試験ソフトでボロカスにエラー出る。」 / Twitter
- dif_engineさんはTwitterを使っています 「Kahanさんがこの規格を作るのに相当貢献していたはず.Kahanさんの研究を無視した浮動小数点演算のクソ実装をするとこんなふうに(https://t.co/fwqZO7ttCV)処刑されます.」 / Twitter
- JAVAhurt - JAVAhurt.pdf
- IEEE 754-2019 浮動小数点の仕様書を購入 - FPGA開発日記
- IEEE754-2019 メモ: 竹下世界塔の計算機よもやま話
- セクスィ・ナカナカピエロさんはTwitterを使っています 「@Hishinuma_t @7danmoroboshi 現状の浮動小数点の精度 IEEE float64で不満がある方はdouble-double型で実装されたもの(long double)を使うのではなくIEEE float128 (binary128)を使うのが良いかと。浮動小数点の精度を上げるために積むのは徳ではなく、レジスタのビット数ですかね。笑。」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「訳:お前俺に浮動小数点の基礎を講釈した挙げ句,Double-double型じゃなくてIEEE754 binary128を勧めてくるとかどうなってんだ それとレジスタのビット数なんか積めるわけねえだろ何考えてんだ」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「> double-double型で実装されたもの(long double) そもそもlong doubleはdouble-doubleじゃねえよ」 / Twitter
- にゃんにゃん@日本に帰りたいさんはTwitterを使っています 「@NakanakaPierrot @Hishinuma_t float128をハードウェアサポートしてる環境がほとんどないからdouble-doubleを使うんですが、、、」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「HaskellでIEEE 754-2019準拠な浮動小数点演算を提供するライブラリーをHackageに上げた(基本的にRealFloatの範疇でやっているので一部制限あり) https://t.co/EDnHsvbog3」 / Twitter
- fp-ieee
- だめぽラボ@技術書典9さんはTwitterを使っています 「制限事項: ・NaNの符号やペイロードを扱うには専用の型クラスが必要 ・浮動小数点環境に介入することはできない(純粋&遅延評価と相性が悪い) ・十進浮動小数点数のexponent周りは非対応(RealFloatクラスが対応してないので)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「十進浮動小数点数を富豪的データ構造として実装する分にはそんなに問題はないと思うけど、IEEEの十進交換形式みたいに32*kビットになるべく詰め込もうとするとアレ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE754の十進交換形式には同じ符号の無限大を表すビット列が複数ありうる」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE754の十進交換形式は ・そもそも一本化されていない(DPD vs binary) ・正規化されないので一つの値に対して複数の仮数部・指数部がありうる ・一つの仮数部・指数部の組について複数のビット列が対応する場合がある など、二進と比べて大変愉快な仕様となっているぞい」 / Twitter
x87
Twitter
sizeof
- だめぽラボ@技術書典9さんはTwitterを使っています 「sizeofを比較しても同じ型かどころか、同じ浮動小数点形式かすらわからないから……(80ビットのlong doubleがsizeofで測ったら16を返してきたりするし)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/uvtZjvyuFb」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「GCCのドキュメントと挙動が食い違っているのを発見してしまったかもしれない(ドキュメントでは__float80は_Float64xのエイリアスだとされているが、実際は(-mlong-double-80の下では)long doubleのエイリアスになっているっぽい) https://t.co/2tCMVPCdNn」 / Twitter
- Floating Types (Using the GNU Compiler Collection (GCC))
- だめぽラボ@技術書典9さんはTwitterを使っています 「昨日の_Float64xの話題で思った(というか前から思ってた)んだけど、extended precision formatに対応する型をわざわざ標準化する必要あるのか?非自明な拡張ナントカ精度って実質x87のアレしかなくない?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「TF32は拡張じゃなくてむしろ縮小でしょ」 / Twitter
- hsjoihsさんのツイート: "IEEE754の乗算は交換法則の方は成り立つんだっけな(結合法則はそりゃ成り立たない)"
- uint256_tさんのツイート: "IEEE754, Nan boxing すごいってくらいの知識しかない"
- Zıᴘʜıʟ Sʜᴀʟᴇıʀᴀꜱ ╹ω╹さんのツイート: "交換するけど結合しないって数学的には珍しい?"
- tkr@合格0,不合格6,発表待ち1さんのツイート: "そういえば前2chで「浮動小数点数は何が起きるか分からないから精度いらない場面でも絶対使うな」って騒いでるやついたなぁ 乱数じゃないんやぞ…"
- 白山風露@ᗣᘎᘄさんのツイート: "8087互換FPUは状態を内蔵しているので「何が起きるか分からない」はある意味正しい。 丸め方向やゼロ除算例外の扱いなどが変更される可能性があるので本当に厳密に使うならチェックしないといけない。… "
- tkr@合格0,不合格6,発表待ち1さんのツイート: "状態持ってるまじ?"
- tkr@合格0,不合格6,発表待ち1さんのツイート: "IEEE754なら大丈夫だよね?"
- 白山風露@ᗣᘎᘄさんのツイート: "まあゼロ除算はそもそもC++だと未定義だけど"
- 白山風露@ᗣᘎᘄさんのツイート: "IEEE754の規格からは外れていないが、そもそも規格に丸め方向等が複数種類存在し、その切替をFPU内部のフラグで行うことができる… "
- tkr@合格0,不合格6,発表待ち1さんのツイート: "え、これまじですか 規格っていうから必ずこうなるって決まってるのかと…… "
- yuyabuさんはTwitterを使っています: 「https://t.co/0HWDwOgyrz AArch64(arm)はsin,cosとか計算する機械語あるのか。java 11以降のmathではこいつら(CPU専用命令)を直接使うらしい。 #javareading」 / Twitter
- yuyabuさんはTwitterを使っています: 「intel系のCPUにはsin,cosなどを計算する命令は8087などにあるらしいけど、普通に計算した方が早いのでgccなどはfpuなどを使わずにソフトウェア的に計算しているらしい。」 / Twitter
- FadisさんはTwitterを使っています 「LLVMでMMX intrinsicsをSSE2に落とす改良が提案されている。MMXはx86のSIMD命令で、SSEと異なりx87とレジスタを共有する。この為MMX使用後片付けずにx87を叩くと動かないが、LLVMは容赦無く命令を入れ替えるので片付け前にx87が使われない事を保証出来ない問題を抱えていた https://t.co/dpDlvvk6eK」 / Twitter
- LLVM Developers Looking At Phasing Out Intel MMX Support - Phoronix
- ママレモンサワーさんはTwitterを使っています 「まあMMX intrinsicsからSSE2を吐くようにしようぜって今さら言われたら、もうサポート自体やめるわってなるよな…」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「sinやcosの精度絡みでは、x87 FPUにはsinやcosや底2の指数関数・対数関数を計算する命令があって、あれらは精度が実装依存っぽいので再現性が必要なら使っちゃダメな系のはず(同じ命令列を実行しても異なる結果が返る可能性がある)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「実際、Intel SDMにはPentiumでそれらの命令の精度が向上したようなことが書かれている(つまり、それ以前のCPUとは異なる結果が返ってくる)。AMDは知らん」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「SSE系には逆数や平方根の逆数の近似を返す命令があるけど、相対誤差しか規定されてないっぽいし、あの辺もCPUによって返る値が違う可能性のあるやつかな?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「(異なるマシン間での再現性の観点でいうとx87 FPUは煮ても食えない(Control Wordをいじったとしても非正規化数の計算にコーナーケースがある)ので初手切り捨てが最善ですね…)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語での浮動小数点数の評価方法(FLT_EVAL_METHOD周り)をテストするやつを書いた。x87 FPUが使用されると出力が変わる系のやつ。 https://t.co/nSSKGD6jZS」 / Twitter
- floating-point-test/eval-method.c at master · minoki/floating-point-test
- だめぽラボ@技術書典9さんはTwitterを使っています 「これまでに書いた浮動小数点数周りのテストコードがあちこちに散らばっているのをどうにかしたい」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「IEEEで例外発生の有無が実装に委ねられているやつ」をテストするコードも追加した(FMA(0, ∞, qNaN)でinvalidが発生するかどうかと、アンダーフローの判定が丸めの先か後か)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「NaNのペイロードの伝播の仕方を確認するやつも書いた。入力の両方がNaNだった場合に常に左側を返すやつ、演算が可換になるように両方見て決める奴、常にペイロードが0なNaNを返すやつなどがある https://t.co/XD0oBQOScj」 / Twitter
- floating-point-test/nan-propagation.c at master · minoki/floating-point-test
- だめぽラボ@技術書典9さんはTwitterを使っています 「x87 FPUの呪い [C言語] on @Qiita https://t.co/bLfIx7zR7t」 / Twitter
- x87 FPUの呪い - Qiita
- だめぽラボ@技術書典9さんはTwitterを使っています 「Javaのstrictfpは何のために存在するのか、C言語のFLT_EVAL_METHODは何を表しているのかがわかる記事を書きました: https://t.co/w3YBXz2foh」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「x87 FPUで倍精度演算がアレなのはこの前の記事に書いた通りだけど、x87 FPUを拡張したような感じのItaniumでは命令ごとに精度を指定できたりFPSRで指数部の範囲を拡張するか選択できたりしてそういう「呪い」はないという認識で良いのかな」 / Twitter
- サイン、コサインをインテルの CPU で計算すると少しバグっているらしい – tomeapp
- x87 FPU で厳密な単精度演算を行うコスト - NyaRuRuが地球にいたころ
- x87 FPU で厳密な単精度演算を行うコスト (2) - NyaRuRuが地球にいたころ
- Shiro Kawaiさんのツイート: "#tcfm https://t.co/9L8G8XZaBY 第10回 IEEE754の数学関数は数ULPくらいの誤差は許されていたような気がする。 sqrtは基本演算扱いで完全に指定されてたかもしれない。"
- Rui Ueyamaさんのツイート: "浮動小数点数フォーマットは最近学校で習ったので2^-1022近辺の浮動小数点数は特別にバグりやすい罠があるというのをすぐに理解してしまった。"
- スタックマシン ‐ 通信用語の基礎知識
- Tips x87 FPUプログラミング
- ロボ太さんのツイート: "そうそう、x87命令とかSSEについてもちょっとだけ書きました。なぜx86に64ビットの浮動小数点レジスタが無いかとか、long doubleが80ビットな理由とか・・・。あんまし深掘りしてないけど・・・ https://t.co/eX0vwsSaB0"
- sevendayshpc/README.md at master · kaityo256/sevendayshpc
- Island Life - 拡張浮動小数点数の扱い
- 作って理解するOSを読んだ感想とメモ - Qiita
- 浮動小数点数の呪われた世界(x87 と C/C++) - Qiita
SSE
- 鈴木友紀さんはTwitterを使っています 「なぜ Legacy SSE 命令は YMM/ZMM の上位を保持する仕様にしたのか調べていたら Microsoft の所為ということになった。 assembly - What is the penalty of mixing EVEX and VEX encoded scheme? - Stack Overflow https://t.co/gXCIIKLeGF」 / Twitter
- assembly - What is the penalty of mixing EVEX and VEX encoded scheme? - Stack Overflow
- 鈴木友紀さんはTwitterを使っています 「Using Floating Point or MMX in a WDM Driver https://t.co/nfoEiV6XFq」 / Twitter
- Using Floating Point or MMX in a WDM Driver
- だめぽラボ@技術書典9さんはTwitterを使っています 「Intel SDMのCVTTS[SD]2SIの説明に "When a conversion is inexact, the value returned is rounded according to the rounding control bits in the MXCSR register." って書いてあるけどこれは間違い?(常にtruncateするはず)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「_mm_cvttsd_si32 (SSE2)と_mm_cvttsd_i32 (AVX512)の違いがわからないんだが、命令のエンコーディングが違うみたいなやつか?でもclangで-mavx512fの下ではどっちもvcvttsdsiになっているように見える」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Intelのintrinsicsなんもわからん」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Apple Clangは最近のmacOS上では自動で-msse4.1が有効になるっぽい(ceilとかfloorとかの関数が1命令にコンパイルされる)」 / Twitter
- κeenさんはTwitterを使っています 「ジョークかと思ったら真面目な記事だった…。主にSIMD(CPUによって命令があったりなかったりする)との付き合い方について。 Using SIMD acceleration in rust to create the world’s fastest tac | The NeoSmart Files https://t.co/WhxEVWmzk5」 / Twitter
- Using SIMD acceleration in rust to create the world’s fastest tac | The NeoSmart Files
- κeenさんはTwitterを使っています 「tacはファイルを逆順に表示するコマンドで、シェル芸でしか使わんだろって思ってたらログを最新順にみたいなどの需要がある。これも数GBクラスのログを逆順に表示したいというモチベーションからはじまってる。確かに言われてみればネタ扱いしたのも動作が遅くて使いづらいからだ。」 / Twitter
AVX
AVX512
SIMD 最適化
- Hideyuki Tanakaさんのツイート: "それはそうとavx512の命令セットはなんであんなグッチャグチャになってしもたんや?まあx86自体がグッチャグチャやという話もあるが"
- Tsukasa #01 [要出典]さんのツイート: "opmask というある意味では GPU 的な演算制御を手動でやるために用意されたとしか思えない仕組み。"
- Hideyuki Tanakaさんのツイート: "まあ要するにそういうことだよなあ(´・_・`)…てかもうこれ人間が書くんじゃなくて、#pragma omp simd とか、オートベクタライズ期待とかそういうの前提なんじゃないのか。コンパイラ死にそうだけど"
- Tsukasa #01 [要出典]さんのツイート: "手で書くことはもちろん可能だけど、ある程度以上はコンパイラ任せに……したいんだろうなぁ (にしては opmask の演算命令の中に不穏なものがあるけど)。"
- Hideyuki Tanakaさんのツイート: "絶対インテルコンパイラ以外ではまともな性能出ないことが目に見えててキビC~"
- Hideyuki Tanakaさんのツイート: "少なくともインテルコンパイラではまともに動いてるのかは気になるところ(´・_・`)"
- Hideyuki Tanakaさんのツイート: "いやそれかインテルコンパイラ開発してる人からのこれもないとまともにコード生成できひんでっていう命令がごっそり入った結果あんなグッチャグチャな命令セットになったという可能性もある"
- Hideyuki Tanakaさんのツイート: "まあ実際PEZY-SCでのプログラミングはあんま考慮することが少なくて、ワイドSIMDにまつわる問題はなくて楽といえば楽。フラッシュと同期を使いこなして、キャッシュヒット率を上げるだけやからな。(それが難しい)(でもそれは何でも一緒な気はする)"
- AVX2/AVX-512を用いたLennard-Jones系 ポテンシャルの力計算のSIMD化 // Speaker Deck
histric-1
- AVX512での逆数近似と精度補正 - Qiita
- kaityo256/rcp28_sample: Sample code of vrcp28pd
- 或るプログラマの一生 » AVX-512 がアナウンスされていた
- Fadisさんのツイート: "SIMDで一度にたくさんのベクトルや行列を扱う場合、個々のベクトルや行列を順番に並べてメモリに置いていると、今すぐに必要な要素の値が広範囲に散らばって配置されることになって、パフォーマンスの低下を招く、という現象がSIMDがとてもとても長いマシンで時々観測される"
- AVX-512(フォーマット)詳解
- きしもとさんのツイート: "(vp)ternlog命令の説明に関して考えていたのですが、この ternary は「三値論理」のように繋がるのではなく、「三項」ではないでしょうか(続… "
- herumiさんのツイート: "ご指摘ありがとうございます。iSUSの翻訳は三値でしたが、三項の方がよいですね。修正します…と思ったのですが、slideshareはupdateできないのでした。orz #x86opti… "
- インテル® Xeon® スケーラブル・プロセッサーのインテル® AVX-512 のベクトル長の拡張機能 | iSUS
- Hideyuki Tanakaさんのツイート: "SIMDはAVX512とか見てるとやっぱもう末期だよなあというか、というか、なんで長さ変えるだけで命令セット新しいの使わないと活かせないとか、これわざと最適化リソースかけさせて、x86から離れるのを惜しませているマーケなんじゃないのかとか、普通にAVX2をDual Issueでいいんちゃうのとか、謎は多い"
- CPUID に AVX-512 デープラーニング用命令のフラグが追加 - 教育は参考ブログ
- __int128にvpternlogdしたい - Qiita
- InstLatX64さんのツイート: "#AVX512_VNNI is 1|.5 L|T… "
- melancholic afternoon
- InstLatX64さんのツイート: "#TigerLake/#AVX512_VP2INTERSECT extended Venn-diagram about the 19+1 levels of #AVX512 in #Intel processors The importance and significance don't correlate with the area (the number of instructions is shown in parentheses) MICs are starting to fade out....… https://t.co/al4b7Pt9wW"
- SIMDプログラミング入門(AVX-512から始める編) - Qiita
- AVX-512を用いた、たぶん世界最速のBase64エンコード実装について - Qiita
- herumiさんはTwitterを使っています 「指数関数expのAVX-512によるベクトル化 https://t.co/hzsvtuAreu の記事を書きました。 >標準関数std::exp(float)に対する相対誤差は2e-6、速度は10倍ぐらいです。 コードはこちら。 https://t.co/qDVxSujr5K」 / Twitter
- 指数関数expのAVX-512によるベクトル化 - Cybozu Inside Out | サイボウズエンジニアのブログ
- fmath/fmath2.hpp at master · herumi/fmath
- herumiさんはTwitterを使っています 「https://t.co/OdN6YvJUxE ここで書いたやり方で実装してみました。https://t.co/y5f1T5NJMy float16個あたり5.44clk(Xeon Platinum 8280 2.70GHz)でした。@k_nitadori」 / Twitter
- herumiさんはTwitterを使っています 「@k_nitadori vpermt2ps面白いですね。頭に入れときます。x∈[1,2]なら2^x={exp(x log2 /4)}^4で{}を私の記事の5次近似して1mul+5fma+2mulもありですかね。」 / Twitter
- misc/two-pow.cpp at master · herumi/misc
- Keigo NitadoriさんはTwitterを使っています 「@herumi ありがとうございます。 直列に依存する命令列に対してこれは速いですね。」 / Twitter
- herumiさんはTwitterを使っています 「logもAVX-512で書いてみた。3D Now!時代(20年以上前!)に考えていたアルゴリズムを再実装したけど、もっとうまい方法あるのかな(あるんだろうなあ)。 https://t.co/GTDyR0p6DB」 / Twitter
- melancholic afternoon
- herumiさんはTwitterを使っています 「AVX-512によるlogの実装、いろいろ試したら結局素直な方法が一番よさけな感じ。試行錯誤のメモ。 https://t.co/spzgjOrIYJ」 / Twitter
- fmath/log.md at master · herumi/fmath
- FadisさんはTwitterを使っています 「Linus Torvalds氏が「AVX-512は苦しんで*んで欲しい」と言った事で各方面が盛り上がっている。AVX-512は512bitレジスタを用いるSIMD拡張命令で、多くのベンチマークでAVX2より高い性能を示すが、同じ拡張命令でもプロセッサによって対応がまちまちで使い辛い問題を抱える https://t.co/2Qu1ZyKVLq」 / Twitter
- Linus Torvalds: "I Hope AVX512 Dies A Painful Death" - Phoronix
- FadisさんはTwitterを使っています 「この発言はIntelが新しいマイクロアーキテクチャAlder LakeがAVX-512をサポートしなかったことを受けてなされたものだが、Intelは今後AVX-512対応プロセッサを作るのかについては何も明言していない」 / Twitter
- てらモス♋さんはTwitterを使っています 「AVX512命令って広大なんやな…(´・ω・`) https://t.co/19nVsqxA7p」 / Twitter
- Implement AVX-512 intrinsics · Issue #310 · rust-lang/stdarch
- Hideyuki TanakaさんはTwitterを使っています 「(´・_・`)👇これ見たらAVX512をよく知らない人でもリーナスのお気持ちが多少は理解できるんじゃないかな(適当)」 / Twitter
- herumiさんはTwitterを使っています 「IntelのマニュアルによるとAVX-512が使えるかの判定はXCR0レジスタの5-7ビットが111を確認することになってるのだけど、macOSではオンデマンドでAVX-512を有効にする(使われるとUD例外でOSで処理して戻る)のでそのフラグを見てはいけないらしい。 https://t.co/zXGfIp6Ala」 / Twitter
- fixed incorrect detection of AVX-512 on macOS by atafra · Pull Request #110 · herumi/xbyak
- herumiさんはTwitterを使っています 「こういうコンテキストスイッチのコストを減らすためのテクニックをみると、2018年のLazyFPUの脆弱性を思い出す。 https://t.co/45vlGTCuhR まあ今は2020年だし大丈夫なんだろうけど。 https://t.co/40oXJDf72b」 / Twitter
- LazyFP vulnerabilityの紹介
- herumiさんはTwitterを使っています 「XbyakがAVX-VNNI命令に対応しました。 https://t.co/gplgSKCuFB AVX-512用のvpdpbusdなどの積和演算命令をAVX-512非サポートなCPU(Alder Lake以降)でも使えるようにした命令群です。VexEncodingを明示して利用します。アセンブラ泣かせ。こんな細切れに命令増やしてていいのだろうか。」 / Twitter
- InstLatX64さんはTwitterを使っています 「GFNI_Demo.h, VBMI2_Demo.h: wrapper headers for emulating the missing byte/word shift and rot instructions with the new #AVX512 extensions (in notation of the great officedaytime site) https://t.co/yOrubv5wCT Free source: https://t.co/u7BbdTjmBt https://t.co/6QJiipRBtF https://t.co/ZrSuSV4JPJ」 / Twitter
- InstLatX64さんはTwitterを使っています 「Other non-crypto use of (V)GF2P8AFFINEQB in GFNI_Demo.h: - revbit, bit-broadcast, prefix-xor bytes; - rotate, mirror, multiplication for 8x8 bit matrices; - entire register pospopcount; #SSE #AVX #AVX512 https://t.co/u7BbdTjmBt https://t.co/4CdNRQquBx」 / Twitter
- InstLatX64さんはTwitterを使っています 「VPCLMULQDQ_Demo.*: experimental entire register prefix-xor operation w/ VPCLMULQDQ (ymm version for #AMD #Zen3) #SSE #AVX #AVX512 https://t.co/Ecvy2CSs1W」 / Twitter
- HPC Phys-20201203
- FadisさんはTwitterを使っています 「Intelの第11世代Core i9でAVX、AVX2、AVX-512を使った場合の性能の比較。AVX-512を使った場合AVX2と比較して多くのベンチマークでほんの僅かに性能が向上するが、猛烈に消費電力が増える事が示されている。えぐいケースではAVX2で180WがだったのがAVX-512で270Wに達する https://t.co/00OUE0C62w」 / Twitter
- AVX / AVX2 / AVX-512 Performance + Power On Intel Rocket Lake - Phoronix
- herumiさんはTwitterを使っています 「AVX-512とSVEって同じ512bit SIMDでもgatherとFMAの比率が結構違う感じ。AVX-512だとFMAで押し切った方が速い部分が、SVEだとテーブルルックアップした方がよいときがある。アルゴリズムが変わるので大変だな。」 / Twitter
- 或るプログラマの一生 » AVX512 による並列ハフマン符号処理
- 或るプログラマの一生 » AVX512 による並列ハフマン符号処理(その2)
- AVX512/VBMI2: A Programmer’s Perspective
- InstLatX64さんはTwitterを使っています 「https://t.co/bCv3yqMcW0 "The leaked documents show the appearance of EVEX instructions in Genoa, which are actually an AVX-512 type of instruction, indicating an AVX-512 engine in these new processors." Anyone skeptical still? #AMD #Genoa #AVX512 (EVEX is an #AVX512 encoding)」 / Twitter
- InstLatX64さんはTwitterを使っています 「#AMD logo and #AVX512 on same page: https://t.co/9WhVlwKsz1 https://t.co/nN8A0UNez0」 / Twitter
- ホイール欲しい ハンドル欲しい » Intel AVX その3 命令
- AVX-SSE 切り替えペナルティーを回避する | iSUS
- インテル® アドバンスト・ベクトル・エクステンション (インテル® AVX) 組込み関数の詳細
- From IA-32 to avx-512
- Shirouzu Hiroaki(白水啓章)さんのツイート: "簡単な実験中。AVX2のgather命令、手元のCoffeeLakeだと十分速い。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "動作が不完全だった。完動したら、別段速くないというオチに。 8つのindexが別々のキャッシュラインにアクセスする場合、AVXのvgather命令を使っても、遅いものは遅いという印象。"
- x86/x64 SIMD命令一覧表 (SSE~AVX2)
- 「GNU Binutils 2.32」リリース | OSDN Magazine
- CPU命令セット“AVX-2”の活用で大幅な性能向上を果たした「EmEditor」v18.7.0 - 窓の杜
- まさみさんは語りたいさんのツイート: "んー??wgetがAVX2命令実行中にsegv起こして落ちた。しかも多分終了作業中??(99%)"
- まさみさんは語りたいさんのツイート: "rep stosでavx2命令を使ったメモリクリア中にdstアドレスが化けたっぽい。バグなのかどうかはまだ不明。"
- AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
- ./note122.html
- yohさんはTwitterを使っています 「何かに似てるなとおもけど SIMD命令でデータ加工するやつだなこれ マァnumpyはSIMD相当だし当たり前か」 / Twitter
- yohさんはTwitterを使っています 「forループ回せば(コーディングは)早いんだけど numpyのindexingやらを駆使してゴニョゴニョやっていくの 完全にパズルだなこれ」 / Twitter
- cpuidでAVX2に対応しているか調べる - 睡分不足
- herumiさんはTwitterを使っています 「Alder Lake, AVX-512は使えないのにAVX2でもVNNIを使えるようにしたから、Xbyakでvpdpbusdを使うときはVexEncodingを指定するという苦肉の策で対応。他のアセンブラはどうしてるのかな。 https://t.co/K5m4TY4kAJ vpdpbusd(xm0, xm1, xm2); // AVX-512 vpdpbusd(xm0, xm1, xm2, VexEncoding); // AVX2」 / Twitter
- FadisさんはTwitterを使っています 「12年ぶりのメジャーバージョンアップとなるcoreutils-9.0がリリースされた話。9.0ではcp mv installがFICLONEやcopy_file_rangeを積極的に活用するようになり、wcは行数カウントにAVX2を使えるようになり、cksumはCLMUL命令を使って高速にCRCを計算できるようになる https://t.co/ZTM7L84O6N」 / Twitter
- GNU Coreutils 9.0: cp Now Enables CoW By Default + Copy Offload, wc Now Uses AVX2 - Phoronix
- FadisさんはTwitterを使っています 「GNU CoreutilsはLinux環境でよく使われている基本的なコマンドの詰め合わせで、dd ls mkdir cat sort date env nice sleep uptime yes等のシェルスクリプトの入門書に大抵書いてあるようなコマンドのうち結構な割合がこれに含まれている https://t.co/c9sMiKfCeF」 / Twitter
- Coreutils - GNU core utilities
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「へぇ…copy_file_range(2)と。 fd に O_DIRECT を指定で OS-cache 不使用でコピーとかは、流石に無理かな。」 / Twitter
FMA
QEMU
- だめぽラボ@技術書典9さんはTwitterを使っています 「Rosetta 2は浮動小数点演算の細かいところをどのぐらい正確にエミュレートしてるんだろう(x86とAArch64ではアンダーフロー例外の発生条件が微妙に違う)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「QEMUはアンダーフローの発生条件についてはしっかりやっているようだ。実行したのはこれ: https://t.co/qVwojFzUJE https://t.co/KS4iNPqJDA」 / Twitter
- floating-point-test/exception.c at master · minoki/floating-point-test
- だめぽラボ@技術書典9さんはTwitterを使っています 「QEMUは fma(0, inf, nan) での例外の発生の有無がなんか変だな。アーキテクチャ的にはどうなるのが正しいんだ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Haswell以降の(FMA命令を持つ)Intel Macでfma関数は常にハードウェアFMAを使うようだけど、-mfmaの有無でNaNのペイロードに関する挙動が若干違うな(コンパイラーの選んだ命令とlibSystem内部で使われている命令が違うのか)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Intel SDMを読んだ感じ、x86_64のFMA命令はfma(0, inf, nan)について例外を投げないのが正しいっぽい。Linux上で例外フラグを立ててるのはglibcのfma関数かな。-mfmaの他に-O2を指定すると例外を投げないようになった」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「AArch64はfma(0, inf, nan)についてinvalid例外を発生させるっぽいな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE 754-2008のFMAは当時すでにあった実装(PowerPCとItanium)でFMA(0, ∞, NaN)の例外の有無が食い違ってたから規格ではその場合の例外の有無を定めない(実装に委ねる)ことにしたみたいな話をどこかで読んだ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数こそこそ噂話!」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「PowerPCはFMAのこの場合に例外を投げるっぽい。ItaniumはSDMを読んでもよくわからん」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「FMA4は入力と出力を合わせて4オペランドであって、入力の数的にはあくまで3項演算子なのでは(z←x+yを3項演算子と呼ぶ流儀だったらごめんなさい)」 / Twitter
- 富岳てるみさんはTwitterを使っています 「Intel「AVX世代のFMAは4オペランドにしよう!」 AMD「ほーん。そうやって作るわ」 Intel「(チッなんだよこいつ…) やっぱ3オペランドにするわ」 AMD「えぇ…(困惑)」 そしてFMA4という拡張は忘れられていくのじゃ…」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「そういやFMA命令は使うと丸めの出方とか変わるんだよな。そのうちいっぺん初期値鋭敏性のある挙動でどんな感じで差が出るか or 意外と安定かとか比べてみたいな。また暇な時にでも」 / Twitter
- 和積演算(FMA) - yohhoyの日記
- だめぽラボ@技術書典9さんはTwitterを使っています 「FMA (fused multiply-add) の話 https://t.co/34TUwDJPYJ この記事に「__builtin_fmaは最適化目的で存在するのであり、ハードウェアFMAが使用されるとは限らない」って注意書きしておいた方が良いのかな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「俺もよくわかってないけど__builtin_fmaの役割は ・定数畳み込み ・ハードウェアFMAが利用可能な場合にその命令列を吐く ぐらいでいいのかな。fma(x, 1.0, y)みたいなやつをx * yに変換するようなことはあるのだろうか」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ISAによっては浮動小数点数の乗算や加算専用の命令を持ってなくてFMAだけがある、みたいなやつもあるみたいだが」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「そういえばFMAの記事で使ったこのコード、volatileをつけ忘れたせいで賢いコンパイラーだとコンパイル時に全部計算してしまって実行時にfma関数を呼び出さなくなるという重大な不具合があるんだよな https://t.co/csJG3TEwjG」 / Twitter
- test-fma/test-fma.c at 9d656d5940478625317d9b0833a061a5a78144ef · minoki/test-fma
- だめぽラボ@技術書典9さんはTwitterを使っています 「fma(x, 1.0, y) と等価なのは x + y だった。clangはこの最適化をやるけどGCCはやらなさそう」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「https://t.co/UJTIa6g7Qq を見た感じ、通常は__builtin_fmaとfmaは全く同じ意味で、-fno-builtinを指定した場合のみ後者に対する最適化が抑制される、という感じかな。」 / Twitter
- Other Builtins (Using the GNU Compiler Collection (GCC))
- だめぽラボ@技術書典9さんはTwitterを使っています 「FMA(融合積和演算)を使ったら計算が遅くなった話 https://t.co/6aysE7vdPu これ多分命令のサイクル数(?)がどうのこうのみたいな話になるんだろうけど自分はその辺詳しくないのでコメントできない。Haswellでの結果のようだけど、違うマイクロアーキテクチャだと違う結果になりそう」 / Twitter
- FMA(融合積和演算)を使ったら計算が遅くなった話 - Qiita
- だめぽラボ@技術書典9さんはTwitterを使っています 「Ice Lake搭載Macで試したらFMA使用・不使用でほぼ同じ実行時間になった」 / Twitter
- mod_poppoさんはTwitterを使っています 「FMAは浮動小数点数の乗算と加算を兼ねるので、FMAをソフトウェア実装する際は乗算の面倒くささと加算の面倒くささの両方と対峙することになる」 / Twitter
bfloat16
- だめぽラボ@技術書典9さんはTwitterを使っています 「bfloat16の演算ってfloat32でエミュレートする際は掛け算が素直にできないやつか」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「これ反例が作れなさそうな気がするし実は問題ない?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Intelのbfloat16の実装は非正規化数を扱わないのか。ふーむ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「同人誌でbfloat16を安易に「IEEE準拠」と分類したのは早まったかなあ。少なくとも注意書きは必要」 / Twitter
AMX
- FadisさんはTwitterを使っています 「Intelが新しいCPU向けの拡張命令AMXのサポートをGCCとLLVMに投げているらしい。AMXでは新しいレジスタTMM0~7が追加される。レジスタ長は1KiB(8192bit)で512bitレジスタx16行の2次元配列で1本のレジスタを構成し、このレジスタに対して行列演算を行う命令が追加される https://t.co/wPmT8V1LRH」 / Twitter
- GCC Compiler Support Posted For Intel AMX - Phoronix
- FadisさんはTwitterを使っています 「これBFloat16とINT8に対応してるあたりからして、ニューラルネットワークの学習に使う気満々で、要するにIntel版のTensorCoreか…」 / Twitter
- herumiさんはTwitterを使っています 「XbyakにIntel AMX命令の追加pull reqが来たのだけど、TMMレジスタって何? 全然知らなかった。というか仕様が公開されたの昨日? え? https://t.co/7SmMzq2jcq」 / Twitter
- Add support of Intel® AMX instruction set by nshustrov · Pull Request #95 · herumi/xbyak
- herumiさんはTwitterを使っています 「Intel AMXをざっくりと読んでみた。AVXを置き換えるものではない。現状bfloat16かint8の大きな行列の積のタイリング専用演算TMUL。TMMはタイルを表すレジスタ。tileloaddで部分行列読み込み、tdpbf16psなどで行列積の足し込みをする。行列パラメータはldtilecfgで設定 https://t.co/M8N4ISlX47」 / Twitter
- blog/amx.md at master · herumi/blog
- Intel Advanced Matrix Extension(AMX)とは何なのか - FPGA開発日記
- FadisさんはTwitterを使っています 「IntelがAMX拡張命令のサポートをLinuxカーネルに入れるべくパッチを更新している話。AMXはint8またはbfloat16を大量に並べた8本の8192bitレジスタを使って行列演算を1命令で行うIntel最新のふぁっきんクレイジー命令セット。 https://t.co/xwjgR7To5x」 / Twitter
- Intel Sends Out Latest AMX Support For The Linux Kernel - Phoronix
- FadisさんはTwitterを使っています 「@KuniSuzaki パッチを見る限り、コンテキストスイッチする際に8KiBものレジスタを待避する領域を常に用意するのは勿体ないから、必要な時だけこのレジスタを復元できるようにする為のものっぽいです」 / Twitter
- FadisさんはTwitterを使っています 「で、複雑な命令をトランジスタ数でゴリ押す最先鋭であるAMXは、コンテキストスイッチでレジスタを退避させる時に必要なメモリが大きすぎて、常にAMX分の退避領域を確保したくないって事でユーザ空間からAMXする気がある事をカーネルに伝えるシステムコールが議論されてる https://t.co/5IfjDzNq9v」 / Twitter
- Intel Posts Newest Advanced Matrix Extensions Patches For Linux (AMX Patches v7) - Phoronix
- FadisさんはTwitterを使っています 「AMXはIntelプロセッサに8192bitのレジスタを8本追加し、このレジスタ上を2次元配列と見做して1命令で行列演算を行う拡張命令。ALUは既存の物とは独立している。xsaveで退避するには追加で8KiBのメモリが必要、ということになる」 / Twitter
- とみながたけひろさんはTwitterを使っています 「これを見て「うわーなつかしの手抜きレイジーコンテキストスイッチや!俺も書いたことある!」などと思うロートル」 / Twitter
- とみながたけひろさんはTwitterを使っています 「たかだか512byteのコンテキストやったんやけど当時としてはでかかったので、スレッド作るときとかにこの命令使うぞと指定しないと未定義命令例外で落とす(そこで自発的に使用可能にはしない)、とかしてた。未定義命令ハンドラでメモリ確保して〜、も出来るのだけど、間違って使うのを防ぐため」 / Twitter
- とみながたけひろさんはTwitterを使っています 「なおすごく真面目な、多重ネストできる割り込みハンドラでもFPU使えるっていうレイジーコンテキストスイッチも実装したことがある。なかなか辛かったがストレージ読み込み性能とかで1割以上は稼げたので嬉しかった記憶 今じゃみんな何でもSSE使うから意味が殆どないよなー」 / Twitter
四倍精度
- てくのたのしーさんはTwitterを使っています 「ところでi128やu128はあるのにf128が無いのはなんで?」 / Twitter
- 白山風露@🔴👁️👁️🔴🔴👁️🔴さんはTwitterを使っています 「binary128がまともにハードウェアサポートされてるアーキテクチャあるんです?」 / Twitter
- てらモス♋️さんはTwitterを使っています 「POWER9…(´・ω・`)?」 / Twitter
- てらモス♋️さんはTwitterを使っています 「Power9+V100構成であるSummit他のユーザー氏〜(´・ω・`)」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「これはdouble-double precisionの方で,IBMは昔コンパイラに入れてた. ただ,この方式はIEEE 754-2008で正式に4倍精度が策定されてからは4倍精度と名乗れなくなったので現在は区別してdouble-double型とかいう. ただPower9はちゃんとIEEE754-2008の4倍精度のはず」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「あー、コンパイラ側がソフトウェア実装としてサポートしてたのとアーキテクチャがネイティブでサポートしてたのが両方とも 128 bit だけど内容が別みたいな感じなのか」 / Twitter
- The saga of the Power ISA 128-bit long double
- 電子計算機の沼さんはTwitterを使っています 「あっ!こんなところに4倍精度の関連研究に詳しい論文が!! https://t.co/8Hwo1sXcsH」 / Twitter
- SIMD演算を用いた高精度疎行列計算ソフトウェアの高速化 , hpc::numa.blog()
- 電子計算機の沼さんはTwitterを使っています 「IBMのやつ https://t.co/iBcLaUKLTa」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「IBM方式とか言ってるのは倍精度2つ使って,指数部をずらして長い桁を表現する.仮数部は2倍,指数部は変わらない. 指数部を増やそうと思うと表現範囲を増やさないといけないので作るのが大変だけど,仮数部を増やすだけなら指数部を15桁分ずらして誤差を拾えばいいから簡単」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「The saga of the Power ISA 128-bit long double https://t.co/drW8AOY1P4 ㍂」 / Twitter
- C言語で四倍精度浮動小数点数 (binary128) を使う - Qiita
- うわの空さんはTwitterを使っています 「@mod_poppo @Qiita FYI ですが最近 icc 周りのパッケージの名称が変わって、ついでに無料で手に入るようになったようです: https://t.co/LwB9eZ41gC」 / Twitter
- Intel® oneAPI Toolkits
blog
- -OfastはNaNチェックを無効化する - in neuro
- エラーフリー変換の紹介 および FastTwoSum アルゴリズム の紹介と証明 -- glibc のコードを読むための参考に -- - 小清水さんとコンピューター数学
- 作る側の気持ちで理解する浮動小数点数 - in neuro
- QEMUはどのように浮動小数点命令をエミュレートしているのか - FPGA開発日記
- Binary Translation型エミュレータを作る(浮動小数点演算の検討) - FPGA開発日記
- Binary Translation型エミュレータを作る(浮動小数点演算の実装) - FPGA開発日記
- Binary Translation型エミュレータを作る(softfloatクレートの実装変更) - FPGA開発日記
- 複素関数記述DSLについて | 雑記帳
- 文字列から浮動小数点数に変換する、なるべく速く - toge's diary
- 複数精度の浮動小数点を取り扱うための手法NaN Boxingについて - FPGA開発日記
- 半精度浮動小数点(2バイト)と単精度浮動小数点(4バイト)のC言語での変換方法を調べる - cvl-robot's diary
- 非数と無限大のメモ | 可音月堂
- 浮動小数点数の等値判定 - fujieda's tech blog
Wikipedia
- 浮動小数点数 - Wikipedia
- Floating-point arithmetic - Wikipedia
- NaN - Wikipedia
- NaN - Wikipedia
- IEEE 754 - Wikipedia
- IEEE 754 - Wikipedia
- IEEE 754における負のゼロ - Wikipedia
Qiita
- 娘に分かりやすく浮動小数を教えるシナリオ - Qiita
- long doubleと拡張倍精度浮動小数点数フォーマット - Qiita
- 0.1は浮動小数点で正確に表せないのに、printしたときに0.1と表示されるのはなぜか - Qiita
- 浮動小数点数の min / max - Qiita
- 浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita
- 浮動小数点数の16進表記 - Qiita
- 理想の浮動小数点数である「浜田のURR」を理解する - Qiita
- Javaの strictfp が実際に意味を持つ環境を用意する - Qiita
- ArmにあるというJavaScript専用命令とは何か、あるいは浮動小数点数を整数に変換する方法について - Qiita
- Haskell/GHCでの浮動小数点数の扱い - Qiita
- yohさんはTwitterを使っています 「float型では123456789すらも表現できない話 - Qiita https://t.co/BnYlrG6cgK IEEE Binary32だと FLT_DIG==6 だよなと思ったら https://t.co/Wc697GXaD0 また小難しそうな話が」 / Twitter
- float型では123456789すらも表現できない話 - Qiita
- C++ `digits10` is 6 for IEEE float, but the first non-representable integer already has 8 digits? - Stack Overflow
- 閲覧者のユーザーエージェントを三角関数で判定可能か? - Qiita
Twitter
その他
histric-1
- taklさんのツイート: "#tcfm 19 11:58~ レジスタウィンドウみたいなものが廃れたのは、レジスタ割当技術が進歩してコンパイラにやらせた方がいいということになったから、という説明をどこかで聞いた記憶があります。"
- Miura Hidekiさんのツイート: "https://t.co/ha96GdyoRl #tcfm 大変面白かったのだけど、IBMのマシンをもって昔はスタックが無かったというのだけはもやもやした。バローズのスタックマシンとかもあったわけなので"
- Toru Hisaiさんのツイート: "そういえば昔 GDC で聞いた講演で、C++ の最も素晴らしい機能はデストラクタで、なぜならそれは決定論的だから、というのを思い出した。 https://t.co/wjnrpFTKT8 ここの「The Beauty of Destruction」という講演。 https://t.co/QpeC1gj3XG #tcfm"
- Kazuho Okuさんのツイート: "そもそもIEEE754は実用上の理由に基づいたもので気持ち悪いところはいろいろあるよね。小さい数の場合はだんだん精度が悪くなってくけど、大きい数の場合はいきなり無限大に切り替わるとか"
- Ryou Ezoeさんのツイート: "入門書に書く浮動小数点数の詳細、IEEE-754がデファクトスタンダードなので解説するとしても、完全に詳細にはやらないかな。"
- Ryou Ezoeさんのツイート: "符号ビット、仮数部、指数部、+0.0と-0.0、+∞と-∞、2種類のNaNぐらいで十分だが、正直NaNはQuiet NaNだけで十分かもしれない。"
- Shiro Kawaiさんのツイート: "NaNはNaNでありNaN以上でも以下でもない! gosh> (list (nan? +nan.0) (>= +nan.0 +nan.0) (<= +nan.0 +nan.0)) (#t #f #f) だがNaNでもない! gosh> (= +nan.0 +nan.0) #f… https://t.co/zpKbzMG9jI"
- Shiro Kawaiさんのツイート: "おお、丸めモードの違いが目に見える形で現れたケースとして興味深い。… "
- 小学ニ年生 別冊付録さんのツイート: "#tcfm 向きの話題だ https://t.co/TVGQAngDEe"
- なぜWii版マリオ64で長時間放置すると足場が浮かび上がるのか(非技術者向け解説)
- Ryou Ezoeさんのツイート: "16bit浮動小数点数型、機械学習用途以前は、HDR用途に使われていた経緯がある。"
- KURODA, Michihiroさんのツイート: "@tanakh はじめまして。 3DCGIのOpenEXRファイルフォーマットが16bitFPが主流なのでそうなっています。 CGIのレンダリング時の演算自体は32bitFPのものがほとんどです。合成ソフトに限っては16bitFPのものがあったりします。"
- Tsukasa #01 [要出典]さんのツイート: "@tanakh オフラインレンダリングでも出力で 32-bit float はあまり無かった気が。リアルタイムレンダリングだと最近主流の 16-bit float とか Xbox 360 なら 10-bit float というのも。ディスプレイの出力側は最近 10-bit 整数に基づく HDR… https://t.co/bOkmhjTMHV"
- x86/x64における小数から整数への丸め処理命令の変遷 - Cybozu Inside Out | サイボウズエンジニアのブログ
- Fadisさんのツイート: "浮動小数点数から整数への変換はC言語の場合C11 §6.3.1.4.1でゼロに近づける方向にtrancate、C++の場合C++17 §7.10.1で小数部を破棄するのと同義になるようにtrancate(つまりC言語と同じ)、という風に定められてるよ"
- Fadisさんのツイート: "ただし浮動小数点数から元の値をそのまま表現できない浮動小数点数への変換を行う場合、近傍の2つの表現可能な値のうちどちらをとるかは実装が決めて良い事になっている(つまりどちらかになる事をプログラマは期待してはいけない) C++17 §7.9.1"
- Fadisさんのツイート: "Intelが将来のプロセッサで利用可能になる新しい浮動小数点数フォーマットBF16を公開した。BF16は既にある半精度浮動小数点数FP16と異なり、指数部8bit仮数部7bitになっている。Intel曰く、このくらいの方がディープラーニングにおける学習で欲しい範囲に合うらしい https://t.co/tTPfqMCXLa"
- Intel Publishes Whitepaper On New BFloat16 Floating-Point Format For Future CPUs - Phoronix
- Tsukasa #01 [要出典]さんのツイート: "参考までに、BF16 (bfloat16) は Google TPU (v2 以降) の演算形式で、かつ binary32 (IEEE single) の上位 16 ビットを切り取ったものです。――というか何故今ニュース記事になってるんだろう。 https://t.co/6h3XyUQMWj… https://t.co/h9aws20YxD"
- bfloat16 floating-point format - Wikipedia
- Tsukasa #01 [要出典]さんのツイート: "NVIDIA は単純な (tensor core で使用できる) IEEE FP16 (half) だと勾配消失を起こして学習が進まないことがあることを指摘しており、学習時のロスを大きくすることでこれを防ぐ手法を必要に応じて推奨している。BF16 は精度の代わりに表現範囲を増しており、この手法の必要性を低くする……のかな。"
- 島鉄雄さんのツイート: "浮動小数点も2進数で計算されてて ︙ 2^2 = 4 2^1 = 2 2^0 = 1 2^-1 = 0.5 2^-2 = 0.25 2^-3 = 0.125 ︙ 少数の方はどう頑張っても2のマイナスべき乗の組み合わせじゃ表現できない10進数が出てくる 0.1 をどうやって表現するか?小さい数を足していけばいいけど、小さくするにもビット数に限界がある… https://t.co/nsR9P1U0Gy"
- mはげさんのツイート: "誤差の原因は2つです。実は2つ目の方が支配的です。 また2つめは多め少な目どちらも起こりえます。 1. 10進数を2進数の32bit浮動小数点に変換した際の丸め誤差(表現誤差) 2. 大きい数(今までの合計)と小さい数(これから足す数)の足し算時の桁落ち誤差… "
- Hisaki Oharaさんのツイート: "bfloat16 (指数部が単精度と同じ8-bit) のwhite paperが出ていた (PDF) https://t.co/JzKq5iRGAR"
- bfloat16 - Hardware Numerics Definition
histric-2
- Masaki Haraさんのツイート: "https://t.co/4hmu15zgrv Rustのpowfは1.0のNaN乗を1.0とするが、これはIEEE754のpowではないもののPOSIXのpowf(3)の規定には準拠しているらしい。そういうこともあるのか。"
- powf for NaN returns 1 · Issue #60468 · rust-lang/rust
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Rubyにはこんな節約技が使われているのね。 (ちなみに「仮数部がすべて 1 の場合に NaN」というのは、「指数部」の誤記ではないかしらん?) ---- NaN Boxingというテクニックを知った - 不確定特異点 https://t.co/xQOhkVc076"
- NaN Boxingというテクニックを知った - 不確定特異点
- Fadisさんのツイート: "IEEE754の-0とかbitwiseで異なるNaN、浮動小数点数の山の中に別の情報を埋め込むのに使えるから数値計算系のデバッグで稀に役に立つ"
- 島鉄雄さんはTwitterを使っています: 「NaN === NaN //falseはそれでいいと思うけど? Cでも(というか機械語レベルで)nan == nan => 0となる。 逆にd !== dがtrueになる時はdがNaNになっていると判定出来る。(昔のCにはisnan()が無かったからd != dと判定した) NaNになった時にトラップ出来ない環境だと、NaNのデバッグは地獄だけどねw https://t.co/Nm3xh5tNlx」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「言語の実装でセルフホストにしたい時に、最難関な部分が浮動小数点の入出力だと思われる。 例えば 123456789012345678901234567890123456789012345678901234567890.0 を読み込んで 1.2345678901234567e+59 と出力して、それを更に読み込んだ時に内部でビットレベルで一致している事が求められる。 続く」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「C で普通にやると strtod() と printf() を使う事になるけど、printf() は正しい値を出力せずに、指定した桁か暗黙に決められてる桁数(6とか)しか出力しないから、入力⇔出力でビットレベルで一致させる事が常に出来ない(たまたま合う事はある)。 Emacs Lisp の場合はどうしてるかというと、」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「出力にgnulibのdtoastr()を呼び出しているけど、それは内部で 1.snprintf() を少ない桁数で文字列化 2.それを strtod() で読み込む 3.ビットレベルで一致しているか判定 4.一致してれば出力、してなければ桁数を増やして1へ と涙ぐましい努力をしているw セルフホスト用に自前実装する場合は」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「入力:AlgorithmM,AlgorithmR,Bellerophon 出力:Dragon4 あたりのアルゴリズムを使うけど、Mは簡単に理解出来るけど、それ以外はボヤっとしか理解出来ないw 特にDragon4は公開されてる実装が世の中に3つしか無いから俺が実装したよってサイトから拝借したw それでうまく行った 長文失礼しました」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「リーダブル(入力⇔出力で値が変わらない)な浮動小数文字列を出力するC言語の関数(snprintf_double) を Gist に登録しました。 C言語で正確な浮動小数を出力するには、こんな感じにすればいいよというサンプルコードです。」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「URLを忘れた… https://t.co/kJrYHVh2l5」 / Twitter
- リーダブル(入力⇔出力で値が変わらない)な浮動小数文字列を出力するC言語の関数(snprintf_double)
- 島鉄雄さんはTwitterを使っています 「JavaScirpt は数字は全て倍精度浮動小数で何だこれwと思ったけど、よく考えたら、普通の言語だと(i: 整数, f: 浮動小数) i + i, i + f, f + i, f + f の4通りを割り出す条件分岐が必要だけど、JavaScirpt は f + f の1通りで良い。 条件分岐が要らないからインタプリタ実行が高速になる。 天才だろ!」 / Twitter
- 島鉄雄さんはTwitterを使っています 「CPU レベルで考えたら、整数演算を倍精度演算器で実行するとか有り得ないけど、昔の CPU が非力でしかもインタプリタ実行しか無い時は、少しでも高速に実行したい訳だから、良く考えられた仕様だった。 という事に今気付いた。」 / Twitter
- κeenさんはTwitterを使っています 「Rustは浮動小数点数をMapのキーに出来ないように作られてる https://t.co/1Nnq6ZUDkv」 / Twitter
- ぽけばさんはTwitterを使っています 「はてなブログに投稿しました NaNとMap - pocketberserkerの爆走 https://t.co/sHSLwGKffR」 / Twitter
- NaNとMap - pocketberserkerの爆走
- くいなちゃんさんはTwitterを使っています 「整数と浮動小数点数では、メモリ上の配置が全然違うため、整数をむりやり浮動小数点数として読むと 値が大きく変わってしまいます。 逆にこれを活用して、ビットが0の個数を瞬時に数えたり、平方根を瞬時に求める方法が編み出されたりしていて、こわい黒魔術がたくさんあるのです…。」 / Twitter
- TokusiNさんはTwitterを使っています 「@kuina_ch 整数浮動小数点の変換回路をlog2の計算に使うのは実際にやったことがある・・・」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「浮動小数点の謎テクニックだと、こんなのも。 ---- 「IEEE 754形式では、float a, b が与えられたとき、a>b>0なら*(int*)&a>*(int*)&bとなる」 https://t.co/96ewE7pAaT https://t.co/ve2f0VfUSF」 / Twitter
- 基数ソート - Wikipedia
- Hideyuki TanakaさんはTwitterを使っています 「あとsqrtの丸め方向調べたいなら、printfで%gで表示するんじゃなくて%aで表示すべきじゃないんですかね…」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「@Hishinuma_t MPFRで所定のビット数を指定して、演算ごとにmpfr_subnornalizeを呼び出せば、非正規化数の扱いを含めてbinary256相当になるはずです(NaNの扱いを除く) https://t.co/eGqZOcuShP」 / Twitter
- GNU MPFR 4.1.0
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数小話を読み返してたけど、二段階丸めのところで奇数丸めからの最近接丸めがうまくいく条件が書いてないな(桁数の差が1だとうまくいかない。1.4999→(奇数丸め)→1.5→(最近接偶数丸め)→2みたいなやつ)」 / Twitter
- ドッグさんはTwitterを使っています 「浮動小数点数のパースは精度と速度のトレードオフがあるからなかなか大変そうだ…」 / Twitter
- きしもとさんはTwitterを使っています 「ヤバいのはアレね、Rubyとかのような一部の言語にある「小数点以下、十進でn桁」(←ヤバい)を指定できる奴」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「十進小数を二進浮動小数点数にするやつ、最初の700桁ぐらい読んで判断できない場合は残りの部分が0より大きいかどうか判断する、って感じで行けたりする?そもそも700桁も読みたくない?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「【特に深い意味のないアンケート】「演算の順序」と聞いたときにどっちを思い浮かべますか」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「昨日のアンケートだけど、「掛け算の順序」と言った時には x*y vs y*x を指していて、「浮動小数点数の演算の順序(どちらを先に計算するか)」と言ったときには結合法則の方を指してるんだよね。なので「演算の順序」って曖昧な言葉だな〜〜と思ったのでした(実際にアンケート結果は綺麗に割れた)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「だからHaskellのEqクラスが(==)と(/=)の両方をメソッドとして持ってるのは完全に冗長なんだよね。x /= y = not (x == y)以外の定義が有意義な状況を俺は知らない。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の等号・不等号について成立しないのは x == x や x < y ⇔ not (x >= y) であって、 x == y ⇔ not (x != y) は普通に成立します」 / Twitter
- ドッグさんはTwitterを使っています 「だから Rust で f32 や f64 は Eq ではなく PartialEq なのじゃ…」 / Twitter
- てらモス♋️さんはTwitterを使っています 「ほんとだ NaN != NaN は ture だ」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「自分が何をしているかもわからないまま浮動小数点数の等号比較で許容する誤差として計算機イプシロンを使う人の話はやめろ!!!」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「計算機イプシロンは「浮動小数点数の四則演算1回の相対誤差の上限」みたいな感じの特徴を持つ量です。確か。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「元のツイートでは省略しましたがもちろん非正規化数が反例になります。確か。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「あと知恵だけど、PythonはBCD演算を採用しておけばよかったかもね。後々事故が起きそう。どうせパフォーマンスは重視されないし」 / Twitter
- (あんちべ! 俺がS式だ)さんはTwitterを使っています 「浮動小数点って何? - Qiita https://t.co/s7FziMCvTJ この話、年に1回くらい誰かにしてるんですが、コンピューターサイエンスやってない私のような文系卒は余計こういうところ注意しておきたいですね」 / Twitter
- 浮動小数点って何? - Qiita
- (あんちべ! 俺がS式だ)さんはTwitterを使っています 「検定について質問に来た若者にR使って説明したら「あんちべさんPythonじゃないの…」って言われたけど、適宜タスクに応じて使い分ければいいと思うし、超雑な説明として「Rの方が多分CSやってない人は意外性少ないと思う」って話の例で0.05*0.05の結果見せたら納得してもらえた(上がpython、下がR) https://t.co/F2K815Tkfy」 / Twitter
- (あんちべ! 俺がS式だ)さんはTwitterを使っています 「私含め浮動小数点の誤差がどうこうとか知らないまま大人になった勢、CSの人と話すの厳しいこと多くて、私は入り口としてここから本読んでいった。今もっといい本あるかもだけど、今読んでも楽しいし、夜長の(あくまで読み物として)読書におすすめ https://t.co/Yfyg9jE6ic」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「MS謹製のFMA実装が古いマシンだと間違える件、VS Feedbackを探したら「Closed - Not a Bug」になっているのを見つけた / [C++] std::fma returns incorrect result on Intel i7-2630QM - Visual Studio Feedback https://t.co/LIROJmSGjj」 / Twitter
- [C++] std::fma returns incorrect result on Intel i7-2630QM - Visual Studio Feedback
- だめぽラボ@技術書典9さんはTwitterを使っています 「誰もバグ報告してないようなら自分がバグ報告するつもりでいたけどこういうの見かけると萎えちゃうなあ。無償で他人を説得するほどのコミュニケーション能力は持ち合わせていないので」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「FMA3を実装していないx86 CPUがこの世から一掃されれば解決する(=放っておいても時間が解決する)問題ではあるのだが、気持ち悪い」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「浮動小数点数の数式を渡すと誤差が小さくなるように式変形してくれるツール Harbie、便利だ https://t.co/VSYLUztGwY」 / Twitter
- Herbie: Automatically Improving Floating Point Accuracy
環境依存
- だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点演算の結果が環境依存なのはどんなとき?」みたいな記事を書こうと思ってまだ書いてない」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「まずlong doubleは環境依存。sinとかexpとかの数学関数も環境依存。コンパイラーの最適化で結果が変わるやつが有効になっていると環境依存。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「同じバイナリーの実行したときの結果は同じか?実行時にcpuidとかを見て使う命令を変えていると環境依存。コア数とかを見て結合法則に頼りつつ並列度合いを変えていると環境依存。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「同じ命令列が実行されたときの結果は同じか?一部のCPU命令は近似値を返すので、CPUによって結果が違うかもしれない。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「みたいな内容を膨らませて例も挙げつつ論じる記事にしたい。」 / Twitter
Rust
- 熨斗袋さんはTwitterを使っています 「Rust で最近困ったこと f64 に入ってる正の数を切り上げて i64 にしたいんだけど、ceil して cast するときに誤差で -1e-10 されてたら floor になっちゃうし +0.5 して cast するのもなんか違うよなという感じでもやもや」 / Twitter
- 熨斗袋さんはTwitterを使っています 「多分 ceil したときに内部表現が整数になる保証があると思うんだけど記述見つからないし、そういうのに頼りたくない気持ちがある」 / Twitter
- 熨斗袋さんはTwitterを使っています 「@TumoiYorozu 例えば元の値が 1.5 だとして、ceil して 1.9999 になって cast したら 1 になりました、は嫌じゃないですか? 浮動小数点数の内部表現と密に関わりたくないというか、うまく説明できないのですが」 / Twitter
- 百千万億 萬さんはTwitterを使っています 「@noshi91 要するに ceil で得られる数に,小数点以下の情報がない保証が見当たらないって話ね.まぁ回路的に小数点以下を切り捨てる回路は難易度低そうだし,信じていい気がするけど」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「普通の浮動小数点形式では(少なくとも、IEEEで規定されているようなものは)、「ある浮動小数点数の両隣の整数」はその形式で厳密に表現できるので、floorやceilは(入力が正確だとして)正確な結果を返す」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点型を経由せずにfloorやceilを計算するにはC言語なら丸めモードを変更した上でlrint/llrintを呼び出すという手があるが、普通はそこまでしない」 / Twitter
- kashiさんはTwitterを使っています 「@mod_poppo 細かいことですが、「ある*整数でない*浮動小数点数の両隣の整数」ですかね。浮動小数点数xが整数であった場合は、(floorやceilはそのまま返せばいいですが) 両隣の整数が表現できないことはよくあると思います。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「@mkashi おっしゃる通りです(細かいので端折ってしまいました)」 / Twitter
- かにかまさんはTwitterを使っています 「浮動小数点って全順序集合だと思ってたけど、NaNがある言語だともしかして前順序ですらないのか…?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@ka2_kamaboko そうっすよ。その辺考慮してRustではPartialOrdというtraitのインスタンスになっています」 / Twitter
- かにかまさんはTwitterを使っています 「@igrep おー、まさに半順序的なtraitがあるんですね。i32は比較可能だからOrdなのか。面白いですね。」 / Twitter
Java
- Takahiro YAMADAさんはTwitterを使っています 「浮動小数点演算でstrictfpがデフォルトになると。(Java 1.2時代と同様に戻る意味でRestoreなのかな) 昔(1990年代)のCPUだと厳密な演算はオーバーヘッドがかかってたが、Pentium 4(懐かしい)以降のSSE2だと特に問題ないのが理由とか。この辺りは正直あまり気にしたことがなかった。」 / Twitter
- OpenJDKさんはTwitterを使っています 「Proposed to target JDK 17: JEP 306: Restore Always-Strict Floating-Point Semantics: https://t.co/ppADvu1gRq #jdk17 #openjdk #java」 / Twitter
- JEP 306: Restore Always-Strict Floating-Point Semantics
Itanium
- だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE浮動小数点数における平方根演算の精度に関する覚書 - よーる https://t.co/2V9Ga4l1NX」 / Twitter
- IEEE浮動小数点数における平方根演算の精度に関する覚書 - よーる
- だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumには浮動小数点数の除算や平方根の命令がないのマジかーと思った(近似値の命令とFMAでソフトウェア実装するらしい)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumの浮動小数点数周りを調べてみると、浮動小数点数レジスターの内部形式がx87より指数部が2ビット多い82ビットらしくて、なかなか変態的だ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Itaniumの浮動小数点数周りを見るとかなり変態的というか尖った設計になっているようだ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「加算・乗算専用の命令はFMAがあれば要らない(加算での符号付きの0の扱いは一部のレジスターを特別扱いして対処する)」「除算と平方根は近似命令だけ用意して正確な値は複数の命令を組み合わせて頑張ってもらう」「浮動小数点数レジスターの指数部の幅はx87の15ビットから2ビット増やす」」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「x87と違ってbinary32やbinary64の本来の指数部の範囲で計算することができる」「FPSRの一部のフィールドは複数通り用意しておくことができて、命令ごとにどれを使うか選択できる」」 / Twitter
倍精度
- hrk先生さんはTwitterを使っています 「これに関する研究は太古の昔からたくさんあり、多くの計算は短精度で十分だが、データ依存で事前に見分けるのがむずかしいから全部倍精度というのが現状だと思います。まあ、電気代の無駄ですね。」 / Twitter
- Yuki NagaiさんはTwitterを使っています 「なぜ物理の計算は倍精度計算で行われているのだろう?実は単精度でも問題ないとかないのかな」 / Twitter
- Hiroshi ShinaokaさんはTwitterを使っています 「@cometscome_phys 最終結果は単精度で良いとしても、計算の途中で容易に精度が落ちますね。例えば、条件数が10^3程度の「良条件」の逆問題を解くと、有効桁数が3桁落ちるので、単精度だと残り2桁。」 / Twitter
- Hiroshi ShinaokaさんはTwitterを使っています 「@cometscome_phys あとは、sumをとる変数を単精度にすると誤差が徐々に蓄積とか。精度落ちが伝搬しないように、単精度を使えるところを探す必要がありそうです。」 / Twitter
- だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@Prof_hrk 今時はSIMDベクトル演算器が沢山並んでるから、単精度の演算器を2個使って倍精度、…n個使って多倍長精度、ってできないかと悩んでるが現状ソフトでやった方が現実的なのが悔しい。」 / Twitter
桁落ち
- だめぽラボ@技術書典9さんはTwitterを使っています 「桁落ち、誤差が発生するとしたら引き算そのものではなくその前にすでに発生してるんだよな」 / Twitter
- kashiさんはTwitterを使っています 「この話、なかなか伝わりにくい。近い数同士の引き算は桁落ちが起きるとか言って脅されるのでヤバい演算みたいな先入観があるけど、近い数同士の引き算はむしろまったく誤差が発生しないことが知られています。 https://t.co/XnOJLsxbui」 / Twitter
- kashiさんはTwitterを使っています 「これなあ。0.28-0.27が0.01にならないみたいな例で浮動小数点演算に誤差が入ることを説明してるけど、それ、0.28や0.27を浮動小数点数に変換するときの誤差が100%で、減算では「全く」誤差は入っていないんだが、例として適切なのかな。 https://t.co/5cJiSzV9ve」 / Twitter
- 個人的な感想さんはTwitterを使っています 「高等学校「情報Ⅰ」文科省研修用教材を検証する(3):誤差の問題|E.V.ジュニア #note https://t.co/VV4AJwlfeT」 / Twitter
- 高等学校「情報Ⅰ」文科省研修用教材を検証する(3):誤差の問題|E.V.ジュニア|note
- kashiさんはTwitterを使っています 「どのくらい近いと無誤差になるかというと、浮動小数点数a,bが同符号で絶対値の差が2倍以内、すなわち|b|≦|a|≦2|b|であれば、a-bの計算に誤差は入りません。例えば199-99.5みたいな、3桁で差が2倍以内の引き算は、必ず答えが3桁以内になります。200-99.5=100.5みたいに2倍以上開いていると反例が。」 / Twitter
- kashiさんはTwitterを使っています 「この性質は、twosumみたいな変換が無誤差になるために重要な役割を果たしています。」 / Twitter
- kashiさんはTwitterを使っています 「せっかくなんでもう少し補足。浮動小数点演算で絶対値の差が2倍以内の引き算が無誤差になるという性質、厳密に言うとアンダーフローで指数部が下限を突破してしまうと成り立たないんだけど、IEEE754では非正規化数があるためこの破綻は決して発生しない。ここまで考えてたとしたらKahan先生すごい。」 / Twitter
誤差
- だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数で演算結果の真の値がその形式で表現できないこと」と「真の値に最も近い浮動小数点数(または、正しく丸めた値)とは異なる値が返ってくること」を(単に「誤差」と一括にするのではなく)区別して指す言葉があると嬉しいような気がするし、そんなに嬉しくない気もする」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「前者は「丸め誤差」では?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「広い意味で量子化誤差じゃないかなーって思うけどどうだろう?」 / Twitter
- zakkiさんはTwitterを使っています 「前者は量子化誤差で、後者は近似計算誤差?後者はなんか違う気がする。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「浮動小数点数を正しく恐れる」ようになるにはどのぐらいの知識があればいいのかなあ。実装のバグまで考慮すると「この演算(のソフトウェア実装)はバグっている可能性が無視できない程度に存在する(例:FMA)」みたいな知識も要る」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「例えば数学関数のsinは多くの環境では「真の値に最も近い浮動小数点数が返ってくる保証はない」わけですが、sinを呼ぶ側からすると関数呼び出しを一回しているだけなので「累積」とは呼びたくないんですよね」 / Twitter
- アーロンさん、頑張らないさんはTwitterを使っています 「結局前者が累積して後者になるのが本当の問題なので両方とも「誤差」でいいと思っている どうしても区別したいときは前者を「丸めたときの誤差」、後者を「累積した誤差」と呼ぶかな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「無限級数や積分で表される関数を有限和で近似するときは丸めによる誤差以外に「打ち切り誤差」みたいなやつも出てくるから「和を計算する際に丸め誤差が累積するから最終結果に誤差が出る」という考え方は正しくない」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「IEEE 754のレベルではそうなんですが、C言語では(Annex Fの下であっても)sinがIEEE準拠であることは要請していないので、その辺に転がっているsin関数がIEEE準拠とは期待できないのですよね」 / Twitter
- たいやき🥐さんはTwitterを使っています 「あんまり詳しくないんですけど,IEEE 754 で sin は correctly rounded であるべき(shall)とされているので,それなりに多くの環境で期待通りの答えが得られたりしないんでしょうか. https://t.co/gTBxb6gYtH」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「そもそも現行のC規格(C17)では参照しているIEEE 754のバージョンが1985相当で、IEEE 754-1985ではsinとかは規定されていない(sin等の超越関数が「Recommended correctly rounded functions」として規定されたのは2008以降)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数での三角関数の実装、初手「入力をπで割った余りを計算する」みたいなことをすると思うんだけど、πは有限桁の浮動小数点数では表現できないし、多倍長に頼らずに正確にやるのは辛そう」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「職場のTさん「あれ?マシンを変えたら精度が悪くなったな」 沼にひきずりこむオタク「現行のほとんどのアーキテクチャはIEEE 754-2008のbinary64に準拠した演算器なのでマシン実装のせいではなく並列度が変わったことによる演算順序の違いが丸め誤差に影響をしているんじゃないでしょうか例えば..」」 / Twitter
libmのsinの実装が正しく丸めた値からどのくらい乖離しているか判定
- だめぽラボ@技術書典9さんはTwitterを使っています 「libmのsinの実装が正しい値(正しく丸めた値)からどのくらい乖離しているか判定するコードを書いている(「正しい値」はMPFRで計算する)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「2^nの形の入力に対し、macOSのlibSystemは概ね真の値の1ulp以内の値を返すが、1ulp以上離れるケースもちょいちょいある。AArch64でのglibcはほとんどのケースで正しく丸めるが、0x1p25と0x1p938に対しては1ulp以内のズレがある。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ソースはこれ(書き殴りなので雑) https://t.co/SgltkVNV18」 / Twitter
- libmのsinの実装が x=2^n (-1000≤n≤1000)の形の入力に対して「正しく丸められた値」からどのぐらいずれているか検査するやつ
- だめぽラボ@技術書典9さんはTwitterを使っています 「実行環境にMPFRを要求するのはアレなので値をソースコードに埋め込む形にしたいが、そういうのは時間ができたらだな」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「いくつかの環境でlibmのsin関数の精度をチェックしてみた結果をGitHubに上げた: https://t.co/Tuv6dMZDhg」 / Twitter
- minoki/math-func-test
- だめぽラボ@技術書典9さんはTwitterを使っています 「使用したlibcのバージョンとかも明記した方が良いのだろうけど、そういうのは追々」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「JavaScriptの数学関数の精度を検証(ブラウザー間での差異の比較)するのも同じ要領でできそうだけど、JavaScriptには十六進浮動小数点数リテラルがないのでアレ。十進リテラルで埋め込むか、文字列として埋め込んで手動でパースするか、あるいは53ビット整数と2の冪の積の形で埋め込むか。」 / Twitter
平方根
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の平方根をソフトウェア的に正確に(正しい丸めで)計算したいんだけどどういうアルゴリズムがいいのかね。ジェネリックな関数として書きたいので、反復の回数とかは決め打ちできない」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「多倍長整数や有理数は使って良いものとする」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「有理数の平方根を連分数表示するコードは書いてみたけど、結局何らかの方法で整数の平方根(のfloor)を別途計算する必要があるから、にゃーん」 / Twitter
ECMAScriptのMath.powや**演算子
- だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptのMath.powや**演算子って 2**n (nは整数)に対して正確な値を返す保証がないな?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語もpowについてのそういう保証はないけど、C言語にはldexpとかscalbnとかがあるからなあ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptで正確に2の冪乗を計算したいなら Number(2n ** BigInt(n)) が一つのやり方としてあり得そう(BigIntからNumberへは正しく丸められる保証がある)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptで十進小数リテラルは20桁以内なら正確に丸められることが保証されてる感じか?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptでNumberを十六進浮動小数点表記する関数を書くの、初手ArrayBuffer/DataView経由でビット列に変換するのが一番手っ取り早いな?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ECMAScriptでNumberを十六進浮動小数点表記する関数、ざっくりこんな感じかな。表記のスタイルはいろいろカスタマイズの余地があるけど https://t.co/BxD5qWwVUi」 / Twitter
シンタックスハイライト
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数関連のコードや記事を書いてると、各所のシンタックスハイライターが浮動小数点数の十六進リテラルに対応してなくてにゃーんという気持ちになる」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaもGitHubも対応してない。VSCodeは単体のソースファイル表示時とMarkdown中のソースで違ったかもしれない。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「セルフ先行研究 https://t.co/XalT9ePP6d」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaのC言語のシンタックスハイライト、16進浮動小数点数リテラルに対応してない気がする」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「QiitaのシンタックスハイライトはRougeというやつを使っているらしい https://t.co/OqJiiVnYPy」 / Twitter
- Qiitaでシンタックスハイライト可能な言語一覧 - Qiita
- だめぽラボ@技術書典9さんはTwitterを使っています 「VSCodeのMarkdown中のCのシンタックスハイライトも16進浮動小数点数リテラルに対応してないっぽい」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「VSCodeのMarkdownプレビューのMarkdown処理にはmarkdown-itが使われていて、他の言語のシンタックスハイライトにはhighlight.jsが使われているという感じかな https://t.co/YYn0bGh6rm」 / Twitter
- vscode/package.json at 9bd54c15ae0c2017f4ea251e9eb9a88fb38d62c9 · microsoft/vscode
ゼロ除算ができる数、輪
- だめぽラボ@技術書典9さんはTwitterを使っています 「ゼロ除算ができる数、輪を実装してみたので解説 https://t.co/4uImnCh1ns #Qiita wheelを考える動機付けがこの記事だけだと弱い気がする(元ネタの文書では代数幾何への応用を考えてる感じ?)。」 / Twitter
- ゼロ除算ができる数、輪を実装してみたので解説 - Qiita
- だめぽラボ@技術書典9さんはTwitterを使っています 「あと、元ネタの文書によると「wheel ⨀」の由来は「実射影直線(円と同相)に1点を付け加えたように見えるから」らしいけど、この記事だとその辺ちょっと誤解がある気がする。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「浮動小数点数の「正負の無限大を同一視」「NaN同士は等しい」とするとwheelっぽくなるんかな」 / Twitter
構成的な環論
- だめぽラボ@技術書典9さんはTwitterを使っています 「HaskellのNum周りの型クラス階層がアレなのは事実だけど、Monoid => Semiringは良くないでしょ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「(+)についてのMonoidインスタンス」と「(*)についてのMonoidインスタンス」を独立に扱えるような言語機能を作るか、通常のMonoidの他に「AdditiveMonoid」「MultiplicativeMonoid」みたいなクラスをそれぞれ用意するか」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「PureScriptの階層はメソッドのデフォルト定義がなくてnegateがzero - xと定義されているのが浮動小数点数的に良くないのと、あとはまあアーベル群みたいなやつは想定してないみたいで加法と乗法が分かれてない。あと除算周りもこれはどうかなあという仕様があった」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「いろんな環をうまく型クラス階層として定式化するには環論、それも普通のPIDとか言ってる方じゃなくて構成的な理論を勉強する必要がある」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「誰かが考えた数の型クラス階層は大抵他の人には満足のいくものではないので、満足のいくものが欲しかったら再発明上等というスタンスでやっていくしかない」 / Twitter
乗算のMitchellの対数乗算の近似
- Shiro KawaiさんはTwitterを使っています 「これは賢い。仮数部からのオーバーフローも指数部に+1することになるからオーダーは合う。指数部のオーバーフローはバイアス引く時にキャンセルされる。ただ加算後の指数部が127以下だとまずくないってのと、int加算のオーバーフローってUDじゃなかったっけ?」 / Twitter
- Dan KogaiさんはTwitterを使っています 「なるほど。すでに符号と仮数以外は対数表現になっているので足せば掛け算になる。計算尺の原理。符号もintならMSBの位置にあるので-×-はオーバーフローして+」 / Twitter
- nikqさんはTwitterを使っています 「へええええ~~~!IEEE754をintにキャストして加算すると、乗算のMitchellの対数乗算の近似になるのか…」 / Twitter
- Ikemen Mas KotさんはTwitterを使っています 「Deep Neural Network Training without Multiplications https://t.co/ow0HlEh6mt #maskotlib」 / Twitter
- [2012.03458] Deep Neural Network Training without Multiplications
- nikqさんはTwitterを使っています 「Cost-Efficient Approximate Log Multipliers for Convolutional Neural Networks https://t.co/fWa9qcqJ9n より、Fig2.1 https://t.co/eKr0seAUJ3」 / Twitter
- Dan KogaiさんはTwitterを使っています 「@anohana intオーバーフローは例外で落とす処理系も確かにあって、例えばSwiftの整数演算はそう(オーバーフロー通す演算は&+とか&*とか&を頭に付けたのが別に用意)。けどオーバーフローを全く通せない処理系もまた見かけないし、整数キャストの理由自体MLの高速化なので指数は十分足りてると見立てたのでは?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@dankogai 論文には明記されてなかったと思うけど(見落としたかも)指数範囲は前処理とかで別途対処でしょうかね。signed intのオーバーフローがUDというのは論文にC++コードがあったからだけど、実装はC++である必要は確かにないですね。」 / Twitter
machine epsilon
- ドッグさんはTwitterを使っています 「浮動小数点数の比較のマージンに machine epsilon を使う (abs(a - b) < epsilon) のを推奨するのは良くないのではという話 https://t.co/o2znSYgCMg」 / Twitter
- EPSILON is a bad error margin and should not be recommended [float_cmp] · Issue #6816 · rust-lang/rust-clippy
- ドッグさんはTwitterを使っています 「そもそも浮動小数点数の精度は値に依存するので abs(a - b) < delta の delta に常にフィットする値が存在しないのはそれはそうだと思う.下手すると machine epsilon が何なのかすら分かってないケースとかもありそう」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「IEEE754によれば、NaN (Not a Number) には2種類のビット表現がありうる。これを利用して NaNだけであらゆるデータを表現しようというおバカプロジェクト。 https://t.co/hiyngwVoRt」 / Twitter
- thoppe/NansAreNumbers: An esoteric data type built entirely of NaNs.
- 02.pdf
- 2020年振り返りと来年に向けて | 雑記帳
- 『浮動小数点演算について計算機科学者は何を知っておくべきか』の付録 - Oracle® Solaris Studio 12.4: 数値計算ガイド
Wikipedia
- 動的コンパイル - Wikipedia
- トレーシング実行時コンパイル - Wikipedia
- キャメルケース - Wikipedia
- カーゴ・カルト・プログラミング - Wikipedia
- Cargo cult programming - Wikipedia
- フィーチャートグル - Wikipedia
- 命令スケジューリング - Wikipedia
- タプル - Wikipedia
- オフサイドルール - Wikipedia
- グラフ理論 - Wikipedia
- グラフ彩色 - Wikipedia
- Data dependency - Wikipedia
- インテンショナルプログラミング - Wikipedia
- インタプリタ - Wikipedia
- シェープ解析 - Wikipedia
- ポインタ解析 - Wikipedia
- エイリアス解析 - Wikipedia
- エスケープ解析 - Wikipedia
- スレッデッドコード - Wikipedia
- バイトコード - Wikipedia
- ファイバー (コンピュータ) - Wikipedia
- コルーチン - Wikipedia
- ジェネレータ (プログラミング) - Wikipedia
- イテレータ - Wikipedia
- ワードマシン - Wikipedia
- 操車場アルゴリズム - Wikipedia
- 木構造 (データ構造) - Wikipedia
- ボックス化 - Wikipedia
- LISPマシン - Wikipedia
- SPACE - 開発者の生産性を理解し計測する新フレームワーク
- eBayでのソフトウェア品質認定の自動化
- PayPalエンジニアリングチームがプレモーテム分析を実装
- mumumuさんはTwitterを使っています 「PALLAS: Semantic-Aware Checking for Finding Deep Bugs in Fast Path [ASPLOS '17] Linux等のシステムソフトウェアを題材に,Fast Pathにはバグが多いことを定量的に示し,そのパターンを分類.さらに,各Fast-Pathに対して,ユーザが手入力したSemanticな情報との齟齬がないか検査するPALLASを実装」 / Twitter
- uint256_tさんはTwitterを使っています 「あんまり詳しくないけれど、GPUでもファジングできるんだ」 / Twitter
- 株式会社リチェルカセキュリティさんはTwitterを使っています 「このたび弊社は実験用データセンターに5PFLOPSの性能を誇るNVIDIA DGX A100を導入致しました。 最先端の技術と圧倒的なコンピューティングリソースを用いてサイバーセキュリティのR&Dを加速させます。 https://t.co/GeKM0CH8EH」 / Twitter
- サイバーセキュリティスタートアップのリチェルカセキュリティ、NVIDIA DGX A100サーバを導入。ファジングの研究開発体制を強化|株式会社リチェルカセキュリティのプレスリリース
- uint256_tさんはTwitterを使っています 「入力パターンを高速に生成したいのかな」 / Twitter
- GitLabがFalcoベースのツールで、悪意のあるコードを検出するためのPackage Hunterをオープンソース化
- Repl.it - Haskell Online Compiler & Interpreter
- Try F#
- x86 and amd64 instruction reference
- opv86
- Andreas AbelさんはTwitterを使っています 「The data shows that 'move elimination' is active on Rocket Lake, so the ICL065 issue appears to be fixed. https://t.co/fWGqjRH5wo」 / Twitter
- uops.info - Table
- 電子情報通信学会知識ベース |トップページ
- QBE - Compiler Backend
- https://cfallin.org/blog/
- Parsing Algorithms | Hacker News
- Lee and Seshia, Introduction to Embedded Systems
- Microbenchmarking Return Address Branch Prediction « Blog
UEFI
その他
UEFI
- Windows 10 PC UEFIの役割としくみ - DXR165の備忘録
- Windows 8.1クロスロード:第9回 UEFIサポートとセキュアブート (1/2) - @IT
- BIOS・UEFI操作画面の起動とブートデバイスの設定
- BIOS or UEFI及び起動メニューの出し方:パソコン活用方法:So-netブログ
- UEFI(BIOS)設定の知識 : 初めてのLinux
- 現在、Windows® OSをUEFIモードでインストールして使用しています。レガシーOSブートデバイスを第1 起動デバイスとして設定した場合、あるいはWindows Boot Managerを第2 起動デバイス以降に設定するとWindows® OSを起動することができません。 この問題の解決方法を教えてください。
- 毎秒2.7GBで神速!NVMe対応超高速SSD『Intel SSD750シリーズ』がヤバすぎる - 週刊アスキー
- 本の虫: LenovoのWindows 10 Signature Edition PCにLinuxのインストールを妨害する機能が発覚
- 本の虫: LenovoのWindows 10 Signature EditionがSATAがRAIDモードに固定されているのはIntelのせい
- Tech TIPS:Windows 10で素早くUEFIの設定画面を起動する - @IT
- UEFI モードまたは従来の BIOS モードでの起動
- UEFI/GPTインストールしたWindowsの「ブート領域」の復旧方法 - ぼくんちのTV 別館
- UEFI: The Oft-Rumored Death of UEFI's CSM Prophesied Again by Intel
- retrageさんのツイート: "EFI Byte CodeのVMを作っている。一通りの命令セットの実装が終わったので、デバッグをしていく。デバッガ対応とかnative codeの呼び出し、バイナリのロードなど、まだやるべきことがたくさんある https://t.co/GbbikoxJs0"
- retrage/ebcvm: EFI Byte Code Virtual Machine
セキュアブート
- セキュアブート - ArchWiki
- Linux FoundationがUEFIブート向けのセキュアブートシステムを公開 | マイナビニュース
- Linuxのブートをセキュアにする「UEFI Secure Boot System」 - @IT
- Acer Iconia W4にLinuxをインストール…失敗 ( UNIX ) - 占い猫 ペンタクル★キャット - Yahoo!ブログ
- certificate 入門 パッケージ管理 - LinuxベースのディストリビューションでWindowsアプリケーションに署名する - CODE Q&A 問題解決
- OpenSSL-based signcode utility download | SourceForge.net
- ej-technologies blog Signing launchers and installers
- druides
- セキュアブートについて知ってほしい10のこと - wolfSSL
- Device Identity as Yet Untold - Speaker Deck
- ken\dさんはTwitterを使っています 「@KuniSuzaki @EurekaBerry @hkuni 今まではTPM内のみで電子署名ベースで完結していたSecure Boot in UEFIですが、動的な検査ができるようになったと解釈しております」 / Twitter
- ArchLinux にSecure Boot を導入する - Qiita
- 3.2. Shim
- suzakiさんはTwitterを使っています 「enovella/TEE-reversing https://t.co/EudzrygSQV 私のIIJセミナースライドがリンクされ恥ずかしい。 Trusted OS一覧は有用 HiSilicon/Huawei (TrustedCore) Qualcomm (QSEE) Motorola (Qualcomm SoC) HTC (Qualcomm SoC) Trustonic (Kinibi & MobiCore) Samsung (TEEGRIS) @enovella_ Thank you.」 / Twitter
- suzakiさんはTwitterを使っています 「enovella/TEE-reversing https://t.co/EudzrygSQV 書ききれなかったけど、下記の項目すごく大事。 TEE Fuzzing TEE Secure Boot Microarchitectural attacks applied to TEE」 / Twitter
- ほぼすべてのLinuxのブートローダーに脆弱性 - PC Watch
- There’s a Hole in the Boot - Eclypsium
- ADV200011 | Microsoft Guidance for Addressing Security Feature Bypass in GRUB
- ブートホールの脆弱性 - GRUB 2 ブートローダー - CVE-2020-10713 - Red Hat Customer Portal
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「grub[.]cfgが書き換えられた時点でそのシステム終わってますけどね https://t.co/V4NsylK3Wb」 / Twitter
- Linuxで広く使われるブートローダー「GRUB2」にセキュアブートを回避できる脆弱性「BootHole」が見つかる - GIGAZINE
- FadisさんはTwitterを使っています 「BootHole: GRUB2のgrub.cfgのパーサにバッファオーバーランを起こすバグがあり、細工したgrub.cfgで任意のコードを実行できる脆弱性。セキュアブートが有効であってもgrub.cfgは元々署名されていない為攻撃者によるコードの挿入を許してしまう https://t.co/kHuMomzj1n」 / Twitter
- FadisさんはTwitterを使っています 「ブートローダの脆弱性、アップデートでトラブルが起きそうだなと思ったらもう起きてた。 RHEL8でBootHole修正版のGRUB2にアップデートするとshim経由でGRUB2を起動している環境でGRUB2がメニューにたどり着く前にハングする不具合が報告されている https://t.co/hrESKklfN1」 / Twitter
- 1861977 – RHSA-2020:3216 grub2 security update renders system unbootable
- ブートローダーの「GRUB2」にバッファオーバーフローの脆弱性 | マイナビニュース
- BootHole対策パッチによってRed HatやUbuntuが起動不能に。さらなるパッチが公開 - PC Watch
- Bypassing UEFI Secure Boot with Thin-Hypervisor - Speaker Deck
- Microsoft、セキュア ブートの迂回攻撃を防止するセキュリティパッチを再リリース - 窓の杜
- Microsoft、Windows 10向けのUEFIセキュリティパッチを公開するも、問題発生により撤回 - 窓の杜
- Multiple New Security Issues Hit GRUB Bootloader Around Secure Boot - Phoronix
- Windowsのデバイスドライバをマイクロソフトに送って署名してもらう方法: なひたふJTAG日記
- Satoshi TandaさんはTwitterを使っています 「Secure Bootもいろいろ難しさがあって、セキュリティ上問題のあるモジュールが署名されていると、それがするっと実行&悪用されてしまう、という問題があります。これはそういうモジュールとExploitの例 https://t.co/5VCoL9Vi9I (これはWindowsでもある問題ですね) Revocation…? なにそれ🤷🏻♂️」 / Twitter
- HackingThings/SignedUEFIShell: Information about a signed UEFI Shell that can be used when Secure Boot is enabled.
- セキュアブートできるOVMFをソースからコンパイルする - Qiita
- Microsoft、誤ってマルウェア入りドライバに署名 - PC Watch
- Microsoftがコード署名プロセスの弱点を突かれて誤ってルートキットに署名したことが判明 - GIGAZINE
mjg59
- mjg59 | Microsoft's compromised Secure Boot implementation
- mjg59 | Announcing the Shim review process
- mjg59 | Avoiding TPM PCR fragility using Secure Boot
- mjg59 | Linux kernel lockdown and UEFI Secure Boot
- Fadisさんのツイート: "SecureBootが有効な場合に署名のないカーネルモジュールのロードの禁止、パワフルすぎるデバイスの使用の禁止等を行うKernel LockdownにLinus氏が難色を示している。SecureBootの有無でカーネルの振る舞いが変わると報告された問題の再現が難しくなるのが理由 https://t.co/ZrpQi26TSl"
- Torvalds Expresses Concerns Over Current "Kernel Lockdown" Approach - Phoronix
Linux
- UEFIBooting - Community Help Wiki
- Comment #162 : Bug #1040557 : Bugs : Ubuntu CD Images
- Unified Extensible Firmware Interface - ArchWiki
- GRUB/EFI サンプル - ArchWiki
- Linuxカーネル3.15リリース、サスペンド/レジュームの高速化など多くの新機能を追加 | OSDN Magazine
- "えっお前んちのマザーボードlinux入ってんの?" UEFI Built in Linuxのススメ - Qiita
技術評論社
- 2020年2月14日 "Windows on Btrfs"を実現!? オープンソースのWindowsブートローダー「Quibble」:Linux Daily Topics|gihyo.jp … 技術評論社
- maharmstone/quibble: Quibble - the custom Windows bootloader
PC Watch
- 2020年、ついにIntelのx86でDOSが動作しなくなる ~UEFIからレガシーBIOS互換を削除 - PC Watch
- ESET、UEFI検査やホームネットワーク保護機能が強化されたセキュリティソフト最新版 ~他社ソフトの窓口サポートにも対応 - PC Watch
- OS再インストールやHDD交換でも排除できない、UEFIルートキット「LoJax」 - PC Watch
- Kaspersky、UEFIに感染するブートキットを発見。OS再インストールでは排除できず - PC Watch
Firmware Security
- Microsoft relicensed EDK2 FatPkg to BSD!! | Firmware Security
- Ulf: Attacking UEFI over DMA | Firmware Security
- Google Pawn: Intel firmware dumping tool! | Firmware Security
- new Apple tools: eficheck (and nvm) | Firmware Security
- UefiToolsPkg: making UEFI more useful to system hackers | Firmware Security
- UEFI-CheckScript: PowerShell script for SCCM/WinPE | Firmware Security
- diablolot53/uefi-checkscript
- William reviews ru.efi/ru.exe | Firmware Security
- Toms Hardware: Win10 unsupported disk layout UEFI error howto | Firmware Security
- efivalidate (and mojo_thor) | Firmware Security
- VisualUEFIShell | Firmware Security
- proposal: add Security Version to Linux Shim | Firmware Security
- Apple Secure Boot | Firmware Security
- RaspberryPiPkg – 64-bit Tiano Core UEFI for the Raspberry Pi 3 | Firmware Security
- ebc.asm: EFI Byte Code Assembler macroinstructions for fasmg assembly engine | Firmware Security
- Intel releases Firmware Engine for Linux and Windows | Firmware Security
- LUV 2.2-rc2 released | Firmware Security
- UEFIStarter: framework to simplify UEFI development with TianoCore EDK2 | Firmware Security
- efi_analyzer: Analyze EFI binaries | Firmware Security
- bootoption – Create a new EFI RT variable like BootXXXX but store the data in a property list | Firmware Security
- DBXtool has support for Microsoft dbxupdate.bin | Firmware Security
- Eclypsium at OPCDE: UEFI BIOS firmware analysis at scale | Firmware Security
- Tianocore Security Advisory 27: Minnowboard UEFI Variable Deletion/Corruption | Firmware Security
- RomDump: EFI BIOS dumping tools | Firmware Security
- Gloader: A simple wrapper for efibootmgr that can be used to create an entry in UEFI. | Firmware Security
- FindESP: tool to find the associated EFI System Partition from a given disk object or mount point | Firmware Security
- UEFImarkEbcEdition: UEFI Byte Code (EBC) benchmark utility | Firmware Security
- dkmsscripts: scripts to help with DKMS and UEFI boot keysigning | Firmware Security
英文記事
- Adventures in Microsoft UEFI Signing | James Bottomley's random Pages
- Display UEFI Firmware Version, Vendor, Revision and Build Date « Musings
- BIOS and UEFI Firmware Version - Find in Windows
- flat assembler - View topic - Multiprocessor support in UEFI
- Another attempt at blogging
- Simonas / huehuehuehuehue · GitLab
- The bootstrap process on EFI systems [LWN.net]
- Address Range Memory Mirroring
- Linux 5.5 To Finally Wire Up EFI RNG Code For x86 As Another Source Of Entropy - Phoronix
blog
- cupnes/bare_metal_uefi
- UEFIやセキュアブートの勘違いしやすい設定30個 まとめ - ぼくんちのTV 別館
- Step to UEFI (78) —–SERIAL_IO_PROTOCOL | www.lab-z.com
- EFI_EVENTを使って非同期処理を行う - genkami.github.io
- [FreeBSD-users-jp 95884] Re: UEFIモードでインストールしたがHDDから起動できない
- *BSD_サポート_FAQ_FreeBSD_ハード、ソフト等_ハードウェアセットアップ(a) | HPE 日本
- ディスクイメージをネットワークブートする – Raphine Project
- UEFI + iPXE で自作 OS をネットワーク起動する - uchan note
- 【マザボ】 ASUSのZ390マザーボード環境にWindows10をインストールすると、勝手に『AsusUpdateCheck』というサービスが登録される。これはいったい? : ニッチなPCゲーマーの環境構築
- BIOSとUEFIの歴史 - syuu1228's blog
- UEFIのSecure boot + kdump・kexec - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- PCのUEFI BIOS NVRAM(設定情報) 調査メモ - DXR165の備忘録
- Ubuntu14.04 と GPT と UEFI - Going My Linux Way - りなっくすいろいろ
- ASUS Z97-ProのM.2 SSDにOSをインストールして起動する: 論外なおちゃん
- Plextor M8Pe M.2 PCIe NVMe SSD 128GB 購入しました - DXR165の備忘録
- Z77 Extreme4でPCIe NVMe SSDをOSブートさせる起動ドライブとして使う(BIOS書き換え,SM961+ST-M2PCE4XB) - If you are going through hell...keep going.
- セキュリティキャンプでxv6を64bitUEFIから起動した話 | カオスの坩堝
- サイバー攻撃から身を守る4つの方法 マルウェアアナリストが語る、日本が狙われる危険性とその対策 - ログミー[o_O]
- 小手先でつくる自作OS – UEFI bootからkernelロードまで | ふぁろぐねっと
- 自作OS(OS5)のUEFI+x86_64対応でやったこと/やっていること(そして-fPIEの謎挙動) - へにゃぺんて@日々勉強のまとめ
- RustでUEFIアプリケーションを書く 2020 Edition - 重力に縋るな
- 現在作っているブートローダに関して - トトのメモ帳
- UEFI エミュレータで遊ぶ
- 【ゼロからのOS自作入門】MikanOSをRustに移植する 1章・2章 - 日記
/var/log/hdk.log
- 日記 (2014 年 10 月上旬)
- 日記 (2014 年 10 月上旬)
- 日記 (2014 年 10 月中旬)
- 日記 (2014 年 10 月下旬)
- 日記 (2014 年 11 月中旬)
- 日記 (2014 年 11 月下旬)
- 日記 (2016 年 4 月下旬)
- 日記 (2016 年 8 月中旬)
- 日記 (2016 年 9 月下旬)
- 日記 (2017 年 1 月中旬)
- 日記 (2017 年 1 月中旬)
- 日記 (2017 年 1 月中旬)
- 日記 (2018 年 3 月)
- 日記 (2019 年 1 月上旬)
/home/tnishinaga/TechMEMO
- UEFIアプリでファイルを任意のメモリアドレスにロードする方法メモ - /home/tnishinaga/TechMEMO
- UEFIで任意のProtocolを使ってプログラムを書くためにはどうすればいいのかメモ - /home/tnishinaga/TechMEMO
- UEFIのHTTP BOOTを試してみる - /home/tnishinaga/TechMEMO
- UEFIの呼び出し規則について - /home/tnishinaga/TechMEMO
- UEFIで任意のProtocolを使ってプログラムを書くためにはどうすればいいのかメモ - /home/tnishinaga/TechMEMO
借り初めのひみつきち
Rust
- Rust で UEFI のハローワールド - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 1 my new gear... - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 2 - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 3 ブートローダー - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 4 フォントのはなし - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 4.1 おまけ - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 5 マルチタスキング - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 6 過去最大の更新 - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 7 次世代の OS へ。 - 借り初めのひみつきち
- 妄想 - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 8 🔔 - 借り初めのひみつきち
- ロゼッタと林檎と - 借り初めのひみつきち
- Rustの基本戦略 - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 9 my new os... - 借り初めのひみつきち
- Rust の Null Pointer Optimization - 借り初めのひみつきち
- myos の描画アーキテクチャ - 借り初めのひみつきち
- ぬるぽ警察24時 - 借り初めのひみつきち
- 妖精さんとなかよくなるほうほう - 借り初めのひみつきち
最小ステップで作る UEFI OS
- 最小ステップで作る UEFI OS - 借り初めのひみつきち
- neri/moe: A Minimal Step OS using UEFI
- neri (Nerry)
- 最小ステップで作る UEFI OS v0.1 - 借り初めのひみつきち
- フォントのお話 - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.2 - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.2.1 - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.3 - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.3.1 - 借り初めのひみつきち
- History
- neri (Nerry)
- 最小ステップで作る UEFI OS v0.4 - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.4.1? - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.5 - 借り初めのひみつきち
- 最小ステップで作る UEFI OS v0.5.1 - 借り初めのひみつきち
Twitter
- Nerry@求職中さんのツイート: "Surface RTで確認したけどやっぱりUEFIアプリは基本0x1C2でWin32は0x1C4だった。 ただしbootarm.efiやbootmgfw.efiは0x1C2なのにbootmgr.efiだけは0x1C4になってる。"
- Nerry@さんのツイート: "HPETのMain Count Value読むのは簡単にできた。… "
- Nerry@さんのツイート: "IPIが飛ばせた?… "
- Nerry@さんのツイート: "STIしないと割り込みおきないけどエラーコードは 0xFF2 の謎。0xFF3じゃないの?"
- Nerry@さんのツイート: "実機のエラーコード0x7FBでしたね。 こっちの方が正しい気がする。"
- Nerry@さんのツイート: "selector = 0x7F8 (int 0xFF) ldt = 0 idt = 1 ext = 1"
- Nerry@さんのツイート: "やっぱりqemuのエラーコードおかしい。実機はintelもamdも0x7fbだった"
- Nerry@さんのツイート: "PS2ポート存在するかどうかちゃんと確認するにはAML読まないとダメ?😱"
- Nerry@さんのツイート: "FADTのIAPC_BOOT_ARCHはときどき嘘が書いてる機種があってPS2ポートの存在を正しく認識できない"
- Nerry@さんのツイート: "SetVirtualAddressMapってEfiRuntimeServicesCode/EfiRuntimeServicesDataだけじゃ足りない機種もあるのね"
- Nerry@さんのツイート: "一部機種で異常なEDID取得してるのはEfiEdidActiveProtocolGuidの呼び出し方間違ってるんだろうか・・・"
- Nerry@さんのツイート: "UEFI Class 3の機種だと基本USB接続が多いけどSPIとかI2Cとかふざけてるものもある・・・"
- Nerry@さんのツイート: "PS/2はレガシーではあるけど、今のところCSM搭載してるラップトップPCはPS/2接続のキーボードが主流のようなのでPS/2をサポートしないと操作できないから完全に無駄ではない。"
- Nerry@さんのツイート: "タイマー割り込みで画面の左上のピクセル書き換わるようにしたら一部の機種でどうやっても変わらなくておかしいなって思ったら液晶の向きが左上だと思ってた場所が左下でしたね🤔"
- Nerry@さんのツイート: "ときどきキーボード受け付けなくなるのspurious割り込み関係なんだろうか・・・"
- Nerry@さんのツイート: "とある機種でEDIDの解像度がおかしい値だった→WindowsのEDIDみるツールだと常識的な値だった→UEFIで取得したEDIDよく見たら内容全部0だった💢"
- Nerry@さんのツイート: "正確にはLocateProtocol(&EfiEdidActiveProtocolGuid...)とかの戻り値が0だったのでアドレス0のデータをEDIDだと思って読み込んでた"
- Nerry@さんのツイート: "WindowsのUEFI要件が定まる前の機種でGOPの解像度とかも変"
- Nerry@さんのツイート: "Win8の頃のミ田キーが画面の端に独立して付いてる機種で何となく押してみたらPS/2経由で何かが入力された(実際のスキャンコードは見てないけどたぶんWindows Key) こういうのはGPIOとか使ってると思ったけどそうでもないものもあるのね"
- Nerry@さんのツイート: "マウスカーソル出た(出るだけ… "
- Nerry@さんのツイート: "4k以上のディスプレイのEDID見てみたい😤"
- Nerry@さんのツイート: "現在の実装 ・優先度未実装(すべてのスレッドが同じ優先度) ・スレッドの負荷はHPETを使って計測 ・タイマー割り込みで実行中のスレッドの負荷が一定数以上だった場合にquantumを消費 ・quantumが0になったスレッドをpreemption ・スケジューラーが1秒ごとにすべてのスレッドのload値を更新"
- Nerry@さんのツイート: "単純にタイマー割り込みでpreemptする場合に比べて負荷が正確に反映されて公平なpreemptできてる(気がする"
- Nerry@さんのツイート: "SIPI送れた… "
- Nerry@さんのツイート: "MultiProcessor完全に理解した(n_cpuインクリメントしてhltするだけ)"
- Nerry@さんのツイート: "もしかして個別にINIT SIPI投げるとダメなのか"
- Nerry@さんのツイート: "動いたり動かなかったりよくわからん・・・"
- Nerry@さんのツイート: "PICを使ってるとPS2をマスクするって発想がそもそもないのでPIC時代の感覚でPS2ポートを先に初期化するとAPIC側のマスクが解除されてなくて一部環境だとPS2初期化時に発生した割り込みが受け取れなくて止まる"
- Nerry@さんのツイート: "moeのps2ドライバは割り込みが起きたらとりあえずデータを抜き取ってキューに突っ込んですぐiretしてる。 実際のデータ処理はhidスレッドでパケット解析とウィンドウイベントへの変換をしてる。この部分をユーザーランドに追い出すのは比較的容易だと思われる。"
- Nerry@さんのツイート: "ウィンドウ背景にblur実装したい"
- Nerry@さんのツイート: "きれいにblurするにはあらかじめ周囲数pixelの情報が必要だから現在の部分再描画実装じゃ綺麗に描ける気がしない:;(∩´﹏`∩);:"
- Nerry@さんのツイート: "しかもウィンドウにblurかけるということは実際に必要なpixelは自分自身のウィンドウではなく下にある他人のウィンドウだったりするので再描画に必要な情報が多すぎる"
- EFI_ABSOLUTE_POINTER_PROTOCOL の不思議 - 借り初めのものがたり
- あべこべ。 - ねりりんと借り初めのものがたり
- はりぼてOSをUEFIで起動する/5日目? - 借り初めのひみつきち
- バイバイ、 gnu-efi - 借り初めのひみつきち
- EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL を置き換える - 借り初めのひみつきち
- UEFI のクロス開発 - 借り初めのひみつきち
- 進捗的なもの。 - 借り初めのひみつきち
- 再度進捗的な。 - 借り初めのひみつきち
- BIOS で消耗するな、 UEFI で消耗せよ。 - 借り初めのひみつきち
- ACPI BGRT - 借り初めのひみつきち
- きんきょうてきな? - 借り初めのひみつきち
- WASM自作PCエミュレータ制作日記/5 - 借り初めのひみつきち
- UEFI自作OS日記 v0.6 再始動 - 借り初めのひみつきち
- 最小の UEFI Hello World - 借り初めのひみつきち
- EFER.LME と EFER.LMA - 借り初めのひみつきち
- ACPI 2.0 - 借り初めのひみつきち
- MYOS の起動処理概要 - 借り初めのひみつきち
- initramfs - 借り初めのひみつきち
- 今週の MYOS 🎉 - 借り初めのひみつきち
- GPD MicroPC の内蔵キーボードを使う方法 - 借り初めのひみつきち
livaの雑記帳
- UEFI対応 - livaの雑記帳
- grubのpf2ファイルの解析 - livaの雑記帳
- 自作OSにおけるUEFI対応戦略 - livaの雑記帳
- UEFI対応(その2) - livaの雑記帳
Blog posts by @retrage
- ELVMのEFI Byte Codeバックエンドを作る - めもちょー
- 文鎮化したMinnowboardを復旧させる - めもちょー
- LLVMのEFI Byte Codeバックエンドを作る - めもちょー
- OVMFのデバッグ - Blog posts by @retrage01
- EFI_STATUSの値 - Blog posts by @retrage01
- EDK2におけるDebugPrintErrorLevel - Blog posts by @retrage
- UEFI向け9P File Systemを作ってクラウドからネットワークブートできるようにした - Blog posts by @retrage
- ebcvm: A Usermode EFI Byte Code Virtual Machine - めもちょー
- EFI stubなArch Linuxのインストール - めもちょー
- 技術書典5で「UEFI読本 基礎編 Linux編」を頒布 - めもちょー
- EFI stubなLinux kernelのヘッダ部分を見てみる - めもちょー
- BitVisorのEFI向けVMM Loader(1st stage)のコードを読んでみる - めもちょー
- EFI Byte Code解説 - めもちょー
J’s Lab
- PXE BootとIntel DCIを用いたLinux Debug環境 | J’s Lab
- OVMFを使った簡単なUEFI Linux環境の構築の仕方 | J’s Lab
- OVMFをソースデバッグするお話 | J’s Lab
- そうだ、Intel DCIをしよう! | J’s Lab
- Intel DCI 続編(資料まとめ) | J’s Lab
そそるめも
- Z87系マザーのUEFIにNVMeドライバをロードした件 - そそるめも
- Z87系マザーのUEFIにNVMeドライバをロードした件 - そそるめも
- Intel SSD 750 にはOption ROMにUEFI向けNVMeドライバが入ってるっぽい - そそるめも
Converg.
- EDK IIの基礎 - Converg.
- EDK II Package - Converg.
- Module開発 - Converg.
スライド・PDF
- Network Boot from Bell Labs - Speaker Deck
- 準パススルー型VMM開発の難しいところ
- yvr18-508.pdf
- suzakiさんのツイート: "シリコン内のbootROMこそが、Trusted BootにおけるCRTM:Core Root of Trust Measurement。下記PDFの11ページの図が分かりやすい。 https://t.co/teuqFvo9qm CRTMがBIOSを計測してそれをTPMにextendすることから始まる。… https://t.co/qWwDVGcW1u"
- Microsoft PowerPoint - af-congdon-tcg-overview-1104
- retrageさんのツイート: "Wow. yabits was mentioned in the article. https://t.co/loj5lNiSVn"
- yabits: Fast and lightweight yet another UEFI implementation | yabits
- UEFIベアメタルプログラミング
- 最新SSDのキホン - AKIBA PC Hotline!
- Open Source Firmware: Two Ends of the Spectrum | Intel® Software
- UEFI Driver Writer's Guide · tianocore/tianocore.github.io Wiki
- Specifications and Tools | Unified Extensible Firmware Interface Forum
- Free Software EFI Drivers
- C++编撰操作系统(1):基于 EFI 的 Bootloader_imooo软件程序bug解决方案
- WinDbgとWindows XP/7/8/10のハンドルテーブル解析
- UEFIのルートキット、攻撃に使われていることを初めて確認 | マイナビニュース
- 129機種3000万台超のDell製デバイスに影響する重大な脆弱性が見つかる、BIOS/UEFIレベルの任意コード実行が可能 - GIGAZINE
- 再起動せずにマザーボードのUEFIをアップデートできるインテルの新機能|自作.com
musl
snprintf
- 社会人でもOSを作りたいさんのツイート: "え、完全に誤解してたわ 。https://t.co/tLot6IEr6Q によればsnprintfは書き込んだバイト数を返すが、それはバッファが十分大きく、すべてのデータが書き込めたと仮定した場合のバイト数であるらしい。"
- OS作れないマンさんのツイート: "データが書き込み先バッファより大きい場合、実際に書き込んだバイト数より大きな数が返ることになる。新しい関数scnprintfなら、本当に書き込んだバイト数を返してくれる、とのこと。"
- snprintf() confusion [LWN.net]
- musl - Wikipedia
- musl - Wikipedia, the free encyclopedia
- MinGW - Minimalist GNU for Windows | SourceForge.net
- MinGW-w64 - for 32 and 64 bit Windows | SourceForge.net
- _BitScanForward, _BitScanForward64
- Visual Studio Tips - Windows 2000 Blog
- LibC library musl ported to UEFI | Firmware Security
- Rich Felker(@RichFelker)さん | Twitter
- libc-testsuite - correctness and quality tests for libc implementations
cosmopolitan
- hikaliumさんはTwitterを使っています 「MacでもWindowsでもLinuxでも動くバイナリが出来上がるの面白すぎる(というかそんなことが可能だったのか…)。 https://t.co/pXZ2DbgO81」 / Twitter
- Cosmopolitan C Library
- 伊津野 英克さんはTwitterを使っています 「シェルスクリプトとして解釈できる Windows の exe で QEMU を実行して ELF バイナリを実行してる感じ? https://t.co/14z2RfWMMw」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「単一の実行ファイルなのにWindows/macOS/Linux/FreeBSD/OpenBSDで動く実行ファイルが作れるというCosmopolitanというプロジェクト、ヘビーに改造されたchibiccがリポジトリに入っている。 https://t.co/BJmfN3hrDc」 / Twitter
- cosmopolitan/third_party/chibicc at master · jart/cosmopolitan
- 品川@学生・共同研究募集中さんはTwitterを使っています 「Windows/UNIX(macOS/Linux/FreeBSD等)/BIOSで実行できる単一バイナリ実行ファイル形式 actually portable executable (ape) が面白い。 https://t.co/Hh6DtqeEjp」 / Twitter
- Actually Portable Executable
- 品川@学生・共同研究募集中さんはTwitterを使っています 「基本はファイルの先頭にマジックナンバー "MZ" が付いているので、Windows の Portable Executable (PE) バイナリとしてそのまま実行できる。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「UNIX系でシェルスクリプトとして実行すると、先頭部分は "MZqFpD='ヘッダ'" と解釈されるようになっていて、先頭のバイナリ部分は変数への代入になってスキップされて、その後ろにあるコマンドで macOS の Mach-O や Linux/FreeBSD の ELF のヘッダでファイルを自己書き換えして再実行している。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「BIOSから読み込んで実行すると、"MZ" は "dec %bp; pop %dx" になって無害、その後の "qFqD" は "jno 0x4a; jo 0x4a" でフラグの状態にかかわらずヘッダをスキップしてリアルモードのバイナリコードを開始できる。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「Arm でも実行できるようにするのは難しくないだろうけど、2つのバイナリを埋め込むことにはなるので、サイズは大きくなる。あと、UNIX系だと実行ファイルに書き込み許可が必要になるのが難点か。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「macOS かどうかの判定に "if [ -d /Applications ]; then" を使っているのは、微妙な気がするけど…」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「Windows と UEFI で同時に実行できるバイナリファイルを作るのは無理っぽいかな。同じ PE フォーマットだから。subsystem の値を無視するファームウェアならいけるのかな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Cosmopolitanのこのページ、chibiccにdoxygenコメントを読む機能を追加して自動生成したページらしい。 https://t.co/dCAZBmhtEY」 / Twitter
- Cosmopolitan C Library
malloc
その他
- 動的メモリ確保 - Wikipedia
- malloc(3)のメモリ管理構造 | VA Linux Systems Japan株式会社
- 50年前に作られたメモリ管理アルゴリズム「Buddy memory allocation」 (1/2):CodeZine(コードジン)
- Project Zero: The poisoned NUL byte, 2014 edition
- Visual Studio C++でメモリリークの検出 crtdbg.h CrtSetDbgFl | urashita.com
- realloc関数怖い - ichirin2501's diary
- 'CVS: cvs.openbsd.org: src' - MARC
- Protectable Memory "Pmalloc" Support For The Linux Kernel Updated Again - Phoronix
- 日記 (2014 年 1 月上旬)
- メモリ管理
- 非カーネル用のスラブ・アロケータ - Tociyuki::Diary
- mallocの動作を追いかける(環境変数編) - Qiita
- std::alignを動的メモリ確保と一緒に使う - in neuro
- 論文「snmalloc: A Message Passing Allocator」(ISMM 2019)
- mimalloc のメモリ管理 - Qiita
- 論文「Reconsidering Custom Memory Allocation」(OOPSLA 2002)
- failmalloc - Google 検索
- p20191226a - K-kiwi
- 50年前に作られたメモリ管理アルゴリズム「Buddy memory allocation」 (1/2):CodeZine(コードジン)
- bump pointer - Google 検索
- バンプポインタアロケータ - Google 検索
- Ruby: mallocでマルチスレッドプログラムのメモリが倍増する理由(翻訳)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社
- alloc_alignedの野良実装 - 豪鬼メモ
- reallocによる配列拡張の償却時間計算量 - 豪鬼メモ
- mumumuさんはTwitterを使っています 「MLEE: Effective Detection of Memory Leaks on Early-Exit Paths in OS Kernels [ATC '21] OSのメモリ解放忘れを検出するために,エラーで早くreturnするパス(Early-Exit Path)を正常パスと比較する手法を提案してLinuxで実証.120このバグを見つけた.賢い. https://t.co/Kvw0RbNhxq」 / Twitter
- MLEE: Effective Detection of Memory Leaks on Early-Exit Paths in OS Kernels | USENIX
MESH
- 論文「MESH: Compacting Memory Management for C/C++ Applications」(PLDI 2019)
- [1902.04738] Mesh: Compacting Memory Management for C/C++ Applications
- plasma-umass/Mesh: A memory allocator that automatically reduces the memory footprint of C/C++ applications.
- Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 アロケータとしても面白いが、memfd_create と mmap の合わせ技で、(実ファイル無しに)別々の仮想ページを同じ物理ページにマップという、カーネル的な技をユーザランドで…というテクニックは別の用途でも利用してみたいなぁ。… https://t.co/JaO3GU9M6O"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちょっと違うが、pdumpfsというハードリンクによる実体共有を活用したソフトを思い出したり。 そして、リンク多用を想定していない dump/restore がメモリ不足で落ちたり、NTFS仕様のリンク上限1024に引っかかったりと、普通では発生しない問題に遭遇しやすかった記憶も。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今回のアロケータの場合、一つのページに沢山の共有が発生した場合のカーネル性能への影響は、カーネルのページ構造などに依存しそう。 それと、物理ページのコンパクションに対し、仮想空間はむしろ疎な利用が増えていきそうな印象も。(64bitなら別に気にしなくても感はあるが)"
- Kazuho Okuさんのツイート: "面白い。ある状況にむけた最適化を備えたmallocだと思えばvmaの上限値もブロッカーではない(最適化が効かなくなるだけ)と割り切れば使い手がありそう / https://t.co/Q0dHZmwGO5"
- Kazuho Okuさんのツイート: "MESHはiOSアプリでメモリ不足になってきたらコンパクションする、的な使い方とかできるのかなぁ。できそうな気もするしゲームとかだとうれしい気もする"
- takuya-aさんのツイート: "memfd_create()知らなかった。mmap()との合わせ技で、同じ物理アドレスを複数の仮想アドレスにマッピングでき、コンパクション時にそれを利用して仮想アドレスを不変に保つ。 / “論文「MESH: Compacting Memory Management for C/C++ Applications」(PLDI 2019)” https://t.co/NPEgjELKQn"
TCMalloc
- Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (3) TCMallocでメモリ割り当てを高速化する | マイナビニュース
- gperftools/gperftools: Main gperftools repository
- デフォルトの malloc を差し替えずに tc_malloc を使う - Qiita
- TCMalloc : Thread-Caching Malloc
- g-TCmalloc.pdf
- Google Perf Tools (tcmalloc) の使い方
- Google Japan Blog: Google が公開しているソフトウェアの解説(その4)- Performance tools -
- TCMalloc : Thread-Caching Malloc
- How To Use TCMalloc? - Stack Overflow
- Google独自のC/C++用メモリアロケータTCMallocがオープンソースとして公開へ
jemalloc
- Rockridgeさんのツイート: "Fx52:jemalloc 4のバージョンを4.3.1にアップデート。しかし、いまだにjemalloc自体が有効化されていない。参照:https://t.co/Yb9QfsbvzR / “1277704 – Update jem…” https://t.co/lRfhoy8hP0"
- Rockridgeさんのツイート: "Firefoxのメモリアロケータをmozjemallocからjemalloc 4に置き換える作業を続けてきたが、パフォーマンスの低下とメモリ消費量の増加が一向に改善せず、置換計画は破棄された。参照:… https://t.co/JX4WNdhnHo"
- Removing Jemalloc 4 - Google グループ
- jemalloc について調べたのでまとめた - zonomasaの日記
- なかのん&マジックさんのツイート: "<input type=text>等のエディタのメモリ消費量を約半分に削減できる目処はたったんでやらないとな。 / Firefoxのメモリ消費量が右肩上がりで増加する場合の対策 - ククログ(2018-10-24) https://t.co/mYUVCtJLOT @_clear_codeさんから"
- Firefoxのメモリ消費量が右肩上がりで増加する場合の対策 - ククログ(2018-10-24)
- なかのん&マジックさんのツイート: "jemallocはフラグメント化を抑制するために一定の大きさの空間にオブジェクトを整理してるんだけど、TextEditorのinstanceの大きさを調べるとギリギリその閾値より大きい事が判明してしまった。"
- なかのん&マジックさんのツイート: "なので、input要素が大量にあるフォームに実際に入力していくと、一気にメモリ使用量が上がっちゃう。表示しただけならセーフ。"
- なかのん&マジックさんのツイート: "生の数字を言っちゃうと、今、TextEditorが1024バイトのエリアに配置されてる。実際は550バイト程度しか要らないんだけど。"
- なかのん&マジックさんのツイート: "64bit版の話。たぶん、32bit版は512バイトの線を割り込んでるはず。"
- そのっつ (Naotoshi Seo)さんはTwitterを使っています 「jemalloc v4, 5 より v3.6.0 の方がメモリ使用量少なくて良い説というのがあるのか :thinking_face: / “Consider replacing (or adding) jemalloc with v3.6.0 · Issue #305 · fluent-plugins-nursery/td-agent-builder · GitHub” https://t.co/8ENjuojmnA」 / Twitter
- Consider replacing (or adding) jemalloc with v3.6.0 · Issue #305 · fluent-plugins-nursery/td-agent-builder
- Miura HidekiさんはTwitterを使っています 「まあ、メモリアロケータなんてトレードオフの塊だからな。搭載メモリは単調増加することが期待できるからメモリを使って性能を上げる方がモチベーションとしては高そうだ」 / Twitter
mallocng-draft
- 7594591200220899443さんはTwitterを使っています 「mallocのメモリ消費といえばRich Felker が新しいmallocを考案中で、 https://t.co/mCPmHCJOpW まだ未完成だけどもデザインゴールとして「返せるメモリをOSに返そうとする」をやろうとしているんだよな、将来のAlpineとかに採用される見込み。」 / Twitter
- richfelker/mallocng-draft: Working draft of nextgen malloc implementation for musl libc
- SODA NoriyukiさんはTwitterを使っています 「@shyouhei OSに返すってのは、たぶんmusl libcの文脈ですよね… glibc malloc は既に返せるようになってるので。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「@n_soda もうちょっとアグレッシブなはず、例えば前に読んだのはreallocでサイズが減ったとき減った部分だけ返すとかします、今もそうなってるかしりませんが」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shyouhei 返すのを頑張りすぎると遅くなるので汎用OSだと加減が難しいんですよねえ。 musl libcは組み込み方面での利用が多くて、メモリ足りない度合いが高いので、頑張れるだけ頑張る方針なのかしら…」 / Twitter
mtrace
- 【メモリリーク】mtraceの使い方【glibc】 | FiS Project
- メモリリーク検出:mtrace編 : しっくハック
- Manpage of MTRACE
- メモリーリークの検出:mtrace , valgrind:プログラマー社長のブログ:オルタナティブ・ブログ
- mtraceでメモリーリークを検出する方法: 小粋空間
- 革命の日々! mtraceの使い方
- mtraceを使ってみる - Akio's Log
- Man page of MTRACE
Infallible memory allocation
- Makoto Kato ︎︎さんのツイート: "Infallible memory allocationになって5年以上経つけど、昔のコードは未だにmoz_xmallocとかに対してnullptrチェックしてるんだよね。あれコンパイラとかで消せないのかしら"
- Infallible memory allocation - Mozilla | MDN
スライド
- Glibc malloc internal
- katagaitai CTF勉強会 #1 pwnables編 - DEFCON CTF 2014 pwn1 heap
- Kosaki - the malloc - - Togetter
- Glibc malloc internal
- The 67th Yokohama kernel reading party - YouTube
- osdev_moku2 #2 - Google スライド
- 「京」におけるマルチスレッドmalloc / malloc on K computer - Speaker Deck
OSDN
- 「glibc 2.26」リリース、mallocのスレッド毎キャッシュによる高速化やUnicode 10サポートなどが導入される | OSDN Magazine
POSTD
- OSのデバッグ:メモリアロケーション講座 | コンピュータサイエンス | POSTD
GitHub
- rampantpixels/rpmalloc: Public domain cross platform lock free thread caching 16-byte aligned memory allocator implemented in C
- jemalloc
- jemalloc/jemalloc
- CCareaga/heap_allocator: A simple heap memory allocator in ~200 lines.
- cubanismo/allocator: Incubator for a general Unix Device Memory Allocation library
Twitter
性能保証
- Miura HidekiさんはTwitterを使っています 「リアルタイム性という観点なら、GC無しでもヒープからな動的なメモリ割り当てを使っているなら、フラグメンテーションが進んだ状況を考えるとmallocやfreeの時間の最悪時間の保障って難しいじゃないかな?」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 今どきのスラブアロケータなら(一定以下のサイズなら)フラグメンテーションは起こらず、最悪時間も保証できる気がしますが、空間利用効率は落ちますかね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 フラグメンテーションは起きずらいと思いますが、そのサイズのアリーナを使い果たした場合とか速度低下の状況は考えられそうです。」 / Twitter
- monochromeさんはTwitterを使っています 「@miura1729 確かにガチのリアルタイムシステムだと「たまにしか遅くならないから許して」という言い訳は通用しなさそうですね。」 / Twitter
malloc 失敗
- Egtra (ysk-noh)さんのツイート: "基本的にはそうなんだけど、「数百MBのメモリ確保に失敗→その他の致命的例外同様、ログ吐いて続行」を経験したことがある。何事にも例外はあるんだと学んだ。 https://t.co/irgtFQDCFQ"
- Fadisさんのツイート: "「メモリが確保出来なかった」という理由で例外が飛んだ時、abortする以外にアプリケーションが出来る事は本当に少ない。デバッグの足しにしようとしてこの例外を捉えて行なった処理は大抵、再度メモリが確保出来ないという例外を飛ばす事になる"
- 島鉄雄さんのツイート: "> mallocが失敗した後だとprintf呼べない setvbuf() で自前のバッファを割り当てておけば一応呼べるはず。… "
- SODA Noriyukiさんのツイート: "みんなホントにmalloc失敗で単にabortしてるだけなの? そんなことないよね。 「このmallocは(ユーザー入力やら通信相手の挙動やらによって)現実に失敗しうるしその場合にabortじゃまずい」的な場所限定なら、実用プログラムではふつう最低限の対処は入れてると思うしそう難しくないと思うんだけど。"
- SODA Noriyukiさんのツイート: "640KBしかメモリがないMS-DOSでGosling Emacs動かすときにとった対処→ https://t.co/XMLSy0TkuG これは仮想記憶前提でmallocが絶対失敗しないという仮定のあるプログラムへの後づけのパッチなのでかなり無理してるけど、でもこの程度なら簡単。 GNU emacsなら元からもっとgracefulに対処してる筈。"
- わたなべごうさんのツイート: "制御用の処理とかは別途外側にスクリプト言語とかで組んでおいて、低層のライブラリでメモリエラーでたら可能な限り解放かけてから外側の言語に例外なげて後処理をまかせる、みたいな書き方はしますね。ゲームだとクイックセーブしてごめんなさいしてタイトルに戻る… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのバッファ指定で実行ボタンを押すと即死、とか嫌がられそうです(笑) 特に、32bit環境だと「OSの空き仮想メモリはあっても、プロセス内の連続アドレス空間が無く」というパターンでコケることもあったりします。… "
- まさみさんは語りたいさんのツイート: "結構abortしてる。kmalloc出来ないとか末期的だし。… "
- SODA Noriyukiさんのツイート: "組み込み用とかはそのために固定サイズの配列使うのが多いですよね。 僕の仕事関係はUNIXサーバー用で、abortするとまずいけど、メモリはあるだけ限界まで使いたいので固定サイズにはできず、malloc()失敗にはそれなりに対処できるように作ってるつもりです。(もちろん抜けはあると思います)… https://t.co/TFCiKl58Nm"
- SODA Noriyukiさんのツイート: "カーネルがminfree程度の空きメモリがあると仮定するのは(mmがそれを保証しようと努力する作りになってるわけで)アリですからね。 大きなサイズの動的メモリ確保については、gracefulに失敗する作りになっているところの方がふつうじゃないでしょうか?… "
- yohさんのツイート: "「malloc失敗後にできることは何もない」って データ永続化や次回起動時のためのMinimum Grace Shutdown処理とかもせーへんの?さすがに怖すぎない?"
- ケケモコソカメニハさんのツイート: "例えばエディタでファイルを開く時のメモリ確保はエラーハンドリングしないと、巨大ファイルを読み込ませたらアプリごと落ちましたというのはみっともないのでは……巨大なメモリ確保が失敗したからって後の実行に悪影響もないでしょうし適当なエラーダイアログ出してふつーに継続では"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでは、大き目データ群=VirtualAlloc(コミット済)、大き目になりうるデータ群=VirtualAlloc(アドレス空間確保)、それ以外はnew/mallocという使い分けで、前者2つはリカバリ可能な対処を入れてある、という感じ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "現実的にエラーになりうるメモリ確保はVirtualAlloc系に集約して、ほぼ発生しないはずのmalloc/newエラーは放置という割り切りをした、とは言えるかも。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VirtualAlloc(アドレス空間確保)の良い点の一つは、PTEを全く消費しないこと。(MSの資料だけだと心配だったので、実験して確認したり) まあ、予約空間の1/1024ほどのサイズですが。"
- SODA Noriyukiさんのツイート: "ただしそういうアプリは、Cなんか使うのはやめて、もっと高級な言語使った方がいいだろうとも思ってますが。… "
- まさみさんは語りたいさんのツイート: "エラーハンドリングしてるかという事なら、yesですよ。メモリ取れなければエラーを返す。… "
- まさみさんは語りたいさんのツイート: "ただ、カーネル内でメモリが確保できない状況で、ユーザ空間に戻っても大したことはできないだろうなあと。… "
- SODA Noriyukiさんのツイート: "小さなサイズのメモリが確保できないケースは、ユーザーに殺すプロセスを選んでもらうくらいしかできませんよね。これに対しユーザーが指定した大きなサイズのメモリを確保するたぐいだと、単にその処理だけ失敗させて以後ふつうにシステムが動き続けることも多いんじゃないでしょうか。… https://t.co/8inAx1SUKx"
- Ryou Ezoeさんのツイート: "mallocが失敗した時 Linuxは失敗しない。メモリが足りなくなったらOOM Mac OSは失敗しない。メモリが足りなくなることはないという前提 Windowsはどういう戦略だっけ?"
- SODA Noriyukiさんのツイート: "いや ulimit コマンドで制限かけられるので、mallocがNULL返すことがありますよ>Linux 例えば $ ulimit -v 10000 としておいて malloc(20000000) すると NULL が返ります。… "
- TokusiNさんのツイート: "Win32は失敗する。Win64はどうだろう?確保しすぎるとOSの操作が困難になるぐらい重くなるから、その状態で更に確保して失敗するのは難しいんじゃないかなぁ… "
- まさみさんは語りたいさんのツイート: "ああ、確かにサイズ依存ですね。あとはkernelで使うメモリなのかどうかも。… "
- SODA Noriyukiさんのツイート: "ですよね。システムコールの引数サイズが可変でいったんカーネルメモリにコピーするみたいな処理だと、コピー先のカーネルメモリが確保できなかったら ENOMEM 返すのは簡単なわけで。… "
- まさみさんは語りたいさんのツイート: "そんなこと無いやろ。error injectionもあるんやで。… "
- Ryou Ezoeさんのツイート: "メモリ確保を失敗させると、今まで現実に動いてこなかったカーネル内のメモリ各区歩失敗のコードが動き始める。どんな不具合が表に出るかわからないので今更挙動を変えられない。しかし、メモリ確保が失敗しないならカーネルのメモリ確保失敗時のコードはすべて無用だ。"
- まさみさんは語りたいさんのツイート: "Linuxカーネルでもレイヤが低いところでのメモリ確保は厳禁だし、逆にユーザに近いところはバンバン使う。そこはレビューで指摘されるしね。"
- Miura Hidekiさんのツイート: "https://t.co/9Tulw464Mf 普通に売っている機器の組み込みプログラムはみんな何らかの対処をしていると思う。そうしないと、メモリが足りないから機械が動きませんじゃダサすぎる。"
- Miura Hidekiさんのツイート: "まあ、あらかじめ非常用のメモリ領域を確保しておいてそれを使って要らない領域をfreeしたり圧縮したりがありがちなパターンかな?"
- SODA Noriyukiさんのツイート: "小規模な組み込みプログラムはmalloc()使わず固定配列使ってるものが多いイメージがあります。ガラケーくらいリッチなハードになってもそんな感じに仕様で上限が固定数値になってたりとか。これがAndroid使ってるくらいまでリッチなハードになると対処してる方が多数派になりそうイメージが。… https://t.co/C5lCIXaYJT"
- Miura Hidekiさんのツイート: "小さいのは確かにそうですね。あまりリッチなのだとメモリを使い果たしてもLinuxは落ちないという話になってアプリケーションレイアの話ではなくなる気もします。私が唯一経験のあるプリンタを想定していました。あと、おそらくテレビとかもそうじゃないかなと想像しています。… "
- まさみさんは語りたいさんのツイート: "組み込み系とUnix系OSSとの相性が悪いの、mallocの話で理解できた気がする。小さいリソースから始めたプログラムは、リソースを固定的に扱い、徹底的に搾り取るのに対して、Unix系ではメモリは仮想化されたリソースで気にせず使うコーディングが許されてるからなあ。"
- Fadisさんのツイート: "oomkillerが走るほどメモリが逼迫している場合、既にページアウトできるものは頻繁に追い出されている状況なはずなので、ハードディスク等の絶望的に遅い2次記憶を使っている場合、プロセスがoomkillerに落とされる前にまずホスト上でのあらゆる処理が死ぬほど遅くて何もできない、という状態になる"
- 星山 等(E-SW20改)さんのツイート: "とある仕事でボード刷新してメモリが倍増するからOS使うよう再設計できるって喜んでたら、μITRONのシステムコールで使うリソースを全部調べて全タスクぶん集計して、メモリきつかったから使うシステムコールを制限する哀しいお仕事が待ってた記憶が蘇った。 仮想記憶ナニソレな世界は切ない…。… https://t.co/x2VrokzT1I"
- noblesse obligeさんのツイート: "最近はミドルの規模も大きいのでそこそこ余裕あるメモリを積んで動的に確保するほうが流行りなきがします。きっつきつにリソースを管理してるのはコストと性能要求がシビアで要件を満たすギリギリのSOCを選定するところですかね。… "
- Satoru Uedaさんのツイート: "そのようなことも、ディストロが成長するのを阻害する要因。… "
- GAUCHOさんのツイート: "弊社もついこの間まではコスト最優先でしたね。 いざ、スペックを見せられて、アホか!こんな貧弱なメモリーとプロセッサで作れるかー!ってなりましたもん。… "
abort
- このコード、オシャカルトっ!さんのツイート: "malloc系の関数でmemory corruptionでプログラム終了するときとか、abort()でプログラム終了する時の処理が今までと変わったりしてるんだな。 GNU C Library 2.27 released - https://t.co/CFSv43R4Zw"
- GNU C Library 2.27 released [LWN.net]
- KOSAKI Motohiroさんのツイート: "glibc 2.27 でついにabortが正しく async signal safeになりました。いままではバカなことにabortないでIOをflushしていたので、signal contextなどで呼び出した時は最悪デッドロックしていました。abortの途中でデッドロックして嬉しい人はいないため、これはよい変更。というかなぜ20年ほっておいた"
- まさみさんは語りたいさんのツイート: "abortが必要なほど複雑なプログラムは書いていなかった・・・とか?… "
- Ryou Ezoeさんのツイート: "めったに起こらないので、ハードウェアの問題とかソフトメモリエラーを起こす程度の確率と同じであれば、そのように認識されてしまったで問題視されていなかったのかな。 https://t.co/xa88xIFMpL"
- まさみさんは語りたいさんのツイート: "abortじゃなく、ちゃんとソフトウェアのエラーを回収できるように考えられたプログラムしか書いていなかったとか。そもそもabortが信用できないっていう状況なんだったら、そのようにソフトウェアを書くことが前提になっていた可能性もある。"
- KOSAKI Motohiroさんのツイート: "abortがちゃんと動かないって地味に困るんですよ。バグってassertに引っかかったら、ちゃんと終了してほしいんですよ。プロセス終了してくれたら、外で監視ソフトが異常検知してリカバリに移れるんですよ。デッドロックはそういうチャンスが失われるんですよ"
- SODA Noriyukiさんのツイート: "なんでこんなことになってんだっけと見てみたら、古いPOSIXだとflushが必要だと規定されてて、後でasync-signal-safe規定が入ったのか(→ https://t.co/1iuJ50DUpQ )。4.3BSD tahoeだとflushしてないので、これはSystem-V Interface Definitionが悪さしたんじゃないかしら。 https://t.co/EXX0VBOAnF"
- abort
- 本の虫: glibcのabortマニュアルの中絶方針ジョークについて
- Kazuho Okuさんのツイート: "RMSが実際に強権を発動したわけではないし、検閲規制委員会は誤訳だし、メキシコシティ云々も関係ない気が / “本の虫: glibcのabortマニュアルの中絶方針ジョークについて” https://t.co/swYqITC4yI"
- Kazuho Okuさんのツイート: "まあ、RMSが「GNUは純粋な技術的プロジェクトではない」から、他のコミッタのコンセンサスを無視し強権を発動してジョークを戻す、と言ったのは確かだし、そういうプロジェクトなんだということなのかなーとは言いたくなる"
@kazuho
- Kazuho Okuさんのツイート: "あれ glibc で free 時に解放されるメモリを何かでフィルする機能(macOSでいうところのMallocScribble)みたいなのってないんだっけ"
- Kazuho Okuさんのツイート: "asanがscribbleもしてくれるんだっけ"
- Kazuho Okuさんのツイート: "ああこれは負荷低くて良さそうですね。ありがとうございます https://t.co/pgFnkQ9q9y"
- Yusuke Endohさんのツイート: "C 言語で、malloc でドカッと取ったバッファの中から、struct 用のバッファを切り出すポータブルな方法ってないんでしょうか"
- Kazuho Okuさんのツイート: "@mametter structのサイズは必要なアラインメント(これは2のべき乗)の整数倍になるので、min(2**tzcnt(struct T), cache_line_size) みたいな感じてアラインメント取ればいけるはずです"
- Yusuke Endohさんのツイート: "@kazuho それってポータブルなんでしょうか。。。"
- Kazuho Okuさんのツイート: "@mametter 2のべき乗以外のところでアラインメントを取るアーキテクチャがない限りはポータブルだと思います。"
- Tanaka Akiraさんのツイート: "@kazuho @mametter C11 には Every valid alignment value shall be a nonnegative integral power of two. という文章があって、2のべき乗なのは保証されているようです。(ちゃんと原文にあたったわけではありませんが)… https://t.co/BF7f4VTVaK"
- Kazuho Okuさんのツイート: "これまでちゃんと考えたことなかったけど、char [128] を確保するようなケースだと、calloc のほうが malloc よりメモリ効率がいい実装がありえるのか。なるほどなぁという感じ"
- Kazuho Okuさんのツイート: "最近のmallocだと差はないだろうけど、メモリプールから切り出す実装だとcallocのインターフェイスを踏襲すべきなのかも。そもそも小容量のmallocの最適化を狙っているわけだし"
- Tanaka Akiraさんのツイート: "@mametter C11 に alignof が入ったんじゃなかったっけ https://t.co/xdOrRvtTaK"
- Yusuke Endohさんのツイート: "@tanaka_akr これをつかって、char* を intptr_t にキャストして alignof の倍数になるように調整する感じでしょうか。うーん、なるほど"
- Yaðuaki Möritaさんのツイート: "@mametter @tanaka_akr max_align_tみたいなのありませんでしたっけ"
- Yaðuaki Möritaさんのツイート: "alignof(max_align_t)でアライン取ってしまえば効率は悪いけど変なアラインを踏むことはなくなりそう。C99とかだとmax(sizeof(long double),sizeof(uintmax_t))とかでアラインとればいいのかな"
- Kazuho Okuさんのツイート: "C言語でアプリケーション書く最大のメリットのひとつが、メモリ管理戦略を含むデータ構造の設計を自由に行えるというところだというのは、強調してもしすぎる論点ではないと思う… "
- Kazuho Okuさんのツイート: "H2OはWebサーバとしては小規模だけど、メモリ確保手法だけでもmalloc/free、プール、参照カウント、バッファ(一定サイズを越えるとtmpfsベースになる)の4種類を使い分けるようになってるし、まあそんな感じでやるもんです。大容量バッファをメモリ管理戦略の一部にできるのは64bit時代ならでは。"
- Kazuho Okuさんのツイート: "細かいこと言うと、メモリを逐次解放するつもりがないなら、malloc呼ぶのは誤り。大きなブロックを確保して、先頭から順次使っていくのが正しい戦略です。処理が単純化し使用メモリ量が減り局所性が向上する結果、速度が向上する。世代GCやサーバ等多くのプログラムで用いられる一般的な手法です"
- Kazuho Okuさんのツイート: "リクエストで使う文字列→リクエスト毎のプールで確保し、完了時にまとめて解放 同一H2接続のリクエスト間で共有するHPACK文字列→参照カウンタで確保しプールに登録。全てのリクエスト完了時に解放 POSTデータ→tmpfsにフォールバックするバッファに確保 H2接続を表現するオブジェクト→malloc/free"
- Thoughts on GCs | κeenのHappy Hacκing Blog
- Kazuho Okuさんのツイート: "ユーザ「終了時にメモリリークしてるってasanが言います」 僕(めんどいなー。どうせmainで確保してるコードだしallocaに変えよう。。。) ユーザ「修正を確認しました。ばっちりです」 僕「アラォッケーってか」"
- Kazuho Okuさんのツイート: "goto禁止教の人たちはソースコード見せなければ無害だけど、メモリ解放必須教の人たちは防ぎようがないんだよね"
- Kazuho Okuさんのツイート: "struct S *s; ... s = malloc(sizeof s); とかみんながやるミスでしょ。やったことない人いるの?"
- Kazuho Okuさんのツイート: "p = malloc(sizeof *p) は不整合が脆弱性につながるイディオムなのでラッパ書いてる人も多いんじゃないかな"
- Kazuho Okuさんのツイート: "「malloc失敗時にabortしていい」という主張は、malloc失敗を異常ケースとみなしていいという主張と同義なんだけど、昔はmalloc失敗はよくあることだったし、ディスクが遅いから自動保存なんてできなかったので、mallocに失敗してからファイル保存処理を実行できる必要があったとかなんとか"
- 7594591200220899443さんのツイート: "一年考えてまだなぜclangがこのコードを吐くのがバグじゃないのか理解できない。*p=1;(なにか);return *p;をclangはreturn 1;に最適化しているわけだけれども、なぜ(なにか)がpをぶっ壊してないことが静的に確定するのか?mallocがちょうどそのアドレスを返すことがあり得るよね?わからん。… https://t.co/2EJdGVDKqq"
- John Regehrさんのツイート: "here we try to guess the value of a pointer -- LLVM says we cannot guess it and GCC suspects we can https://t.co/iPzc11HRdR"
- Compiler Explorer
- Miura Hidekiさんのツイート: "mallocをどう解釈するかじゃないかなー?mallocを厳密にメモリ領域を確保するという解釈ならmallocのコールとoffset 0のデリファレンスをコード生成しないといけないだろうけど、mallocはローカル変数のように同じセマンティクスが実現できれば実体は無くていいという解釈ならclangの方法も正しい"
- Kazuho Okuさんのツイート: "mallocは常にエイリアスされ得ないアドレスを返すという関数宣言属性 __attribute__((malloc)) があって、それを認識してるだけでは?… "
- Kazuho Okuさんのツイート: "というか、*(int*)0xfeedcafeする時点でimplementation-defined behaviorになり、そして当該処理系は、mallocが返しうる領域をユーザがmallocを経由せずに指定した場合の挙動は定めていない、ということのような気がします… https://t.co/PtQpVsTsua"
- Kazuho OkuさんはTwitterを使っています 「slabっていうのかbinっていうのか知らないけど、各malloc実装があらかじめ用意している小容量のスロット群のサイズ一覧表みたいなのあるのかな。 何に使いたいかというと...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「たとえば、18バイトの領域が4個必要だったとして、それは固定で確保しておいたほうがいいのか、mallocで18バイト毎に確保すればいいのか、みたいなことをパッと判断したい。 32バイトのbinが使われるなら、要素あたりのメモリ使用量はポインタ含め40バイト になるからmallocしなくていいか、とか...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「20バイトのbinが使われるなら、mallocもありかな、とか... 実際は20バイトのbinなんてないと思うけど、例として挙げてます」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「最近の64bitサーバなら、一番オーバーヘッドが少ないmallocでも16,32,48,64あたりじゃないかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「だいたい、malloc/freeとか、フラグメンテーションが起こりやすい仕組み使ってていいのは中学生までやねん。プロは動的メモリ管理はハンドルでやってコンパクション対応する …って、じっちゃんが言ってた」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「これ若者にはギャグだと通じないんですが大丈夫かな… # 解説: # 仮想記憶導入前に作られた太古のMacOSやWindows には、生ポインタ(*p)じゃなくポインタへのポインタ(**p)を使ってメモリ管理をする仕組みがありpをハンドルと呼んでいたのぢゃ # OS側が**pを勝手に変更してコンパクションしてたのぢゃ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「仮想記憶がある場合、論理アドレスは一定に保ったまま物理空間でコンパクションできるので、(論理アドレスを使う)ユーザ空間ではコンパクションを気にしなくてよくなった、という言い方もできますね。ページサイズ<<物理メモリ量なら、それで問題ない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「マルチスレッドプログラムにおいてmmap, munmapが間接的に呼び出されるケースでは、freeのほうが圧倒的に重たいという理解して(tlb shootdownのため)」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「一昔前の「malloc より free の方が重い」という通説が今でも真なのかも私にはよくわからんし、この辺は本当にちゃんと実装をおっかけてないとわかんねーんだなこれが。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「malloc/freeの重さは実装や条件によって変わるから、前提なしに色々言うひとの意見は無視するぐらいでいい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「既存のmallocに対する不満、munmap呼びすぎでコア数増加にともない負荷でかくなってきてるところにあって。じゃあ、全スレッドの解放メモリまとめて、一定間隔で一気にmunmapすればいいよねって話になるんだけど、そういうシステムコールがない気がする」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「munmap呼ぶのはジャイアントロック取る以上に?凶悪なんだから、ロック減らす努力してるmallocはmunmap呼ぶ回数もCPU数に比例しないような設計を採用すべき」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「みたいなことを、ぼんやりと思ってて、だからまあ、やるなら本当にそこが問題なのか確認した上で、既存mallocとカーネルに手を加えてみるみたいなことをやればいいんだろうなと思うんですけど他の案件で忙しい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あーそうですね。 https://t.co/Ac4IRrrt5b に MADV_FREE > MADV_DONTNEED > munmap である理由の解説がありました」 / Twitter
- mizushikaさんはTwitterを使っています 「最近 Go のメモリ解放処理を調べる機会があって、メモリ解放時に munmap せずに madvise(MADV_DONTNEED or MADV_FREE) している理由を考えていたのだけど、munmap が重い (tlb shootdown のせい) が主要因なのかな。」 / Twitter
- mizushikaさんはTwitterを使っています 「@kazuho なるほど、参考になります。MADV_FREE はダーティビットを落とすだけなので(すぐに再利用されたら)ページフォルトや確保が走らず、MADV_DONTNEEDよりも速い、と。ただ Go 1.6 では DONTNEED から FREE に変えていて、この辺は RSS がちゃんと観測できないのを嫌ったからみたいですね。」 / Twitter
- はろさんはTwitterを使っています: "#DroidKaigiA 「dalvikでは、dlmalloc, ARTではRosAllow。Segeregated free listを使い、並行メモリ割当に対応。」そういや、最近はjemallocがdefaultやね。Android."
- OS作れないマン WalB担当さんのツイート: "OSのメモリ管理方法として、可変長メモリブロックの先頭に管理用ヘッダを埋め込んでリンクリストを形成する方法に名前がついてた気がするけど、なんだったかな。"
- ゆたかさん🐬さんのツイート: "freeよりもmallocのほうがコストがかかるので、処理高速化のため実際に解放せずプールしているのだと思われます。 https://t.co/npAdD3xnfo"
- Rui Ueyamaさんのツイート: "なぜ速いかというと必要なメモリをスタックだけからアロケートしているというのと(やっぱmallocは遅い)、適切な中間表現を作ってパーズと文字列化を分離しているからだと思う。適切なデータ構造を選べばプログラムは簡単で速くなるんだなぁという感じ。"
- Rui Ueyamaさんのツイート: "いま思えばできる限り速いmallocを書くという課題(ベンチマークのスコアで点数がつく)は教育効果高かった。他人にシステムズプログラミングを教える立場になったらあれは活用したい。"
- がちゃぴん先生さんのツイート: "glibc 2.26 がリリースされました。今回は小粒な変更な印象。malloc の per-thread cache がパフォーマンスインパクト大きそうかな"
- Fadisさんのツイート: "mallocを使わないプログラマ、Cが透けて見えない言語の使い手の可能性と、ベアメタル魔人の可能性がある"
- Fadisさんのツイート: "mallocを使わない人、最近はHugepageを使わないとTLBミスががががが、な人達もいるか"
- 島鉄雄さんのツイート: "ゲームだと以下の原因がある。 1.メモリが枯渇している→特定の手順の時だけメモリ不足になる→フラグメントにより大きな空きが無い 2.同じアドレスでfreeを2回する(malloc管理領域が破壊) 3.メモリ破壊(free後に書き込む等) 1.2.はmalloc()をデバッグ機能付きにすれば対処可能だけど、3.は地獄…… https://t.co/gpPYUz1hTu"
- 島鉄雄さんのツイート: "ちょっと間違ってた… 1.の場合は NULL が返ってくるだけだから malloc で SEGV は発生しなかった。(NULL チェックしてなければその後 SEGV だが) 3.は必ず malloc が SEGV する訳じゃないけど、malloc の管理領域を破壊すると malloc の SEGV が発生する、という感じか。"
- OS自作 uchan_nosさんのツイート: "フル機能のsprintfは場合によってはmallocを呼ぶのでクソ.mallocとか絶対に呼ばないsprintfが欲しい."
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「20数年の時を経て、malloc/free論争の再開(笑) (当時、プロセス終了でリソース開放なら終了時freeは無駄、が多数派で終わった感) https://t.co/h9dteQ3XfV」 / Twitter
- FadisさんはTwitterを使っています: 「C++のRAIIによる確実なメモリの解放、プロセスの寿命を超えて生存するNVDIMM上のデータの前では無力で厳しい」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「記事がめっちゃ長くて読めてないんだけど、高位アドレスから低位アドレスに向かって確保するのが効率的な理由を、誰か一言で理由を教えてくれませんか」 / Twitter
- hikaliumさんはTwitterを使っています: 「@uchan_nos 高位から低位に確保すれば、アライメント合わせが切り捨て方向になる 確保サイズが空き容量よりも大きい時のオーバーフローの考慮が1個減らせる つまり条件分岐が減る だから速い」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「https://t.co/arNOjyAz8w 「確保しっぱなし」の簡易アロケーターを実装する場合、メモリ空間の上から下に向かって確保するのがよいという記事。たしかに何も言われないとつい下から上向きに実装してしまいそう。」 / Twitter
- Always Bump Downwards
- Masaki HaraさんはTwitterを使っています: 「@hutai 用語が古いのか仰りたいことが正確にはわかりませんが、おそらく問題をより複雑に読み違えているのでは。ここでは完全なヒープやガーベージコレクションなどは考えておらず、最もシンプルな形態のアロケーターを考えています。とりあえず元記事の前半を読むといいと思います。」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「@hutai 考えていることはシンプルで昔のアーキテクチャにも当てはまるはずなので、昔から「常識」だったとしてもおかしくないとは思います。ただ、それをこうしてブログにしてより多くの人に知らしめた人が偉いのであって、暗黙知だったとあとから主張されてもあまり意味がないのかなと思います。」 / Twitter
- uchanさんはTwitterを使っています 「Intel Pinで解析対象プログラムのmallocを置き換え,ヒープオブジェクト一覧を得ることができた。『動的バイナリ解析の基礎』っていう同人誌に従ってやってみただけだけど。 https://t.co/L4ApEgvBKK https://t.co/SavCYgjuQK」 / Twitter
- 動的バイナリ解析の基礎 - バイナリイーター - BOOTH
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「とくにRustに限った話ではないが、例えばC++ならデストラクターを実行する必要がない型にしておいてmonotonic_buffer_resourceからメモリを確保するなどしてちょっと最適化できるかな。」 / Twitter
- κeenさんはTwitterを使っています 「んー、この発想はなかった。RustにGCがないとはいっても、大きなデータ構造を開放するときはstop the world的なのは起きうる。それを別スレッドに逃がす話。 Rust: Dropping heavy things in another thread can make your code 10000 times faster https://t.co/s0CRKTvemi」 / Twitter
- Rust: Dropping heavy things in another thread can make your code 10000 times faster
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「結局問題は、複雑なノードベースのデータ構造を構築する大量の小粒なメモリ群を一つづつ開放していくコストなので、専用のアロケーターを使えば効率的になる。」 / Twitter
- Kentaro HaraさんはTwitterを使っています 「Chromiumのメモリ管理周辺のコードはガチガチに最適化してあるんだけど、たまに観察される現象が「関数をインライン展開しないほうが速い」。最近のCPUは相当賢いので、(インライン化による命令数削減のプラス効果)<(コードサイズ肥大化による命令キャッシュミス増加のマイナス効果)になりうる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「見識ありそうな人達の結論は「(まともなOS上なら)終了時freeは時間の無駄」だったかな。」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「malloc and free とは: かつて fj.comp.lang.c というニュースグループにおいて「プロセス終了時に free すべきか否か」という議論が紛糾し、1年以上続いた。 https://t.co/j64t4aYS6g で読めるけど有益な情報は特にないので読まなくていい。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお「時間の無駄」と表現したけど、「無意味」なだけでなく、実際のUXを悪化(なかなか終了しない)させる場合は積極的に悪い、という含意もあり。」 / Twitter
- ytakanoさんはTwitterを使っています 「mallocだけでaligned malloc作れるのか。メモ。 https://t.co/epXTIA5mwS」 / Twitter
- Generating Aligned Memory - Embedded Artistry
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「アロケータまわりも「専用アロケータが正義→今はmallocが正義やで→やっぱり専用アロケータが正義→……」って感じでトレンドが輪廻してる気がする」 / Twitter
- Kentaro HaraさんはTwitterを使っています 「チームのみんなががんばってくれました!!🙂これまでChromeはmallocを使ってましたが、徹底的に最適化し尽くした専用メモリアロケータ(PartitionAlloc)に切り替えて、Windowsで22%のメモリ削減を達成しました。セキュリティ面も強くなってます。他のOSも順次置き換えます。https://t.co/S4Me4uN1nS」 / Twitter
- Chromium Blog: Efficient And Safe Allocations Everywhere!
- Miura HidekiさんはTwitterを使っています 「静的解析や動的プロファイリングをして、そのアプリケーションに最適なアロケータをコンパイラが生成するって考えているけどよい考えが浮かばない。もっと一般化してランタイムを生成するのそのうち行うようになると思う。」 / Twitter
- Kentaro HaraさんはTwitterを使っています 「いまどきmallocを再発明してどうするのと言われそうですが、メモリレイアウトを完全に支配できるのでChromeによるChromeのための最適化を徹底的にかけられるんですよね。(あとこれ、大学時代から数えてぼくが関与した6個目のメモリアロケータ作品になります 笑。しゅみ・・・)」 / Twitter
- Low-fragmentation Heap - Win32 apps | Microsoft Docs
- GetProcessHeap function (heapapi.h) - Win32 apps | Microsoft Docs
- HeapSetInformation function (heapapi.h) - Win32 apps | Microsoft Docs
PhoenixWiki
- EFI SYSTEM TABLE - PhoenixWiki
- EFI CONFIGURATION TABLE - PhoenixWiki
- EFI BOOT SERVICES - PhoenixWiki
- EFI RUNTIME SERVICES - PhoenixWiki
- EFI LOADED IMAGE PROTOCOL - PhoenixWiki
- EFI GRAPHICS OUTPUT PROTOCOL MODE - PhoenixWiki
- EFI STATUS - PhoenixWiki
- Category:Device Path - PhoenixWiki
- EFI LOAD FILE PROTOCOL - PhoenixWiki
- EFI MEMORY DESCRIPTOR - PhoenixWiki
- EFI GRAPHICS OUTPUT BLT PIXEL - PhoenixWiki
- EFI GRAPHICS OUTPUT BLT OPERATION - PhoenixWiki
- EFI GRAPHICS OUTPUT PROTOCOL - PhoenixWiki
- EFI GRAPHICS PIXEL FORMAT - PhoenixWiki
- TianoCore EDK2: MdePkg/Include/Uefi/UefiSpec.h File Reference
- Category:UEFI 2.0 - PhoenixWiki
MS
高速スタートアップ
- System Power States (Windows)
- イーサネット - Windows 10 hardware dev
- 「通常シャットダウン」と「完全シャットダウン」 Windows10高速スタートアップの設定 | Mechalog
- 富士通Q&A - ハイブリットシャットダウンからの復帰後のサインイン画面で、Num Lock状態が解除される場合があります。 - FMVサポート : 富士通パソコン
- Windows 10で高速スタートアップを無効にする方法 – iBitzEdge
- ハイブリッドブートを無効にする方法【Windows 8】 | MacRuby
- シャットダウンと休止状態とスタンバイ(スリープ)状態の違いとメリットデメリット | パソコンの問題を改善
- Windows 10(完全なシャットダウンを実行する) | PC Cafe サービス・サポート編 | パナソニック パソコンサポート
- Windows10の通常シャットダウンと完全シャットダウンとスリープの違いとは | The Windowsマスター
- Windows10の高速スタートアップって何?速いけど危ない?無効にする方法は? | ligamap
- 121ware.com > サービス&サポート > Q&A > Q&A番号 018214
- Windows 8.1ミニTips (108) 「高速スタートアップ」有効時、BIOS/UEFIを呼び出すには | マイナビニュース
- Windows 8.1ミニTips (110) 高速スタートアップが使うハイバネーションファイルのサイズを変更する | マイナビニュース
- Windows 8レボリューション:第17回 素早い起動を可能にする「高速スタートアップ」 - @IT
- Windows 8で実装された「高速スタートアップ」とはどんな機能か解説 - 道すがら講堂
- Windows 8.1ミニTips (107) 高速スタートアップを有効にする | マイナビニュース
- パソコンの電源を完全に切る方法 (高速スタートアップを一時的に無効にして完全にシャットダウンする方法) - マイクロソフト コミュニティ
- Windows_Japanさんのツイート: "【実は違う「シャットダウン→起動」と「再起動」】 #Windows10 のシャットダウンでは、次の起動を高速化するために、“現在の環境を保存”する機能が働きます。 対して再起動では、“環境をリセット”して起動します。 #豆知識 https://t.co/pk5csWDib9"
- Windows_Japanさんのツイート: "【「シャットダウン→起動」と「再起動」の違い】 #Windows10 のシャットダウンでは、次の起動を高速化するために現在の環境を保存する機能が働きますが、再起動では環境をリセットしています。パソコンの調子が悪くなった時は、高速化しない「再起動」を試してみてくださいね。 #豆知識 https://t.co/9o1FbvwS6w"
- 日記 (2014 年 11 月下旬)
- exJP2QNBさんのツイート: "さらに『フルシャットダウン』なんてのもありますね。 シャットダウンより再起動、とのことですが、問題によっては、再起動では直らなくて、シャットダウン→電源オン、じゃないとだめなときもあります。 デバイスの電源管理の問題のときとか。… "
- SODA Noriyukiさんのツイート: "SHIFTキーを押しながらシャットダウンするとか、あるいは[設定]=>[更新とセキュリティ]=>[回復]=>[今すぐ再起動する]=>[PCの電源を切る]で呼び出す奴ですね。高速スタートアップOFFのシャットダウンはこれと同じになるんじゃないかと思ってるんだけど、違うあるんでしょうか?… https://t.co/TPU9fhPnLC"
- exJP2QNBさんのツイート: "PC内部のデバイスの電源管理に差があることがあります(某社だけ?じゃないと思いますが)。 バッテリー抜いたり、デスクトップならコンセントからプラグ抜いちゃえば、差はないですね。… "
Fast Boot
- Windows7でもFastBootが効くってホント? - 週刊アスキー
- 自作PCをよくするワザ、教えます(3) ~マザーボード 初級編~ - AKIBA PC Hotline!
- 本の虫: Windows要件を満たしたPCで、Microsoftの屈辱的なライセンスに同意せず別OSを使うのが困難な状況
- Microsoft relicensed EDK2 FatPkg to BSD!! | Firmware Security
- Windows の UEFI プロトコル - Windows 10 hardware dev
- ブート モード管理 UEFI プロトコル - Windows 10 hardware dev
- Microsoft UEFI CA の署名ポリシーが更新されました – Windows ハードウェア認定ブログ
- USB デバイスから Microsoft Surface を起動する
- UEFI ファームウェア - Windows 10 hardware dev
- UEFI 環境からのデバイス I/O - Windows 10 hardware dev
- Windows UEFI ファームウェア更新プラットフォームの機能の検証 - Windows 10 hardware dev
- /MACHINE (ターゲット プラットフォームの指定)
- UEFI ベースの推奨ディスク パーティション構成
- UEFI 検証オプション ROM ガイダンス - Windows 10 hardware dev
- セキュア ブートの無効化 - Windows 10 hardware dev
- Clarification of new Windows UEFI/SMM security feature | Firmware Security
- PC OEM requirements for Device Guard and Credential Guard | Microsoft Docs
- UEFI で OS 起動前の環境を保護する – Building Windows 8
- 山市良のえぬなんとかわーるど: Tips: Windows のインストール時に UEFI か BIOS か判断する方法
- 11月の月例アップデートで一部のLenovo製ラップトップが起動不能に - 窓の杜
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「VS2013まで、snprintf で n を超える場合、\0が付かない上に、戻り値に-1が返るという仕様だった。 https://t.co/KdPadErguz strncpy共々使いづらいため、snprintfz とか strncpyz みたいなオレオレ関数を作って対処していた。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「逆に、VS2015以降のsnprintfがC99準拠になっていたのを初めて知った。」 / Twitter
- UEFI scanner brings Microsoft Defender ATP protection to a new level - Microsoft Security
- 拡張ファームウェア インターフェイス (UEFI) - Windows drivers | Microsoft Docs
Intel
- The Linux EFI Boot Stub | Intel® Architecture Firmware Resource Center
- https://firmware.intel.com/sites/default/files/resources/A_Tour_Beyond_BIOS_Memory_Map_in%20UEFI_BIOS.pdf
- A_Tour_Beyond_BIOS_Memory_Practices_with_UEFI.pdf
- Address Range Partial Memory Mirroring | Intel® Software
- intel/ModernFW
- Intel Seamless Update: Intel Preparing For System Firmware Updates Without The Reboot - Phoronix
Plamo Linux
- 第77回 Plamo LinuxのGPT/UEFI対応[その1]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
- 第78回 Plamo LinuxのGPT/UEFI対応[その2]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
- 第79回 Plamo LinuxのGPT/UEFI対応[その3]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
- 第80回 Plamo-6.1 released:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
SMBIOS
- SMBIOS | DMTF
- www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.0.0.pdf
SMM
- naitakuさんはTwitterを使っています 「SMRAMが書き換えられちゃうと本当にダメでHVCIすら突破出来るって話。」 / Twitter
- naitakuさんはTwitterを使っています 「AMD CPU BIOS の脆弱性の解説。What's SMM から始まって SMRAM の書き換え→SMMで任意のコード実行→任意のメモリ書き換え→HVCIのセキュリティを突破と Step by Step で説明してあって良記事 Code execution in SMM is a game over for all security boundaries.https://t.co/b4811g1NEJ」 / Twitter
- Attacking the Golden Ring on AMD Mini-PC | by danny odler | Medium
- naitakuさんはTwitterを使っています 「Haswell以降は"SMM Code Access Check"があるんで、これだけで任意のコードが実行できるわけではなさそうな気がするんですが、A potential vulnerability ってことなんですかね。」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「#seccamp で僕の講義受ける人、001はわかりやすいのでレポート読んでみてください。001の類似はセキュリティバウンダリーとツールの使い方を理解したら、あとはひたすら複数会社のBIOSダウンロードしてSMMのSMIリバースすれば絶対ほかにも見つけられます」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「001は要するに、高い権限で動くコードが低い権限のコード実行したらダメって話です。 カーネルがユーザーモードのコードそのまま実行したらだめ、VMMがカーネルやユーザーモードのコードそのまま実行したらダメ、SMMはそれ以外のどのコード実行してもダメ、ということ」 / Twitter
- BINARLYさんはTwitterを使っています 「#efiXplorer team discovers multiple vulnerabilities in Lenovo devices: [BRLY-2021-001] SMM arbitrary code execution (privilege escalation) [BRLY-2021-002] Misconfigured Intel Boot Guard protected ranges (IBB). Details: https://t.co/31BqiUFkLb Advisory: https://t.co/3HGdDosf7g」 / Twitter
- Vulnerability-REsearch/Lenovo at main · binarly-io/Vulnerability-REsearch
- Lenovo BIOS Vulnerabilities (July 2021) - Lenovo Support FR
- Satoshi TandaさんはTwitterを使っています 「@naitaku もし有効にされていたならば😉 レポートから見るに、明らかにcall out “できる“ 前提での実装なので意図して有効にしていないのでしょう」 / Twitter
- naitakuさんはTwitterを使っています 「@SatoshiTanda そうか。もともとのコードがSMM外のコード実行してるんで、それが動いていたのなら SMM Code Access Check は無効だった、ってことですね。このResetSystemを動かすために無効にしちゃったのかな。残念すぎる。 返信ありがとうございます!」 / Twitter
GitHub
- clover/OhciDxe at master · Clover-EFI-Bootloader/clover
- uefireverse/efiperun at master · jethrogb/uefireverse
- EDK II white papers · tianocore/tianocore.github.io Wiki
- fuchsia-mirror/gigaboot20x6: GigaBoot20x6 - A Simple UEFI Bootloader for Magenta
- edk2/Command.c at master · vathpela/edk2
- thasenpusch/ExOS at aca6a389d54ae7c08e5073eae50d1ef134d7b322
- AuberLin/PiSmmSCRT
- ornitorrincos/OS at 1d3284be4af4da2a9690b89ebd958e6ca53ce8e6
- x86, efi: Retain boot service code until after switching to virtual mode · shr-distribution/linux@916f676
- BOOT UEFI · seporaitis/fuchsia Wiki
- uefi-programming/process.c at master · zhenghuadai/uefi-programming
- MatthewClarkMay/secure-boot-mok-scripts: Set of scripts I wrote to simplify UEFI Secure Boot Machine Owner Key generation, and signing of Nvidia, VMware, and VirtualBox kernel modules. These MOKs can be used to sign other kernel modules as well.
- Microsoft UEFI capsule update package on GitHub | Firmware Security
- MS_UEFI/MsCapsuleUpdatePkg at share/MsCapsuleSupport · Microsoft/MS_UEFI
- ちくわさんのツイート: "今現在開発中のyabits/uefiですが,OpenBSD 6.2が起動することを確認しました.これで少しはTianoCore以外のUEFIができた,と言えるのかな? https://t.co/P5uPiTPnhR https://t.co/5mFxTEpX5k"
- yabits/uefi: A minoca based UEFI coreboot payload
- Fadisさんのツイート: "Microsoft、TianoCoreのEDK2をforkして「ぼくのかんがえたさいきょうのUEFIアプリケーション開発用ライブラリ」を作るオープンソースプロジェクト Project Mu を立ち上げ https://t.co/huBeVkFboO"
- Microsoft Announces "Project Mu" For Open-Source UEFI Alternative To TianoCore - Phoronix
- Project Mu
- Unofficial EDK2 nightly build | EDK2 Nightly Build
- How to debug OVMF with QEMU using GDB · tianocore/tianocore.github.io Wiki
- edk2/Readme.md at master · tianocore/edk2
- retrageさんはTwitterを使っています 「はりぼて状態だけど,Rustで書かれたEFI互換なfirmwareでUEFI Secure Bootが利用可能なUbuntuの起動がImageの変更なしにできるようになった.shimとか使ってても動きます.」 / Twitter
- retrage/rust-hypervisor-firmware at vanilla-ubuntu-boot
- retrageさんはTwitterを使っています 「shimx64.efiとかのデバッグ,ソースコードが公開されている分winload.efiとかのデバッグよりはやりやすかった.」 / Twitter
Golden Key
- Bungling Microsoft singlehandedly proves that golden backdoor keys are a terrible idea • The Register
- Oops! Microsoft Accidentally Leaks Backdoor Keys to Bypass UEFI Secure Boot
- Oops: Microsoft leaks its Golden Key, unlocking Windows Secure Boot and exposing the danger of backdoors
- Microsoft Secure Boot key debacle causes security panic | ZDNet
- Secure Boot Isn't So Secure After All: The Golden Key Is Out - Phoronix
- Windowsマシンのセキュアブートを無効化できるセキュアブートポリシーが流出、解析結果が公開される | スラド セキュリティ
- Windowsのセキュアブート機能が回避可能になっていたことが明らかに - GIGAZINE
- Microsoft Mistakenly Leaks Secure Boot Key | Threatpost | The first stop for security news
- Secure Boot snafu: Microsoft leaks backdoor key, firmware flung wide open | Ars Technica
- Secure Golden Key Boot: (MS16-094 / CVE-2016-3287, and MS16-100 / CVE-2016-3320)
- MSのセキュアブートバイパス問題--セキュリティ研究者らが経緯を明らかに - ZDNet Japan
- Microsoft、UEFIセキュアブートのポリシーを誤って流出 | マイナビニュース
スラド
- Windows 10ロゴプログラムではセキュアブート無効化オプションの搭載が必須ではなくなる | スラド Linux
OSDev
- Broken UEFI implementations - OSDev Wiki
- El-Torito - OSDev Wiki
- Uefi.inc - OSDev Wiki
- Debugging UEFI applications with GDB - OSDev Wiki
- Livaさんのツイート: "qemuにgdbに繋いでデバッグすると「Remote 'g' packet reply is too long」とか言われてデバッグする問題、16bit->32bit->64bitの遷移が問題らしい https://t.co/jNipyBwgea #liva_notebook"
スライド
- UEFIをつくる // Speaker Deck
- UEFIでうごくゲームを作ってみた〜2017年夏休みの自由研究〜 // Speaker Deck
- UEFI向け自作OSの紹介
- EFI Byte Code Virtual Machine for Fun and Profit - Speaker Deck
- Practical Rust (Hypervisor) Firmware - Speaker Deck
- FadisさんはTwitterを使っています 「rust-hypervisor-firmware: KVMをバックエンドとして動くハイパーバイザ。コンテナのアイソレーション等を目的としており、物理ハードウェアのエミュレーションは目指しておらずvirtio等のデバイスだけを備えた軽量な実装になっている https://t.co/u1OlJwRWhu」 / Twitter
- cloud-hypervisor/rust-hypervisor-firmware
- Takahiro YamashitaさんはTwitterを使っています 「ExitBootServiceを呼び出した時点でRunTimeフェーズに移行する。 RuntimeServiceはメモリに残ってるから、そいつを意識してメモリ管理しないとダメなのか。 SetVirtualAddressMapをOSが呼ぶ必要がある。 #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「UEFIのランタイムサービスはブート時に一度メモリに置かれた後、OSが起動すると別のアドレスに退かされるため、リロケーションが2回行われる事になる #kernelvm」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@retrage ちなみにRuntime Servicesが保管されているメモリってOSから見るとReservedに見えるけど、直接中の関数を呼び出せるという不思議な作りですよね。EDK2だとnvmemデバイスのドライバが入ってるっぽくてちょっと面白い。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「EFIのRuntime Services、考え方がMS-DOSのhttps://t.co/vqtbFwavaYから変わってなくて面白い。」 / Twitter
- Xavier NXのカーネルとVMの話
- retrageさんはTwitterを使っています 「なのでWindowsだとIOMMU有効が推奨されています。若干違いますが同じような手法でBoot Servicesを書き換えてSecure Bootが回避できたりもします https://t.co/QXW9homgUB」 / Twitter
- るくすさんはTwitterを使っています 「1.5倍速で観返してるけどEFI Runtime ServiceってOS起動してからもremapされて生き残ってるんだな。DMAとかで関数ポインタ書き変えれたらバックドアにできそう #kernelvm」 / Twitter
- るくすさんはTwitterを使っています 「全く同じ試みがすでにされてた 草 Attacking UEFI Runtime Services and Linux https://t.co/z5Xp7hr1UP #kernelvm」 / Twitter
- Security | DMA | Hacking: Attacking UEFI Runtime Services and Linux
- るくすさんはTwitterを使っています 「remapする時は毎回同じアドレスに置かないほうが良さそうですよ "Luckily the location of the Runtime Services table is static and won't change between reboots" #kernelvm」 / Twitter
- retrageさんはTwitterを使っています 「@RKX1209 はい、WindowsだとRuntime ServicesにもKASLRが効いていて毎回違うアドレスにremapされます(のでデバッグが大変だったり)」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「@retrage @RKX1209 Remapping (KASLR) は仮想メモリアドレスであって物理メモリ上ではリロケーションされないのでDMAに対しては意味ないですけどね 一般的なUEFIの実装はASLRないのでほぼアドレス固定なはず」 / Twitter
- retrageさんはTwitterを使っています 「@SatoshiTanda @RKX1209 そういえばそうでした。訂正します。」 / Twitter
技術評論社
- 第441回 QEMU/KVMでUEFIファームウェアを使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第444回 Ubuntuにおけるセキュアブートの仕組み:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第446回 QEMU/KVMでセキュアブートを利用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第511回 UEFIの設定が変更できなくなる,あのバグの話:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
OSDN
- 「Coreboot 4.6」リリース | OSDN Magazine
- 米Microsoftが「Project Mu」を発表、同社のUEFIコアをオープンソースに | OSDN Magazine
Qiita
- UEFI Advent Calendar 2014 - Qiita
- "えっお前んちのマザーボードlinux入ってんの?" UEFI Built in Linuxのススメ - Qiita
- gnu-efiでUEFI遊びをはじめよう - Qiita
- FreeBSDのWindows8.1マシンでのデュアルブートのやりかた - Qiita
Twitter
その他
- 嶋田大貴さんのツイート: "UEFIブートの時に画面つながってないと grubがstuckするの、ECS LIVAだけの問題じゃないっぽい https://t.co/a8XwYlw7I6"
- 173210さんのツイート: "jethrogb/uefireverse https://t.co/HsgGU1LvPn Linuxで実際にUEFIアプリケーションを走らせてみるという荒業。その発想はなかった。"
- iruka3さんのツイート: "ここでx86とかx86_64を持ち出さない理由は、intel系CPUでベアメタル・プログラムを組める人は特権階級な人達だけ、だから。 OS書いたりBIOS書いたりUEFI弄るような人。あとコーデックを高速化する人とか特殊な技能人 https://t.co/V27HEOrwea"
- 側転幼女おるみんちゃんさんのツイート: "UEFIとACPIとSATAとPCIeとUSBとネットワークでというモダーンなPCで自作OSみたいな本"
- СЮУ1228さんのツイート: "@kotatsu_mi あとさぁ、UEFI App/Driverだと間口狭い感じするんだけど、x64入門とか自作OS本の新しいやつみたいに考えるともうちょっと間口広いと思うんだよな。実装的にはUEFI使う感じで"
- СЮУ1228さんのツイート: "@kotatsu_mi 15日でできる!UEFI OS自作入門っていう本を二人で書こうぜ #題名ぱくり良くない"
- Takanori Watanabeさんのツイート: "@tenpoku1000 いやね、ストレートマップで呼び出したら途中でポインタが吹っ飛ぶ症状がある実装があって、どうも一部のモジュールのフィックスアップがSetVirtualAddressMapで行われるということっぽいので試すかという状況。"
- Tsukasa #01 [要出典]さんのツイート: "なるほど、VeraCrypt のレスキューディスクには新たな機能が搭載されてるんだね。UEFI のブート設定が初期化されたとしても、ブートメニューを再追加することができる。これで、BIOS アップデート後も大丈夫!"
- Orumin de Izumoensisさんのツイート: "@syuu1228 /sys に UEFI の RuntimeServices が見えなくなるとかのオプションで、UEFI での起動には問題ないらしい"
- ゆたかさん🐶さんのツイート: "UEFIモードだとLinux動作中にefibootmgrコマンドで、ブートオーダーを変えれて便利です。いちいち、BIOSのセットアップに入らなくてもよいので。"
- 太田 一季 (CV.どじょりん)さんのツイート: "@jisaku_Haswell BIOS Flashbackは生のBIOSバイナリ(.rom)を読み込んで直に書き込みするのね UEFI経由でアップデート用の、カプセル化されたバイナリ(.cap)は読み込まないのよー"
- 🍵🍡Tea Boyさんのツイート: "PC専門サイトでさえ、「BIOSからUEFIに移行」などと言う実態… BIOSはファームウェアですが、UEFIは仕様ですよ??"
- tnさんのツイート: "なるほど! UEFIのTCP4 PROTOCOLのハンドラはEFI_TCP4_PROTOCOLのGUIDでLocateHandle使って検索して得るのではなく、EFI_TCP4_SERVICE_BINDING_PROTOCOLのCreateChildを呼ぶと得られるのですね!! 一歩進んだぞ!!!"
- EFI_TCP4_SERVICE_BINDING_PROTOCOLとEFI_TCP4_PROTOCOLに関するメモ
- ゆたかさんさんのツイート: "BIOS(UEFIファームウェア)はWindowsを起動することを目的として作られるので、BIOS内のOS定義(_OSIメソッド)はWindowsになっていて、LinuxはBIOSがどのWindowsバージョン向けに作られたかを判断して、ハードウェアを初期化しています。… https://t.co/sCRRVdxEz4"
- 品川 高廣さんのツイート: "そういえば先週 @retrage01 さんの独自UEFI実装 yabits (Yet Another UEFI coreboot Payload) の話を聞いてきました。起動時間が速いそうなので、QEMU + OVMF で UEFI 上の自作OSをやってる人は OVMF の代わりに使うと便利かもしれないと思いました。https://t.co/GCDsCfRMDd https://t.co/TGvQ87r3Kx"
- 研究千年牛酪情報保管庫菩薩さんのツイート: "MD RAIDのメタデータ領域を壊れたGPTと誤認識して修復しようとゼロクリアするマザボ.... / “scan.php?page=news_item&px=Linux-Software-RAID-ASRock” https://t.co/ULL25yU7Ye"
- Some Linux Users Are Reporting Software RAID Issues With ASRock Motherboards - Phoronix
- Rui Ueyamaさんのツイート: "lldを使うとUEFIアプリケーションが簡単にビルドできるよ、という話。これよく聞く話なので思わぬところで役に立っているらしい。僕はブートローダーとかは書いたことないです。 https://t.co/2h4ZHk66dX"
- Goodbye Gnu-EFI!
- NerryさんはTwitterを使っています: 「BGRT正しく表示されない問題どうも液晶の方向と画像の方向に原因がある気がするが、データ上はどの画像も0℃扱いになっててwindowsはどうやって判別してるんだ・・・」 / Twitter
- NerryさんはTwitterを使っています: 「画像が縦長か横長で判別することにした:;(∩´﹏`∩);:」 / Twitter
- ret2rangeさんはTwitterを使っています: 「UEFI、規格にないだけでEDK2で実装されているがゆえに実質標準で実装されていることになっているProtocolとかたくさんあるんだよなあ」 / Twitter
- ret2rangeさんはTwitterを使っています: 「GRUBとかでもそういうのある前提の実装だったりする(Console Control Protocolとか」 / Twitter
- ret2rangeさんはTwitterを使っています: 「デバッグでprintfがない環境で値を16進数で出力したいときva_arg使うほどでもないとき、BitVisorのloadvmm.efiにあるprinthex関数が何気に便利だった https://t.co/mfyf4k8HYC」 / Twitter
- BitVisor loadvmm.efi printhex
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「fdは「空いている若い番号から使いまわされる整数」と言う点でハマりやすい。 (昔のUNIXはその性質を積極的に使って dup(2) とか…) なお、WindowsのHANDLEはオープン毎のシリアル番号付与で、意図しない再利用はまずない。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@ponkotuy 過渡期の UEFI 2.3b にギリギリ対応してなさそうだけど UEFI なマザーボードは微妙に貧弱なのでマザーボードの設定で CSM(UEFI の Legacy BIOS 互換機能)を無効化しないと,BIOS/UEFI 両方に対応したブートイメージだと BIOS boot のほうを優先して読むようなことがある」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@ponkotuy Windows も 7 とか UEFI boot 対応してるはずなのに CSM を無効化しない限り BIOS boot するようなことがあった(Windows 8 から UEFI 2.3b 対応(つまり SecureBoot 対応)がロゴシール貼る要件になったので,UEFI boot のほうを優先するようになった)」 / Twitter
- 全手動猫画像RT botさんはTwitterを使っています 「UEFI環境でNetBSDが起動しないときのトラブルシューティング、俺も教えてほしいよ。シリアルコンソールが無いと基本駄目ですね。あとはframebufferにどこまで進んだかをpixelで表現するくらいしかなさげ」 / Twitter
- とみながたけひろさんはTwitterを使っています 「ソフトでもハードでもないからファームと呼ばれるようになったのに割と簡単にアップデートできるようになってしまい、何がファームウェアなのかというのも難しくなったなあ」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@takehiro_t ROM(ただしフラッシュメモリ)とか、あのへんわけわからんですね」 / Twitter
- とみながたけひろさんはTwitterを使っています 「@satoru_takeuchi ですねー。いまどきもうbt,etherとかのmacアドレスが書き換え可能とか全く驚かないけど、ああそうかここもいまやROMじゃないんだと最初は驚いた記憶」 / Twitter
- とみながたけひろさんはTwitterを使っています 「PCでない、で思い出したが、アングラ方面ではbiosと言えばゲーム機の本体ROMを吸い出したイメージで、isoと言えば光学ディスクを吸い出したイメージなのである。まあ「強いユニコード」とかと同じですな」 / Twitter
- timelerさんはTwitterを使っています 「なんとなくだけどPCでない機器のデバイスドライバーのイメージ😅 いい方変えるとこれ以外はファームウェアとは呼びたくないww」 / Twitter
- 強いユニコード - Google 検索
- Taisuke 'Jeff' Inoue #WFHさんはTwitterを使っています 「30年ほど前に担当してた「ファームウェア」はフロッピーからブートしてたのでまぁ… 汎用でないハード用のソフトはファームでいいんじゃないかと思うけど、最近はあんまり通じない感もあり、組込ソフト(embedded software)って言っちゃうことが多くなりました。」 / Twitter
- retrageさんはTwitterを使っています 「Windows,UEFI Variableがサポートされていない場合を想定していないらしく,BCD由来の値を使った演算を行う場合に特定の環境でゼロ徐算が行われて例外が発生する.」 / Twitter
- PG_MANAさんはTwitterを使っています 「ACPIのBootLogo GraphicってEfiBootServiceDataに格納されているんやな...おかげでこの領域をメモリ管理下に安易に置けない...」 / Twitter
- retrageさんはTwitterを使っています 「前に見かけたのでDMA attackでメモリ書き換えてチートする、というのがあった」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「普通に調べごとしてたら偶然 Apex Legends のチートの実装にたどり付いたんだけど、特定バイト列探して目的データを見つけるのは古典的な方法として、UEFIにプログラムロードしてるのね……。OSからも見えないところで下でチートツール動いてるやん。これにまともに対処しろってのが無理だわ……。」 / Twitter
1MBを避ける
- 嶋田大貴さんはTwitterを使っています 「Linux 5.13より、x86(_64)では先頭1MBのメモリを使わないようになるとのこと。先頭の方のアドレスはBIOSにぶっ壊されがちで、個別に対処するのがしんどいのでもう固定で1MBリザーブにしちゃうと。 → Linux x86/x86_64 Will Now Always Reserve The First 1MB Of RAM https://t.co/UXmhGWh21o」 / Twitter
- Linux x86/x86_64 Will Now Always Reserve The First 1MB Of RAM - Phoronix
- FadisさんはTwitterを使っています 「Linuxカーネルはx86やx86_64で起動する場合にBIOSが使う可能性がある下位64kBのメモリを触らないようになっているが、一部のイカれたBIOSがOSに何の断りもなく下位1MBまで書き込んでいて、1MB以下にカーネルが何か書くと壊れる可能性があるので、1MBまで避けるようになった話 https://t.co/88Jf0ihKuo」 / Twitter
- It Turns Out Windows Unconditionally Reserves The First 1MB Of RAM, Linux Was Just Late To Do So - Phoronix
- FadisさんはTwitterを使っています 「このパッチについてWindowsも同じ問題にぶつかる筈だけどどうなっとるん、という話がでて、Windowsチームに確認をとってくれる親切なマイクロソフトの人が現れて「その問題があるからWindowsも結構前から先頭1MBは避けるようにしている」という話が飛び出してる」 / Twitter
- FadisさんはTwitterを使っています 「1MBまで勝手に使うBIOS、そのPC/AT互換機は本当にPC/ATと互換がありますか感がある」 / Twitter
- retrageさんはTwitterを使っています 「去年からCSMが無くなって本格的にx86システムはISAレベルでPC/ATとの互換性があるだけの周りのアーキテクチャは全く別ものなので今日のx86マシンはPC/AT互換機とは言えないと思う」 / Twitter
- retrageさんはTwitterを使っています 「PCHになって久しいのに未だにノースブリッジ、サウスブリッジの図で説明されたりするともんにょりする」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「@retrage 去年CMSに何があったんですか? ググるとIntelは、2020年までにUEFIに移行する、と2017年に言ってたみたいですけど、実際はどうなんでしょう」 / Twitter
- retrageさんはTwitterを使っています 「@SatoshiTanda はい、そのことです。upstreamのedk2でもCSMの実装が無くなっている(OvmfPkgには残っていますが)ようなのでUEFIのみへの移行が進んでいると思います」 / Twitter
OS ベンダ登録
- Kimihiro Nonakaさんのツイート: "EFIブートの「/EFI/<OS vendor>/<OS image loader>] についてはUEFI spec https://t.co/STn4Gc05Go 2.7 (Errata A)だと「13.3.1.3 Directory Structure」に記載がある。OS vendorは https://t.co/kqpDxb4Kc4"
- SODA Noriyukiさんのツイート: "Debian と FreeBSD はあるんですねえ… NetBSD も欲しいなあ… "
- Kimihiro Nonakaさんのツイート: "UEFI Specification Workgroup Chairperson にメールを送れば良いみたいですけど… "
- SODA Noriyukiさんのツイート: "おお、ちゃんと見るとそう書いてありますね。 担当は board@ になる気がするのでメールしてみました(のなかさんにも CC: したので届いているはず)。 あとは board member である @_ki_nu さんが取りこぼさずに推進してくれることに期待?(ぉ… https://t.co/ASKcVS5QeV"
- Subdirectory Registry | Unified Extensible Firmware Interface Forum
virtio-fs
- retrageさんはTwitterを使っています 「virtio-fsがLinux kernelにマージされたのは記憶に新しいけど,最近になってEDK2のOVMFでもサポートが入るようになった.https://t.co/3dt4j9v19C」 / Twitter
- edk2/OvmfPkg/VirtioFsDxe at master · tianocore/edk2
- retrageさんはTwitterを使っています 「面白いのが直接virtio-fsを実装しているのではなく,間にFUSEのインターフェースを経由して実装されている点.この抽象化レイヤーを使えば他の*nix系のFSを移植するのもやりやすくなりそう.」 / Twitter
@mhiramat
- まさみさんは語りたいさんのツイート: "Linaroでuefi-toolsというのを作っていて、これはややこしいビルドを簡単にしてくれるらしい。"
- まさみさんは語りたいさんのツイート: "サーバを作って売る上で、LinuxとEDK2って扱いがちょっと違うよね。LinuxはOSベンダがメンテ出来るけど、自社のCPUやボード部分のUEFI対応はある意味BIOSと同じなのでサーバベンダがしないといけない。そう考えるとハードベンダもOSS活動しないといけないのか。"
- まさみさんは語りたいさんのツイート: "未踏、tianocore全否定なのか・・・。"
- まさみさんは語りたいさんのツイート: "まあ、ソースコードがお世辞にもいいとは思えないし大きいし、というのは理解できるけど、tianocoreもOSSなんだよな。文句があるならまずコミュニティに相談したらどうだ、という風に思っちゃう。"
@nonakap
- Kimihiro Nonakaさんのツイート: "EFI_BLOCK_IOのMedia->MediaIdってシステムでユニークという訳では無いんだなぁ…"
- Kimihiro Nonakaさんのツイート: "FreeBSDのefipartを参考にDevice Pathをいじくる様に修正しないと駄目だ(´・ω・`)"
- Kimihiro Nonakaさんのツイート: ""multiboot2 boot-services EFI specification" "multiboot2 EFI memory map specification" | NEWS - grub.git - GNU GRUB https://t.co/m9lIFSW7Y1"
- Kimihiro Nonakaさんのツイート: "efbootだとConventionalMemoryとかLoaderCodeとかLoaderDataとかBootServicesCodeとかBootServicesDataとかが利用可能メモリとして認識されるので、message bufferをなるべく保持したいという要求に応えられない気がする(´・ω・`)"
- Kimihiro Nonakaさんのツイート: "たとえばESXi 6.5のUEFI環境だと「000000000dfa8000/000000000fffffff: available [BootServicesData]」が最上位空きメモリ領域なのでmsgbufとしてここを使うはずなので、起動する度にUEFIがぶち壊すと思うんだけどどうなんだろうか"
- Kimihiro Nonakaさんのツイート: "efibootを起動した時にConventionalMemoryとして認識されている上位アドレス空間をmsgbufとして使わないと駄目な気がするけど、こんなのUEFI実装によって違うからどうしようもない(´・ω・`)"
- Kimihiro Nonakaさんのツイート: "BIOSとは違って最上位メモリアドレス付近は安全ではないのだ"
- Kimihiro Nonakaさんのツイート: "Fのloaderは1GB未満、OのLOADSPACEは256MB未満のメモリしか確保しないけど、これを真似してもmsgbufの保護にはならないので真似するのは止めました。UEFIの実装によっては保護になるとは思うけど、そういう実装が多いのか少ないのかは知らん(´・ω・`)"
@yasuoka_m
- YASUOKA Masahikoさんのツイート: "@nonakap O では、ExitBootService 後に memcpy しなおすことにしました"
- YASUOKA Masahikoさんのツイート: "@naobsd efiboot のシリアルコンソールですが、結局、こんな感じに実装してみました。ここまで頑張った挙句、ポートの特定はいい加減なので、カーネルでは別のポートでした、という問題はありそうな感じなのが弱いです。:) https://t.co/88WqKKVXy6"
- 'Re: efiboot serial console support' - MARC
@uchan_nos
- ファッション自作OSマンさんのツイート: "UEFIアプリとしてOSローダーを作る際のハマりどころ ・空きメモリ領域は機種によって違うので動的に取得する必要あり ・ABIの差。UEFIアプリのABIはMS x64 ABI、自作OSは大抵System V ABIで作るだろう… "
- 技術書典4 け-51 x86-64-128さんのツイート: "UEFIの仕様ではExitBootServices()した後はBootServiceを利用できないはずだが,実際にある実装では引き続きBootServiceが使えてしまう,らしい. #osdev_moku2"
- setup.c\kernel\x86\arch - kernel/git/torvalds/linux.git - Linux kernel source tree
- 技術書典4 け-51 x86-64-128さんのツイート: "ESPってただのFATかと思っていたら,GUIDが違うのか.知らなかった. #osdev_moku2"
- Satoshi TandaさんはTwitterを使っています 「#seccamp のUEFI BIOSセキュリティの講義スライドと事前課題資料を公開しました! UEFIマルウェア、UEFIベースのゲームチートモジュール、SMMの脆弱性を解析したり、対策方法や解析方法を一緒に議論したりしました。考えつかなかったアイディアも聞けて楽しかったです https://t.co/AjDXz2jrnm https://t.co/auO5CUJeJO」 / Twitter
- tandasat/SecurityCamp: セキュリティキャンプ2021
- セキュリティ・キャンプさんはTwitterを使っています 「全国大会選択コースC4「UEFI BIOSセキュリティ」では、UEFI BIOSのアーキテクチャーと実装、アタックサーフェイス、それに対する悪用/攻撃の事例を学習します。また、実在する脆弱性の解析などの演習を通して、土台となる技能を得ることを目指します。 https://t.co/KOEahFhQc9」 / Twitter
uefi.org
- EBC_Driver_Presentation.pdf
- UEFI_Plugfest_2011Q4_P5_Insyde.pdf
- Windows Boot Environment
- edk2-platforms/Silicon/Intel at master · tianocore/edk2-platforms
- UEFI Summer Plugfest 2011
- UEFI Revocation List File | Unified Extensible Firmware Interface Forum
- Acknowledgements · EDK II UEFI Driver Writer's Guide
- grub rescueで'grub_file_filters' not foundが出るときの対処方 | κeenのHappy Hacκing Blog
- ubuntuのブートローダが壊れたけど、Live環境から「boot-repair」を使って無事修復できました - 日々過ごすブログ
- GRUB2(UEFI)のコンソールからの起動メモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- fedora 30からgrubの仕様が変わったのでφ(..)メモメモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- このコード、オシャカルトっ!さんのツイート: "/boot/efi/EFI/xxx/にはBLS仕様になったgrub.cfgがあるので、grub.cfgを参照するというところは変わってなさそうです。… "
- FadisさんはTwitterを使っています 「picolibc: 組み込み向けの小さいlibcの実装のニューフェイス。newlibのBSDライセンスな部分とAVR libcを組み合わせて、足りないところを気合で実装することでlibc全体がBSDライセンスで提供されているのが大きな特徴。arm arm64 x86 x86_64 riscv riscv64 ppc esp8266に対応 https://t.co/FYCHM6wnMa」 / Twitter
- picolibc/picolibc: picolibc - a C library designed for embedded 32- and 64- bit systems.
- UEFI CPPC2 - Google 検索
証明書
その他
- crt.sh | Certificate Search
- 情報セキュリティ入門 - PKI(前編)---公開鍵を安全にやり取りする:ITpro
- インターネット10分講座:RFC5952 -IPv6アドレスの推奨表記 - JPNIC
- DigiCert サーバ証明書技術情報
- CA/ブラウザフォーラムで可決された「Baseline Requirements ver1.0」の和訳版公開およびGMOグローバルサイン社の対応について - GMOインターネット株式会社
- WebTrust(ウェブトラスト)について | SSL・電子証明書ならGMOグローバルサイン
- opensslコマンドで証明書情報を確認したい。 | SSL・電子証明書ならGMOグローバルサイン
- Webサイトに“安心”をプラス―知らないでは済まされないSSLサーバ証明書の仕組み:一般記事|gihyo.jp … 技術評論社
- Symantec→DigiCertでSSL/TLS証明書はどうなる? 日本国内にも認証局構築へ、IoT機器市場も見据え - INTERNET Watch
- パスワード解析などに使われる「レインボーテーブル」の仕組みとは? - GIGAZINE
- Usage Statistics and Market Share of SSL Certificate Authorities for Websites, August 2017
- 23,000 HTTPS certs will be axed in next 24 hours after private keys leak • The Register
- www7b.biglobe.ne.jp/~k-west/SSLandTLS/rfc2314-Ja.txt
OpenSSL
窓の杜
- 「OpenSSL 3.0.0」が公開 ~ライセンスは「Apache License 2.0」に - 窓の杜
- 「OpenSSL 3.0.0」の設計概要のドラフトが公開 - 窓の杜
- 「OpenSSL」のバージョンの付け方が変更 ~ライセンスは“Apache License 2.0”へ - 窓の杜
OSDN
- Linux FoundationがCore Infrastructure Initiativeの下、OpenSSLのフルタイム開発者2人を支援 | OSDN Magazine
- Linux Foundationが富士通、Google、Microsoftらとオープンソースプロジェクト向け基金を設立、まずはOpenSSLを支援へ | OSDN Magazine
- セキュリティ警報:多数のシステムに影響を及ぼすDebian OpenSSLの不具合が発覚 | OSDN Magazine
- TLS 1.3をサポートした「OpenSSL 1.1.1」リリース | OSDN Magazine
- 「OpenSSL 3.0」が公開、ライセンスはApache License 2に変更 | OSDN Magazine
Wikipedia
- OpenSSL - Wikipedia
- OpenSSL - Wikipedia
- Comparison of TLS implementations - Wikipedia, the free encyclopedia
- /index.html
- OpenSSL 3.0 Has Been Released! - OpenSSL Blog
- OpenSSL
- OpenSSL BIGNUM
- OpenSSL ライブラリを使ったハッシュ生成、暗号化(RSA, AES)、復号処理(RSA, AES)、署名生成(RSA)、署名検証(RSA) - Qiita
- OpenSSLをSSL/TLSクライアントとして使ってみる | Siguniang's Blog
- Kazuho's Weblog: SSL/TLSライブラリの正しい使い方(もしくは、コモンネームの検証について)
- Kazuho's Weblog: Neverbleed - RSAの秘密鍵演算を別プロセスに分離する話
- h2o/neverbleed: privilege separation engine for OpenSSL / LibreSSL
- Shigeki Ohtsuさんのツイート: "OpenSSLを始め幅広い暗号ライブラリのECDSA実装に対するサイドチャネル攻撃(CVE-2018-0495)が公開されました。メモリアクセスの測定と格子アルゴリズムを組み合わせ同一ホスト上のVMから秘密鍵を取得できるとのこと。 https://t.co/CZAy0bgL6Z"
- Technical Advisory: "ROHNP"- Key Extraction Side Channel in Multiple Crypto Libraries
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「openssl の AES-NI 実装は Perlコードからasm(.S)を吐くような構造らしい。へぇ。 https://t.co/OeNXKbTVMu」 / Twitter
- openssl/crypto/aes/asm at master · openssl/openssl
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと、xxhash/xxh3 を行うコマンドラインツールも用意しよう…openssl は(暗号学的hashでないため)xxhash系はリストに無いのだよね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「openssl のアセンブラって、Perl で書かれてコードを吐く形なのだよな。 https://t.co/EDnhw52cQI」 / Twitter
- openssl/sha256-mb-x86_64.pl at master · openssl/openssl
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「sha256rnds2 で Illegal Instrucion …この命令は 10世代の Ice Lake からだった。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「i5-8600K上で Win32 CNG と OpenSSL で、SHA256が2倍違った。 (CNG は AES なら AES-NI 使ってるけど、SHA256 は SSE2系すら使わずに普通のC実装の速度のままというオチ)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ちなみに、openssl からもリンクされているビルド済みライブラリはどれも SSE系を使ってくれない。自前ビルドしないとダメだった…まさかの Perl を入れる羽目に)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、「まさかの Perl を入れる羽目に」というのは、openssl のビルドには Perl必須という話。 (asm部分が .pl で書かれていて、Perl で .asm を吐き出す形。さらに configure も Perl製)」 / Twitter
LibreSSL
OSDN
- 「Heartbleed」セキュリティ問題を受け、OpenBSDがOpenSSLフォークの「LibreSSL」を開発 | OSDN Magazine
- OpenBSD、OpenSSLからフォークした「LibreSSL 2.0」のPortable版をリリース | OSDN Magazine
- SSLv3やSHA-0サポートを削除した「LibreSSL 2.3」リリース | OSDN Magazine
- TLS/SSLのオープンソース実装「LibreSSL 2.4」リリース | OSDN Magazine
- 開発版LibreSSLの新バージョン「LibreSSL 2.5」リリース、iOSを新たにサポート | OSDN Magazine
Qiita
- LibreSSL の意義 - Qiita
- LibreSSL の現在(2018年2月時点) - Qiita
- libtls で TLS 通信プログラミング(クライアント編) - Qiita
- LibreSSL を Visual Studio でビルドする - Qiita
Wikipedia
- LibreSSL - Wikipedia
- LibreSSL - Wikipedia, the free encyclopedia
- libressl-portable/portable: LibreSSL Portable itself. This includes the build scaffold and compatibility layer that builds portable LibreSSL from the OpenBSD source code.
- Index of /pub/OpenBSD/LibreSSL/
- libressl-portable/openbsd: Source code pulled from OpenBSD for LibreSSL - this includes most of the library and supporting code. The place to contribute to this code is via the OpenBSD CVS tree.
- 第55回 LibreSSL 2.4.0登場:BSD界隈四方山話|gihyo.jp … 技術評論社
- OpenSSLに代わるLibreSSL, 最初の30日間
- 「LibreSSL 2.6.4」リリース | Think IT(シンクイット)
- LibreSSL ‐ 通信用語の基礎知識
ルート証明書
Mozilla
Mozilla
Mozilla Security Blog
- January 2018 CA Communication | Mozilla Security Blog
- Distrust of Symantec TLS Certificates | Mozilla Security Blog
- Root Store Policy Updated | Mozilla Security Blog
- Update on the Distrust of Symantec TLS Certificates | Mozilla Security Blog
- 【翻訳】CA Certificate Policy バージョン 2.4 リリース - Mozilla Security Blog 日本語版
- September 2018 CA Communication | Mozilla Security Blog
- Why Does Mozilla Maintain Our Own Root Certificate Store? | Mozilla Security Blog
- Mozilla’s Common CA Database (CCADB) promotes Transparency and Collaboration | Mozilla Security Blog
MozillaWiki
- CA:Information checklist - MozillaWiki
- CA/BR Audit Guidance - MozillaWiki
- NSS:Root certs - MozillaWiki
- CA/Certificate Change Requests - MozillaWiki
- Network Security Services | MDN
- mozilla mozilla/security/nss/lib/ckfw/builtins/certdata.txt
- CA Certificate Policy バージョン 2.4 リリース – mozilla-japan – Medium
- Let's Encrypt Root to be Trusted by Mozilla - Let's Encrypt - Free SSL/TLS Certificates
- Mozilla CA Policy 2.4 Published | Hacking for Christ
- Mozilla Root Store Policy — Mozilla
- pkipolicy/policy.md at 2.4 · mozilla/pkipolicy
- Mozilla Root Store Policy — Mozilla
FreeBSD
- FreeBSDのSSLのルート証明書のパッケージ ca_root_nss
- /pub/FreeBSD/ports/amd64/packages-8.4-release/security/ のインデックス
Japan GPKI
- 政府認証基盤(GPKI)のホームページ
- 地方公共団体組織認証基盤(LGPKI)
- 高木浩光@自宅の日記 - 民間ブランドが行政機関には無益なのならVeriSign独占化を避けるべき, LGPKI Application CAに将来はあるのか
- Rockridgeさんのツイート: "Firefox 54で政府認証基盤(GPKI)のルート証明書は削除されたが、政府認証基盤アプリケーション認証局2ルート証明書は現在も追加に向けた手続が進行中だ。参照:https://t.co/a9yqP3Hocz / “1268…” https://t.co/6AePdDrowg"
- Rockridgeさんのツイート: "Mozillaは、政府認証基盤アプリケーション認証局2ルート証明書を受け入れるかどうか審査中だが、終盤になって雲行きが怪しくなってきた。いったん要請を拒絶して、手続をやり直すべきとの意見が出てきている。 / “Japan GPK…” https://t.co/EwwapLY2Jo"
- Makoto Kato ︎︎さんのツイート: ""The Japanese Government PKI may submit a newly generated root and key-pair for inclusion, and this submission can be made using the existing bug" https://t.co/8wmmF2EaHa"
- Makoto Kato ︎︎さんのツイート: "新しいCA Root作れば通りそうではあるので、担当の方と予算次第ですかね。今後は"
- Shigeki Ohtsuさんのツイート: "GPKIは、やっぱりMozillaで却下かぁ。https://t.co/6FF31r6Pzk この返事が致命的だったような気がする。素直にlintエラーの証明書を直ちに全部revokeすると返事していれば状況変わったかもしれないのに。"
- Shigeki Ohtsuさんのツイート: "Japan GPKI Root Renewal Request https://t.co/JPTlbVx0Xc 5年前にルート証明書署名、4年前にアセスメント、色々問題有り2017年1月に修正完了。その間ずっと証明書を発行だけど規約不適合でまだ有効な証明書多数。いっその事最初からやり直しにすべき(今ここ)"
- Shigeki Ohtsuさんのツイート: "GPKI側から2017以前の証明書をrevokeさせるから判断変えてもらえるかと。さっさと失効させてから交渉したほうがいいのにと思うのは私だけ? https://t.co/NfupIEQTxM"
- Makoto Kato ︎︎さんのツイート: "LGPKIのルート証明書がRoot 4になってるのを今日知った。というか(もうかかわってないけど)CRYPTRECからの質問状で「Mozillaに申請中」って嘘の返答を言ってたような団体なので、LGPKIは信用してないけどね"
- Makoto Kato ︎︎さんのツイート: "CA Browser Forum的にはWebTrust for CAじゃなくて、WebTrust for BRがほぼ必須になるんだけど、for CAとってますって書いてる自体、ホントLGPKIは分かってない"
- Makoto Kato ︎︎さんのツイート: "bugzillaみればわかるとは思うけど、(今もめてる)GPKIでさえfor CAレベルからfor BRレベルにするのに1年以上かかったので、まぁね。。。"
- Makoto Kato ︎︎さんのツイート: "CAプログラムはどういう団体であっても平等であるべきだよねと。どこの会社のCAプログラムとは言わないけどね"
- Makoto Kato ︎︎さんのツイート: "MozillaのCAプログラム通らないってことはAndroidにGPKIのルートCAは入らないってことだからね。わかってない人おおそうだけど。Googleがポリシー変えれば別だけど"
- GPKIよ、おととい来やがれ!(タイトルで煽るスタイル) - yumetodoの旅とプログラミングとかの記録
- スラきちさんのツイート: "寝る前にGPKI@Mozillaのその後を見たが、「あなたCA要件4.9.1.1(9)満たせないって分かったから結論代わりません」と見事に蹴られてる。 該当要件は「4.9.1.1 CAは以下の状態になった証明書を24時間以内に失効させなければならない…(9)CP/CPS等に従わなくなった証明書」 行政庁で24時間は無理ゲー…?"
- dynamis (でゅなみす)さんのツイート: "GPKI終わったのか。 担当者が悪いと言うよりは認証局としての最低要件を満たせるだけの(英語力、セキュリティ意識、業界動向の理解及び権限を持つ)スタッフを確保できない運用計画と予算で立ち上げた計画側の責任でしょうね。 https://t.co/J48F8sYh3w"
- dynamis (でゅなみす)さんのツイート: "そう言えばHTTPサイトで証明書配ってるお笑い認証局も医療従事者向けに運用されてるな。 それに比べればGPKIはまだマシかも知れんが、今の日本のエンジニア軽視姿勢でまともな認証局運用できる日はこなさそうですね。"
- Makoto Kato ︎︎さんのツイート: "外野向けに見える部分で色々GPKIのこと書かれているのは色々読んだけど、まぁ自分が担当者だったとしたらみんなCAプログラムパスできる自信あるのかなぁと"
- Makoto Kato ︎︎さんのツイート: "個人的に言えば、担当者がというよりも予算ですね、あれの場合。なので担当者の問題というより政治の問題かと思う。特に国なので透明性が必要だからプロセスに時間もかかる"
- Makoto Kato ︎︎さんのツイート: "なので総務省はWoTとかIoTとかに予算割り振る前にe-GOVに対してちゃんと予算振り分けて欲しかったというのが、内情を知る人間としてのGPKI の総括ですね"
- Makoto Kato ︎︎さんのツイート: "行政管理局がもしまだやる気であれば、Application Root 3作って、WebTrust for BR通してって話になるし、また入札必要だろうからまぁ1年コースかと"
- Makoto Kato ︎︎さんのツイート: "https://t.co/Vzbdv3znvY 記者さんってなんでWindowsな視点しかないんだろ。Mobileの視点がないと見え方が違うと思うんだ"
- Firefoxが政府認証基盤のルート証明書を認めず、「ユーザーのセキュリティを害する」 | 日経 xTECH(クロステック)
- KIMATA RobertHisasiさんのツイート: "MozillaがGPKIを認めなかった件。調べれば調べるほど「Microsoftは認めんなよ」感が"
- Makoto Kato ︎︎さんのツイート: "GPKIについてみんな勘違いしているのは、昔 GPKI Application Root 1はちゃんとMozilla CA RootとしてApprovalされた (そのときの基準では)。その後SHA256なGPKI Application Root 2で置き換えるためにあのBugがあって、それがWontfixになったってこと"
- Makoto Kato ︎︎さんのツイート: "ここ数年、CAに関してはとんでもないインシデントが多かったために許可基準が非常に上がってる"
- Makoto Kato ︎︎さんのツイート: "MozillaのCA Policyのはバージョン上がるために基準が上がってってるんだけど、Microsoftは政府案件だといろいろ違うらしいってことがあるっぽくて、まぁ日本マイクロソフトの社長室かパブセクかはしらないけど、まぁ彼らが絡むとセキュアなんてないのではって思ってる"
- Rockridgeさんのツイート: "Mozillaは、米国時間の2018年2月27日、政府認証基盤(GPKI)アプリケーション認証局2ルート証明書を受け入れないことを決めた。参照:https://t.co/vwlvWwY553 / “870185 - Add Re…” https://t.co/PDYdOhA7OK"
- Makoto Kato ︎︎さんはTwitterを使っています 「GPKIはああだけど、LGPKIがどうにかならないのもだめ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「ああいう、総務省なりいろんな省庁で持ってる (彼らも専門家でもない) 案件をデジタル庁へ移管して (or そもそも廃止) とかしてるとは思うけど、まぁ大変そうですね」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「LGPKIはとある会議の回答で嘘返答してたくらいの組織だから、まぁ自分としてはなくすなり、デ庁へ移管すべきと思ってるけどね」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「EVだってOVだって、設計思想は同意するのだけど、結局まともに運用されなかったから、もうWebブラウザとして必要性がなくなったわけで、GPKIも2000年だったらちゃんと立て直すべきだけど、2020年だったら、Let's Encryptでいいじゃんって思うだけ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「認証局が駄目になったのは、大概その監査をするはずの監査法人が適当な報告書だしてるだけだからじゃないのと感じてる。日本のGPKIも韓国のGPKIもそんな感じ。韓国の事例ひどいけど (他のドメインの証明書発行してて失効してなかった)」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「認証局に関しては、昔JPNICでDavid W. Chadwick先生の講演聞いたときに、まぁ最終的にはGiant Tech Companyが強い権限持ってしまうのではと思ったけど、予想通りだなぁと https://t.co/xTdxheMp2Q」 / Twitter
- won't fix: David W. Chadwick先生のPKIの講演を聞いてきた
korea GPKI
- Makoto Kato ︎︎さんのツイート: "みなさん知らないかもしれないけど、お隣の韓国のGPKIもRejectされてるからな https://t.co/SP67i880hG https://t.co/2Wm1XvRxJr"
- Makoto Kato ︎︎さんのツイート: "韓国のGPKI、*.or.krを発行してたりして面白すぎなんですが、MSやChrome的にはなんのお咎めがないんですよねー https://t.co/mH0VpgmlZR"
Twitter
- Rockridgeさんのツイート: "Mozillaのルートストアポリシーがバージョン2.5に改訂され、認証機関はネットワークのセキュリティに関する業界のベストプラクティスを実践することが求められるようになった。 / “Mozilla Releases Versio…” https://t.co/umzXruNNlY"
- Mozilla Releases Version 2.5 of Root Store Policy | Mozilla Security Blog
- Rockridgeさんのツイート: "Let’s Encryptのルートキー(ISRG Root X1)がFirefox 50においてデフォルトで信頼されることになる見込み。既存の認証局であるIdenTrustと提携することで早期に実現した。参照:… https://t.co/gsLgM6iXRG"
- Jxckさんのツイート: "Firefox50 に先行して Let's Encrypt 自身の証明書が入るらしい。でもルートとして正式に認定されてない証明書入れるのってどうなんだろう。。 / “Let's Encrypt Root to be Trust…” https://t.co/SDEaymqosm"
- Rockridgeさんのツイート: "Fx57:ルートCAモジュールの読み込みが非同期化された。起動速度の向上が期待できる。参照:https://t.co/ePDJWKjLST / “1372656 - load loadable roots on a backgr…” https://t.co/6qf6ul3j0P"
- the root CA module now loads asynchronously - Google グループ
- Rockridgeさんのツイート: "DigiCertがSymantecの認証機関ビジネスを買収したことで自動的に信用が回復することはなく、Mozillaが示す各種懸念事項に解決策を示す必要があるという話。 / “Statement on DigiCert’s Pr…” https://t.co/GHyUJDKv7u"
- Rockridgeさんのツイート: "Fx59:セコム電子認証サービスのルート証明書が削除された。Fx58で無効化済み。参照:https://t.co/Qzdr85qfxm https://t.co/4GCbSbwSax / “1410544 - Remove "S…” https://t.co/hmSrIm3Avi"
- Rockridgeさんのツイート: "「Firefox の 今後の信頼無効化措置 は Google Chrome と歩調を合わせており、GeoTrust、RapidSSL、Thawte、Verisign といったすべての Symantec ブランドに適用されます。」 https://t.co/CxvYlcqJ8l"
- Symantec から発行された証明書の信頼が近く失われます (影響あり) | Firefox サイト互換性情報
- Rockridgeさんのツイート: "Symantecから発行された証明書の信頼無効化措置は、Firefox Nightly 60で有効化されたが、Betaチャンネルへの投入については、Chromeの動向を見てから決める模様。 / “1442075 - Enforc…” https://t.co/JdDEcKKseM"
- Rockridgeさんのツイート: "Mozillaの調査によれば、Symantecから発行された証明書の信頼無効化措置により、現在、トップ100万サイトのうちの約1%で、接続が安全でない旨のメッセージが出て閲覧が一時的に遮断される状況となっている。 / “Dist…” https://t.co/UAJGQLjgJm"
- Distrust of Symantec TLS Certificates | Mozilla Security Blog
- Rockridgeさんのツイート: "Mozillaの調べによると、Symantecの証明書を排除した場合、上位1万のWebサイトでエラーが出るケースは、2018年2月23日時点では299件だったが、同年3月16日時点では86件にまで減少した。 / “TLS Can…” https://t.co/F1vYvkNJR9"
- Makoto Kato ︎︎さんのツイート: "Korean GPKIもなんかいろいろやらかしてる https://t.co/dLa69TsKdO https://t.co/IQrWNwChU9"
- Rockridgeさんのツイート: "Fx63:Mac版でもsecurity.enterprise_roots.enabledをtrueに設定すると、OS側で信頼されたルート証明書を利用できるようになった。 / “1300420 - macOS (Mac OS X)…” https://t.co/v3NLtXSyqq"
- Rockridgeさんのツイート: "Fx63:Nightlyチャンネルで、Symantecから発行されたすべての既存TLSサーバ証明書への信頼が取り消された。2018年10月23日にはリリース版でも同様の措置が執られる。参照:… https://t.co/297FL5Ltx5"
- Overview of WebTrust Services | Chartered Professional Accountants of Canada
- Principles and Criteria | Chartered Professional Accountants of Canada
- Baseline Requirements Documents - CAB Forum
- Symantec から発行された証明書の信頼が近く失われます (影響あり) | Firefox サイト互換性情報
- Mozilla、Symantec証明書の信頼を段階的に削除 ~具体的なスケジュールをアナウンス - 窓の杜
- 10月公開の「Firefox 63」、シマンテック発行の証明書を完全に無効化へ--モジラが警告 - ZDNet Japan
- 「Firefox 63」でSymantec発行のTLS証明書が無効に ~トップ100万サイトの3.5%に影響 - 窓の杜
MS
- Microsoft Trusted Root Program Requirements - TechNet Articles - United States (English) - TechNet Wiki
- Microsoft 信頼されたルート証明書プログラム:証明機関の監査要件
- より信頼できる証明書利用環境へ向けて~ Internet Explorer 11 SmartScreen 証明書評価 - 日本のセキュリティチーム - Site Home - TechNet Blogs
- Rockridgeさんのツイート: "2018年7月末、Let's Encryptのルート証明書がMicrosoftのルート証明書プログラムにおいて信頼されるに至った。既にGoogle/Apple/Mozilla/Oracle/Blackberryからは信頼済みだとい… https://t.co/XUWFTtfkHq"
- 幼女 @mine02c4@mstdn.jpさんのツイート: "理屈上はDNSのレスポンスを書き換えて画面を返す用のサーバーのIPにすれば警告画面表示はHTTPでできる。これは普通の話。 でもですね、相手は日本政府なんですよ。彼らには「Windowsに信頼されたルート認証局」というのを持っているので、TLS証明書を発行できる立場にいます。"
- ふたば@四葉技研さんのツイート: "政府による通信の監視で 通信速度が遅くなったらキレる"
- tkrさんのツイート: "政府であろうと改ざんされてないことの証明なんだから認証局持ってること悪用したらだめでしょ。。"
- Shigeki OhtsuさんはTwitterを使っています: 「Microsoftのルート証明書がMozillaに申請され最終レビュー段階に。Googleに続いてブラウザベンダが認証局を兼ねるとは。 / “Googleグループ” https://t.co/h3V9HC1sKd」 / Twitter
- Shigeki OhtsuさんはTwitterを使っています: 「Windowsには以前から当然入っていたけど、Mozillaに入れば ca-certificate に入るからAndroidやNodeでも使えるようになるのよね。」 / Twitter
- 2020年末に期限切れになるルート証明書。「削除しないで」とMicrosoft - PC Watch
Apple
- Root Certificate Program - Apple
Google
- Root Certificate Policy - The Chromium Projects
- Google Online Security Blog: Distrust of the Symantec PKI: Immediate action needed by site operators
- 旧Symantec系SSL/TLS証明書、3月15日以降順次、Google Chromeで失効 - INTERNET Watch
- Rockridgeさんのツイート: "Google Chromeの開発チームがSymantec(旧Verisign)の発行済みSSL証明書を段階的に排除する方針を表明。Extended Validation(EV)のステータスは無視され、Chrome 59から64まで… https://t.co/hC19kG6VAy"
- Google ChromeでSymantecが発行したSSL証明書の有効期限短縮やEVステータス無効化が提案される | スラド セキュリティ
- Symantec発行のSSL/TLS証明書、Google Chromeで段階的な期限短縮案 -INTERNET Watch
- Symantecが再びGoogleの信頼を失った件についてのメモ - Technically, technophobic.
- Google Developers Japan: Symantec の PKI の無効化について: 要対応確認
- GoogleとMozillaが独裁国家の認証するルート証明書をブロックすると発表 - GIGAZINE
- Google、自社向けのルート認証局「Google Trust Services」を開設 -INTERNET Watch
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ふと google のオレオレ証明感…とか思ったり(笑) (GTS = Google Trust Services) https://t.co/8iv3vUnTeR https://t.co/Q6JFizGu6g」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「googleの証明書には、130件の「サブジェクト代替名」が含まれていた。すごいな。 https://t.co/KNyVScqiE6」 / Twitter
Amazon
- Shigeki Ohtsuさんのツイート: "うわぁ、Amazon Root CAがの4種(RSA/ECC)がFirefoxに登録されるわ。EV発行も 可能だ。 現在無料のACMから本格的なAmazon認証局サービスの提供に向かうのか。強いなぁ。 / “NSS 3.28.1…” https://t.co/YZ0MlfZPUT"
- NSS 3.28.1 release notes - Mozilla | MDN
- Shigeki Ohtsuさんのツイート: "Amazon Trust Services という別会社がAmazon Root CAを運用するのね。 https://t.co/eVYDVS10L0"
- Amazon Trust Services LLC
- Wget - きまぐれ手記
- Certificate Authority Certificates
- JVNVU#99936709: Savitech 製 USB オーディオドライバがルート CA 証明書を許可なくインストールする問題
- 渋川よしきさんのツイート: "CertUtil.exe -viewstore ROOTで、信頼されたルート証明書一覧を取り込みたいのだけど、GUIウインドウが立ち上がってしまう"
- 渋川よしきさんのツイート: "-viewstoreじゃなくて-storeならコンソールに出るっぽいが・・・日本語か・・・"
- 渋川よしきさんのツイート: "CertUtil.exeで-storeで保存されている証明書類を書き出しても30個ぐらいしかない。Macだとシステムのルート証明書で176個ある。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ESETをはじめインターネット防御を謳うソフトは、自前ルート証明書をPCにインストールしてhttpsの中身を監視するんですよね。 万一ESET側がクラッカーの手に落ちると、安全なhttpsサーバ相手でも被害を受ける可能性が出るという…ESETを信用するか、httpsサーバを信用するか?というジレンマに(笑)… https://t.co/THV4HtvHkx"
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "GPKIは大変なことになってるけど、一方LGPKIはセコムすることになって、自治体にはインターネット側でも使いやすくなって朗報。 / “総合行政ネットワーク No. 185 1 第四次LGPKI移行の背景と その概要 第四次L…” https://t.co/36TNZprspT"
- LGWAN-H3003.pdf
- 自堕落な技術者の日記 : 最近の証明書の話題(1) 韓国政府PKIのマズいワイルドカード証明書発行 - livedoor Blog(ブログ)
- Kazuho Okuさんのツイート: "想定された挙動のはずです。例えばウェブブラウザは、ユーザ定義ルート証明書を検出した場合は HPKP を無視します… "
- Vさんのツイート: "ローカルで MITM やるのありえないと思うんだけど、そう思うの自分だけ?"
- Kazuho Okuさんのツイート: "アンチウイルス以外にもペアレンタルコントロール、コンプライアンス上の理由等によって通信のモニタリングが求められるケースはあるし、それはエンドポイント内でAPIを提供していく方向だと理解してる。現状のMITMはプロトコル実装の品質と硬直化の問題があるのでry"
- Android7.1以前でLet's Encrypt証明書のサイトが見られなくなる | おそらくはそれさえも平凡な日々
- 古いAndroidスマホで2021年9月以降、一部サイトが閲覧不能に - PC Watch
- GPKIよ、おととい来やがれ!(タイトルで煽るスタイル) - yumetodoの旅とプログラミングとかの記録
- Google・Mozilla・Apple・Microsoftが「政府が国民にインストールを強制したルート証明書」をブロック - GIGAZINE
- 数百万のHTTPSサイトが利用するLet’s Encryptのルート証明書が期限切れ間近、古いデバイスやOSは要注意 | TechCrunch Japan
- Let's Encryptの証明書の期限切れにより一部のMacやAndroidがWebサイトに接続できない問題が発生中 - ソフトアンテナブログ
- YurikaさんはTwitterを使っています 「先日のLet's EncryptのCA証明書有効期限切れで、openSSLのエラーが出た話。 物語が面白すぎる でもこれは有効期限を超えたクロスルートという掟破りのために起きた? https://t.co/lojoqfKHS4」 / Twitter
- Let's EncryptのルートCA期限切れで OpenSSL 1.0.2が思わぬ事故を起こす件 | ワルブリックス株式会社
- YurikaさんはTwitterを使っています 「単に旧Androidはルートの有効期限チェックしない動作を取ってたけどそれ以外は実装次第だからエラーになってもおかしくないってことに終結なのかな」 / Twitter
- YurikaさんはTwitterを使っています 「そもそも、証文は(これまでは)本人いきてる間だけで、死んでも使えるってなかった。 しかし死後も使える、が、前提とならば…? 話がややこしすぎて何が問題なのか難しいな…」 / Twitter
クロスルート証明書
- Kazuho Okuさんのツイート: "新しいルート証明書が普及するまで使われるクロスルート証明書では? より長い鍵長のルート証明書へ移行する際にも使われてきた伝統ある技術かと / “自堕落な技術者の日記 : Amazon AWSの認証局が少し怪しい件 - lived…” https://t.co/LvNTjMaIIo"
- 自堕落な技術者の日記 : Amazon AWSの認証局が少し怪しい件 - livedoor Blog(ブログ)
- [EV SSL] クロスルートとは何ですか。 | SSL・電子証明書ならGMOグローバルサイン
- クロスルート証明書について | Symantec
- クロスルート設定用証明書の設定について、どのような対応が必要でしょうか? | Symantec
- SSLの中間証明書・クロスルート方式について | cloudpack.media
- SureServer[2048bit] 用クロスルート方式について|Cybertrust.ne.jp
- ルート・中間CA証明書のダウンロード|Cybertrust.ne.jp
- クロスルート証明書って何? - [2013/02/11]
- 今更!理解するクロスルート証明書 - 農業生活を目指すシステムエンジニア
- クロスルート設定用証明書ダウンロード|SSLサーバ証明書 ジオトラスト
- シマンテックSSL証明書におけるクロスルート証明書についてのご注意 « - ValueSSL
- オレオレクロスルート証明書 - Qiita
コードサイニング証明書
Twitter
@openlibsys
- hiyohiyoさんのツイート: "コードサイニング証明書更新しました。 あと2年間はグローバルサインな証明書が使えます。 更なる更新はできないので、猶予期間中に移行先を決めないと・・・。 法人格がないとホント不自由な世の中になってしまいました。EVコードサイニング証明書欲しい・・・。"
- hiyohiyoさんのツイート: "SHA-1 なコードサイニング証明書を取得するのも最後だろうなぁ・・・。 証明書の有効期限である2021/3/3以降にリリースするソフトは、7以降対応かぁ。2年後ぐらいに XP/Vista 向け最終版リリースかな。"
- hiyohiyoさんのツイート: "コードサイニング証明書をUSB Tokenに格納することが必須となってしまい、コード署名するためにパスワードの入力が必要となってしまった・・・。 リリース作業が煩雑になってしまう。… "
- hiyohiyoさんのツイート: "とりあえず、SHA-1とSHA-2両方の証明書でサインすることに成功。SHA-2な証明書でハッシュアルゴリズムをsha1とsha256の両方でやろうと思ったのですがどういうわけか失敗するのでsha256だけで実施。 Microsoft製exe/dllも2パターンでしか署名されていないので良いとするか。"
- hiyohiyoさんのツイート: "SHA1とSHA2の証明書を明示的に選択するためには、/i を使いました。 for SHA-1 signtool.exe sign /v /a /n "Name" /tr https://t.co/PvnwuWmgfn /i "GlobalSign CodeSigning CA - G3" %1 for SHA-2 signtool sign /v /a /n "Name" /tr https://t.co/NaFzR2n2nU /fd sha256 /td sha256 /as %1"
- hiyohiyoさんのツイート: "新しいコードサイニング証明書情報を追記しました。 https://t.co/riy9SxVZV0 次に公開するソフトから新しいコードサイニング証明書になります。"
- デジタル署名 – Crystal Dew World
- hiyohiyoさんのツイート: "EV証明書ではないので、しばらくはこんな感じで Windows Defender SmartScreen が発動しちゃいますorz… "
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsでコード署名をしても、すぐには警告が消えるわけではないが、署名の実績が溜まることで、新しいビルドでも警告が消えるようになるらしい。 これなら、コード署名を入れる価値がありそうだな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "signtoolでオレオレ署名をしてみたが、サインは末尾に付与される様子。 ビルドしたexeに追加データを付与しても、問題なく署名可能だった。(PEヘッダ・セクションを真面目に解析していない?) また、オレオレ署名でもタイムスタンプサーバに https://t.co/wbOzVI25sJ が使えた。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今、コード署名取得に必要な DUNS番号を申請中。 コード署名を付ければ、しばらくして(コード署名の)評価値が上がってきて、新リリースでも誤検出されなくなる…はず。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "DUNS番号を無事取得したので、コード署名をsslstore(米国)で取得中だが、購入後にcomodoへの登録内容アップロードで、Internal Server error が起きるぞ…やむなく英語チャット中。(現地時間は超早朝のはずだが…)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "無事通過。あとはコモドからの電話確認だけになった。 ちなみに英語チャットで聞いた範囲では、コモドの電話確認は自動電話で番号を一方的に伝え、その番号をメールで返信する、というものらしい。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "DUNS番号がコモド側の使うDBから見えないらしい…数日待ってくれとのこと。 東京商工リサーチの登録からデータが伝搬する経路に、何らかのバッチ処理とか人手とかが介在しているのかしらん?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "sslstore(米国, thesslstore)だと、コード署名(comodo)3年間で248ドルだった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コモドからの検証用電話コールバック、意外と日本語の選択肢もあったが、「あなたの確認暗証番号は、です。XXXXXX」というSVO順の謎日本語だった。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "無事、コモドから、"Your Code Signing Certificate has been issued." というメールが来た。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "無事、SignTool でインストーラにコード署名完了! (これで数ヶ月後に、アンチウイルス系のヒューリスティック誤検出が無くなると良いのだが)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "(いくつかの発行ベンダが書いている資料と違い)、XP/Vistaでは、sha256コード署名が(非ドライバでも)上手く認識できないようだ。 とはいえ、コード署名はアンチウイルス誤検出に効果があれば十分なので、sha256を使う予定。(副署名をsha256にするhackもあるようだが)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "取得したコード署名、今日のお昼から、実践投入(某社で使われているIPMsg特別版に適用)する予定。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、コード署名をWindows証明書コンテナにインストールすると、exe/dll(SignTool)以外に、Office系全般とAdobe Reader(Acrobatでなくとも)でも署名可能に。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "これにsymantec/comodo等のタイムサーバを加えれば、法人向けに領収書などの電子化に使えてもいいはずだが、日本ではそのあたりは総務省管轄の家元商売になっていて、そこの専用の枠組みを使う必要がある、と。 https://t.co/U4Bg2tQAcl https://t.co/ESrYms2BGq"
- 認定タイムスタンプを利用する事業者に関する登録制度 | JADAC
- 申請料金 | 申請方法 | タイムビジネス認定センター
- Shirouzu Hiroaki(白水啓章)さんのツイート: "まあ、SSL証明書も家元商売と言えなくもないが、一応、競争原理は働いているように見える。(コード署名はニーズが少ないせいか、海外と国内で3~5倍価格が違うとか、大した審査でもないのに年2-6万とか家元商売と化している感あり)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "IP Messenger v4.94リリース。 Windowsコード署名を付与(今後アンチウイルスの誤検出が徐々に減るはず)、ログビューア改良等。 https://t.co/wDjue1IdtK #ipmsg"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SmartScreenにブロックされないことを確認。 (念のため、kasperskyとesetにホワイトリスト登録実施済)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名、Firefoxはsha1のみ、Chromeは主sha1 + 副sha2の二重署名。 IPMsgのsha2のみ署名はちょっと勇み足だったかな…XP/Vistaだと、ブラウザから直接実行できず、保存してから実行する必要。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "sha1 + sha2 に変更した場合、SmartScreenでsha2でのレピュテーションは引き継がれるのだろうか?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "一方で、サポート切れとなっている Vista/XP対応を残すのも如何なものか、という気もしたり。 サイトアクセスから推測すると、XP比率は1.0~1.2%、Vistaは0.2%。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "インストーラ等にコード署名を付与を始めて1ヵ月経過。そろそろ、カスペルスキー等へのホワイトリスト登録はしなくても良いかな。 (SmartScreenだと、初めての署名から数日で充分なレピュテーションを獲得した様子)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ノートンさん、ホワイトリスト申請制度を止めてしまったんだよなぁ… (カスペルスキーとESETは制度があるので、バージョンアップのたびに申請している)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名が無くなると、(UAC表示が変わる以前に)、リリースの度に、SmartScreen/アンチウイルス系に誤検出される羽目になりやすい。… "
- 窓の杜さんのツイート: "コードサイニング証明書がなくなることの影響として、UAC ダイアログの表示が変わります( digicert https://t.co/GGRZaJ56se より) https://t.co/Mf7aY5NbrJ… "
- 「Notepad++」v7.6.4が公開 ~EUのバグ報奨金プログラムで発見された脆弱性を修正 - 窓の杜
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名用メールアドレスに spamが届き始めた。 世の多くの例に倣って、コード署名にメールアドレスは付与しない方が良かったかな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、Explorerの電子署名のプロパティ。 MSはメールアドレスを付与していない。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名を付与した自前インストーラに、事後に何か情報を付与したい場合、ファイル名にベリファイ付き情報を付加するくらいしか、有効な方法は無さそう。"
- ゆきさんのツイート: "ACME End User Client and Code Signing Certificates https://t.co/WR6sLBVYnX ACMEでクライアント証明書やコード署名証明書やコードサイニング証明書を発行する提案仕様 #yuki_id"
- draft-moriarty-acme-client-01 - ACME Client Extension
- Kazuho OkuさんはTwitterを使っています 「コード署名の検証手法としては、そもそも不適です。CRLや、その発展技術であるCRLite, CRLSet の使用がより適しているかと思います。」 / Twitter
- コードサイニング証明書を個人にも発行!! – Crystal Dew Blog
- デジタル署名のまとめ(Vista x64対応) – Crystal Dew Blog
- 個人ソフト作者にとってのデジタル署名とは
- 個人ソフト作者がコモドジャパンでコードサイニング証明書を取ってみた
- 最も安い?コード署名証明書の取得(&使い方)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今回のコード署名証明書取得では(3年前と違い)、openssl で CSR を作成する必要があった。 https://t.co/aGp5h8a5mN」 / Twitter
- [CertCentral] コードサイニング証明書のCSR 生成/PKCS#12ファイルの生成 (openssl)
- SHIROUZU Personal Log(2018-10-15)
- コードサイニング証明書を買う前に (山崎はるかのメモ)
- 個人事業主として EV コードサイニング証明書を取得してみた | エレン・イーストのブログ
- 個人でコードサイニング証明書を取得してみた | エレン・イーストのブログ
- 「WinRAR」のWindows 10へのインストールが一時的に不可能な状態に - GIGAZINE
- Linux Foundation Sigstoreがコード署名の暗号化を目指す
証明書失効
OCSP
- Kazuho Okuさんのツイート: "単にOCSPレスポンダ内部でのバリデーションがクロスルートに対応してなかったんじゃないの? > 「クロスルート証明書を失効させるつもりが、同じ subject で同じ鍵である Root(R1) の証明書の方を失効扱いにしてしまった」 https://t.co/iQbrPncS5I"
- Kazuho Okuさんのツイート: "証明書チェインのクロスルート検証がうまく動かない問題昔からいろいろあるし、CAが運用するOCSPレスポンダみたいな更新が難しいソフトにその問題が残っててもちっとも意外じゃない"
- Kazuho Okuさんのツイート: "証明書チェインを検証するために辿るキーはDNとpublic keyだけなので、状況とも符合する"
- Kazuho Okuさんのツイート: "たとえばopensslの1.0.1系列を使ったocspレスポンダを、古い中間CAが登録された状態で動かしてたら当該の挙動になるんじゃないかなぁ"
- 【翻訳】Firefox における OCSP Stapling - Mozilla Security Blog 日本語版
- 【翻訳】証明書失効確認の改善: OCSP Must-Staple と Short-lived 証明書 - Mozilla Security Blog 日本語版
- Online Certificate Status Protocol - Wikipedia
- Online Certificate Status Protocol - OCSP
- https://tools.ietf.org/rfc/rfc6277.txt
- https://tools.ietf.org/rfc/rfc2560.txt
- https://tools.ietf.org/rfc/rfc6960.txt
- Rockridgeさんのツイート: "Fx55:Nightlyチャンネルで、OCSPレスポンスを取得する対象をEV証明書に限定。また、EV証明書についてもタイムアウトの設定を2秒から1秒に短縮した。参照:https://t.co/S2rMKSy6bF / “1366…” https://t.co/uumZYZAfk4"
- Rockridgeさんのツイート: "Fx57:Nightlyチャンネルで、OCSPレスポンスを取得する対象にDV証明書を再度追加した。 / “1390688 - re-enable OCSP fetching for DV certificates in Nigh…” https://t.co/OkyKbQxtnH"
- モジラ、グーグルと同様の証明書失効チェック方法を採用へ - ZDNet Japan
- Google Chrome、SSL証明書のオンライン失効チェックを無効に - ITmedia エンタープライズ
- CA:RevocationPlan - MozillaWiki
- 証明書失効リスト - Wikipedia
- CRLSets - The Chromium Projects
- Rockridgeさんのツイート: "Fx50:証明書のブロックリスト(OneCRL)にKintoを用いる仕組みがリリースチャンネルでも有効化された。 / “1265008 – Enable the Kinto.js OneCRL client for releas…” https://t.co/RgkgoFeJEQ"
- 【翻訳】中間証明書の失効確認: OneCRL の導入 - Mozilla Security Blog 日本語版
- GodaddyのSSL証明書にドメイン認証の脆弱性があり8850件の証明書が失効された | 徳丸浩の日記
- 障害報告:サーバ証明書が意図せずに失効されたことによるJPNIC Webの閲覧不可について(第一報) - JPNIC
- サーバ証明書が意図せずに失効されたことによるJPNIC Webの閲覧不可についてのご報告 - JPNIC
- Rockridgeさんのツイート: "Fx52:証明書のブロックリスト(OneCRL)の対象となるのは、TLSサーバ証明書のみとなった。Thunderbirdが扱うS/MIMEは対象外となる。 / “1312827 – make OneCRL only apply …” https://t.co/yqCnhUoUUa"
- Kazuho Okuさんのツイート: "なんか、割と皆、サーバ証明書かルート証明書の失効問題だと考えてるみたいだけど、中間証明書やコードサイニング証明書がらみの問題でないという判断の根拠はあるのかしら"
- Kazuho Okuさんのツイート: "テスト環境ではトラストチェインの検証時に、テストクライアントにあるより新しい中間証明書が自動的に使われていたが運用環境ではそれがなかった、みたいな可能性もありうると思うけど"
- Shigeki Ohtsuさんのツイート: "めちゃ議論が白熱してたから追っかけられなかったけど結局DarkMatterのルートを入れず中間証明書も失効させることになったのか。Mozillaは漢だ。 / “Mozillaは悪名漂うUAEのDarkMatterをHTTPSの証明提供者として否認 | TechCrunch Japan” https://t.co/geOGUkAs3N"
- Mozillaは悪名漂うUAEのDarkMatterをHTTPSの証明提供者として否認 | TechCrunch Japan
- Shigeki OhtsuさんはTwitterを使っています: 「Googleのトーゴドメイン(https://t.co/AeIs0BgWED)の証明書がまた不正発行されてた(2年ぶり2回目)。CRLで失効されているけどOCSPまだGoodだ。レジストラがまたやられたか。 https://t.co/8QIIHeZahZ」 / Twitter
- ゆきさんはTwitterを使っています: 「MozillaとGoogleは、カザフスタン政府により中間者攻撃を可能とする政府発行の証明書をブロックすると https://t.co/A5ZcXZwQdg」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「証明書の期限なんて短くていいんだよ。7日とか、CRLやOCSPの有効期限並に短くすれば、CRLとかOCSPとかややこしい仕組みが不要になる。そこまでどう持っていくか、の問題」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、コード署名は「実行時の期限切れ」は問題としないポリシーだな。(少なくともWindowsでは) これ、CRL入りすると実行時でもエラーになるのかな?」 / Twitter
証明書ブロック
Symantec
Google
- Symantec、同社発行のSSL/TLS証明書を信頼してもらうための対策をGoogleに提案 | スラド セキュリティ
- Chromeがシマンテックの古い証明書を信頼しなくなる今後のスケジュール(メモ) - ASnoKaze blog
- Google Developers Japan: Chrome が Symantec の証明書に対する信頼を破棄する予定について
- Google、Symantec証明書に対する信頼を段階的に削減。「Google Chrome 70」で完全削除 - 窓の杜
- Rockridgeさんのツイート: "2018年10月23日からの週にリリース予定のChrome 70では、Symantec発行のルート証明書と結びつけられたほとんどすべての証明書が失効することになるという。 / “Google Online Security Bl…” https://t.co/tN62wZRVwT"
Mozilla
- Mozilla、Symantecが発行した証明書の信頼性回復に関する議論に参戦 | スラド IT
- Rockridgeさんのツイート: "FirefoxがSymantec(旧Verisign)の発行済みSSL証明書を段階的に排除していくスケジュールは、Chromeとおおむね一致する。リリース日の違いから数週間ずれる程度。 / “Final Decision by …” https://t.co/uHXwTO39Ey"
- Rockridgeさんのツイート: "2018年5月のFirefox 60以降、Symantec(旧Verisign)によって2016年6月1日以前に発効されたTLS証明書をWebサイトが使用する場合、信頼できない接続である旨が表示される。2018年10月のFiref… https://t.co/R3D7FNtw8o"
- Rockridgeさんのツイート: "Fx60:Symantec(旧Verisign)によって2016年6月1日以前に発効されたTLS証明書を失効させるが、互換性問題に備えて復旧用の設定を実装する模様。参照:https://t.co/6em1Yh9xSW / “14…” https://t.co/LSTU24RdmQ"
- Shigeki Ohtsuさんのツイート: "トップ100万ドメインの1%強がまだSymantec証明書を利用しているので、MozillaがSymantec Distrustを1リリース延期するとのこと / “Delaying Further Symantec TLS Ce…” https://t.co/IWhB9OclEJ"
- Delaying Further Symantec TLS Certificate Distrust | Mozilla Security Blog
- 信頼性の低いシマンテック証明書の置き換えが予想以上に遅いとMozillaが嘆き - GIGAZINE
- Symantec系列CAの証明書がエラーになったりするのは少なくとも「2017年8月8日」からではないっぽい - Technically, technophobic.
- Rockridgeさんのツイート: "2017年8月2日、Symantecが米DigiCert社にWebsite Securityおよび関連するPKIソリューション事業を売却すると発表した。Symantecは対価として約9億5000万ドルとDigiCertの株式の約3… https://t.co/X8Bu0SKLUp"
- Shigeki Ohtsuさんのツイート: "シマンテックがPKIビジネスをDegiCertに売却しちゃった。 / “DigiCert to Acquire Symantec's Website Security Business” https://t.co/aT7fOLoRla"
- DigiCert to Acquire Symantec's Website Security Business
- Shigeki Ohtsuさんのツイート: "Symantecはシェア3位の14%, DigiCertは6位の2.2%。合わせても16.2%の3位のまま。独禁的にも問題ないのか。 / “Usage Statistics and Market Share of SSL Cer…” https://t.co/Z0M4zzS05s"
- そのSSL/TLS証明書は大丈夫? Google Chromeからhttpsサイトとして信頼してもらえなくなる場合も!? - INTERNET Watch
- 旧SymantecのSSL/TLS証明書問題、DigiCertが対応ほぼ完了宣言、次はいよいよIoTセキュリティへ前進 - INTERNET Watch
WoSign/StartCom
Mozilla
- Rockridgeさんのツイート: "2016年10月21日以降に発行されたデジタル証明書に関し、StartComおよびWoSignが発行したものは、Mozillaのルート証明書ストアにおいて信頼されない取扱いとなることが決まった。参照:… https://t.co/OfjasBepmH"
- Shigeki Ohtsuさんのツイート: "Mozillaからの WoSign/StarCom へのペナルティ(6/21以降に発行された証明書は不正と判定し、現行のrootCAを将来的に削除する)が正式に決まりました。 / “Distrusting New WoSign …” https://t.co/Y83wWhfPYa"
- Distrusting New WoSign and StartCom Certificates | Mozilla Security Blog
- Shigeki Ohtsuさんのツイート: "WoSignからのMozillaの決定を受け入れるとのアナウンス。なんと有効な中間証明書を 1つ持つらしい。2017年6月から再申請をするとのこと。中国国内で50%のシェア持ってるのか。 / “Announcement abou…” https://t.co/62JBl9xk4h"
- Announcement about Mozilla Action-WoSign SSL Certificates!
- Rockridgeさんのツイート: "MozillaがWoSign/StartComのデジタル証明書に関する対策を発表。2016年10月21日以降に発行されたものにつき信頼しない措置は、Firefox 51から適用。将来的にWoSign/StartComのルート証明書… https://t.co/qOFfgGA2hv"
- 【翻訳】WoSign と StartCom による今後の証明書は拒否します - Mozilla Security Blog 日本語版
- Rockridgeさんのツイート: "2018年1月リリース予定のFirefox 58で、WoSign/StartCom発行のルート証明書はMozillaのルート証明書ストアから排除される。 / “Removing Disabled WoSign and Start…” https://t.co/qH9fJNE8mf"
- WoSign/StartComのルート証明書が「Firefox 58」から削除 - 窓の杜
Google
- Google、Chrome 61以降でWoSignの証明書をブロックへ | スラド セキュリティ
MS
- マイクロソフト、不正が指摘されていた中国CAの証明書を無効に - ZDNet Japan
- Makoto Kato ︎︎さんのツイート: "はてなってRaidSSL使ってるから、あれChromeのCanaryとかFirefox Nightlyだともう無効な証明書として認識されちゃってて、せっかく常時HTTPS化したけどそもそもアクセスできなくなってるね。。。"
- Makoto Kato ︎︎さんのツイート: "*.hatelabo.jpどうするんでしょ、あれ。ずっと証明書直さないけど"
- IE11とEdgeでもついにSHA-1証明書使用サイトをブロックへ | スラド セキュリティ
EV証明書
- Extended Validation Certificate - Wikipedia, the free encyclopedia
- Extended Validation 証明書 - Wikipedia
- メモ:EV証明書でブラウザのURLバーを緑色にするのもうやめない?という話 - Technically, technophobic.
- Rockridgeさんのツイート: "EV証明書の取扱いについて熱心な議論が交わされている。どうやらMozillaの開発者たちは、アドレスバーの表示について、EV証明書を特別扱いしない方向に持っていきたいらしい。 / “On the value of EV” https://t.co/xmYbGb2DT2"
- Rockridgeさんのツイート: "Fx63:DocuSignのルート証明書はEV SSL証明書として扱わない。 / “1476473 - Disable EV treatment for DocuSign roots” https://t.co/V0b92QmC0t"
- 「Google Chrome 57」にSymantec社のEV SSL証明書を正常に扱えない不具合 - 窓の杜
- 〔三菱UFJダイレクト〕銀行名変更にともなうサーバ証明書の切替について | 三菱UFJ銀行
- Shigeki Ohtsuさんのツイート: "三菱UFJ銀行のEV証明書の件。Baltimoreへのクロス証明書を使えばRootCAがないのはWindows XP SP3より前しかなさそうだから、それだけ古いの使っているユーザを心配しているんじゃないですかね。 https://t.co/i40iQxafwa"
- DigiCert Root Compatibility
- Shigeki Ohtsuさんのツイート: "三菱UFJ銀行がBaltimoreへのクロス証明書を使わない運用だとJRE 1.4.2_17とFirefox1が影響受けそう。でも Mixed SHA256 EV hierarchy with a cross root under Baltimore Rootの構成ならほとんど大丈夫でしょ。 https://t.co/i40iQxafwa"
- 個人でEV SSL証明書が欲しい話 - Speaker Deck
- FirefoxでオレオレEVSSL証明書 - Qiita
- Yasuhiro Morishitaさんのツイート: "私は「CHromeによって選ばれた人」だったようです。EV証明書のサイトを開いてF12を押すと、コンソールにこんな表示が。 "As part of an experiment, Chrome temporarily shows only the lock icon in the address bar. Your SSL certificate with Extended Validation is still valid."… https://t.co/7FMKo2Z5ke"
- Yasuhiro Morishitaさんのツイート: "私のGoogle Chrome、EV証明書でも組織名が出なくなってしまったのですが、何が悪いんでしょうか。ちなみにバージョンはWindows版の「69.0.3497.81(Official Build) (64 ビット)」。… "
- Yasuhiro Morishitaさんのツイート: "(こういう表示をA/Bテストでして来るということは、Googleは将来、EV証明書の組織名表示をなくしたいと思っているということなんだな)"
- Shigeki Ohtsuさんのツイート: "とうとう Google が ChromeでEVの組織表示をなくす FieldTrial を始めたようです。 https://t.co/vSF91Cj0x6"
- Mitsuru SHIMAMURAさんのツイート: "これ、CA屋は大反発じゃないんですかね?Googleが強行するんですかね… "
- Shigeki Ohtsuさんのツイート: "既に脅しをかけられてたので、一部 CA が anti-phishing の London Protocol を立ち上げてる途中だったんですけど… Digicertが抜けたりとあまりうまくいってないので、Gがさらに脅しをかけているのかもしれません。… "
- Mitsuru SHIMAMURAさんのツイート: "ほー…。区別しないようにするというのはphising由来だったんですか… "
- Shigeki Ohtsuさんのツイート: "FieldTrial にビンゴしてたようですね。 chrome://flags/#simplify-https-indicator で戻すことができると思います。… "
- Yasuhiro Morishitaさんのツイート: "「Googleがブチ切れる先にある未来」という名言を思い出します😅… "
- Shigeki Ohtsuさんのツイート: "AppleもSafariでのEV証明書の組織表示をやめるみたい。iOS12からなのか? https://t.co/4FsvWhapqc… "
- 201806AppleCABF.key
- Shigeki Ohtsuさんのツイート: "iOS12のSafariで、EV証明書の組織表示がなくなったのが確認できました。padlock(鍵)マークとURLが緑色なので、まだOV/DV証明書との区別はできています。… "
- Shigeki Ohtsuさんのツイート: "PayPalがクロス証明書を入れたらWindowでVerisign側のチェーンで評価され、ルートのOIDが変わりEV証明書と評価されなくなっていると。これ、ユーザが気づかなかったら実はPayPalにEV要らないかと。 / “Wh…” https://t.co/pAkQFSwRDw"
- Rockridgeさんのツイート: "FirefoxがSSL証明書のEVステータスを評価するプロセスについて(公式)。 / “CA/EV Processing for CAs - MozillaWiki” https://t.co/E2HFqNYKnr"
- CA/EV Processing for CAs - MozillaWiki
- 北河拓士 KITAGAWA,Takujiさんのツイート: "また、同名の会社を設立すればEV証明書を取得できてしまう。実際にセキュリティ専門家のIan Carroll氏が決済会社「Stripe Inc」と同名の会社を設立しEV証明書が取得できることを実証している。https://t.co/AhHtkDf8DI 費用は会社設立に100ドル、証明書取得に77ドルのみ。"
- Brian SmithさんはTwitterを使っています: 「Chrome joins FirefoxOS & Safari/iOS in dropping the EV indicator in primary browser UI. Nice! Looking forward to all browsers dropping all support for EV & maybe even all certificate policies. Here's webpki's entire implementation of policies: https://t.co/UYJsX2qVTq ;) https://t.co/UOCnQ9q2BU」 / Twitter
- webpki/src/cert.rs at 0573c1ec3fa4da14d74b9c6ee52087b80dadf16e · briansmith/webpki
- Ryan HurstさんはTwitterを使っています: 「All our mistakes sooner or later surely come home to roost. - https://t.co/VS7iPn6zkB」 / Twitter
- Upcoming Change to Chrome's Identity Indicators - Google グループ
- Google Chrome EV表示の終焉 - ぼちぼち日記
- Shigeki OhtsuさんはTwitterを使っています: 「Mozillaも、2019年10月22日リリース予定のFirefox70から、URLバーからEV表示を削除するとのことです。 / “Google Groups” https://t.co/nV3aTqPtpE」 / Twitter
- Intent to Ship: Move Extended Validation Information out of the URL bar - Google Groups
- Makoto Kato ︎︎さんはTwitterを使っています: 「当事者ではないので個人的な感触ですが、EVの件は、CA/Browser Forum (https://t.co/YTHViQCmPn) でAppleとかGoogleのEVに対しての話に対して、CA側が有効な解決策・回答がでなかったことの結論としか思えないんだけど」 / Twitter
- CA/Browser Forum - CAB Forum
- 「Extended Validation 証明書」表示がChromeとFirefoxから消滅へ - GIGAZINE
- Shigeki OhtsuさんはTwitterを使っています: 「SECOMさんが緊急メンテでテストEV証明書を誤発行してしまった件。既に全部失効させて対策案提示したけど、ドメイン認証してないのって突っ込まれている。無事収束してほしいな。 / “1576133 - SECOM: Mis-issued EV Certificates” https://t.co/Hmyyz57Ler」 / Twitter
- 1576133 - SECOM: Mis-issued EV Certificates
- 「Firefox」もアドレスバーのEV証明書発行元表示を廃止 ~鍵・盾アイコンの仕様も変更 - 窓の杜
CT
- Certificate Transparency について|サイバートラスト
- Certificate Transparency | ブログ | SSL・電子証明書ならGMOグローバルサイン
- Certificate Transparency(透かし入り証明書)とは | シマンテック SSL
- Certificate Transparency:業界レポート:セキュリティ編 - GMOインターネット株式会社
- Certificate Transparency(透かし入り証明書)|製品・価格一覧|SSLサーバ証明書 ジオトラスト
- 自堕落な技術者の日記 : SSL証明書 - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : Certificate TransparencyでわかったというThawteによるgoogle.com証明書の不正発行??? - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : Deep Inside Certificate Transparency (その1) - livedoor Blog(ブログ)
- Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
- Rockridgeさんのツイート: "Certificate Transparencyは「認証局が証明書を発行する都度、全ての証明書発行の証跡を、第三者の監査ログに記載する仕組み」。Googleが提唱し、RFC6962としてRFC化された証明書の誤発行を防ぐ新たな技術。 https://t.co/AoCuhCeZmk"
- Rockridgeさんのツイート: "Chromeには既にCertificate Transparency(CT)の検証機能が導入されており、SSLサーバ証明書がCTに準拠している(=Proofが登録されている)かどうかを表示できる。Firefoxでも同様の検証機能が… https://t.co/qs8BeRF7wT"
- CT対応を示すExpect-CTヘッダとは - ASnoKaze blog
- Certificate Transparency
- Shigeki Ohtsuさんのツイート: "去年の誤発行のペナルティで6月以降にSymantecが発行した全証明書にSCTがないとエラーにする制限がChromeに入りました。マジやるのか、Google恐し。 / “Issue 2109913004: Require Cer…” https://t.co/ysX34FlTd3"
- https://tools.ietf.org/rfc/rfc6962.txt
- Certificate Transparency の仕組みと HPKP から Expect-CT への移行 | blog.jxck.io
- Shigeki Ohtsuさんのツイート: "おぉ、Googleに続いてAppleも2018年10月15日以降に発行される全証明書にSCT求めるCT Enforcementを行うと。 / “Certificate Transparency policy - Apple Su…” https://t.co/trtGhYv53e"
- letsencrypt/ct-woodpecker: A tool to monitor a CT log for operational problems
- Shigeki OhtsuさんはTwitterを使っています 「先月末に公表された構成管理ツールSaltStackの深刻な脆弱性によってDigiCertのCTLog2サーバを管理するmasterが攻撃されたようです。CT署名する秘密鍵が危殆化したという初めての事態になってしまった。 https://t.co/Xiyvktzgxl」 / Twitter
- CT2 Log Compromised via Salt Vulnerability - Google グループ
- Googleが開発した「改ざん不可能なログシステム」を構築できる「Trillian」とは? - GIGAZINE
- サーバ証明書の不正発行に対するSCT Auditing - ASnoKaze blog
DANE
- 情報セキュリティ技術動向調査(2011 年上期):IPA 独立行政法人 情報処理推進機構
- DNS-based Authentication of Named Entities(DANE) | GMOグローバルサインブログ
DNS CAA
- DNS Certification Authority Authorization (CAA) | GMOグローバルサインブログ
- DNS CAA とは:SSL | DigiCert
- DNSサーバのCAA設定 - Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。
- DNSのCAAリソース・レコード、使っていますか? | スラド IT
- DNS CAA を設定した - @znz blog
- Certification Authority Authorization (CAA) | Symantec
- Qualysの SSL Server TestでA+評価を取得した設定例(2017-01-15時点, CentOS7 + Apache HTTPD 2.4.6) - Qiita
暗号
その他
blog
- 整数多項式が有限個の素数しか生成しない場合 | yasuokaの日記 | スラド
- Kazuho OkuさんはTwitterを使っています 「いい記事。ソルトはbruteforceに対しては効果薄いしソルト使ってても公開したらダメ。sha256の方が速いのは暗号通貨向けの最適化考えると納得感ある / https://t.co/5NxsRbCtFe」 / Twitter
- メールアドレスをハッシュ化したものを公開してもよいのか - しまたろさんの掃き溜め
- Kazuho OkuさんはTwitterを使っています 「ソルトは解析対象がN個あるときのコストをO(N)に引き上げるものだけど(その極端な差がrainbow table)、今回の話はNが小さい場合なので」 / Twitter
- メッセージダイジェスト(MD)、メッセージ認証コード(MAC)、鍵導出関数(KDF)の違いについてのメモ - ももいろテクノロジー
- 虚数乗法論 (2):楕円曲線の由来 - tsujimotterのノートブック
- 虚数乗法論 (1):イントロ - tsujimotterのノートブック
PDF
- 000055177.pdf
- 000090943.pdf
- 暗号鍵管理ガイドライン:IPA 独立行政法人 情報処理推進機構
- セキュリティ関連NIST文書:IPA 独立行政法人 情報処理推進機構
- 楕円曲線の理論的及び実用的可能性
- applied-quantum-safe-security_J.pdf
スライド
- ブロックチェーン系プロジェクトで着目される暗号技術
- BLS署名の実装とその応用
- ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
- 高速な暗号実装のためにしてきたこと
- レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
infoQ
- Tink - クラウド、Android、iOSに対応するGoogleの暗号化ライブラリ
- Adiantumによりローエンドのスマートフォンでディスク暗号化が可能に
- ポスト量子暗号とは - Jean-Philippe Aumasson氏に聞く
- Googleが完全準同型暗号トランスパイラーをオープンソース化
News
- ブロックチェーンの秘密鍵、生体認証で生成 日立が新技術 - ITmedia NEWS
- Google、社内サービスに利用する暗号ライブラリ「Tink」をオープンソースに | OSDN Magazine
- Intelが完全準同型暗号に関するDARPAのプログラムでMicrosoftと協業することを発表 - GIGAZINE
- 情報処理推進機構:情報セキュリティ:セキュリティ関連 RFC
- エンドツーエンド暗号化 - Wikipedia
- google/tink: Tink is a multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.
- キーペア (*.pfx) から秘密鍵のエクスポート - Web/DB プログラミング徹底解説
- SSLサーバ証明書 : opensslで秘密鍵のパスフレーズを解除する方法 | DigiCert
- Fadisさんのツイート: "RC4、最初にRC4と呼ばれる暗号を作ったRSAはアルゴリズムを公開していないけど等価な計算を行う方法が他所から公開されて、RSAはアルゴリズムを公開していないけどWebの標準の地位を確立して、RSAはアルゴリズムを公開していないけどこの暗号は弱いから使うのをやめよう、という話になってるの面白い"
- [2107.04940] You Really Shouldn't Roll Your Own Crypto: An Empirical Study of Vulnerabilities in Cryptographic Libraries
秘密計算
- 秘密計算の発展
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「秘密計算がWalletに使われているようなのでメモ --- Sepior’s MPC Technology Integrated into sbiwallet, a New Wallet Service Launched by SBI Digital Asset Holdings https://t.co/0ZRtpbWO8V」 / Twitter
- Sepior’s MPC Technology Integrated into sbiwallet, a New Wallet Service Launched by SBI Digital Asset Holdings
- Lifted-ElGamal暗号を用いた任意関数演算の二者間秘密計算プロトコルのmaliciousモデルにおける効率化
- 暗号化したまま計算できる暗号技術とOSS開発による広がり
- 秘密計算エンジニアを始めて1年が経った。 - Qiita
- 秘密計算エンジニアを始めて2年半が経った。 - Qiita
CRYPTREC
- CRYPTREC | トップページ
- CRYPTREC - Wikipedia
- 電子行政:キーワード - CRYPTREC暗号リスト:ITpro
- 情報処理推進機構:情報セキュリティ : CRYPTREC
- CRYPTRECとは|Cryptography Research and Evaluation Committees - 意味 / 定義 : IT用語辞典
- Shigeki Ohtsuさんのツイート: "へぇ、CREPTRECも進めるのか。/ ポスト量子暗号の代表的な方式について調査を行っており、調査結果を2019年末までに公表予定。 / “耐量子計算機暗号の標準化動向” https://t.co/eQtZDVvuAT"
- ref4_takagi.pdf
- Makoto Kato ︎︎さんのツイート: "2年位前にCRYPTRECで出したSSLサーバー管理のPDFにGPKIとかの証明書を手動インストールする話を入れるかどうかをあの文書作ってる時議論したけど、そもそも手動で入れるってことを許可する自体セキュアじゃないって結論になって最終的に削除した"
- Shigeki Ohtsuさんのツイート: "CRYPTRECはChaCha20だけじゃなくx25519(ECDHE, 253bits)も認めないのかぁ。こりゃOpenSSL-1.1.x系をそのまま導入するとガイドライン違反になっちゃうよ。https://t.co/wn8GVeavEy"
- CRYPTREC | トピックス
- Shigeki Ohtsuさんのツイート: "ちょっ、GPKI発行の証明書でサイト運営しているCRYPTRECさん、ガイドライン満たしてよw… "
- Makoto Kato ︎︎さんのツイート: "私は、新しい版は関わってないですが、高木さんとか島岡さんとかも関わってなくなっているので、いろいろダメな感じになってますね。 https://t.co/kC7Xje31ks"
- Makoto Kato ︎︎さんのツイート: "SSL設定ガイドラインの1.0のところはサーバー側の面倒なところって、高木さんが書いてたとかあるし、証明書のところって島岡さんとかだから、2.0がダメダメなのは、まぁあの新しい委員が時代背景わかってないだけですね。これ。 https://t.co/21erXOccXG"
- SSL/TLS暗号設定ガイドライン
- Shigeki Ohtsuさんのツイート: "そこまでダメ感は感じないんですが、幾つか気になる点があるので、今まとめています。Changelogがほとんど書いてなく、今回の改訂のせいなのかちょっとわからないのが辛いですが。… "
- Makoto Kato ︎︎さんのツイート: "それよりもだな、CRYPTRECのサイトがGPKI使ってるけど、Baseline Requirementみたしてない(監査法人がまともに仕事してない)のは、MozillaでRejectされてるのでわかってるんだけど、それを使うのはいかがなものなかなって思ってる"
- Makoto Kato ︎︎さんのツイート: "1.0を作る際、数年おきに更新するようにしたいと言ってた話がちゃんと実行されているのは素晴らしいのですが、今回はいろいろ突っ込みたいところがあるので、次を作る時はもう少し人材を選んだ方がいいのではとは思うんですよ… "
- Makoto Kato ︎︎さんのツイート: "2018年にもなって、SSL3.0を優先するのが望ましいとか、それだめでしょ。SSL3.0も基本無効しかあり得ないと思うんだが。そんなクライアント使ってることが問題なのではと思うんだが。"
- Shigeki Ohtsuさんのツイート: "次は「0-RTT抜きでTLS1.3使え、以上」になるので、人材はいらないのではw そしたらCame***も…(以下自粛)… "
- Makoto Kato ︎︎さんのツイート: "https://t.co/9LR0nQ3YJQ を作る時も、いろんな理由にかこつけて、カメなんとか以外の国産暗号を排除してるだけにしか見えないから、まぁ。。。"
- CRYPTREC | 注意喚起情報
- ディスカッションペーパーシリーズ(日本語版) 2019-J-15 要約 量子コンピュータによる脅威を見据えた暗号の移行対応
FIPS
- 連邦情報処理標準 - Wikipedia
- FIPS 140 - Wikipedia
- 用語解説辞典|【公式】NTTPC
- FIPSとは|連邦情報処理標準|Federal Information Processing Standards - 意味 / 定義 : IT用語辞典
- NIST.gov - Computer Security Division - Computer Security Resource Center
- FIPS – アマゾン ウェブ サービス (AWS)
- 7594591200220899443さんのツイート: "そういう系の話でいうとFIPS 140-2にも似たような話がある。OpenSSLのFIPS認証はOpenSSLをアップデートしてしまうと無効になるため、新しいcypher suiteに移行するなどといったことができない。https://t.co/EBAVcoIQJM "Criticism" の項… https://t.co/IzBx4YNM7m"
- FIPS 140 - Wikipedia
- Shigeki OhtsuさんはTwitterを使っています: 「NISTからCurve25519/448とEdDSA(ed25519/448)のドラフトが出たぞ(SP 800-186, FIPS 186-5)。米国政府がdjbを認めることになるのはなんか象徴的だ。 https://t.co/p5YQ5OT8lp https://t.co/3fXKKMV8Ol」 / Twitter
- FIPS 186-5 (Draft), Digital Signature Standard (DSS) | CSRC
ARIA
- Shigeki Ohtsuさんのツイート: "韓国の暗号ARIA(RFC5794)がOpenSSLに入った。default不可。Oracle DBがOpenSSLを使うかららしい。GCM対応してないのでTLSでは使えません。 / “Implementation of the…” https://t.co/voIQNeRgPV"
- Shigeki Ohtsuさんのツイート: "ARIAのベンチ取ったけどasm対応もしてないからめちゃ遅い。これ、ホント Oracle DBで使うのか? 単に調達要件対応のためだけかもしれないなぁ。"
特権分離
- Kazuho's Weblog: Unix系OSの権限分離の変遷について(もしくはなぜ、アプリ単位の権限分離が求められるようになったか)
- Kazuho OkuさんはTwitterを使っています: "blogged / “Kazuho's Weblog: Neverbleed - RSAの秘密鍵演算を別プロセスに分離する話” http://t.co/L69ZcPqcRM"
- U+4E0A U+6797さんはTwitterを使っています: "Heartbleedの後 SSLの特権分離を速攻実装したの OpenBSDのrelaydなんだけど 言及されていないのか<neverbleed"
鍵交換
DHE
- ディフィー・ヘルマン鍵共有 - Wikipedia
- Fadisさんのツイート: "TLSの鍵交換はかつてはサーバ証明書にくっ付いた公開鍵を使ってRSAで行われていた。この方法には通信内容を丸ごと記録している第三者が居た場合、後から秘密鍵が漏れると通信内容が全部解読されるという問題があったが、そんな大掛かりな手を使う奴はいないだろうと思われていた。実際に現れるまでは"
- Fadisさんのツイート: "で、その結果、教科書に書かれてるけどどこで使われているのか知らない物ランキング上位を狙えそうだったDiffie-Hellman鍵共有が「鍵共有の過程が見えていても鍵が分からない」という利点を買われて一躍TLSに欠かせないアルゴリズムになった"
- FadisさんはTwitterを使っています: 「鍵共有に使う鍵は毎回変えないと後から秘密鍵拾ったマンに解読されるけど、鍵が変わると相手が本物かわからないから、相手を確認する公開鍵と共通鍵を作るための公開鍵が別で必要で、しかも両者の持ち主が同一である事が保証されなければならない。だから今日の多くの安全な通信路は2段階のDHを行う」 / Twitter
- FadisさんはTwitterを使っています: 「という背景がわかるとWireGuardのアレが最高にcoolな通信プロトコルなのがわかる」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@fadis_ DH(鍵交換)は一回でもう一回は署名とその検証かと」 / Twitter
- FadisさんはTwitterを使っています: 「@kazuho そうですね。安全な通信路の定番TLSがその方式なのに「多くの安全な通信路」は大げさでした」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@fadis_ ええ。というより、FSを実現するためには、長期鍵を暗号化に使ってはダメなんです」 / Twitter
- FadisさんはTwitterを使っています: 「@kazuho 長期鍵は共通鍵の素の全てになっていてはいけませんが、共通鍵に至る過程の一部になることはできます。例えば長期鍵でDHしたFSでない通信路で一時鍵DHを行う事でFSは得られると思います」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@fadis_ そのような例では、長期鍵で確立した通信路が生きている期間をひとつのセッションとして扱うように思いました」 / Twitter
- angel as ㌵㌤の猫さんはTwitterを使っています: 「@fadis_ @kazuho DH+DHでFSを確保する実例は知りませんが、RSA暗号+RSA暗号であれば、SSHv1で使ってますね。 ※ただプロトコル自体に脆弱性があるのと、RSA短期鍵がどうしても使いづらいので、今実用にはならないでしょうが」 / Twitter
ECDHE(x25519)
- 楕円曲線上の離散対数問題に対するアプローチ(Baby-step giant-stepとPollard's rho algorithm) - sonickun.log
- Pari/GPで楕円曲線離散対数を計算してみる - ももいろテクノロジー
- 楕円曲線暗号の超簡単な理論の紹介 - Qiita
- 楕円曲線ディフィー・ヘルマン鍵共有 - Wikipedia
- WebCrypto APIでECDH鍵交換を用いた暗号化を使ってみる - Qiita
- クラウド時代の暗号化技術論(3):鍵が漏れることも想定せよ――クラウド時代における「楕円曲線暗号」の必然性 (1/3) - @IT
- 暗号スイートの暗号強度と、公開鍵のビット数の設定、及びRSAとECDHEでサーバ負荷の比較 - Apache 2.4系でHTTP/2対応サーバを構築してみるテスト。
- 自堕落な技術者の日記 : ECDHE - livedoor Blog(ブログ)
認証
RSA
RSA
- SageMathを使ってCoppersmith's Attackをやってみる - ももいろテクノロジー
- plain RSAに対する攻撃手法を実装してみる - ももいろテクノロジー
- RSAに対する適応的選択暗号文攻撃とパディング方式 - ももいろテクノロジー
- Multi-prime RSAを復号してみる(Hack The Vote 2016 The Best RSA) - ももいろテクノロジー
- RSA暗号運用でやってはいけない n のこと #ssmjp
- Kazuho Okuさんのツイート: "良い。これならoaepとか特定のpadding推奨した方が良いのでは? / “RSA暗号運用でやってはいけない n のこと #ssmjp” https://t.co/fHDTsmoIFF"
- Hironobu SUZUKIさんのツイート: "@knok gniibe先生は、RSAの計算時にあったサイドチャネルアタックの対応のために、計算コードを書き換えたのはその通り。ほぼそっくり入れ替えたんじゃないかな。しかもオリジナルより計算速度が上がったというオマケ付きで。"
- www7b.biglobe.ne.jp/~k-west/SSLandTLS/rfc2313-Ja.txt
- Shigeki Ohtsuさんのツイート: "djb がやったのは libgcrypt のRSA実装に対するサイドチャネル攻撃(CVE-2017-7526)で’RSA自体を破ったわけじゃないよね。 https://t.co/bYB7ABLrDi"
- Hideyuki Tanakaさんのツイート: "もっともらしい雑誌とかにも、スパコンは早晩時代遅れになる技術であるから、量子コンピューターじゃないと意味がないし、量子コンピューターができればRSAのあらゆる鍵は数秒で分解できてしまうから、今の暗号は意味をなさなくなるとか、ため息しか出ないクソ記事乗ってるし、どうすればいいのか。"
- Hideyuki Tanakaさんのツイート: "てかそれを論外のクソ記事だと判断できる人がそんなにいないものなのか。それなのにそれを信用できる人が多いのはどうしてなんだ。世の中困難なことが多すぎる(´・_・`)"
- Hideyuki Tanakaさんのツイート: "量子コンピューターができるのを早晩とかいう人にとっては数十年が早晩なんだねとか、今のRSA暗号のビット数何ビットあるかわかっとる?とかショアのアルゴリズムはビット数の3乗に比例する時間がかかることとか、わかっとる?とかさあ(´・_・`)"
- Hideyuki Tanakaさんのツイート: "ゲート型量子コンピューター、そもそも数千ビットまでスケールできるのか自体わかってないじゃん。そりゃいつかはできるのかもしれんけど、少なくともブレイクスルーがまだまだ必要だろうし、ブレイクスルー待ちのものが「早晩」できるとかいうのはさすがに楽観的過ぎるわなあと。"
- Rui Ueyamaさんのツイート: "お、RSAをよく理解してない実装のせいで中国のQQブラウザがまったくインセキュアになっているっていう事例紹介、今月の話か。暗号の授業はタイムリーで面白いな。 https://t.co/XD8HYHtrIF"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "RSAのオレオレ実装、20年近く前の初代MagicConnect実装でも似た話があったかも(笑) (多倍長演算も含めて、完全自作RSAだった時代。今はパブリックなSSL実装に移行しているはず) https://t.co/PNUXropPDM… https://t.co/QFuj7i1OqH"
- RSA 暗号がようやく分かった気がしたのでまとめてみる - tsujimotterのノートブック
- RSA公開鍵暗号アルゴリズムを理解する
- RSAが公開鍵暗号アルゴリズムをパブリック・ドメインに | 日経 xTECH(クロステック)
- RSA暗号運用でやってはいけない n のこと #ssmjp
- はじめに – まいとう情報通信研究会
ECDSA
- Pari/GPでECDH鍵交換、ECDSA署名をやってみる - ももいろテクノロジー
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ECDSAは、nonce漏洩・再利用・低品質乱数で秘密鍵復元の可能性があるので、EdDSA/Ed25519を使いましょうという話。(Pythonコード例あり) yubikeyのRNGで、ECDSA用nonce 256bitのうち80bitが予測可能なバグとかすごいな、、、 https://t.co/GNUW9UPasS」 / Twitter
- ECDSA: Handle with Care | Trail of Bits Blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IPAでも2011年にECDSA+nonce問題のレポートあり。 ただこの時点での想定より、もっと積極的に「ECDSAは使わない方がいい」という印象あるな、、、 https://t.co/AZMQNh3KQ4」 / Twitter
- 情報セキュリティ技術動向調査(2011 年上期):IPA 独立行政法人 情報処理推進機構
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そもそも、nonceが漏洩したらダメという条件ってECDSAくらいしか知らないなぁ…普通IVやnonceは再利用ダメだけど、公開前提なのが多い印象。」 / Twitter
- 電子署名DSA/ECDSAの数的構造(1/2) - Qiita
Ed25519
- sshでed25519鍵を使うようにした - @znz blog
- OpenBSD、デジタル署名付きパッケージシステムに | マイナビニュース
- signify - sign and verify
- 七誌さんのツイート: "暗号とか以前に楕円曲線は難し過ぎて取り付く島がないと思っていたけど、Edwards曲線は高校数学でも扱えるような素性の良いものだそうです。 https://t.co/UQ74WzUdnN"
- Shigeki Ohtsuさんのツイート: "OpenSSLでed25519の実装が入りそう。現在curdleで仕様策定中のed25519署名の証明書サポートまで入るとは驚き。 / “WIP: Ed25519 support by snhenson · Pull Reque…” https://t.co/EOf2LUuFNU"
- Shigeki Ohtsuさんのツイート: "OpenSSLに Ed25519 が入ったでござるよ。 https://t.co/rx8rbTnLjS"
- Add Ed25519 algorithm. · openssl/openssl@06c6d05
- Shigeki Ohtsuさんのツイート: "ハッシュ計算中に電圧変化をかけて異なる署名を出力させてEd25519を破る技か。よく考えつくよなぁ。 / “How to defeat Ed25519 and EdDSA using faults” https://t.co/OgPN1Ne6xJ"
- How to defeat Ed25519 and EdDSA using faults
- kudelskisecurity/EdDSA-fault-attack: Fault attack agaisnt EdDSA demonstrated on an Arduino Nano board, allowing for partial key recovery and fake signatures.
- https://tools.ietf.org/rfc/rfc6979.txt
- https://tools.ietf.org/rfc/rfc8032.txt
- Shigeki Ohtsuさんのツイート: "乱数を使わないEdDSAのメリットが逆に狙われちゃってるのね。署名が決定的なのはやっぱり辛い部分もあるんか。"
- Shigeki Ohtsuさんのツイート: "おぉ、 djbのcurve25519, curve448(RFC7748)がNIST標準として採用されるのか。 / “Transition Plans for Key Establishment Schemes using Pu…” https://t.co/J3WBy3fs22"
- Fadisさんのツイート: "Curve25519は素数2^255-19を使う楕円曲線だからこう名付けられてるけど、この命名規則には19の部分が小さい整数でないと名前が長くなるという欠陥があって、2^448-2^224-1を使う楕円曲線は2^224-1を名前にそのまま書く事を断念してCurve448と名付けられた。結果Ed25519よりEd448の方が安全になった…"
- Fadisさんのツイート: "Curve25519と同じ命名規則で書くとCurve448はCurve44826959946667150639794667015087019630673637144422540572481103610249215"
- Fadisさんのツイート: "コードがでかいほどバグを作りやすくなるから、Curve25519を出来るだけ小さく実装してみたよ、という論文。読めるコードで18ツイート(英文でも140文字だった時代の論文なので1ツイート=140文字)、人間に厳しい書き方をすれば12ツイートで実装できた、としている https://t.co/A5aPGPNCl9"
- Wesley_Janssen___4037332___Curve25519_in_18_tweets.pdf
SSH
- RSA公開鍵のファイル形式とfingerprint - Qiita
- SSH 鍵 - ArchWiki
- ssh公開鍵認証方式で接続 | server-memo.net
- Fadisさんのツイート: "OpenSSHが自前のchacha20-poly1305とed25519を使ってOpenSSLなしで動くようになったのはOpenSSLのHeartbleedがあった後で、一見するとアレがきっかけで独自で暗号アルゴリズムを実装したように見えるんだけど、よく見るとchacha20-poly1305がOpenSSHに実装されたの、それより前なんだよな"
- 楕円曲線暗号アルゴリズムを理解する
- SSHの公開鍵暗号には「RSA」「DSA」「ECDSA」「EdDSA」のどれを使えばよいのか? - GIGAZINE
- 14年間気づかれなかった暗号の脆弱性を発見、焦りと戦ったNECの若手研究者 | 日経クロステック(xTECH)
- デジタル署名: 数学弱者のためのDSAの原理 - Qiita
対称暗号
AES
AES-NI
- マスターIT/暗号技術:第3回 AES暗号化 - @IT
- インテル® AES New Instructions (インテル® AES-NI) | iSUS
- インテル® AES New Instructions およびインテル® セキュアキーによるインテル® データ・プロテクション・テクノロジー
- AES-NI - Wikipedia
- libtom/libtomcrypt: LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.
- kokke/tiny-AES128-C: Small portable AES128 in C
- jhjin/OpenAES: OpenAES library exported from
- AES implementations - Crypto Wiki - Wikia
- Rijndael Encryption Algorithm
- Poly1305-AES: a state-of-the-art message-authentication code
- BRG Main SIte
- BrianGladman/AES: AES code
- License Library - Brian Gladman License
- License Library - Brian Gladman Dual BSD-GPL
- 5100d_answer.pdf
- Advanced Encryption Standard - Wikipedia
- Shigeki Ohtsuさんのツイート: "GCM で使う Intel CPU命令 PCLMULQDQ です。 https://t.co/Brr9cwj375 #html5j_e"
- CLMUL instruction set - Wikipedia
- AESで不正な鍵で復号した時に何が起きるか - Qiita
- 「katagaitai CTF勉強会 - 関東|hard」の復習(脆弱なAES暗号の攻撃法) - Qiita
- AESを使ってみる - Qiita
- Rockridgeさんのツイート: "Fx56:AES-GCMアルゴリズムの処理パフォーマンスが、Mac版やLinux 32bit版、Intel AVXをサポートしない環境などで大幅に向上した。TLS暗号として頻繁に用いられるアルゴリズムだという。 / “Impro…” https://t.co/Ekkq7UG8RV"
- Improving AES-GCM Performance | Mozilla Security Blog
- Shigeki Ohtsuさんのツイート: "AESだけなら鍵長を増やせば対策できるがGCMが破られるのか。CCMならいけるが性能が出ないんだよなぁ。 / “量子コンピュータが共通鍵暗号の安全性に与える影響” https://t.co/0pHvQw8txT"
- 量子コンピュータが共通鍵暗号の安全性に与える影響
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔、AES128よりAES256の方が攻撃しやすいパターンがある、という話題が出ていたが、結局、AES256の方が多数派になりつつある印象。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いや、少なくともwebサイト暗号化に関してはそんなことは無かった。 google/amazon/facebookなどは、TLS1.3に対応しつつ、AES128GCMを使っている様子。」 / Twitter
- Kazuho's Weblog: QUICむけにAES-GCM実装を最適化した話 (1/2)
- Kazuho's Weblog: QUICむけにAES-GCM実装を最適化した話 (2/2)
- OpenSSLでAES暗号したときのPadding
ChaCha20
- Kazuho OkuさんはTwitterを使っています: "「暗号計算にかかる時間が鍵によって異なってはならない」ってのセキュリティ要件ですよ"
- GoogleがTLSでの採用を提唱している共通鍵暗号方式「ChaCha」についてまとめた - sonickun.log
- RFC 7539 - ChaCha20 and Poly1305 for IETF Protocols
- Salsa20 - Wikipedia
- Shigeki OhtsuさんはTwitterを使っています: "@voluntas AES-NIが使えない環境でこそメリットが出ます。仕組みが単純なのでAES-GCMと同等かそれ以上の速度が出ます。BoringSSLだとARM用のasmがあるので3倍ぐらい速いです。アンドロイドChromeはChaCha20を優先してCipher出してます。"
- Nginxでchacha20 poly1305を有効にする - ASnoKaze blog
- FadisさんはTwitterを使っています 「昨日カーネル/VMの懇親会でchacha20(salsa20)がpaperの段階でARMを意識してる話したけど、実際のpaper読み返してみたらARMとは明言してなくて、乗算が値によってサイクル数が変わるプロセッサがあって、そういうところに実装するときタイミングリークを防ぐのが辛いから乗算やだって言ってた」 / Twitter
- 3DESの扱いが変わってきた - 生存報告
- Microsoft、IE11とMicrosoft EdgeのRC4暗号を計画より4か月遅れて無効化 | スラド セキュリティ
- Kazuho OkuさんはTwitterを使っています 「暗号ライブラリ自前実装してはならぬ論よくわからないというか、暗号アルゴリズムを自作してはいけない、は正しいし、公開鍵暗号の安全な自前実装が難しいのもそうなんだけど、ブロック暗号はそんなに難しくないと思うのよね」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho それはkazuhoさんだから言えるセリフで、僕はたとえ正しいアルゴリズムが目の前にあっても、side channel attackその他に耐性のある実装をできる自信はないです…^^;」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda 最近の共通鍵暗号、テーブルも分岐も使わなくてすむように設計されてると思うんですよね」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho 安全だと判断できる十分な知識を自分が持っているという確信がないので躊躇してしまいます。 データの値に依存して実行時間の変わる演算を行っていないかは判断できそうな気はするんですが、値によって消費電力が観測可能なレベルで微妙に変わったりしないかはそもそも知らないですし…」 / Twitter
- 成瀬さんはTwitterを使っています 「「ブロック暗号は簡単!」って言いながらECBモードで NULパディングする未来しか見えない」 / Twitter
- daem0nc0reさんはTwitterを使っています 「RC4とSalsa20がアルゴリズムからしっかり勉強できるリバースエンジニアリングの記事 https://t.co/SIsrVWB3sd」 / Twitter
- Reverse Engineering Crypto Functions: RC4 and Salsa20 | GoggleHeadedHacker
メッセージ認証
Poly1305
- Poly1305 - Wikipedia
- Poly1305-AES: a state-of-the-art message-authentication code
- floodyberry/poly1305-donna: Implementations of a fast Message-Authentication Code
- メッセージ認証符号 - Wikipedia
- HMAC - Wikipedia
ハッシュ
SHA-1
- Google Online Security Blog: Announcing the first SHA1 collision
- GoogleとCWI、SHA-1衝突に成功、ハッシュ値が同じ2つのPDFを公開 -INTERNET Watch
- Googleら、暗号学的ハッシュ関数SHA-1の衝突攻撃に成功 〜異なるファイルに同一ハッシュを持たせてなりすまし - PC Watch
- GoogleのSHA-1のはなし
- SHA-1ハッシュの衝突を現実的な時間で生成する攻撃「Shatterd」 | スラド セキュリティ
- 【翻訳】ウェブの世界における SHA-1 の廃止 - Mozilla Security Blog 日本語版
- IIJ Security Diary: SHAttered attack (SHA-1コリジョン発見)
- Rockridgeさんのツイート: "Firefox 51以降、SHA-1証明書を用いた場合は安全でない接続と判断される。この設定が適用されるユーザーは、リリース後に段階を追って増えていく。ただし企業ユーザーがルート証明書をインポートした場合は例外となる。 / “P…” https://t.co/WQd5TRabbr"
- Google Developers Japan: SHA1 が初めて衝突
- GitHub Enterprise、SHA-1衝突を実行不能にするパッチを適用へ -INTERNET Watch
- Kazuho Okuさんのツイート: "sha1のコリジョンって、いったいどんだけデータためてたんだろ。2^64とかでもまだ1/2^40くらいの確率じゃないの? truncateしてたわけじゃないよね? データが同一だったわけでもないよね?"
- Kazuho Okuさんのツイート: "で、2^60個のsha1ハッシュ値の間でコリジョンを検出するためには、2^64バイト以上のストレージが必要なわけで"
- Kazuho Okuさんのツイート: "spares bit array使えばもうちょっと小さくなるかな"
- Shigeki Ohtsuさんのツイート: "あーぁ、SHA-1のChosen-Prefix衝突攻撃がおよそ1000万円以下程度のコストで可能になったとの論文。これでSHA-1証明書は完全に終わりです。 / “Cryptology ePrint Archive: Report 2019/459 - From Collisions to Chosen-Prefix Collisions - Application to Full SHA-1” https://t.co/vpoSwrW7K8"
- Cryptology ePrint Archive: Report 2019/459 - From Collisions to Chosen-Prefix Collisions - Application to Full SHA-1
- Shigeki Ohtsuさんのツイート: "あっ論文には詳しく書いていないですが2^63.4まで絞れたようです。https://t.co/TCcgMzyFPY > With some additional improvements that we are currently working on, we evaluate that one can find a chosen-prefix collision for SHA-1 with a budget of less than 100K US$… https://t.co/igcIjofPh6"
- Archive
SHA-2
- Shigeki Ohtsuさんのツイート: "SHA-256 の衝突って f(x) = x の固定点のやつじゃないのかい?"
- This is not a vulnerability, or worlds first · Issue #1 · laie/WorldsFirstSha2Vulnerability
- アニメーションで感覚的にハッシュ関数「SHA-256」の算出過程を理解できる「SHA-256 Animation」 - GIGAZINE
SHA-3
- Shigeki Ohtsuさんのツイート: "OpenSSLに SHA3 が来るのね。 AVX2/AVX512やらarmv4/v8など各種CPUのasm対応済 。どの程度性能が出るのかな。 / “Wire SHA3 to EVP. by dot-asm · Pull Req…” https://t.co/MJA0tXRlaR"
- Wire SHA3 to EVP. by dot-asm · Pull Request #3943 · openssl/openssl
BLAKE3
- FadisさんはTwitterを使っています 「BLAKE3のリファレンス実装の最初の安定版BLAKE3 1.0がリリースされるらしい。BLAKE3は流行りの暗号学的ハッシュアルゴリズムBLAKE2の後継で、計算手順をSIMD命令を使って並列化しやすい物にする事で、BLAKE2bと比較して3倍から6倍、BLAKE2bp比で2倍から4倍程高速に計算できる https://t.co/hgKaVbjsmJ」 / Twitter
- BLAKE3 Cryptographic Hash Implementation Preparing For v1.0 Release - Phoronix
- FadisさんはTwitterを使っています 「BLAKE3を巡っては、SIMDでスケールするというBLAKE3の特徴を活かして、GPUで爆速でハッシュ計算しようぜ、という試みもなされている https://t.co/OQ6KSOENoU」 / Twitter
- BLAKE3 Cryptographic Hashing Function Sees Experimental Vulkan Implementation - Phoronix
- ドッグさんはTwitterを使っています: 「暗号学的ハッシュ関数 BLAKE3.MD5, SHA-*, BLAKE2 より遥かに高速で,MD5 や SHA-1 と違い安全.任意の並列度(マルチコアや SIMD)で計算できる.SHA-2 や BLAKE2 と違い,1つのアルゴリズムで全ての platform で高いパフォーマンスが出せる | 'BLAKE3' https://t.co/6iN7yDMtI8」 / Twitter
- BLAKE3-team/BLAKE3: The BLAKE3 cryptographic hash function
- 暗号学的ハッシュ関数「BLAKE3 1.0」が公開 | OSDN Magazine
- 本の虫: GPGPU時代のハッシュアルゴリズム
- Kazuho Okuさんのツイート: "電話番号入れたら登録済かどうかわかるんだろうし、10^9とか総当たりで解けちゃうレベルでは? > 「暗号鍵と共に不可逆暗号化(ハッシュ化)して保存されている為、運営者サイドでも電話番号はわかりません」 / “キャンセルDB” https://t.co/nLrEmtmS9F"
- Kazuho Okuさんのツイート: "今はAESNIよりも、TLS 1.3等で多用されてるHKDFがIntel SHA Extensionsでどれだけ高速化されるかが気になってる"
- HKDF - Wikipedia
- HMACを利用した安全なAPIキーの送受信 | yohgaki's blog
- ハッシュ(HMAC)を使って弱い鍵を強い鍵に変える方法 | yohgaki's blog
- 暗号学的ハッシュを安全に使うには? – yohgaki's blog
- SHA_Performance_Review_In_UEFI: UEFI SHA1/SHA256 perf tests with C (and asm) | Firmware Security
- FadisさんはTwitterを使っています 「digestpp: C++暗号学的ハッシュ関数ライブラリ。header-onlyで実装されたクラスにrangeやstreamを食べさせるとハッシュになって出てくる。md5 sha256といった定番の関数の他、blake2 sha3 skeinといったナウめの関数や、streebogのような変わり種の関数も備える https://t.co/jDAvmKvqtH」 / Twitter
- kerukuro/digestpp: C++11 header-only message digest library
- 総当たり攻撃時のパスワード最大解読時間の表(by 上野宣)について分析した - Qiita
Key Transparency
- Google Developers Japan: 透過性によるセキュリティ - Key Transparency
- google/keytransparency: A transparent and secure way to look up public keys.
KMIP
- クラウド利用における複数拠点の課題と「KMIP」という潮流 - IT、IT製品の情報なら【キーマンズネット】
- shindo.pdf
- OASIS Key Management Interoperability Protocol (KMIP) TC | OASIS
- Key Management Interoperability Protocol - Wikipedia
- IBM Knowledge Center - Key Management Interoperability Protocol を使用した鍵管理
- 自堕落な技術者の日記 : OASIS KMIP 鍵管理プロトコル - livedoor Blog(ブログ)
- ニュース - HP,RSA,IBMなど,暗号鍵管理仕様「KMIP」を標準化団体OASISに提出:ITpro
mcl
- herumi/mcl
- ペアリング暗号ライブラリmclを使ってみる - Qiita
- ペアリングの双線形性をmclを用いて確認する - Qiita
- 汎用性と高速性を目指したペアリング暗号ライブラリ mcl
- 加法準同型暗号を用いて暗号化したまま画像のエッジ検出をする - Qiita
HACL*
- Rockridgeさんのツイート: "Firefox 57には暗号プリミティブが公式に検証済みであるHACL*暗号ライブラリが導入される。これによりTLSの鍵交換に用いられるCurve25519アルゴリズムをサポートし、セキュリティの強化と高速化の両立が可能になった。 https://t.co/oQQFfUwXLN"
- Verified cryptography for Firefox 57 | Mozilla Security Blog
- mitls/hacl-star: HACL*, a formally verified cryptographic library written in F*
zk-SNARK
- Rui UeyamaさんはTwitterを使っています: 「暗号通貨の授業かなり興味深くなってきた。ゼロ知識証明を使って、公開情報から送金記録の正しさ(だけ)を誰でも確認できるのに、誰が誰にいくら送ったのかは全然わからないZCashというものの仕組みを学ぶみたいな。こういうのはちょっと痺れる。」 / Twitter
- herumiさんはTwitterを使っています: 「@rui314 zk-SNARKですね。数年前の提案者たちによる実装では、私のライブラリが使われていたりしました。 https://t.co/ym3QOVCgrK 和書だと今年発売された岡本龍明さんの『現代暗号の誕生と発展』が詳しいです。」 / Twitter
- scipr-lab/libsnark: C++ library for zkSNARKs
- Rui UeyamaさんはTwitterを使っています: 「@herumi まさにそうです。ここらへん、概念だけは知っていたようなものが見事にうまく組み合わされて、一見矛盾しているような要件をちゃんと満たしているシステムが作られていてかなり楽しいですね。あとnon-interactiveなゼロ知識証明というのがあるのはそもそも知りませんでしたが・・。」 / Twitter
- herumiさんはTwitterを使っています: 「@rui314 パズルみたいで楽しいですね。 私の去年の勉強会の資料 https://t.co/Jb3ngtSGmm やOsukeさんの https://t.co/YuJyVeVOa3 なども参考になるかもしれません。」 / Twitter
- Privacy on Blockchain - Speaker Deck
blog
- How Firefox Sync keeps your secrets if TLS fails – Mozilla Tech – Medium
- RSA 秘密鍵/公開鍵ファイルのフォーマット - bearmini's blog
- 本の虫: GNU/Linuxでお手軽に使えるCLIのファイル暗号化ツール
- 「月を入力すると日を返す多項式」と中国剰余定理 - tsujimotterのノートブック
- 認証付き暗号の鍵利用上限について - ASnoKaze blog
News
- グーグルが耐量子計算機暗号の実験を開始 - ZDNet Japan
- 世界で誰にも解読されていない暗号問題を初めて解読! | 株式会社KDDI研究所
- NICT NEWS
- 量子コンピュータでも解読が困難な新暗号方式が国内で開発 - PC Watch
- NTT、世界最高性能の耐量子公開鍵暗号を実現する新手法 ~CCA安全性を付与して量子コンピュータでも改竄不可能に - PC Watch
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「既に把握済のNSA「…NEC許すまじ」とか思ってたりして。 https://t.co/acgT9LbZFp ちなみに、OCB2は初めて知った…後で勉強。 ECB/CBC/OFB/CFB までは古典、定番がCBCだったが脆弱報告が増えるにつれCTRに交代、さらに進化したGCMがメジャーに、という印象。 あとファイル暗号専用でXTXあたり。」 / Twitter
- NEC、共通鍵暗号化方式OCB2に脆弱性を発見 - 週刊アスキー
POSTD
- JOSEは、絶対に避けるべき悪い標準規格である | プログラミング | POSTD
GitHub
- LoupVaillant/Monocypher: An easy to use, easy to deploy crypto library
- B-Con/crypto-algorithms: Basic implementations of standard cryptography algorithms, like AES and SHA-1.
- skeeto/enchive: Encrypted personal archives
- Keccak Team
- gvanas/KeccakTools: KeccakTools is a set of C++ classes that can help analyze the Keccak sponge function family, designed by Guido Bertoni, Joan Daemen, Michaël Peeters and Gilles Van Assche. For more information, please refer to our website: http://keccak.noekeon.org/
- 菅野 哲 (Satoru Kanno)さんはTwitterを使っています 「素敵な講義資料〜。 暗号技術の標準化について知ることができてよき。 IETFがたくさん出てくるのでテンションが上がるっっ https://t.co/T8phpLg69K」 / Twitter
- junkurihara/lecture-security_engineering
Qiita
- 準同型暗号の最前線1(入門編) - Qiita
- 準同型暗号の最前線2(原理編) - Qiita
- 準同型暗号の最前線3(理論編) - Qiita
- 2つの公開鍵暗号(公開鍵暗号の基礎知識) - Qiita
- 中国剰余定理 (CRT) の解説と、それを用いる問題のまとめ - Qiita
Twitter
@herumi
- herumiさんのツイート: "1回だけ乗算可能な加法準同型暗号の論文「Efficient Two-level Homomorphic Encryption in Prime-order Bilinear Groups and A Fast Implementation in WebAssembly」がASIACCS 2018に採択された。 https://t.co/Vaz2msN9dd 解説と実装はこちら https://t.co/2Ou4m5sh5G https://t.co/C58377CxZj"
- ACM ASIACCS2018 Program – ASIACCS 2018
- ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
- she-wasm | Two-level homomorphic encryption for Node.js by WebAssembly
- herumiさんのツイート: ".@hikalium 帰り話した暗号化したままテーブル引きのデモはこちら。https://t.co/ONiAYWLRBD 数字をいれて[問い合わせる]で入力値を暗号化してサーバに送り、サーバは暗号化したまま対応する桁の円周率のテーブル引きをして暗号文を返し、クライアントでそれを復号します。https://t.co/y8dpLaZcOO"
- 紛失通信デモ
- herumiさんのツイート: "CSS2018最優秀デモンストレーション賞受賞しました。ありがとうございます。 デモの一つ、紛失通信による円周率100万桁の問い合わせのソースコードはこちら。 https://t.co/dsWf1WuJkQ https://t.co/xZSQP3DBsn"
- herumi/ot-by-l2he: Oblivious Transfer demo by L2-HE
- herumiさんのツイート: "CSS2018の発表資料「レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明」を公開しました。 https://t.co/6nO9tikJiY https://t.co/GCHTSvNEht"
- herumiさんのツイート: "今年のラボユースは暗号系3人とOS系一人担当。 AESを一から実装したい人には有限体や拡大体の解説などから始めました。もう一人は楕円曲線暗号をやりたいので射影座標やC++の解説など。最後は完全準同型暗号を実装したいガチな方。格子暗号は実装したことないので私も一緒に勉強させてもらおう。"
- herumiさんはTwitterを使っています: 「SCIS2020 2C3 「ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用」の発表資料を置きました。 https://t.co/bmJIlvcEsu Arbitrary Univariate Function Evaluation and Re-Encryption Protocols over Lifted-ElGamal Type Ciphertexts https://t.co/62904XwYbX」 / Twitter
- Cryptology ePrint Archive: Report 2019/1233 - Arbitrary Univariate Function Evaluation and Re-Encryption Protocols over Lifted-ElGamal Type Ciphertexts
@jovi0608
- Shigeki Ohtsuさんのツイート: "Googleによる耐量子コンピュータの鍵交換暗号方式 CECPQ1が本格実験開始。 / “Google Online Security Blog: Experimenting with Post-Quantum Cryptogr…” https://t.co/I6quQhtuQU"
- Shigeki Ohtsuさんのツイート: "予想通りGoogleは CECPQ2 に djb の NTRU Prime を使う予定か。IP周りの問題は解消してるのかな。"
- Shigeki Ohtsuさんのツイート: "おぉ!n=60のLWEの格子暗号が解読されたか。60〜40までの殿堂入りは全部このチーム。GoogleのNewHopeはring-LWEでn=1024、将来的にどうなるか。 / “世界で誰にも解読されていない暗号問題を初めて解読…” https://t.co/gX9ujnCI6r"
- Shigeki Ohtsuさんのツイート: "EdDSA証明書を規定する仕様(curdle-pkix)がIESG承認されました。これでTLS1.2におけるDJB三部作(ChaCha20-Poly1305, X25519, Ed25519)の完成です。 https://t.co/5thG1tuXUP"
- [Curdle] Protocol Action: 'Algorithm Identifiers for Ed25519, Ed448, X25519 and X448 for use in the Internet X.509 Public Key Infrastructure' to Proposed Standard (draft-ietf-curdle-pkix-10.txt)
- Shigeki Ohtsuさんのツイート: "TLSより先にOpenPGP,S/MIMEでCBC/CFBがやられちゃったのかぁ。 / “EFAIL” https://t.co/IOJMsvjvCH"
- EFAIL
- Shigeki Ohtsuさんのツイート: "S/MIME、簡単に署名削除できちゃうって意味ないやん。CBCで偽造されても文句言えないわ。 "Every S/MIME signature can easily be removed from the multipart/signed mail body" https://t.co/QCgDUHRb0P"
- efail-attack-paper.pdf
- Shigeki Ohtsuさんのツイート: "GnuPGPはMDC(Modification Detection Code Packet)による完全性チェック機能があるけど、ちゃんとエラーチェックしてなかったり、パケット型を完全性確保のないやつに変えられたりできちゃうと。圧縮機能が入っている分S/MIMEより平文取得が難しいと。"
- Shigeki Ohtsuさんのツイート: "最終的にはAES-SIVを使うとかちゃんと認証付き暗号をサポートするような仕様にしなさいと。まぁ真っ当な流れだけど、これからどうするんだろう。"
- Shigeki Ohtsuさんのツイート: "10年以上前にAES-GCMをCMSで使うRFC5084が発行されていたのに、S/MIMEで使うような動きはなかったと、はぁ。 https://t.co/C6E6hp1wtg"
- OpenPGPとS/MIMEに脆弱性、暗号化メールを平文で取得可能に - INTERNET Watch
- 暗号化メールの内容が平文で漏洩する“EFAIL”脆弱性、欧州の研究者グループが発表 - 窓の杜
- PGPとS/MIMEによる暗号化メールに、Efail攻撃に対する脆弱性が見つかる
- Shigeki Ohtsuさんのツイート: "X25519はECDH(E)の鍵交換でed25519はEdDSAの署名。curdle-pkixで規定されたばかりのEdDSA証明書が出回らない以上EdDSAをガイドラインで使えるようにと求めてないのだが。あえて言及を避けているのか、本当に理解していないのか… https://t.co/SkM6IS342p https://t.co/2KaFKlD3Cj"
- Makoto Kato ︎︎さんのツイート: "CRYPTRECはNISTを参考にする組織なので、NISTのお墨付きがあればあのCRYPTRECのリストに入るけど、EdDSAってNIST的にお墨付きつけたんでしたっけ?EdDSAの背景がNISTが信用できないというところからはいったし。 (最近暗号関係追っかけてないから知らない)"
- Makoto Kato ︎︎さんのツイート: "HTTP/2、TLS1.3の時代になるんだから、そろそろ (NTTへの配慮があるにしろ) Camelliaをあの設定ガイドに入れるもはどうかなぁとは思ってはいる。ハードウェアで最適化できているものではないしね"
- Shigeki Ohtsuさんのツイート: "近い内に出るNIST SP 800-186で採用される予定です。https://t.co/WpfOswyv4j 今TLS関連のNIST更新はTLS1.3のRFC発行待ち状態な感じです。… "
- Makoto Kato ︎︎さんのツイート: "なるほど。それだったら、おそらく2019年 or 2020年のCRYPTRECの推奨リストにおそらく含まれることになるので、次?のTLSサーバー設定ガイドラインに入るんじゃないですかね。神田さん次第か… "
- Shigeki Ohtsuさんのツイート: "EdDSA証明書を発行するCAがないので特にガイドラインに入っていなくても問題ないと思います。RSA-PSSの証明書もまだ全然発行されていないし。CRYPTRECは署名方式だけ評価して楕円曲線自体の評価をせず、中途半端にNISTを参考にしているからこうなるわけで。… https://t.co/mY9RcOScf7"
- Shigeki OhtsuさんはTwitterを使っています: 「openssl ciphersでTLS1.3のCCMがリストされない理由は属性がNON_DEFAULTに指定されているから(あまり使われていないしそもそも性能悪い)。明示的にオプション指定で登録すれば表示されます。https://t.co/to3sMOLdJC / “SSL/TLSとは何なんだ? 今こそ知ってもらいたいSSL/T…” https://t.co/VjT17vo5ck」 / Twitter
- SSL/TLSとは何なんだ? 今こそ知ってもらいたいSSL/TLSのお話 〜 2回目 〜 TLS1.3 HTTP/2 のお話 | さくらのナレッジ
- Shigeki OhtsuさんはTwitterを使っています: 「@voluntas ストリーム処理ができないのでGCMやPoly1305より性能悪いんす。当初TLS1.3のcipherから外れていたんですがAEADなのに仲間外れはアカンということで入れられました。無線通信ではCCMが結構使われているようですね。」 / Twitter
- Shigeki OhtsuさんはTwitterを使っています: 「@voluntas wikipedia見ただけですが、WPA2とかBluetoothLEに使われているようです。 https://t.co/OyutxMruhx 理由はよくわかりませんが、GCMより単純なのでLow Deviceでもちゃんと実装できるからじゃないですかねぇ。」 / Twitter
- CCM mode - Wikipedia
@fadis_
- Fadisさんのツイート: "SPDYはTLSの圧縮を使っていたが、HTTP/2ではこの機能の使用は禁止され、TLS 1.3では圧縮が廃止された。ユーザが任意のデータをコンテンツに埋められる場合、圧縮後のサイズから暗号化されたコンテンツの内容が予測できる為である https://t.co/BFGVHuK4Lx"
- CVE - CVE-2012-4929
- Fadisさんのツイート: "「圧縮後のサイズで何圧縮したかバレるぞ」と「圧縮に要した時間で何圧縮したかバレるぞ」は暗号化と圧縮が一緒に出てくる状況で簡単に踏むから常に気に掛けておきたい"
- Fadisさんのツイート: "気が付いたらブラウザのサンドボックスでx86バイナリを動かす技術の事じゃなくてナウい手法を実装した暗号ライブラリの事になっていたNaClさん"
- Fadisさんのツイート: "EFAIL: PGP等で暗号化されたメールを経路上で悪意ある第三者が改竄できる時に、暗号化されたパートの上下に「<img src="ほげほげ/」と「">」を加えてmultipart/mixedで合体させるメールに改竄すると、受信者が暗号化されたパートを復号した結果に上下のパートをくっ付けて出来たURLにアクセスしてくる"
- Fadisさんのツイート: "更にEFAILではOpenPGPがCBC modeを使っていて、しかも先頭のブロックが常にContent-type: multipart/signedである事を利用して、暗号化されたメッセージに<img src="を挿入できるCBC gadgetを作る。こちらの方法の場合mixedの結合が雑でないクライアントでも復号したメッセージを攻撃者に送ってしまう"
- Fadisさんのツイート: "暗号を効果的に使うのは難しいなぁ"
- Fadisさんのツイート: "RFC7693「BLAKE2は特別なHMAC関数を使わずにHMAC出来る」→HMAC1号 RFC5246「TLSでHMACする時はSHA-256以上の強度のハッシュをHMAC関数に通す事」 TLSの実装「仕方ないからBLAKE2をHMAC関数に通すよ」→HMAC2号 問題: TLSと無関係な規格がBLAKE2でHMACと言っている場合、その実装はどちらの事か"
- Fadisさんのツイート: "暗号屋さんの論文、 右辺と左辺のバイト列を結合する っていう意味の演算子として || がよく登場するんだけど、よく脳内で勝手にlogical orと解釈されて3行くらい読み進めたところで型が合わなくなって ??? ってなる"
- Fadisさんのツイート: "WireGuardの作者がLinuxカーネルに新しい暗号API Zincを提案している。曰く、既存のカーネルの暗号APIは高レイヤー過ぎて特定の暗号技術を部品として使いたい場合に使い辛いから、よりプリミティブでコンポーザブルな暗号APIを作った、とのこと https://t.co/zezc1YHowb"
- Zinc: The New Crypto Library Being Worked On As Part Of WireGuard - Phoronix
- Fadisさんのツイート: "オリジナルのWireGuardはカーネルのcrypto/ガン無視で独自で暗号を実装してるから、バニラカーネルに入れるのにあたって、なぜカーネルの標準の暗号APIを使わないのかという部分に説明が必要になったんだろうな"
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「楕円曲線暗号の鍵長に512bitがなく521bitがある理由」 メルセンヌ素数だと演算量が少なく、2^512付近だと2^521-1が該当、という話。 RSAで公開鍵の指数を2^16+1にすることで、べき乗の演算量を減らす工夫を思い出した。(2進数で1になっている桁だけ計算すれば良い) https://t.co/sP7bZfbInB"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、RSAの公開鍵指数で、2^16+1 = 65537 以外の実装ってあるのかしらん?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "共通鍵暗号のCTRモードだと、暗号部のみ必要で復号部は不要…なのでHashで共通鍵暗号が作れる。 大昔、Pythonに共通鍵Libが無く、sha1+CTRを使った共通鍵暗号を作ったことがあるが、お話しにならないくらい遅かった(笑) ただ、xxHashに128bitが出来ると、AES-CTRとどちらが速くなるか興味がある。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「curve25519-sha256 と curve25519-sha256@libssh.org って、何が違うのだっけ…? https://t.co/pEbps6fjm0」 / Twitter
- sshd_config(5) - Linux manual page
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「openssl ファイル暗号化」で検索すると、AESに鍵をそのまま渡すパターンばかりだったが、実用的には PBKDF2等を使った方が良さそう。 (公開鍵を指定するのも良いけれど)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「WindowsのCNG(Cryptography API Next Generation)だと、AESのブロックモードはCTRが無くGCMが使えるみたいなのだけど、最後のブロックを捨てれば同等になるのかな…?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(あとCTRとGCMだとカウンタが1つずれてるのを意識したほうが良さそう)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近はAES-NIとかハードウェアサポートで、下手なハッシュ系の乱数ストリームより、AESの方が速かったりするのだよなぁ。 (xxHash3 とはさらに高速だけど、これは非暗号学的)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号モードの GCM/CTR は、暗号も復号もベースとなる暗号は「暗号化ルーチン」しか使わない(=乱数ストリームとして使う、疑似ワンタイムパッド)。 GCM/CTR のみの使用を想定した、AESより高速&高セキュアな暗号方式の研究はあるのかな…?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「CNGじゃないと、AES-NI使ってくれないのだよな、、、」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「AESをリファレンスC言語実装からCNG(bcrypt)に変えると、約8倍高速化。(256MB/s -> 2GB/s。1GB領域に対して) (AES-NI効果だが、ECB呼び出し+自前CTR計算のためこの程度。GCM呼び出しだと3GB/sに)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ElGamalとか暗号値のまま2倍にすると、復号値も2倍になるという、大昔は「改竄に弱い(ただしGCM等で防御可)」と微妙な目で見られた、準同形な性質を活用と。 なおDB&検索語を暗号化したまま検索=秘匿検索暗号はまた別かな? https://t.co/TVvDwgoYQS」 / Twitter
- Googleが世界初となるFHEの汎用トランスパイラーをオープンソース化 ~暗号データを復号せずにそのまま処理 - 窓の杜
@kazuho
- Kazuho OkuさんはTwitterを使っています 「SSLShader の crypto offload 部分、OSSだったのか。しかしスループットはともかくレイテンシみると使いづらそう https://t.co/Jt3OdGdPK0 https://t.co/X31ZrhIlsS」 / Twitter
- lwakefield/libgpucrypto
- SSLShader - GPU-accelerated SSL Proxy
- Kazuho OkuさんはTwitterを使っています 「約10年前のデータなので、レイテンシが1/10になってれば、ありなのかもしれないけど」 / Twitter
- Rockridgeさんのツイート: "民主・共和両党の議員で構成される米国議会暗号化ワーキンググループは、2016年末の報告の中で、「暗号化を弱めるいかなる手段も国益に反する」と述べた。FBIが求めるバックドアには反対ということ。 / “Bipartisan Con…” https://t.co/58wxxHcs2E"
- Rockridgeさんのツイート: "Firefoxアカウントではパスワードを元に認証キーと暗号キーを生成し、認証キーのみをサーバに送る。ユーザーのデータは暗号キーにより暗号化済みであり、認証キーが漏洩してもデータの復号はできない。 / “How Firefox S…” https://t.co/h8cvuv9QSi"
- 黒木玄 Gen Kurokiさんのツイート: "#数楽 楕円曲線暗号に応用されているEdwards曲線の加法公式はヤコビの楕円函数(cd t, sn t)=(cn t/dn t, sn t)の加法公式に一致する。ヤコビさんは約200年後に自分の名のついた楕円函数の加法公式がこんな形で応用されるとは思って無かっただろう。"
- Rui Ueyamaさんのツイート: "授業で教授がAES暗号の仕組みを解説しているのだが、実装するの簡単じゃんと思っても、素人実装は絶対に微妙な穴ができるから、授業を受ける前に決して自分では実装しないと誓ってくれと生徒に言っているw"
- Rui Ueyamaさんのツイート: "たぶんいろいろ噛み合ってないと思いますが、AESに対するサイドチャネル攻撃とその対策法などを知り尽くした人でなければ実際にセキュアなAES実装を書くのは難しいという意味です。たとえばdjbのこの論文ではタイミング攻撃を考慮してない昔のAES実装を使ったSSLを破ってます。https://t.co/4gSg0LGhIY… https://t.co/gw1A9ZwYr9"
- Rui Ueyamaさんのツイート: "というわけでAESの仕組みを学ぶのはよいことだけど、実装はいろいろ落とし穴があるので、自分で書くよりセキュリティ専門家のレビューを経た信頼できるコードを使いましょう、という話。実際問題RFCとかに載っているコードをそのままコピペして使えばいいので、再実装したい場面もほぼないと思います。… https://t.co/UgnJxStz6h"
- hsjoihs@数情物化語さんのツイート: "SHA-1について調べていたら面白い記事を見つけた(署名の検証に使っている暗号学的ハッシュをstrncmpで比較してしまっているため、160ビットの署名の大半が情報量が捨てられてしまう可能性があるというもの) https://t.co/Q7kjJnaZuJ… https://t.co/2QYu8Br7V9"
- debugmo.de :: Thank you, Datel.
- Makoto Kato ︎︎さんのツイート: "opensslなんて使わずにAESのコードを直書すればわかるけど、ThunderXのAESのインストラクション、むっちゃ遅い。Cortex-A53だと15倍近く速くなるのに、ThunderXなんて6倍くらいにしかならないから。"
- Makoto Kato ︎︎さんのツイート: "SHA2とかも同様でThunderXはCortex-Aシリーズに比べると遅いんだよね。。。"
- suzakiさんのツイート: "面白かった。 楕円曲線暗号の鍵長に512bitがなく521bitがある理由 https://t.co/fAIJFugaDL パラメータに計算の効率が非常によい素数2^(521 -1)を使いたかったためです. ある論文には,521bitのほうが半分以下の256bitの時よりも計算速度が速くなっている... ルセンヌ素数を使うことによる効率化...… https://t.co/flUI3XOAjd"
- 楕円曲線暗号の鍵長に512bitがなく521bitがある理由 | maidsphere
- Ryo SuzukiさんはTwitterを使っています 「cryptographically secure が要求される用途なら Salsa / ChaCha で、non-secure な MT19937 や Xorshift からの置き換えかつ 2^128〜2^1024 の周期で十分なら xoshiro 系が短くて速い。」 / Twitter
乱数
スレッドセーフ
- キノコになりたい🍄さんはTwitterを使っています 「スレッドセーフな乱数生成アルゴリズムとかあるん C++の<random>に存在したりしてる・・・?」 / Twitter
- yohさんはTwitterを使っています 「@onihusube9 ぐろーばる・みゅーてっくすで保護した単一(グローバル変数)の乱数生成器を持てばよいというお話です?」 / Twitter
- ドッグさんはTwitterを使っています 「@yohhoy @onihusube9 もしくはスレッドごとに乱数生成器を持てば良いだけな気も.mt19937ar でもせいぜい内部状態 2kb とかそんなんですし」 / Twitter
- yohさんはTwitterを使っています 「@Linda_pp @onihusube9 よほど特殊な事情がない限り、スレッドごとに乱数生成器期を持つべきでしょうねw 疑似乱数なのでシードを意図的にずらす/真の乱数を使わないと、全スレッドで同一乱数列になってしまう点だけ注意が必要かなと。」 / Twitter
- yohさんはTwitterを使っています 「@Linda_pp @onihusube9 https://t.co/3pyzXC4iZn みたいなことを過去に書いてました。」 / Twitter
- スレッドセーフという幻想と現実 - yohhoyの日記(別館)
- てらモス♋️さんはTwitterを使っています 「決定論的な乱数生成機を複数のスレッドで独立にエントロピーで初期化しても、あんまり大量に生成すると同じ列に入ってしまう可能性がちょっと上がるわけで、その可能性もちゃんと消した独立な列を取れる方が望ましいという用途はある」 / Twitter
- Keigo NitadoriさんはTwitterを使っています 「@yohhoy @Linda_pp @onihusube9 単にseedを変えるだけでは誕生日のパラドックス的な衝突うが起こりやすいですよね。周期をスレッド数の2乗で割ったぐらいが十分に大きければいいんでしょうか?」 / Twitter
- yohさんはTwitterを使っています 「疑似乱数こわちか :;(∩´﹏`∩);:」 / Twitter
人間向けの補正
- R. ShioyaさんはTwitterを使っています 「今日やったアルゴリズム入門の講義では疑似乱数がテーマで、感想ながめてたら「RTA で出てくる乱数調整の意味がやっとわかりました!」てあったのだけど、あれは確かに話題として面白くて取り上げるといいのかもしれない」 / Twitter
- R. ShioyaさんはTwitterを使っています 「今日の講義では一様乱数は人間が感じるランダムさとはちょっと違うとか、ゲーム会社にいる後輩から聞いたガチャの乱数に補正入れたり入れなかったりする話もしたんだけど、スク○ニはきちんとしてると言う話をしたのにテーブルで今揉めてるのでこれも来週やったら面白いかもしれん」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya 人間が乱数作ると、偏りっぽい並びやキリのいい数字が、過度に弾かれる的な話ですかね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya あとiPodのランダム再生にクレーム入った逸話とかもありましたね。 (ランダム再生では、本当のランダムを使ってはダメと)」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu はい,そんな感じの話です.ちゃんとした乱数だと直感よりも偏った(ように見える)連続が発生することはままあるので,それはそう言うものなのだとか,ゲームのガチャでは極端に不幸な人が一定数は出るので補正を入れているところもあるとかそんな話をしました.」 / Twitter
seed 固定
- ゆうだいさんはTwitterを使っています 「乱数ってseed固定したら,ほかの環境でも結果が再現されるの?」 / Twitter
- Willy 🌧米国大学教員さんはTwitterを使っています 「@physics303 詳しい事は分からないですが、「Rでseedを指定して乱数発生させて結果を提出」と言う宿題を出すと例年、みんな同じ結果を出してきます。」 / Twitter
- StoneDotさんはTwitterを使っています 「@physics303 乱数生成アルゴリズムとシードが一致すれば、再現するはず。 ただ、浮動小数点数の計算結果が環境によって変化する可能性があるので、乱数振る振らないが、浮動小数点数の計算結果に依存する場合は再現しない可能性もある」 / Twitter
- ゆうだいさんはTwitterを使っています 「@StoneDot ありがとう.初歩的な質問で恐縮なんだけど,その理屈で行くと,乱数シードを固定すると,同じPCを再起動しても,基本的には同じ乱数が生成されるよね? (np.random.seed(0) とかにしてnp.random.uniform(-1,1,10)とかすることを想定しているから乱数生成アルゴリズムは同じはず)」 / Twitter
- StoneDotさんはTwitterを使っています 「@physics303 Yes です。再起動後も生成される乱数は維持されます。 /dev/urandom みたいな外部エントロピー使わない乱数ではない限り同じ結果になりますー」 / Twitter
- Kaggleに登録したら次にやること ~ これだけやれば十分闘える!Titanicの先へ行く入門 10 Kernel ~ - Qiita
- Taku KudoさんはTwitterを使っています 「詳しくは https://t.co/C2cQxC3x5S 失敗からこうなっている。 Thus, the API and implementation for previous iterations of generators within Google is, in many respects, effectively frozen in place and cannot be improved.」 / Twitter
- abseil / The Abseil Random Library
- Taku KudoさんはTwitterを使っています 「意外かもしれないが、absl::Random の疑似乱数はseed を与える機能が意図的になくしてある。テスト等で決定的動作にするために悪用されることがほとんどで、その結果修正不可なテストが増え、擬似乱数本来の改善が滞る結果になるから。使う側は乱数の本来の意味を理解して使うべき。」 / Twitter
Twitter
カスペルスキー
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号学的な乱数は、量子効果や熱雑音によるハードウェア生成が一番良い。 だが「特定ハードウェア実装が信用できるか」問題は別途あって、例えばLinuxは Intel CPUの乱数命令をseedの一部にしか使用しない保険を掛けてたはず。 https://t.co/pd66rQzPxv」 / Twitter
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「ただの擬似乱数と暗号学的に安全な擬似乱数は違うってのはセキュリティの基本なのですが、意外にちゃんと教えられてない気はしますね…私も学部授業のレベルでは教えられてない… とにかく「よい乱数」ってホントに奥が深くて難しい話なのです。だから素人が手を出すよりOS提供の関数を使うのが吉。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このコードだと、seedは100ns以降のカウンタを32bit圧縮となり、3億ではなく42億パターン(これも十分小さいが)になる。 (元英文解説だと、ここは使われず、time(0)が使われるとある…元ネタを確認しないとダメなgigazine記事(笑)) https://t.co/tKLNqF3vBT」 / Twitter
- カスペルスキーのパスワードマネージャーが生成したパスワードは総当たり攻撃で爆速突破が可能と判明、一体なぜか? - GIGAZINE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C++だと、std::random_deviceを使えば、その環境でベストな暗号学的乱数が使ってくれる印象ある。 https://t.co/a9Cpd9hbq5 (なおパラノイア的には、IntelのHW実装やMSのCrypto実装をどこまで信用する?問題は残る(笑))」 / Twitter
- random_device - cpprefjp C++日本語リファレンス
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「あー確かに書き方悪かったかも。OS提供の関数には「ただの擬似乱数」と「暗号学的に安全な乱数」があるのでちゃんと使い分けましょうね、という話です。 WindowsはかつてCryptAPIにCryptGenRandomがあったんですが今はCryptAPI自体が非推奨になってて、CNG APIのBCryptGenRandomを使うお作法です。」 / Twitter
- ぐらふぃさんのツイート: "胡散臭いけどやばい論文です https://t.co/92Mb6ZGmT4 Learning From Pseudo-Randomness With an Artificial Neural Network–Does God Play Pseudo-Dice? - IEEE Journals & Magazine ニューラルネットに π や eといった数学定数とか Mersenne Twister の次の桁を予測させると統計的に優位に当たってる"
- Learning From Pseudo-Randomness With an Artificial Neural Network–Does God Play Pseudo-Dice? - IEEE Journals & Magazine
- Kazuho OkuさんはTwitterを使っています: 「CSPRNG(暗号論的擬似乱数生成器)じゃない乱数生成器はこうやってシードされてたりするから、セキュリティに関係する要件で使ってはいけないし、使わない限り問題ない。あるいは自分で urandom 等CSPRNGの値を注入して初期化してもよい https://t.co/kMa4KmGta9」 / Twitter
- せり (zeriyoshi)さんはTwitterを使っています: 「はい、 PHP のメルセンヌ・ツイスタの固定化に成功しました syscall time, gettimeofday, getpid の結果が同一の場合必ず同じ乱数が生成されます https://t.co/7RTh6Oqu3W」 / Twitter
- songmuさんはTwitterを使っています: 「ゲームとかだと、乱数生成器作成時に使ったシードを記録しておけば、同じ状況を制限できるので便利、とかありますね。ソシャゲ開発していたときにやっていて、調査などに使っていた。」 / Twitter
- songmuさんはTwitterを使っています: 「「なんでバトルの結果がこうなってるんですか?」みたいな問い合わせに対して、手元で再現させて検証してから返答していた」 / Twitter
- songmuさんはTwitterを使っています: 「制限じゃなくて「再現」!」 / Twitter
- 渋川よしきさんはTwitterを使っています: 「@songmu 僕もやってました。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「LAMP 系のマイナーな環境だと高精度のタイマもpidもちゃんと取れなくて、ランダムに生成されるはずのセッションIDがたまに衝突するとか...」 / Twitter
- S (ツイートはスレッド全体をご確認ください)さんはTwitterを使っています: 「余りをとるのは常套手段だけど割り切れないとわずかに歪むし、素朴にやり直すと最大回数がboundできないけど、やり直さないで完全に一様にする方法はあるんだろうか。ないとしたら、不可能であることはどう証明(というかそもそも定式化?)するんだろう。(よく知られている解があったらすみません) https://t.co/JEBMpWwZPL」 / Twitter
- ぼんてんぴょん(Bontenpøn)さんはTwitterを使っています: 「例えば00000~99999の範囲で一様乱数を発生させてくれる機械があって、0~99の乱数がほしいとき、下2桁を見ればいい。ところが0~74みたいな中途半端な範囲の乱数がほしかったら?「下2桁が75~99のときはやり直す」というのもアリだが、5桁を全部見て75で割った余りを取っても、おおむね一様になる。」 / Twitter
- Yutaka OIWAさんはTwitterを使っています: 「@esumii ・ダイス振りn回以下のプロセスは、ぴったりn回のプロセスで表現可能(結果決まってからも余計に振る) ・k面ダイスn回のプロセスでの各出力の発生確率は k ** -n の倍数 ・あとは、nがいくつでも均等にならないことを帰納法なり代数なりで証明 でいいんじゃないでしょうか。」 / Twitter
- Yutaka OIWAさんはTwitterを使っています: 「@esumii あとこの件は、適切な割り算さえ入れれば、1回の試行で決定できる確率を 1/2超にできる。 そうすると、試行回数の期待値は2未満になるので、乱数がマトモなら、分布が歪むリスクを避けてまでループを避ける理由はない。 各回を独立試行にする限り、繰返し回数(処理時間)と出力値の相関もない。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「実務的な話で言うと、実行時間のずれあるいは確率分布のずれを無視できる範囲にしてくれれば良くて、つまり、ダイスを一定回数振ってから剰余とる形が良さそう」 / Twitter
- SAKASHITA HirosiさんはTwitterを使っています: 「PHPで使われている疑似乱数関数mt_randについて、2つの出力値を得ることで残り全てが予測できる手法が編み出された模様です(中身はあまり読んでませんが…)。この関数で使われているMT法が暗号学的に十分セキュアでないことは聞いてましたが、これはびっくり。 https://t.co/Caj1nOK2Be」 / Twitter
- The Hacker NewsさんはTwitterを使っています: 「Breaking PHP's mt_rand() with 2 values and no bruteforce https://t.co/UwPLKeAuB9 Given two mt_rand() output values separated by 226 others, it is possible to compute, without any brute-force, the original seed, and therefore obtain any previous or subsequent mt_rand() output. https://t.co/EzxaraBgN6」 / Twitter
- Breaking PHP's mt_rand() with 2 values and no bruteforce
- Ryo SuzukiさんはTwitterを使っています 「疑似乱数生成器 Xorshift の現代版、「Xoshiro」シリーズの C++ ラッパーライブラリのプロジェクトを公開しました。C++20 の標準乱数生成インタフェースに対応、ゲーム開発や研究プロジェクトに便利です (MIT ライセンス) https://t.co/JITqLE1thj」 / Twitter
- Ryo SuzukiさんはTwitterを使っています 「xoshiro256++ はメモリ消費 32 バイトで周期 2^256-1 の乱数列を生成、BigCrush 検定に合格する統計的品質。 一方 C++ 標準の std::mt19937 はメモリ消費 5,000 バイト(!)で周期 2^19937-1, BigCrush の一部に失敗する。 Xoshiro 開発者の解説記事 https://t.co/fH4AOGExdD」 / Twitter
- xoshiro/xoroshiro generators and the PRNG shootout
- Reputeless/Xoshiro-cpp: Header-only Xoshiro/Xoroshiro PRNG wrapper library for modern C++ (C++17/C++20)
- Shiro KawaiさんはTwitterを使っています 「@HPetegari もっと単純な話で、例えば8bitのランダムな整数をmod 26すると、0-21は10/256、22-25は9/256の確率で得られるので偏りが出るということです。良く使う手は、ランダムuint8を取って、それが234(=26*9)未満ならmod 26、以上なら再試行します。」 / Twitter
- RdRand - Wikipedia, the free encyclopedia
- セキュアキー対応インテル® データ・プロテクション・テクノロジー: Gazzang 社のケーススタディー | iSUS
- Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理 – びりあるの研究ノート
- Xorshift - Wikipedia
- Xorshift - Wikipedia, the free encyclopedia
- Lagged Fibonacci 法 - Wikipedia
- Mersenne Twisterの出力を推測してみる - ももいろテクノロジー
- 高梨陣平さんはTwitterを使っています: "V8で採用された新Math.random向けのアルゴリズムの元となったアルゴリズムxorshift32が3行のシフト演算しか行っていないのに疑似乱数として良い性質を持っていることの解説 https://t.co/H33lXhFaLc"
- Z3Pyでxorshift128+の出力を推測してみる - ももいろテクノロジー
- Z3Pyでglibc rand(3)の出力を推測してみる - ももいろテクノロジー
- Fadisさんのツイート: "CVE-2017-11671: gccがRDSEEDしたあとアプリケーションがキャリーフラグを読む前にキャリーフラグを書き換える命令を挟んできて実際には乱数取れてないのに取れた気分になってしまう不具合 https://t.co/JcvhFdbTyp"
- oss-sec: CVE-2017-11671: GCC generates incorrect code for RDRAND/RDSEED intrinsics
- 最終回 発見プログラミング:増井ラボノート コロンブス日和|gihyo.jp … 技術評論社
- 乱数生成器とゲームと諜報活動の話|Rui Ueyama|note
- 十分大きな乱数をユニークな識別子として使うのがなぜ安全なのか|Rui Ueyama|note
- Kazuho Okuさんのツイート: "PRNGの乱数性をどうプログラム内で担保するかについての僕の意見は https://t.co/crYMKCmrU0 のスレに記したとおりです"
- Kazuho Okuさんのツイート: "@__gfx__ それなら現実問題として、ランダム性を仮定しつつ、仮定が破れた場合にはassertion failureにする、くらいがバランスよさそう"
- Rui Ueyamaさんのツイート: "@kazuho 分散システムですぐにコリジョンが確認できない場合はどうしますか。"
- メルセンヌ・ツイスタ - Wikipedia
- メルセンヌ数 - Wikipedia
- リュカ–レーマー・テストの証明 - Wikipedia
- GIMPS - Wikipedia
- 「史上最大の素数」約2年ぶりに更新、50番目のメルセンヌ素数で桁数は2324万9425桁 - GIGAZINE
- randの既定シード値は1 - yohhoyの日記
- コンピューターはどうやって乱数を生み出しているのか? - GIGAZINE
素因数分解
素因数分解を (RSA を破壊するレベルで) 劇的に高速化
- Tsukasa #01さんはTwitterを使っています 「真偽はともかく、ちょっととんでもない論文が出てきたんだが。国際暗号学会の未査読論文だが、素因数分解を (RSA を破壊するレベルで) 劇的に高速化するアルゴリズムを開発したと主張している。 https://t.co/ApzLqRmjqR」 / Twitter
- Cryptology ePrint Archive: Report 2021/232 - Fast Factoring Integers by SVP Algorithms
- ManishさんはTwitterを使っています 「Seems like Schnorr just dropped a paper that reduces prime factorization to a shortest-vector-problem on a much smaller basis, and this might actually be the death knell of RSA? https://t.co/pN38MFn0zZ」 / Twitter
- Léo DucasさんはTwitterを使っています 「@chelseakomlo @asanso @_henrycase @FredericJacobs @CryptoBits_eu #SchnorrGate update: the new version of March 3rd is much easier to test, requiring SVP in dimension as low as 47 (down from 1800 !). Out of 1000 trials, no factoring relations was found. https://t.co/AXRQ6z3Dqm」 / Twitter
- lducas/SchnorrGate: Testing Schnorr's factorization claim in Sage
- Kazuho OkuさんはTwitterを使っています 「今のところ否定的な印象が多そうなイメージではあります https://t.co/N9CQbeJRew」 / Twitter
- Tsukasa #01さんはTwitterを使っています 「@kazuho 流石に現段階ですぐ「真だと仮定する」のは危なすぎますが、再現実験はしたいですね……。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@a4lg 引用したツイートは、実際に実装して試したけど機能しない、という専門家のツイート(再現コード含む)ですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「RSAの素因数分解は懸賞金かかってるのが色々あるので、今回の手法が機能するなら、やぶろうとする人たちがいて、最初にやぶった人が権利を主張するために解を公開するだろうという見立ては妥当だと思う https://t.co/ohhpWVeHVH」 / Twitter
- RSA Factoring Challenge - Wikipedia
- Kazuho OkuさんはTwitterを使っています 「既存手法でRSA-829が解かれてるのだから、劇的な進歩があったならRSA-896を解くのは当然可能なはずだ、と」 / Twitter
GCD
- tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「a, bが互いに素なら一次不定方程式ax+by=1が解けるという事実が、素因数分解の一意性を示すキーになるというのは、初等整数論を初めて勉強したときにびっくりしたことの一つ。」 / Twitter
- tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「キーになるのは★「pを素数として、p | ab ⇒ p | a または p | b」という命題。 pは素数なのでp, aの最大公約数は1, pのいずれか。 最大公約数がpなら p | a。 最大公約数が1ならば一次不定方程式 ax+py = 1 に解がある。これに b をかけて abx + pby = b。p | ab より p | b。」 / Twitter
- tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「★を使うと素因数分解の一意性が言えるんだけど、それはざっくり言うと次のように議論する。 n = p1p2…pk = q1q2…ql と二通りに素因数分解されたとする。 両辺p1で割れるのでq1q2…qlだが、★によりq1からqlまでのいずれかをp1が割り切る。 これを繰り返せば良いわけですね。」 / Twitter
- tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「「a, bが互いに素なら一次不定方程式 ax+by = 1 に解がある」というのは、整数環 ℤ はPID(単項イデアル整域)であるということ。素因数分解の一意性が成り立つというのは ℤ はUFD(一意分解環)であるということ。 上の話は環論的には「PIDならばUFD」を ℤ に適用してると思うことができますね。」 / Twitter
- tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「と、いう話を次のツイートを見て思いました。 高校のときにこの定理を習い、「どこでこんなの使うんだろう」と思った方も多いかもしれません。 実は縁の下の力持ち的な、結構重要な定理なんだというお話でした。」 / Twitter
- さんしさんはTwitterを使っています 「高校数学で最も影の薄そうな定理の一つ」 / Twitter
- dcさんはTwitterを使っています 「え、やばくね? https://t.co/oXliudrscK」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@tsujimotter ユークリッドですね。最近、GCDやりなおして、それがないと、素数の平方根が無理数なことを示せないってのを学びました。」 / Twitter
LGPL
- GNU Multi-Precision Library - Wikipedia
- 素数判定プログラム2 C言語 GMPライブラリ : Yuki Nakata's Blog
- 素数判定プログラム3 C言語GMPライブラリ : Yuki Nakata's Blog
- ecm.gforge.inria.fr
- 単純な素因数分解アルゴリズムを実装してみる - ももいろテクノロジー
- Msieveを使って大きな数を素因数分解してみる - ももいろテクノロジー
- Msieve download | SourceForge.net
- Msieve 日本語情報トップページ - OSDN
- Msieve の使い方
- 素因数分解プログラム msieve
- OpenSSLとPythonでRSA暗号の原理を知る - ももいろテクノロジー
- wbhart/bsdnt: BSD Licensed Bignum Library
- YAFUを使って大きな数を素因数分解してみる - ももいろテクノロジー
- フロイドの循環検出法 - Wikipedia
- ポラード・ロー素因数分解法 - Wikipedia
- MIT Tech Review: 51、57、91は素数? 数学者が考えたオンライン・ゲームが人気
- 松本 泰さんはTwitterを使っています 「もうひとつ誤解 「現在の量子コンピュータによる暗号技術の安全性への影響」 CRYPTRECの実質的な公式見解。これを出すまでにだいぶ時間がかかったけど。量子コンピュータが実用化すれば公開鍵暗号が解読されるというのは、まったくの誤解。実用化の意味を履き違えている。 https://t.co/ZCTTd1lOPd」 / Twitter
- CRYPTREC | 注意喚起情報
BASE64
- Base64 - Wikipedia
- BASE64エンコード - UIC
- base64ってなんぞ??理解のために実装してみた - Qiita
- Base64のデコード - オンラインBase64のデコーダ
- BASE64とは - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- Base64 Decode and Encode - Online
blog
- 自堕落な技術者の日記 : HPKP(HTTP Public Key Pinning)公開鍵ピニングについて考える - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : X.509証明書の識別名などで使われるMulti-valued RDNとjsrsasignのサポートについて - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 最近の証明書の話題(2): CloudFlare DNS 1.1.1.1サイトのIPv6証明書 - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 最近の証明書の話題(3): デジタル証明書形式の電子委任状のプロファイルに関する考察 - livedoor Blog(ブログ)
- SSL/TLS証明書、その特性について – カスペルスキー公式ブログ
- HTTPSが安全とは限らない | カスペルスキー公式ブログ
- 余分な証明書を悪用した、ドメインへの中間者攻撃とDoS攻撃 | カスペルスキー公式ブログ
- CVE-2020-0601でわかるMSのTLS証明書検証プロセスについて
- インターネットをよりロバストに。RPKIはじめます | IIJ Engineers Blog
- 改めて知ろう、SSLサーバー証明書とは?(第二回) - さくらのナレッジ
- Google Developers Japan: キーストアの鍵の構成証明
- 本の虫: 健全なP2Pネットワークの信用のためには全利用者の参加が必須であるという話
- 高木浩光@自宅の日記 - NEDOのサイトで4つのサプライズ, PKIよくある勘違い(0)「サーバ証明書は単なる暗号鍵であり認証局の署名は実在証明にすぎない」
- オレオレ証明書を使い続ける上場企業をまとめてみた - megamouthの葬列
- Windows CryptoAPIの脆弱性によるECC証明書の偽造(CVE-2020-0601) - ぼちぼち日記
- ZeroSSL ならIPアドレスのサーバ証明書が取得できる - ASnoKaze blog
- DigiCertによるプライベートアドレスの逆引き名の証明書誤発行 - ASnoKaze blog
- AWSにおけるSSL証明書の基本的な取扱い | 外道父の匠
- Chrome58になると自己署名の証明書がエラーになるので、OpenSSLに詳しくなった話
- JSON先進署名フォーマット「JAdES」解説 【第2回】先進署名フォーマットとプロファイルとは何か | GMOグローバルサインブログ
- TLS証明書チェッカーcheck-tls-certの公開 - インフラエンジニアway - Powered by HEARTBEATS
- heartbeatsjp/check-tls-cert: Check-tls-cert is a TLS certificate checker.
- SSLサーバ証明書における2021年以降の仕様変更および業界動向 | GMOグローバルサインブログ
- モバイルデバイス利用者・管理者双方の利便性とセキュリティレベル向上の両立を実現 | GMOグローバルサインブログ
- OpenSSL 3.0のTLS証明書用プライベート鍵生成方法 - インフラエンジニアway - Powered by HEARTBEATS
スライド
- 動的証明書読み込み ngx_mruby編 #hoscon / GMO HosCon 2016 // Speaker Deck
- 秘密分散法の数理
- AM03_shimaoka.pdf
- マイナンバーカードで署名する - Speaker Deck
- LE宮地さんはTwitterを使っています 「JNSA電子署名WG 保証レベルTF から提案内容の説明の為に「電子署名保証レベル作業提案」を公開しました。近年色々な電子署名方式がありますがこれを1つの保証レベルにまとめる取り組みです。TFメンバーで議論して最終版を今年度末に正式公開する予定です。 https://t.co/qkLyRY97n6」 / Twitter
- Microsoft PowerPoint - NWP-eSignAL-20210929.pptx - NWP-eSignAL-20210929.pdf
- JNSA Electronic Signature Working Group
Let's Encrypt
ACME
- autocert - GoDoc
- crypto/acme/autocert at master · golang/crypto
- jetstack/kube-lego: Kube-Lego automatically requests certificates for Kubernetes Ingress resources from Let's Encrypt
- GKE でサービスを HTTPS と HTTP/2 に対応する(kube-lego 編) - Qiita
- Google Container Engine上でLet's Encryptによる証明書を自動更新する(kube-lego) - Qiita
- jetstack/kube-lego - Docker Hub
- Shigeki Ohtsuさんのツイート: "Let's EncryptのACME TLS-SNI-01問題は同一IPでマルチユーザホスティングで任意の証明書がアップロードできる所があったからか。ブラックリストを作って再開するらしいが根本解決はできるのかな? / “018.…” https://t.co/bgF6sTzfMv"
- Shigeki Ohtsuさんのツイート: "Let's EncryptのACME脆弱性の対応方針:TLS-SNI-01の利用は廃止の方向に。新規アカウントはSNI-01の利用禁止。既存アカウントはrenewalに限定。今後HTTP-01、DNS-01 のvalidationに移行を進めていくとのこと。… https://t.co/oe9ReJ1aAL"
- Let’s Encryptが「ACME v2」とワイルドカード証明書サポートを開始 | OSDN Magazine
- Rockridgeさんのツイート: "Let's Encryptでは、2018年3月14日のACME v2プロトコルの導入に伴い、ワイルドカード証明書の発行をサポートした。 / “ACME v2 and Wildcard Certificate Support is…” https://t.co/7VfbVMOAhJ"
- Let’s EncryptとACME | IIJ Engineers Blog
- 続 ACME | IIJ Engineers Blog
- xenolf/lego: Let's Encrypt client and ACME library written in Go
- containous/traefik: The Cloud Native Edge Router
- ゆきさんのツイート: "ACME Client Extension https://t.co/7TKBabYB4I ACMEを用いてクライアント証明書、コードサイニング証明書発行する拡張仕様。カジュアルな気持ちで読み始めたけど、難しい... #yuki_id"
- draft-moriarty-acme-client-00 - ACME Client Extension
- End of Life Plan for ACMEv1 - API Announcements - Let's Encrypt Community Support
クロスサイン
- https://twitter.com/kazuho/status/1387965341855219721 の想定回答
- Kazuho OkuさんはTwitterを使っています 「面白い。そんなことになってるのか。R3自体が変わるわけじゃないのでショートチェーンは自分でチェーン作れば変えられそうだけど、R3自体が今年9月で寿命だからそれまでかな / https://t.co/NATgCsxkKS」 / Twitter
- Let's Encryptのルート証明書切替周り(完結編) | おそらくはそれさえも平凡な日々
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho すみません、良く判って無いのですが「それまで」の意味は何でしょうか??」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu サーバ証明書 —> R3 --> DST Root CA X3というショートチェーンを作れるのは、です」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu R3の次の中間証明書については、新方式に移行する以上、DST Rootに署名してもらうことはしないでしょうし」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho なるほど、判りました。 ご説明ありがとうございます。」 / Twitter
- ファーストサーバ、無料SSL証明書「Let's Encrypt」の取り扱いを開始 -INTERNET Watch
- 無償SSLサーバー証明書Let’s Encryptの普及とHTTP/2および常時SSL化 | OSDN Magazine
- Let’s Encrypt - ArchWiki
- Rockridgeさんのツイート: "Let’s Encryptが国際化ドメイン名(IDN)を含むデジタル証明書の発行をサポート。 / “Introducing Internationalized Domain Name (IDN) Support - Let's …” https://t.co/9ywe6D5OTY"
- Autumn Goodさんのツイート: "2016年1月から2017年3月までに Let’s Encrypt が発行した"PayPal"の文字列を含む証明書はcrt.shで調査すると15,270件あったようです。もちろんほとんどはフィッシングで使われています。この傾向だと今年末にはさらに2万件増える見込みとのこと。 https://t.co/v32Qw4scSb"
- 2017/05/19にLet's Encryptで起こっていた障害についてのメモ - Technically, technophobic.
- Let's Encrypt、ワイルドカード証明書を2018年1月より無料提供 -INTERNET Watch
- ロリポップ!利用者向けにLet's Encryptの無料SSL証明書発行サービスを提供、GMOペパボ -INTERNET Watch
- Let’s EncryptのSSL証明書で、安全なウェブサイトを公開 - さくらのナレッジ
- Let's Encryptのワイルドカード証明書対応はこうなる? DNS-01のみか - Qiita
- Rockridgeさんのツイート: "2017年12月時点で、Let's Encryptが発行したアクティブな証明書の数は4600万を突破。2018年中に9000万を目指す。また、2018年2月27日にはACME v2プロトコルを導入し、ワイルドカード証明書の発行を全… https://t.co/YWxZ14wH1U"
- ユーザーガイド - Let's Encrypt 総合ポータル
- Shigeki Ohtsuさんのツイート: "文科省外局のスポーツ庁の広報ページ https://t.co/qmRFNAsEYY でも Let's Encrypt のDV証明書を利用しているんですが… 他の https://t.co/lcSQE0omPH ドメインでちらほら。httpしか提供してないサイトよりよっぽどましかと。 https://t.co/vFqWfZMJBT"
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "うわー!証明書がLet‘s Encrypt!東証一部上場企業のサイトとしては衝撃的やな…この会社の情シスのレベルとか、この会社がサイバーでの信用というものをどう考えているかとか、色々考えさせられるわ… https://t.co/9UMVfA6BUl"
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "この辺はまぁhttps://t.co/3fYww1OH4oの信頼で推すというのならまぁそうなんですねとしか言えません.民間CAにOVしてもらうのも結構面倒があるようなので,GPKIが正常化したら解決するのかなぁと思ってます…道のりはもう少しありそうですが.LGPKIが最近SECOM依拠になったので見習って欲しいなと.… https://t.co/s5Dju4emcw"
- Shigeki Ohtsuさんのツイート: "最近更新したGPKIの証明書を見ると https://t.co/J8DYsMrdi6 LGPKIと同様の正常化?するのではないかと淡い期待を持って見ています(ごめんなさい島岡さん)。 https://t.co/jlwCng5hKf も再来週expireなので同様に正常化していただきたいものです。… https://t.co/kJ6GZTFv6b"
- 上場企業やgo.jpドメインでもLet's Encryptのサーバ証明書の利用が広がる | スラド セキュリティ
- ssh port forwardingとstone経由でLet's encryptのワイルドカード証明書を作成する - .mjtの日記復帰計画
- Let's Encryptさんのツイート: "Let's Encryptは1億5000万のドメインで使用されています。 https://t.co/RFNQqW12O5… "
- Looking Forward to 2019 - Let's Encrypt - Free SSL/TLS Certificates
- Shigeki OhtsuさんはTwitterを使っています 「Let's Encrypt続報: 未更新の130万証明書の半数以上が利用中。影響度を考慮しBR規定の5日以内の失効を止め、残り83日のExpireを待つ方針。引き続きモニターと連絡を継続。今後この様な大規模インシデントに対応できるよう失効通知するプロトコルの開発を進めると。 https://t.co/yNoxD0IrEk」 / Twitter
- 1619179 - Let's Encrypt: Incomplete revocation for CAA rechecking bug
- nsdでの letsencryptワイルドカード証明書の自動更新
- Let's EncryptがはまったGolangの落とし穴 - ぼちぼち日記
- Shiro KawaiさんはTwitterを使っています 「あああ、SchemerがCommon Lispでよくやるミスだ。参照取っちゃう以外にクロージャに閉じ込んじゃうのもありがち。やはりループ変数を破壊的変更するのは人類の手に余るのでは https://t.co/k6AdNy068V」 / Twitter
- mattnさんはTwitterを使っています 「んータイムライン見てると Go の言語的な性質の様に書いてる人がいくらかいるけど、これ他の言語でも起きるよ?」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@zacky1972 そっち行っちゃえば心配の必要がなくなるってのは自明ですが、ここでの話題は「ループ変数の更新は破壊的変更と気づきにくいからはまりやすいのでは」という話でして… なおSchemerにはループは再帰呼び出しに見えるので当然新しい束縛だろうと思うわけです」 / Twitter
- FadisさんはTwitterを使っています 「certbotのnginxプラグインを使ったLet's encryptの証明書の仕込みが簡単すぎて、TLS簡単になったなぁ、となった」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「今日、lets encryptの証明書取得したら4段になってて、おーって思った。メジャーなCAが4段発行するのひさしぶり感ある https://t.co/LPUM1W8d7d」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「「2021年9月以降は今回のクロス証明書の状態の維持管理ができないので違反しているように思います」MUSTがあるのは同節最終段落で、ルート失効のタイミングで仕様を満たす検証機は失敗するようになるから問題ない気が / https://t.co/Fz1I9lRxtY」 / Twitter
- Let's Encryptのルート認証局移行についてちょっと調べてみた - Qiita
- Kazuho OkuさんはTwitterを使っています 「別の言い方をすると、Androidが仕様に反しルート証明書の有効期限検証していないのが問題であって、そこは、わざわざそうしている歴史的経緯がわからないと議論できないと思うけど僕は経緯をしらない」 / Twitter
BIMI
- BIMIとは? | SendGridブログ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「GMailの場合、BIMI対応した企業ロゴ表示には、VMC(Verified Mark Certificates ) というロゴ証明書が必要。 DigiCertでのVMC料金は紹介割引で$899(定価$1499)、またロゴは事前に商標登録されている必要がある、と。 https://t.co/x8Gz6hD2rm」 / Twitter
- DigiCert Verified Mark Certificates
- 17: Let's Encryptの90日と1秒の証明書の対策のその後の議論の話、なりすましメール対策のBIMIとVMCの話 by ひとくちPKI • A podcast on Anchor
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VMCは、登録商標ロゴ+DMARCの紐づけ証明と。 類似ロゴを登録商標にした場合の誤認はありうるのかな? (商標は国ごとなので、国が違う類似商標など)」 / Twitter
S/MIME
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "S/MIMEは、有効期限が切れた証明書も全部残してないと古いメールの署名検証ができません。自分の過去の証明書もちゃんと残してないと古いメールが復号できなかったりします。ところが、その話をすると「おおっ」という反応がしばしば。つくづく使われてない技術だなと感じます。"
Qiita
- Kazuho OkuさんはTwitterを使っています 「書いてる人、すごい体系的に知識をダンプしていてプロだと思うけど一点「TLS「改ざんの有無」の説明が不適切。デジタル署名ではなく、MAC ( 今はAEAD) で担当」これは不正確。ハンドシェイクの改竄確認はデジタル署名 / https://t.co/BBbFeDodxW」 / Twitter
- 公開鍵暗号関連のテキストの間違いの典型例 - Qiita
- Kazuho OkuさんはTwitterを使っています 「ここまで細かく説明できる人だから、レコードレイヤの改竄検知はAEADだけど、ハンドシェイクレイヤはデジタル署名、というのも正確であってほしい、という」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「自分はここまで細かく網羅的な文章を書くことはできないだろうなーって思いつつ気軽にツッコミ入れてるだけです念のため」 / Twitter
- Shigeki OhtsuさんはTwitterを使っています 「@kazuho PSK mode だと MAC(Finished) もあるかと。AEADじゃないですが。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@jovi0608 おっしゃるとおりですね。PSKモード関係なくFinished「も」ある、という表現が的確でしょうか」 / Twitter
- Shigeki OhtsuさんはTwitterを使っています 「@kazuho はい、そうですね。CertVerify と一部役割がかぶってて説明しずらいですが。」 / Twitter
- 図解 X.509 証明書 - Qiita
Twitter
目視確認
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「Base64エンコードされた証明書などASN.1データを目読みできる人が一定数いる。JSONだとeyJとかで始まるくらいが関の山だが、証明書、CRL、OCSP、CMS SignedDataなどはもうちょっと見ることができて私のコツを紹介すると (1/4)」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「・SEQUENCE(30)で鍵の大きさにもよるが長さが820xxxになるので先頭は概ねMIIかMI ・RSA公開鍵、署名値などは非印字バイトとなるのでスラッシュやプラスが所々多く入る ・逆にASCII印字可能な識別名の値、有効期限の値などはスラッシュ、プラスが入らない (2/4)」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「・Base64は任意の3バイトを4文字で表現するので長い固定のバイトは後ろが3通りのみ ・rsaEncryptionやcommonNameなどの頻出OIDを3パターン知ってればその位置がわかる (3/4)」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「・上記により識別名やsubjectAltName、拡張のOIDなどの場所が大体わかる ・頻出する拡張タイプOID、CMS属性タイプなどの3パターンを覚えると更に読める (4/4) これで、みんなもPEM形式のX.509証明書大好きになっちゃうよね」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「おっと、忘れてた ・証明書の後ろは署名値だから非印字文字を含むのでスラッシュ、プラスが多めだよ これ、マメ知識な!!! (5/5)」 / Twitter
- kjur セキュリティ IT 開発の私的情報収集用+少しつぶやきさんはTwitterを使っています 「書き忘れ(2) ・主要な署名アルゴリズムのAlgorithmIdentifier構造も3パターン覚えておくと、tbsCertificateと署名値の区切りが大体わかってオススメだお」 / Twitter
histric-1
- Yosuke HASEGAWAさんのツイート: "Chrome 58になって、組織内でオレオレ証明書つかってると、ルート証明書いれててもページ遷移毎にmissing_subjectAltNameで証明書のエラー画面が出るようになったので、いろんな会社で叫び声きこえてておもしろいけど大変そう。"
- Rockridgeさんのツイート: "Fx52:security.enterprise_roots.enabledをtrueに設定した場合に、Windowsの証明書ストアに登録された証明書機関をチェックする範囲を拡大した。参照:… https://t.co/dolm0vhOaT"
- Rockridgeさんのツイート: "Fx56:中国の認証機関であるChina Internet Network Information Center(CNNIC)が発行したEV SSL証明書を無効なものとして取り扱うことにした。 / “show_bug.cgi?i…” https://t.co/f0F9XW4dg2"
- Shigeki Ohtsuさんのツイート: "うわっCIAのVault8 、ThawteのFake Root証明書を仕込んでカスペルスキーのWebサーバ証明書を作ってる。25年有効のシリアル番号1のSHA-1署名やん 。 https://t.co/98p2IZNMRa https://t.co/B01q0Wj0kR"
- Makoto Kato ︎︎さんのツイート: "WebTrust for BRに準拠してない運用してるGPKIよりもLet's Encryptの方がCAとしてマシな気がするし、そもそもLet's Encrypt使わない場合でもEVな証明書使わない気がするんだよね、そういうサイト。"
- himorin@5/19-20ベトナムフェスティバル2018さんのツイート: "そ、そろそろGPKIは部署ごとなかったことに・・・・したい・・・ですよねぇ。。… "
- Makoto Kato ︎︎さんのツイート: "ソフトバンクテクノロジー配下のCyber Trust JapanのCAがBR満たしてないかも話出てたけど、どうなったんだろ"
- Hideyuki Tanakaさんのツイート: "インターネッツのssl証明書は中間者攻撃を防ぐために必要な仕組みだったのに、いつの間にかお墨付きを与えるための高額商品みたいな商売になっていたのはなぜなのだろうか…(´・_・`)"
- Rockridgeさんのツイート: "Fx63:証明書のエラーページのデザインが新しくなった。 / “1463755 - Update the design of certificate error pages” https://t.co/MKaN8OGt3d"
- Shinko@C94金西も17bさんのツイート: "官報嘘だろ。 『オレオレ証明書インストールしてね』って頭湧いてんの。馬鹿なの? この国なんなの。まじかよ嘘だろ… https://t.co/UAyCRUkIga… "
- Kazuho Okuさんのツイート: "iOS含むAppleのプッシュサービスが、デバイス毎にユニークなクライアント証明書を使いwifiの切替の度にTLS 1.2で接続していたから、ネットワーク上からデバイスの位置をトラッキング可能だったという話。昨年修正済 #ietf102j"
- Kazuho Okuさんのツイート: "X509をひとことでいうと、証明書の署名鍵の証明する仕組。ダジャレじゃないよ!"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "カスペルスキーは、VirtualBox内のSSL通信にも侵入して、証明書情報を書き換えてMITMを強制してくるのか…… "
- Rockridgeさんのツイート: "Comodo CAが2018年11月1日付けでSectigoへとブランド変更を実施。 / “Comodo CA Rebrands as Sectigo | Sectigo (formerly Comodo CA)” https://t.co/jsTnM8TY08"
- Kazuho Okuさんのツイート: "TLS 1.2までは証明書を平文で交換していたが、iPhoneのプッシュ通知においてデバイスのトラッキングが可能になるなどの問題があり(証明書はデバイス毎に一意だから)、1.3で暗号化されるようになった、と言えば覚えやすいのかしら https://t.co/JmkiJmswr9… https://t.co/23JzcdISGH"
- Push away your privacy: Precise user tracking based on TLS client certificate authentication - IEEE Conference Publication
- Vさんのツイート: "TLS 1.3 で証明書が暗号化されて送られるのまだ広まってないのか。"
- Kazuho Okuさんのツイート: "君たちの言っている公開鍵は、公開鍵交換なのか交換鍵署名なのか公開鍵暗号なのか"
- Kazuho Okuさんのツイート: "公開鍵は必ずしも一般に公開して使うものではないのですよ。例えば、クライアント認証に使う公開鍵は、通信相手毎に違うものを使い、かつ、経路上では暗号化して第三者に見えないようにすることで、名寄せやユーザートラッキングができないようにする、というのが今日的なベストプラクティス… https://t.co/dlSXIw4xQC"
- Kazuho Okuさんのツイート: "暗号応用の標準化に携わってる一技術者として言えることがあるとしたら、脅威モデルが何かという前提を明らかにせずに、あれが正しい、これが間違い、と主張するのは議論が空転するからさけたほうがいいよ、ってことですね"
- 佐々木聖也🍤인권さんのツイート: "> 経路上では暗号化して第三者に見えないようにすること ができるにもかかわらず,認証に共通鍵暗号ではなく公開鍵暗号を利用するのはなぜなのでしょうか。計算コストが無駄ではないですか?… "
- Kazuho Okuさんのツイート: "いい質問だと思います。標準化されていて柔軟(たとえばTLSのクライアント認証機能を使えば、上位で動作するアプリケーションごとに認証機能をもたなくてよい)、セキュア(クライアントデバイス外に鍵が漏れることがない)、しばしばハードウェアサポートがある、といったあたりが理由かなと… https://t.co/VPFg4ndiiF"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば最近はさすがに、公開鍵の特徴を説明しようとして、RSAの特徴を説明してしまうパターンは減った気がする。 (昔、猿にはわからんだろうけど…みたいなタイトルで啓蒙していた人の成果かな?)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ここは明確に複数の事実誤認(RSAとDHの原理の混同、またDHの方が先)してますね。 それ以外に気になったのはどのあたりでしょう?… "
- angel as ㌵㌤の猫さんのツイート: "これ…。第1回はいいけど…。山口准教授って、ガチの専門家のはずだよね。それでこの内容なの? 20年前だったらまだしようがないかもしれないけど、連載当時で2017年なんだよね。… "
- ぎょうせいオンラインさんのツイート: "【連載】カフェ発マイナンバー・ICTが拓くセキュアで豊かな社会 第18回 鍵を公開しても安全? 公開鍵暗号と共通鍵暗号(1) 山口 利恵・東京大学大学院情報理工学系研究科ソーシャルICT研究センター特任准教授 https://t.co/PyURnDLUcY"
- 第18回 鍵を公開しても安全? 公開鍵暗号と共通鍵暗号(1) | ぎょうせいオンライン 地方自治の総合サイト
- Shigeki OhtsuさんはTwitterを使っています 「Apple Safariが2020年9月1日以降発行の証明書の有効期限を1年(と+1ヶ月の398日)に制限をかけるようです。Chromeも追随しちゃうよな。 / “position-on-1-year-ssl-tls-certificates” https://t.co/PE4ehm5FrN」 / Twitter
- position-on-1-year-ssl-tls-certificates
- Shigeki OhtsuさんはTwitterを使っています 「Appleが2020年9月1日よりサーバ証明書の有効期限を最大398日に制限する正式アナウンスです。 / “About upcoming limits on trusted certificates - Apple Support” https://t.co/zZ7QtjieFZ」 / Twitter
- About upcoming limits on trusted certificates - Apple Support
- uint256_tさんはTwitterを使っています 「素数判定, miller rabin くらいしか知らないなあ」 / Twitter
- ほまれちゃん☃️さんはTwitterを使っています 「@uint256_t AKS法、フェルマーテスト、ソロベイ・シュトラッセンテスト等々色々ありますね(自分はミラーラビンとAKS法しか実装したことがない)」 / Twitter
- YurikaさんはTwitterを使っています 「昨日発見した 証明書チェーン確認サイト、便利すぎるhttps://t.co/mynh3bqhGF https://t.co/fwRfk0vndP」 / Twitter
- Quick Chain Check - Powered by Certify The Web
- suzakiさんはTwitterを使っています 「Quick Chain Checker https://t.co/KOvOKY3FGM 面白い。 ついでに各Root CAがどれくらいのシェアがあるのか検索したら 「SSL証明書シェアの50%に到達」2019/05/29 https://t.co/9eYM4CpweO 下記の2018状況とだいぶ変わっている。 「世界のTLS証明書認証局の市場」 https://t.co/EWRwcIPEDQ」 / Twitter
- Let's EncryptのIdenTrust、SSL証明書シェアの50%に到達 | TECH+
- 世界のTLS証明書認証局の市場 - FS_WP_Digicert_Dec18_jw_JAJP.pdf
- Kazuho OkuさんはTwitterを使っています 「規格では、validなパスが見つかるまで全探索しないといけないはずだけど、過去の署名を検証したいみたいなユースケースもあるわけで、有効期限切れのルートを無視するかどうかとかエッジケースの匂いがプンプン / https://t.co/vCya0X4h5J」 / Twitter
- Let's EncryptのルートCA期限切れで OpenSSL 1.0.2が思わぬ事故を起こす件 | ワルブリックス株式会社
WebAssembly
WebAssembly Studio
- mbebenita.github.io/WasmExplorer/
- WasmFiddle
- WebAssembly Studio
- wasdk/WebAssemblyStudio: Learn, Teach, Work and Play in the WebAssembly Studio
- Rockridgeさんのツイート: "既存のWasmExplorerとWasmFiddleを統合し、新機能を追加して、新たなオンライン統合開発環境であるWebAssembly Studioに生まれ変わるという。今のところAlpha版に近いBeta版の状態。 / “S…” https://t.co/o88We9ZzA3"
- Mozillaが「WebAssembly Studio」発表。C/Rust/AssemblyScript対応のオンラインIDE - Publickey
- Coding WebAssembly? New IDE Offers Alternative to Visual Studio -- Visual Studio Magazine
- WebAssembly Studio: MozillaによるオンラインWASM IDEツール
- AST explorer
- chikoskiさんのツイート: "WebAssembly Studioってコールグラフを可視化する機能があったのか。https://t.co/4iP8e3qcvC #webassembly"
WebAssembly
- WebAssembly/proposals: Tracking WebAssembly proposals
- WebAssembly Specification — WebAssembly 1.0
- WebAssembly Core Specification
- WebAssembly Specification
- WebAssembly
- Roadmap - WebAssembly
- Binary Encoding - WebAssembly
- Tanks! Demo - WebAssembly
- Submitting Feedback & Issues - WebAssembly
- Modules - WebAssembly
- JavaScript API - WebAssembly
- Web Embedding - WebAssembly
- NectarJS - JavaScript's God Mode
- WebAssembly Tail Call - Chrome Platform Status
- Embedding — WebAssembly 1.0
- Instructions — WebAssembly 1.0
- WebAssembly Core Specification
- Introduction to WebAssembly — Rasmus Andersson
- WebAssembly Reference Types - Chrome Platform Status
- 「Google Chrome 78」リリース | OSDN Magazine
- WebAssemblyソースコードがGDB、LLDBを使ってブラウザ外でデバッグ可能に
- WebAssembly/wasm-c-api: Wasm C API prototype
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「暗号関係の計算をサイドチャンネル攻撃から守る、などのためにconstant timeな命令をWasmに追加しようというproposal / 1件のコメント https://t.co/lzLoLIk7pr “GitHub - WebAssembly/constant-time: Constant-time WebAssembly” https://t.co/dkekeCzMFR」 / Twitter
- WebAssembly/constant-time: Constant-time WebAssembly
MDN
- WebAssembly Concepts - WebAssembly | MDN
- WebAssembly テキストフォーマットから wasm に変換する - WebAssembly | MDN
- WebAssembly JavaScript API を使用する - WebAssembly | MDN
- WebAssembly テキストフォーマットを理解する - WebAssembly | MDN
- WebAssembly のコンセプト - WebAssembly | MDN
- WebAssembly | MDN
- WebAssembly.Module - JavaScript | MDN
- WebAssemblyコードのロードと実行 - WebAssembly | MDN
- コンパイルされた WebAssembly モジュールをキャッシュする - WebAssembly | MDN
- WebAssembly.instantiate() - JavaScript | MDN
- WebAssembly.compile() - JavaScript | MDN
- WebAssembly - JavaScript | MDN
W3C
- WebAssembly Core Specification
- WebAssembly JavaScript Interface
- WebAssembly Web API
- W3C、「WebAssembly」仕様について初めてのワーキングドラフトを公開 - Publickey
- Rockridgeさんのツイート: "W3CでWebAssembly Working Groupが発足。WebAssemblyの標準仕様化を目指す。なお、引き続きCommunity Groupにおいて新機能の検討が行われる。 / “Launching the Web…” https://t.co/CnyEYnYFAJ"
- WebAssembly Working Group Charter
- Launching the WebAssembly Working Group | W3C Blog
- public-webassembly@w3.org Mail Archives
- W3C Strategic Highlights: Strengthening the Core of the Web (Web Assembly) | W3C Blog
asm.js
HTML5Experts.jp
- Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーJavaScript が動く仕組み | HTML5Experts.jp
- Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsの仕組みとコーディング例 | HTML5Experts.jp
- Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーC / C++をasm.jsに変換するツールEmscripten | HTML5Experts.jp
blog
- JavaScriptの実行速度を劇的に改善するasm.jsの特徴は、CやC++のような言語をJavaScriptのサブセットで記述すること - Publickey
- asm.jsの基本的な使い方・まとめ
- ハイパフォーマンスなWebを実現するasm.js/WebAssemblyとは――Mozillaのルーク・ワグナー氏に聞く:CodeZine(コードジン)
- Emscripten によって生成された asm.js 対応コードは本当に人間が書いたコードより速いのか? : document
- asm.jsとかPNaClとかLLVMに興味あったので調べて回ったら少しだけ理解できた話 - ひつじのにっき
- Extending Emscripten to Support Objective-C — running iOS Apps on the Web
スライド
- 20170222-emscripten-fs // Speaker Deck
- asm.js 減量やってみた // Speaker Deck
- asm.jsとWebAssemblyって実際なんなの?
- asm.js x emscripten: The foundation of the next level Web games
- emscriptenでC/C++プログラムをwebブラウザから使うまでの難所攻略
Qiita
- asm.js: 仕様と実装の今 - Qiita
- asm.jsの速度検証 -その1- 何も考えずに書いてみる - Qiita
Twitter
- Rockridgeさんのツイート: "asm.jsの並列的コンパイルについて解説した記事。Firefoxではasm.jsとWebAssemblyの処理パイプラインを共通化しており、asm.jsでもwasm IRがベースになる。これを独立したスレッドで最適化する。 https://t.co/fvEoHlZ05X"
- Rockridgeさんのツイート: "Fx49:5MBを超える巨大なJavaScriptはメモリ内で圧縮が行われる。asm.jsの消費メモリ抑制に効果があるという。 / “1219098 – re-enable compression on large sources” https://t.co/BxTPVFXEgA"
- chikoskiさんのツイート: "Emscriptenでサポートされているioctl のフラグですが、ざっと読んだ限りFIONREADとTIOCGPGRPだけが実装をもち、TCSETSとTIOCSPGRPはエラーが返るようです。他のは"bad ioctl syscall"となるようです。 #emsn"
- Rockridgeさんのツイート: "asm.jsが何であって、何でないかということは、2013年6月という初期の段階でかなり詳細に説明されていた。 / “azakai: What asm.js is and what asm.js isn't” https://t.co/ivGMTBQa61"
- Fadisさんのツイート: "Linuxカーネルの中にはインラインアセンブリが使われている箇所があるが、JavaScriptエンジン上でLinuxカーネルを動かすには、emscriptenのasm(JavaScriptを挟める)に置き換える必要がある #kernelvm"
- maoさんのツイート: "WASMのパフォーマンスについて👀 良いのう。まぁ将来的にasm.jsはどの道廃止されるし。(2018.3からは非推奨警告が出る) WebAssembly Load Times and Performance https://t.co/bIVG7WrwRT"
- Embind — Emscripten 1.37.3 documentation
- WebIDL Binder — Emscripten 1.37.3 documentation
- asm.js
- PyPy.js
- kripken/emscripten: Emscripten: An LLVM-to-JavaScript Compiler
LEB128
- KMC Staff Blog:DWARF と有限状態機械
- DWARF 3.0 Standard
- LEB128な数の表現 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- LEB128 ‐ 通信用語の基礎知識
- 左シフト演算子および右シフト演算子 (<< および >>)
- Little Endian Base 128 in JavaScript - Google スライド
setjmp
- Cedec 2015 : EmscriptenとC++で作るネイティブライクな商用ブラウザゲーム(Making WebApp like…
- Emscriptenチュートリアルコードの移植性と制限事項(a) - YUEDY
- How would setjmp/longjmp be implemented in WebAssembly? - Stack Overflow
- LLVM Weekly - #140, Sep 5th 2016
- A cartoon intro to WebAssembly | Hacker News
- src/setjmp/longjmp.c - external/github.com/WebAssembly/musl - Git at Google
- Drop emscripten-fastcomp in favor of WebAssembly ? - Google グループ
- ⚙ D24121 [WebAssembly] Add asm.js-style setjmp/longjmp handling for wasm (reland r280302)
- jfbastien/wasm-setjmp: Experimenting with setjmp / longjmp and exceptions in wasm
- Does WASM share a stack with JS? · Issue #126 · WebAssembly/design
関数へのポインタ
- WebAssemblyとコンパイラとランタイム | κeenのHappy Hacκing Blog
- 【WebAssembly】C/C++からJavaScriptで実装した関数を実行する - shogonir blog
- 【WebAssembly】wasm側で動的に作成したインスタンスをJSに渡す - shogonir blog
- WebAssembly モジュールの作成と操作 | Mozilla Developer Street (modest)
スライド
- 20160903-WebAssembly // Speaker Deck
- 20161005-WASM // Speaker Deck
- WebAssemblyに足りないもの - Google スライド
- WebAssembly 入門 // Speaker Deck
- コンパイラの人からみたWebAssembly | κeenのHappy Hacκing Blog
- WebAssemblyとコンパイラとランタイム | κeenのHappy Hacκing Blog
- NickBray_WebAssembly.pdf
- 詳説WebAssembly
- はじめてのWebAssembly // Speaker Deck
- 20170924-html5conference-wasm // Speaker Deck
- 20171018-WASM // Speaker Deck
- WebAssembly Proposals - Google スライド
- chikoskiさんのツイート: "WASM 今の提案まとめスライド(TPAC2017でつかわれたもの)。今の状態、レポジトリ、提案者がまるっとわかって便利 https://t.co/50lGscy6wA #emsn"
- WASM(WebAssembly)入門 ペアリング演算やってみた
- WebAssembly future - Speaker Deck
- WebAssemblyとABI | κeenのHappy Hacκing Blog
- コンパイルターゲット言語としてのWebAssembly、そしてLINEでの実践
- TypeScript で WebAssembly 処理系を書いた話 - Speaker Deck
- AsteriusでHaskellの関数をJSから呼べるようにしてみた(けど失敗) (1)
- tweag/asterius: A Haskell to WebAssembly compiler
- C/C++とWebAssemblyを利用したライブラリ開発
- emscripten_night_7.pdf - Speaker Deck
- reg-viz/reg-cli: 📷 Visual regression test tool.
- WebAssemblyが切り拓くフロントエンドWeb開発の未来
- Updates in 2019 Q2 / WebIDL bindings - Google スライド
- WebAssembly outside of the browser - Speaker Deck
- Tiny WebAssembly Builds / WebAssembly Summit 2020 - Google スライド
- Wasmコンパイラー作りの楽しみ (1)
- Wasmリンカのつくりかた - Speaker Deck
- WebAssemblyのWeb以外のことぜんぶ話す
- Wasmで広がるEnvoyとIstioの世界 - Speaker Deck
- チェシャ猫さんはTwitterを使っています 「多分、世界初の日本語資料です。#k8sjp Policy as Code と言えば OPA が有名ですが、Rego を書くのは実際つらい。Kubewarden では、好きなプログラミング言語で書いたポリシを Wasm にコンパイルして利用できます。 Kubewarden を使って任意の言語でポリシを書こう https://t.co/zPtygOKckA」 / Twitter
- Kubewarden を使って任意の言語でポリシを書こう #k8sjp / Kubernetes Meetup Tokyo 42nd - Speaker Deck
- WebAssemblyの現状と展望 ~言語ツールチェインからWASIまで~ - Speaker Deck
- “世界最速”のペアリング暗号化技術をどう実現するか? ペアリングを使うのに固定多倍長演算が必要な理由 - ログミーTech
- WebAssembly向け多倍長演算の実装
スタックマシン
Twitter
- chikoskiさんのツイート: "Stack machineでジャンプすると、スタックはどうなるんですかね。全部ポップしちゃっていいのかしら。"
- からふるさんのツイート: "ジャンプ先とバランスするようにポップ、もしくは必要ならプッシュしてからジャンプが基本だと思います。… "
- chikoskiさんのツイート: "バランスするがイメージつかないですが、例えば例外のようにジャンプしたまま戻ってこない場合は、必要なもの以外、全部捨ててしまって良いのかしら。… "
- からふるさんのツイート: "単に外に抜けるだけでしたら、基本的にその「外」に相当するスタックの位置まで全部ポップします。ただ、ポップする前にしないといけない操作があれば、もちろん行ってからポップする事になります。ループに飛び込むとかであれば逆に必要なものを積んでから飛びます… "
- chikoskiさんのツイート: "なるほど。積む時もあるんですねえ… "
- からふるさんのツイート: "ジャンプ先は基本的に合流ポイントなので、スタックの状態を他の実行パスと合わせる必要があるのです。なので、積むか下ろすかは状況次第です… "
- スタックマシン - Wikipedia
- www.hpcs.cs.tsukuba.ac.jp/~msato/lecture-note/comp-lecture/
- プログラミング言語処理
- プログラミング言語処理
Emscripten
- Getting Started — Emscripten 1.37.3 documentation
- Introducing Emscripten — Emscripten 1.37.3 documentation
- API Reference — Emscripten 1.37.3 documentation
- Porting — Emscripten 1.37.3 documentation
- CyberDWARF Debugging — Emscripten 1.37.3 documentation
- API Limitations — Emscripten 1.37.3 documentation
- File System Overview — Emscripten 1.37.3 documentation
- File System API — Emscripten 1.37.3 documentation
- Portability Guidelines — Emscripten 1.37.3 documentation
- FAQ — Emscripten 1.37.3 documentation
- Debugging — Emscripten 1.37.3 documentation
- Emterpreter — Emscripten 1.37.3 documentation
- Interacting with code — Emscripten 1.36.11 documentation
- Emscripten and WebAssembly
- EmscriptenからSSEとかpthreadを使って爆速にする : KLabGames Tech Blog
Relooper
- Alon Zakaiさんのツイート: "New C++ Relooper (blocks to JavaScript loops) now in great shape https://t.co/aLvxhFl9 , and ready for emscripten 2.0 https://t.co/v48XhKAx"
- kripken/Relooper: this repo is deprecated, see the main emscripten repo
- Zakai-Emscripten.pdf
- WebAssembly Troubles part 2: Why Do We Need the Relooper Algorithm, Again?
- azakai's blog: Reloop All The Blocks
- emscripten/docs at master · emscripten-core/emscripten
- emscripten/paper.pdf at master · emscripten-core/emscripten
- emscripten/splashpres.pdf at master · emscripten-core/emscripten
制御フロー・例外
- Please Support Arbitrary Labels and Gotos. · Issue #796 · WebAssembly/design
- Solving the structured control flow problem once and for all
- Eliminating go to's while preserving program structure | Journal of the ACM
- Bytecoder/SRC-RR-4.pdf at master · mirkosertic/Bytecoder
- monochromeさんはTwitterを使っています 「CでできてRustにできないことってあるのだろうか?」 / Twitter
- monochromeさんはTwitterを使っています 「label as valueはできないけどあれはgcc拡張なので。 gotoはできないな。」 / Twitter
- κeenさんはTwitterを使っています 「@s_isshiki1969 もう少し詳しくいうと普通のジャンプくらいならloopや(名前つき)breakでどうにかできます。直接表現できないのはループの中に飛び込むgotoですね(双頭ループといわれるらしい) goto label; while(1) { label: } もちろん、チューリング完全な言語同士なので何かしらの翻訳は可能です。」 / Twitter
- monochromeさんはTwitterを使っています 「@blackenedgold なるほど、それを許すと静的な解析が色々と辛くなりそうですね。 まあ機械語に落とせるものならRustでエミュレータ書けば翻訳可能ですね(こういう話ではない」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「へぇ、もうLLVMやV8はWasmのexceptionを一応サポートしてるのか。 https://t.co/dgBIuIqDh4」 / Twitter
- Plan for Phase 4 · Issue #179 · WebAssembly/exception-handling
多倍長演算
- WebAssembly向け多倍長演算の実装
- FadisさんはTwitterを使っています 「ペアリングには楕円曲線暗号を使う→長い整数の演算が必要→多倍長演算ライブラリが欲しい→多倍長演算のアイデアは手で乗算をするときの筆算と同じで64bit同士のキャリーつきの乗算を行う事が筆算の1回の計算に対応する #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「多倍長乗算をする過程でmul命令がキャリーフラグを破壊するのが割と邪魔になるのでIntel CPUにはキャリーフラグを破壊しない乗算命令mulxが用意されている、と #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「wasmで多倍長演算を実装する場合キャリー付きの64bit演算がない→加算の場合は加算後の値と加算前の値を比較する事でキャリーフラグを取り戻せる #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「32bit単位で計算する方式と比較した結果、64bitで計算+carryを復元の方が若干早かった→32bit単位だと複数の加算のキャリーをまとめて扱える→これを活用して最適化した結果32bit単位で計算した方が速くなった、と #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「_ExtInt: clangの拡張で任意の長さのint型を作れる。多倍長演算はclangが勝手にやってくれる。C++に入れようという話もある #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「uint1024_t、パワみがある #kernelvm」 / Twitter
- herumiさんはTwitterを使っています 「[z] += [y] * xの形([]は多倍長, xは64bit)の形を中間レジスタ少なくして計算するのに2個のCF, OFがあれば十分なので、長いビット長でもそれ以上フラグを増やす必要はありません。 https://t.co/8XtC1GB6is」 / Twitter
- hotpepsiさんはTwitterを使っています 「512bitの乗算だとさらにもう一段のcarry flagが必要になるんですか? #kernelvm」 / Twitter
- herumiさんはTwitterを使っています 「typedef unsigned _ExtInt(13) T;でand 8191(=0x1fff)するコードが生成されました。#kernelvm https://t.co/VBtv01UA9O https://t.co/Km3oxAoFEE」 / Twitter
- Compiler Explorer
- Takahiro YamashitaさんはTwitterを使っています 「_ExtInt 、発表では1024bitのインパクト凄かったけど、例えば13bit変数なんかも定義できちゃう? https://t.co/nQnZrwhnIy #kernelvm」 / Twitter
- The LLVM Project Blog
blog
herumi
- melancholic afternoon
- melancholic afternoon
- melancholic afternoon
- melancholic afternoon
- melancholic afternoon
- melancholic afternoon
- melancholic afternoon
histric-1
- WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine
- WebAssembly Troubles part 2: Why Do We Need the Relooper Algorithm, Again?
- WebAssembly Troubles part 3: What About Alloca?
- WebAssembly Troubles part 4: Microwasm
- 【WebAssembly初心者必読】バイナリコードを使って「 WebAssembly 」の基礎を徹底解説してみた! | ヌーラボ
- WebAssembly(wat)を手書きする | 株式会社カブク
- Writing WebAssembly By Hand
- WebAssembly を使って自作言語をブラウザで動かしてみよう - はやくプログラムになりたい
- パフォーマンス向上の次の一手はWebAssembly | フロントエンドBlog | ミツエーリンクス
- Google V8 JavaScript EngineでのWebAssemblyのi32.addの実装を見てみる - めもちょー
- Learning the Webassembly type system | Mauro Bringolf
- C. Gerard Gallant: WebAssembly – Caching to HTML5 IndexedDB
- Hijacking the control flow of a WebAssembly program
- Wasabi
- Olin – Defining a new operating primitive for event-driven services - 掃文資訊
- The future of WebAssembly - A look at upcoming features and proposals
- WebAssembly: 「なぜ」と「どうやって」 [翻訳記事] - DEV Community 👩💻👨💻
- HIW 2018・Haskell Symposium 2018に行ってきた | IIJ Engineers Blog
- WebAssembly版NCMBのビルドを簡単に行う方法 - ニフクラ mobile backend(mBaaS)お役立ちブログ
- WebAssemblyを使って乱数調整ツールをWebに移植した話 - mizdra's blog
- emruby: emscripten でブラウザで動く MRI - まめめも
- WebPerl | Run Perl in the browser with WebPerl!
- WebAssembly が WebGL ビルドのスタンダードに! – Unity Blog
- [続] LuaをWebAssemblyにコンパイルして実行する話 | ブログ :: Web notes.log
- WebAssembly 開発環境構築の本 | WebAssembly 入門
- WebAssemblyを出力するMinCamlコンパイラを実装しました - a_kawashiroのブログ
- 例のアレをWebAssemblyで動かした - うひょー(ブログ)
histric-2
- [続々] LuaをWebAssemblyにコンパイルして実行する話 | ブログ :: Web notes.log
- WebAssemblyちょっとやる - バランスを取りたい
- WebAssembly doesn’t make unsafe languages safe (yet) | Frank DENIS random thoughts.
- WebAssemblyのAOTコンパイラを作った - 飽きっぽい人のブログ
- |詳説|線形メモリとArrayBuffer |〜 wasm-bindgenではどのように文字列を扱っているのか?〜 - Mi in progress
- WebAssembly: Neither Web, Nor Assembly, but Revolutionary — JavaScript January
- Mozilla Hacks' 10 most-read posts of 2018 - Mozilla Hacks - the Web developer blog
- Chrome Dev Summitに参加しました! - from scratch
- ただの素人がフロー解析を通過した – 言語実装 Advent Calendar 2017 – kekyoの丼
- Episode 49 – Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code – Misreading Chat
- WebAssembly Troubles part 4: Microwasm
- Rust/WebAssembly でレトロシンセをエミュレートする | hiromasa.another :o)
- Lucet's performance and lifecycle
- Vim on Wasm on Web Worker on Browser with Atomics - はやくプログラムになりたい
- WASMでPCエミュレータ作った。 - 借り初めのひみつきち
- neri/vpc: A PC Emulator implemented by WebAssembly
- Virtual Playground
- 続・WASMでPCエミュレータ作った。 - 借り初めのひみつきち
- 夏休みだョ!WebAssembly Proposal全員集合!! | Kabuku Developers Blog
- Running Wasm on V8 Without JS API – kanejaku.org
infoQ
- コマンドラインJSONプロセッサJQをWebAssemblyでブラウザに移植する - Robert Aboukhali氏とのQ&A
- V8がWebAssembly SIMDをサポート
- WebAssembly 1.0がW3C推奨としてブラウザ上でネイティブ動作する第4の言語に
- 新たに創設されたBytecode Alliance、モジュールの安全使用のためにWebAssemblyナノプロセスを提案
- WebAssemblyでホットリローディング、リモートデバッグ、統一的なハードウェアアクセスを実現する
- WebAssemblyをブラウザの外で動かすWasmerを触ってみた
- Istio 1.5: Lin Sun氏とNeeraj Poddar氏がistiod、Wasm、およびマルチクラスタサポートについて議論
- Rustから生成されたWASMをCloudfareサーバレスワーカにデプロイする
- WebAssemblyとBlazor: 何十年の問題を解決する
- Grain: WebAssemblyファーストプログラミング言語 - WebAssembly Summit 2021
- PyodideがWebAssemblyを使ってPythonとその科学スタックをブラウザに提供
Zenn
- Webassemblyコンパイラを自作しよう
- WebAssemblyで利用する|実践:形態素解析 kagome v2
- 何も考えずにWASMインスタンスを混ぜると危ないかも
Publickey
- WebAssemblyがW3Cの勧告に到達。「WebAssembly Core Specification 」「WebAssembly Web API」「WebAssembly JavaScript Interface 」の3つ - Publickey
- WebAssemblyが目指していること。ナノプロセスモデルの実現、システムインターフェイス、実行時リンクの実装など - Publickey
- WebAssemblyをWin/Mac/Linuxで実行可能なランタイム「Wasmer 1.0」正式リリース。事前コンパイルによる高速起動やクロスコンパイルなどにも対応 - Publickey
- WebAssemblyがSIMDをサポート、「WebAssemlby SIMD」がChromeやFirefoxで標準実装。画像処理や物理演算など高速実行 - Publickey
- CDNのエッジでJavaScriptとServiceWorkerを実行できる「Cloudflare Workers」がWebAssemblyに対応 - Publickey
- VMよりコンテナよりもさらに軽量な分離技術、V8のIsolateを用いてサーバレスコンピューティングを提供するCloudflare Workers - Publickey
- PythonインタプリタをWebAssemblyへコンパイル、Webブラウザで稼働するPython環境「Pyodide」。Mozillaが開発中 - Publickey
- Fastly CTOに聞く、同社がWebAssembly実行環境の「Lucet」をエッジコンピューティング環境として開発している理由とは? - Publickey
- Fastly、WebAssemblyランタイムのサーバレス「Compute@Edge」ベータ公開 - Publickey
- WebAssemblyで、JITコンパイラに迫る高速なJavaScriptエンジンを実装へ。Bytecode Allianceが技術解説。JavaScript以外の言語でも - Publickey
- uint256_tさんはTwitterを使っています 「https://t.co/dyOhAhlQry 時代が追いついてきた」 / Twitter
- ブラウザがJavaScriptを直接サポートしない世界 - Qiita
- だめぽラボ@技術書典9さんはTwitterを使っています 「参照型の説明が違う気がする。WASMの参照型は他の変数への参照ではなく、ホスト環境のオブジェクトへの参照のはず。」 / Twitter
- PublickeyさんはTwitterを使っています 「ブログ書きました: スタンドアロンなWebAssemblyランタイム「Wasmer 2.0」正式リリース、Win/Mac/Linux対応。SIMDに対応、実行速度が約50%改善、参照型対応など https://t.co/K2Nwu5mzv1」 / Twitter
- スタンドアロンなWebAssemblyランタイム「Wasmer 2.0」正式リリース、Win/Mac/Linux対応。SIMDに対応、実行速度が約50%改善、参照型対応など - Publickey
- WebAssemblyアプリ開発で最も使われている言語はRust、注目の機能はスレッドなど。The State of WebAssembly 2021 - Publickey
- Fastly、JavaScriptエンジンをWebAssemblyで実装。CDNエッジのサーバレス環境「Compute@Edge」でJavaScriptサポート発表(訂正済み) - Publickey
借り初めのひみつきち
- Wasm on Wasm - 借り初めのひみつきち
- wasm ランタイムの高速化 - 借り初めのひみつきち
- 今週の MYOS - 借り初めのひみつきち
- 今週の MYOS - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 7 次世代の OS へ。 - 借り初めのひみつきち
- 今週の MYOS - 借り初めのひみつきち
- Fastly and partners form WebAssembly-based, open-source community Bytecode Alliance
- mallocを使えるようにする(libcのコンパイル) | ブログ - Sumire Articles
- ClangでWebAssemblyにコンパイル | ブログ - Sumire Articles
- What should the memory layout look like for wasm modules? · Issue #81 · rustwasm/team
- WebAssembly.Memory() - JavaScript | MDN
- 物体検出器 EfficientDet をブラウザで高速推論 - OPTiM TECH BLOG
- Web 以外でも期待される WebAssembly - Blockchain との親和性について - LINE ENGINEERING
- Using WebAssembly threads from C, C++ and Rust
- RubyとWebAssemblyの関係についてわかる範囲でまとめる | うなすけとあれこれ
- UTCTF 2020 writeup - Wasm Fans Only - こんとろーるしーこんとろーるぶい
- 出来ることは計算だけ?「WebAssembly」は一体なにが新しいのか〜エンジニアが語る技術愛 #03〜|ミクシル
- Bytecode Alliance
- WebAssemblyはJVMやeBPFのリバイバルではない WasmがWeb以外でもアツい理由 - ログミーTech
- Up to 4GB of memory in WebAssembly · V8
- What’s in that .wasm? Introducing: wasm-decompile · V8
WASI
CloudABI
- Introducing CloudABI
- NuxiNL/cloudabi: Definitions for the CloudABI data types and system calls
- NuxiNL/cloudlibc: CloudABI's standard C library
- MozillaがWASIイニシアティブを発表、WebAssemblyをすべてのデバイス、コンピュータ、オペレーティングシステムで動作可能に
- Updates in 2019Q1: specs and WASI - Google スライド
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「MozillaとFastlyが推進してきたWebAssemblyのシステムプログラミング対応版WASIを更に押し進めるため昔からJS向けSIMD実装など貢献し続けてるIntelとRedHatが参加する形でBytecode Allianceを設立するとのこと。WASIのランタイムには組み込み想定のもあるし楽しみ過ぎる。 https://t.co/GHcgVVBsCb」 / Twitter
- Announcing the Bytecode Alliance: Building a secure by default, composable future for WebAssembly - Mozilla Hacks - the Web developer blog
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています: 「長大だけど背景とか技術的視点で解説したHacksブログ記事もオススメ。 Nodeなどの既存エコシステムで問題になっている安全性の課題をランタイム設計から安全にすることで解消しつつハイパフォーマンスランタイムを実装していく。素敵。 https://t.co/qNwX8fm4zx」 / Twitter
- New Bytecode Alliance Brings the Security, Ubiquity, and Interoperability of the Web to the World of Pervasive Computing - The Mozilla Blog
- WasmerさんはTwitterを使っています: 「Great presentation by @kripken showcasing Asyncify to enable async calls in #WebAssembly. ...with a demo using setjmp/longjmp with WASI and Wasmer! 😍 🎥 Talks are recorded and will be published by @wasmsf soon https://t.co/DFmf0iHVqX」 / Twitter
- chikoskiさんのツイート: ""Running WebAssembly on the Kernel" 衝撃的なタイトルですが、kernelモードでwasmを実行した話。wasmerのローダと、WASIの実装をkernel moduleとして実装するこで、ring0での実行を実現。TCPサーバーの例も付属。なおネイティブより10%程度の速度向上があった。理由は不明。 https://t.co/t1r6xSIhdh"
- Standardizing WASI: A system interface to run WebAssembly outside the web – Mozilla Hacks – the Web developer blog
- Masaki Haraさんのツイート: "https://t.co/saiSjSeTNr Rustのwasm32-unknown-wasiサポートが早速実装されてる。wasiはWebAssemblyをブラウザ以外(のサンドボックス用途)でも使うというやつらしい"
- Add intial support for wasm32-unknown-wasi by alexcrichton · Pull Request #1307 · rust-lang/libc
- chikoskiさんのツイート: "Lucet: fastly産のc / wasm32-unknown-wasiコンパイラ(Sandboxing WebAssembly コンパイラ、と彼らは呼んでいる)。バイナリの処理系もついてる。これもCraneLiftをバックエンドに使ってる。https://t.co/S0W0s9mJAn"
- chikoskiさんのツイート: "clangのターゲットにwasm32-unknown-wasiを追加するには / WASI向けにCをLLVMでコンパイルするには。LLVM8はwasm-32-unknown-unknownをサポートしているので、そこにwasi-sysrootからlibclang_rt.builtins-wasm32.aを追加することで、コンパイルできるようになるらしい:https://t.co/Tom22DOcpg… https://t.co/5L6mPOH733"
- Compiling C to WebAssembly using clang/LLVM and WASI. | Frank DENIS random thoughts.
- WebAssemblyWeeklyさんのツイート: "Compiling C to WebAssembly using clang/LLVM and WASI https://t.co/qYBrzqfUab this brief little guide shows you how to get the latest LLVM and WASI tooling working together"
- chikoskiさんのツイート: "WASIは周到に準備されてたんだなー感はあるな。もちろん様々な主体による継続的なツールに対する投資の結果ではあるのだけれど。"
- chikoskiさんのツイート: ".@wasmerio 0.3.0リリース。WASIに早速対応。すばやい。Lua, SQLite, PHPも実行可能に。デモ有り。… "
- chikoskiさんのツイート: "「既存プロジェクトをWASIに移植するには」1. clan-8を使うこと、2. setjmpやsocketをサポートしないので適切に修正すること、3. llvm-ar/llvm-ranlibなどのパスを正しく設定すること、4. configureも忘れずに修正すること、の4点がポイント、とのこと。移植の実例もあり。https://t.co/iJevDHWifX… https://t.co/dBvFUniyva"
- Porting projects to WASI: the flite program
- WebAssemblyWeeklyさんのツイート: "Porting projects to WASI: the flite program https://t.co/dwNDTilGFg flite is a tet-to-speech app - this post looks at porting it to WebAssembly using the WASI system interface"
- WASI resources.md
- chikoskiさんのツイート: "https://t.co/nMtZpZc33U あれ? --target wasm32-wasi になったの?"
- wasi-sysroot/expected/wasm32-wasi at master · CraneStation/wasi-sysroot
- Rui Ueyamaさんのツイート: "ブラウザ外でのWASMとか、それで大きなプログラムを動かすことを視野に入れて、ビルド速度のためにファイルフォーマットを多少変更してもらったことがある。 https://t.co/6hW1NkOpX4"
- Announcing Lucet: Fastly’s native WebAssembly compiler and runtime
- chikoskiさんのツイート: "さままざまな言語の資産を使える方がネットワーク効果が高まっていいもんね。"
- Capsicum: Practical Capabilities for UNIX | USENIX
- Capability-Based Computer Systems
- Amoeba (オペレーティングシステム) - Wikipedia
- WebAssemblyをあらゆるプラットフォームでセキュアに実行できるようにする「Bytecode Alliance」発足。インテル、Mozilla、Red Hatなど - Publickey
- WebAssemblyをWebブラウザ以外の実行環境へ。システムインターフェイスへのアクセスを可能にする「WASI」の策定開始。Mozillaが呼びかけNode.jsらが賛同 - Publickey
- WebAssemblyが50マイクロ秒以下で起動する「Lucet」。コンパイラとランタイムをFastlyがオープンソースで公開 - Publickey
- Bytecode Alliance
- chikoskiさんはTwitterを使っています: 「Emscriptenにstand aloneモードが追加:1) -oオプションにwasmファイルを指定するとこののモードに。2)WASIのエントリーポイントである_startを出力 3) WASIのAPIを可能な限り使う4) リロケータブルメモリのサポートが不要なのでサイドモジュールとして作ったものより軽量 https://t.co/ALCAtAmHIW」 / Twitter
- Outside the web: standalone WebAssembly binaries using Emscripten · V8
- WebAssembly Standalone · emscripten-core/emscripten Wiki
- emscripten/runtime.js at 65271b0ed8e77d07ced7f6873c3582b6b0ae2719 · emscripten-core/emscripten
- コンテナ技術を捨て、 WASIを試す. こんにちは、NTTの藤田です。 | by FUJITA Tomonori | nttlabs | Medium
- ドッグさんはTwitterを使っています 「ブラウザ外 Wasm の一番のユースケースは個人的にはプラグイン機構だと思ってるけどどうなんだろう.クロスプラットフォームで動くし,サンドボックス内で動かせるから使える API に制限かけてやれば比較的安全にサードパーティプラグインを動かせるし」 / Twitter
- ドッグさんはTwitterを使っています 「セキュリティをしっかり考えたいなら gVisor みたいな VM 使って実行環境を隔離したほうが良さそうではあるけど」 / Twitter
- chikoskiさんはTwitterを使っています 「@Linda_pp プラグインは有力なユースケースだと思います。Shopify は柔軟性とセキュリティの両方を提供するために、WASM プラグイン採用してますよね。あと Server-less での利用も同じ文脈かなと理解してます。」 / Twitter
- Yohei KusakabeさんはTwitterを使っています 「@Linda_pp EnvoyProxyのフィルターがWasmプラグインになったのはまさにそれですよね。同一プロセス上でWasmバイナリを動的にダウンロードして実行出来るしランタイムもある程度管理出来るしでかなり適したユースケースだと思います。最初に聞いたときはどゆこと?ってなりましたけどw」 / Twitter
- ドッグさんはTwitterを使っています 「@yo__ohei Envoy のフィルタが Wasm で書けるの知りませんでした.ありがとうございます.まだ試験的みたいですが,確かに用途にフィットしていて良さそうですね」 / Twitter
- Rust で WASI 対応の WebAssembly を作成して実行 - なんとなくな Developer のメモ
- FadisさんはTwitterを使っています 「wasmがどんなにサンドボックス内に隔離されていても、外とやりとりするAPIに穴が開いていたら安全ではなくなるので、WASIのようなAPIには独自にセキュリティ機構が求められる #kernelvm」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@kotatsu_mi wasm-c-apiはWasmの処理系を埋め込むアプリケーションが、どうやってWasmファイルをcompileしたりinstantiateしたり実行したりするのかを規定したAPI群です。 WASIはWasmファイルがwasi-libcなどを通じておなじみprintfなどを実行するときに必要な、syscall相当のAPI群です。」 / Twitter
Asyncify
- Asyncify — Emscripten 1.39.2 documentation
- GoogleChromeLabs/asyncify: Standalone Asyncify helper for Binaryen
- Pause and Resume WebAssembly with Binaryen's Asyncify
Mozilla
5x
- Rockridgeさんのツイート: "Fx52:WebAssemblyがデフォルト有効化。 / “1342060 – wasm: enable by default” https://t.co/zoPVRYdMbO"
- Rockridgeさんのツイート: "Fx57:Nightlyチャンネルに、WebAssemblyの段階的コンパイルに関する試験的実装が投入された。 / “1277562 - Wasm: tiered compiler” https://t.co/JDSGMaOgrN"
- Rockridgeさんのツイート: "Fx58:WebAssemblyでも、JavaScriptと同様にまずはBaselineがすべての関数をコンパイルし、必要に応じてIonMonkeyが最適化を行う。 / “1391196 - Enable wasm tierin…” https://t.co/sN68l2TzC7"
- Rockridgeさんのツイート: "Fx58:WebAssemblyからJITコンパイルされたJavaScriptを呼び出す処理が約50%高速化された模様。参照:https://t.co/N8YOBj3Z7u / “1360211 - Merge WasmActi…” https://t.co/eUXUP41rp8"
- Rockridgeさんのツイート: "Fx58:WebAssemblyのコンパイラが改良され、ダウンロード完了前のコンパイル開始(ストリーミング)が可能になったほか、メインスレッドで高速なコンパイルを行いつつ、別スレッドで最適化を進める仕組みも入った。 / “Mak…” https://t.co/1oBtpUzXk9"
- Rockridgeさんのツイート: "Firefox 58でWebAssemblyのコンパイラが改良された効果は大きく、コンパイルの所要時間が数分の1で済むようになっている。参照:https://t.co/Wt4o5HTRBo / “Impressive WebAs…” https://t.co/DRdvXbmp8l"
- Rockridgeさんのツイート: "Fx58:WebAssemblyのストリーミングは本バグが取り扱ったものとみられる。 / “1406421 - Baldr: actual streaming compilation of WebAssembly.compile…” https://t.co/A28nM21M6C"
6x
- Rockridgeさんのツイート: "Firefox 60では、JIT entry stubの仕組みを導入してJavaScript関数とWebAssembly関数とで呼び出しに差がないようにし、WebAssemblyの高速化を図った。また、JIT entry stub… https://t.co/xADYt0JAM3"
- Rockridgeさんのツイート: "Fx63:WebAssemblyテキストフォーマットの生成機能は、debugger.htmlに委ねて、SpiderMonkeyから削除。メンテナンスの負担が低下した。 / “1447591 - wasm:: Investigat…” https://t.co/zZjj0dXscY"
- SIMD.js(ECMAScript 7)
- SIMD型について - JS.next
- Rockridgeさんのツイート: "Fx63:SIMD.jsの実装を削除。今後はWebAssemblyにおけるSIMDのサポートに注力していくことになるようだ。参照:https://t.co/XpYmu7g1WF / “1416723 - Remove SIMD.…” https://t.co/nYli69PpbO"
- Rockridgeさんのツイート: "CraneliftはMozillaが開発中の低水準コード生成システムであり、FirefoxのWebAssemblyコンパイラとして導入され、将来的にはIonMonkeyの一部機能を置き換えてJavaScript JITコンパイラに… https://t.co/RVYYbGlWVz"
- Rockridgeさんのツイート: "Fx64:Nightlyチャンネルでは、既にCraneliftが導入済みであり、javascript.options.wasm_craneliftの設定をtrueに変更すれば有効となる。参照:… https://t.co/WjKgkWCY1L"
@rockridge07
連載
- Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第1弾。2008年のJITの導入以来、久々にJavaScriptのパフォーマンスが大きく向上するフェーズに入るという。 / “A cartoon intro to WebAssem…” https://t.co/TC0W4jBmPP"
- Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第2弾。まずは前史であるJavaScriptインタープリタとJITのおさらいから。stubやbailing outの概念に加え、最適化についてもわかりやすい説明があって素晴らしい。 https://t.co/3rzNKlETYa"
- Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第3弾。まだWebAssembly自体は出てこない。機械語とアセンブラ、さらに中間表現(IR)について、図を交えながら説明している。 / “A crash course in as…” https://t.co/t1Cpy2pWLZ"
- Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第4弾。LLVMのIRからWebAssemblyへの変換についてや、モジュールの構造とコードの動作についてなど、一挙に核心に迫る。 / “Creating and working …” https://t.co/qXZod0OJ2F"
- Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第5弾。WebAssemblyが通常のJavaScriptよりも高速に処理される理由を、Parsing/Compiling + optimizing/Re-optimizing/Ex… https://t.co/c9RUO6LEvm"
- Rockridgeさんのツイート: "WebAssemblyの概略を紹介する連載記事の第6弾(最終)。2017年2月28日をもって、WebAssemblyはブラウザプレビューの段階を脱した。各社デフォルトで有効化していく。将来的にはDOMを直接操作可能にし、並列処理も… https://t.co/HdO4Hzemte"
histric-1
- Rockridgeさんのツイート: "レイトレーシングのデモによる速度比較。JavaScript版よりもWebAssembly版(Rustから変換)のほうが、およそ9倍高速になったという。 / “Ray Tracing: WebAssembly vs JavaScr…” https://t.co/R6weunJ5lE"
- RockridgeさんはTwitterを使っています: "WebAssemblyは、Mozillaが提唱するポータブルなバイナリフォーマット。LLVMなどを通じて生成される中間コードは、当初からasm.js相当の機能が確保され、動作
- Rockridgeさんのツイート: "WebAssemblyはasm.jsとの互換性を保ちつつ、実マシンのコードに近い仮想的な命令セットが定義され、メモリが連続的に確保されるなどの特徴を有する。本スライドの最後あたりに将来的な機能についても言及がある。 / “201…” https://t.co/OBNvFx6Jls"
- Rockridgeさんのツイート: "WebAssemblyは規格が候補版の段階に達し、各ブラウザでの実装も進んでいることから「ブラウザプレビュー」のフェーズに突入。MozillaはFirefox 52リリース版で有効化を目指す。既にasm.jsを超えるパフォーマンス… https://t.co/xeFEDDFrBC"
- Rockridgeさんのツイート: "WebAssemblyとWebGL 2.0を組み合わせた美麗なデモの動画。なお、デモ本体はファイルサイズが約100MBあり、動作にかなりのマシンパワーとメモリを必要とする。参照:https://t.co/z9SNQej2dc https://t.co/mwqnQ0f5jX"
- Why WebAssembly is a game changer for the web — and a source of pride for Mozilla and Firefox – Mozilla Tech – Medium
- Rockridgeさんのツイート: "WebAssemblyは様々な点でasm.jsよりも高速に動作するよう設計・実装されている。コンパクトで解析の容易なバイナリフォーマットの採用、JavaScriptの制約を超えたCPU機能の活用、生成用ツールチェーンの改善など。 https://t.co/aT7e6rcQOU"
- Rockridgeさんのツイート: "FigmaはWeb上でUIデザインを共同編集するためのアプリ。asm.jsからWebAssemblyに移行したところ、Firefox上で使用した場合におけるドキュメントの読み込み時間が3分の1になったという。 / “WebAss…” https://t.co/GpjtLnctH1"
- Rockridgeさんのツイート: "「ブラウザプレビュー」フェーズ後のWebAssemblyのロードマップについて。 / “WebAssembly” https://t.co/TtgqkKKhSk"
- Rockridgeさんのツイート: "WebAssemblyのコードの構造と機能を詳細に分析した記事。WebAssemblyにおいて、プログラムとライブラリの区別はなく、すべてがモジュールとして取り扱われるという。 / “Introduction to WebAss…” https://t.co/tmzOgBstp7"
- Rockridgeさんのツイート: "HumbleNetはWebRTCとWebSocketsのラッパーとなるクロスプラットフォームなネットワークライブラリ。asm.js/WebAssemblyの形式でWebゲームに組み込むことで、対戦プレイを可能にする。 / “In…” https://t.co/joNpZrOJ9M"
- Introducing HumbleNet: a cross-platform networking library that works in the browser ★ Mozilla Hacks – the Web developer blog
histric-2
- Rockridgeさんのツイート: "コンパイル済みのWebAssemblyモジュールは今のところJavaScriptのインスタンスを生成して利用することになっている。生成時にはimportsオブジェクトという入れ物にvalues/function closures/… https://t.co/yhQjUcrfZX"
- Rockridgeさんのツイート: "WebAssemblyのメモリ管理はArrayBufferを通じて行われる。これによりメモリは他の部分から分離されて安全性が高まり、ガベージコレクションの対象にもなりつつ、JavaScriptとの値のやりとりが可能になるという。 https://t.co/cot74Cf7Wg"
- Rockridgeさんのツイート: "WebAssemblyには管理領域外のメモリに対しtableを通じて間接的にアクセスする仕組みがある。現在は利用ケースが限られているものの、将来的にDOMへのダイレクトアクセス機能を追加する際に生きてくるらしい。 / “WebA…” https://t.co/hgEqxUU6sl"
- Rockridgeさんのツイート: "WebAssemblyコミュニティグループは現在、SIMDやマルチスレッディングによる並列処理の有効化に注力しており、Firefoxでも2018年初めにはそうした機能がリリース版に実装されて、ネイティブゲームのWebへの移行を後押… https://t.co/edPq6X7wb6"
- Rockridgeさんのツイート: "OpenCVベースのリアルタイム顔検出デモを作成してWebAssemblyに変換した結果、パフォーマンスが同一アルゴリズムを用いたJavaScript版の10数倍になったとのこと。参照:https://t.co/7vfNAWG6Ph https://t.co/3wcMDiCiED"
- Rockridgeさんのツイート: "WebAssemblyの最新動向をトピックとして掲載しつつ、情報交換や議論のためのフォーラムでもあるようなWebサイト。 / “Home | WebAssembly Rocks” https://t.co/JIPIbBX81E"
- Home | WebAssembly Rocks
- Rockridgeさんのツイート: "Safari 11とEdgeHTML 16ベースのMicrosoft Edgeがリリースされたことにより、メジャーなブラウザすべてでWebAssemblyがサポートされるに至った。WebAssembly自体の用途が広がっているほか… https://t.co/nNPUSXMbAM"
- Rockridgeさんのツイート: "binaryen.jsはBinaryenのWeb移植版であり、JavaScriptからWebAssemblyのバイナリコードを生成できるという。TypeScriptもサポート。参照:https://t.co/JxXU0IIEXw https://t.co/LaybgGvW2S"
- Rockridgeさんのツイート: "「Unityなどのゲームエンジンなどで普通に出力される」数十MbのWebAssemblyファイルは、「現在のブラウザだと起動までに大変時間がかかってしまい」、「『タップしてすぐに起動』という世界には遠いのが現状です」。 / “巨…” https://t.co/GL3iRTCjVe"
- Rockridgeさんのツイート: "サムスンの調査によれば、配列のサイズが小さい場合、JavaScriptはWebAssemblyを上回るパフォーマンスとなる。大半のWebアプリはJavaScriptで十分であり、WebAssemblyはゲームのような計算量の多いW… https://t.co/k5XKvZwssk"
- Rockridgeさんのツイート: "Rust言語をWebAssemblyに変換するモジュールは、JavaScriptとWebAssemblyを協調して動作させる仕組みを学ぶのに適しているという。 / “Baby’s First Rust+WebAssembly m…” https://t.co/GySOyIkzcr"
- Rockridgeさんのツイート: "2018年7月にリリースされたUnity 2018.2では、WebGL出力の際にデフォルトでWebAssemblyが用いられるようになった。asm.jsが用いられていた従来に比べてコードサイズが10数%減ったという。 / “We…” https://t.co/irEQxQAGZL"
- Rockridgeさんのツイート: "Large-Allocationヘッダは、目標よりも少し遅れてFirefox 53で有効化されるようだ。ただし、32bit版限定。 / “Web Games Platform: Newest Developments ★ Moz…” https://t.co/LwWYzkkIYR"
- Rockridgeさんのツイート: "MozillaがWebAssembly Explorerと呼ばれるツールを開発中。ブラウザ内でC/C++のコードをコンパイルしてWebAssemblyに変換するとともにその過程を可視化する。生成されたWebAssemblyもテキス… https://t.co/RdcS92vr4Q"
- Previewing the WebAssembly Explorer ★ Mozilla Hacks – the Web developer blog
- Rockridgeさんのツイート: "Mozillaの構想では、将来的にWebAssemblyはメール、SNS、ワードプロセッサなどのアプリやJavaScriptフレームワークにも採用されていく。文字どおりWebを変えていく力を持つので、MozillaはWebAsse… https://t.co/sZyjNr10ZP"
- Why WebAssembly is a game changer for the web — and a source of pride for Mozilla and Firefox – Mozilla Tech – Medium
- Rockridgeさんのツイート: "WebAssemblyベースのゲームなどが大量の連続的なメモリを確保できるように、Fx52でLarge-Allocationヘッダという仕組みを導入予定。e10s有効化を前提に独立のプロセスを割り当てる。32bit版Firefox… https://t.co/hGIg3w4sZx"
- Rockridgeさんのツイート: "MozillaはWebassemblyのコードをまずBaselineがコンパイルし、その後バックグラウンドにおいてIonMonkeyがコンパイルしたものに順次置き換えていくという段階的コンパイルの仕組みを開発中だ。 / “Was…” https://t.co/SFYzOVC0Gp"
- Rockridgeさんのツイート: "Emscriptenの開発スタート、asm.jsの導入、WebAssemblyへの発展という一連の流れを、Mozillaの開発者が語る。ゲームはユースケースであると同時にショーケースでもあり、他の分野にもWebAssemblyが広… https://t.co/GIsTGyx51x"
- Rockridgeさんのツイート: "ソースマップ・パーサの一部をWebAssemblyで置き換えた(従前はJavaScript)ところ、最大5.89倍の高速化を達成し、パフォーマンスのバラツキも抑えられた。RustからWebAssemblyにコンパイルしている点もポ… https://t.co/HgW3lAeEnH"
- Rockridgeさんのツイート: "最新のEmscriptenでは、生成するWebAssembly/JavaScriptについて不要なコードを含めず、無駄なコードを削除することで、サイズを従来の数分の1に減らすことに成功した。 / “Shrinking WebAs…” https://t.co/8UVetvYKj0"
- Rockridgeさんのツイート: "2018年3月に発表された構想を実現させるべく、wasm-packの開発がアナウンスされた。Rust言語のクレートをWebAssemblyに変換してnpmパッケージ化する。 / “Hello wasm-pack! – Mozil…” https://t.co/bGIOywM1c8"
- Rockridgeさんのツイート: "Binaryenコンパイラの最適化処理に新しくレベル4が加わった。レベル3と比較すると、生成されるWebAssemblyのサイズを20%削減できる一方、コンパイル時間は3倍かかるという。 / “Binaryen goes up …” https://t.co/9ntwdmcOxE"
- Firefoxバージョン58でWebAssemblyが10倍高速化
- Firefox 58では、WebAssembly実行がさらに高速化。飛んでくるパケットごとにコンパイル、実行中に裏でコードを最適化して動的に入れ替え - Publickey
- Firefox 58でWebAssemblyの起動を大幅に高速化 - Mozilla Flux
- Mozilla HacksのWebAssembly連載記事の和訳が開始 続編に期待(追記あり) - Mozilla Flux
- Webブラウザで高速な演算を可能にする低水準言語asm.jsと、WebAssembly詳解ーasm.jsを高速に動作させる新しいコンパイラーターゲットWASMとは? | HTML5Experts.jp
- WebAssemblyの基礎から最新動向まで、@chikoskiに聞いてきた! | HTML5Experts.jp
- 清水智公@chikoski氏が語る「WebAssemblyで何ができるのか?」#html5jplat|CodeIQ MAGAZINE
- WebAssembly を速くするには? | Mozilla Developer Street (modest)
- MozillaがWebAssemblyに向けたツールチェインの取り組み「Binaryen」を明らかに | OSDN Magazine
- WebAssembly's post-MVP future: A cartoon skill tree - Mozilla Hacks - the Web developer blog
- MozillaはWebAssemblyのパフォーマンスと機能に焦点を当てている
- ドッグさんはTwitterを使っています 「Mozilla はブラウザの Wasm 実装に注力することになって,ブラウザ外の Wasm 処理系 Wasmtime のチームは Fastly が引き取ることになったのか.Fastly の Wasm 処理系 Lucet に Wasmtime が吸収されるのかな? | 'Bytecode Alliance: One year update' https://t.co/8to9T0g03Y」 / Twitter
- Bytecode Alliance
- ドッグさんはTwitterを使っています 「ちなみに Firefox では Wasm の JIT コンパイラ実装に Cranelift を使ってるので,Cranelift の開発は Mozilla も引き続き参加する」 / Twitter
- κeenさんはTwitterを使っています 「WebAssemblyのエコシステムを牽引するBytecodeAllianceにはWebAssemblyのランタイムが2つあった。Mozilla製のWasmtimeとFastly製のLucet。今回の移籍で元々計画されていた2つのマージが進展する見込。」 / Twitter
- Calls between JavaScript and WebAssembly are finally fast 🎉 - Mozilla Hacks - the Web developer blog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「#WebAssembly でJSのAPIをたくさん呼んでDOMの操作をするのは効率が良くないだろうと思っているんですが、世の中のWebAssemblyの事例を見ると、WebGLのAPIをたくさん呼んで複雑なグラフィックを描画する例が多くあるようです。これらは実はJSから直接呼んだ方が効率が良かったりしないのでしょうか?」 / Twitter
Google
Twitter
- chikoskiさんのツイート: "V8に入ったWASMのコンパイルを速くするLiftoffの紹介。 Streaming APIとの組み合わせでコード出力がTurbofanと比べて10倍高速に。(最適化という意味での)品質は二の次で、スピードを重視。WASMを使ったアプリの起動がグッと速くなる https://t.co/3S9vvtb4pc"
- V8 JavaScript Engine: Liftoff: a new baseline compiler for WebAssembly in V8
- Rockridgeさんのツイート: "LiftoffはChrome 69でデフォルト有効化されるV8搭載のWebAssembly向けベースラインコンパイラ。既存のTurboFanで最適化する場合と比べ、コードのパフォーマンスは半分程度に落ちるが、生成は10倍近く高速に… https://t.co/UlBWojjT4S"
- Rockridgeさんのツイート: "GoogleがPNaClを捨てて全面的にWebAssemblyにコミットする。2018年第1四半期にはChromeアプリと拡張機能以外ではPNaClはサポートされなくなるという。独自仕様による囲い込みの危険がなくなったのは素晴らし… https://t.co/NmM7lT9A6k"
- Rockridgeさんのツイート: "Chrome 57(V8 5.7搭載)では、WebAssemblyがデフォルト有効化されている。 / “V8 JavaScript Engine: V8 Release 5.7” https://t.co/to7mwgq5Wl"
- Rockridgeさんのツイート: "ChromeでWebAssemblyがデフォルト有効化へ。 / “Intent to Ship: WebAssembly” https://t.co/rRC6nqJGnt"
- Rockridgeさんのツイート: "Firefoxと並んでWebAssemblyの実装が進んでいるChromeだが、現在もフラグを有効化しないと試すことができない。もっとも、規格が完成する2017年第1四半期にはデフォルト有効化の見込み。 / “V8 JavaSc…” https://t.co/t0u6WAE6mj"
- Rockridgeさんのツイート: "GoogleはこれまでWebAssemblyのコードをasm.jsに変換してV8のTurboFanに処理させていたが、2016年12月にWebAssemblyをネイティブサポートした模様(デフォルト無効)。既にMassiveなどの… https://t.co/JM9sqkFaJZ"
- dynamis (でゅなみす@もじら)さんのツイート: "V8はそもそもFullcodegenとかCrankshaftとかが残ってるのを今年捨ててBaseline JITのIngitionとOptimizeのTurboFanのセットに切り替えることもあって、TurboFanにJS由来のバイトコードも.wasmも突っ込むシンプル設計になる"
- ドッグさんのツイート: "Google Earth で Wasm のマルチスレッド対応してるのか(あまり内部実装の話は無かったけど).sourcemap サポートは Chrome 71 から | 'Using WebAssembly and Threads (Chrome Dev Summit 2018)' https://t.co/BvT9X4i2j6"
- Surmaさんのツイート: "If you start Canary with the `--js-flags="--experimental-wasm-simd"` CLI flag, you can play with SIMD in WebAssembly 🎉… https://t.co/uILOfpYdBb"
- chikoskiさんはTwitterを使っています 「Chrome95 から Wasm module (WebAssembly.Module) を origin を超えて共有できなくなる、というアナウンス。 https://t.co/kVDpuB3i9O」 / Twitter
- Restricting Wasm module sharing to same-origin - Chrome Developers
- Google Developers Japan: V8 で WebAssembly を試験運用開始
- Chromium Blog: Goodbye PNaCl, Hello WebAssembly!
- Google Developers Japan: さよなら PNaCl、こんにちは WebAssembly
- bitWalk's: WebAssembly と Google Chrome 51
- Google Online Security Blog: Android Security Ecosystem Investments Pay Dividends for Pixel
- rL318539
- JavaScriptエンジン「V8 release v6.5」リリース。WebAssemblyバイナリをダウンロードと並行してコンパイル、ダウンロード完了とほぼ同時にコンパイルも完了 - Publickey
- external/github.com/WebAssembly/v8-native-prototype - Git at Google
- external/github.com/WebAssembly/musl - Git at Google
- Project Zero: The Problems and Promise of WebAssembly
- V8 release v7.0 · V8
- WebAssembly Threads ready to try in Chrome 70 | Web | Google Developers
- Google、画像圧縮WEBアプリ「Squoosh」公開。ブラウザだけで圧縮やフォーマット変換が可能 - Engadget 日本版
- Intent to ship: WebAssembly Threads - Google グループ
MS
- EdgeでWebAssemblyを動かしてみる - ぷろじぇくと、みすじら。 - Misuzilla.org
- Get started building .NET web apps that run in the browser with Blazor | ASP.NET Blog
- aspnet/Blazor: Blazor is an experimental .NET web framework using C#/Razor and HTML that runs in the browser with WebAssembly
- Rockridgeさんのツイート: "MicrosoftもChakraCoreにWebAssemblyを実装中。数か月以内にMicrosoft Edgeの開発版で使えるようにするという。うまくいけばWindows 10 Creators Updateに間に合うだろう。 https://t.co/Tl13XoFqqO"
Apple
- Rockridgeさんのツイート: "次期Safari 11ではWebAssemblyをフルサポートする。B3 JITコンパイラをベースに、Build Bytecode Quickly(BBQ)とOptimized Machine-code Generator(OMG… https://t.co/iZ7DskdRPb"
- Assembling WebAssembly | WebKit
Swift
- kateinoigakukunさんはTwitterを使っています 「嬉しいお知らせです。WebAssemblyに提案していた相対アドレッシング向けの再配置タイプ実装がマージされました。がんばった。 [WebAssembly] Add new relocation for location relative data https://t.co/QYMGPzYvqH」 / Twitter
- ⚙ D96659 [WebAssembly] Add new relocation for location relative data
- kateinoigakukunさんはTwitterを使っています 「コレが入ることで何が嬉しいかというと、Swiftのメタデータが使っている相対ポインタというテクニックがWasm上でそのまま使えるようになって、プラットフォーム間でデータ構造の差異がなくなります。とくに64bit対応を考えると絶対ポインタだとアドレスサイズが変わって全部壊れます。」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「詳しくは https://t.co/etuOYSMnqy」 / Twitter
- SwiftのWebAssembly対応の進捗 | メルカリエンジニアリング
- Swiftの関数型の実行時表現 - Speaker Deck
GitHub
- rhmoller/wasm-by-hand: Small cookbook examples of writing WebAssembly by hand in .wast format
- WebAssembly/wabt: The WebAssembly Binary Toolkit
- WebAssembly/binaryen: Compiler infrastructure and toolchain library for WebAssembly, in C++
- WebAssembly/design: WebAssembly Design Documents
- design/Rationale.md at master · WebAssembly/design
- design/Semantics.md at master · WebAssembly/design
- design/Portability.md at master · WebAssembly/design
- WebAssembly/spec: WebAssembly draft specification, reference interpreter, and testsuite.
- WebAssembly/meetings: Information on in-person WebAssembly meetings
- webassemblyjs · webassemblyjs
- jfbastien/musl: musl libc experiment
- Standalone WebAssembly Example
- maierfelix/glmw: WebAssembly powered Matrix and Vector library
- mbasso/gccx: Transforms CPX (JSX like syntax) into asm-dom Virtual DOM
- chikoskiさんのツイート: "JavaScript のようなWASMのテキスト表現。全ての式に型アノテーションが付いてないところが、asm.jsより素晴らしい(それだけで十分)。https://t.co/JwIuBytJZb… "
- Lord Of The Boardsさんのツイート: "I'm loving walt #javascript #WebAssembly https://t.co/0gGMPYh90z… "
- ballercat/walt: Walt is a JavaScript-like syntax for WebAssembly text format
- stevespringett/disable-webassembly: Browser hacks to disable WebAssembly (WASM)
- hajimehoshi/wasm-bench: Wasm Benchmark Experiment
- Kimundi/greenwasm: An implementation of the Webassembly spec in Rust
- オレオレ言語を作る - Togetter
- オレオレ言語を作る
- sfpgmr/sgl2: TDOPパーサをベースとした言語を作っていく
- rianhunter/wasmjit: Kernel Mode WebAssembly Runtime for Linux
- https://wwwg.github.io/web-wasmdec/
- wwwg/wasmdec: WebAssembly to C decompiler
- WebAssembly
- kgtkr/cl8w
- WasmVM
- WasmVM/WasmVM: An unofficial standalone WebAssembly process virtual machine
- Wasmer
- wasmerio/wasmer: High-Performance WebAssembly JIT interpreter
- WebAssembly/threads: Threads and Atomics in WebAssembly
- design/FutureFeatures.md at master · WebAssembly/design
- WebAssembly逆アセンブルして調べるテスト
- wasm-usui-book/get-started-webassembly.re at master · ukyo/wasm-usui-book
- dcodeIO/webassembly: A minimal toolkit and runtime to produce and run WebAssembly modules.
- Putting in All the Stops: Execution Control for JavaScript
- cloudflare/worker-emscripten-template
- retrageさんはTwitterを使っています 「今回のKernel/VMでWebAssemblyの話が出てくるらしいので,唾つけときます.WIPですがNetBSD RumprunをWebAssemblyにコンパイルしてリンクまで出来たのソースコードが以下にあります.https://t.co/P1ZEkAA8Cw」 / Twitter
- retrage/frankenlibc at rump-wasm
- retrageさんはTwitterを使っています 「rumpkernel+libcを合わせたもので136.5 MBのwasmバイナリができます.(なお,動くとはいっていない) https://t.co/xj7XoKJq2Q」 / Twitter
- FadisさんはTwitterを使っています 「Proxy-wasm: wasmの実行環境に双方向の任意の言語で書かれた物に対するAPIハヤース https://t.co/IBJQezEH1n #kernelvm」 / Twitter
- Proxy-Wasm
- ドッグさんはTwitterを使っています 「Wasm module を事前に初期化してモジュールを初期化した状態に書き換えることで,Wasm のロードを速くするツールか.その分バイナリサイズは増えそうだけど | 'bytecodealliance/wizer' https://t.co/Xu1ArN7zIQ」 / Twitter
- ドッグさんはTwitterを使っています 「結果として初期化以外で使わなかったコードとかは wasm-opt で消えるのか.なるほど」 / Twitter
- bytecodealliance/wizer: The WebAssembly Pre-Initializer
- Virtual x86
infoQ
- WebでZoom: WebAssembly SIMD、WebTransport、およびWebCodecs
- WebAssemblyランタイムのwastimeがReference Typeを実装、Wasmで複合型の処理が可能に
- Ashley Williams氏がWebAssembly SummitでWebAssemblyの未来を語る
- WebAssemblyでコンテナレスの未来を築く - WebAssemblyサミットでのKevin Hoffman氏の講演
- Bytecode Allianceは、サーバサイドでのWebAssemblyの計画を示す
- markdown-wasm:WebAssemblyで記述された非常に高速なMarkdownパーサー
- WebAssembly: デフォルトで安全なエコシステムの構築 - WebAssembly SummitでのLin Clark氏の講演
- "Wasmer" WebAssemblyランタイムを一般提供
- V8 JavaScript Engine 9.0で、JavaScript to WebAssemblyのパフォーマンスを向上
- ブラウザ内でNode.JSを実行するWebContainers
Qiita
- WABT: The WebAssembly Binary Toolkitを使ってみる - Qiita
- WebAssemblyへのコンパイラ言語を簡単に実装 - Qiita
- (Learn the Hard Way)nodejs-8でのWebAssembly自体を調べてみた - Qiita
- lldでwasmをリンクするまで - Qiita
- WindowsでWebAssemblyの環境を整える - Qiita
- WebAssemblyのloopはまりどころ - Qiita
- WebAssemblyのテストプログラム - Qiita
- Rustで書いたWebAssemblyに文字列を渡すときにUTF16, UTF8, StringBuilderのどれが速いか計測してみた(ついでにNative RustとWebAssemblyの速度差も調べた) - Qiita
- RustでWebAssemblyのライブラリを作るときは配列を引数にとらないように気をつけよう - Qiita
- なぜWebAssemblyはasm.jsより速いのか - Qiita
- WebAssembly のベンチマークとバイトコードと Lisp - Qiita
- 初めてRustでWebAssemblyするときに紹介したいチュートリアル (入門) - Qiita
- NuxtでWebAssemblyが使えるようになったみたいなので動かしてみた - Qiita
- オールRubyでフロントエンド開発を夢見て <デモあり> - Qiita
- WebAssembly のベンチマークとバイトコードと Lisp - Qiita
- WebAssemblyにコンパイルする言語を実装する - Qiita
- WebAssembly / Rust / AudioWorklet でシンセ作ってみる - Qiita
- WebAssemblyでカメラをリアルタイムにWebM動画に変換する - Qiita
- RustからWebAssemblyを出力するまで(2019年3月現在) - Qiita
- 2019年のWebAssembly事情 - Qiita
- WebAssemblyのbr命令について - Qiita
- tkrさんはTwitterを使っています: 「あ、そっかwasmのlabelって完全にスタックスコープ離隔されてるのか」 / Twitter
- tkrさんはTwitterを使っています: 「ブロック外のスタックにはアクセス出来ない(スタックを受け取らずに0 or 1の結果を返す事しかできない) i32.const 1 i32.const 2 block (result i32) i32.add end」 / Twitter
- tkrさんはTwitterを使っています: 「(このwasmコードは無効)」 / Twitter
- tkrさんはTwitterを使っています: 「つまりスタック的には frame→label→codeの完全な階層構造と考えて良さそう」 / Twitter
- Node.jsでつくるNode.js-WASMコンパイラ - もくじ - Qiita
- 標準ライブラリ無しのWebAssemblyでDOOMを動かす実験 - Qiita
- RustとWasmで静的ウェブページに日本語検索機能を追加する - Qiita
- Envoy での WebAssembly サポートと WebAssembly Hub, WASM OCI Image Specification について - Qiita
- WebAssembly で画像のリサイズ処理をやってみたら JavaScript + Canvas API より遅かった話 - Qiita
Wikipedia
- WebAssembly - Wikipedia
- WebAssembly - Wikipedia
Twitter
その他
- 七誌さんのツイート: "WebAssemblyを少し眺めた。分岐で相対アドレスを使わずに構造化されているようで、ちょっとBrainf*ckに似ていると思った。 https://t.co/MrB6JRgGqP"
- Kazuho Okuさんのツイート: "goto 禁止教を信じていた頃は while (...) { switch (...) { ... continue; } } とか書いたりもしてたなぁ。最近は while ブロックの最後にラベル置いて goto します"
- Makoto Kato ︎︎さんのツイート: "Linが書いたHacksのWASMのbaseline compilerの話、HNではhttps://t.co/V45io6o5qq のベンチマークの話になってたけど、EdgeのWASMコンパイラでValidationがLazyだからロードだけは速いってのは初めて知った"
- https://lukewagner.github.io/test-tanks-compile-time/
- Rust and WebAssemblyさんのツイート: "Announcing the `web-sys` crate! 🎉🎈🎊 Bindings to ✔️ the DOM ✔️ Web Audio ✔️ 2D canvas ✔️ Web GL ✔️ fetch and the whole Web API!"
- ドッグさんのツイート: "Wasm にコンパイルする前提の C++ のウェブフロントエンドフレームワーク,C++ のコードに唐突に JSX 記法が出てくる(仮想DOMが生成されるっぽい) https://t.co/rRvZYUh8eT"
- asm-dom/todos.cpp at master · mbasso/asm-dom
- herumiさんのツイート: "intを返す関数をvoidを返す関数ポインタ(引数の型は同じ)にキャストして使うとx64では大丈夫だけどwasmだと実行時エラー。それをチェックするにはwasm-ldに--check-signaturesをつける。しかしwasm-ld-6はバグっててそれをつけると逆にエラー。ld-7ではOKでした。@blackenedgold #compiler_study"
- Yosuke FURUKAWAさんのツイート: "AudioWorkletからSharedArrayBuffer経由でwasm threadと直接データやりとりして、最後にAudioMixingEngineでUIにつなぎこむ、、!!ゴクリ #ChromeDevSummit_ja… "
- petamorikenさんのツイート: "@tkihira 突然失礼します。こちらの記事のコンパイル済みの WebAssembly を IndexedDB にキャッシュする件についてですが、 https://t.co/QF98zqUFpA 残念ながら仕様から消えてしまい、Firefox の実装からも無くなってしまったので、追記していただけると幸いです。 https://t.co/qTsuGa3kLn"
- dynamis (でゅなみす)さんのツイート: "貧弱だったWebRTCのエコーキャンセラーは年末あたりにバージョンアップして改善される一方、そもそもオーディオのコーデックとかも含めてWebAssemblyで実装してしまうアプリケーションが出てきてたりブラウザはメディア系も低レベルAPI提供の方向に向かいそうな話。 https://t.co/kF8T4X3e6R"
- ドッグさんのツイート: "Wasm はスタックマシンだと仕様にあるけど実際 locals はそうなってないという話.元々 asm.js のバイナリ表現としてレジスタマシンで設計されていたものからスタックマシンに切り替えた経緯があるのか | 'WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine' https://t.co/BEwMJf7AnT"
- WebAssembly Troubles part 1: WebAssembly Is Not a Stack Machine
- Makoto Kato ︎︎さんはTwitterを使っています: 「パフォーマンストークでFFIが絡む話をする場合は、FFI部分を排除したデータがないと残念なプレゼンになるけど、まぁ結論として残念ですね」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「WASMのJITもTierがあるので、JSのTierをなくしたデータを取るんだったら、WASMも同じようにInterpreter/BaselineJITだけのデータをとって比較しないと意味ないのでは?」 / Twitter
- VさんはTwitterを使っています 「WASM が未来なのすごくわかるなぁ。いつか汎用的な負荷試験ツールを作る日が来たら、シナリオは全部 WASM 化したい。好きな言語で好きなように書ける。」 / Twitter
- Hiroaki NakamuraさんはTwitterを使っています 「@voluntas 同感です。まずはプラグインとかスクリプト機能がWASMになるんでしょうね。ゆくゆくはユニバーサルバイナリーの地位を確立するかもというのも気になります。 ただ現時点だとLuaJITのほうが軽かったりしないのかなあと気になっているのですが。まあでもWASMが広まっていくんでしょうね。」 / Twitter
- VさんはTwitterを使っています 「@hnakamur2 まず Lua を覚えてもらうのと LuaJIT Binding を維持するコストが高いと思うんですよね。k6 がシナリオを JS にしたのは英断だなぁと思っています。「WASM にさえすれば何でもいい」というのは本当に強くて、あとは API をアプリ側に用意するというのは一番キレイな形だなと。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「アプリを動かすための仮想機械を作ったとしても、新しいプラットフォームで動かすには誰かがその仮想機械を移植する必要があるんだよな(そしてそれは「再コンパイルすれば済む」ような自明な作業ではない)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「元ツイートとは関係ないけど、Write once系の技術はdebug everywhereになりがち(抽象化に漏れがあったり、抽象化レイヤーの提供する機能が少なくて環境依存な方法を使ったりするような場合)」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「WebAssemblyのセキュリティーについて https://t.co/MWJgBZqE4g とか読んで調べてるんだけど、Control Flow Integrityの辺りって処理系側が工夫しないと結構簡単にバッファーオーバーランとかで破られちゃうよな…」 / Twitter
- Security - WebAssembly
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「いや、もちろん他の仕様も処理系がアホだと危ないのは当然なんだけど、ジャンプ先の制御って今自分が作ってるコンパイラーじゃ全然守れてないな…って。」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「> wasm-ldに関する公式サイトというかドキュメントみたいのはどれを見ればよいでしょう? wasm-ldはlldのwasm向けポートなのでLLVMが公式ドキュメントということになるのかな? 一応申し訳程度のドキュメントがありますが、あまり期待しないほうが良いと思います!https://t.co/0gXTJKiEaK #wasmnight」 / Twitter
- WebAssembly lld port — lld 12 documentation
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Wasmの例外やGCが実装してなお残る、高級なプログラミング言語のランタイムに必要な機能ってなんだろう。boxing・unboxingとか?軽量スレッドなんかも言語によっては必要かな?」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@miura1729 物理CPUのinstruction setはハードウェアなので仕様先行にせざるを得ないが長い期間の蓄積がある& WebAssemblyみたいな仮想マシンコードも、50年くらい前からp-codeやAS/400の中間コードとして存在し、JVMや.NETのVM命令セットを含め、何度も何度も実装されて知見が蓄積されていますからね…」 / Twitter
- FadisさんはTwitterを使っています 「Wasmer 2.0が出たらしい。WasmerはWeb以外でWebAssemblyを動かす実行環境。2.0ではNaNの振る舞いが中間表現の仕様に入ってfloatの最適化がかけやすくなる、バックエンドにCraneliftが使えるようになる、wasmのデシリアライズが爆速になる等の性能面で影響の大きい改善が目立つ https://t.co/o72eOOATzy」 / Twitter
- Wasmer 2.0 Released With Significantly Faster Runtime Performance, Quicker Deserialization - Phoronix
- ノーンさんはTwitterを使っています 「AssemblyScript雑なまとめ - WASMのInterface Type(外部とやり取りする型)で文字をUSVに移行するという提案(セキュリティーに問題があるため) - 8/3の会議でGoogleやMozillaなどに可決されそう - でもAssemblyScriptは死ぬので、「巨人には勝てんわ。すまん」と声明を発表 https://t.co/wJIstrB3A4」 / Twitter
- mod_poppoさんはTwitterを使っています 「AssemblyScriptが死ぬ話、全然把握してないけど初期のUnicodeを16ビットに収めようとした連中が諸悪の根源であることだけはわかる」 / Twitter
users
@chikoski
- chikoskiさんのツイート: "各ブラウザベンダ連名で出ているWASMの論文。簡約と検証のルールが明示されているのが良い。他のところにちゃんと明記されてないもんね。特にどのような簡約を行うとTrapが発生するのかがわかるところが重要:https://t.co/q0EeWovUsa"
- Bringing the Web up to Speed with WebAssembly - PLDI 2017
- chikoskiさんのツイート: "WebAssembly.compileStreamingが追加された意味。ファイルを全部ダウンロードしなくても、データが来たそばからコンパイルできる。… "
- chikoskiさんのツイート: "WASMからCのソースコードとヘッダファイルを作るコンバーター。https://t.co/DrGr0V9jDf これは結構強力な気がする。うまくするとTypeScript(AssemblyScript)で書いたプログラムをCに変換できるのではないかしら。"
- wabt/wasm2c at master · WebAssembly/wabt
- chikoskiさんのツイート: "JS vs AssemblyScript vs Rustから出力されたWASMの速度比較がメインのWASM紹介記事。配列と文字列操作については、JSが圧倒的に速い。ブラウザに任せられるものは任せよう、というゴールデンルールはここでも健在かな… https://t.co/6HjJMy9D6z"
- chikoskiさんのツイート: "Unityプロジェクトを使ったWASMの起動およびパフォーマンステストの結果。Firefoxがとても早く、Edgeも健闘。ストリームコンパイルを有効にしたChromeはロードがとても早くなっているのを見ると、ストリームコンパイル有無が大きいのだろうな https://t.co/UDU2h8zaP2"
- chikoskiさんのツイート: "WASMからbuiltin関数を呼ぶより速いのウケるけど、当然といえば当然か。… "
- Yosuke FURUKAWAさんのツイート: "まじか、JSからJSの関数呼び出すよりもJSからwasmの関数呼び出すほうが早くなるケースが大部分になりつつあると。JITとwasmのコンパイル後の距離が近くなったんだな。 / “Calls between JavaScript…” https://t.co/Y6Xbvs8VoG"
- toVersusさんのツイート: "JIT/wasm で Activation Record を統一して JS => wasm が JS => JS 並に速くなった。JIT-ed JS も WebAssembly も機械語に翻訳されるのに、以前は別々の Activation Record を C++ でセットアップしており、コストが高かった。"
- toVersusさんのツイート: "JS 側のパラメータを WebAssembly 側の関数に渡す前の unboxing 処理を C++ から JIT 直呼びに変更して、JS => wasm を高速にした。C++ のオーバーヘッドが無くなった。"
- toVersusさんのツイート: "JS がインライン関数を持っている場合、JS => JS の速度に勝てないが、将来的に JS の中に WebAssembly をインライン化できるようにする予定。"
- Wasabi - WebAssemblyにインジェクションしてデバッグを促進 MOONGIFT
- toVersusさんのツイート: "JS のビルトイン関数の中で C++ で実装されている関数の呼び出しにファストパスを設け、wasm => JS built-ins を高速化した。現状、WebAssembly の値型の制約で、math 関数のみ有効。近々、WebAssembly に参照型が追加されるので、wasm-bindgen のように JS を経由する必要がなくなる。"
- chikoskiさんのツイート: "Chrome CanaryでWASMのスレッド機能がプレビューできます。chrome://flags/#enable-webassembly-threads のフラグをenableすると使えます。スレッドについてはこちらにスペックがあります。https://t.co/lXH3TwY4xe… https://t.co/cEyD7AvlfI"
- threads/Overview.md at master · WebAssembly/threads
- bokuwebさんのツイート: "https://t.co/katFUFyNL8 のshared: trueでworker間で共有してるやつですよね?いまいちわかってないんですけど内部的にはsharedArrayBufferなんすか?… "
- chikoskiさんのツイート: "サーバレスWASM…… "
- chikoskiさんのツイート: "「WASMを君の洗濯機にも!」って書いてあって意味不明(褒め言葉)。FPGAに実装されたWASMのスタックマシン。https://t.co/AKt15VHcnf… "
- piranna/wasmachine: Put WebAssembly in your washing machine
- chikoskiさんのツイート: "「コンパイルはダウンロードよりも50M bit/s 速い」忘れがちだけど、ネットワークって随分と遠いところにあるのよね。https://t.co/h6WcuiVLog… "
- chikoskiさんのツイート: "「低水準APIを提供するWebRTC NVと、WASMとの組み合わせでできることは広がる。カスタマイズされたWebRTC実装の持つ機能を、実装をWASMに出力してWebRTC NVと組み合わせて実現するといったこともできる」… "
- chikoskiさんのツイート: "システムコールの呼び方を整理して、WASMの相互運用性をあげようという活動(かな)。今はRustで作ったWASMとEmscriptenで作ったものは、システムコールの呼び方が違うので、そこを統一したい、ということかな。面白いなー。 @wasmerio らしい要求だと思う。https://t.co/gn34VBSEkx"
- WebAssembly & CloudABI – Wasmer – Medium
- chikoskiさんのツイート: "https://t.co/XM7i4Bia1M によると、 命令セット、エンディアン、データ型、配置、呼出規約 システムコール、ファイルフォーマットを定めたものがABI。WASMの仕様で決まっていないのは、システムコールの部分だけ(こうなってるのは理由がある)。"
- chikoskiさんのツイート: "面白い試み。評価のところが面白い。"Speed comparison per browser"のbrowser 3, 4が大勢なら効果大って言えるけど、1,2だけならどうなんだろう?ってところが特に面白い。JS/WASMの呼び出しコストと、JSに対する最適化の結果がブラウザによってバラバラなのが、この差を生んでるのかしらー。… https://t.co/yRGUJ74rZ9"
- Yosuke FURUKAWAさんのツイート: "くぁーJSのホットスポットのところだけ最初からwasmにするっていうかっこいいアプローチ / “Replacing a hot path in your app's JavaScript with WebAssembly | Web | Google Developers” https://t.co/EZcSLKoIxN"
- Replacing a hot path in your app's JavaScript with WebAssembly | Web | Google Developers
- chikoskiさんのツイート: "twiggy is a code size profiler. https://t.co/2rMvCfcanE"
- Introduction - Twiggy🌱
- chikoskiさんのツイート: "WebAssemblyアプリの起動時間のほとんどはコンパイルに使われている。コンパイル結果をキャッシュして1000倍起動が早くなったよ、という記事。例に使ってるNginxはパーズとインスタンス化がそれぞれ10ms,20msなのに対し、コンパイルは1000msかかってる。これをキャッシュでほぼ0にするのでそりゃ速い。… https://t.co/2GUE83DHCS"
- chikoskiさんのツイート: "ついでにハッシュアルゴリズムをSHA256からmeowashに変えて、1MBのバイナリのハッシュ値生成にかかってた時間が5msから4μsへと125倍も速くなった。meowashはこれかなhttps://t.co/3gG4xlwZnc"
- chikoskiさんのツイート: "meowashはセキュティ目的に開発されていないが、https://t.co/e5cQzZBJTK のテストは全てパスしているし、開発陣が持っている大きなデータセットでも今のところハッシュ値の衝突は起きてないとのこと。キャッシュ用途には使えるってことかしら。"
- chikoskiさんのツイート: "インストールという形を取れないから、インストールの最後に「最適化の作業中です」と言いつつコンパイルして、その結果をキャッシュするといったことは取れない(?)。モジュールに分解した上で、小さいプログラムを動かしつつ、裏でコンパイルしていくというアプローチになるのかな。"
- chikoskiさんのツイート: "そういう賢いやつより、とりあえずバーストで転送してしまってガンガンコンパイルする方がいいのかもしれない。"
- chikoskiさんのツイート: "C/C++からのWebAssembly作成解説本。導入から既存プロジェクトの移植まで幅広く対応してる感じ。ファイルの扱いに関する記述があることと、Web workersとの連携について述べられていることが、他にはない特徴だと思う。https://t.co/0FBeCHYr6M #webassembly… https://t.co/Ey0VmZyUFE"
- Level Up with WebAssembly
- chikoskiさんのツイート: "インラインWASM …… "
- chikoskiさんのツイート: "WASMコンパイルされたwat2wasm (from https://t.co/ToKxthdHxQ)を使えば、watで書かれたWASMを、ダイナミックに評価することもできるよね。理論的には #webassembly"
- chikoskiさんのツイート: "SIMD in wasm: Chrome Canaryでフラグつきで使えるようになったWASMのSIMDですが、Emscriptenでの試し方をざっくり解説した記事 https://t.co/vdxPv3T5re"
- SIMD in WebAssembly – tales from the bleeding edge – brionv
- chikoskiさんのツイート: "旧聞ですが、WebAssembly.compileとWebAssembly.compileStreamingの比較: https://t.co/xqj5YE6EYK"
- Loading WebAssembly modules efficiently | Web | Google Developers
- chikoskiさんのツイート: "Twiggy: https://t.co/aFJNd9dRGT #webassembly の関数呼び出しを解析するツール。使われていないコードや、逆によく使われているコードを探すのに使える。バイナリサイズを大きくしているコードも探せる。"
- rustwasm/twiggy: Twiggy🌱 is a code size profiler
- chikoskiさんのツイート: "WASMになったエンコーダを使って、音声をブラウザ上でmp3にしているみたい。おもしろー… "
- Shunya Shishidoさんのツイート: "こえのブログ、すごいとは思っていたけど解説読んで震えている。FastlyとGCPのフル活用、PWA、Web Components、a11y、WASM、Perf Budgetsと、現代の技術全て注ぎ込んであそこまでの完成度に持って行けるのか〜悔しい!という気持ち。 https://t.co/ATSUQqggfD"
- アメブロ2019: こえのブログでのPWA
- chikoskiさんのツイート: "WASM向けJITコンパイラ/コードジェネレータのCrainlift。すでにFirefox Nightlyで使えるのか。フラグをつければ有効になる、とのことらしい。https://t.co/FfyO0Z409s"
- In Firefox Nightly, an option has arrived to use cranelift for wasm compilation : rust
- chikoskiさんのツイート: "その環境でサポートされているWASMの機能を調査するJSライブラリ。いまはミュータブルなグローバル変数、多値関数、多倍長整数のJSとの統合について調査できる。それぞれの機能を使った小さいWASMをインスタンス化して、その成否で調査をするという戦略。単純だけど、効果的だと思う。… https://t.co/q0SRRxZ7vV"
- chikoskiさんのツイート: "ソースコードはこちら https://t.co/MHIEHZ3R9j。デモへのリンクもある。"
- xtuc/webassembly-feature: Test if a WebAssembly feature is supported
- chikoskiさんのツイート: "autoconfという向きもあるでしょうが、polifillが実装済みの不要な機能を落とすといった使い方もあるかと思います。どっちにしてもWebAssemblyはバージョンレスであることを歌っているので、プログラムがランタイムの能力に合わせることが必要だと思います。… https://t.co/n2MKQ9W9XZ"
- Takashi Kawasakiさんのツイート: "autoconfの再来か。いろいろ先が心配にはなる。… "
- chikoskiさんのツイート: ".@wasmerio による、各WASMバックエンドの性能比較。ベンチマークによる性能比較と、ビルド時間を比較している。時間をかけて最適化をすると計算は速くなるという結果。Craneliftがコンパイル時間が短い割には性能が出ている点が面白い。https://t.co/bo3vBhvk8D"
- Benchmarking WebAssembly Runtimes – Wasmer – Medium
- Intent To Shipさんのツイート: "Blink: Intent to Ship: WebAssembly Bulk Memory operations https://t.co/0lZNT6uZ6d"
- Intent to Ship: WebAssembly Bulk Memory operations - Google グループ
- chikoskiさんのツイート: ""Bulk Memory Operations and Conditional Segment Initialization": https://t.co/wFM4BD9lw5 memset / memcpy相当の命令を #webassembly に追加するプロポーザル。パフォーマンス向上が主なモチベーション。Blinkへのship approval request: https://t.co/rOAcpyWKch"
- bulk-memory-operations/Overview.md at master · WebAssembly/bulk-memory-operations
- Intent to Ship: WebAssembly Bulk Memory operations - Google グループ
- chikoskiさんのツイート: "命令はまあ足せば足せるんだろうけど、どう足していくつもりなんだろう。CISC / RISCどっちのアプローチを取るんだろう?それとも、最近はそれ以外にもアプローチがあるのかしら?"
- chikoskiさんのツイート: "WASMバイナリを呼ぶためのPythonライブラリ。"🐍+🦀+🕸 Python extension to run WebAssembly binaries."というリード文が可愛い。内部は@wasmerio とうまくPythonを繋げてる模様。… https://t.co/MModWL9nam"
- chikoskiさんのツイート: "仕事を引き寄せる 愛され言語2019春(仮)の第6位がWebAssemblyの模様(StackOverflow調べ)。あれは言語、そう言語だけれども。… "
- WebAssemblyWeeklyさんのツイート: "WebAssembly - one of the most ‘loved’ languages in the StackOverflow developer survey 2019 https://t.co/kAqWTgLmca… "
- Stack Overflow Developer Survey 2019
- chikoskiさんのツイート: "用途にあわせて @wasmerio がバックエンド(wasm-nativie codeコンパイラ)を切り替えられるようにした話。とにかく起動を早くしたい、もしくはハードウェアが重たいコンパイル処理に耐えられない→シングルパス。性能が欲しい→LLVM。その中間→CraneLift https://t.co/LE6Szk31T4"
- A WebAssembly Compiler tale – Wasmer – Medium
- chikoskiさんのツイート: "WebAssembly Package Manager(WAPM). npmライクなWebAssembly向けパッケージマネージャ。今のところはパッケージ数も少ないし、パッケージの粒度もまちまちなので、よくわからないけれど、依存グラフの解決をやってくれると楽しくなる、かもしれない https://t.co/rEDWrABK4Q"
- Announcing WAPM: The WebAssembly Package Manager – Wasmer – Medium
- chikoskiさんのツイート: "公開されているパッケージの一覧はこちら:https://t.co/znQZHYUFjH ."
- wapm | WebAssembly Package Manager
- chikoskiさんのツイート: "wapmの利用ガイド:https://t.co/C8DrMCuTaf npm同様に install でパッケージを取得する。公開はpublicコマンド。package.jsonの代わりにwapt.tomlにパッケージのメタ情報を記述する。tomlを使うところはRust由来な感じ。"
- wapm | WebAssembly Package Manager
- chikoskiさんのツイート: "publicではなく、publishコマンドでした。タイプミス"
- chikoskiさんのツイート: "しゅーまい @__syumai さんにlikeされて思い出したけど、denolandと組み合わせると、結構面白くなるのでは。"
- 🦀 Ivan 🐘🐍💎 Enderlin 🕸さんのツイート: "JavaScriptCore as a WebAssembly binary, https://t.co/aQA2qyJObr. $ wapm install -g jsc $ jsc >>> function multiply(a, b) { return a * b } undefined >>> multiply(10, 20) 200 >>> Date() Mon Apr 15 2019, … Crazy :-). #webassembly #javascript #javascriptcore"
- jsc - wapm
- chikoskiさんのツイート: "Zephyr project(組み込み向けリアルタイムOS)の上で動くWASMランタイム。libcのサブセット(ほんとに小さい)付き。ワクワクするな!… "
- Anas Nashifさんのツイート: "Nice to see a WebAssembly Micro Runtime project from @IntelOpenSource running on @ZephyrIoT. https://t.co/djBVKTv5bO"
- intel/wasm-micro-runtime
- chikoskiさんのツイート: "ざっとREADME読んだ限りでは、割り込み周りはOSが面倒みてくれて、WASM的にはイベントとして抽象化される感じ。より細かいアクセスはネイティブコードをインポートとして与える感じになるのかな… "
- bokuwebさんのツイート: "うお、intelなのか。割り込みとのつなぎとかどうなるんだろうか。。。"
- chikoskiさんのツイート: "WASM Unikernel…パワーワードすぎる。@wasmerio をOPS unikernel上で走らせてみた話… "
- WebAssemblyWeeklyさんのツイート: "Running WASM Unikernels https://t.co/JJMoBksOoX - taking a simple Hello World app, compiling to wasm, running it on @wasmerio within an OPS unikernel"
- Running WASM Unikernels
- chikoskiさんのツイート: "WASM向けのtracing allocator。デバッグ向け。Rust製。Rustから作られたWASMのメモリ使用状況を調査できる。ブラウザでもNodeでも動作。 https://t.co/N54smbHKnz"
- rustwasm/wasm-tracing-allocator: A global allocator for Wasm that traces allocations and deallocations for debugging purposes.
- chikoskiさんのツイート: "1Passwoed、WebAssemblyを利用することで、Chromeでは最大13倍、 Firefoxでは同じく最大39倍の高速化に成功。… "
- 1Password X: May 2019 update | 1Password
- chikoskiさんのツイート: "味わい深い結果。v8の型推論は強力なのだなとも思えるし、生存期間が長く計算能力が必要な処理にはWASMを使った高速化は有効なのだろうとも思える。さて実行回数に対する損益分岐点はどこらへんになるのだろうか、などなど。"
- hiroppy🇮🇪さんのツイート: "Node.jsのECMAScript ModulesでWebAssemblyが使えるようになる🎉🎉🎉 https://t.co/LNPiT4UKvq… "
- esm: --experimental-wasm-modules integration support by guybedford · Pull Request #27659 · nodejs/node
- chikoskiさんのツイート: "WASMとES modulesとの相互運用性に関するプロポーザル(の説明スライド)なんだけれど、インポート、エクスポート、instantiationで、それぞれ何をやっているかを説明しているので、面白いかもしれない。文字がないのでわかる人はわかる、てきな感じかも、しれない。https://t.co/lFsG9XIoVc"
- WASM ES module proposal
- Running WebAssembly on the Kernel – Wasmer – Medium
- chikoskiさんのツイート: "この速度向上は、kernelモードとuserモードの切り替えがないことに由来する模様。なお今回の結果は、起動は早いが最適化は不十分なシングルパスバックエンドを利用したもの(@wasmerio はバックエンドを切り替えられる)。最適化をより行うCrainliftやLLVMのバックエンドを使えばより早くなる見込み。"
- chikoskiさんのツイート: "Bllockly (https://t.co/lwNdsDJCBO)向けのAssemblyScriptコードジェネレーターが作成された模様。つまり、ブラウザ上で動作しWebAssemblyにコンパイルできるビジュアルプログラミング言語がある、ということ。… https://t.co/VwZL2wQlv9"
- Blockly | Google Developers
- Robert Longさんのツイート: "Working on an @AssemblyScript code generator for Blockly and compiling it to WebAssembly in browser. Still a long way to go, but it looks doable. I'll open source it after I get a little further.… https://t.co/AuMqKuE4CS"
- chikoskiさんのツイート: ".NetのアプリをWebAssembly化するまでの話。Blazorを使って.Netで書かれたHello Worldアプリを、WASM化するまでの流れが説明されている。https://t.co/uTjWM1ln8a"
- WebAssembly-ifying .NET with Blazor
- chikoskiさんのツイート: "Compiling C to WebAssembly without Emscripten: https://t.co/zoV5YJSoYP Clangを使ったCからWASMへのコンパイルを、step by stepで解説している。前提知識があまりなくても読めます。一般のCコンパイラ話として読んでも楽しい。"
- Compiling C to WebAssembly without Emscripten — DasSur.ma
- chikoskiさんのツイート: "あと超適当ではあるけれど、メモリアロケータを実装してみてもいるので、何気なくnew Array();とかやっている裏で、何がおきているかに興味ある人もどうぞ。https://t.co/zoV5YJSoYP from @DasSurma"
- chikoskiさんのツイート: ""Audio Worklet Design Pattern":タイトルはAudio Workletだけれど、実質WASMを使ったストリーム処理のデザインパターン集になってる。データの受け渡し方法と、スレッド間の同期するかしないかが、デザインの分かれ目になっている。 https://t.co/qvJbiPmzQo"
- Audio Worklet Design Pattern | Web | Google Developers
- chikoskiさんのツイート: "サンプルコードはこちら:https://t.co/X7HG82OTop"
- web-audio-samples/audio-worklet/design-pattern at gh-pages · GoogleChromeLabs/web-audio-samples
- chikoskiさんはTwitterを使っています: 「さらっと書いてあるけど興味深い:Ayncifyによる非同期呼び出し。そして setjmp/longjmpのデモ。これでgoto文やexceptionを実現できる。 https://t.co/7S7YxHocwh」 / Twitter
- chikoskiさんはTwitterを使っています: 「EmscriptenがLLVMバックエンドを使うようになったので、./emsdk install latestでPost MVP機能が使えるコンパイラがインストールされるようになりました。そして、fastcompを使いたいときは、latest-fastcompと明示するようになりました。」 / Twitter
- chikoskiさんはTwitterを使っています 「Emscriptenを使わずに、Cでmp3デコーダをつくった話。 ヒープの管理方法についての説明が主なので、CプログラムのWASM化するさいにひろく参考になると思う。スタックの起点から上にヒープが伸びていく、ところがポイント https://t.co/bO8eSEaqua」 / Twitter
- Minimp3 Wasm Without Emscripten – kanejaku.org
- chikoskiさんはTwitterを使っています 「Conditional Sections. いくつかのsectionを複数回出現可能にした上で、sectionを有効にするための条件を記述するための conditional section を追加する。JS API も有効な機能セットを渡せるように拡張される、らしい: https://t.co/T0JbSAt73z」 / Twitter
- conditional-sections/Overview.md at master · WebAssembly/conditional-sections
- chikoskiさんはTwitterを使っています 「Firefox で使われているライブラリの一部を、WASMサンドボックス内で動かしてるよ、という話。 プロセスを作るまではいかないけど、メモリアイソレーションしたいというニーズに応えるため、RLBoxというサンドボックスを突くった、とのこと: https://t.co/sckg8jYfFB」 / Twitter
- Securing Firefox with WebAssembly - Mozilla Hacks - the Web developer blog
- chikoskiさんはTwitterを使っています 「論文:https://t.co/E6vAKhcnDi "we find the end-to-end memory overhead of RLBox to be modest—25% with SFI, 18% with process isolation—and transient, appearing only at content load time. The impact on page latency is small: 3% and 13% with SFI and process isolation, respectively"」 / Twitter
- LibrarySandboxing/paper.pdf at master · shravanrn/LibrarySandboxing
- chikoskiさんはTwitterを使っています 「NaCLについて、何も知らないんだけど、やっぱり振り返った方がいいんだろうか。」 / Twitter
@qwerty2501
- クワーティさんのツイート: "どうしてwasmにはfloatにだけmax,min命令があるんですかねぇ。しかも条件が結構複雑で実装がだるいという"
- クワーティさんのツイート: "wasmのfloatのminとmax命令よくわからんからlibcのfminとfmax関数にぶん投げてええか?"
- クワーティさんのツイート: "relopとfbinopを実装したし、今日の進捗としてはこんぐらいでいいだろ"
- クワーティさんのツイート: "LLVMBuildAShrとLLVMBuildLShrの説明がどこにも見つけられなくて困っている"
- Atsushi Enoさんのツイート: "arithmetic shift right とlogical shift rightでは… "
- クワーティさんのツイート: "あーそれだ。多分 ありがとうございます… "
- クワーティさんのツイート: "LLVMにrot命令が存在しない・・・"
- クワーティさんのツイート: "end命令のときに対応する命令がloopか、そうじゃないかで振る舞いが変わってくると思うんだけど"
- 7594591200220899443さんのツイート: "WASM案外遅くねえか?っていう報告が出ている https://t.co/sSZM7zkCPk"
- [1901.09056] Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code
- qwerty2501さんのツイート: "遅い理由として考えられるのは、 - 規格上余計にマシンコードと比べて余計に仮想メモリの処理が入る - ブラウザの最適化実装が甘い - スタックマシンなので言語のコンパイラが最適化しにくい? かな。現状遅い理由で多いのは2番目っぽそうだけど"
- qwerty2501さんのツイート: "個人的にWASM vs Native CodeよりもWASM vs JVMの比較のほうが妥当な比較な気がする。"
@blackenedgold
- κeenさんのツイート: "wasmは最初の引数がスタックの底。最後がスタックトップ。 #κeenメモ"
- κeenさんのツイート: "webassemblyのバイナリツール、セマンティクス的に間違っててもフォーマットが正しかったらとりあえずディスアセンブルしてほしい"
@rockridge07
- Rockridgeさんのツイート: "JavaVMのような実行環境があれば、将来的にWebAssemblyベースのデスクトップアプリケーションも作成可能になる。 / “WebAssembly is more than the web” https://t.co/77uD4mFOlU"
- Rockridgeさんのツイート: "Rust言語から生成されたWebAssemblyがマルチスレッドで動作し、各スレッドがメモリを共有するという仕組みができつつある。 / “Multithreading Rust and Wasm | Rust and WebAs…” https://t.co/r3PF3bUG87"
- Rockridgeさんのツイート: "WebAssemblyがMinimum Viable Product(MVP)に達した時点で、ゲームでいう「スキルツリー」が開放され、様々な領域へと発展していけるようになった。本記事では獲得間近の「スキル」に当たる各種新機能を紹介… https://t.co/rq0iPTUp4q"
- Rockridgeさんのツイート: "Doom 3をEmscriptenを用いてWebAssemblyに移植した話。サイズがおよそ400MBあるといい、読み込みには相当な時間がかかる。参照:https://t.co/kfsfSODK2i / “Google グループ” https://t.co/cdbKMmijAn"
- Rockridgeさんのツイート: "サイトに登録されたMIDI形式のファイルを再生できる。その数11万以上。C言語で書かれたプレイヤーをWebAssemblyとJavaScriptに移植したという。参照:https://t.co/axJZ5LsZXe / “Pop…” https://t.co/FbxpLWDpjW"
- The Lost Art of MIDI – Bringing <bgsound> Back to the Web - Speaker Deck
シフト
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「C言語とかでunsigned intな値を32bit以上シフトするのって未定義動作なんですかね。 https://t.co/BpKdcBSxpp が手元と結果が違うな。」 / Twitter
- 6Rr5UX - Online C Compiler & Debugging Tool - Ideone.com
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「https://t.co/sV2MCUIQpe いわくそうらしいな。」 / Twitter
- c - What's bad about shifting a 32-bit variable 32 bits? - Stack Overflow
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「未定義動作がないように作っているからWasmのi32.shlはmod 32した上でシフトするのか。なるほどなー。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「こういうの漫然と仕様書読んでたときは全然気づかなかったなあ。やっぱ手動かしてこそやね」 / Twitter
Table
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「WebAssemblyのTableってどういうユースケースを想定してるんじゃろうか。大抵のホストの関数をimportすれば賄えるようにも見えるような...?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「https://t.co/TyUbPpRfF7 に詳しく書いてあるっぽいな。」 / Twitter
- WebAssembly table imports… what are they? - Mozilla Hacks - the Web developer blog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ああー、そうか。ホストの関数をWebAssemblyで書かれたコールバックを受け取る関数に渡したいときか。」 / Twitter
- S.F.さんはTwitterを使っています 「あとはtableだなあ。。これいわゆる関数ポインタを収めるテーブルなんだよね。関数の間接コールを実現するための仕組み。むかしむかしだとジャンプ・テーブルですな。」 / Twitter
- S.F.さんはTwitterを使っています 「線形メモリ上に関数のアドレスを置くというのはセキュリティ上の考慮からNGとなっていて、関数への参照をこのテーブルにセットするんだよね。そしてこのテーブルへのインデックスと関数の型(type)を指定して間接コールを実現する。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「あれ、どういう場合に破壊的な書き換えが発生するのかわからなくなってきた... https://t.co/gtwIE299XX で紹介されているサンプルでは明らかに破壊的に変更してるのに、私が作ったサンプルでは書き換えられない...」 / Twitter
- WebAssembly.Table() - JavaScript | MDN
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「どうもコンパイルするwasmの内容に依存しているようなので、何か書き間違えてるんだろうけど...」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「(elem $tableName ...) ではダメで、 (elem (i32.const 0) ...) じゃないといけないのか。前者の方法ではtableの初期化が無視されている?」 / Twitter
wasm-decompile
- chikoskiさんはTwitterを使っています 「WebAssembly Binary Toolkit (wabt) に wasm-decompiler が追加されたよ、という記事。wasm を与えると、人間が読めるコードを出力するツール。同種のツールである wasm2wat よりも可読性は高い模様。メモリのインデックス操作やコントロールフローの解析は頑張ってる様子: https://t.co/tOYL9MMC5d」 / Twitter
- What’s in that .wasm? Introducing: wasm-decompile · V8
- chikoskiさんはTwitterを使っています 「wasm-decompiler の README: https://t.co/d3MEH5mcNK」 / Twitter
- wabt/decompiler.md at master · WebAssembly/wabt
GC
- chikoskiさんはTwitterを使っています 「最後のセッション。スピーカーはW3C WASM CGのチェア。歴史の振り返りから。やると決めてから2週間でプロトタイプ作った。」 / Twitter
- chikoskiさんはTwitterを使っています 「工程。パーザーはやっぱり時間がかかる https://t.co/st1UTJ7yoU」 / Twitter
- chikoskiさんはTwitterを使っています 「2017年時点での仕様の分類 https://t.co/iqJLnzGfQV」 / Twitter
- chikoskiさんはTwitterを使っています 「2017年の時点で、GCは作ろうと思ったら作れた。全ての変数が線形メモリ上にあるなら。実際は、仕様上ローカル変数はスタックの上にあることが大切だったし、embedder側からの参照の解決も決まってなかった。」 / Twitter
- chikoskiさんはTwitterを使っています 「2018年の時点でのGC。参照や構造体を表す型が導入された。参照は、Embedder側の物も指せるのでなかなか大変。 https://t.co/IgQWboL5d7」 / Twitter
- chikoskiさんはTwitterを使っています 「C APIも2018年に定義された。これはプログラムからWASMランタイムをコントロールするためのAPI。」 / Twitter
- chikoskiさんはTwitterを使っています 「2019年の仕様。Host bindingsがInterface Typeに名前を替え、WASIが登場。 https://t.co/mHrwQb0qr6」 / Twitter
- chikoskiさんはTwitterを使っています 「2020年。参照型はPhase4になりそう。 どんどんパイが拡大していった様子を見ていった、という話でした。 終わり」 / Twitter
バイトコード
- Miura HidekiさんはTwitterを使っています 「P-System, Mesa, JVMと歴史を見ると共通のバイトコードを普及させる試みは大体失敗しているので、WebAssemblyも失敗すると思っている。JVMは失敗したかどうかは議論が分かれるけど、個人的には失敗したと思っている」 / Twitter
- Miura HidekiさんはTwitterを使っています 「llvmは成功したな。そういえば」 / Twitter
- Miura HidekiさんはTwitterを使っています 「llvmのbitcodeを共通バイナリにする話があまりないのは不思議」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 LLVM だと JIT 向きじゃないとかの理由で WebAssembly が出来たとかいう話が真なら、LLVM も失敗していることになりますね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど、確かに。そうすると、インタプリタ(JITを含む)を前提としたバイトコードは失敗しがち、ってことになりますね。この方がしっくりきます。」 / Twitter
インタプリタ
- chikoskiさんはTwitterを使っています 「次。JSC の WASM インタプリタについて。JSCはWebkitに載ってるランタイム。」 / Twitter
- chikoskiさんはTwitterを使っています 「JSCは2段階の最適化をする。BBQとOMG。どちらも同じ最適化エンジンを使うけど、最適化オプションが異なる。」 / Twitter
- chikoskiさんはTwitterを使っています 「コンパイルと実行前処理が時間がかかるので、インタプリタを導入した。offlineasmやbytecodeなどJSのインフラを再利用した。」 / Twitter
- chikoskiさんはTwitterを使っています 「苦労点その1。関数の呼び方。JSと同じやり方では、実行コードを切り替えられなかったので、インタプリタ用に中間層を入れた。」 / Twitter
- chikoskiさんはTwitterを使っています 「苦労点その2。コールスタックの扱いについて。レジスタの退避と書き戻しをすることとなった。 これらの苦労点は、ある関数はコンパイルされ、別の関数はインタプリタで動く、といったことが起こるから発生してる。」 / Twitter
サンドボックスで処理速度低下
- ドッグさんのツイート: "Wasm をサンドボックスの外で走らせると,マイクロベンチマークで C++ の95%の速さで実行できるらしい | 'Introducing inNative - Run WebAssembly Outside The Sandbox at 95% Native Speed' https://t.co/G1ZABHv2rH"
- Introducing inNative - Run WebAssembly Outside The Sandbox at 95% Native Speed
- ドッグさんのツイート: "ちなみに Wasm には LLVM のベクタライゼーション最適化を阻害する問題があって,それが直ればさらにこの差は小さくなるらしい"
- ドッグさんのツイート: "メモ: サンドボックスを有効にすると C++ の 75% の速さまで落ちる"
- イスラエルエリカちゃんさんのツイート: "サンドボックスやっぱそれなりにオーバヘッドでかいんやな"
memory_immediate
- tkrさんのツイート: "memory_immediate is 何"
- tkrさんのツイート: "オフセットとか指定出来るっぽい"
- tkrさんのツイート: "flagは意味分からん"
- tkrさんのツイート: "バイナリ読んだ感じデフォルト2っぽい?"
- クワーティさんのツイート: "デフォルト2?そんなはずは・・・"
- クワーティさんのツイート: "spec見落としあったっぽいな"
- クワーティさんのツイート: "規格は隅々まで読まないと駄目"
- tkrさんのツイート: "データ構造アライメント - Wikipedia https://t.co/D868WNYNFy"
- データ構造アライメント - Wikipedia
- クワーティさんのツイート: "wasm(バイナリの方)のmemoryのalignって実はalignそのものではないよね"
Security Model
- Kazuho Okuさんのツイート: "WebAssembly VMのセキュリティモデルざっと理解したけど、とても美しいな。NaClで問題だった点が全て解消されていて、かつ簡潔になっていて、これマジ速いわーという感じ。これ見てるとJava VMは完全に過去の遺物だと思う"
- Kazuho Okuさんのツイート: "x86-64で動かす場合、ユーザ空間は32bit。ベースポインタ加算して実際のアドレスにマップ。6GBのガードページを置いてゼロコストでメモリ保護。リテラルとスタックはユーザ空間(実行不可)にアプリが自由に設定。コードとリターンアドレススタックはユーザ空間外 https://t.co/SawKNZeSpj"
- Kazuho Okuさんのツイート: "64bitレジスタで32bitのポインタ演算すると上位32ビットはゼロ拡張されるからdisp(basereg,ptr)的なコードでアドレッシング可能。LLVM IR等でその最適化も期待できる。スタックもユーザ空間のグローバル変数にしちゃって、コンパイラに最適化させる感じ https://t.co/0SE20w6APX"
- Kazuho Okuさんのツイート: "x86-64のネイティブコードに対するオーバーヘッドは、indirect call、アドレッシングモードが少ない、使えるレジスタが実質2つすくない、くらいなんじゃないかな。indirect callの最適化はJITの得意領域だし、あとの2つはあまり問題にならなさそう https://t.co/G3pvKctc01"
- Kazuho Okuさんのツイート: "RISC(32bit,64bit問わず)の場合はx86-64と違って自動的なゼロ拡張使えないけど、それでもネイティブコードのオーバーヘッドはNaCl on ARMの5%を超えることはないんじゃないかな https://t.co/ksvZ1qEugL"
- Kazuho Okuさんのツイート: "i386の場合はセグメントレジスタ使えばゼロオーバーヘッドに。他のアーキについては https://t.co/sq50adLOkQ https://t.co/GP1zYhC5DG"
- Kazuho Okuさんのツイート: "ちなみになぜガードページが6Gかと言うと、出力されるx86-64のアドレッシングモードoff32(basereg,ptr)のoff32が0からINT32_MAXの間まで最適化する前提だからですね。ptr書いたとおりゼロ拡張されるuint32なのでこれでおk https://t.co/0SE20w6APX"
- Kazuho Okuさんのツイート: "んなとこです。主な参考資料: https://t.co/crxSDWBdMP https://t.co/LGyQwknaOY https://t.co/h0NYNGklDz"
- 七誌さんのツイート: "WebAssemblyのスタンドアロンVM。ブラウザと関係なく、独立したバイナリをmainから始まるプロセスとして実行。やっぱりこういうのを作っている人がいるんだ。 https://t.co/ddKeoHQEWV"
- Non-Web Embeddings - WebAssembly
- WebAssembly/wasm-jit-prototype: Standalone VM using LLVM JIT
- 35649.pdf
- Yuki Yugui Sonodaさんのツイート: "実行コードeipをメモリ空間の凄く離れた場所に置いて、且つ危険な領域に戻れるほど長いjmpがないことを確認すれば安全だよねとか、なかなか攻めていて良い"
- 小倉唯さんのツイート: "wasm の memory bound check は論文にある. JSC は signal か, pinned reg からの範囲チェック"
- 小倉唯さんのツイート: "segv 取ってなんなら CONTEXT 書き換えられるのか. Wasm signaling memory なんとかなるっぽいな https://t.co/ALaC1x5sLN"
- Cleanly recovering from Segfaults under Windows and Linux (32-bit, x86)
SIMD
- S.F.さんのツイート: "SIMD Extensionをちょこっと読んでる。 https://t.co/UHnG03JRSX"
- simd/SIMD.md at master · WebAssembly/simd
- S.F.さんのツイート: "仕様見てるとやっぱりモバイル・ターゲットなんだなぁと思う。これも時代の流れか。。"
- S.F.さんのツイート: "128bit長だとインテルCPUだとSSEレベル。 今どきのデスクトップCPUは512bitとかだからね。並列度が半端ない。。"
- S.F.さんのツイート: "違うか。。AVX-512はハイエンド仕様か。。デスクトップだと256bitか。。"
- S.F.さんのツイート: "しかし512bitだと32bit floatであれば16個パック可能となって、レジスタ1個で4×4の行列がパックできるんですな。恐ろしい時代ですわ。。"
- S.F.さんのツイート: "私のCPUだとAVX-2どまり。YMMレジスタ(256bit長)が16本か。それでもすごいな。。"
- S.F.さんのツイート: "行列の乗算が一発でできる命令とかはないから、コーディングには工夫は必要だろうな。。"
- S.F.さんのツイート: "ここにAVXを使った行列の乗算コードが載っている。8x8行列だが。。うーむ。。 https://t.co/ETZlMQEaHi"
- 小行列演算におけるインテル® AVX の利点 | iSUS
- S.F.さんのツイート: "Long SIMDというProposalもあるのか。。 https://t.co/QPz3FJpB3z #webassembly"
- design/FutureFeatures.md at master · WebAssembly/design
- S.F.さんのツイート: "Intelだと、4x4行列の乗算はSSE(128bit)とAVX(256bit)では1.8倍ほどAVXのほうが速いと書いてあるな。。"
- chikoskiさんはTwitterを使っています 「SIMDを有効にしたWASMでdot積を計算したら、JSより500倍早かった、というRedditへの投稿。デモサイトへのリンクあり。デモサイトはWASM SIMDを有効にしたChromeでしか動かないので注意(有効にする方法は記事の先頭に記載がある)。https://t.co/xQBu2KeYB2」 / Twitter
- Wasm SIMD is almost 500x as fast as JS at calculating dot product : WebAssembly
Go
- chikoskiさんのツイート: "GoのWASM出力、LLVMじゃなくて自前で書いてるみたい。https://t.co/u2OsYM5oHd https://t.co/ZQhvxNpNle 作るにあたって考えたことまとめ:https://t.co/mrOIy8pgDE GC, long jump, メモリの予約、スレッドなどが考慮されているみたい"
- chikoskiさんのツイート: "https://t.co/mrOIy8pgDE にはスタックマシンのWASMで、レジスタマシンのGoのセマンティクスを再現するために必要なことも載ってる。WASMのスタックを使わずメモリ上にGoのコールスタックを作る、レジスタを参照する演算を「WASMのスタックへの操作+演算」に書き換えるといったことをしてるh"
- chikoskiさんのツイート: "腑に落ちないのは"Note that the two SSA instructions can not be generated sequentially anymore, because their WebAssembly instructions are interleaved." WASMの命令って不連続なの?むしろ連続的だと思うんだけど。あれかなー、ロングジャンプを無理くり対応したからかな。"
- WebAssembly architecture for Go - Google ドキュメント
- Google、「Go 1.11」を公開。WebAssemblyを実験的にサポート | OSDN Magazine
reference types
- ドッグさんはTwitterを使っています 「Wasm の reference types 実装のために LLVM に複数アドレス空間対応を Igaria が提案.今はプログラムとデータは同じアドレス空間に置かれる前提になってる.別アドレス空間にある funcref と externref にコード側から触りたい | 'RFC: Multiple program address spaces' https://t.co/tuHL4ozmTz」 / Twitter
- [llvm-dev] RFC: Multiple program address spaces
- ドッグさんはTwitterを使っています 「もともとアドレス空間を指定する仕組み自体はある(例えばポインタ型はどのアドレス空間に属するかを持ってる)ので変更自体は小さいな https://t.co/t7BFrRQVVH」 / Twitter
- ⚙ D91428 Add support for multiple program address spaces
WebAssembly for Proxies (ABI specification)
- bells17 / べるさんはTwitterを使っています 「specはこれかな? https://t.co/uIjJ1y381a #wasmnight」 / Twitter
- proxy-wasm/spec: WebAssembly for Proxies (ABI specification)
- bells17 / べるさんはTwitterを使っています 「こっちはあくまでproxy-wasmにおいてのABIという感じの理解で良いのかな?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「proxy-wasmの難しいところ: - 任意のプログラムをproxyに挟んじゃって大丈夫? - 変なwasmを読んで変なところでクラッシュしない? #wasmnight」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「クラッシュについてはwasm-smithがいいテスト方法になるはず https://t.co/Bzbi3FRl7U 有効なWasmを生成するfuzz tester #wasmnight」 / Twitter
- wasm-tools/crates/wasm-smith at main · bytecodealliance/wasm-tools
- Proxy-Wasm: Wasmを利用したPlugin機構の開発 - Speaker Deck
Rust
- ドッグさんはTwitterを使っています 「rustc に WebAssembly 専用の "wasm" ABI が入った.Wasm の関数シグネチャに直接マップされる extern "wasm" fn 関数が定義できるようになる | 'rustc: Add a new wasm ABI #83763 - rust-lang/rust' https://t.co/yLKEOUVTjY」 / Twitter
- rustc: Add a new `wasm` ABI by alexcrichton · Pull Request #83763 · rust-lang/rust
- ドッグさんはTwitterを使っています 「今の Rust の Wasm 対応では,関数は C ABI で定義し,wasm-bindgen がグルーコードを吐くことで間をつないでる.でも実は C ABI は Wasm と互換なわけではなく,コンパイラ側に wasm-bindgen 互換な C ABI を設けるなどのハックが必要になっていた.新しい "wasm" ABI ではそれが不要」 / Twitter
- ドッグさんはTwitterを使っています 「この問題は Wasm の多値対応で決定的になったっぽい.Wasm は関数から多値を返せるようになったけど,C にはその仕組は無いので,C ABI では対応できない.」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@Linda_pp 一応、構造体は返せるんだけど、ABIで複数レジスタで返すのはないんですよね。」 / Twitter
- ドッグさんはTwitterを使っています 「@shinji_kono はい,構造体に詰めて返すのとはまた話が変わりますね」 / Twitter
- idさんはTwitterを使っています 「Jupyterliteすごい。 wasm製のpython runtimeであるpyodide(のkernelのpyolite)を使ってるので、サーバ無しにJupyterが動く https://t.co/0AALJsgCyp」 / Twitter
- JupyterLite: Jupyter ❤️ WebAssembly ❤️ Python | by Jeremy Tuloup | Jul, 2021 | Jupyter Blog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「wasmer-jsみたいにブラウザーのWasm処理系を使うんじゃなくて、Rustで書かれたwasmerそのものがブラウザーで動くようになるってことか。Wasm3もそういえばやってたな / “Added Wasmer Js API by syrusakbary · Pull Request #2460 · wasmerio/wasmer · GitHub” https://t.co/7Fw0jQmaPb」 / Twitter
- Added Wasmer Js API by syrusakbary · Pull Request #2460 · wasmerio/wasmer
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ちゃんと確かめてから記事にしようと早N月経ってるんだけど、WasmでDOMを操作するのはreference typesを使えば最早JS経由とすら言えないし、すでに直接操作できると言っていいのでは? https://t.co/uHZaaml4HN 曰くもうChromeもサポートしてるっぽいけど、ツールチェインがサポートしてないのかな。」 / Twitter
- WebAssembly Reference Types - Chrome Platform Status
- yukiさんはTwitterを使っています 「終わってから思い出したんですが、WebAssemblyをコンパイルターゲットとするGrainという言語があって、これも関数型プログラミング言語みたいです。個人的に注目してます。 #func_party https://t.co/lff4XxbFK0」 / Twitter
- grain-lang/grain: The Grain compiler toolchain and CLI. Home of the modern web staple. 🌾
- WebAssembly Community Group
- WebAssembly Specifications
- WebAssembly バイナリ表現 | WEBASSEMBLY USUI BOOK
Unicode
ucd
- Index of /Public/11.0.0/ucd
- https://unicode.org/Public/11.0.0/ucd/UnicodeData.txt
- https://unicode.org/Public/11.0.0/ucd/PropertyAliases.txt
- https://unicode.org/Public/11.0.0/ucd/PropertyValueAliases.txt
- https://unicode.org/Public/11.0.0/ucd/StandardizedVariants.txt
- https://unicode.org/Public/11.0.0/ucd/auxiliary/GraphemeBreakProperty.txt
- https://unicode.org/Public/11.0.0/ucd/auxiliary/GraphemeBreakTest.txt
- Grapheme Break Chart
- https://unicode.org/Public/11.0.0/ucd/extracted/DerivedCombiningClass.txt
数字
- Unicodeにある数字の一覧 | hydroculのメモ
書記素クラスタ
- UAX #29: Unicode Text Segmentation
- UAX #15: Unicode Normalization Forms
- Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
- Unicode結合文字の取り扱い | 文字列 | プログラミング言語の比較 | hydroculのメモ
- 結合文字についてMacのおしい点 - yanok.net
- 文字数をチェックする際にイタズラを目的とした大量の結合文字を見逃さないようにする - Qiita
- サロゲートペアや結合文字が含まれているか調べる: .NET Tips: C#, VB.NET
- Unicodeの特殊な文字 “結合文字列” – ものかの
SV・IVD・絵文字
- The Unicode Standard, Version 11.0
- https://unicode.org/Public/11.0.0/ucd/StandardizedVariants.txt
- UTS #37: Unicode Ideographic Variation Database
- Ideographic Variation Database
- UTS #51: Unicode Emoji
- UTS #51: Unicode Emoji
- UTS #51: Unicode Emoji
- UTS #51: Unicode Emoji
- UTS #51: Unicode Emoji
- UTS #51: Unicode Emoji
- Unicode 絵文字にまつわるあれこれ (絵文字の標準とプログラム上でのハンドリング) - Qiita
- Unicode 絵文字にまつわるあれこれ (絵文字の標準とプログラム上でのハンドリング) - Qiita
大文字・小文字
- Unicodeの大文字と小文字のまとめ | hydroculのメモ
- Unicodeの仕様に基づいた大文字小文字を変換するには | hydroculのメモ
Wikipedia
- Variant form (Unicode) - Wikipedia
- Unicode control characters - Wikipedia
- Variant Chinese character - Wikipedia
- List of typographic features - Wikipedia
- Unicode 11.0.0
- Unicode利用規約
- UAX #44: Unicode Character Database
- The Unicode Standard, Version 11.0
- C++標準化委員会、ついに文字とは何かを理解する: char8_t - Qiita
- はじめてのにき(2018-12-24)
- はじめてのにき(2018-12-25)
- char8_tによせて - なるせにっき
- CJK互換漢字とは?新元号「令和」の「令」Unicode符号に注意! – cod-log
C
言語仕様
その他
- 仮定義
- 日記 (2016 年 6 月上旬)
- 初期化子は定数 - とくにあぶなくないRiSKのブログ
- CとC++のIdent - in neuro
- NAKAMURA Minoru's Diary (2016年12月)
- C言語の現代化を目指すC2
- how-to-c-response/README.md at master · Keith-S-Thompson/how-to-c-response
- Origin of C Language
- Origin of C Language's 'struct'
- Language C FAQ
- ロボ太さんはTwitterを使っています: 「「-1/2」の結果がC/C++とRubyで違うということを初めて知った。」 / Twitter
- herumiさんはTwitterを使っています: 「https://t.co/LhrwyBIl7u 処理系依存が気になる古いC/C++の処理系ではdivを使う、までがセットですね。 https://t.co/Y1e4xaouPm」 / Twitter
- div, ldiv, lldiv, imaxdiv - cppreference.com
- /devさんはTwitterを使っています: 「C言語のお前そんな機能あったのシリーズ https://t.co/qZIUU2hjts」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「GCCで-std=c99したらDBL_TRUE_MINが定義されてなかったんだけど、もしかしてこれC11以降の機能だな?」 / Twitter
未定義の動作・値
議論
- 画力・博士号さんはTwitterを使っています 「停止性問題がそもそもめちゃくちゃ難しい問題であることを表す説明としての「もし停止性問題を解くアルゴリズムが構成できるならCollatz豫想もGoldbach豫想もFermatの最終定理もそれを用いてたちどころに解ける」」 / Twitter
- 画力・博士号さんはTwitterを使っています 「(これ微妙に誤解されてると思しき反応があったので補足すると別に停止性問題の決定不能性の証明によらずとも鉤括弧内のことは言えますよ)」 / Twitter
- まじかんとさんはTwitterを使っています 「clang++ で bool f(int n) { if (n <= 1) return 0; else if (n % 2 == 0) return f(n / 2); else return f(3 * n + 1); } をコンパイルして bool f(int n) { return 0; } 相当のコードに最適化されることを確認して満足した」 / Twitter
- のぶしみさんはTwitterを使っています 「def f(n): if n<=1: return 0 if n%2==0: return f(n//2) if n%2==1: return f(3*n+1) このアルゴリズムって0しか出力しないけど有限時間で終了するかどうか分かってないのって不思議」 / Twitter
- まじかんとさんはTwitterを使っています 「別に clang++ がコラッツ予想を解いたわけでも過剰な最適化をしたわけでもない」 / Twitter
- まじかんとさんはTwitterを使っています 「分からん人のためにネタバレすると、C++ では副作用のない無限ループは未定義動作なので、副作用のないループは必ず停止する前提でコンパイラーは最適化をかけられる」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「いいえ実はこれは未定義動作ではありません。「無限ループは存在しない。いいね?」は、きちんと規格に明文化された仕様です。」 / Twitter
- fujita nozomuさんはTwitterを使っています 「@felis_silv https://t.co/owfh0NwzXx 「無限ループは未定義動作なので無視する。ループを抜ける場合だけを想定する」という最適化が行われてる気がします。 https://t.co/yT2iKaBiN5」 / Twitter
- Compiler Explorer
- 7594591200220899443さんはTwitterを使っています 「https://t.co/yUszVYIsJp」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「Hans Boehm による詳細な解説 https://t.co/IapAUM9GqK」 / Twitter
- N1528: Why undefined behavior for infinite loops?
- 7594591200220899443さんはTwitterを使っています 「仕様に最適化して良いと規定されているのは未定義ではないという立場ですが。一方で未定義動作とは即ち最適化して良いという意味なのだという今風の立場を採用するならそこを峻別して意味あんのかという意見になるということなのでは。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「これ「未定義動作」とは表現されないのか。実質的にはほぼ同じことを言ってるように思えるけどどうして区別してるんだろう。 (無限ループが存在しないと仮定して最適化、というのとUBが存在しないと仮定して最適化、というのはほぼ同じ構造に思える)」 / Twitter
- Masaki HaraさんはTwitterを使っています 「あとUBはimplicitなものも沢山ある一方「◯◯はundefined behavior」と規定されるものも多いので「規格に明文化されているかどうか」もそれほど重要な区別には思えない」 / Twitter
- Masaki HaraさんはTwitterを使っています 「これを読んでみたけど、そもそもproblem statementが "Why undefined behavior for infinite loops?" なので、やっぱりundefined behaviorの一種なのでは? https://t.co/Z4x1eoZaYW」 / Twitter
- Masaki HaraさんはTwitterを使っています 「> My goal is to explain the rationale behind the current wording. とあるから、ここで答えが説明されているのかと思ったけど、むしろ > As N1509 correctly points out, the current draft essentially gives undefined behavior ... とあって、やはり本質的にはUBを意味しているように見える」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「少なくともCでは無限ループから悪魔が出てくる事までは許容していないのではとは思います。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei 「何かしら記述がある」から「未定義動作」ではない、というのであれば、そこかしこにある「◯◯は未定義動作である」という記述が全部自己矛盾になってしまいませんか?「動作」に制約を課す記述がなければそれは「未定義動作」、とするほうが整合するような気がします。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei 正確には、翻訳対象のプログラムの動作ですね。「最適化してよい」というのは確かにコンパイラの動作は規定していますが、翻訳対象のプログラムの動作を制限していないどころか、そのような制限がないことを示しています。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei "behavior (...) for which this International Standard imposes no requirements" なら鼻から悪魔がOKで、 "may be assumed by the implementation to terminate" なら(これを満たさない場合の)鼻から悪魔が禁止、という区別を記述から読み取るにはちょっと無理があるような気はしますが……」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@shyouhei とはいえ、許容されている挙動の違いに注目するにはなるほどと思いました。undefined behaviorの説明には、コンパイルエラーにしてもいいと例示があるので、この辺りは違いとして考えられそうですね。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「今どきのプロセッサー、「確実に未定義命令例外を起こすと定義されている命令」てのがあり、初めて知ったときは笑ってしまったが、よく考えてみると確かにいるよなーってなる」 / Twitter
- κeenさんはTwitterを使っています 「未定義動作、まじで仕様に書かれてない動作と仕様で「この場合の挙動は未定義とする」と定義されているパターンがある。」 / Twitter
- κeenさんはTwitterを使っています 「普通未定義動作といえば後者を指す気がする。前者はミスに近くて策定の段階で誰かが指摘されてればちゃんと定義されていた可能性があるものも含む。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「これ、システムソフトウェア系の採用試験とか期末試験とかで聞いてみるといいのかな」 / Twitter
- herumiさんはTwitterを使っています 「そしてIntelのud2(undefined instruction)命令の用途の一つに、最適化マニュアルで「後続する命令のデコードを止めるために間接分岐命令の後に置く」とあって、よくまあそんなこと思いつくなあと感心したのでした。 https://t.co/bs0o33D7SL」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「まだWindows 95すら発売されていないときにMSとIntelが会議を行い、IntelがCPUを一つだけ早くできるならば何を選ぶかと聞いたところ、MSは無効命令の例外補足であると答えた。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Intelは冗談を言ったのだと笑って帰っていったが、その後社内でWindowsをプロファイラにかけると実際に無効命令に多くのCPU時間を費やしていた。詳しく忘れたが無効命令の例外補足が一番手っ取り早かったとか。確かソースはOld New Thingだったはず。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「なんか未定義命令をMSDOS時代にどうしてたかという話が出ているがまあそれは「たまたま未定義だった命令」を使う話なのでちと違うかな、、、まあでもサンクに使う専用命令と未定義命令を将来に渡って別にしたいという意味では裏の関係ではあるか」 / Twitter
- 未規定の動作
- 未定義の動作
- 処理系定義の動作
- 文化圏固有動作
- 本の虫: 誤り:paizaの問題はC++17でも成り立つ
- ツイッターで出題した未定義問題のお詫びと調査と解説について - paiza開発日誌
- 水島宏太(Parser)さんのツイート: "ただ、 "未定義だと、動作が言語の実装に依存しますので、コンパイラなどの環境によって、結果が変わってしまいます。" 実装依存と未定義の区別がついてないような。未定義というのは本当に何が起こってもいいということであり、実装によって挙動が一つに定まるというのは違う。"
- 水島宏太(Parser)さんのツイート: "実際には、未定義動作を使ったCコードというのはあり、そういうコードを動かすためには、未定義動作だから何でもいいというのは困ることがあるけど、ともあれ未定義は未定義として区別されなければいけない。"
- Eijiro Sumiiさんのツイート: "「どうやら、"sequence points"の範囲の中でside effectが評価されるようです。」待て待て待て、副作用完了点も知らないでC(やC++)の問題出題したりエンジニア向けサイト運用してたのか…!? https://t.co/iJfbmMbP3I"
- 本の虫: Old New Thing: 未定義動作はタイムトラベルを引き起こす(他にもいろいろあるけど、タイムトラベルが一番ぶっ飛んでる)
- 本の虫: C++の未定義の挙動で呼ばれないはずの関数が呼ばれる場合
- C++でうっかり無限ループを書くと鼻から悪魔が出てくる - Qiita
- 未定義動作により最適化レベルで結果が変わるコード - Qiita
- ロボ太さんのツイート: "安全装置において、警告にとどめるか緊急停止させるかって、もちろん想定させる危険性に依存するじゃない?例えばコピー機で用紙サイズが合わなくても警告でいいけど、工業カッターが異物を検知したら緊急停止させなきゃいけない。「警告音で手を引っ込める」ことの賭金として指切断は高すぎるから。"
- ロボ太さんのツイート: "これ、別に言語仕様を変える必要はなくて、「未定義動作を検出したらエラーで落とす」というオプションつけて、それをデフォルトでオンにすればいいと思う。なんか互換性で問題起きたらオフにすればいいんだし。結局、安全側と便利側どっちに倒すか、という問題だと思う。"
- ロボ太さんのツイート: "同様に、もしコンパイラが未定義動作を検出してud2吐いたりretを消したりするなら、警告吐くだけじゃなくてエラーで落とすべきだと思う。それは明らかに重大事故だから。それを「ハナカラアクマ」って呪文唱えて、知らない人を締め出す先にあるのは、コミュニティの緩やかな死だと思う。"
- Undefined behavior can result in time travel (among other things, but time travel is the funkiest) | The Old New Thing
- mcyoungさんはTwitterを使っています 「char* null = 0x0; char* one = 0x1; null + 0 // UB in C and Rust, not C++ one + 0 // UB in C and C++, not Rust what does LLVM think? no one seems to know well done everyone」 / Twitter
- yoh2さんはTwitterを使っています 「ところで「Cは高級アセンブラ」という認識は罠にずっぽりハマるワードだと思うのでやめとけとなる。」 / Twitter
- yoh2さんはTwitterを使っています 「これを言う人、符号付き整数のオーバーフローとか type-punning とかに頓着しないコードを書いては「コンパイラがバグってるから最適化禁止 (本当はがっつり UB 引き起こすコードを書いてる)」と言い放ちがちなイメージ (ど偏見」 / Twitter
- yoh2さんはTwitterを使っています 「符号付きオーバーフローに無頓着というか、オーバーフローしたら一周すると信じてる、かな。 int n; ... if(n + 100 < n) { /* 100 足すとオーバーフローする場合 */ ... } みたいなコードとかね。んで最適化して if がごっそり消えるなど。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「でもアセンブラでも符号に無頓着でバグる事があるから...」 / Twitter
- キャストに関わるGCCの謎挙動 - 豪鬼メモ
型
- Clarification Request Summary for C11
- n1731.txt
- N1804: Discussions on DR440, DR441, DR442, DR444, and DR445
- Resolving DR444
ビットフィールド
- _ko1さんはTwitterを使っています 「0幅のbit fieldなんて初めて知ったよ...」 / Twitter
- Miura HidekiさんはTwitterを使っています 「なんかで見たな。なんだったっけ 明示的なパティングだったかな」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@miura1729 ですね https://t.co/cjEV1gCwT0」 / Twitter
- Bit field - cppreference.com
- 複数のビットフィールドを持つ数値の並列演算
ISO
- History of C - cppreference.com
- C99 - Wikipedia
- C11 (C standard revision) - Wikipedia
- C18 (C standard revision) - Wikipedia
- ISO/IEC JTC1/SC22/WG14 - C
- www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
- ISO/IEC 9899:2017
- Clarification Request Summary for C11
- N2349 - Toward more efficient string copying and concatenation
- Clarification Request Summary for C11
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語 C++11: 属性を導入して[[noreturn]]と書けるようにします ←わかる C11: _Noreturnを追加して<stdnoreturn.h>で#define noreturn _Noreturnします ←バカ C23: C++ライクな属性を導入します ←noreturnはどうなるの……」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「C23のnoreturnに関してはこういうproposalが出てるけどまだworking draftには取り込まれてなさそう https://t.co/AxwUXEdjZi」 / Twitter
- n2410.pdf
JIS
- JISにおける規定を表す言葉の表現形式 - 水底の血
C23
予約語の扱い
- yohさんはTwitterを使っています 「ISO C2xドラフト眺めてたら C言語標準での予約語が明確に記述されるようになってんね(J.6 Reserved identifiers and keywords, J.6.1 Rule based identifiers) 改めて見ると広すぎて酷いよなぁ https://t.co/NZenSxHmMp」 / Twitter
- ドッグさんはTwitterを使っています 「tolower みたいな関数名(to の後にアンダースコア入れない)は厳密には駄目なのか」 / Twitter
- ドッグさんはTwitterを使っています 「というか toggle みたいな普通の単語もダメだし無理がある…」 / Twitter
- yohさんはTwitterを使っています 「@Linda_pp 実例として "token" とか (Rectの)"top" が挙げられていて、そりゃ無理だわとなりました。」 / Twitter
- ドッグさんはTwitterを使っています 「E[0-9A-Z][a-zA-Z0-9_]* もだいぶすごいけど」 / Twitter
- yohさんはTwitterを使っています 「@Linda_pp C17現在は「予約語だから使うな」で、次期C2xからは「予約語になる可能性があるけど今は使ってもいいよ/コンパイラは将来予約語になった時ちゃんと警告しようね」という優しさを見せています。」 / Twitter
blog
- 2進数リテラル in 標準C - yohhoyの日記
- C2x標準の属性(attribute) - yohhoyの日記
- mod_poppoさんはTwitterを使っています 「次期C標準であるC23の紹介記事 / C-ing the Improvement: Progress on C23 https://t.co/W3VIUBoluy」 / Twitter
- C-ing the Improvement: Progress on C23 | The Pasture
- realloc(ptr, 0)は廃止予定 - yohhoyの日記
Twitter
- Urabe, Shyouheiさんのツイート: "次のCで20年ぶりくらいにCのfor文の挙動が変わるぽい。 https://t.co/CIY58JZBIt"
- scope of a for loop control declaration
- 7594591200220899443さんのツイート: "そろそろintmax_tは間違いだったと認めようや、なあ。という提案がCに来ている https://t.co/ad910VQix9"
- N2303: intmaxwidth.3emt, a way out
- 7594591200220899443さんはTwitterを使っています 「ちなみにc2xからポインタはアドレスじゃなくなります。詳細は https://t.co/RkF7ZVxFHB を参照してください」 / Twitter
- N2362: Moving to a provenance-aware memory object model for C - n2362.pdf
- 7594591200220899443さんはTwitterを使っています 「これが__attribute__((__malloc__))に対する委員会からの回答なのだと理解している。つまり「このポインタはこの瞬間には他のオブジェクトとエイリアスしません」みたいなやつを取り込もうとしているんだと思う」 / Twitter
- papers on formalized memory models
- [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
- 井山梃子歴史館さんはTwitterを使っています 「ポインタはベースアドレスとオフセットとprovenanceの束だよ」 / Twitter
- provenance - Google 検索
- 束 - Wikipedia
- propagation - Google 検索
- 7594591200220899443さんはTwitterを使っています 「Provenance-aware memory object model はC2xに入れるんじゃなくて別のTSにすることにしたのか。 https://t.co/m7yjs4P9VR」 / Twitter
- n2577.pdf
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語の「boolの代わりにintを返す関数」についてはintbool_t(C23の段階ではintのtypedef)を返すようにしよう、という提案がある https://t.co/FURMOzNdDE」 / Twitter
- N2712: intbool_t
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語の次期標準(C2x)は「C23」になる見込みなのかな。順調に行けばの話だけど https://t.co/DIxPvxXNrO」 / Twitter
- WG 14 Document log
- だめぽラボ@技術書典9さんはTwitterを使っています 「C++にある二進リテラルや桁区切り文字はC言語に入るのかなあと気になってたけど、Proposalは出てるみたい https://t.co/sR4Y3483Vx https://t.co/LUx5Fl3eLp」 / Twitter
- n2549.pdf
- n2606.pdf
- だめぽラボ@技術書典9さんはTwitterを使っています 「C23 (C2x) の新機能は今のところ ・浮動小数点数周り(最新のIEEE規格への追従;各種関数の追加、十進など) ・C++の機能の取り込み(属性、u8文字リテラルなど) ・一部のPOSIX関数の取り込み(strdupなど) ・K&Rスタイルの関数定義の削除 が主なものかなあ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「C++やPOSIXの機能の取り込みはともかくとして、浮動小数点数周りは目新しい機能で、単なるライブラリー関数だけではなく#pragma等も含めるとまともに実装する処理系は現れるのかなあ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「だいたいC99のFENV_ACCESSすらメジャーなC処理系で実装されてなくて……と思ったけどClangに#pragma STDC FENV_ACCESSを実装する奴がマージされとるやんけ。Clang 12で使えるようになるのかな? https://t.co/HzL0M2yyUf https://t.co/gopObQBHtX」 / Twitter
- ⚙ D87528 Enable '#pragma STDC FENV_ACCESS' in frontend
- Clang Compiler User’s Manual — Clang 12 documentation
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語にもC++ライクなlambdaを入れようという提案はある https://t.co/IW2ZEXFaao」 / Twitter
- n2736.pdf
- mod_poppoさんはTwitterを使っています 「C言語の予約識別子が増えすぎて、逆に「絶対に予約されない識別子」の規定を追加しようぜ、という提案が出てきた https://t.co/823U3Ugu7R」 / Twitter
- N2807 identifiers for use by users
- C2x Charter(C2x 憲章) - Qiita
- C言語の次期ISO標準となるC2x
- C2x - Wikipedia
- WG 14 N 2086 -- C2x Charter
- The ISO C WG has started working on a new standard: C2X : C_Programming
- C – Preliminary C2x Charter | Hacker News
- 最近のC言語と、次期C標準(C23)
- mod_poppoさんはTwitterを使っています 「書き忘れたけどC23の変更に「K&Rスタイルの関数定義の廃止」もあった。」 / Twitter
C11
スラド
- [C/C++規格: 10] C11の新機能 その1 -- 新機能概要 | Yoh2の日記 | スラド
- [C/C++規格: 11] C11の新機能 その2 -- 型ジェネリック式 | Yoh2の日記 | スラド
- [C/C++規格: 12] C11の新機能その3 -- ユニコード文字・文字列 | Yoh2の日記 | スラド
- C言語は滅びるべきか | スラド デベロッパー
Qiita
- C17 (not C++17) - Qiita
- C11 の _Generic の罠 - Qiita
- C言語(C11)で可変長の配列を使う方法 - Qiita
Twitter
- LLVM / Clang 6.0 Should Be Released Soon With Its Many New Features - Phoronix
- Fadisさんのツイート: "PhoronixによるとLLVM 6.0からC言語の標準にC17が選べるようになるらしい。そんな標準あったんか、と思って調べたらC11から既知の問題を修正したマイナーアップデートらしい。そしてもう2018年だけどまだドラフトらしい… https://t.co/8qTVqGgxWg"
- ドッグさんはTwitterを使っています: 「今の C って配列の最後の要素の1つ後ろまでポインタ取れるのか int main() { int array[3]; int *p = NULL; return p < &array[3]; }」 / Twitter
- ドッグさんはTwitterを使っています: 「@ryutorion 詳しくないのですが,どうやら C11 からの仕様らしいです: https://t.co/hiLd35nmHf (6.5.6-8)」 / Twitter
- www.iso-9899.info/n1570.html
- M.KさんはTwitterを使っています: 「@Linda_pp これって,ポインタの計算がオーバーフローするかどうか,とかの話では?」 / Twitter
- ドッグさんはTwitterを使っています: 「@ryutorion ポインタを足した結果が配列の最後の要素の1つ後ろを指す時,それがオーバーフローしてはいけない(逆に言うとオーバーフローしなければ OK)→ 1つ後ろの要素を指すポインタは合法 と読んだのですが,間違ってるかもしれないです」 / Twitter
- M.KさんはTwitterを使っています: 「@Linda_pp どちらかというと,ループの終了条件として最後の次のポインタを指すことはままあることなので,それがオーバーフローしないことを保証すること,って話なのかなと.1つ後ろを取ることが合法って言うよりは.」 / Twitter
- FadisさんはTwitterを使っています 「Linuxがgccの最低要求バージョンを4.8から4.9に上げるらしい。ARM向けのカーネルをビルドする際にgcc-4.8がICEする不具合の回避などのつらいコードを消したい、C11の_Genericを使いたいといった理由かららしい https://t.co/bb1C2EKelc」 / Twitter
- Linux Kernel Raising Compiler Build Requirement To GCC 4.9 - Phoronix
- FadisさんはTwitterを使っています 「まだサポートが終了していないRHEL7は標準のコンパイラがgcc-4.8だが、そんな環境で標準のコンパイラで最新のカーネルビルドするヤツの為にgcc-4.8をサポートし続けるのは辛くなったという判断らしい」 / Twitter
- C11 の機能 - Oracle® Solaris Studio 12.4: C ユーザーガイド
- C言語の最新事情を知る: C11の仕様-脆弱性対応に関連する機能強化点 - Build Insider
- C11の仕様-それ以外の主な機能強化点[C言語] - Build Insider
- DCL03-C. 定数式の値をテストするには静的アサートを使う
- _Static_assert とは - とくにあぶなくないRiSKのブログ
- アトミック操作ライブラリ - cppreference.com
- IBM Knowledge Center - _Static_assert 宣言 (C1X)
- c - The concept of a type name scope in C11 - Stack Overflow
- N1570 April 12, 2011 ISO/IEC 9899:201x
- Wayback Machine
C99
除算
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「うーむ、知らんかった。 C言語系: -13 / 10 --> -1 Python3: -13 // 10 --> -2 (そして Python3の方が数論的には正しいと) https://t.co/pX8Rd3Qfb4」 / Twitter
- python - Integer division by negative number - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお C99とC++11以降は上記の通りだが、それ以前は処理系依存だったらしい。 (ただし、このC99/C++11仕様は現状追認で決まっただけだろうな) https://t.co/x8L0ur3lvi」 / Twitter
- 整数に対する除算と剰余算の丸め結果を規定 - cpprefjp C++日本語リファレンス
引数
- va_argマクロの奇妙な制限事項 - yohhoyの日記
- 可変引数リストと文字列とヌルポインタの特別な関係 - yohhoyの日記
- 関数パラメータリストと配列型 - yohhoyの日記
- C/C++関数引数の評価順序 - yohhoyの日記
書式文字列
- 書式指定%lsとwchar_t型 - yohhoyの日記
- printfファミリ書式指定%nの応用例 - yohhoyの日記
- printfとsize_t型 - yohhoyの日記
文字列・メモリ
- scanf文字列取得と動的メモリ確保 - yohhoyの日記
- strncpy関数仕様のナゾ - yohhoyの日記
- パスワードとmemset関数 - yohhoyの日記
- malloc(0)の振る舞い - yohhoyの日記
- 長さゼロ on 文字列/メモリ操作関数 - yohhoyの日記
- Duff's device - yohhoyの日記
配列・ポインタ
- 可変長配列の正式名称 - yohhoyの日記
- 配列有効範囲外を指すポインタ値は存在が許されない - yohhoyの日記
- ポインタ型への非NULLアノテーションもどき - yohhoyの日記
リテラル・定数・初期化
- 初期化子リスト要素数不足時の初期値 - yohhoyの日記
- 文字列リテラル最大長の最低保証 - yohhoyの日記
- size_tと値-1 - yohhoyの日記
- 複合リテラルの有効期間 - yohhoyの日記
- 数字から数値への変換: ch - '0' - yohhoyの日記
- 文字列リテラルは変更できないlvalue - yohhoyの日記
- ヌルポインタの内部表現 - yohhoyの日記
演算子
- 条件演算子と左辺値の扱いの差 - yohhoyの日記
- sizeof演算子とオペランドの評価 - yohhoyの日記
blog
- C言語の標準規格一覧 - yohhoyの日記
- 環境依存コード切り替えマクロ - yohhoyの日記
- asmキーワードの扱いの違い - yohhoyの日記
- ビットフィールド幅の上限値 - yohhoyの日記
- main関数のreturn省略 - yohhoyの日記
- main関数returnと他スレッドの関係 - yohhoyの日記
- C11/C++11/POSIXスレッドAPI比較 - yohhoyの日記
- C言語の最新事情を知る: C99の仕様 - Build Insider
- プログラミング言語 C の新機能
- IBM Knowledge Center - 複合リテラル式
- Makoto Kato ︎︎さんのツイート: "@hATrayflood なおYARR JITな修正はこれ https://t.co/X3yVFjyX uint128_tがWin64 ABIで使えれば。。。"
- Makoto Kato ︎︎さんのツイート: "@d_toybox msvc以外は使えるんだけどね、int128_t。C99で定義されてる話だけど、Windows ABIでint128_tが定義されてない(はず)だから、使えん。VC++はC89だし"
- 関数定義の一部である関数原型形式の関数宣言子の仮引数型並びと、非原型形式の関数宣言子の識別子並び・宣言並び、および関数定義の一部でない関数原型形式/非原型形式の関数宣言子について - Qiita
- Array initialization - cppreference.com
- yoh2さんはTwitterを使っています 「C99 以降、 for ステートメントは for の () 内で宣言した変数が外に漏れないよう、それ自身が独立したブロック (※) になったというのは知ってたけど、if, switch, while, do-while もブロック扱いになってたことをたった今知った。 ※ C99 の for(;;) ... は C89 だと { for(;;) ... } のようなもの」 / Twitter
OpenMP
- インテル® C++/Fortran コンパイラーによる OpenMP* 3.1 仕様のサポート | iSUS
- OpenMP* 4.x による新しいレベルの並列化 (全2回) | iSUS
- 現在と将来の OpenMP* API 仕様 | iSUS
- OpenMP* 5.0 TR7 の仕様抜粋訳 | iSUS
- Fadisさんのツイート: "OpenMPの最新の仕様、OpenMP 5.0がリリースされた。OpenMP 5.0では明示的にflushしないと一貫性が保たれないメモリのサポートや、タスク間でのリダクションのサポート、配列から範囲と間隔を指定して部分配列を取り出す文法他大量の機能が追加される https://t.co/ppnZMPGBBT"
- OPENMP 5.0 IS A MAJOR LEAP FORWARD - OpenMP
C++
本の虫
- EzoeRyou/cpp-book: C++11 textbook
- EzoeRyou/cpp14-appendix: Appendix for C++14 features
- EzoeRyou/cpp17book: textbook for C++17
- cpp17book/003-cpp14-core-binary-literals.md at master · EzoeRyou/cpp17book
- cpp17book/004-cpp14-core-digit-separator.md at master · EzoeRyou/cpp17book
- cpp17book/017-cpp17-core-u8-character-literals.md at master · EzoeRyou/cpp17book
- 本の虫: P1337R0: 標準ライブラリへのエイリアスを追加してC++を復活させる提案
- Ryou Ezoeさんのツイート: "転職先を探しているのだが、この私のコネを持ってしてもC++17を使っている企業はなかなか見つからないぞ。"
- Ryou Ezoeさんのツイート: "プログラマー以外の仕事をするとしたら何だろ。クライミングジムのスタッフとかやりたい。給料低いだろうけど。"
- Ryou Ezoeさんのツイート: "C++を単に書くだけの仕事なら、普通に海外に行ったほうがいいんだろうなぁ。"
- 本の虫: 標準C++規格が3年おきに制定される理由
- 本の虫: C++20標準規格がほぼ固まった
プリプロセッサ
- 可変引数が空でない場合のトークン置換 - cpprefjp C++日本語リファレンス
- __has_include - cpprefjp C++日本語リファレンス
- トライグラフの削除 - cpprefjp C++日本語リファレンス
キーワード
- auto - cpprefjp C++日本語リファレンス
- registerキーワードを非推奨化 - cpprefjp C++日本語リファレンス
- 非推奨だったregisterキーワードを削除 - cpprefjp C++日本語リファレンス
- alignas - cpprefjp C++日本語リファレンス
- alignof - cpprefjp C++日本語リファレンス
- static_assert のメッセージ省略を許可 - cpprefjp C++日本語リファレンス
- P1152R0: Deprecating <code>volatile</code>
- 論理 AND 演算子:&& | Microsoft Docs
リテラル
- 生文字列リテラル - cpprefjp C++日本語リファレンス
- UTF-8文字リテラル - cpprefjp C++日本語リファレンス
- 2進数リテラル - cpprefjp C++日本語リファレンス
- 数値リテラルの桁区切り文字 - cpprefjp C++日本語リファレンス
- 十六進浮動小数点数リテラル - cpprefjp C++日本語リファレンス
- Ryo SuzukiさんはTwitterを使っています 「size_t 用の整数リテラルサフィックス uz が C++23 に入った! auto i = 0uz; // size_t 型」 / Twitter
式と文
- 整数に対する除算と剰余算の丸め結果を規定 - cpprefjp C++日本語リファレンス
- 厳密な式の評価順 - cpprefjp C++日本語リファレンス
- if文とswitch文の条件式と初期化を分離 - cpprefjp C++日本語リファレンス
- constexpr if 文 - cpprefjp C++日本語リファレンス
- 非推奨だった bool 型に対するインクリメント演算子を削除 - cpprefjp C++日本語リファレンス
- 非推奨だった古い例外仕様を削除 - cpprefjp C++日本語リファレンス
- ビットフィールドのメンバ変数初期化 - cpprefjp C++日本語リファレンス
- C++ if文再訪 - in neuro
- 高梨陣平さんはTwitterを使っています 「この記事がものすごくわかりやすかった。C++のLambdaの話。contextのcaptureが内部でどのように実装されているか、コンパイラの解説になっている。 https://t.co/aR0eDTQwCH」 / Twitter
- LobstersさんはTwitterを使っています 「Demystifying C++ lambdas https://t.co/u1dgCRTSfL #c++ https://t.co/cHk3zxlKeB」 / Twitter
- Demystifying C++ lambdas - Sticky Bits - Powered by FeabhasSticky Bits – Powered by Feabhas
- 一貫比較 - cpprefjp C++日本語リファレンス
属性
- [[fallthrough]]属性 - cpprefjp C++日本語リファレンス
- [[maybe_unused]]属性 - cpprefjp C++日本語リファレンス
- [[nodiscard]]属性 - cpprefjp C++日本語リファレンス
- 名前空間と列挙子への属性付加を許可 - cpprefjp C++日本語リファレンス
- 不明な属性を無視する - cpprefjp C++日本語リファレンス
- [C++] 属性構文の属性名にはキーワードが使える [[void]] [[for]] - Qiita
- 謎の用語niebloid - にゃははー
静的リフレクション案
- 島鉄雄さんのツイート: "Common(Emacs) Lisp のマクロはただのリスト操作に過ぎないんで、他の言語が真似する事は絶対出来ないだろう。 強いて言えば C のマクロで既にある程度カバーできてる。 リフレクションやメタクラスは、Meta Object Protocol (いわゆる MOP)の範疇でしょ。マクロではない。… https://t.co/UDQ62hNh7D"
- Ryou Ezoeさんのツイート: "今、C++は関数型プログラミングを取り入れるめどがついているので、C++20でお手軽な関数合成ぐらいできるようになるし、次かその次の規格ではモナドも入るだろう。次にC++が狙うのはCommon Lispのマクロだ。"
- Ryou Ezoeさんのツイート: "それを言い出すと本物のオブジェクト指向を実装している言語はSimulaかSmalltalkだけになってしまう。… "
- 島鉄雄さんのツイート: "Simula とか知らないけど、静的リフレクションとメタクラスを Lisp のマクロに結びつける事に違和感があった Lisp のマクロはリストをいじって見た目を変えるだけのものと考えるべき (dolist (a b) ...) dolist はマクロで、b はリスト型でないといけないけど、マクロはそんな事分からず変形だけする… https://t.co/ctaYDsrq7E"
- Ryou Ezoeさんのツイート: "C++の静的リフレクションも、どのように実装するべきかまだ議論中だが、1つの案としてはソースコードのトークン列を得てそこに対して変形ができる案がある。… "
- 島鉄雄さんのツイート: "なるほど! それなら納得です。Elixir は Lisp 並みのマクロがある事も売りの一つのようだけど、AST をいじくるという地獄の様な仕様になってしまってるので、そうならないように祈るばかりです。… "
- Ryou Ezoeさんのツイート: "C++で策定中の静的リフレクション機能は、ソースコード情報をコンパイル時処理で得るだけではなく、改変するという機能もセット。… "
- 島鉄雄さんのツイート: "了解です!説明ありがとうございました。… "
パターンマッチの網羅性検査の仕様案
- ケケモコソカメニハさんはTwitterを使っています 「@gogo_gaspard @wraith13 @mandel59 到達しないコードに警告を出してくれるコンパイラは大概パターン漏れにも警告出してくれる気がしますので、逆にdefaultを書いていると要素を追加した時に警告が握りつぶされて困ることないですか」 / Twitter
- kinabaさんはTwitterを使っています 「https://t.co/jdau702kNX C++のパターンマッチ(の網羅性検査の仕様案;5節)でこの話があって、はは〜と思ったの思い出した。C++なのでenumの外の値は来得るので防衛的default書きたくなるが、それで網羅性検査が無効になるは困るので、ハックで避けるか網羅性に寄与しないdefaultみたいな構文いれるか」 / Twitter
- Exhaustiveness Checking for Pattern Matching - p2211r0.pdf
UCN
- FadisさんはTwitterを使っています 「C++のuniversal-character-namesの定義をUnicodeのUAX#31に基づく物に変えようという提案がなされている。C++の識別子に絵文字を使った場合の不思議な振る舞い等をを解消するのが狙い。また提案には移植性のあるC++のコードにはNFCによる正規化を要求する事も盛り込まれている https://t.co/DgYWjxOV5I」 / Twitter
- C++ Identifier Syntax using Unicode Standard Annex 31
- FadisさんはTwitterを使っています 「C++11以降のC++では識別子にUnicode文字を使う事ができる。ただ識別子である以上制御文字等を好き放題使われても困るので、識別子に使えるUnicode文字を定める必要があった。この機能が提案された当時Unicodeには丁度良い文字の分類が無かった為、C++の規格には使える文字の範囲が全て列挙されている」 / Twitter
- FadisさんはTwitterを使っています 「このリストがuniversal-character-namesだが、Unicodeは膨大なので実際には入っていないと困る文字がこの範囲に入っていなかったり、入っているべきではない文字が含まれていたり、比較的最近Unicodeに追加された絵文字等はダメだったりするなど「ちゃんと調べないと使える文字かわからん」状態だった」 / Twitter
- FadisさんはTwitterを使っています 「UAX#31はUnicodeの文字のうち識別子に使うのに適している文字のグループをUnicode側が定めた物で、提案はこれを使ってuniversal-character-namesをID_Startまたは_から始まりXID_Continueが0個以上続く物、と定義し直し、リストの問題を解消すると共にC++の規格が最新のUnicodeに追従する必要をなくす」 / Twitter
- FadisさんはTwitterを使っています 「現行のC++ではUnicode絵文字の一部だけが識別子に使える状態になっているが、提案されている変更では全ての絵文字が使えなくなる。使えなくする側に倒したのは、絵文字にはEmoji Modifier Sequence等のややこしいルールがあり、C++がこれらをどう扱うかについてはより慎重な議論が必要だかららしい」 / Twitter
- FadisさんはTwitterを使っています 「で、ここのgccの実装状況によると、gcc-12以上なら-std=c++2bが指定されている場合に識別子に使えるUnicode文字が新しく提案されている物になるらしい https://t.co/XPytv0cVgX」 / Twitter
- C++ Standards Support in GCC - GNU Project
- FadisさんはTwitterを使っています 「仮にEmoji Modifier Sequencesを認めるとすると、肌の色が異なる👋は同じ識別子と見做されるべきなのか、違う識別子と見做されるべきなのか、みたいな問題が出てくるもんな…」 / Twitter
blog
- Designated Initialization @ C++ - yohhoyの日記
- C++20 Contract - in neuro
- [C++]さらに出来るようになったconstexpr(C++20) - 地面を見下ろす少年の足蹴にされる私
- static variableの初期化順序 - in neuro
- コンセプトのパラメータ置換失敗はハードエラーではない - yohhoyの日記
- Static Initialization Order Fiasco - in neuro
- [C++]Boost.PFRの実装の解説のような。 - 賢朽脳瘏
- コンセプト制約式の包摂関係とオーバーロード解決 - yohhoyの日記
- WG14 redirect service - yohhoyの日記
- WG21 redirect service - yohhoyの日記
- [C++]inline名前空間の使途 - 地面を見下ろす少年の足蹴にされる私
- [C++]コンセプトの5景 - 地面を見下ろす少年の足蹴にされる私
- C++ 規格書 - C++ の歩き方 | cppmap
- C++23 の新機能 - C++ の歩き方 | cppmap
- Taku KudoさんはTwitterを使っています 「auto (型推論) の多用は単に怠け者と勘違いされがちだけど、暗黙の型変換が動くのではといった余計な詮索が入り、いまとなっては左辺に型を書くのは読みにくく感じる。議論の余地はあるが、AAAスタイルで書きたい。https://t.co/b6ncBDWpKu」 / Twitter
- GotW #94 Solution: AAA Style (Almost Always Auto) – Sutter’s Mill
- Eigen: Common pitfalls
- 本の虫: C++30周年を記念してCFrontのバグ調査をしてみた
- seyko2/cfront-3: self education and historical research of the C++ compiler cfront v3
Qiita
- C++20便利機能の紹介:自動joinスレッドと停止機構 std::jthread, stop_token - Qiita
- C++20コルーチンで遊ぶ with OpenSiv3D - Qiita
- C++20コンセプト入門以前 - Qiita
- C++コルーチン拡張メモ - Qiita
- トライグラフが廃止だって??! - Qiita
Twitter
- Fadisさんのツイート: "Haskellを学んできたマンはしばしばC++で>>=をオーバーロードして関数を繋ぎたがるが、大変残念な事にC++の>>=は右結合なので、ストレートに実装した場合その関数は期待した順序で実行されない"
- でちまるさん(実際かわいい)さんのツイート: "なので<<=を使えば全て解決する… "
- Fadisさんのツイート: "C++20で符号付き整数の表現が規格で定まった事でC++17まであった不思議仕様「符号無しを符号付きに変換すると2の補数表現の値が得られるが、符号付きを符号無しに変換した結果は実装依存(n4659 §7.8)」がC++20では「整数型は他の整数型に変換できる(n4800 §7.3.8)」だけになったのは大きい"
- Fadisさんのツイート: "Unicodeでは大文字小文字の対応がある文字はどれかが規格で定められていて、全角アルファベット等も含まれている。ここに大文字小文字を区別しない古典的なファイルシステムが合わさると、UTF-8のファイル名はascii外の文字でも大文字小文字を区別しないべきではという悪魔のproposalが誕生するらしい"
- Fadisさんのツイート: "C++20のconceptは少なくとも言語自体にとっては「boolを返すメタ関数をconceptと一目でわかる書き方で書く方法」と「そのメタ関数を使ってconceptと一目でわかる書き方でSFINAEする方法」のセットだから従来のC++から大きな変化ではないよ。標準ライブラリ側はこれを活用して大きく変わるけど"
- FadisさんはTwitterを使っています: 「C言語のポインタは幅広い用途で使えるが、その万能さこそが静的型付け言語のチェックを甘くする原因になる。だからC++ではポインタの用途の一部だけを満たす参照やoptional、スマートポインタ等が提供されていて、ポインタはどうしてもポインタの万能さが必要な時にやむなく使う物になっている」 / Twitter
- FadisさんはTwitterを使っています: 「gcc10からC++20のコルーチンの試験的なサポートが入るらしい。コルーチンは特定の位置で実行を止め、後で続きから実行ができるような関数で、非同期処理をまるで同期のような読みやすい形で書く、無限に値の列を吐き出す関数を作る、といった使い方ができる https://t.co/kXoubQDT0M」 / Twitter
- Experimental Support For C++20 Coroutines Has Landed In GCC 10 - Phoronix
- セクスィ・ナカナカピエロさんはTwitterを使っています: 「@fadis_ @adhara_mathphys Pythonでいうgenerator(yield文)みたいなやつですか?」 / Twitter
- FadisさんはTwitterを使っています: 「@NakanakaPierrot yieldのようなものをC++で実装するために使うことはできますが、コルーチン自体の返り値はIterableではありません。コルーチンはPythonで言うyieldやasync/awaitといった物をライブラリで実現するための土台となる機能です」 / Twitter
- FadisさんはTwitterを使っています: 「コルーチンには「コルーチンから呼んだ関数がyieldしたらコルーチンの呼び出し元まで戻る(=スタックを丸ごと保存する)」stackfulと「コルーチンから呼んだ関数がyieldしてはいけない(=コルーチンのローカル変数だけ保存する)」stacklessの2種類があって、C++の言語機能に入ったのは後者」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「C++ の場合は A を継承した B と C が有って、B と C を継承した D は A を2つ持つ事になって人間が混乱するってのがあって良くないのだろう。(コンパイラは曖昧な時はエラーにするので混乱しない) なので、仮想継承を使う事になるけど、そうすると仮想関数呼び出しがかなり遅くなるというのがある。 https://t.co/fh1ub7l2zu」 / Twitter
- mattn and 100 othersさんはTwitterを使っています: 「オブジェクト指向じゃなく多重継承が良くないよねって言われてるのに「オブジェクト指向は悪」って言ってるの見るとモヤモヤする。そもそもオブジェクト指向のコンセプトに継承とか無い気がするけど。」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「仮想継承時の仮想関数呼び出しがどれだけ遅くなるか、ベンチマークしてみた。 この状況だと倍遅くなった。(正しい計測コードになってるかは若干不安が有るが…) https://t.co/4qI3IglOfr https://t.co/vbUPt2sZom」 / Twitter
- 仮想継承時の仮想関数呼び出しのベンチマーク
- 7594591200220899443さんはTwitterを使っています 「ところで四半世紀前ならいざしらず今となってはC++はCの上位互換でもなんでもないわけだけれど、じゃあ具体的にどこのへんが違うんですかというのはたとえば以下のレポジトリによくまとまっている。 https://t.co/BT5DWTcRyn」 / Twitter
- shafik/determine_c_or_cpp: Determine programatically C from C++ as well as various versions
- FadisさんはTwitterを使っています 「もう1つの大きな新機能coroutineも言語機能としては入ったけど、言語が提供するのはstacklessコルーチンなので、現状どこからでも気軽にyield出来るstackfulなコルーチンが欲しかったら「気合で作れ」という修羅の道になっている。C++23も、大きな変化になる気がする」 / Twitter
- yohさんはTwitterを使っています 「d=std::move(s) データ取出し後にはもう興味がない(実際にはデータが残ってることもある) / d=std::exchange(s, {}) 確実にデータ取出し&クリアしておきたい みたいなニュアンスの違いが」 / Twitter
- にゃっほい屋さんはTwitterを使っています 「C++17の畳み込み式を使ったらもうC++14には戻れない。再帰でやるのに比べると圧倒的にコードが読みやすい。ただVisual Studio 2017だとテンプレートの<>の中で畳み込み式をやろうとするとエラーになってしまうのが残念。2019では直ってるらしいけど。」 / Twitter
- ぬるぽへさんはTwitterを使っています 「C++のベストプラクティスにJSと同じで可能ならばすべてconstを付けようというものがあるんですが、(ついさっきまで忘れてた、Effective C++参照)、一方でmoveのためにconstを付けてはいけない場所というものもあって大変だ」 / Twitter
- ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP
- C++20 - cpprefjp C++日本語リファレンス
- is_pod - cpprefjp C++日本語リファレンス
- algorithm - cpprefjp C++日本語リファレンス
- 符号付き整数型が2の補数表現であることを規定 - cpprefjp C++日本語リファレンス
- C++20は最終版に、C++23がスターティングブロックに
- オープン化が進むC++の現状と展望 - Speaker Deck
- ISO C++ Standards Committee
- MSVC C++20 and the /std:c++20 Switch | C++ Team Blog
man
- 付録 C ISO/IEC C 99 の処理系定義の動作 (Sun Studio 12: C ユーザーズガイド)
- 6.12 互換型と複合型 (Sun Studio 12: C ユーザーズガイド)
- GCC online documentation - GNU Project - Free Software Foundation (FSF)
- C Extensions - Using the GNU Compiler Collection (GCC)
- Using and Porting the GNU Compiler Collection (GCC) - C 言語ファミリに対する拡張機能
きじねこ
- 第10回 翻訳フェーズ | 株式会社きじねこ
- 第9回 浮動小数点数と実数 | 株式会社きじねこ
- [迷信] 0xe-0xe はゼロ | 株式会社きじねこ
- [C99] 第2回 オブジェクトの宣言 | 株式会社きじねこ
- [C99] 第11回 その他、細部のちがい | 株式会社きじねこ
- [C99] 第9回 リテラル | 株式会社きじねこ
- [C99] 第7回 修飾子と記憶クラス指定子 | 株式会社きじねこ
- [C99] 第3回 関数 | 株式会社きじねこ
- [C99] 第5回 型と型変換 | 株式会社きじねこ
- [迷信] 非局所オブジェクトは外部結合 | 株式会社きじねこ
本の虫
- 本の虫: 最近のC言語の配列
- 本の虫: fcloseはリソース解放を失敗しない
- 本の虫: CとC++の違い:式編
- 本の虫: C++03とC++11の違い: 式編
- 本の虫: C++で、(a/b)*b + a%b != aとなる例
Twitter
C の auto/ラムダの提案
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語のWG14の1月の文書が出ておるな。C++ライクなautoやラムダ式を入れようという提案がある https://t.co/DIxPvxXNrO」 / Twitter
- WG 14 Document log
- だめぽラボ@技術書典9さんはTwitterを使っています 「C言語にはstd::functionもテンプレート関数もないし、キャプチャーを持つラムダを他の関数に渡す手段はないのかな?(キャプチャーがなければ関数ポインターに変換できる)(変数への格納はautoがあればできる)」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「type-generic lambdaも入れば「キャプチャーを持つ関数を他の関数に渡す」ことができるようになったりするのかな?」 / Twitter
- FadisさんはTwitterを使っています 「括弧が多すぎることに定評のあるC++のラムダ式から関数の引数が空の場合に()を省略できるようにする提案がなされていて、これがC++23で標準に入りそうな雰囲気だからgcc 11とclang 13から試験的に使えるようになってるらしい https://t.co/ijFBsYQTEZ」 / Twitter
- P1102R2: Down with ()!
- FadisさんはTwitterを使っています 「現行のC++でも関数にmutable等の修飾が何もついていない場合()の省略が許容されているけど、この提案では修飾が付いていても引数が空なら省略していいじゃん、って話っぽい」 / Twitter
配列
- hsjoihsさんのツイート: "実は、アドレスも型も一致しているのにポインタとしては別、という状況は普通にあり得たりします。… "
- hsjoihsさんのツイート: "過去にブログに書いてました。「ちなみに、話が逸れますが、アドレスが同一で型が同一でもポインタとして同一であるとは限りません。」のところです。このことを知らなかったことに由来するバグの話も。 https://t.co/AfS0fgeCQN… "
- C(のサブセット)コンパイラを書く上でハマった点:配列編 - hsjoihs’s diary
- yoh2さんのツイート: "int d[4][8] で、d[0][10] が d[1][2] と同じにならないことがあるというのは、 &d[0][10] と &d[1][2] が同一アドレス、同一型で結果が異なるというより、 &d[0][10] というアドレス自体が UB により算出不能と考えるべきだと思います。 うーん、言葉だけの問題かなぁ。… https://t.co/K66AFBX7D5"
- hsjoihsさんのツイート: "「アドレス値が同じで共に合法なポインタ」という条件を満たす、↓に書いてある「配列の最終要素の次を指すポインタ」vs.「その配列にたまたま隣り合って置かれている配列の先頭要素へのポインタ」とかのほうがよい例かもですね https://t.co/WhmcFM5kYd… https://t.co/JXaaQEYd8M"
- Pointers Are Complicated, or: What's in a Byte?
- デダルス・ユメノさんのツイート: "「異なるポインタ」の意味するところが曖昧なんですが、その両者は==で比較すれば真になるわけですよね。あれ、もしかしてコンパイラ最適化によって(実行時に本当に同じアドレス値になるとしても)偽になることもある?… "
- Shinya Katoさんのツイート: "ubを踏んでいるのでそもそも同じアドレスになる保証がされていないというだけで、実行時に運よく同じアドレスになれば真になるんじゃないですかね?… "
- 置き引きにあったマヌケな鳥頭さんのツイート: "one past the end ポインタと、隙間なく置かれている次のオブジェクトへのポインタは == で true になるとC言語の規格に明確に書かれていますね… もちろん one past the end ポインタへの関節参照は UB なので、同じはずなのに違うポインタってことになるのかな…… https://t.co/H4VwVPHfrW"
オブジェクトの初期化
- Kazuho Okuさんのツイート: "struct の初期化が = {}; じゃダメだとすると {0} か {NULL} かはともかく {{0}} みたいなパターンはちゃんと考えて書かないとダメなのか。めんどくさ"
- Fadisさんのツイート: "グローバル変数の0初期化、規格がどうなってるか気になって見たんだけどC11の規格読む限り§5.1.2で「静的に確保されたオブジェクトプログラムの開始前に初期値で初期化される」って書かれてるけど整数型の初期値とは0の事であるとはどこにも書かれてないように見える…"
- Fadisさんのツイート: "§6.7.9の10項に静的またはスレッドローカルなストレージを持つ算術型の値はゼロに初期化しろよって書かれてた。よかった、グローバル変数の初期値0はやっぱり期待しても良かったんだ"
- ちゃーしゅーねこさんのツイート: "C言語の規格としては未初期化の変数が0ないしnullになるとなっているとしても、それがbssに置かれるかは別問題じゃないの知らんけど"
- 黄前 久美子さんのツイート: "C 言語の規格として,static や グローバル変数みたいな静的に確保される変数は必ず 0-fill されなければならなくて,ELF の bss はそのために生まれたセクション,というのを正確さを欠いて書いたけどまあそういうことです。… "
- 黄前 久美子さんのツイート: "普通にスタックに乗る変数は初期化しないと単なる未定義値… "
- Yusuke Endohさんのツイート: "次の C プログラムが 0 を出力することは保証される? typedef struct foo { int a; int b; } foo; int main() { foo v[1] = {{0, }}; printf("%d\n", v->b); }"
- Yusuke Endohさんのツイート: "何人かに「される」という回答をもらったので仕様書見たら、確かにされるようでした(途中まで初期化してあったら残りは 0 初期化されるらしい)。ありがとうございました… "
register 変数
- yoh2さんのツイート: "のっけから濃いのキター! 結論から言うとエラーになるのが正解かと。ISO/IEC 9899:2011 6.7 にある脚注121でアドレスが取れない例として配列→アドレスの暗黙変換が挙げられてます。 #質問箱 #peing_yoh2_sdj… https://t.co/k6Om9ahoBF"
- yoh2さんのツイート: "ところで、手持ちの環境では gcc 4.5.4, 4.9.3, 5.4.0, 6.4.0 でエラーに。clang 3.9.1 ではエラーにならず。"
C99 プロトタイプ宣言
- Kazuho Okuさんのツイート: "えっCで引数にnon-null制約を宣言すふ方法があるってこと?すごい便利じゃん… "
- Keigo Imaiさんのツイート: "Modern C (pdf) https://t.co/fCcGkR0zpr"
- Modern C
- Keigo Imaiさんのツイート: "puts のプロトタイプ宣言: int puts(char const s[static 1]); この static is 何"
- Keigo Imaiさんのツイート: "長さゼロの配列って何だっけと思ったのですが(たしか構造体の最後のフィールドでのみ宣言可能?)、 それとは別に NULL が渡されるのを排除するために static 1 が使える、とのこと。 https://t.co/BjczgzaW1B @objectxplosive"
- A nice, little known C feature: Static array indices in parameter declarations
- KUDO Muttonski Takashiさんのツイート: "知らなかった、C99 付いていけてないな。… "
- Kazuho Okuさんのツイート: "つまり、引数の型が type* ならnullable pointerで type [static 1] ならnon-nullable pointer ってこと"
- Kazuho Okuさんのツイート: "とか言ってたら、自分の管理してるコードで `[static NN]` が使われてて、それをC89互換性のために廃止する PR が来てたことに気づいた"
- Rui Ueyamaさんのツイート: "C89はさすがにもうよくないですか。… "
- Kazuho Okuさんのツイート: "正確にいうと、「C++にないC99の機能」には依存したくないという文脈なんだろうと思います。Visual Studio... https://t.co/WXfdMh7y1e… "
- Reader Q&A: What about VC++ and C99? | Sutter’s Mill
- Rui Ueyamaさんのツイート: "それはまっとうな要望な気がしますね。… "
- Keigo Imaiさんのツイート: "あまり深追いはしてくれない模様ですね… https://t.co/GTKNgfflAv… "
- ryochackさんのツイート: "うーん、当然ながらポインタ渡しでは検出してくれないのでやらないよりはマシかな、くらいの感覚。配列のアドレスをそのまま渡すってケースは結構少ないんだよなぁ。 https://t.co/UwX1zjBE7R"
- [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
void 引数
- 藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "ANSI Cより前の話が、もはや忘れられつつある昔話であることを実感する。 / “【C言語】引数なしの関数には void を書いた方がよいという話 - 0x19f (Shinya Kato) の日報” https://t.co/OYjiCJd8Mo"
- 【C言語】引数なしの関数には void を書いた方がよいという話 - 0x19f (Shinya Kato) の日報
- AoiMoe a.k.aしお兄Pさんのツイート: "ちなみに「引数が無い関数は f(void) と書いたほうがいい」ではなくて、「関数プロトタイプにおいて、引数が無い関数であることを明示したければ f(void) と書かなければならない」だからね。"
- SODA Noriyukiさんのツイート: "1980年代後半~1990年代にC書いてた人間には完全に常識だったので、時の流れを痛感する。"
後置演算子
- やねうら王さんのツイート: "私にはコンパイラの気持ちはわからないが、コンパイラ作成者の気持ちはわかるので、returnと後置インクリメントを併用したときに適切なコードを生成するのが難しいことはわかるし、当時はそういう地雷を踏みそうなコードはなるべく避けながらプログラムを書くのが常識であった。(と思う)"
- FFFumihiro MMMatsuiさんのツイート: "あー確かにコード生成のやり方によってはスタックに積んで即 ret で飛んで直後の加算が実行されないとかのバグありそう"
- FFFumihiro MMMatsuiさんのツイート: "後置インクリメントは式の中では加算前の値を見せつつその後に変数が加算されてないといけないから演算子一個なのに吐くコードがちょっと複雑"
- FFFumihiro MMMatsuiさんのツイート: "なんであれ演算子にしたんだろう"
- FFFumihiro MMMatsuiさんのツイート: "あれが演算子であるために副作用完了点まわりで未定義動作のコードが結構たくさん生産されてるよなたぶん"
式の評価など
- まあぼ@cubさんのツイート: "つまり「添字演算子を評価した結果の"値"にアドレス演算子を評価できるのはなぜか」ということか。言語仕様そのままだとコンパイラが作れないってことだよね。指摘した人しゅごい。"
- Masaki⊣Haraさんのツイート: "型aの値を単に横にn個並べたものが配列で、アドレスであって参照先が型aであると見なせるものがポインタというイメージ (つまりぜんぜん違う) 似ているように見えるのは、配列のrvalueが特定の文脈で自動的に配列の先頭へのポインタのlvalueに自動変換されるから という認識"
- るくすさんのツイート: "まあ別にローカルスコープ内でしか使わない変数をchar *s=" "としようがchar s[]=" "としようが、ホットスポットでも無い限りキャッシュ効率がどうのとかでも無いんだけど、前者の書き方は普通にイラッとくる"
- なぎせ ゆうきさんのツイート: "int i = -(int)+(int)-(int)+(int)-(int)+(int)-(int)+(int)-(int)+(int)-5; ひゃっほーい… "
- りあね xa1 ver 21.5.0さんのツイート: "CastExpressionはUnaryExpressionNotPlusMinusの一種で、それはUnaryExpressionの一種。前置演算子やプリミティブ型へのキャスト演算子の右にはUnaryExpressionが来れるので、キャストと前置演算子は同じ優先度のはず。「-(int)-5」が通ると思う"
- Rui Ueyamaさんのツイート: "うわー、C言語初心者レベルで勘違いしてた。xが配列のとき&xもxもxのアドレスなんだった。&xなんてか書かないから忘れてたわ。フルスクラッチからCコンパイラを書いたことすらあるのに。"
- 水島宏太(ゆる糖質制限)さんのツイート: "一つ提案してみたいのだが、C, Java, Ruby, Python, 等の値渡ししかない言語で、そもそも参照渡しという用語が登場する意味がないので、それらの入門書において、値渡し/参照渡しという用語を使うこと自体をやめてみてはと思う。"
- Rui UeyamaさんはTwitterを使っています 「@kaityo256 あとcharポインタはstrict aliasing ruleで特別扱いになっているので(T*とU*はTとUが違う型である限り一般に異なる場所を指していると想定していいが、TやUがcharなら同じアドレスを指しているかもしれない)、char8_tをchar*にすると最適化が難しくなるというのはわりと説得力あります。」 / Twitter
CERT C
PRE
- PRE05-C. 字句の結合や文字列化を行う際のマクロ置換動作をよく理解する
- PRE10-C. 複数の文からなるマクロは do-while ループで包む
- PRE32-C. マクロの引数内で前処理指令を使用しない
MSC
- MSC06-C. コンパイラの最適化に注意する
- MSC24-C. 非推奨関数や時代遅れの関数を使用しない
- MSC15-C. 未定義の動作に依存しない
ARR
- ARR02-C. 初期化子が暗黙的にサイズを定義する場合であっても、配列のサイズは明示的に指定する
- ARR30-C. 境界外を指すポインタや配列添字を生成したり使用したりしない
DCL
- DCL12-C. 抽象データ型は opaque な型を使って実装する
- DCL13-C. 関数の引数が関数自身によって変更されない値を参照するポインタならば、関数の引数をconstとして宣言する
- DCL21-C. 複合リテラルの記憶域を理解する
MEM
- MEM02-C. メモリ割り当て関数の結果は、割り当てた型へのポインタに即座にキャストする
- MEM03-C. 再利用可能なリソースに格納された機密情報は消去する
- MEM04-C. サイズ 0 のメモリ割り当てを行わない
- MEM07-C. calloc() の引数は乗算した結果がラップアラウンドしないようにする
- MEM08-C. realloc() は動的に割り当てられた配列のサイズ変更にのみ使用する
- MEM09-C. メモリ割り当て関数がメモリを初期化すると仮定しない
- MEM36-C. realloc() 関数呼び出しでオブジェクトのアラインメントを変更しない
STR
- STR05-C. 文字列リテラルの参照には const へのポインタを使用する
- STR11-C. 文字列リテラルで初期化される文字配列のサイズを指定しない
- STR30-C. 文字列リテラルを変更しない
- STR32-C. 文字列を引数にとるライブラリ関数に null 終端されていない文字配列を渡さない
EXP
- EXP34-C. null ポインタを参照しない
- EXP36-C. ポインタをより厳密にアラインされるポインタ型に変換しない
- EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
- EXP30-C. 副作用が発生する式の評価順序に依存しない
FIO
- FIO17-C. fread() を使用するときは、null 終端文字に依存しない
- FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない
INT
- INT09-C. 列挙定数が一意の値に対応することを保証する
- INT10-C. % 演算子を使用する際、結果の剰余が正であると想定しない
- INT33-C. 除算および剰余演算がゼロ除算エラーを引き起こさないことを保証する
- INT34-C. 負のビット数のシフトやオペランドのビット数以上のシフトを行わない
- INT02-C. 整数変換のルールを理解する
ERR
- ERR30-C. 関数を呼び出す前に errno をゼロに初期化し、関数の異常終了時にのみ errno を参照する
- ERR33-C. 標準ライブラリ関数のエラーを検出し対処する
FLP
- FLP00-C. 浮動小数点数の限界を理解する
- FLP03-C. 浮動小数点エラーを検知して処理する
- FLP34-C. 浮動小数点の型変換は変換後の型の範囲に収まるようにする
- isgreater - cppreference.com
- isless - cppreference.com
fno-delete-null-pointer-checks
- KMC Staff Blog:fno-delete-null-pointer-checks
- 第5回 Linuxのカーネルに潜む脆弱性をつぶすパッチ
- JVNVU#162289: ある種の範囲チェックを破棄するC コンパイラの最適化の問題
- 情報セキュリティ技術動向調査(2008 年上期):IPA 独立行政法人 情報処理推進機構
- Using the GNU Compiler Collection (GCC): Optimize Options
- [llvm-dev] RFC: Implementing -fno-delete-null-pointer-checks in clang
fread
- _sopen_s、_wsopen_s
- _fstat、_fstat32、_fstat64、_fstati64、_fstat32i64、_fstat64i32
- _fdopen、_wfdopen
- fread
- fclose、_fcloseall
- Man page of FREAD
- FIO17-C. fread() を使用するときは、null 終端文字に依存しない
- FIO19-C. ファイルサイズの計算に fseek() および ftell() を使用しない
- SEI CERT C Coding Standard - SEI CERT C Coding Standard - Confluence
- CERT C コーディングスタンダード
- 実例で学ぶ脆弱性対策コーディング
Entry Point
TLS(DLL)
Fiber Local Storage
- Win32 Fiber カッコワルイ - NyaRuRuが地球にいたころ
- Fibers - Windows applications | Microsoft Docs
- Be aware: FLS-Fiber Local Storage – Slava Oks's WebLog
- Fiber local storage - 1.66.0
- windows - FLS vs TLS, can I use Fiber Local Storage in place of TLS? - Stack Overflow
- 実行時メッセージ「JMP0015I-U」のシステムからのエラーコードに「0x45A」が通知されます。
- Fiber Local Storage - How is Fiber Local Storage abbreviated?
- FLS (Fiber Local Storage) limitations in Windows
- How does one emulate c++11 thread_local but for fibers (Fiber Local Storage)? · Issue #179 · boostorg/fiber
- Fiber (computer science) - Wikipedia
- Windows 10プレビュー、“Cドライブ”への圧迫を軽減する機能 - PC Watch
- スレッド ローカル ストレージ (TLS: Thread Local Storage)
- DLL_THREAD_ATTACHで割り当たTLSをDLL_PROCESS_DETACHで解放するには?
- スレッド局所記憶 - Wikipedia
- 6.6 .tlsセクション
- TLS Callbacks - セキュリティごった煮ブログ|ネットエージェント
- DLLのマルチスレッド対応
- 第V部~マクロから呼び出すDLLの作り方
- __thread で指定した変数の領域はスレッド終了時に開放されるのか? -> できるだけ使いまわすようです - Qiita
- スレッドローカルストレージ(TLS) - Linuxの備忘録とか・・・(目次へ)
- IBM Knowledge Center - __thread ストレージ・クラス指定子
- Using the GNU Compiler Collection (GCC)
- スレッドローカルストレージ - cpprefjp C++日本語リファレンス
- Thread local storage - 兼雑記
- __thread、マルチスレッド変数
- c - How does the gcc `__thread` work? - Stack Overflow
- プログラムはどこから始まるの? ~ WinMain とは? - Web/DB プログラミング徹底解説
- main関数 ‐ 通信用語の基礎知識
- スタートアップルーチン ‐ 通信用語の基礎知識
- -ENTRY (Entry-Point Symbol)
- Assembler/ForFun(x86_32)/06, 32bit Windows with NASM - Glamenv-Septzen.net
- winapi - C++ Windows return vs ExitProcess - Stack Overflow
- x64 アセンブリーの概要 | iSUS
- x64 Architecture | Microsoft Docs
- If you return from the main thread, does the process exit? – The Old New Thing
- Assembly Programming on x86-64 Linux (04)
- プログラミングノート - x86
- アセンブラに手を出してみる - Qiita
- 関数実行の流れを紐解く(弊研究室の某課題について考える2日目) - ごちうさ民の覚え書き
- C - CreateThreadで指定するスタックサイズ(43694)|teratail
- マルチスレッドのWindowsプログラミングでは、スタックはどう扱われてい... - Yahoo!知恵袋
- OSとプログラミング言語の関係 - 現在組み込み系のプログラムを学習中です。... - Yahoo!知恵袋
- 64ビット環境におけるリバースエンジニアリング - セキュリティごった煮ブログ|ネットエージェント
- アレ用の何か
- Fadisさんのツイート: "x86_64のABIでは%raxで返り値を返す為、C言語のmain関数でreturnしなかった場合%raxがステータスコードになる #kernelvm"
- Fadisさんのツイート: "スタートアップルーチンの段階でスタックポインタの設定などを行う段階で%raxを使っており、ASLRでスタックポインタのアドレスが毎回変わる為毎回異なるステータスコードが帰ってくる #kernelvm"
- Fadisさんのツイート: "ちなみにこれ、C++の場合規格でmain関数のreturnが省略された場合return 0;を書いたように振る舞う事が定められているから、C++としてコンパイルすると必ず0が返ると思う #kernelvm"
プリプロセッサ
mcpp
- (macro-of-inline report) mcppという選択肢 - テストステ論
- 還暦過ぎても、こんなすごいプログラムが書ける: ホットコーナー
- mcpp -- a portable C preprocessor with Validation Suite
- h8liu/mcpp: A portable C/C++ preprocessor
- www.gnu-darwin.org/www001/ports-1.5a-CURRENT/devel/mcpp/work/mcpp-2.6.4/doc-jp/cpp-test.html
本の虫
- 本の虫: Raw String Literalとプリプロセッサ
- 本の虫: C/C++で0xf+1は合法なのに0xe+1はコンパイルエラーになるのはなんで?
- Shinya Katoさんのツイート: "pp-numberは全ての整数と浮動小数点の形式を内包していて、その形式に則って字句解析すると0xe-8は一つのpp-numberトークンになるはず で、プリプロセッサの処理が終わって値と型を特定するタイミングで整数表現としも浮動小数点としてもありえない0xe-8が出てきてエラーになるということだと思われる"
- OS開発ゼミ担当 uchan_nosさんのツイート: "0xe-8は整数/浮動小数点数として解釈できないが,規格では字句解析の段階でpp-number(整数と浮動小数点数を表す)型のトークンになってしまい,後段で整数にも浮動小数点数にも解釈できずコンパイルエラーになる,という話だそうです.添字に浮動小数点数が使えない,というのは関係ない話ですね.… https://t.co/vh1fEHlaKa"
- ぷりさんのツイート: "演算子の前後に空白を入れないのがダメなのはコンパイラによっては構文解析に失敗してコンパイルエラーになる場合があるためです。… "
- ぷりさんのツイート: "a[0xe-8] とかいうコードを書くとエラーになるんですよ。… "
- 本の虫: なぜGCCのCプリプロセッサーはlinuxという名前のマクロ名を定義するのか
- 本の虫: cstdint.hのMIN/MAXマクロ
整数定数式
- suzuki shingoさんのツイート: "C でコンパイル時に式が整数定数式か判断するマクロを考えた人がいるみたい。良くこんなの思いついたな » Linus Torvalds - "That is either genius, or a seriously diseased mind." : programming https://t.co/pgOp6AR36O"
- Linus Torvalds - "That is either genius, or a seriously diseased mind." : programming
- SODA Noriyukiさんのツイート: "非定数式xについて「(x) * 0L」をコンパイラが 0に最適化『できない』ことに依存しているので、コンパイラのバージョンに依存しそうだなと思ったら、gcc-4.4以前だと副作用のない整数式を、このマクロが誤って定数式と見なしてしまうことがスレッドの続きで指摘されてますね: https://t.co/OvdSHP2kTg… https://t.co/HDvdBk3igb"
- SODA Noriyukiさんのツイート: "新しいバージョンのコンパイラの方が、最適化能力が落ちているように見えるのがなんか不思議… LLVM 8.1.0 では gcc-4.5以降と同じ結果でした。… "
- 前田敦司さんのツイート: "「(x) * 0L」を0に最適化したとしても,それはC99規格でいう「整数定数式」ではなく「0になるとわかっている整数式をvoid *にキャストしたもの」に過ぎず,sizeofの結果が異なるということのようです. https://t.co/rO4U40Ffqr… https://t.co/bqaKLblELW"
- 前田敦司さんのツイート: "あ,それは「0になる整数式」とはまた話が違って,「整数式を整数定数式扱いしちゃった」ってことですね.それは規格違反のバグということになるんでは.たしかにバグのあるバージョンなら動かない,ということはあるでしょうね.… "
- 前田敦司さんのツイート: "null pointer constant(npc)は「値が0である〈整数定数式〉をvoid*にキャストしたもの」と定義されていて https://t.co/VMHqNU2JYZ たとえば「変数 * 0L」は整数定数式でないのでnpcじゃない,ということですね.… https://t.co/JCZTcQxcoz"
- 前田敦司さんのツイート: "また,a?b:cで,bかcのどちらかがnpcで他方がポインタなら,結果はnpcでない方のポインタ型になる. そうでなくてどちらかがvoid*なら結果はvoid*になる,と書いてありました. https://t.co/LeYT6XZkml 6の最後.… https://t.co/p2RLZzkfpl"
- 前田敦司さんのツイート: "まさにこの仕様を用いて,1 ? ((void*)((x)*0L)) : (int *)… は xが整数定数→ :の左はnpc → 全体は(int*) xが整数定数でない→ :の左はnpcでないvoid* → 全体は(void*) となってるわけですね.… https://t.co/LU1OAnSGWk"
- 前田敦司さんのツイート: "補足: ・?:のポインタ型変換の仕様が肝なので,a?b:cの値がbかcかは関係ない.実際 (1 ? …)を(0?…)に変えても動きます. ・ 整数定数式はcaseラベル,(可変長でない)配列のサイズ,プリプロセッサディレクティブなどで使われ,処理系や最適化レベルによらず必ずコンパイル時に値が決まります.… https://t.co/L1dtyfPQYu"
- KaiGai Koheiさんのツイート: "https://t.co/25XfMZpHnV PostgreSQLでintやfloatのプリミティブ型演算子のオーバーフローチェックって割とexpensiveなんだけど、ビルド環境によってはこーゆーの使ってもいいよね。(検算するよりキャリーフラグ見た方が軽い)"
- Using the GNU Compiler Collection (GCC): Integer Overflow Builtins
- Arithmetic overflow checks in C++ Core Check | Visual C++ Team Blog
- c++ - How to detect integer overflow? - Stack Overflow
- x64 (amd64) Intrinsics List | Microsoft Docs
- __readeflags | Microsoft Docs
- rL256686
- Kirill Yukhin - Re: [PATCH i386] Introduce __readeflags () and __writeeflags () intrinsi
blog
- 最近プリプロセス時処理が楽しい - 茅の下
- Kazuho's Weblog: pthread_once が嫌いすぎて再実装した話
- Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
- __VA_ARGS__の引数をループするやつはなぜ動くのか - in neuro
- C言語のマクロであんまり使わないけど(低レイヤプログラミングにおいて)猛烈に便利な演算子 - FPGA開発日記
- #elifdefと#elifndef - yohhoyの日記
- プログラマーの理想と現実 - C言語のテクニカルバグ—マクロの問題 | 株式会社創夢 — SOUM/misc
- printf 用のマクロの話 - 兼雑記
- Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
- プリプロセッサのトークン結合演算子「##」の仕様が不明 - satosystemsの日記
interface
- mattnさんはTwitterを使っています 「C99 で interface を実現するライブラリ(ヘッダオンリー) / “GitHub - Hirrolot/interface99: Zero-boilerplate interfaces for C99” https://t.co/9mpldfb2My」 / Twitter
- Hirrolot/interface99: Zero-boilerplate interfaces for C99
- mattnさんはTwitterを使っています 「COM ぽさある。」 / Twitter
- C++でCプリプロセッサを作ったり速くしたりしたお話
- blog dds: 2006.06.26 - Dave Prosser's C Preprocessing Algorithm
- blog dds: 2006.06.26 - Dave Prosser's C Preprocessing Algorithm
- x3J11-86-196.pdf
- cpp.algo.pdf
- C言語/前処理指令 - Wikibooks
- C/C++ プリプロセッサ リファレンス
- Preprocessor Reference
- How to remove lines added by default by the C preprocessor to the top of the output? - Stack Overflow
- #include ディレクティブ (C/C++) | Microsoft Docs
- Clarification Request Summary for C11
- herumiさんはTwitterを使っています 「dirty hackが必要になって #define AAA aaa #if AAA == aaa void foo() {} #endif #undef AAA #define AAA bbb #if AAA == aaa void foo() {} #endif というようなコードを書いたらfoo()が二重定義のエラーになってしばらく悩んだ。よく考えたら確かにそうなる。マクロむずい。」 / Twitter
- std::めるぽんさんはTwitterを使っています 「BOOST_PP_STRINGIZE が存在してる理由を知ってたおかげで原因不明の問題を解決できた。ほんとプリプロセッサの挙動怖いな…」 / Twitter
- std::めるぽんさんはTwitterを使っています 「#define REGISTER(func) void func() { ((Func)dlsym(mod, #func))(); } REGISTER(foo); REGISTER(bar); みたいなことをした時に、foo や bar が実は #define で foo_v2 や bar_v2 みたいな別の名前になってた(しかも foo や bar 関数も dll 内に存在してる)って問題だった」 / Twitter
- 822823回マクロを展開するとGCCが死ぬ - Qiita
- 入谷 優さんはTwitterを使っています 「とあるマクロに与えた __VA_ARGS__ が単一引数として扱われて困っていたのですが、MSVC ではちょっとした回避策が必要になるのですね。マクロの展開順序について理解を深めなければ…… https://t.co/tzDtyubnWq」 / Twitter
- visual c++ - MSVC doesn't expand __VA_ARGS__ correctly - Stack Overflow
- C言語でよく定義するマクロまとめ - Qiita
- Masaki HaraさんはTwitterを使っています 「しかしCのパーサーパイプラインはすごいよな。trigraph → line concat → pre-tokenize → preprocess → tokenize → parse ってなってるわけで……」 / Twitter
型
型変換
- punningの意味・用例|英辞郎 on the WEB:アルク
- 型変換
- 型変換
- C/C++における整数型の昇格 - Qiita
- C言語で暗黙の型変換が発生する16のパターン(+演算子の結果型5パターン) - Qiita
- hikaliumさんのツイート: "え…整数の縮小変換って -Wall -Wpedantic -std=c11 つけていてもだめでさらに -Wconversion つけないと教えてくれないの?コンパイラさん、信じてたのに…(想定通りの値が出ないのでQEMUのソースまで読みに行った挙句の初歩的ミスだった)。… https://t.co/p9joqP2nqO"
- herumiさんはTwitterを使っています: 「今日の気づき : clangで(unsigned int)(-2.0)はでたらめな値を返す。https://t.co/P0oktu52Br 未定義なのは知っていたけどx86環境なら(unsigned int)(-2)ぐらいになるだろう(こちらはvalid)と勝手に思っていた。VCはそうなった。gccだと0だった(バーションやオプションにもよる)。」 / Twitter
- [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
- herumiさんはTwitterを使っています: 「補足。clangだと-fsanitize=undefinedで実行時に「runtime error: -2 is outside the range of representable values of type 'unsigned int'」と怒ってくれる。 https://t.co/gQneIrIyuW」 / Twitter
- [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「さすがはclang…B.メイヤー先生の品質基準の一つ「ロバストネス性(仕様外領域の(なるべく安全な)グレードダウン)」みたいな発想は皆無(笑) なお、float f = 2.0; を(u_int)f; にキャストした場合は、他と同じ結果になる様子。 https://t.co/WMuDyQjmBH」 / Twitter
- 汎整数拡張 - Wikipedia
アライメント
構造体・共用体
- Kazuho OkuさんはTwitterを使っています 「全てのメンバが uintX_t である struct の alignof は alignof(uintX_t) に等しい、って C99 の規格上言えるんでしたっけ?」 / Twitter
- 市川 真一さんはTwitterを使っています 「@kazuho alignof は C11 で規定されたものと思います」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 あっすみません、アラインメントが、という意味です」 / Twitter
- 市川 真一さんはTwitterを使っています 「@kazuho JIS §6.7.2.1 構造体又は共用体オブジェクトのビットフィールド以外の各メンバの境界は,その型に適した処理系定義の方法で調整する。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 ありがとうございます。たとえば union U { struct { uint32_t x, y; } s; uint32_t a[2]; }; において、offsetof(U.a[1]) == offsetof(U.y) である保証はないと」 / Twitter
- 市川 真一さんはTwitterを使っています 「@kazuho 構造体の padding (メンバ間と末尾のメンバの後)が入る条件が処理系定義だから、その保証はないと解釈しました」 / Twitter
倍数
- 倍数 - Wikipedia
- C言語について質問です。 - 以下の仕様を満たす倍数判定プログラムを... - Yahoo!知恵袋
MS
- Alignment | Microsoft Docs
- Padding and Alignment of Structure Members (構造体メンバーのパディングとアラインメント) | Microsoft Docs
- MM_BAD_POINTER macro - Windows drivers | Microsoft Docs
- x64 software conventions | Microsoft Docs
- align (C++) | Microsoft Docs
Intel
- Align and Organize Data for Better Performance
- Coding for Performance: Data alignment and structures
通信用語の基礎知識
- XMMレジスター ‐ 通信用語の基礎知識
- __m128 ‐ 通信用語の基礎知識
- YMMレジスター ‐ 通信用語の基礎知識
- __m256 ‐ 通信用語の基礎知識
- ZMMレジスター ‐ 通信用語の基礎知識
- __m512 ‐ 通信用語の基礎知識
きじねこ
- 第3回 境界調整(アラインメント)を調べる | 株式会社きじねこ
- 5.3 アラインメント調整のため、オフセットを切り上げる。 | 株式会社きじねこ
- データ型のアラインメントとは何か,なぜ必要なのか?
- C/C++ 関数・マクロ集 ((ほぼ?) 処理系・OS 非依存)
- アラインメントの大きなメモリ領域を確保する方法
Twitter
- x86_64でpopcnt / tzcnt / lzcntする【ビット演算テクニック Advent Calendar 2016 5日目】 - Qiita
- Intel GoldmontとMPXとゆるふわなごや
- assembly - Does x64 support imply BMI1 support? - Stack Overflow
- BMI support in Skylake - Intel Community
- X86 Bit manipulation instruction set - Wikipedia
- _tzcnt_u32/64
- Yusuke Endohさんのツイート: "C 言語で、malloc でドカッと取ったバッファの中から、struct 用のバッファを切り出すポータブルな方法ってないんでしょうか"
- Kazuho Okuさんのツイート: "@mametter structのサイズは必要なアラインメント(これは2のべき乗)の整数倍になるので、min(2**tzcnt(struct T), cache_line_size) みたいな感じてアラインメント取ればいけるはずです"
- Yusuke Endohさんのツイート: "@kazuho それってポータブルなんでしょうか。。。"
- Kazuho Okuさんのツイート: "@mametter 2のべき乗以外のところでアラインメントを取るアーキテクチャがない限りはポータブルだと思います。"
- Tanaka Akiraさんのツイート: "@kazuho @mametter C11 には Every valid alignment value shall be a nonnegative integral power of two. という文章があって、2のべき乗なのは保証されているようです。(ちゃんと原文にあたったわけではありませんが)… https://t.co/BF7f4VTVaK"
- Kazuho Okuさんのツイート: "これまでちゃんと考えたことなかったけど、char [128] を確保するようなケースだと、calloc のほうが malloc よりメモリ効率がいい実装がありえるのか。なるほどなぁという感じ"
- Kazuho Okuさんのツイート: "最近のmallocだと差はないだろうけど、メモリプールから切り出す実装だとcallocのインターフェイスを踏襲すべきなのかも。そもそも小容量のmallocの最適化を狙っているわけだし"
- Tanaka Akiraさんのツイート: "@mametter C11 に alignof が入ったんじゃなかったっけ https://t.co/xdOrRvtTaK"
- Yusuke Endohさんのツイート: "@tanaka_akr これをつかって、char* を intptr_t にキャストして alignof の倍数になるように調整する感じでしょうか。うーん、なるほど"
- Yaðuaki Möritaさんのツイート: "@mametter @tanaka_akr max_align_tみたいなのありませんでしたっけ"
- Yaðuaki Möritaさんのツイート: "alignof(max_align_t)でアライン取ってしまえば効率は悪いけど変なアラインを踏むことはなくなりそう。C99とかだとmax(sizeof(long double),sizeof(uintmax_t))とかでアラインとればいいのかな"
- Izumi Tsutsuiさんのツイート: "であれば、「ARM用としてカーネルをいじるようなヤツならちゃんとルール守ったコードを書け、 unaligned access なんぞするんじゃねえ」ということで、カーネルは常に -mno-unaligned-access 付きでビルドせよ、という姿勢が正しいのかもしれない"
- SASANO Takayoshiさんのツイート: "x86/x64であってもunaligned accessは禁止、という方向に持ってった方が良いんじゃないかな…(確か禁止するフラグありましたよね?"
- OS作れないマン WalB担当さんのツイート: "C++11から導入されたalignasいいね。手軽。"
- Kazuho Okuさんのツイート: "sizeof は変数を引数に取れるのに、alignof / _Alignof はなぜ型しか引数に取れないのか"
- Kazuho Okuさんのツイート: "@objectxplosive まあ __alignof__ なければ16にするとかでいいので"
- Yaðuaki Möritaさんのツイート: "@kazuho なんででしょうね、alignasでアラインを大きく取った変数の参照取ってデリファレンスしてalignofとかが実装依存になりそうだからかな、、"
- Kazuho Okuさんのツイート: "@MoritaYasuaki あー。 p = aligned_alloc(alignof(*p), sizeof(*p)) って書きたいだけなんですけどねぇ"
- yohさんはTwitterを使っています 「(n+N)&~N派かな N=(1<<B)-1」 / Twitter
- \助けよや/さんはTwitterを使っています 「アラインメント揃えのパディングに便利なイディオム。 [0,1,2,3,4,5].forEach(n => console.log(n, (n+3) & -4)); 0 0 1 4 2 4 3 4 4 4 5 8」 / Twitter
- \助けよや/さんはTwitterを使っています 「2の補数表現ビット列に依存したコードなので、あまり期待してなかった。」 / Twitter
- \助けよや/さんはTwitterを使っています 「-1 は当然 all 1 の 11(略)1111で、-2 は 11(略)11110、-4 は 11(略)1100、-8 は 11(略)1000 … ((1 + 3) & -4) => 4 & 11(略)1100 = 4 ((2 + 3) & -4) => 5 & 11(略)1100 = 4 ((3 + 3) & -4) => 6 & 11(略)1100 = 4 ((4 + 3) & -4) => 7 & 11(略)1100 = 4 ((5 + 3) & -4) => 8 & 11(略)1100 = 8」 / Twitter
- \助けよや/さんはTwitterを使っています 「@yohhoy 確かにそっちの方が直感的ですよね。」 / Twitter
- yohさんはTwitterを使っています 「@yoya まぁ小さいBに関しては定数を覚えてしまってるので、どっちでもさほど変わらない疑惑👻」 / Twitter
- データとコードの並べ替え: 最適化とメモリー – パート 2 | iSUS
- AoS and SoA - Wikipedia
- データ構造アライメント - Wikipedia
- Data structure alignment - Wikipedia
- 剰余演算 - Wikipedia
- 端数処理 - Wikipedia
- メモリアライメントの話 @ゲームプログラマの小話[開発:メモリ] - Qiita
- アライメント計算 : Follow The Master
- アライメント(バイト境界)
- アライメントを知る - 組込屋
- メモリ上での配置に関して、多次元配列と構造体の配列の比較 - in neuro
- C++17: 動的メモリ確保とアライメント - in neuro
- アライメント解説 - in neuro
- GCC - __attribute__ ((packed)) 指定に反してアライメント調整が適用される(29684)|teratail
- c - Why does GCC pad functions with NOPs? - Stack Overflow
- c - Question about round_up macro - Stack Overflow
- Skyrocketing
- アライメント(アラインメント)とは - IT用語辞典 e-Words
- アライメントとか、ワード境界とか
- Blog Alpha Networking: ビット(bit)演算操作の覚え書き
- C言語で2の累乗(2^n)への切り上げ&切り捨て | ハングスタック
ビット演算
ビットフィールド
- とみながたけひろさんはTwitterを使っています 「@yohhoy webkitという辛いブツがあるんですよね https://t.co/ADzU8yYXlx 「一方で省メモリや高速化なんかの点では、これはなかなかすごく頑張ってるように思います。まず省メモリについては、そこらじゅうで bit field が使われてるとかいう時点で既にアレです」」 / Twitter
- WebKit について (コード) - 兼雑記
- 2007-06-01
- \助けよや/さんはTwitterを使っています 「実際のコードでバイナリ記述に使おうとすると struct の word アライメントで、byte がパッキングしたりしなかったりで死ぬ。(何度か死んだ」 / Twitter
- yohさんはTwitterを使っています 「@yoya https://t.co/V371DTSGiG プログラマの期待に反して、外部データとのやり取りには使い物にならないですよね。」 / Twitter
- EXP11-C. ビットフィールド構造体のレイアウトについて勝手な想定をしない
- yoh2さんはTwitterを使っています 「環境によって宣言順が異なる struct iphdr の version フィールドと ihl (ヘッダ長) フィールド……」 / Twitter
POPCNT
- ビットを数える・探すアルゴリズム
- x86x64 SSE4.2 POPCNT
- Popcntによるハミング距離計算
- __popcnt16、__popcnt、__popcnt64 | Microsoft Docs
- marisa-trie の PopCount を改良しました - やた@はてな日記
- Intel CPU の popcnt 命令で性能激落ちくんの話 - Lark_mpの日記
- Binary Hacks と 64bit popCount 問題 | TAKESAKO @ Yet another Cybozu Labs
- x86_64でpopcnt / tzcnt / lzcntする【ビット演算テクニック Advent Calendar 2016 5日目】 - Qiita
- SIMD TZCNT: TERNLOG 0x22 -> ANDN · InstLatx64/InstLatX64_Demo@b672b0a
- InstLatX64さんはTwitterを使っています 「An example on how useful are the new #AVX512-levels: SIMD TZCNT emu, POPCNT vs LZCNT - Byte/Word, not just DWord/QWord - faster, 5vs8 clks on TGL - tzcnt(a)=popcnt(tzmsk(a))=popcnt(~a&(a-1))=popcnt(ternlog(a, a, a-1, 0x22)) - 0-case handled Free source: https://t.co/3sbGqNKn3J https://t.co/41UEv3SUNc」 / Twitter
- SIMD TZCNT w/AVX512 · InstLatx64/InstLatX64_Demo@2ed2029
- InstLatX64さんはTwitterを使っています 「Thx! Fixed, I hope now it is correct: https://t.co/RdcVyaF5Lp」 / Twitter
- SIMD TZCNT: undefined handling · InstLatx64/InstLatX64_Demo@f2405bf
- TZCNT — Count the Number of Trailing Zero Bits
- 整数データのビット操作の組込み関数
- __lzcnt16、__lzcnt、__lzcnt64 | Microsoft Docs
- LZCNT — Count the Number of Leading Zero Bits
- Intel GoldmontとMPXとゆるふわなごや
- assembly - Does x64 support imply BMI1 support? - Stack Overflow
- BMI support in Skylake - Intel Community
- X86 Bit manipulation instruction set - Wikipedia
- _tzcnt_u32/64
Twitter
- herumiさんのツイート: "整数絶対値のトリックは昔Oh! FM(-TOWNS)に載っていて感動して高速化にはまった(当時のHigh-Cが既に利用)。ビット演算で今まで一番頭をひねったのは某コーデックのプロファイルで70%を占めてたやつ。 https://t.co/W3xh7jK9jh 「calcは最適化可能」というヒントありでもかなり難しいと思う。#tcfm"
- misc/codec-calc.cpp at master · herumi/misc
- herumiさんのツイート: "考えてみたい人のために問題にすると、リンク先のcalc()関数はassertの条件下で分岐無しアルゴリズムに変換できる。テーブル参照は使わない。 https://t.co/6ISKNUBHOB"
- shinichiro hamajiさんのツイート: "一行になったけどこれで良いのかな https://t.co/uLVp8o4dZ1 https://t.co/bgNE78joyw"
- for https://github.com/herumi/misc/blob/master/codec-calc.cpp
- herumiさんのツイート: "レスポンスめっちゃはやっ!! すごい。 私の想定解です。コードから想像すると同値な変形をしながらロジカルに攻めたのでしょうか。ループを消すところにひらめきがいりそうに思いますが。 私の場合は出力結果とにらめっこしながら、その結果になるような式を調整して見つけました。… "
- shinichiro hamajiさんのツイート: "a&bはaでいいですね。calc_mine1でこの分岐は上位2bitの組み合わせだなあと理解、calc_mine2で3つ目のブランチが消えて上位1bitが異なるかどうかだけでループ止めてるのでclz一発だな、と。当然実際はもっと試行錯誤しています。これを高速化できるという情報無しでされたのはすごいと思います。… https://t.co/QxVxR1XBRD"
- herumiさんのツイート: "ビット演算クイズ回答編 https://t.co/pCg5HtSvaY https://t.co/7gspg4slex"
- melancholic afternoon
- shinichiro hamajiさんのツイート: "僕の試行過程を書いてみた https://t.co/8j0KDewPSi 一気に書いたのに途中で文体変わる不思議 https://t.co/vsybCYy9vC"
- ビット演算クイズを解いた時の話 - 兼雑記
- herumiさんのツイート: "ビット演算クイズを解いた時の話 https://t.co/SGgeEwDTXc こういう作業の他人の思考経路を見られることはあまりないのでめちゃ面白い(特にbn\anのテーブル簡略化とループいらなくね?のあたり、そうやって突破するんだという)。 https://t.co/Fftbw6tj73"
- shinichiro hamajiさんのツイート: "正直同じ問題を解いた人しか面白くない記述だろうなあ、つまり @herumi さん以外に想定読者がいねえなあ、と思いながら書いていたので、面白いと思っていただいてありがたいです。面白い問題ありがとうございます!… "
- とみながたけひろさんはTwitterを使っています 「ビットフィールド、最上位ビットに1ビット割り当てると最適化が進むという特性がある(符号判断でビット判断を置き換えることができることが多いため)。まあ、爪に火を点すビンボーという奴ですね」 / Twitter
- とみながたけひろさんはTwitterを使っています 「なお21世紀の近代的なCPUは最上位以外でも「ビットが立ってたら分岐」みたいなのを一命令で実行できるので(ARM64)、こういうビンボーは考えなくてもよくなった。x86-64は…BEXTR命令ょゎょゎやし対応CPU少ないめやからなあ…」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「複数のbitを同時に触りたいことがあって (例えば bitset & user_modifiable とか)、bool や bit field を使うとそれが面倒くさくなるので、整数型を使って各ビットに名前を定義する派です←完全にオッサンの発想」 / Twitter
- Blog Alpha Networking: ビット(bit)操作の覚え書き
- Big Endian と Little Endian の判別(Kodama's tips page)
- すばらしいビット | プログラミング | POSTD
- 明日使えないすごいビット演算
- bit manipulation - Get bit offset in C++ - Stack Overflow
- 複数のビットフィールドを持つ数値の並列演算
ポインタ
CERT-C
- MEM10-C. ポインタ検証関数を定義して使用する
- MSC16-C. 関数ポインタの暗号化を検討する
- PRE03-C. ポインタ型でない型をエンコードするには define よりも typedef を選ぶ
- INT36-C. ポインタから整数への変換、整数からポインタへの変換
- EXP36-C. ポインタをより厳密にアラインされるポインタ型に変換しない
- EXP37-C. 正しい引数の数と型で関数を呼び出す
- ポインタ演算
- 配列とポインタ
- 3次元配列でのポインタ - C・C++ - 教えて!goo
- くいなちゃんさんはTwitterを使っています: "C言語のポインタは簡単です。 例えば、 printf("Hello World!!\n"); と書くところを、 (*************************************printf)("Hello World!!\n"); と書いても動きま
- Tsukasa #01さんはTwitterを使っています: "つまり、くいなちゃんの例では * 一回で、"関数型" → "関数へのポインタ型" (暗黙の変換) → "関数型" (* 演算子) という変換が行われてることになる。C9
- 関数ポインタと実体で引数が違うと、CではエラーにならないがC++ではエラーにな... - Yahoo!知恵袋
- C FAQ 5
- 人はなぜポインタで苦しむのか - Qiita
- プログラマでいたい:[C言語]voidポインタの演算 - livedoor Blog(ブログ)
- EncodePointer function (Windows)
- DecodePointer function (Windows)
- Protecting against Pointer Subterfuge (Kinda!) – Michael Howard's Web Log
- NAKAMURA Minoru's Diary (2010年4月)
- S.F.さんのツイート: "タグ付きポインタか。。なるほど。。現代のCPUアーキテクチャは32/64ビットで、4/8バイト でアラインメントされるのが通常だから、アドレスの下位2ビットもしくは3ビットをタグ(フラグ)として利用するのか。。"
- S.F.さんのツイート: "更には64ビットCPUであってもアドレス空間は実質はそれ以下だから、更にタグ用に使えるビット数は増えるのか。。"
- uchanさんはTwitterを使っています 「なんでstrtol()の第2引数はconstポインタじゃないの??? long strtol(const char *str, char **str_end, int base)」 / Twitter
- にゃははー仙人さんはTwitterを使っています 「@uchan_nos 説明が雑すぎた。char*な文字列を使っている場合にconst char*にはできるけどconst char**にはできないのでそうなってるはず。元からconst char*な文字列を使ってればいいんだけど、Cって大体mutableな方を優先して提供している感じなので(正確な議論は知らないけど)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ポインタを純粋なアドレスとして使うのは太古から strict aliasing rule に引っかかって問題になるし provenance 以前にそのあたりを説明するべきだと思う / https://t.co/JLwsBhkCvV」 / Twitter
strict aliasing rules
- (翻訳)C/C++のStrict Aliasingを理解する または - どうして#$@##@^%コンパイラは僕がしたい事をさせてくれないの! - yohhoyの日記
- strict aliasing rules, type punning解説 その1 - gununuの日記
- EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
- 猫科研究所 - gcc option
- C - strict aliasing ruleについて|teratail
- 16.1 strict alias rule · ThePolitewaylearntoCPP17
- SGソフトウェア開発ブログ: [C] Cのstrict aliasingについて
- strict aliasing rules, type punning解説 その1 - gununuの日記
- C - strict aliasing ruleについて|teratail
- c - What is the strict aliasing rule? - Stack Overflow
- EXP39-C. 適合しない型のポインタを使って変数にアクセスしない
- 猫科研究所 - gcc option
- std::aligned_storageを正しく使うためのstrict aliasing rulesとstd::launder - 地面を見下ろす少年の足蹴にされる私
- What is Strict Aliasing and Why do we Care?
- GCC いろいろ - akcnvの個人的備忘録 @ ウィキ - アットウィキ
- 【C/C++】Strict Aliasing Rule - Togetter
- ISO Cの型違いポインタアクセス禁止規則 - sumiiのブログ
- OS自作したい。技術書典6・う38さんのツイート: "strict aliasing ruleとunionてどんな関係になってるんや?"
- OS自作したい。技術書典6・う38さんのツイート: "https://t.co/Mhzu2hcon2 にはstrict aliasing rulesに抵触しないエンディアン変換方法としてmemcpyやunionを使った手法が紹介されているけど,普通にビットシフトとor演算を使った方法でも,最適化によってbswap命令に置き換えてくれるみたい.テストコード→ https://t.co/Ez50MPHGwY"
- convert_endianness_optimization.cpp
- 旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita
- Kazuho OkuさんはTwitterを使っています 「Cのポインタをどう説明するかについては、型ごとのviewであって、viewが重なるか(重なりうるか)に関しては、、、って aliasing, restrict, provenance あたりを説明するのが、僕は一番伝わりやすいと思う」 / Twitter
- Pointers Are Complicated II, or: We need better language specs
- 井山梃子歴史館さんはTwitterを使っています 「某記事ってCの話したいわけじゃないんだよね」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「UBの話,最適化と安全性のトレードオフという言語デザインの話であってクリスプに〇×別れるものではない,というのは広く知られていないと思う」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「「有益な最適化をできるだけ残したい」vs「最適化によってプログラムの意味を捻じ曲げたくない」のどこでバランスをとるか,という話なんだよね」 / Twitter
- κeenさんはTwitterを使っています 「CとかRustとかにはポインタの来歴という概念があるけど、それが何故必要なのかを最適化によってプログラムが壊れる例を挙げて解説している。ほとんどのコンパイラがその問題を踏んだので難しいよねとも Pointers Are Complicated II, or: We need better language specs https://t.co/oDZfQPhsaJ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「関数呼び出しと関数へのポインタを返す式は、デリファレンスを1回やるかどうかの違いだけなので、大した違いではない」 / Twitter
long double
- long double ‐ 通信用語の基礎知識
- www-an.acs.i.kyoto-u.ac.jp/~fujiwara/server/longdouble.html
- long double - Wikipedia
- calculation with long double precision
128 ビット整数
- C - 64bit以上のビットボードを扱いたい(18432)|teratail
- gcc拡張、128bit integer | messier42の日記 | スラド
@kazuho
- Kazuho's Weblog: C言語で可変長引数をとる関数を、型安全に書く方法
- Kazuho Okuさんのツイート: "C言語にはクロージャがないからコールバック関数定義してデータ構造体を持ちまわってる? マクロつかえばいいのに、ご苦労じゃね"
- Kazuho Okuさんのツイート: "と思ったけど、100行以上続くマクロ展開のあるCコードとか書いてるわ。闇技術www https://t.co/PTgNiPTrbL"
- picotls/picotls.c at master · h2o/picotls
- Kazuho Okuさんのツイート: "構造化データのcodecをCで書いてるとマクロにブロック埋め込むの超便利でクロージャ気分なんだけど、マクロ内のステートメント単位でデバッガで追えないのだけが辛い。ちなみにこんな感じ https://t.co/k8xRffKEzg"
- picotls/picotls.c at master · h2o/picotls
- Kazuho Okuさんのツイート: "僕のCコードの中で再頻出のメンバ名は super です。なぜなら struct Dog { struct Animal super; void (*bark)(Dog *dog); }; ... struct Dog *dog = (Dog *)get_animal(...); とか書くから。今時のCなら当然ですよね。"
- Kazuho Okuさんのツイート: "言語のもつパラダイムによって特定のデザインパターンを強制されないのがC言語のいい(わるい)ところです"
- Kazuho OkuさんはTwitterを使っています 「ふと気になって試してわかったけど、↓みたいな感じで書けば関数宣言をコピーすることできるんだ。。。 typedef __typeof(fprintf) fprintf_t; fprintf_t foo; int main(int argc, char **argv) { foo(stdout, "hello world\n"); return 0; }」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu プロトタイプ宣言しかしてないのでリンクできない感じですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「何をやってたかというと、プロトタイプを全く書かずに、ライブラリ実装のコンパイルタイムでの切り替えをサポートすることはできるのかなーって試してたのでした。(実際にやるかどうかほ別として)できそうという結論に達した https://t.co/RUh0FZEJwM」 / Twitter
- introduce `h2o_sysfn` macro; allows deployments to replace certain syscalls with their own by kazuho · Pull Request #2418 · h2o/h2o
- 今までに遭遇したことのない警告が出て困っています。 - Windows7 3... - Yahoo!知恵袋
- Hideyuki Tanakaさんのツイート: "式の型と値の型の区別がついてない人が多いんじゃない?(知らんけど)"
- alignas - cppreference.com
- /J (既定の char 型の unsigned への変更) | Microsoft Docs
- とが🍀🌈🎵さんはTwitterを使っています 「C 言語の宣言で * とか [] が右側に付く理由 https://t.co/NsmgruqH59」 / Twitter
- とが🍀🌈🎵さんはTwitterを使っています 「・「もとは」というのは B 言語まで遡ります ・今のような型の概念は C 言語から(B では配列や右辺値/左辺値程度の区別しかなかった)なので「もともと型の違いを表していた」というのも正確には「今の型の概念のうち配列型・ポインタ型・関数型に相当する部分が右側の書き方で区別されていた」です」 / Twitter
- とが🍀🌈🎵さんはTwitterを使っています 「https://t.co/LbcV47i5dM」 / Twitter
- しる@人口知能モドキ(IQ3)さんはTwitterを使っています 「@57tggx そういえば昔は「int型のポインタ変数」だったのが、いつの間にか「intポインタ型の変数」になりましたね。」 / Twitter
- Slashdot | Interviews | C++ Answers From Bjarne Stroustrup
- paul-j-lucas/cdecl: Composing and deciphering C (or C++) declarations or casts, aka ‘‘gibberish.’’
- Interview with Dennis Ritchie, Bjarne Stroustrup, James Gosling
- Kazuho OkuさんはTwitterを使っています 「いい質問。 ・拡張性不要なら型を表すenumとunionで十分 ・関数ポインタを直接入れるのは型enumと比べて空間効率が悪い。vtbl形式は実行効率で劣位 ・なので関数ポインタを入れるのは大規模かつ拡張性が必要なプログラム(例. カーネル)以外では珍しい みたいな感じかな」 / Twitter
- mitsuo_suwaさんはTwitterを使っています 「#C言語 の構造体に #関数 の #ポインタ を持たせて #クラス っぽく使ったり出来ます。privateっぽくメンバ変数を持つことも出来ます。つまりはC言語でも #OOP が出来ます。なのになぜか、そうする人がいないのです。手を抜いてるのか能力がないのか、その両方なのか。困ったものです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「このあたりの話、bit連載の7bitsの「必然的にオブジェクト指向」でとても良い議論をやっているだけど、もう手に入らないかな (ソフトウエア千一夜にあった気もする」 / Twitter
- Miura HidekiさんはTwitterを使っています 「うろ覚えだけど、優秀で遠慮のない新人プログラマが上司と上司の恩師の所に行って話をするという話。新人君がオブジェクト指向なんて優雅なこと言ってるけど、現場のプログラマにはそんな余裕はないですよ(まあ30年くらい前の話だし)、みたいなことを言って話が始まる。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「恩師はそんなことは無いと言うことで、UNIXのファイルデバイスを例に挙げる。ファイルデバイスはopen/write/readなどのシステムコールに対応した関数ポインタメンバーを持った構造体を使うことでデバイスの詳細が分からなくてもファイルを扱うことが出来る。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「みたいな感じで話が進む。構造体のメンバーが大域変数と同じくらい重要なものであるとかそんな感じで当時の現場で使うようなCでもオブジェクト指向の考え方が有用だよと言う話。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「昔は盛んにやられてましたが、規模が大きくなるとひたすら面倒になること、俺OOを持つライブラリと別の俺OOを持つライブラリとを一緒に使おうとすると組み合わせの数だけ手間が増えること、等から、面倒を自動的にみてくれる言語に流れるのは無理からぬことでしょうねえ。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「類似の構造はメモリ管理にも言えるかも。リファレンスカウンティングとかマークスイープとかを自分のライブラリだけで実装するのは難しくないけど、複数の独自実装を混ぜて使おうとすると超面倒になるので、言語でサポートされるならそれに越したことないってなる。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Cのvirtual関数相当のことをやっている実例を2つ挙げておくと * OpenSSLの暗号エンジン (たとえばrsa_st::methodが仮想関数テーブル https://t.co/8UGRJhp5oG) * linuxの仮想ファイルシステム (たとえばinode::i_fopが仮想関数テーブル https://t.co/VCh1tat8AO) みたいな感じ」 / Twitter
- openssl/rsa_local.h at OpenSSL_1_1_1l · openssl/openssl
- linux/fs.h at v5.14 · torvalds/linux
オーバーラップ判定
- ほっとさんのツイート: "C/C++で、異なる配列内の要素を指すポインタ同士の大小比較は未定義っての、同僚に指摘してもらって初めて知った。 メモリのオーバーラップを検知したいという状況だったけど、調べてみたらなかなか奥が深いのな… https://t.co/SCZqm5ci8v とか https://t.co/rC9W7i4E0P とか"
- C++においてメモリブロックのオーバーラップ判定は不可能なのか - センニジュウヨン
- How to check if a pointer is in a range of memory | The Old New Thing
- Fadisさんのツイート: "あー、でもundefined behaviorになった時点でコンパイラはこの比較をそれらしいマシン語に落とす必要が無くなるから、それも保証されないか"
MiraclePtr<T>
- Kentaro HaraさんはTwitterを使っています 「MiraclePtr(みらくる☆ぽいんた!!)が記事に取り上げられてた。まだ実験段階のプロジェクトですが、Chromiumの生ポインタを「Use-after-freeを検知して安全にクラッシュするポインタ」に性能劣化0%・メモリ劣化0%・コード自動書換で置き換えるというみらくるな構想で、 https://t.co/qXowPSx0Nt」 / Twitter
- MiraclePtr<T> One Pager [PUBLIC] - Google ドキュメント
- Kentaro HaraさんはTwitterを使っています 「「64ビットシステムはポインタの先頭16ビットを使用しない(<--ここ使えるじゃん!!)」とか黒魔術ビット演算とかメモリアロケータに手を入れたりとかして、何とかして性能劣化0%の突破口を見つけたい・・・。興味ある人は↓とか読むと何がやりたいのか伝わると思います^^ https://t.co/JoJh30wcqG」 / Twitter
- Kentaro HaraさんはTwitterを使っています 「「64ビットシステムはポインタの先頭16ビットを使用しない(<--ここ使えるじゃん!!)」とか黒魔術ビット演算とかメモリアロケータに手を入れたりとかして、何とかして性能劣化0%の突破口を見つけたい・・・。興味ある人は↓とか読むと何がやりたいのか伝わると思います^^ https://t.co/JoJh30wcqG」 / Twitter
- Miura HidekiさんはTwitterを使っています 「プログラム解析を駆使して、必要なければGCをスキップして生ポインタを使って必要ならGCを使うっていうことはmmcの経験から可能だろうなーっておもう。問題は、GCとかメモリ管理のランタイム側をそのように対応しないといけないこと。この辺もプログラムに合わせて自動生成するようになっていくと思う」 / Twitter
- hikaliumさんはTwitterを使っています 「MTECheckedPtr, めっちゃおもしろい。アロケータのメタデータにタグ情報を突っ込んでおいて、derefするときはそのtagで上位16bitをxorしてからderefする。freeされたらtagを違う値に書き換えておけば、derefするときにnon-canonicalになってuse-after-freeを防げる。うおお。 https://t.co/JVaIsdZhEm」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「https://t.co/tjZR3BEWlU MTECheckedPtr<T> 、なるほどと感心した。セキュリティ的にはオーバーヘッドに対してこれどのくらいカタいのかな。任意アドレスに書く状況になってたらアドレス漏れててタグも漏れてそうで、入口部分の、読ませちゃダメな領域を読んじゃう機会が減るという感じかな」 / Twitter
- Kentaro HaraさんはTwitterを使っています 「@shinh タグが漏れてるとアウトだし、せいぜい16bitが限度なので回数攻撃で突破できるかもですね。結局はリスクの程度問題で、いまはUaFのバグ修正に膨大なエンジニアリングコストとインフラコストを費やしてるので、UaFのリスクを減らすことでそれを減らせないかなというお話です。」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「@xharaken なるほど、やっぱり mitigation で、トレードオフの問題になる感じですよね。 16bit 限度なのは ASLR の上位 bit に犠牲になってもらえば巨大 null page 作って増やせそうですね……まあ別の mitigation 弱めるのは本末転倒感がありますが。面白いドキュメントありがとうございます!」 / Twitter
Linux
LLVM
本の虫
- 本の虫: MPEG RVCからLLVMアセンブリを出力するJADE
- 本の虫: LLVMに電力効率を最適化するコンパイルオプションの議論
blog
- LLVM + clang で LLVM IR やアセンブリを出力する – ymyzk’s blog
- C のコードから LLVM IR コード(LLVM アセンブリ)を生成したり LLVM ビットコードに変換したりする | Meta Meta Lab.
- LLVM IR、LLVM bitcodeを扱うコマンドたちのメモ - 脱力系日記
- LLVM bitcodeのCFGを生成する - 脱力系日記
- LLVMについて調べたことまとめ - kotetuのブログ
- HaskellでLisp to LLVM IRコンパイラ その4 (SSA中間言語) - Arantium Maestum
- オープンソース活動がフルタイムの仕事になる仕組みの話|Rui Ueyama|note
- 2019年度未踏体験記 | カオスの坩堝
OSDN
- LLVMのコンパイラ「Clang」、セルフホスティングに成功 | OSDN Magazine
- 性能を改善した「LLVM 2.5」がリリース | OSDN Magazine
- LLVM 2.6リリース | OSDN Magazine
- C/C++/Objective-Cサポートが強化された「LLVM 2.8」がリリース | OSDN Magazine
- LLVM Project、最後の2.xリリースとなる「LLVM 2.9」を公開 | OSDN Magazine
- LLVM Project、LLVM 3.0をリリース | OSDN Magazine
- LLVM 3.1/Clang 3.1登場、C++11のコア機能をほぼサポート | OSDN Magazine
- コンパイラ環境「LLVM 3.2」をリリース、最適化機能を強化 | OSDN Magazine
- 最適化機能の強化が行われた「LLVM 3.3」リリース、ClangではC++11のフルサポートを実現 | OSDN Magazine
- 「LLVM 3.4」リリース、C++14の全仕様をサポートへ | OSDN Magazine
- Goバインディングが加わった「LLVM 3.6」リリース | OSDN Magazine
- 「LLVM 3.9」リリース | OSDN Magazine
- 「LLVM 5.0」リリース | OSDN Magazine
- 「LLVM 6.0」リリース | OSDN Magazine
- 「LLVM 7.0」リリース | OSDN Magazine
- 「LLVM 8.0」登場、WebAssemblyを正式サポート | OSDN Magazine
- 「LLVM 9.0」リリース、asm gotoのサポートでLinuxカーネルのビルドが可能に | OSDN Magazine
Qiita
- Android・iOS対応のクロスプラットフォームライブラリ、Intel Multi-OS Engine(MOE) - Qiita
- LLVM bitcode基礎知識 - Qiita
Twitter
SSA
- Miura Hidekiさんのツイート: "llvmでは基本ブロックがすべて独立していて、IRコードが字面上連続していてもジャンプ命令が必要。今度作るのはどうしようか考えている。llvmの仕様はインプリメントでは楽できるが、使う人が大はまりするおそれがある、というか大はまりした。"
- zehnpaardさんのツイート: "いったんASTを自分が定義した別のSSA IRに落とし込んでからllvm irに変換するようにした方がスッキリする"
- Shunsuke Shidaさんのツイート: "ASTからLLVM IRを作ってた頃は支配辺境が自明な構文(for, if等)ではあっさりとSSA形式に出来たけど、breakやcontinue等で苦労する羽目に。 バイトコードからの方が最終的には正確にやれそう。"
- ドッグさんのツイート: "SSA な処理系の中間言語は割とそんな感じかと(LLVM IR とか)… "
- Kenta IDAさんのツイート: "LLVM-IRはやっぱ解析するの前提やし、レジスタマシン、SSAなので楽やなーと思ったりする。 #dotnetconf"
- Urabe, Shyouheiさんのツイート: "LLVM IRそんな読みづらいかなあ?いやSSAだから手書きは面倒だし書けとは俺も言わんけどさ。読むのは普通じゃね? http://t.co/0AAS8FH0bx"
- Urabe, Shyouheiさんのツイート: "LLVM IRがCよりマシな理由第1位として「手書きがめんどう」という話がある(手でSSA変換できるやつは少ない)。なのでクソコードが書かれる蓋然性が低い。"
- 光のインターネットの闇さんのツイート: "LLVM IRってSSAだからmovっぽいものがない?"
- azuさんのツイート: "LLVM IRはSSAなので変数を再利用しない"
- κeenさんのツイート: "LLVMのmem2reg、適当なコード吐いても最適化しくれるくらいにしか思ってなかったけどレジスタが全部SSAなLLVM IRだとミュータブルな変数は全部スタック使うしかなくてmem2regがないとまともな速度出ないのか。"
- ロックフリーのkumagiさんのツイート: "x86はmov命令だけでチューリング完全の域に達しているのにLLVM-IRにはmov命令が存在しないからやる気が足りない(SSAを根本から冒涜した無知な発言)"
最適化
- うー@技術書典8 Day1う31 BitNOSさんはTwitterを使っています: 「Clangってcosやsinなどの数学関数を副作用が無い前提で最適化してくれないっぽい?引数が同じなら何回も計算し直す必要無いはずなのに,律儀に何回も呼び出してくれちゃう。」 / Twitter
- yohさんはTwitterを使っています: 「@uchan_nos https://t.co/aVORPK6mI4 -ffast-mathオプションとかどです?」 / Twitter
- Compiler Explorer
- とみながたけひろさんはTwitterを使っています: 「@yohhoy @uchan_nos fastmathなしだと毎回例外が起きることを期待するからですねー」 / Twitter
- yohさんはTwitterを使っています: 「@takehiro_t @uchan_nos https://t.co/VQGtBfFSzw 同じ効果を得るなら、-fno-math-errnoオプションの方が-ffast-mathより"安全"かもですね。」 / Twitter
- c++ - How to force GCC to assume that a floating-point expression is non-negative? - Stack Overflow
- x86-64-128さんのツイート: "戻り値がvoidではない関数でreturnを書き忘れた場合,Clangだとret命令が生成されないんだね.戻り値がゴミになるだけかと思ったらプログラムが暴走してびっくりした."
- Kazuho Okuさんのツイート: "LLVM の bitcode 使うことで GCC のインラインアセンブリよりも(場合によっては)高速なコードが書く方法 / “Kazuho's Weblog: Writing fast code using C++, LLVM b…” http://t.co/tMHWNmCF"
- Kazuho's Weblog: Writing fast, processor-independent code using C++ and LLVM bitcode
- Kazuho Okuさんのツイート: "内部中間表現として bitcode 使ってるだけならそれで問題ないですしねぇ RT @Constellation: LLVM, 基本くるくる変わるから, project に突っ込むのが常套手段っぽい."
- Kazuho Okuさんのツイート: ".@wasabiz コンパイラは、仕様が不安定な LLVM bitcode より C 言語を出力すべきみたいな話をこのまえ同僚とした"
- Taisuke OEさんのツイート: "UnityのWebGLサポートの仕組み。 C#ソース -(mcs)-> .NET bytecode -(IL2CPP)-> C++ソース -(clang)-> LLVM bitcode -(emscripten w/ asm.js)-> Javascript #unitej"
- Hajime Moritaさんのツイート: "ところで Vulkan といえばセットになってるシェーダ用バイトコードの SPIR というのがまたやばい。LLVM の bitcode そのまま標準かした仕様。一方でシェーダコンパイラを実行時に動かす OpenGL もそれはそれでやばい。グラフィクス近づくべからず。"
- Atsushi Enoさんのツイート: "KotlinのIRからLLVM bitcodeを生成するのがKotlin/Nativeの核心で、LLVM bitcodeさえ出来てしまえば後はllvmがやってくれる領域です(純粋bitcodeではないかもしれない)。Kotlin/JVMと共通化できるKotlin IRを設計したのもすごいけど多分これはK/N部隊の仕事じゃない気がする。… https://t.co/ulm8s4JGyZ"
- sicさんのツイート: "C拡張を動かすために LLVM bitcode のインタプリタ持ってるの異常 #rubykaigi"
- ぬるぽへ@技術書"典"5か31さんのツイート: "「LLVMの真実」、LLVM bitcodeはarch依存の色々なものが入っていて全然portableじゃないしあーき共通じゃない #kernelvm"
- Fadisさんのツイート: "LLVMにbinutilsのstripの置き換えを目指す新しいツールllvm-stripが追加された。stripはオブジェクトファイルや実行可能バイナリから不要なシンボルを削除してバイナリを小さくしたり、うっかり必要なシンボルまで削除して実行不能バイナリを作るのに用いられる https://t.co/CxUZNEwHQv"
- LLVM-Strip Introduced As An Alternative To GNU Strip - Phoronix
- shinichiro hamajiさんのツイート: "#rebuildfm のSwift話、Swiftはclangと違ってもともとSILていう中間言語がLLVM bitcodeの前にあったので、アクセラレータに投げられるTFグラフの抽出がこのレイヤで自然に行なえる、て話があるのも面白いところだと思う。SILについては https://t.co/4u2GuUI07K"
- SIL v13.key
- 朝はむずかしいさんのツイート: "MS がLLVM IRへのデコンパイラを出したっぽい。今のところ、ELFにのみ対応。https://t.co/DJeVnAPKrq"
- Microsoft/llvm-mctoll: llvm-mctoll
- 10/27,28はOSC Tokyoさんのツイート: "Clangに-fno-pltを付けることが自作OSだと重要かも."
- OS自作したい。技術書典6・う38さんのツイート: "vimの補完にclangdを使っているんだけど,しばらくvimを起動しっぱなしにするとclangdがめっちゃメモリ食ってある瞬間にほぼ動作が止まってしまう."
- Fadisさんのツイート: "clang9から新しいオプション-ftime-traceが追加されている。gccやclangは以前から-ftime-reportでコンパイルのどの段階にどの程度の時間を要したかを出力できたが、-ftime-traceでは更に階層的な処理の内訳をchrome://tracingで読めるJSON形式で出力する事ができる https://t.co/jIyy3xv6yQ"
- LLVM Clang 9.0 Adds "-ftime-trace" To Produce Useful Time Trace Profiling Data - Phoronix
- Makoto Kato ︎︎さんのツイート: "The Clang AST can now be dumped to JSON. https://t.co/PTLLZ1yknh まじか"
- rL360622
- Fadisさんのツイート: "GoogleがLLVMと組み合わせて使う新しいlibcを作ろうとしている。新しいlibcは既存のlibcよりモジュラ−で、non-PIEやstatic-PIEな実行可能バイナリをロードでき、基本的には標準に沿って実装するが今日では使われないような機能まで網羅するつもりはないとしている https://t.co/KoEd3Wl1G6"
- Google Developers Are Looking At Creating A New libc For LLVM - Phoronix
- Fadisさんのツイート: "LLVMメーリングリストに投稿された内容では、このlibcは少なくとも当初はx86_64だけをターゲットとして実装するとされているが、それに対して別のGoogleの中の人が「Fuchsiaで使いたいからAArch64で動かしたいんだけど、どのへんがアーキテクチャ依存になるの?」って返してる https://t.co/oYxtjLR0u7"
- [llvm-dev] A libc in LLVM
- uint256_tさんはTwitterを使っています: 「実際, CilkがどのようにIRをアセンブリにまで落としているのか簡単な経路を書くと, IR > DAG > MachineInst > アセンブリ となる」 / Twitter
- uint256_tさんはTwitterを使っています: 「@uint256_t さっさとDAGの説明に移りましょう. IRはDAG(directed acyclic graph)形式へと変換される. なぜこんなことをするのかと言うと, グラフ構造のほうがパターンマッチなどを使った変換がやりやすいから.」 / Twitter
- uint256_tさんはTwitterを使っています: 「@uint256_t この時点で, 例えば ((node + c1) + c2) のようなグラフが, (node + (c1 + c2)) と変換されます. (cXは定数, c1+c2は定数畳込みされる) ほかにも, x86など複雑なアドレス指定ができる環境では, loadやgetelementptrのまとまりを一つの命令に置き換えるなどの処理もする」 / Twitter
- uint256_tさんはTwitterを使っています: 「@uint256_t 次はMachineInst. DAGはMachineInstへと変換されるが, これは何なのかというと もはやグラフ構造ではなく命令の列. どんな命令なのかと言うと, 特定の命令セットの命令や, Cilk特有の命令が混じった状態のもの.」 / Twitter
- uchanさんはTwitterを使っています 「__attribute__((interrupt))を付けているのに,Clangがスタックの計算をミスっている気がするよ。」 / Twitter
- LLVM - Wikipedia
- LLVM Language Reference Manual — LLVM 9 documentation
- LLVM Bitcode File Format — LLVM 8 documentation
- LLVM Bitcode Introduction
- emit-llvm - Google 検索
- clang - the Clang C, C++, and Objective-C compiler — Clang 10 documentation
- "compiler-rt" Runtime Library
- libunwind LLVM Unwinder — libunwind 8.0 documentation
- LLVM Backend の紹介
- AddressSanitizer — Clang 11 documentation
- Compiling Native Projects to LLVM Bitcode
- Intel Fully Embracing LLVM For Their C/C++ Compilers - Phoronix
- [下書き] LLVMバックエンド for RV16Kv2 開発文書
GCC
KMC Staff Blog
- KMC Staff Blog:cast-as-lvalue
- KMC Staff Blog:gccの便利なオプション (-save-temps)
本の虫
- 本の虫: GCCのSVN trunkをビルドする方法
- 本の虫: Linus Torvalds、 GCC 4.9.0のコード生成にブチ切れる
- 本の虫: LLVM/Clangがぜってーサポートしねーと宣言しているLinuxカーネルに多用されているGCC拡張
- 本の虫: GCC 5.0でのx86におけるPICの改善と、いかに32bit PICコードがクソであるかというお話
- 本の虫: GCC 4.8でぶっ壊れるSPECのお粗末なコード
- 本の虫: GCCエクスプローラー
- 本の虫: ソフトウェアの思想が設計にもたらす影響
- 本の虫: GCC 6にインデントミスの警告機能が追加
blog
- x86/x86_64関数呼び出しチートシートを書いた | d.sunnyone.org
- [GDB] Linux x86-64 の呼出規約(calling convention)を gdb で確認する - th0x4c 備忘録
- はじめてのにき(2018-09-28)
- SEGV探偵が往く - なるせにっき
- gcc 組込み関数(memcpyとか)のインライン展開抑制
- GCCの拡張機能を使ってSTLもどきを作る | 株式会社きじねこ
- melancholic afternoon
- gccのインラインアセンブラ内からcのラベルにgotoでジャンプ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- GCCの-Wshadowとその推移について、あとお前を消す方法 - in neuro
- GCC 11のビルドとldconfig - uchan note
- LD_LIBRARY_PATH を設定しても反映されないことがある | 穀風
OSDN
- GCCプロジェクト、25周年記念リリースとなるGCC 4.7.0を公開 | OSDN Magazine
- C++への移行が完了、最適化機能も強化された「GCC 4.8」リリース | OSDN Magazine
- C++11やC++14のサポート改善や最適化機能の強化が行われた「GCC 4.9」リリース | OSDN Magazine
- GCC 5系初のリリースとなる「GCC 5.1」登場 | OSDN Magazine
- 「GCC 5.2」リリース、多数のバグが修正される | OSDN Magazine
- 140件以上のバグを修正した「GCC 5.3」リリース | OSDN Magazine
- 5系で最後のリリースとなる「GCC 5.5」公開 | OSDN Magazine
- 「GCC 6.1」リリース、C++14がデフォルトに | OSDN Magazine
- 「GCC 6.4」リリース、不具合修正がメイン | OSDN Magazine
- 「GCC 7.1」リリース、長らく使われていたReloadがLRAに置き換えられる | OSDN Magazine
- 「GCC 7.2」が公開 | OSDN Magazine
- 「GCC 7.3」リリース、CPUの脆弱性「Spectre」への対応も含む | OSDN Magazine
- 「GCC 7.4」が公開、バグ修正が中心 | OSDN Magazine
- GCC7系の最終リリースとなる「GCC 7.5」リリース | OSDN Magazine
- 「GCC 8.1」リリース | OSDN Magazine
- 8系最初のポイントリリースとなる「GCC 8.2」が公開 | OSDN Magazine
- 「GCC 8.3」リリース | OSDN Magazine
- 「GCC 9.1」リリース、D言語サポートが追加される | OSDN Magazine
- 「GCC 9.2」リリース | OSDN Magazine
- 「GCC 9.3」リリース、157件以上のバグを修正したポイントリリース | OSDN Magazine
- 「GCC 10.1」リリース、静的コード解析機能が実験的に導入される | OSDN Magazine
Qiita
- GNU コンパイラ・コレクション C言語拡張 - Qiita
- x86-64プロセッサのスタックを理解する - Qiita
- MacのGCCで返り値を返さない関数を書くと鼻から悪魔が出る - Qiita
- コンパイラのリミッタが外れつつある今、null安全は必須なのかもしれない - Qiita
- 最低限のクロスコンパイラの作り方 - Qiita
Twitter
- Fadisさんのツイート: "メモリ1GBのマシンではもはやGCCのアップデートが自力でできないという厳しい現実に直面している"
- Fadisさんのツイート: "gcc「警告: {}無しのif文の次の行に同じインデントで文を書くの、if文の中身と見間違われるからやめといたほうがいいんじゃないかな」"
- 品川 高廣さんのツイート: "MinGW の gcc は -mno-ms-bitfields を付けないと struct の __attribute__((packed)) を黙って無視するのか。これは酷い。"
- Kazuho Okuさんのツイート: "gccにも__has_builtinが来そうな流れ? / “66970 – Add __has_builtin() macro” https://t.co/Zacd0derfz"
- NOKUBI Takatsugu野首貴嗣さんのツイート: "SEGV探偵が往く - なるせにっき https://t.co/1FXYvbbQcM 「CFLAGSの行に-save-tempsを追加してビルドし直すとコンパイル中の一時ファイルが残ります」知らなかった。ずっとgcc -Eしていた…結構前に新設されたオプションのようだ"
- Kazuho Okuさんのツイート: "union使った型変換はコンパイラ依存。GCCでは合法 https://t.co/zqOrxLkF3K"
- Structures unions enumerations and bit-fields implementation - Using the GNU Compiler Collection (GCC)
- とみながたけひろさんのツイート: "そうそう、最近のgccって「おまえバージョンコントロールソフトでコンフリクトした部分を直してないだろ」とか「これはgoto failバグじゃねーの」みたいなのを専用の警告で教えてくれるんだよな。なんか笑ってしまうが笑ってはいけないんだろうな…"
- taklさんのツイート: "昔相当頑張って調べた記憶がある。昔の話だけどEBP使わずにESPだけを使うと遅くなるケースがかなりたくさんあった。gcc3の頃は-O3付けても-fomit-frame-pointerが有効にならなかった。最近は-O3付けると-fomit-frame-pointerが自動で有効になるから、コンパイラかCPUの進化で良くなったんだろう(昔話)"
- はぇ~☆さんのツイート: "ローカル変数にEBPを使うのはABIでそう定められているからなので、本来、最適化とは関係ないっぽいです。ESPを使えば汎用変数が1つ自由になるので確実に速くなります。EBP / ESPどちらにしてもスタックのアライメントに注意しないとローカル変数の参照が遅くなります。… https://t.co/aeyDBYlgSl"
- はぇ~☆さんのツイート: "んで、EBPを使う場合はスタックのアラインメントとは別にEBPのアライメントが可能なので、コード生成が楽になります。とはいえESPとてスタックに積むサイズに注意を払えばアライメントは維持できるわけで。そんな程度の差だそうです。… "
- taklさんのツイート: "こんにちは。気になったので少し調べてみたのですが、最適化マニュアルの1997年版では「葉関数ではEBPをGPRとして使え」1999年版では「デバッグ情報が不要なときはESPベースの、必要なときはEBPベースのスタックフレームを使え」になっていました。世代毎に色々ありそうですね。… https://t.co/xKWo4ndu8C"
- Kazuho Okuさんのツイート: "sprintf(char [6], "%" PRIu16, ...) が GCC でバッファサイズが足りないと言われることがあるというのと、それが HEAD で修正されたという話を読んだ。なるほどこれはこうなるわ... https://t.co/R8961RXSTB"
- Kazuho Okuさんのツイート: "習性としては、予約済のマクロを再定義した場合の挙動は未定義という規約を利用して、GCC側で PRIu16 のマッピングを "%hu" あたりにハードコードしたのかなと想像"
- ともきさんのツイート: "gcc -g でコンパイルして objdump -S すると (VS でよくある) アセンブラと C を同時に見るモードになることがわかった https://t.co/Wat6thyOgE"
- Shiro Kawaiさんのツイート: "うお、いつの間にかgccが、未宣言関数呼び出しのwarningに似ている関数名をdid you mean...?ってサジェストしてくれるようになってる"
- Fadisさんのツイート: "gccの-Wallが名前に反して全ての警告を有効にしなくて、更に多くの警告を有効にするための-Wextraがあるけど、それでも有効にならない警告があって、そいつらを1つづつ有効にするのめんどくさいから、-Weverythingで全部有効になるようにしようぜ、という提案がなされている https://t.co/ygUtTq7uwJ"
- GCC Unlikely To Adopt A "-Weverything" For Exposing All Possible Code Warnings - Phoronix
- Fadisさんのツイート: "gccの警告全部盛り-Weverything、一見良さそうに見えるけど「お前のインデントが気に入らない(-Wmisleading-indentation)」とか「Effective C++読んで出直してこい(-Weffc++)」とかものってくるわけでだな…"
- Fadisさんのツイート: "コンパイルエラーを人間が読みやすい形で出力する事は一方でコンパイルエラーをパースするスクリプトを発狂させる事になる為、gcc9はコンパイルエラーをより読みやすい形式に変更すると同時に、コンパイルエラーをJSONで出力できるようになるらしい https://t.co/tgysp6OBnu"
- にゃははー仙人さんのツイート: "インクルドガードがわからないから2回読まないといけないというの、もう何年も前にコンパイラはインクルードガードを識別して展開をスキップしてるからそれは速度向上の理由じゃない https://t.co/MdEYZD2Njp #cppmix"
- The GNU C Preprocessor Internals: Guard Macros
- Fadisさんのツイート: "svnからgitへの移行を進めるgccが一部のまだ変換されていないブランチを除いてgithubで見れるようになったらしい。gccはsvn上の全てのブランチ、全てのコミットをgitに移そうとしていたが、gccの歴史が長すぎて難航、メモリ価格の高騰によって頓挫しかかったりしていた https://t.co/arBhv3e3iI"
- A Linaro Developer Has Taken Up The Effort Of Converting GCC's SVN To Git - Phoronix
- Fadisさんのツイート: "これ、コンパイラのバージョンの問題じゃなくてNXビットまたはそれに類する仕組みを持つアーキテクチャであることと、ldがそれを活用していることの2つが条件じゃないかな"
- ←↓↑→さんのツイート: "今日一部の識者と話した結果、main = 195;は最新のgccでコンパイルした場合だとSegmentation faultが発生してしまうけど、__attribute__((section(".text"))) main = 195;ならば動くという事を知った。 実行結果:https://t.co/Yg3pVuNDHT"
- Kazuho OkuさんはTwitterを使っています: 「C互換のクロージャは昔のGCCが-fnested-functionでやってて、あれはスタック上にトランポリンコード生成してたけど、ヒープにコードと変数領域わけるとか近代的なやり方すれば今でも可能だとは思うんですよね」 / Twitter
- taklさんはTwitterを使っています 「「GCCだと」整数をポインタにキャストしたときのビット表現がどうなるか定められている。 https://t.co/uTEjdbk3Gn ヌルポインタは「定数の」0をポインタに変換したときに得られるので、ヌルポインタでないビット表現が0のポインタを得るには (void *)(uintptr_t)0 とかでいいと思うけど、自信ない。」 / Twitter
- Using the GNU Compiler Collection (GCC): Arrays and pointers implementation
- herumiさんはTwitterを使っています 「https://t.co/37AzusUhoc Cの規格(6.3.2.3 3)では整数定数0か(void*)0がヌルポインタ(NULL)。NULLへのアクセスは未定義。したがって0へのアクセスは不可能。それ以外の整数からポインタへのキャストは処理系依存。 このコードはNULLへのアクセスと等価とみなしてgccやclangはud2を生成するようです。」 / Twitter
- hikaliumさんはTwitterを使っています 「@uchan_nos uint8_t *p = 1; p--; *p = v;」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@hikalium @uchan_nos アドレスを即値指定した時点でUBになったりしません? だとしたら0番地に書くのも処理系・プラットフォーム依存なのでその処理系特有のマクロが用意されていると仮定して良さそうな」 / Twitter
- herumiさんはTwitterを使っています 「ちなみにud2は無効例外を出す命令。 CPUのパイプラインでud2を検出すると継続する命令のデコードを停止してCPU負荷を下げる働きをします(Intel最適化マニュアル3.4.1.5 Branch Type Selection)。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@herumi これカーネルや組込だと怖い感じがするのですが、別途0番地へのアクセスを許可したりNULLを別の値に変えるコンパイラオプションがあるのでしょうか」 / Twitter
- herumiさんはTwitterを使っています 「@kazuho ちゃんと調べてないですがgccだと-fno-isolate-erroneous-paths-dereferenceというオプションがありました。 *(char*)0 = 1;が-Ofastでも期待通りの出力をしました。clang-8はそのオプションは無いようです(同様のものがあるかは未確認)。」 / Twitter
- herumiさんはTwitterを使っています 「@kazuho -fno-delete-null-pointer-checksだとgcc/clangともに*(char*)0 = 0;で期待する(?)コードがでました。dereferenceしてるのでその先のポインタはNULLじゃないとみなす? 本来int a = p->v; if(!p)...の後ろのチェックを省略するやつ(デフォルトon)なので意味的に逆な感じもするのですが。@hikalium」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@herumi @hikalium おー。名前はともかく https://t.co/PrJRKGyXl9 の説明みると、これが null へ理由があってアクセスしうる場合に設定すべきフラグのようですね」 / Twitter
- C言語から0番地へアクセスする方法についての個人的まとめ - /var/log/hikalium
- mod_poppoさんはTwitterを使っています 「GCCに__has_builtinが実装されたのはバージョン10から #だめぽメモ」 / Twitter
Q & A
- C - アセンブリとC言語(47437)|teratail
- c - Trying to understand gcc option -fomit-frame-pointer - Stack Overflow
- depfile gcc format - Google 検索
- GCC -mtune 何やってるか
- 微妙に便利なgccのオプション - in neuro
- difference between gcc and vc
- C++とCは互換ではないです (#2214382) | GCC、CからC++への移行が完了 | スラド
- Using and Porting the GNU Compiler Collection (GCC) - C 言語ファミリに対する拡張機能
- 新しいGCC 8.1がC++2aのいくつかの機能をサポート
- 45977 – "warning: 'i' initialized and declared 'extern'" could use a separate warning flag controlling it
- C言語におけるラムダを関数マクロで実現したものです。 GNU拡張文法(複文の式化、関数内の関数定義)を用いているので、gccでしか用いることができません。 また、トップレベルで用いることも不可能です。 C++でもコンパイルエラーにならないように、C++0xのラムダに変換するようにしています。 利便性を考え、ある程度の省略表記を許すようにしています。
- GitMirror - GCC Wiki
- Instrumentation Options (Using the GNU Compiler Collection (GCC))
- list_head ‐ 通信用語の基礎知識
- list_entry ‐ 通信用語の基礎知識
- container_of ‐ 通信用語の基礎知識
- linux-2.6.25/container_of() - コグノスケ
- ユーティリティー - container_of() - linuxのメモ
- container_ofマクロ - Linuxの備忘録とか・・・(目次へ)
- container_of(マクロ): ふらふら日記
- container_of()/linux2.6 - LinuxKernelHackJapan
- おべんきょーぶろぐ: container_of
- container_ofでsysfsのコールバック関数を一元化 - shimada-kの日記
- Callgrind + Kcachegrindで関数呼び出しのトレースをする - Qiita
- ソースコード直接実行のテクニック - 何とは言わない天然水飲みたさ
- bcc(1): Bruce's C compiler - Linux man page
- あじのり→ᓚᘏᗢ ‹ロボマス!さんのツイート: "関数の型を書いたあと改行するスタイルは初めて見た… "
- 藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "それはUnixでは標準的なスタイル。こうすると^hogeで関数定義を探せる。GNU https://t.co/JQuSui39Oi もこのスタイル。https://t.co/7N1kAyiaDH"
- GNU Coding Standards
- SODA Noriyukiさんのツイート: "*BSD系のカーネルで使われているスタイル KNF - kernel normal form もこのスタイルですね: https://t.co/njRYAuY76V… "
- src/share/misc/style - view - 1.54
- 社会人でもOSを作りたいさんはTwitterを使っています: 「初心者がC言語でまず覚えるべき構文 __attribute__((interrupt))」 / Twitter
- 電子工作室
blog
- NASA 小野雅裕氏に聞く、なぜ宇宙では「C言語」が使われるのか 『宇宙兄弟』の人気コラムニスト|ビジネス+IT
- メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog
- 10年ほど後のBinary Hacks - 兼雑記
- はじめてのにき(2018-06-21)
- C言語で部分適用したい!(実は、できるアーキテクチャがあるんです) - 簡潔なQ
- プログラミング、リファクタリング、そしてすべてにおける究極の疑問 | iSUS
- 巡回的な添字
- const char* const p = "ABC"; と const char q[] = "ABC"; はどちらがよいか、みたいな与太 - memologue
- Cの配列はa[i][j]とa[i*Nj+j]のどちらが速いか試してみた | ナンクル力学系
- CASL II 入門講座 第5章 数値を10進数の文字列に変換する
- 10進文字列と整数値の相互変換 - プログラミングのメモ帳
- 整数を文字列に変換してみる: 毒を食らわば皿までど~ぞ
- セルフホスティングCコンパイラを書いた - 茅の下
- コンパイル中にコンパイルする「コンパイル時Cコンパイラ」をつくった話 - kw-udonの日記
- compilium v2 におけるdeclarationの実装 - /var/log/hikalium
- 低レイヤを知りたい人のためのCコンパイラ作成入門
- RailsでTZ環境変数を設定するハックを不要にした話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)
- マジックナンバー0x03F566ED27179461の求め方とHD流のNLZ - Koonies/こりゃいいな!
- cccコンパイラのバックエンド - molecular coordinates
- 本の虫: MSVCのSTLがGitHubで公開
- microsoft/STL: MSVC's implementation of the C++ Standard Library.
- Kazuho's Weblog: C言語で配列の要素数を安全に数える話
- atoi関数のかしこい実装 - yohhoyの日記
- 条件変数 Step-by-Step入門 - yohhoyの日記(別館)
- C++ミューテックス・コレクション -みゅーこれ- 紹介編 - yohhoyの日記(別館)
- C++ミューテックス・コレクション -みゅーこれ- 実装編 - yohhoyの日記(別館)
- MS-DOS(PC-98)のアプリケーションをC言語で作る - 少ないリソースを酷使する
- レトロPCとレトロプログラミング カテゴリーの記事一覧 - 少ないリソースを酷使する
- 独自診断メッセージ diagnose_if属性 - yohhoyの日記
- ビルドもできるヘッダオンリーライブラリ - in neuro
- C言語のワイド文字入出力 | 雑記帳
- プログラミング言語の構文とセミコロン - ベインのブログ
- 絵で見てわかるC言語入門 - 第1章 - w_o’s diary
POSTD
- 学校では習わないコーディングスキル:オブジェクト所有権 | プログラミング | POSTD
- C言語 | POSTD
- 高速なハッシュテーブルを設計する | プログラミング | POSTD
- C言語パズル集:Cにまつわる興味深い問題あれこれ | プログラミング | POSTD
- 2016年、C言語はどう書くべきか (前編) | プログラミング | POSTD
- 2016年、C言語はどう書くべきか (後編) | プログラミング | POSTD
- C90, C99, C11, C++98, C++11で異なる動作をするコード | プログラミング | POSTD
- C++11のスレッド、アフィニティ、ハイパースレッディング | プログラミング | POSTD
- C言語、知ってるつもり? | コンピュータサイエンス | POSTD
- 私はC言語を知らない | コンピュータサイエンス | POSTD
- 型安全性とは何か | プログラミング | POSTD
Qiita
- printf のマイナーな機能の紹介 - Qiita
- linuxカーネルで学ぶC言語のマクロ - Qiita
- 1バイトが8bitに定まったのは2008年 - Qiita
- char の符号 - Qiita
- sizeof演算子にまつわるアレコレ - Qiita
- C言語のバグ回避をするための習慣 - Qiita
- C言語分かってなかった (I Do Not Know C) - Qiita
- C言語のポインタを含む構造体の初期化まとめ。 - Qiita
- C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第1回 : 整数型の怪と対策の不足) - Qiita
- C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第2回 : 符号無し整数型のチェック) - Qiita
- C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第3回 : C言語の整数の性質を知る) - Qiita
- C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第4回 : 符号付き整数型のチェックと動機の動機) - Qiita
- C++ における整数型の怪と "移植性のある" オーバーフローチェッカー (第5回 : 続・符号付き整数型のチェック) - Qiita
- printfに4285個アスタリスクをつけるとclang++が死ぬ - Qiita
- Asyncify を使ってみた - Qiita
- reallocの怪 - Qiita
- C言語における多次元配列の動的な確保 - Qiita
- MISRA related document - safety and security on c and c++ - Qiita
- Ancient C探訪記
- shinichiro hamajiさんはTwitterを使っています 「式だと 6B が最短だと思ってて、その中では --*""; が好きで SEGV デバッグする時に使ってる https://t.co/3r8zdb42JH」 / Twitter
- C言語で16文字でセグフォらせる - Qiita
- C言語でオブジェクト指向を表現する (クラス、継承) - Qiita
- 無料になったIntel compilerをCentOS8にインストールしてみる - Qiita
GitHub
mimalloc
- ドッグさんのツイート: "MS が公開した新しい汎用メモリアロケータ mimalloc 気になる.3500 LOC の小ささで高速高効率(benchmark あり)セキュアで,malloc をそのまま置き換えて使える | 'microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.' https://t.co/NSYMGEXf8N"
- microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.
- ドッグさんのツイート: "まだよく読んでないけど,でかい1つの free list ではなくページごとの小さい free list をたくさん持つらしい.あとページ内のメモリが全開放されると積極的に OS に返すらしい.technical report の paper: https://t.co/Bt9lC3zhMz"
- Mimalloc: Free List Sharding in Action - Microsoft Research
- Microsoft、高性能メモリアロケータ「mimalloc」公開 | マイナビニュース
- libdivide, optimized integer division
- ridiculousfish/libdivide: Official git repository for libdivide: optimized integer division
- はじめてのにき(2018-03-13)
- 8cc/parse.c at master · rui314/8cc · GitHub
- rui314/9cc: A Small C Compiler
- https://maierfelix.github.io/mini-c/
- maierfelix/mini-c: C to WebAssembly compiler
- まさみさんは語りたいさんのツイート: "G-FreeはROPで利用されるガジェットになりうるコードシーケンスを生成しないCコンパイラのようだ。そしてx86のガジェットコード面白い。CISCだけにやりたい放題だ(笑)。 https://t.co/xm0vGaR1Tk… "
- acsac2010rop.pdf
- pagabucさんのツイート: "Today we are releasing clang-gfree, a set of LLVM machine passes to produce (almost) gadget-less binaries for x86-64! Go check it out: https://t.co/ZSUIe4gJtr"
- pagabuc/gfree: Implementation of G-Free: Defeating Return-Oriented Programming through Gadget-less Binaries
- Fadisさんのツイート: "libxsmm: Intelアーキテクチャ上で小さい行列を効率よく計算するために作られたライブラリ https://t.co/JCouuNTCnW #kernelvm"
- hfp/libxsmm: Library targeting Intel Architecture for specialized dense and sparse matrix operations, and deep learning primitives.
- gifnksm/gifcc: Tiny c compiler
- chikoskiさんのツイート: "ES5をCにコンパイルするツール、JS2C https://t.co/zkhgpD4DzY 開発中のようで、ノート(https://t.co/m9rliFekyO)やブログ(https://t.co/GQBeobM22z)は示唆に富んでて面白い。"
- js-to-c/NOTES.md at master · timruffles/js-to-c
- septag/sx: Portable base library for C programmers, designed for performance and simplicity.
- cdecl.c
- Rui Ueyamaさんのツイート: "不必要に難しいことで有名なC言語の型の構文を解説してみた。これを読めばvoid (*signal(int, void (*)(int)))(int)とかも読めるようになるはず(多分)。 https://t.co/a85pc5FsV2"
- 低レイヤを知りたい人のためのCコンパイラ作成入門
- (*(void (*)())shellcode)() とは - Qiita
- hiromi-miさんはTwitterを使っています: 「というわけで #seccamp 2019 Y-II Cコンパイラ自作ゼミに参加してきました、ありがとうございました. 結局、C++のクラス機構の一部、ステップ実行情報の出力、template <typename T>add<T>(T a, T b); のような関数定義を実体化できるようにしました. 進捗は次の通りです: https://t.co/tiEFbPYtG0」 / Twitter
- hiromi-mi/hanando-fukui: Self-hosted (Subset of) C Compiler
- DoctorWkt/acwj: A Compiler Writing Journey
- Cello • High Level C
- orangeduck/Cello: Higher level programming in C
- arithy/packcc: A packrat parser generator for C
- Rui UeyamaさんはTwitterを使っています 「いままでにないレベルでchibiccに機能追加している人からメールがきた。GCC互換inline asmとかint128みたいな機能とかが増えてる。これはすごいな。https://t.co/LlyFPZiD6z」 / Twitter
- cosmopolitan/README.cosmo at master · jart/cosmopolitan
- blog/bit-operation.md at main · herumi/blog
Wikipedia
演算子
- 条件演算子 - Wikipedia
- エルビス演算子 - Wikipedia
- Null合体演算子 - Wikipedia
- Null条件演算子 - Wikipedia
- Three-way comparison - Wikipedia
- CとC++の演算子 - Wikipedia
- CとC++の演算子 - Wikipedia
ライブラリ
- ssize_t ‐ 通信用語の基礎知識
- time_t - Wikipedia
- printf - Wikipedia
- printf - Wikipedia
- strlcpy - Wikipedia
- strlcat - Wikipedia
- strlcpy(3)
- strscpy
- まさみさんは語りたいさんのツイート: "TLの皆さんから教わったstr*cpy再度まとめ ・strncpy:固定長の配列に文字列をコピーするための関数 ・strlcpy:ユーザが勘違いしているstrncpyの挙動をするように作られた ・strscpy:挙動をより安全側に倒したstrlcpyの実装(ただし極端なアドレスを渡せば死亡する)"
- まさみさんは語りたいさんのツイート: "ちなみにlinuxカーネルのstrncpy_from_*は動作が違う・・・ ・strncpy_from_user:strncpyとほぼ同じだがdstの残りを0埋めはしない ・strncpy_from_unsafe:strscpyとほぼ同じだが-E2BIGを返さない。"
- まさみさんは語りたいさんのツイート: "strscpyの実装、面白いな。2つのループになってるのか。1つ目はlong型でaligned access、2つ目はcharで1byteずつアクセスしてる。"
- 引数 - Wikipedia
- 評価戦略 - Wikipedia
- 結合法則 - Wikipedia
- 冪乗 - Wikipedia
- 端数処理 - Wikipedia
- 絶対値 - Wikipedia
- フリースタンディング環境 - Wikipedia
- C99 - Wikipedia
- C11 (C言語) - Wikipedia
- mattnさんはTwitterを使っています 「C言語の switch 文、緩すぎて脱法できちゃうからなぁ。 https://t.co/lS7fAWSXZL」 / Twitter
- mattnさんはTwitterを使っています 「ちなみにこれは Duff's device という手法です。 https://t.co/iBSCogYHQp」 / Twitter
- Duff's device - Wikipedia
- Kazuho OkuさんはTwitterを使っています 「これ send(short to, short from, int count) { if (count > 0) to[0] = from[count -1]; } と等価だよね、という」 / Twitter
Twitter
その他
histric-1
- Kazuho Okuさんのツイート: "Cのソースファイルから(プリプロセッサかけた後でもいいので) ASTをサクッと、JSON等で取り出すプログラムってないのかしら。structをダンプするコードを生成したい"
- Kazuho Okuさんのツイート: "こういうコードを手書きするの嫌なんです… "
- 成瀬さんのツイート: "libclangとか使う感じですかねぇ。前に書いたスクリプトだと https://t.co/tcqh5OJUIm こういう… "
- Add CRubyBot · nadoka/nadoka@1b7ae45
- Kazuho Okuさんのツイート: "libclang を使うプログラムを書くのは嫌じゃーって思ってたんですが、なるほど FFI で叩くという手は良いかもですね… "
- Daisuke Makiさんのツイート: "うろ覚えですが、これがgoで似たようなことしてた気がします https://t.co/OLAFiEnzhp… "
- Kazuho Okuさんのツイート: "srd!!! ありがとうございますありがとうございます… "
- Yoshimasa Niwaさんのツイート: "`clang -cc1 -ast-dump` の結果をなんかスクリプトでちょいちょいする感じですかね… "
- Keigo Imaiさんのツイート: "大昔に Haskell の Language.C で似たようなことをやりました。この手のことをやるの代数的データ型があると最強ですね。 https://t.co/kzjJukBpUH… "
- Language.C を使ってC言語のソースコードを解析する (with Data.Generics) - keigoiの日記
- ケケモコソカメニハさんのツイート: "https://t.co/L82sPEejNW ocamlですが、まさにそういうことを目的としたCILもあります… "
- cil-project/cil: C Intermediate Language
- Qさんのツイート: ".oO(CIL開発が停滞しているのでは。。。)… "
- 島鉄雄さんのツイート: "stdio バッファは printf 等が改行を出力する度にバッファをフラッシュするもんだと思ってた。 printf は改行かもしれないけど、fwrite はファイルに書き出した後に fflush() せずに close() (fclose() でない)すると何も書きだされない。 I/O のたびに自動的にフラッシュするは違うような気がする…… https://t.co/s6nvyep2Pq"
- 島鉄雄さんのツイート: "#include <stdio.h> #include <unistd.h> int main() { FILE* file = fopen("test.txt", "w"); fwrite("test", 1, 4, file); // fflush(file); close(fileno(file)); } このコードを実行すると 0 バイトの test.txt が書きだされる。(Linux, Windows とも) fflush() すれば勿論 4 バイトになる"
- 島鉄雄さんのツイート: "Wikipedia を見ていたら uint64_t xorshift128plus(uint64_t state[static 2]) { [static 2] みたいな書き方を始めて見た… stackoverflow に答えがあったけど、少なくとも2要素があるという事らしい でも1要素の配列を渡してもワーニングすら出ないのはC言語らしいがw https://t.co/cTYZuD0pn9… https://t.co/QrK99wKVS9"
- c - What is the purpose of static keyword in array parameter of function like "char s[static 10]"? - Stack Overflow
- コンパイラ作りの魅力を語る / Making compilers is fun - Speaker Deck
- DQNEOさんのツイート: "PHPerKaigi 2019で、C/Goコンパイラを作る過程で学んだことについて話しました! 資料を公開しました。 「コンパイラ作りの魅力を語る」 https://t.co/CRvivRYFAa #phperkaigi"
- Kazuho Okuさんのツイート: "C言語、だいたいいいんだけどクロージャがないことだけが辛い"
- Fadisさんのツイート: "ベアメタルC++動かす準備ってCで使ってたldscriptにvtable置き場足して、bssとdataを初期値にして(Cでもやるやつ)preinit_arrayとinit_arrayの中のポインタを全てcallして(Cでもやるやつ)、ハードウェアのセットアップして(Cでもやるやつ)mainに飛ぶだけ(Cでもやるやつ)だったと思うんだけどな"
- Fadisさんのツイート: "ベアメタルC++でnewするにはメモリ確保できる必要があるけど、libstdc++のlibsupc++を使う場合最終的にlibcのmallocが呼ばれる。libcにnewlibを使う場合最終的にプラットフォーム毎に実装する関数_sbrk()にたどり着く為、「newされたらどうしよう」はここで解決すると良い"
- 品川 高廣さんのツイート: "gcc/clang限定。 #include <stdio.h> int main(int argc, char *argv[]) { if ((void*)main < __builtin_return_address(0) && __builtin_return_address(0) < &&e + 0xff) return argc > 1 ? *argv[argc-1]-'0' + main(argc-1, argv) : 0; printf("%d\n", main(argc, argv)); e: return 0; }… https://t.co/V5IzQQX9y9"
- hikaliumさんのツイート: "これの何がおもしろいのかというと、低レイヤの人なら親しみのある「その型のアドレスの下位ビット、常に0では?」というネタに加え、ポインタ-整数キャストをできないなら隣接要素のアドレス差が1byteのchar*にキャストして(char*)0との差分を取ればいいじゃない、という狂った発想です。 #w2019progB… https://t.co/zTUX91qJfR"
- hikaliumさんのツイート: "ついにワンライナーになった(誰も嬉しくない)。 #include <stdio.h> int main(int c, char*v[]) { return c>=2? ((char*)v-((char*)0))&1? ((char**)(((char*)v-((char*)0))-1))[1][0]-'0'+main(c-1,v+1) :printf("%d¥n",main(c,(char**)(((char*)v-((char*)0))|1))) :0; }"
- 品川 高廣さんのツイート: "関数末尾のアドレスを正確に求められないのが難点。このコードは clang -O3 でコンパイルすると、ラベル e の後ろで main() を呼び出すコードが生成される。asm volatile ("") を挟むと clang では回避できるが、今度は gcc で動かなくなる。UNIX 限定なら etext が使える。"
histric-2
- 島鉄雄さんのツイート: "C11を使ってオブジェクト指向もどきをしてみた。 https://t.co/fG0XngOOfp 自前プリプロセッサでオブジェクト指向する方法は色々あるけど、C11だと合法的(?)にここまで出来るっていうテスト。 自前プリプロセッサを突き詰めると別言語になってしまうけど、この程度なら全然良いんじゃないかね。… https://t.co/nmmm8OqDyi"
- C 言語でオブジェクト指向(案)
- 島鉄雄さんのツイート: "ほんとはコンストラクタとか凝りたかったけど、長くなるので今回は割愛。 C11 でオブジェクト指向する標準的な規約(プロトコル)を少し考えたくなった。 最終的には GObject に行きつくだけかもしれないが… いや GTK の API にこのプリプロセッサをかませばいいのか…"
- Kazuho OkuさんはTwitterを使っています: 「return a == b; を書き直させられた話、「言語仕様知ってればわかるだろ」って批判するなら、GCCの「ビット演算子と比較演算子を組み合わせる場合には () を使え」っていう警告(-Wparentheses)も同じ勢いで批判してほしい気持ちある」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「なんていうか、言語仕様知ってればわかるだろ、っていうのは読みやすさに関するコンパイラの警告全否定する話だし、return a == b が許容されるのは、return a = b が警告を出すという前提において、読み誤りようがないから、とかそういう理由づけになるんじゃないか」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「sprintfで「%.8s」という記法が役立つ日が来た。%sに対して精度(.n)を与えることで配列の末尾がnul終端されてなくても使えるんだよ。っていうのを以前ベテラン組み込みエンジニアさんから教えてもらった。」 / Twitter
- 7594591200220899443さんはTwitterを使っています: 「(Cの)const外しキャストは従来から違法だったわけだけど、const外しキャストが違法であることを積極的に活用してconst外し==dead code判定==最適化で消すコンパイラが爆誕して人類とバグとの戦いは新たなステージへと https://t.co/P8R6MnVMLB」 / Twitter
- 7594591200220899443さんはTwitterを使っています: 「const外しキャストは明示的なキャストなので、プログラマの意図を尊重するため型の不一致の警告とかは出ない。出ないが、const外しキャストをdead codeの意図で使ってるプログラマなどいないはずなので、結果的に警告も何もなく既存のプログラムがなぜかぶっ壊れるという惨状が発生している」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「me freaks, adds `#define const` https://t.co/iHMVgTHXmC」 / Twitter
- Shiro KawaiさんはTwitterを使っています: 「そうか、constなオブジェクトを変更することがUBなんであって、const落としても変更してなければ大丈夫なのか。 https://t.co/AlXoj5CheU」 / Twitter
- yohさんはTwitterを使っています: 「@n_soda このケースはconst-ness objectそれ自身に対してconst除去したからマズイいのであって、const char* process0(const char*)内部実装をchar* process1(char*)で代用する程度の話には影響しないと思いました。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ごもっとも。 C/C++の規約原理主義的な最適化は、そろそろ何とかして欲しい。 (未定義のアクロバティックな活用ではなく、警告 or エラー停止する方向に) https://t.co/eWPAQsBxKC … https://t.co/oif4y0wVJ5」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「メモリマップドI/Oの場合はその領域はそもそもキャッシュしない指定になってるはずだけど、通常のメモリ領域の場合は普通にキャッシュに載るでしょ。 で、CPUのキャッシュコヒーレンシにより一貫性が保たれてるはず。 DMAする為だけのデータをキャッシュに載せたくない場合は専用の命令がSSEにある。」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「元記事の > volatileなオブジェクト(volatileと指定されたメモリ領域)へのアクセスは、CPU内部のキャッシュ機構を通り越してその領域へ直接読み書きする形になっているはずです。 は間違ってると思われる。 volatileは最適化でレジスタに値を保持せずに、逐一メモリにアクセスするってだけでしょ。 https://t.co/voiP4LxzGZ」 / Twitter
- FadisさんはTwitterを使っています: 「if「文」と三項演算子は別モンで、一番大きな違いは文であるため評価結果の型を決定する必要がない点」 / Twitter
- yoh2さんはTwitterを使っています: 「?: 演算子の左端がCとC++で違うという割とどうでもいい気付きを得た。 cond ? a : b = c; がこうなる。 C: (cond ? a : b) = c; と同じ (エラー) C++: cond ? a : (b = c); と同じ」 / Twitter
- yoh2さんはTwitterを使っています: 「ちなみにC++ で (cond ? a : b) = c; と書くと a か b へ c を代入する意味に。 代入演算子の左辺もCとC++で違うんだよね。Cでは unary-expression, C++では logical-or-expression。」 / Twitter
- yoh2さんはTwitterを使っています: 「s/左端/右端/」 / Twitter
- 重巡洋艦 キノガッサさんはTwitterを使っています: 「@yoh2_sdj https://t.co/HiFMrmPJ0f」 / Twitter
- 条件演算子と左辺値の扱いの差 - yohhoyの日記
- uint256_tさんはTwitterを使っています: 「clang, return 0 の 0のために alloca i32するのなんでだろう」 / Twitter
- DrumatoさんはTwitterを使っています: 「@uint256_t これは結果論なんですが, int main(){ int x = 40; if(x == 30){ return 1; } } みたいなコードをclangに入力すると, true-block内でalloca i32した仮想レジスタに1を代入しています. main関数内で明示的にreturnされなかったときのために利用されているのかもしれませんね.」 / Twitter
- uint256_tさんはTwitterを使っています: 「LLVM, 賢いからmem2regとかそのあたりの最適化でallocaとかが消えて, phiとかで代用するのかな https://t.co/hBzjs8VNVR」 / Twitter
- uint256_tさんはTwitterを使っています: 「@drumato clangを軽く読んでみました. どうやらこの方法のほうが, コードが簡単になりそう」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@uint256_t LLVMのallocaは確実にスタックに領域を取ってくれると思っていると最適化で酷い目に合います(それで泣いた」 / Twitter
- uint256_tさんはTwitterを使っています: 「@miura1729 賢くなりすぎたコンパイラが人間を苦しめるいい例ですね」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「@uint256_t 確かに。仕様をちゃんと読まないのが悪いと言えば悪いんですけど...」 / Twitter
histric-3
- うーさんはTwitterを使っています: 「システムコールからの戻り値って基本はint型の戻り値だけなので,どうやってその値からerrnoに代入する値を決めているのかなあと思ったらこのコードにたどり着いた。-256<result<0なら,符号反転した値をerrnoに代入してる。 https://t.co/bQSGe54e08」 / Twitter
- libc/bionic/__set_errno.c - platform/bionic - Git at Google
- 島鉄雄さんはTwitterを使っています 「これは、いわゆるパターンマッチに漏れがあるとエラーになる言語を使えば防げるバグだろう。 なのでこれは糞コードではない。 最近の C/C++ のコンパイラは switch で漏れがあると警告を出すから分かるけど、エラーにしてしまうべきだろう。 そういうオプションが無いかちょっと調べてみる。 https://t.co/lLpwF38si8」 / Twitter
- 島鉄雄さんはTwitterを使っています 「-Werror=switch で、switch の漏れをエラーに出来た。 C++ の場合は enum class があって int 等には無理やりキャストしない限り変換できないから、より安全になる。 あと、if 文の羅列で分岐されると漏れをチェックできないから、やっぱり古い言語では限界があるのかね… https://t.co/Nh2YlqmJWy https://t.co/WIHFSX2FgY」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「名前つき番兵のメリットは値を読めるところなので、ポインタをデリファレンスすることで(も)終端判定したい場合には使ったりする https://t.co/vXyBV3CbHy」 / Twitter
- ハガさんはTwitterを使っています 「@kazuho うーん、僕はむしろ、デリファレンスできない可能性を持っていることがポインタのメリットだと思っているので、特に終端判定の場合にデリファレンス後に判定というのはちょっと想像できませんでした。」 / Twitter
- 藤枝和宏 - ぱんなこった@佐鎮さんはTwitterを使っています 「この番兵は高速化のためだと思う。linked listでキーを探すときに番兵にキーをセットしてから探す。最後で必ず止まるので次が最後か調べずにループを回せて条件分岐1回お得。 / “ノータブルコード4 - NULLよりも名前付きの番兵オブジェクト - ククログ(2020-03-03)” https://t.co/ZrCqgKPJID」 / Twitter
- ノータブルコード4 - NULLよりも名前付きの番兵オブジェクト - ククログ(2020-03-03)
- FadisさんはTwitterを使っています 「ポインタがめんどくさい事になるのはSEGVした時じゃなくて、SEGVせずに走ってしまった時だよ。読んではいけないものを読んでリモートにぶちまけたり、書き換わってはいけない物を上書きしたり、飛んではいけないところに飛んで実行してしまったり」 / Twitter
- あわねずみさんはTwitterを使っています 「C言語の授業 ある子がarray[i]とi[array]を間違える。 先生「i[array]はできません」 私「*(i+array)です」 先生「*なんてありません」 私「*はあります。ポインタの参照演算子が*です」 先生「誰に教えてもらったんですか?」 私「お母さんです」 →懇談会で母親に事前学習をしないように念押しされる」 / Twitter
- kinabaさんはTwitterを使っています 「A Simple, Possibly Correct LR Parser for C11 https://t.co/jPKTn3ikIN めっちゃ面白かった。C言語文法の決定性文脈自由じゃないところ全集。「lexerに情報共有して識別子毎に型名か否か区別してトークンを出させる」という、概念としては定番の実装なんだけど、細部の罠と解決策が楽しい」 / Twitter
- A Simple, Possibly Correct LR Parser for C11 | ACM Transactions on Programming Languages and Systems
- kinabaさんはTwitterを使っています 「特にdangling-else問題と識別子の文脈依存性の問題が混ざるとより問題が深まる(GCCも昔のバージョンで構文解析バグっていたらしい)というの考えたことがなかった。おもしろいなー」 / Twitter
- herumiさんはTwitterを使っています 「https://t.co/athh4LqnMQ #define N 16 char str[N]; memset(str, 0, N + 1); この例のコードならcppcheck, Visual Studioの/analyze, pvs-studioなどの静的解析ツールやclang-9で警告出ますね。https://t.co/Oj0EEqANG4 #yurubug」 / Twitter
- なたがわさんはTwitterを使っています 「a[i]とi[a]が意味的に等価なのはe1[e2]が*((e1) + (e2))のsugarだから、ってのは知ってるけど、そもそもこの加算が意味的に非対称な演算なのに逆も許してる (というかint + ptr要る?) のは謎だし、i[a]を許しても嬉しいのはparserで即desugarしてASTサボれるくらいでは...? なんか歴史/理由あるのかな」 / Twitter
- FadisさんはTwitterを使っています 「volatileは、コンパイラは言われたのと同等の結果になるアセンブリは吐くけど、言われた通りの順序で計算するアセンブリを吐くとは限らないぞ(=計算過程を横から覗き見できる場合、期待したのと違う状態が観測されるかもしれないぞ)、という前提知識を要するから、初心者への説明は詰まりがちだよな…」 / Twitter
- FadisさんはTwitterを使っています 「横から覗き見する手段とは具体的には、シグナルハンドラや割り込みで実行を中断して別の処理を行なっているとか、ハードウェアのレジスタを操作しているといった状況が該当する。別のプロセッサが同じメモリを見ている状況はキャッシュやアウトオブオーダーの影響が載る為volatileでは救いきれない」 / Twitter
- 対鉱物用武装さんはTwitterを使っています 「volatileの法則 1. つけるな。 2. (上級者限定)まだつけるな。」 / Twitter
- 対鉱物用武装さんはTwitterを使っています 「MMIOはふつうベンダ提供のマクロで隠されてるし、シグナルハンドラは同期化して受けるほうが安全」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「C言語で struct S s; load(&s); みたいなやつ、2行になるやん? 実は struct S s = (load(&s), s); と書けば1行でvalidなCになる?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「パフォーマンス意識したコードをメンテしていくのはCの方が楽だと思う」 / Twitter
- ハガさんはTwitterを使っています 「まぁ、いまどきC++ではなくCを使う[理由]はあっても、[利点]は無いよなっていう。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「C++、Cよりロジックを組み合わせてコードを構築する手法が多いのはいいんだけど、その複雑性が利点になるか弱点になるかはケースバイケースだと感じてる。コードを書き捨てるケースではC++使うけど」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「もうちょっと具体的に書いておくと、たとえば、C++の優位点というのは、汎用的なデータ構造があるという点に多分に依存しているが、速度重視でコードを書く場合は専用のデータ構造を起こすことが多いので、汎用的なデータ構造をあまり使わない、とか」 / Twitter
histric-4
- くいなちゃんさんはTwitterを使っています 「「三項演算子とは、三項の演算子すべてを指す広い言葉だから、?: は三項演算子ではなく条件演算子と呼ぶべき。」 とよく聞きますが、条件演算子以外の三項演算子を見たことがありませんでした。 あります…?」 / Twitter
- しさしさんはTwitterを使っています 「@kuina_ch SQL の BETWEEN 演算子とかどうですか? x BETWEEN y AND z」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「整数オーバーフロー例外発生のコンパイルオプション付けると、整数演算が3-12倍遅くなる(前者clang, 後者gcc)という実験。 わざわざ調べてる人いるのね。 https://t.co/eEjmc2ZWEV」 / Twitter
- How expensive is integer-overflow trapping in C++? – Daniel Lemire's blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C言語に register というキーワードあるけど、今時だと firstcache とか lastcache みたいなキーワードがあっても良いかも。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「マルチスレッドコードが動いている時にいきなり _exit (3) を呼ぶの、なんとなく正常終了できるつもりだったけど、スレッド破棄順序によって他のスレッドのスタック参照してるスレッドが SEGV する可能性があるのかぁ、ってなってる。そりゃそうだよな」 / Twitter
- yoh2さんはTwitterを使っています 「「C89 と C99 のどちらでも well-formed でありながら結果の異なるプログラムを定義済マクロに頼らず書ける」並に重箱の隅。 (知ってるのは enum 使うやつ)」 / Twitter
- yoh2さんはTwitterを使っています 「これね。 https://t.co/fP8aCUvAQ2」 / Twitter
- yoh2さんはTwitterを使っています 「類似でちょっと思い出したネタ。 # include <stdio.h> enum E { A = 1 }; int main(void) { int n = 0; for(n = 0; n < (enum E { A = 2 })1; n++) /* (enum { ... }) はキャスト兼 enum 宣言 */ ; printf("%d\n", A); /* C99以降: 1, それより前: 2 */ }」 / Twitter
- yoh2さんはTwitterを使っています 「C オタクに C++ オタク、妙なところに宣言を埋め込みがち。」 / Twitter
- Ryo SuzukiさんはTwitterを使っています 「一般 C++er「using によるエイリアス宣言は typedef の上位互換」 C++ 規格オタク「typedef だけ許される文脈がある」 https://t.co/ZbTY3SCir1 https://t.co/2lKIzwGsfT」 / Twitter
- A typedef for when an alias declaration cannot // [unfold] Bits of awareness
- mattnさんはTwitterを使っています 「C言語のポインタが初学者を悩ませる理由は宣言時と使用時に * が付いたり付かなかったりする int *p; p = &v; のと配列の参照方法が *(p+2) と p[2] の2つがあるというのが原因だわね。 Go は意図的にこれをさせない様にした。」 / Twitter
- KateさんはTwitterを使っています 「finally worked out how to make a function for addition. C isn't as hard as people say https://t.co/OFdqEKs6HR」 / Twitter
- yoh2さんはTwitterを使っています 「int a[n] とint *a が別物だというのと同じように int a[m][n] と int (*a)[n] は別物だが、 int a[n] と宣言した変数が式中で表れると一部を除き int * 型になるように int a[m][n] と宣言した変数は式中に表れると int (*)[n] 型になる。 ……を一言で説明できる語彙力を下さい。」 / Twitter
- yohさんはTwitterを使っています 「ISO/IEC9899 (違」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「C言語できる人」で、芋づる式に、disasコードも読める、ダンプ解析できる、カーネソース読める(OSの諸概念知ってる)、みたいなニュアンスまで含むこともあったり…(笑)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「「C言語ができるできない」ではなくて、他のプログラミング言語を使えて、かつ、OSやCPUについて学んでいれば、Cは読めるはずだし、すぐ書けるようになる、という話じゃないのかな。高級アセンブラなので」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「C言語、プログラマにとっての英語みたいなもので、日常、できなくて困らない人も多いけど、たまに使って何かを得てる人もいれば、毎日使ってそれでご飯を食べてる人もいる、くらいのもんでしょう。 英語同様できたほうがいいけど「できないとダメ」みたいな呪いじゃない」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「逆にそういう人達は、単にC言語書ける人より何倍も強いので、それを目指すべく、C言語から吐き出すdisasコードを読んだり、ダンプを眺めたり、OSの本を読んだりすると良いかも。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「極めて普通だし、共通型を構造体の先頭に置いて super とか名前をつけてポインタキャストするのも普通」 / Twitter
- mattnさんはTwitterを使っています 「C言語をずっとやってると第一引数がオブジェクトに見えてくるし関数呼び出しがメソッドに見えてきます。(なにその GTK)」 / Twitter
- kiwanamiさんはTwitterを使っています 「まあ、分かるけど、JavaとかC#とかJS書いてる人がたくさんいる中で、オブジェクト指向いらないんですと言われても、では今書いているこの言語や実行環境は何なの?みたいな感じになる。」 / Twitter
- きしだൠ(K8S(Kishidades))さんはTwitterを使っています 「オブジェクト指向について書いたゾ https://t.co/b1gDtbUMRS」 / Twitter
- オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだのHatena
- Kazuho OkuさんはTwitterを使っています 「こういうやつ https://t.co/WiBv5VMn4D」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「まーそれはそれとして、 「なぜ data ポインタをもたないのか?」 「構造体の中に部分型を入れてアドレスオフセット&キャストすればいい」 「???」 「C++になったつもりで考えて」 みたいなやりとりは、ありがち」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「C言語でオブジェクト指向の話、「container_of って何?」て聞いて知らなかったり、自分で書けなかったりする人は詳しくないと思っていいです」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho 初めて知った…😨 https://t.co/00kyqUwu22 スか # ワシ、そういうのに触る前に C++ 行っちゃった感はある(で cfront が吐いた C を読んでたりしてた😅)」 / Twitter
- linux-4.4.1/container_of() - コグノスケ
- Kazuho OkuさんはTwitterを使っています 「補足しておくと、メンバへのポインタからコンテナへのポインタを得るというのはインターフェイス継承実装時に求められることなので、その具体例を知らない、かつ、実装もできないのであれば、C言語でオブジェクト指向プログラムを書く難易度について正しく評価できるのか疑問符がつく、という意味です」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「格好つけようとして複雑にしてバグしこんじゃうやつ?」 / Twitter
- mumumuさんはTwitterを使っています 「C言語でconstをたくさん置けることを知った. const const const const int c = 0;みたいなのが許されるっぽい.めっちゃ強調できるじゃんw」 / Twitter
最初のコンパイラ
- Miura HidekiさんはTwitterを使っています 「多分、B(かBCPL)」 / Twitter
- Shinya KatoさんはTwitterを使っています 「C コンパイラの最初の実装って何の言語で書かれていたんだろうか」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ごめんなさい、アセンブラだそうです... https://t.co/VtEH7n4sec」 / Twitter
- c — Cコンパイラの歴史は何ですか?
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 最初のフルセットのCコンパイラはCで書かれていた可能性もあるかな。もっとも、何をもって「フルセットのCコンパイラ」とするかは言語仕様も厳格でなかったでしょうからどうとでも言えそうですが :)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki 仕様が固まったCの最初はPCC(Portable C Compiler)でしょうかね。もちろん、Cで書かれています。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「と思ったら、やっぱりBを順次拡張していったっぽい https://t.co/PN8ZvyyGuh」 / Twitter
- Chistory
- Shinya KatoさんはTwitterを使っています 「@miura1729 B を1度セルフホストして、そこから拡張していったっぽい感じがしますよね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@0x19f 論文を読む限りそんな感じですね。Bそのもの(と拡張の末に作られたC)以外はアセンブラで書いたっぽいですけど」 / Twitter
C++
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「if (true) int a = 1; else int a = 0; まあ書けるだろうけどなんとも違和感がある」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「if (false) int32_t int32_t; else int32_t int32_t;」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「for (int i = 0; i <100; ++ i) ... だけでなくて for (100; ;) ... とかも書ける (それはそう)」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「int a = 0; ← これは declaration using ll = long long; ← これも declaration static_assert (true, ""); ← これも ; ← これも」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「0ull や 0llU などは書けるが 0lul とか 0lL とかは書けないらしい」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「pure virtual method を宣言するときの ... = 0; の 0 の部分があるために integer-literal のうちで 0 だけ特別扱いしないとだめに見える」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「どう考えてもおかしいと思ってたら参考にしてた文法の表のミスだった」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「C++ の文法、複雑すぎます」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「std::set に対する std::lower_bound で TLE する C++ 初心者の話はたまに聞くけど、このミスは clang-tidy に -checks=perf\* を付けて実行したら自動で指摘してもらえるようです https://t.co/w3xKjahP9K」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「-fix って付けたら自動で修正までしてもらえました」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「そういえばSpider MonkeyをWASIで動かしたというあのプロジェクト、現状のwasi-sdkだとC++の例外が使えない問題とかどうしたんだろう。まさか例外を一切使ってない?」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「聞いてみたら本当にSpider Monkeyは例外をそもそも使ってないらしい。おまけでV8やJavaScriptCoreも使っていないらしいことを教わった。マジか。」 / Twitter
- エヌユルさんはTwitterを使っています 「@igrep C++の例外割と忌み嫌われてますからねえ Googleも基本的にコーディングルールで使わないらしい」 / Twitter
_Atomic
- Nerry さんはTwitterを使っています: 「usbcmdレジスタを_Atomic uint32で定義して usbcmd |= hogehoge すると機種によってはうまく動かない」 / Twitter
- Nerry さんはTwitterを使っています: 「usbcmd |= hogehoge をコンパイルすると lock or [usbcmd], hogehoge になるが、うまく動く機種と動かない機種がある。 usbcmd = usbcmd | hoge に書き換えると以下のような機械語になって動く mov eax, [usbcmd] or eax, hogehoge xchg [ucbcmd], eax」 / Twitter
- Nerry さんはTwitterを使っています: 「以上から A |= B と A = A | B は必ずしも等価ではない。」 / Twitter
メンバ関数へのポインタ
- 鯉江さんのツイート: "メンバ関数のポインタは確認してないですが、メンバのポインタは素朴に実装すると構造体の先頭からのオフセットになって、それだと0に特別な意味は持たせられないのでnull pointerのビット表現には別のものをつかう、というはなしがARM書いてあったような記憶です。 https://t.co/uwEdj5dzaR… https://t.co/Q7Y6J3ZTBR"
- Ideone.com - YK4oHe - Online C++ Compiler & Debugging Tool
- Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い、x64でもそうなりますね。知らなかった。… "
opaque pointer
- ゆたかさんさんのツイート: "C言語で構造体は使えるけれど、構造体のメンバーに直接アクセスさせないようにするにはどうすればよいでしょうか? 答え:構造体をtypedefしたものだけを開示してポインタとして使う… "
- SODA Noriyukiさんのツイート: "このイディオムはopaque pointerと呼ばれててその名でググれます。 typedefはせず struct foo; で済ませ、またヘッダ内で宣言されてる関数呼ばない場合は # include "foo.h" の代わりに struct foo; で済ます変種もあったり(再コンパイルの必要性が減るのでこっちの方が好き) https://t.co/u0BXaV0O0H"
- まさみさんは語りたいさんのツイート: "私はelfutilsで知りましたが、デバッグが大変面倒なので死にそうになりました。全部ソースコードひっくり返して実装調べた記憶が。… "
- SODA Noriyukiさんのツイート: "その辺は良い開発支援ツールがあるか、あるいはコーディング規約の縛りがあればあまり困らないような。 もう30年くらいopaque poniterばかり使ってプログラム書いてますが、「struct foo の関数宣言は foo.h に入れ、構造体定義は foo.c に入れる」程度の規約で運用していて特に困った覚えがないです… https://t.co/q5yAWmsBsf"
- KOYAMA Youichiさんのツイート: "私も同様に foo.h には関数だけ書いて foo.c に構造体を書くのですが、 foo をライブラリとして提供する場合 (おそらく strip しちゃうので)、それを使ったプログラムをビルドすると gdb とかでのデバッグ時にロクに構造体の中身が表示できないというワナはありそうですね。… https://t.co/qd1yeCaw5I"
- SODA Noriyukiさんのツイート: "プロプライエタリのライブラリの内部でコケてると、死んで!って気持ちになりそうですね…^^;… "
- なかのん&マジックさんのツイート: "こういうの常識では……違うの……?"
- y-Akiさんのツイート: "C(++)言語で大きな物を作るときは必須と言える手法ですね。大規模C++本とかにもあるっけか ちっちゃいプログラムしか扱ってないなら知らない事も多いかも… "
- なかのん&マジックさんのツイート: "OSのAPIがそもそも使ってる手法なのに……… "
qrintf
- Kazuho OkuさんはTwitterを使っています 「呼びました? https://t.co/66DW6gsNz6」 / Twitter
- h2o/qrintf: sprintf accelerator for GCC and Clang
- Hideki EIRAKUさんはTwitterを使っています 「そういえば、C の printf ってやつはランタイムで文字列から % 記号を見つけ出して解釈して中身を置き換えるっていう、ある意味インタープリター的に計算資源を浪費する仕組みなんだけど、昔から使われているよね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「実際問題として速度差が出るのはI/Oを含まないsprintf系だけで、規格はそのような最適化を認めてるしstrcpyへの変換とかはCコンパイラもやると思うけどCプログラムでそこがボトルネックになる場合は専用コード書く人も多くて…みたいな印象。qrintfで速くなるプログラムはある」 / Twitter
NULL
- Kazuho OkuさんはTwitterを使っています 「NULLが0じゃないみたいな、esotericなアーキテクチャでいうと、WebAssemblyのメモリモデルは結局、ノイマン型になったの? それともデータ空間と関数ポインタで値が被ったりするハーバード型なの?」 / Twitter
- yoh2さんはTwitterを使っています 「C 界隈のめんどくさい人はそこで NULL のビットパターンはゼロではないかもしれないが 0 をポインタにキャストすると NULL であることは確かだと言い始める。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「構造体をmemsetでゼロクリアするコード見るたびに苦笑いするやつ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「*a = (struct S){.i = 123}; とか書けば、i を123にセットしつつ、他のメンバーは数値型の場合はゼロ、ポインタの場合はNULLに初期化してくれるし、よっぽど便利」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「それはそうとNULLのビットパターンがゼロじゃない処理系には近づかないのが一番ですね」 / Twitter
NUL 終端していない文字列の printf
- けろ🐸さんのツイート: "最近C言語で「ほえ~」ってなったのは、 char buf[4] = 'ABCD'; printf("%.*s", sizeof(buf), buf); でNULL終端してないchar*が簡単にprintfできること……はよ知りたかったわ"
- けろ🐸さんのツイート: "コンパイル通さずに書いて怒られたけど、一行目はchar buf[4] = {'A','B','C','D'};の間違いだから、ゆるして…。(まあ雰囲気は伝わるはず)"
- 株式会社クローバーフィールドさんのツイート: "char buf[4] = “ABCD”; でもOKですね。 あと、厳密なことをいうと、*はint型の実引数を期待するので、sizeofの評価結果を渡すと未定義になります。 明示的にintでキャストしましょう。… "
フォーマット文字の文字数
- るくすさんのツイート: "int len = sprintf(NULL, 0, format, args)でフォーマット文字の文字数返ってくるテクニック良くみるんだけど、これPOSIXに書いてある仕様なんすかね https://t.co/8pYFEklqsn"
- まさみさんは語りたいさんのツイート: "カーネル内ではよくお世話になっています・・・。… "
- Hiroaki Nakamuraさんのツイート: "おお、そんな技あったんですね。検索してみると https://t.co/xKejO9kgJU のRETURN VALUEに int len = snprintf(NULL, 0, format, args) で文字数取れるようなことが書いてありました。… "
- fprintf, printf, snprintf, sprintf - print formatted output
- herumiさんのツイート: "char buf[10]; int n = snprintf(NULL, 0, format, args); if (0 <= n && n < 10) { sprintf(buf, format, args); } がバッファオーバーフローする状況はありえるか(10点)。 https://t.co/U3OJlbAsk0"
- herumiさんのツイート: "私の想定解は次のものでした。 const char *fmt="%'d\n"; int v = 12345678; // LC_NUMERIC=Cだった n=snprintf(NULL, 0, fmt, v);// 12345678なのでn=9 // 別スレッドでsetlocale(LC_NUMERIC, "en_US.UTF-8");が呼ばれた sprintf(buf, fmt, v); // 12,345,678が書き込まれてバッファオーバーフロー… https://t.co/5kU9QwuPUV"
- herumiさんのツイート: "グローバルな状態に依存したくないときのために非標準ですがロケールを指定できるsnprintf_lとかWindowsだと_vscprintf_lとかがありますね。… "
- herumiさんのツイート: "C++もずっとCのロケールを引きずっていて、数値と文字列の相互変換ですらロケール非依存でできる標準ライブラリが入ったのはC++17になってからです。… "
- Kazuho Okuさんのツイート: "そもそもs(n)printf実行中に別スレッドでsetlocale呼ばれる可能性のあるコード、ということになると未定義動作になるような気がしました。未定義動作にバッファオーバーフローも含まれるという点に異論はないですが… "
- herumiさんのツイート: "一応たまたま二つの関数の間で呼ばれたというつもりでした。 実行中にsetlocaleが呼ばれると未定義というのには同意です。 まあ、あまりよい問題ではなかったですね。すいません。>るくすさん。… "
- るくすさんのツイート: "いえいえ。 この手の限られた制約からの状況把握はシステムの脆弱性を突いてエクスプロイトを書く際の重要なステップなので良い訓練になります。面白かったです。結構使うんですよね、TOCTOUは。 例えばメモリ使い果たして文字数の返り値だけネガティブにしとくとかも。race conditionはキリがないすね… https://t.co/pUiIYbPzCp"
klib
- Kazuho Okuさんのツイート: "最近は klib とか使うイメージ。部品ごとに分かれてるし https://t.co/AVmoh0Zfw9… "
- Klib — a generic library in C
- attractivechaos/klib: A standalone and lightweight C library
- NaOHaq(苛性ソーダ)さんのツイート: "Cで書いてると連結リストも連想配列も基本的に自前で実装せざるを得ないんだよな……。既製品を使おうとするとものごっついフレームワークの一部だったりするし……。"
3-stage bootstrap
- Fumihiro MatsuiさんはTwitterを使っています: 「そういえばセルフホストは複数世代検証が要るんだっけか。まず既存コンパイラで自作のをコンパイルしてAを作って、それ使ってBを作って、さらにBでCを作って、BとCが等しいか比較検証とかするんだっけ。BもCも自作コンパイラ由来(Aは違う)なので入力等しければ本来は同じはずで。全然詳しくないけど」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています: 「でもコンパイラって、リンクされるライブラリの寄与とか除いても、自身のソースには無いけど自身をコンパイルした親コンパイラに由来するバイナリが普通に混じり得るはずで、そういうのの伝搬とかちゃんと考えるとなんかそれ自体結構面倒そうだな」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています: 「なんか3回って数字が妙に記憶に残ってるんだけど単にGCCのビルド&検証がそうだったからかも」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています: 「そうだそうだ、3-stage bootstrap ってやつだ」 / Twitter
配列とポインタの判別
- Kazuho OkuさんはTwitterを使っています 「C言語で、ある値がポインタなのか配列なのかを知る方法ってあるのかなぁ(gcc/clang拡張でも可)。意図としては countof(array) みたいなマクロで、引数arrayに渡されるものがポインタではなく配列であることをビルド時に保証したい cf. https://t.co/izurmOdiTl」 / Twitter
- _countof Macro | Microsoft Docs
- Yuki Yugui SonodaさんはTwitterを使っています 「@kazuho &してからintptr_tにキャストして、元の値と比較したらイケませんか? もっと移植性のある方法もあった気はするんですが」 / Twitter
- mattnさんはTwitterを使っています 「@kazuho gcc だとこのマクロがうまく動きそうです。 # define IS_ARRAY(arg) __builtin_choose_expr(__builtin_types_compatible_p(typeof(arg[0]) [], typeof(arg)), 1, 0)」 / Twitter
- mattnさんはTwitterを使っています 「@kazuho ビルド時じゃないか。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@mattn_jp いや __builtin_constant_p に食わせてOKなら使えばいいので、これもいけそうな気がしますねありがとうございます」 / Twitter
GNU
- Kazuho OkuさんはTwitterを使っています 「char buf[256]; strerror_r(errno, buf, sizeof(buf)); printf("%s\n", buf); このコードが未定義動作になっちゃうことがあるlinuxの罠に(また)はまった」 / Twitter
- Takuo KihiraさんはTwitterを使っています 「@kazuho GNU の場合は buf に格納されるとは限らない、ってことですか?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@tkihira yes! そのせいで、どっかで _GNU_SOURCE が定義されていると未定義動作になります」 / Twitter
- Takuo KihiraさんはTwitterを使っています 「@kazuho GNU の仕様、気持ちはわかるけれど、これはひどいですねw」 / Twitter
- asariさんはTwitterを使っています 「@tkihira @kazuho 知らなかったです。戻り値を受け取っていればコンパイル時に警告が出てはくれるわけですね。うーん https://t.co/LY6oEJVbYk」 / Twitter
- MSC14-C. 必要もなくコードをプラットフォーム依存にしない
変わったエンディアン
- FadisさんはTwitterを使っています 「リトルエンディアンとビッグエンディアンの両方に対応して万全なつもりでいるアプリケーションに襲いかかるPDPエンディアン」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「K.トンプソンの名付けたNUXI問題、PDPよりさらに変態な順序あるとP.J.プラウガーが書いていたっけ…8byteだと更に悪夢に。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「解析されないように,狂ったエンディアン(3,1,2,0 とか)を持つオリジナルの命令セットの VM を作って,その上で認証とかのコードを動かしたりしてるのを見たことがあったり」 / Twitter
- R. ShioyaさんはTwitterを使っています 「ちなみにこれ確か最終的にはクラックされてしまったのだけど,あそこまでやってダメならやっぱアルゴリズムを秘密にすることで守る方法はダメなんだなというのを体感する良い機会だったように思う」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya ほほぅ…カジュアルな解析を防ぐ、みたいな意味ですかね。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu 大分むかしの話なんですけど,コピー対策としてできる事はなんでもやるというような雰囲気だったと思います.一番やられると困るのが解析の結果プロダクトキーのジェネレータを作られてしまうことなんですが,そこは今は一般にネットワーク認証の導入で解決されているように思います.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、そういうコンテキストでしたか。 (昔は守る方も破る方も良く考えるなぁ…と思うマニアックなこと多かった印象ありますね…FDD/FDCを直接操作して不正セクタ存在が正規品とか)」 / Twitter
加算のキャリービット
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「Verilogで、加算のキャリービットを取得することってできるのだろうか?こんなことがやりたいのだけど。 c, addr <= addr + 11'd1; addrは11ビットのレジスタ。インクリメントしていって、オーバーフローした瞬間を捉えたい。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@uchan_nos https://t.co/hxGl6B4OuC 出力を1bit余分に多く宣言すればいいみたいですね」 / Twitter
- FPGAで信号処理:加算・減算とエラー処理
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@miura1729 1ビット以上大きな信号を定義して代入する方法ですね。なるほど。」 / Twitter
簡易なレジスタマシン
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「ASTからいきなりレジスタマシンの機械語を吐くのは辛いことが分かった。スタックマシンの機械語を吐く様にした後、本物の機械語ではなく中間言語(無限のレジスタを持つ機械語みたいなもの)を吐く様にしてから、レジスタ割り付けを行うというのが9ccでの手法みたい。」 / Twitter
- monochromeさんはTwitterを使っています 「@uchan_nos 最新作のchibiccでは、シンプルな方法でASTから直接レジスタマシンっぽいアセンブリを吐くようになってますね。」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@s_isshiki1969 おお、そうなんですか」 / Twitter
- monochromeさんはTwitterを使っています 「@uchan_nos 加算命令だと①右辺を評価してraxへ②raxをpush③左辺をraxへ④右辺をrdiへpop⑤add rdi,raxみたいな感じですね。CPUスタックも使うので本物のレジスタマシンよりは遅くなりますが、シンプルでそこそこ速い割り切ったやり方です。 https://t.co/2P7BqgGvHE」 / Twitter
- chibicc/codegen.c at 90d1f7f199cc55b13c7fdb5839d1409806633fdb · rui314/chibicc
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@s_isshiki1969 なるほど。これなら1 passなのにそれなりのレジスタマシンぽいコードが吐けるんですね。しかし、私が昨日考えた方式では、1 passなのにスタックを全く使わず、限られた個数のレジスタで任意の四則演算式を計算できるのではないかと思っています。これから検証しますが。」 / Twitter
bss
- DQNEOさんはTwitterを使っています 「ネットで見かけて都市伝説かと思ってたけど、本当にあるんですね…」 / Twitter
- Takuo KihiraさんはTwitterを使っています 「組み込み機器向けのCコンパイラで、起動の高速化のために.bss領域をゼロクリアせず、結果としてstatic変数がゼロで初期化されない奴に出会ってから、仕様に書いてあるからこうやって使っても安全、みたいな考え方が出来なくなってしまったw」 / Twitter
- どぅーあきさんはTwitterを使っています 「@DQNEO こういうのに限らず、C言語はコンパイラのバグって結構あった印象ある」 / Twitter
- DQNEOさんはTwitterを使っています 「@do_aki Cコンパイラの多様性ってすごいですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「コンパイラの問題なのかな、というか、コンパイラがANSI準拠してることと、プログラムがある環境のある条件で実行される場合に、その実行環境がANSI準拠かは割と別問題だと思うので(たとえば、一定の条件下ではstatic変数が一切使えないとかあるよね)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「たとえば、昔の Palm OS だと、起動条件によってはアクセスできるのは code segment の一部(最大32KBのみ)で、static 変数も使えなかった。僕は自分でローダ書いて展開してたけど」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「bssのクリアはコンパイラじゃなくてランタイム(startupルーチン)の分担で、組み込みだとstartupルーチンもカスタマイズしてるってのもよくある話なので、単にそのプロジェクトでよく分かってないにも関わらずカスタマイズしててバグらせただけっていうオチの可能性が残ってるような気もする…」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「あるいは元ツイートに「起動の高速化のために」って書いてあるように、そのプロジェクトでは意図的にstartupルーチンをカスタマイズしてて、自前で初期化するコード規約にしているとか。 どちらかというとこっちかな… その場合もコンパイラのせいじゃなく、言語仕様に反するカスタマイズも可能って話」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「んー、別にそう決まっているわけでもないと思う。たとえば、昔懐かしCOMだとtextもdataもbssも区別なく、ただコンパイラが吐いたファイルをそのままメモリにロードするだけじゃなかったでしたっけ」 / Twitter
- 椚座 💉くにゅくにゅ💉 淳介さんはTwitterを使っています 「初期値なしのグローバル変数や static 変数は bss 領域に配置され,main() が呼ばれる前に startup でゼロクリアされることは言語仕様として明記されている。でもそれはコンパイラの仕事ではなく,ランタイムシステムで実装されるべきこと(普通はアセンブラで書いてある)。」 / Twitter
@kazuho
- Kazuho OkuさんはTwitterを使っています 「strcpyとかsprintfのかわりにstrlcpyとかsnprintfを勧める人、バッファオーバーランを防げばプログラムが正しく動くようになると思ってるんですか、って話なんだよね。実際はtruncationによるデータ破壊や脆弱性とかあるし、他の言語同様に動的にメモリ確保するのが一番 (e.g., strdup, asprintf)」 / Twitter
- Takafumi YonekuraさんはTwitterを使っています 「僕はプログラミングに対して一家言*無い*人なので、「え?strcpy使ってるの?ニマァ」みたいなのほんと苦手なんだよね。もうちょっと世界を良くする方向性で生きたら?と思ってしまう。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「全てのケースでstrcpy_sでエラーチェック頑張るのも大変だし、文字数制限がないなら動的メモリ確保、あるなら長さチェックしてからstrcpyとかでいい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「プログラミング言語、特に習熟の過程で「よくわかんないけど動いた」みたいなのは絶対必要なんだけど、C言語の場合、「よくわかんないけど動いたり動かなかったり、なんか関係ないところ破壊しながら動いてたりする」。バグを踏むケースで危険な副作用出る可能性が高いがゆえに...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「新しいCプログラマが育ちにくい(育てにくい)というのがC言語の限界なんだと思う」 / Twitter
- BasukeさんはTwitterを使っています 「@kazuho ユーザーランドで何やったって何が壊れるわけでもないので、バンバン書いてクラッシュさせればいいのにねーと思うんですよね。誰が死ぬわけでもなし。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@basuke ええ。最近だとasanとかubsanとか使えば、だいぶマシにはなりますからね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「char buf[sizeof("255")]; sprintf(buf, "%" PRIu8, uint8_val); みたいなコードを書いてる時に、snprintf使わないんですかって言われて、勘弁してよ... ってなるわけです」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Rustのさまざまな支援はあると助かるけど、並列安全性を気にしなくていいCプログラムで、所有権以外のバグっていっぱいあるんですよね。結局ロジックが複雑になって「動いてるからヨシ」になる問題はどの言語でもかわらんと思う」 / Twitter
- Ph.D.ritaさんはTwitterを使っています 「これを、オブジェクトの所有権や並列安全性の観点で大リーグ養成ギプス的なガチガチの制約と優しいエラーメッセージでサポートしてくれるのがRust、という認識なんだけど、そこまで導いてくれるのかしら。。。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ごく一握りの、課題を単純な問題に帰着させてからのみプログラムを書くような自律と問題解決力があるエンジニアにとっては良い言語であることは確かだと思う。djb…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「定理証明とか構成的プログラミングでバグ0を狙う方向は、あまりに難しい。(生産性が上がらない) 設計/開発での予防とテストでの確認、でバグを一定以下に抑えるほうが、稀に事後バグ対応コストがあったとしてもトータルで低コストというのが多くの開発者の感触かな。 (予防法の進化は歓迎だけど)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(元ツイートは、カーニハンだかの言葉「デバッグは開発より2倍難しいから、あなたはあなたのプログラムをデバッグできるほど賢くない」を思い出す(笑))」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(皆、能力不足の地位になるまで昇進するから、安定ポジション=皆能力不足説とか。何の法則だったか忘れた)」 / Twitter
- kenichiudaさんはTwitterを使っています 「@shirouzu ピーターの法則でしょうか。 最近ググりました。」 / Twitter
- `('-' )’さんはTwitterを使っています 「@shirouzu この法則は「その組織の仕事は、まだ出世の余地のある人間によって遂行される。」が論理的な帰結として導き出されてしまうところが上手いなと。 https://t.co/u5DGkF8wzM」 / Twitter
- ピーターの法則 - Wikipedia
- Reservoir sampling - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そうはいっても、昔よりは随分と安全サイドに最初からコストかけるようにはなったとは思う。 (太古のサッカーはほぼ全員が攻撃手だったが、研究が進むにつれ攻撃手は1,2人になり、直感より防御優先の方が合理的となった歴史を連想したり)」 / Twitter
- コンパイラのいじめかた / How to fight the compiler - Speaker Deck
- Clang のスレッドセーフ分析
- 自作Cコンパイラで Ken Thompson のログインハックを再現してみた - 0x19f (Shinya Kato) の日報
- llvm-project/clang/INPUTS at master · llvm/llvm-project
- ソフトウェア1 (2020)
- C99 - Ruby master - Ruby Issue Tracking System
- Learn c in Y Minutes
- C Reference Cheat Sheet by Ashlyn Black - Download free from Cheatography - Cheatography.com: Cheat Sheets For Every Occasion
- Deck Not Found - Speaker Deck
- FadisさんはTwitterを使っています 「kmallocしてmemsetでゼロクリアする事多いからゼロクリアするメモリ確保kzmallocを用意したい→既存の膨大なコードをどうやって置き換えよう→Semantic Patch。具体的にはCoccinelle https://t.co/TtIo1wfNCG #kernelvm」 / Twitter
- Coccinelle: A Program Matching and Transformation Tool for Systems Code
- FadisさんはTwitterを使っています 「難題: CPPで変換されているコード→ CPPをかけた後のコードのASTを作って変換することはできる。しかし、変換後のコードはCPPをかける前の形になっていなければならないがCPPで逆変換をする事ができない #kernelvm」 / Twitter
- Coccinelle — The Linux Kernel documentation
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「関数がinline宣言されたからといって、必ずインライン展開されるわけではない。C++ではinline宣言された関数はたとえ使わなくてもリンカが残す。いっぽうCでは"inline"宣言され使用されない関数は削除されるが、"inline extern" や "inline static" では事情が異なる。 https://t.co/UovN5VSChb」 / Twitter
- [llvm-dev] Inline function not eventually inlined is removed
- Kazuho OkuさんはTwitterを使っています 「一応マジレスしておくと、アセンブリ読み書きできなくてもプログラム書くためのツールがC言語だし、APIを整理したりインタプリタ作ったりすることで、Cを読み書きできなくてもプログラム書いたりできるようにしてきたわけですね。まあ、読み書き必須な類の仕事というのはあるけど」 / Twitter
- memory efficiency - Google 検索
Assembly
UTF-8 validation
- ドッグさんはTwitterを使っています 「Lemire 氏次は UTF-8 の validation か.SIMD の pshufb 命令を使って 16バイトごとの table lookup に vectorize して,それを3回やるだけでできるのか | 'Ridiculously fast unicode (UTF-8) validation' https://t.co/sfVDunjaAL」 / Twitter
- Ridiculously fast unicode (UTF-8) validation – Daniel Lemire's blog
- ドッグさんはTwitterを使っています 「paper: https://t.co/Vz0fa836MD 6.1 の最後の段落と TABLE 9 に具体例が載ってる」 / Twitter
- 2010.03090.pdf
- ドッグさんはTwitterを使っています 「Rust も String や str の値の動的な生成には unsafe 使わない限り UTF-8 validation が必ず入るので高速化すると嬉しい気がする」 / Twitter
ABI
その他
その他
- shinichiro hamajiさんのツイート: "ABI 地獄は Qt/KDE で10年以上 C++ ライブラリを配るということにつきあってた人の、この話が面白かった気がする https://t.co/fx80ZQ4teS #cppmix"
- Cover Slide Title
- Thread Local Storageの初期値について調べた - Qiita
- ABI の境界 (Modern C) での移植性 | Microsoft Docs
- C言語系/呼び出し規約/x86/naked - Glamenv-Septzen.net
- KMC Staff Blog:QEMU の Microsoft x64 環境での不具合
- APIとかABIとかシステムコールとか - Qiita
- Makoto Kato ︎︎さんはTwitterを使っています: 「Linux/aarch64のコードをWindows/arm64にポートする時に気をつけないといけないのは、x18がLinuxだとスクラッチレジスタだけど、Windows (iOSもだけど) だとスクラッチレジスタではないので、ちゃんと値を保持しないといけないってところ。ABIの定義みたら、プラットフォーム依存と書かれたはず」 / Twitter
- FadisさんはTwitterを使っています 「intのサイズがいくつでlongのサイズがいくつってのはC++の規格じゃなくてABIが決めるところで、ABI次第では両者は同じサイズになり得る。でもサイズが同じである事と、型が同じであることは別の話で、両者が同一の型扱いされることは無い」 / Twitter
- ARM64EC Support in Visual Studio | C++ Team Blog
objdump
- [reverse-engineering] objdumpを使用したフラットバイナリファイルの逆アセンブル [disassembly] | CODE Q&A 問題解決 [日本語]
- 2590 - x86-64 validator allows addressing mode with the redundant "%riz" encoding - nativeclient - Monorail
- 【ベースアドレス】の例文集・使い方辞典 - 用例.jp
POSIX
可変長引数
- ロボ太さんはTwitterを使っています: 「C/C++で、以下の実行結果が「3 1.200000」になることを知って震えている。 printf("%d %f\n", 1.2, 3);」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「これどういうことかと思ったらva_listの構造も特殊なのか。たとえばPowerPC64 System V ABI V2だとva_listは引数を順に並べたものになっているので、可変長な関数を呼ぶときはcalling conventionが変化するんだけど、AMD64 System V ABIでは%alに使用したSSEレジスタの個数を入れるだけしい」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「まず前提条件として ・固定長引数関数は、できるだけ引数をレジスタに入れて渡したい ・可変長引数関数はどうせva_listに入るのでスタックに入れて渡したい という要件があるんだけど、ここでnon-prototype関数という厄介なやつがいる (伝統的なC言語にある、引数型が不明な関数)」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「こいつは呼び出し側からは固定長か可変長かすらわからないので、わからないなりに上手く呼べる必要がある。なので基本的に以下のような戦略になる ・引数はできるだけレジスタに入れて渡す ・可変長引数のときは必要に応じてレジスタからスタックにコピーしなおす」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「で、レジスタとスタック上の位置が1対1対応してればここまでの議論で完結するんだけど、多くの場合は整数と浮動小数点数は別のレジスタに入れたほうが効率がよい (固定長引数のときはそうしたい)。」 / Twitter
- Masaki HaraさんはTwitterを使っています: 「しかも、できれば沢山レジスタに入るほうがいいので、整数レジスタは整数レジスタで詰めて入れたいし、浮動小数点数レジスタも同様。 ところがスタック部分は共用なので、「どこからがスタックに溢れたのか」がわからなくなる。」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています: 「レジスタに置いて呼んでからスタックにコピーされるのかあ」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています: 「なんかレジスタ経由して「書式文字列通りに引数並べてあったらレジスタにこう置いてあるでしょ他は知らん」みたいなノリなのかな、でもなあって思ったら意外と部分的にそういうノリっぽい上にもっとあれな話だった」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています: 「Cの処理系は初期の仕様をカバーしつつ効率的なコードを吐く事の両立を求められるとほんときつそう。gccとかclangとか超感謝」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「発展課題: これが当然だと思った皆さんは、va_start, va_arg, va_stop の実装を考えてみましょう https://t.co/jXo8DhCdd9」 / Twitter
値渡し
- uint256_tさんはTwitterを使っています 「#cilk 構造体を値渡しするためには,かなり大がかりな改修が必要なことが分かった.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t ほんとあれややこしいんで、そんなに得になっているのか誰かにちゃんと説明してほしい。あと、 struct { double x, y; }みたいなやつは2つのXMMレジスタで渡されたりしますよね(さらにトリッキー)。」 / Twitter
- uint256_tさんはTwitterを使っています 「@rui314 xmmなどのレジスタが関わってくる場合については,どこかに詳細なドキュメントが置いてあったりするのでしょうか」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t https://t.co/1SIFcKzwpt の 3.2.3 Parameter Passing のあたりです」 / Twitter
- psABI-x86_64.pdf
- uint256_tさんはTwitterを使っています 「@rui314 ありがとうございます (確かにこれはややこしい)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t まあx87の80ビット浮動小数点数とか__m256あたりはとりあえず無視していいとは思いますけど。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t そこらへんをとりあえず置いておくと、 - 16バイトより大きいとかunalignedなメンバがあったりするとスタック渡し - それ以外の場合、8バイトごとに区切って考えて、8バイトに含まれているメンバが全部浮動小数点数型ならXMM、そうでなければ整数レジスタ渡し というルールのはず。」 / Twitter
- uint256_tさんはTwitterを使っています 「@rui314 かなりすっきりしますね.わかりやすい.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t struct { int a; float b; double c; }だと、aとbは(上位32ビットと下位32ビットで)まとめて1つの整数レジスタで渡して、cはXMMという。そこまで詰めるメリットあるのかなぁという感じですけど。」 / Twitter
- _ko1さんのツイート: "https://t.co/Wlk3omuOir (VALUE)(*funcptr)(VALUE) と (VALUE)(*funcptr)() で呼び出し時のコンベンションが違うようなんですが、後者って何? eax なんて callee は見ないよね?"
- Shiro Kawaiさんのツイート: "funcptrがvarargだった時にFP引数の数をalに入れることになってるので、それを0にしとくため?… "
- _ko1さんのツイート: "FP引数!! 知りませんでした… "
- Shiro Kawaiさんのツイート: "callee側でどう使ってるのかはよく理解してない。スタックにスピルした場合でも結局va_argで渡される情報を信用してアクセスするしかなさそうだけど…xmmの退避に関係する?… "
- Kazuho Okuさんのツイート: "va_startは引数かもしれないレジスタを全部スタックに展開するけどxmmでそれやるとさすがにメモリ食い過ぎるから… "
- Shiro Kawaiさんのツイート: "なるほど。va_listの実体をスタックに持たないとならないからか。全部va_argで使い切られてたらどのレジスタ使えばいいのかわかるけど、va_listのまま他の関数に渡される場合があるからコピーは必要と。… "
- mpx-linux64-abi.pdf
- Cの可変長引数とABIの奇妙な関係 - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SPARC(32bit)で構造体を渡す時、レジスタに収まるサイズでも、ポインタ経由になるの、考慮漏れだったのかな? v9でもx64でも、レジスタサイズより大きい場合にはじめて、ポインタ経由になる。」 / Twitter
- kubo39@求職中さんはTwitterを使っています 「@rui314 @uint256_t x86においてebxレジスタをGOTのために予約していた話でしょうか。GCC 5以降はそうではなくなりました。 https://t.co/m571IdUGTV」 / Twitter
- New Optimizations for X86 in Upcoming GCC 5.0: PIC in 32-Bit Mode
- Assembly 2: Calling convention – CS 61
- 2021-05-04_-The-Complete-Guide-to-return-x-1.pdf
x64 ABI
- WINAPI とは何か? - C/C++ 入門
- melancholic afternoon
- ACCU :: Windows 64-bit Calling Conventions
- Makoto Kato ︎︎さんのツイート: "@d_toybox msvc以外は使えるんだけどね、int128_t。C99で定義されてる話だけど、Windows ABIでint128_tが定義されてない(はず)だから、使えん。VC++はC89だし"
- Makoto Kato ︎︎さんのツイート: "struct t {size_t a; size_t b;}; struct t test (int p)なんてやると、Win64 ABIだとrcx (最初の引数のはず) がpである保証ないとかあれはちゃんとドキュメント化してほしい"
- Makoto Kato ︎︎さんのツイート: "@d_toybox (Unix ABIだと6個だけど)。uint64_t -> uint32_t の暗黙的な変換とかは別に命令実行する必要ないんでそんな関係しない"
- Makoto Kato ︎︎さんのツイート: "@hATrayflood なおYARR JITな修正はこれ https://t.co/X3yVFjyX uint128_tがWin64 ABIで使えれば。。。"
x32 ABI
本の虫
- 本の虫: x32 ABIの簡易的なまとめ
- 本の虫: GoogleのNative ClientチームがLLVMにx32を所望
- 本の虫: glibc 2.16がリリース。x32をサポート
- 本の虫: LLVMにx32のサポートを追加するパッチ
- x32-abi
- Fadisさんのツイート: "Linuxカーネル開発者達がx32 ABIの廃止を検討している。x32はx86_64のハードウェアを要求しながら32bitのアドレスを使う事でx86_64の機能を利用した性能の向上と、アドレスが短い事による性能とバイナリサイズでの強みを共に享受しようというABIで、あまり流行っていない https://t.co/hvFqRfIW66"
- Linux、x32のサポート終了か - ト―バルス氏は賛成 | マイナビニュース
kABI
- kABIとは何か - 赤帽エンジニアブログ
スタック
- [C言語]コールスタック(スタックフレーム)の仕組みを復習する | KentaKomai Blog
- WIN64スタック | さすらいのプログラマ - 楽天ブログ
- スタックと割り込み ―― プログラムが動く仕組みを知ろう|Tech Village (テックビレッジ) / CQ出版株式会社
- スタックフレーム - 関数に渡される引数を知る - Web/DB プログラミング徹底解説
- windows - newbie trying to understand disassembled code - Reverse Engineering Stack Exchange
- c - マシンコード実行時のランタイムエラーが不明確
エンディアン
- エンディアン - Wikipedia
- エンディアン - デバイスドライバの記述
- PCI - OSDev Wiki
- Ext4 Disk Layout - Ext4
ソフトウェア規約
- x64 でのソフトウェア規約 | Microsoft Docs
- x64 software conventions | Microsoft Docs
- __fastcall | Microsoft Docs
- /favor (アーキテクチャ固有の最適化) | Microsoft Docs
- /Zp (構造体メンバーの配置) | Microsoft Docs
- コンパイラ組み込み | Microsoft Docs
- 呼び出し規則 | Microsoft Docs
呼び出し規約
- x64 での呼び出し規則 | Microsoft Docs
- x64 calling convention | Microsoft Docs
- __m128 | Microsoft Docs
- setjmp | Microsoft Docs
- longjmp | Microsoft Docs
- コンピューター:C言語講座:構造体・共用体・ビットフィールド
スタックの使用
- x64 スタック使用量 | Microsoft Docs
- x64 stack usage | Microsoft Docs
- Gamasutra - In-depth: Windows x64 ABI: Stack frames
- malloc | Microsoft Docs
- __m128 | Microsoft Docs
- _aligned_malloc | Microsoft Docs
- _alloca | Microsoft Docs
- align (C++) | Microsoft Docs
- __declspec | Microsoft Docs
プロローグとエピローグ
- x64 プロローグとエピローグ | Microsoft Docs
- x64 prolog and epilog | Microsoft Docs
- Windows Anti-Debug Reference まとめ その1 - Twitterに書ききれないこと
- Windows x64で電卓を起動するシェルコードを書いてみる - ももいろテクノロジー
- X64 Memory segmentation – Is the game over? | AaLl86 Security
- 或るプログラマの一生 » x64 環境でのアセンブラプログラミングにおける注意点
- x64 Assembly Language Programming
- 64-bit _alloca. How to use from FPC and Delphi? | Atelier Web
- Saving Space When Saving Space - emsea
- Thread’s Stack – Satyem
- assembly - Meaning of BND RET in x86 - Stack Overflow
- assembly - What does `rep ret` mean? - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんのツイート: "余談ですが、x64は概ねプロローグでstack事前確保(alloca系は別として)なので、関数内でcall毎のpush/popがない分、x86よりダンプが読みやすい印象があります。 (ただダンプ解析では、引数がスタックにない分、若干解析しづらい)… "
例外処理
- x64 例外処理 | Microsoft Docs
- x64 exception handling | Microsoft Docs
- MSVC の例外処理 | Microsoft Docs
- x86-64とARM64の可変長引数関数の呼び出し規約 - Qiita
- 2x-3x Performance Improvements for Debug Builds | C++ Team Blog
MS
- 定義済みマクロ
- WINVER および _WIN32_WINNT の変更
- /DISASM
- /HEADERS
- /SECTION (DUMPBIN)
- Microsoft Macro Assembler Reference
- MASM for x64 (ml64.exe)
- ML and ML64 Command-Line Reference
- PROC
- .ENDPROLOG
- SEGMENT
- COMM
- EXTERN (MASM)
- INCLUDELIB (MASM)
- INCLUDE (MASM)
- PUBLIC (MASM)
- Directives Reference
- .MODEL
- Symbols Reference
- ML Error Messages
- Operators Reference
- MASM Numbers and Operators - Windows 10 hardware dev
- アセンブリ言語の式
- operator IMAGEREL
x64
その他
- X86 Opcode and Instruction Reference
- Intel XED
- SSSE3: fast popcount
- WojciechMula/sse-popcount: SIMD (SSE) population count --- http://0x80.pl/articles/sse-popcount.html
- Expression templateとfmaについて - in neuro
- maveの中身について - in neuro
- SIMDベクトル・行列ライブラリを作った - in neuro
- 本の虫: 今でも乗除算をビット演算に展開する意義はあるんだろうか
- part03.pdf
- アセンブリ – 64ビットコールゲートの使い方 - コードログ
- Nerry さんはTwitterを使っています: 「deadbeefみたいなの、x64ではあまり適当に設定しすぎるとpage faultの前にcanonical violationに引っかかって例外のエラーコードとして取れないのしんどい」 / Twitter
- パフォーマンス – x86_64:IMULは2x SHL 2x ADDより速いですか? - コードログ
- minix86
- アセンブリ – x86で相対的な短いjmpをエンコードする方法 - コードログ
- エンコーディング – 相対JMP(x86)はアセンブラーにどのように実装されていますか? - コードログ
- x86 の汎用レジスタのルーツ - 借り初めのひみつきち
- x64で配列の添字にintを使うと遅い - in neuro
- InstLatX64さんはTwitterを使っています 「#Intel refreshed the "Data Streaming Accelerator Architecture Specification" to 1.1 with #ENQCMD/ENQCMDS of #SapphireRapids https://t.co/SDQ1mg5Tpt https://t.co/Z9jztPsq2Y」 / Twitter
- INTEL® DATA STREAMING ACCELERATOR ARCHITECTURE SPECIFICATION - 341204-intel-data-streaming-accelerator-spec.pdf
- PEXT/PDEP - Google 検索
- 中村 実さんはTwitterを使っています 「日高 徹・青山 学著『8086マシン語秘伝の書』は面白いので知らない人は一読をおすすめする。全文がEPUBやPDFで公開されいるみたいだし。 https://t.co/Dm1CpJQmzh」 / Twitter
- 8086マシン語秘伝の書 : 日高徹, 青山学 : Free Download, Borrow, and Streaming : Internet Archive
- アセンブラをゼロから作って自作コンパイラをアセンブルするまで(日記)
herumi
- introduction to x86-asm
- x64 Assembly Language Programming
- Intel optimization
- misc/fence.md at master · herumi/misc
- herumiさんのツイート: "mclの基礎体のx64(Xbyak)実装の多少詳しめの解説(書きかけ)。今日の社内勉強会の資料。adoxやadcxの解説ってあまり見かけない(というか命令の存在自体知らない人が多そうな印象)。 https://t.co/FCz6Zm7NMW"
- opti/field-impl.md at master · herumi/opti
- melancholic afternoon
- MKL-DNNで学ぶIntel CPUの最適化手法 - Cybozu Inside Out | サイボウズエンジニアのブログ
- herumiさんのツイート: "先日のIntel MKL-DNNについてのブログを書いてるときに見つけたAVX-512用指数関数expの改良(22命令→19命令)のpull requestがmergeされた。 https://t.co/nviKW0gyrK そしてvcvtps2dq + vcvtdq2psはvrndscalepsに出来るというのを知った。これはvroundpsの拡張だったのか。 https://t.co/o2DiBVCRZZ"
- herumiさんのツイート: "xchg eax, eaxは64bit環境じゃnopじゃないよと説明したよね、と思ったけど@sksat_tty さんはその日は休んでいたのだった。 https://t.co/93Hh1WE9R6"
- melancholic afternoon
- melancholic afternoon
iSUS
- x64 アセンブリーの概要 | iSUS
- Microsoft* Windows* 10 における新しい命令セットの利用 | iSUS
- ソフトウェアは実際に新しい命令セットを使用しているのか? | iSUS
命令
- melancholic afternoon
- MULX — Unsigned Multiply Without Affecting Flags
- ADCX — Unsigned Integer Addition of Two Operands with Carry Flag
- ADOX — Unsigned Integer Addition of Two Operands with Overflow Flag
- 算術命令
- xorpd | xchg rax,rax
- X86-64 Instruction Encoding - OSDev Wiki
- AMD64の特徴と機械語コーディング (1/2):CodeZine
- assembly - Why did GCC generate mov %eax,%eax and what does it mean? - Stack Overflow
- MOV命令
- お手軽に使える高速なSSE4.2専用文字検索ライブラリ - Cybozu Inside Out | サイボウズエンジニアのブログ
- Nerry さんはTwitterを使っています: 「x64ってデフォルトオペランドサイズ32bitだけど、32bitと64bitでそれぞれ意味のある命令、強制的に64bitで実行される命令、明示的に64bitにしないと実質意味のない命令が混在してて禿げる」 / Twitter
- Nerry さんはTwitterを使っています: 「push/popやcall/ret(near)は強制64bit iretqとかは明示的に64bitにしないと禿げる奴」 / Twitter
- BitTest 命令 - 借り初めのひみつきち
- PDEP/PEXT命令 - Google 検索
- Makoto Kato ︎︎さんはTwitterを使っています 「インテルなんてsha256とかの拡張が32bitでも提供してるのはびっくりした」 / Twitter
- FadisさんはTwitterを使っています 「Arch Linuxがx86-64-v3版の提供を検討しているらしい。x86_64には多くの拡張命令が追加されてきた為、初代Athlon64に合わせてビルドしたバイナリは今日のCPUを活かす事ができない。 この為Archでは以前からx86_64ならどこでも動くv1とNehalem以上を要求するv2が提供されていた https://t.co/7GjGxZGB9W」 / Twitter
- Arch Linux Developers Discuss Idea Of Providing An x86-64-v3 Port - Phoronix
- FadisさんはTwitterを使っています 「新しいx86-64-v3ではAVX、AVX2、MOVBE、XSAVE等が使えるようになり、最低でもIntelならHaswell以上、AMDならZen以上のCPUを要求するようになる」 / Twitter
- SIMD-accelerated regular expression matching | Proceedings of the 12th International Workshop on Data Management on New Hardware
- Rust の勉強と CPUID の実践と | Coelacanth's Dream
- InstLatX64さんはTwitterを使っています 「@PerforatedBlob Thank you very much! You are right, ternlog is unnecessary here. Fix: https://t.co/dqvq82omja」 / Twitter
二分探索
- Kazuho OkuさんはTwitterを使っています 「いい紹介記事。参考にコード書く上では、分岐予測があたる場合「CMOVのほうが遅くなりがち」なことも注意必要だと思う。基本的に分岐予測が当たらない時に使うものという認識 / https://t.co/FposYiiW60」 / Twitter
- Binary search with modern processors - Speaker Deck
- Kazuho OkuさんはTwitterを使っています 「aarch32 で全命令に predicate(実行条件指定)があったのが aarch64 でなくなったのも、反映されない命令を常に実行するよりも、分岐予測を使って実行する命令数を減らすほうが有効だという現実があるからなわけで」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「演算器があまってる場合はCMOV使っても問題ないとか、そうすることでBP/BTBの消費が抑えられるとか言い出すと沼」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ところで論旨に関係ないけど、CMOV使う版は配列の要素数が2のベキ乗じゃない場合の処理をさぼってない?」 / Twitter
Intel Key Locker
- Intel Key Locker Specification - 343965-intel-key-locker-specification.pdf
OFFSET FLAT:
- x86 Disassembly/Variables - Wikibooks, open books for an open world
- It's science, but it works like magic.: Gas Problems
- ia32_chap_04.pdf
- ブートストラップローダ領域でHello, World! - Qiita
Unreal Mode
- “Unreal mode”と呼ばれているx86の状態について | KEI SAKAKI's PAGE.
- Unreal Mode - OSDev Wiki
- Unreal mode - Wikipedia
- savaさんのツイート: "めも:(i386の)アンリアルモード略史 https://t.co/aYuRbCWKxM インテルは最初、i386でも(286と同様に)プロテクト→リアルモードに戻る手段を提供しない予定だった、というのははじめて知りました…"
- A Brief History of Unreal Mode | OS/2 Museum
リアルモード
- X86アセンブラ/x86アーキテクチャ - Wikibooks
- x86_mode - OS-Wiki
- リアルモード - Wikipedia
- 8086による機械語入門 - Qiita
- リアルモードでも32bitのレジスタを使うことができる - 脱力系日記
blog
- 原書で学ぶ64bitアセンブラ入門(4) - わらばんし仄聞記
- はじめてのにき(2010-07-06)
- x86 でリンクコール - Think Stitch - PRINCIPIA
- gccのx86インラインアセンブリに関して
- はじめてのにき(2009-03-31)
- Assembly Programming on x86-64 Linux (05)
- Assembly Programming on x86-64 Linux (02)
- 2014.seccon.jp/mailmagazine/backnumber07.txt
- 2014.seccon.jp/mailmagazine/backnumber08.txt
- Intel Ice Lakeのプロセッサは整数除算命令がアツい - chroot("/home/hibari")
- Ice Lakeプロセッサは整数除算がアツい 数値計算編 - chroot("/home/hibari")
- 日記 (2019 年 7 月中旬)
- 日記 (2019 年 7 月中旬)
- 或るプログラマの一生 » Zen は PEXT/PDEP 命令が遅い
スライド
- SSE4.2の文字列処理命令の紹介
- あなたの知らないnopたち@ラボユース合宿
- Shinjuku.rs#15 Rustでつくるx86アセンブラ - Speaker Deck
Qiita
- x86-64プロセッサでGNU assemblerを使う - Qiita
- ハードウェア乱数 RDRAND命令の使い方 - Qiita
- 初学者向け x86/MacOSX 64bit アセンブリ - Qiita
- FMA (fused multiply-add) の話 - Qiita
- NOP WORD PTR? - Qiita
Twitter
16 ビット long モード
- Nerry さんはTwitterを使っています: 「今まで16bitロングモードがうまく動かない理由がやっとわかった:;(∩´﹏`∩);: https://t.co/DkozHhnKZj」 / Twitter
- Nerry さんはTwitterを使っています: 「実際には16bitロングモード自体は以前から動いていたけど、ロングモードに遷移直後のfar jump命令が間違っててそのままGPF→triple faultみたいな」 / Twitter
- Nerry さんはTwitterを使っています: 「これによって今までは起動時に RM16→PM16→PM32→LM32(CM32)→LM64 という遷移が必要だったのが、RM16→PM16→LM16(CM16)→LM64 に直接遷移できるようになって中間の32bitセグメントがいらなくなったヽ(•̀ω•́ )ゝ✧」 / Twitter
- Nerry さんはTwitterを使っています: 「x86の命令エンコーディングの複雑さを改めて実感した。 x86命令って16bitと32bitの単純な2種類あるわけじゃなくて、デフォルトオペランドサイズと66 67の組み合わせで(命令によっては)4種類の命令が混在している。」 / Twitter
- Nerry さんはTwitterを使っています: 「困ったことに4種類の命令全てにちゃんと名前がついてるわけじゃなくて、アセンブラや逆アセンブラ上では表現できない命令も存在している」 / Twitter
- Nerry さんはTwitterを使っています: 「スレッドディスパッチャ完成する前にSMPのAP起動コード動いた🤔」 / Twitter
整数乗算
- R. ShioyaさんはTwitterを使っています 「一時期はそうだったけど最近のインテルだと整数乗算がレイテンシ3サイクルで,SIMD の FP だと 4 なので整数のが速いかも.整数乗算がボトルネックになるのは構造体の配列アクセスとか,固定値での除算からの変換,ハッシュ表のハッシュ値の計算とか暗黙な場合が多いかも https://t.co/yCoJ6a5rdR」 / Twitter
- instruction_tables.pdf
- Kazuho OkuさんはTwitterを使っています 「除算はともかく、乗算については(特にSIMDの)浮動小数でやった方が整数でやるよりも速いCPUの方が多いんじゃないかなぁ。結局、実用途でボトルネックになる乗算は大抵浮動小数なので」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえばこの間、塩谷先生に教えてもらった資料に、こんな記述あったっけ。 ---- 「Alphaは整数除算命令を欠いており…驚くべき結果として、ほとんどの実装で浮動小数点除算が整数除算よりも大幅に高速になりました」 https://t.co/sjOdraolxv」 / Twitter
- Waterman_berkeley_0028E_15908.pdf
- FadisさんはTwitterを使っています 「乗算が加算より遅いかはプロセッサによる。シフトより乗算のほうが有利なアーキテクチャさえ存在する。コンパイラはプロセッサが命令を処理するのに必要なサイクルに基づいて等価な命令への置き換えを行うので多くの場合高級言語における計算式はその意味通りに書いて正しいmarchを指定したほうが良い」 / Twitter
REX
- uchanさんはTwitterを使っています 「MOVZX r64, r/m8は何のために存在するのか分からない - uchan note https://t.co/kxARiS5J4G」 / Twitter
- MOVZX r64, r/m8は何のために存在するのか分からない - uchan note
- yohさんはTwitterを使っています 「@uchan_nos へーときになって検索だけしてみたのですが https://t.co/mG50BAKT2D が答えになっています?」 / Twitter
- assembly - What's the point of instructions with only the REX prefix in 64bit mode? - Stack Overflow
- yohさんはTwitterを使っています 「@uchan_nos 良く読み直したら REX-prefix 有無じゃなくて EAX / RAX の違いに関してなんですね。失礼しました(r64直指定とr32指定+上位32bit自動Zero化で何か違うかという点)」 / Twitter
- yohさんはTwitterを使っています 「@uchan_nos FYI: 趣旨がよく似た https://t.co/1tmIUpiP0y "Difference between MOVZX r32, r/m16 and MOVZX r64, r/m16 in 64-bit x86" ってのがありました。」 / Twitter
- assembly - Difference between MOVZX r32, r/m16 and MOVZX r64, r/m16 in 64-bit x86 - Stack Overflow
- Yasuo ItabashiさんはTwitterを使っています 「@uchan_nos 元記事の通り「規則性を満たすために項目だけは用意されている」のだと思います。命令のデコーダを作る観点からするとプレフィックスを付けた時の意味に対する(上位32bitがクリアされる)動作が(結果的に重複したものだとしても)妥当であるのに、わざわざr64のものを弾くのは回路が無駄に複雑になります」 / Twitter
- Keigo NitadoriさんはTwitterを使っています 「raxやripレジスタのr、REX prefixとは何か調べていたら "Register EXtension"らしい。ラテン語の王様ではないのか。 » assembly - What does 'REX' stand for in an x86-64 REX prefix? - Stack Overflow https://t.co/GvTykx3BV6」 / Twitter
- assembly - What does 'REX' stand for in an x86-64 REX prefix? - Stack Overflow
- Keigo NitadoriさんはTwitterを使っています 「Accumulator, Base, Counter, Dataでa b c dの8-bitレジスタだったけど、16-bitになったときah, alみたいに上下触れてaxがその両方。 ソースは不明だが32-bitに拡張されたeaxのeもxもextend由来という記事も。 https://t.co/WNmPXLtucj」 / Twitter
- レジスタ (コンピュータ) - Wikipedia
histric-1
- るくすさんのツイート: "まあrex prefixの有無がdec %eaxに解釈されるかされないかで判定するというのはあまりにも有名なテクだけど、test $0xF9F9F9F9,%eaxでsetcondに解釈されるというのは、なるほどという感じ"
- Urabe, Shyouheiさんのツイート: "x86というのは同じことをするのに様々な書き方ができるISAなわけだけれども、同じことをするのであれば短く書いたほうが速い、という話。 ようは最近のx86ではfetchの帯域が律速している。 https://t.co/a9AVqgJWTN"
- Micro-op fusion in x86. | Denis Bakhvalov | C++ enthusiast.
- はぇ~☆さんのツイート: "いろいろ制約があって、コード次第で状況が毎回違うんですよね。… "
- まさみさんは語りたいさんのツイート: "ああ、REXが。。。… "
- Fadisさんのツイート: "x86_64のpop %r15の命令の途中にジャンプすると%rdiがpopされる。pop %rdiを必死で探し回ったけど見つけられなかったROPerは覚えておくと時々役に立つ"
- OS自作 uchan_nosさんのツイート: "x86-64アーキテクチャのretfとlretqとREX.Wプレフィクスの関係を学んだ."
- Makoto Kato ︎︎さんのツイート: "struct t {size_t a; size_t b;}; struct t test (int p)なんてやると、Win64 ABIだとrcx (最初の引数のはず) がpである保証ないとかあれはちゃんとドキュメント化してほしい"
- まさみさんは語りたいさんのツイート: "Modifier + Register/Memory indicator = ModRM"
- 解答略さんのツイート: "x86の機械語をざっと見渡すには、このpdfが世界で一番整理されてると思う。https://t.co/00G7QFh8sN これはx86エミュレータ作るとき大変世話になった。人力objdumpするなら、とりあえずこの表を小一時間眺めるのが良さそう。nopはxchg eax, eaxとか色々わかる。これのx64版、誰か作ってくれないかな"
- Wayback Machine
- 解答略さんのツイート: "前ツイートのpdfは、このサイト https://t.co/9Zw3y6hZIG のpdfがリンク切れなのでwebarchiveから拾ってきたものです。ModRM周りを理解するために、僕はニーモニックをnasmでアセンブルして表と見比べてた。強者はIntelの仕様書眺めりゃ理解できるのだろう。あとx86エミュレータ本は実装の参考になった"
- ハンド (逆) アセンブルのための x86 ニーモニックの覚え方 - @a4lg のそろそろ技術的日記
- Nerry@さんのツイート: "x64ってデフォルトサイズが32bitになってて ・暗黙的に64bitで解釈される命令 ・32bitと64bitでそれぞれ意味のある命令 ・実質的に64bit専用なのに64bitの明示が必要な命令 が混在してるんだよね"
- Kazuho Okuさんのツイート: "VMとかステートマシン書いてると、分岐先予測があたるようにコールサイト(分岐元)を複数に分けるのは常套手段ですよね?"
- Kazuho Okuさんのツイート: "詳しくはこのへん https://t.co/owIgORoNEy"
- assembly - X86 prefetching optimizations: "computed goto" threaded code - Stack Overflow
- Kazuho Okuさんのツイート: "絶対アドレスやip相対の無条件分岐命令が、それ以外の分岐命令と同様にbtbを消費するのかは気になってる(実務上はそこまでシビアなコードは書かないから気になるどまりなんだけど)。cpu的にはそこ節約することは可能だと思う一方、そこがんばるかわりにbtbのエントリ増やしてそうでもあり"
- Kazuho Okuさんのツイート: "僕はデータキャッシュやTLBよりも圧倒的に分岐予測を気にしてコード書いてる。キャッシュはb-wayだから一個あてなくてもペナルティは発生しにくいんだけど、あたりにくい条件分岐は一個ホットパスにおいただけで確実にペナルティ食う… "
- 成瀬さんのツイート: "CPUの気持ちって分岐予測とキャッシュかなぁって感じだけど、パフォーマンスカウンターを読めるようにならないとだめかなぁってところでとまっている"
- 島鉄雄さんのツイート: "https://t.co/cpb2LfGJV6 Zen 2が最強の分岐予測を実装してIPCが大幅に向上したようだけど、やっぱり条件分岐自体がコードを遅くする原因だから、なるべくcmovになるようにコーディングすべきなんだよね。 試したら2つ目の書き方がcmovになった。 (gcc -Ofast でコンパイルした)… https://t.co/PJDhXk3Hk8"
- Nerry さんはTwitterを使っています: 「滅多に使われないDFのために要所要所にCLD命令を配置しなければならないx86のstring命令の設計ミス」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「far retは低い権限レベルに戻るときと権限レベルが変わらないときで,SS/RSPをポップするかどうかが切り替わるの知らなくて数十分ハマった」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「関数コールが即値アドレス,変数読み書きがRIP相対になるのはなぜという話。callは即値としてRIPを基準にしたオフセットを取るが,movはRIP相対とするためには[rip+...]のような形式のアドレッシングが必要だから,逆アセンブルしてみるとcallは即値コール,movはRIP相対に見えるだけでは?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「えー aes128gcm、パケットサイズが 1KB とかになると i7-4870HQ (4th gen Core i7) と Atom x5-Z8350 (Cherry Trail) でスループットが10倍違うのマジですか。。。通常のワークロードだと4倍くらいなのでビビってる」 / Twitter
- mattnさんはTwitterを使っています 「Windows で動く x86/x64 アセンブリの REPL。 / “GitHub - zerosum0x0/WinREPL: x86 and x64 assembly "read-eval-print loop" shell for Windows” https://t.co/UnLQMtDh1V」 / Twitter
- zerosum0x0/WinREPL: x86 and x64 assembly "read-eval-print loop" shell for Windows
- Miura HidekiさんはTwitterを使っています 「意味がわからなかったけど、PC8001のマシン語モニターの1行アセンブラみたいなものか」 / Twitter
- ロボ太さんはTwitterを使っています 「SIMD化をすると早くなったり遅くなったりするぞい。」 / Twitter
- InstLatX64さんはTwitterを使っています 「@mjcharney refreshed #Intel XED. These #AlderLake and #SapphireRapids datafiles detail the #GoldenCove and #Gracemont ISA capabilities https://t.co/nyQ0LEZKRv https://t.co/5vPFG6JTiW https://t.co/fJgfOCa74v」 / Twitter
- DQNEOさんはTwitterを使っています 「* ジャンプ先未定の可変長命令を、未決定リストに登録 * 未決定リストのメンバーについて、相対距離を特定できるものは卒業扱いにする * 相対距離が未定でもレンジ(min,max)がわかれば命令長は決定可能 * 「命令長が決まった」と「ジャンプ先が決まった」を別の状態として扱う」 / Twitter
- DQNEOさんはTwitterを使っています 「以上の処理を、メンバーが全員卒業できるまで無限ループ という自作アルゴリズムで動かしてみたら見事に全ジャンプ命令を決定できた。」 / Twitter
- Intel® Intrinsics Guide
- asmjit/asmjit: Machine code generation for C++
- intelxed/xed: x86 encoder decoder
MASM
- MASM32によるアセンブラ入門:パート1 - インターネットコム
- Win32 MASM プログラミング入門
- VC++のデバッグモードとリリースモードの違いについて。 - VC++を使って... - Yahoo!知恵袋
- visual studio 2013で「最適化コンパイルのオプションを切る」ってどうすれば... - Yahoo!知恵袋
- Visual C++ 2010 express のインラインアセンブラのOFFSET演算子に... - Yahoo!知恵袋
- CX's Hello, World! » Hello, MASM World!
- MASM のデータ型
- MASM のデータ型
- MASM の 実行時比較演算子,TYPE演算子, 他
- Microsoft Macro Assembler のメモ セグメント
- Entis Laboratory
- Microsoft Macro Assembler のメモ モデル
- MASM 6.1 Documentation
- MASMReference.pdf
MASM 以外
Yasm
- The Yasm Modular Assembler Project
- Libyasm · yasm/yasm Wiki
- yasm/yasm: Yasm Assembler mainline development tree
- Yasm - Wikipedia
- yasm/COPYING at master · yasm/yasm
- Amd64 · yasm/yasm Wiki
- Libyasm · yasm/yasm Wiki
- libyasm: File List
- yasm-doc/manual.txt at master · yasm/yasm-doc
- Chapter 16. win64: PE32+ (Microsoft Win64) Object Files
- Win64object · yasm/yasm Wiki
- Programmerreferences · yasm/yasm Wiki
- Codeviewdebug · yasm/yasm Wiki
- Dwarfdebug · yasm/yasm Wiki
- Faq · yasm/yasm Wiki
- Visualstudio2005 · yasm/yasm Wiki
- yasm-1.3.0
- yasm-1.3.0
- Yasmのコンパイル&インストール お気に入りの動画を携帯で見よう
- 猫科研究所 - 今更MinGW 2009.06(5) nasm,yasm
- 1.7. Supported Debugging Formats
- Yasm User Manual
- Yasm 1.2.0 - The Yasm Modular Assembler Project
- x86 - Debugging assembly code created with yasm - Stack Overflow
- c++ - How can I use gdb to debug code assembled using yasm? - Stack Overflow
- Ubuntu Manpage: yasm - The Yasm Modular Assembler
NASM
- Netwide Assembler - Wikipedia
- Netwide Assembler - Wikipedia
- NASM
- Public Git Hosting - nasm.git/summary
- NASM
- NASM - The Netwide Assembler
- NASMとMASMの違い - その他(プログラミング・開発) 解決済み| 【OKWAVE】
- https://web.archive.org/web/20100719062549/http://www.yuasa.kuis.kyoto-u.ac.jp:80/~nobu/study/nasm/chap2.html
- NASM - The Netwide Assembler
- nasmのバグ? - 借り初めのひみつきち
- WindowsでNASMを使ってアセンブラを動かしてみる - Qiita
- アセンブラ環境 NASMとALINK - Namareba食べたい
- アセンブリでWin32APIを呼んでみよう! | Developers.IO
- 南関東開発機構 : アセンブリ言語でWindowsプログラミング
- アセンブリ言語入門 | nasmの使い方-4 | サラリーマンがハッカーを真剣に目指す
- NASM - The Netwide Assembler
GAS
- Linux のアセンブラー: GAS と NASM を比較する
- KMC Staff Blog:gas のインテル構文
- GNU アセンブラ - OS Project Wiki
- GASとNASMとNASKについて - Project_Rena_( unofficial plan : shoko ) - Seesaa Wiki(ウィキ)
- GAS と NASM ではどちらが使い易いのでしょう? - 「はじめて読む8086... - Yahoo!知恵袋
- GAS_基本書式 CapmNetwork
- Using as: Pseudo Ops
- Using as: i386-Dependent
- Using as - Assembler Directives
- 日記 (2017 年 7 月中旬)
- 日記 (2017 年 7 月中旬)
- uchanさんはTwitterを使っています 「https://t.co/xIXWlggjpu これが答えっぽい。GNU asはqword==8として解釈するから push qword [rax]は push 8 [rax] に解釈されるらしい。 おそらくAT&T記法によるところのpush 8(%rax)の意味になっていると思われる。これなら筋が通る。」 / Twitter
- assembly - Gnu assembler gives unexpected memory operand - Stack Overflow
Xbyak
- XBYAK
- herumi/xbyak: a JIT assembler for x86(IA-32)/x64(AMD64, x86-64) MMX/SSE/SSE2/SSE3/SSSE3/SSE4/FPU/AVX/AVX2/AVX-512 by C++ header
- xbyak/readme.txt at master · herumi/xbyak
- Xbyakで始めるx86(IA-32)入門 (mitsunari@cybozu labs)
- 暗号の世界最速実装を目指す ── 光成滋生 - Cybozu Inside Out | サイボウズエンジニアのブログ
- S.F. Blog:Xbyakのしくみ
- Xbyakで簡単な関数を実行時に生成する - Kludge Factory
- C++/Xbyak - discypus
- Xbyakの紹介とその周辺
- melancholic afternoon
- Function Calling Convention (x86-64) - Qiita
- assembly - How to generate plain binaries like nasm -f bin with the GNU GAS assembler? - Stack Overflow
Wikibooks
- X86アセンブラ/x86アセンブラ - Wikibooks
- X86アセンブラ/GASでの文法 - Wikibooks
- X86アセンブラ/MASMでの文法 - Wikibooks
- X86アセンブラ - Wikibooks
通信用語の基礎知識
- オペコード (IA-32) ‐ 通信用語の基礎知識
- オペランド ‐ 通信用語の基礎知識
- ModR/M ‐ 通信用語の基礎知識
- SIBバイト ‐ 通信用語の基礎知識
- 命令プリフィックス ‐ 通信用語の基礎知識
- REXプリフィックス ‐ 通信用語の基礎知識
- REX.W ‐ 通信用語の基礎知識
- プリフィックス ‐ 通信用語の基礎知識
- XOPプリフィックス ‐ 通信用語の基礎知識
- VEXプリフィックス ‐ 通信用語の基礎知識
- EVEXプリフィックス ‐ 通信用語の基礎知識
- Intel AVX ‐ 通信用語の基礎知識
- Intel AVX2 ‐ 通信用語の基礎知識
- __m256 ‐ 通信用語の基礎知識
- Intel AVX-512 ‐ 通信用語の基礎知識
- __m512 ‐ 通信用語の基礎知識
- FMA3 ‐ 通信用語の基礎知識
- FMA4 ‐ 通信用語の基礎知識
- HLE ‐ 通信用語の基礎知識
- RTM ‐ 通信用語の基礎知識
- AMD64 ‐ 通信用語の基礎知識
- cpuid (x86) ‐ 通信用語の基礎知識
Wikipedia
- x86 calling conventions - Wikipedia
- 呼出規約 - Wikipedia
- Calling convention - Wikipedia
- Application Binary Interface - Wikipedia
- Application binary interface - Wikipedia
- コールスタック - Wikipedia
- Call stack - Wikipedia
- 符号拡張 - Wikipedia
- 3DNow! - Wikipedia
- SIMD - Wikipedia
- コンピュータアーキテクチャの話(314) Teslaアーキテクチャが採用した「SIMT方式」 | TECH+
- 単一命令列・複数データ(SIMD: シムディー)の並列 - Qiita
- x86 - Wikipedia
- x64 - Wikipedia
- プロテクトモード - Wikipedia
- 積和演算 - Wikipedia
- 80x86 の命令の自己書き換え (#1559838) | もうやらなくていい昔のコーディングテクニックあれこれ | スラド
- 自己書き換えコード - Wikipedia
- Self-modifying code - Wikipedia
Qiita
- アセンブラに手を出してみる - Qiita
- アセンブラを混ぜてコンパイルするとスタックが実行可になってしまう話 - Qiita
- C言語の勉強がてら、CASL II処理システムを実装した話 - Qiita
- EVEX - Qiita
- Pelemay 0.0.10 で生成されるアセンブリコード - Qiita
- 2で割ることと3で割ること - Qiita
- IA32(x86)汎用命令対応のアセンブラ実装方法(1) - Qiita
- IA32(x86)汎用命令対応のアセンブラ実装方法(2) - Qiita
Twitter
その他
- ひらナツさん@散文家さんのツイート: "AVXとSSEの命令がミックスされて実行されると、SSE命令の過去互換性を保つために、SSE命令が遅くなる(エミュレートされた状態になる?)AVXのレジスタ上位をクリアする命令をAVX実行後に実行してやると、もとのSSE命令に戻る。 #spkai"
- インターネットの闇さんのツイート: "@func_hs load effective addressですね~~~"
- InstLatX64さんのツイート: "A Venn-diagram to understand the 12 levels of #AVX512 in #Intel processors https://t.co/5cV9nTDTRb"
- Fadisさんのツイート: "128bit整数があると64bitのアドレスにタグやカウンタをくっ付けた物をatomic演算で書き込む(今日の主要な64bitプロセッサは128bit atomic演算をサポートしている)のを高級言語で書けるんだ。これができるとロックフリーデータ構造におけるABA問題をあまり頭を使わずに解決できる"
- ロボ太さんのツイート: "アセンブリの話になると必ず「アセンブラ言語は誤りで、アセンブリ言語が正しい」という人が湧いて、それはいいんだけど、とりあえずIBMは「Assembler language」と呼んでることと、ARMが「Unified Assembler Language (UAL)」を規定していることは知ってても良いかもしれない。"
- ロボ太さんのツイート: "まぁARMは「アセンブリ言語(assembly language)」派だけれども。なのになぜ「UAL」が「Unified Assembly Language」ではなく「Unified Assembler Language」の略なのかは知らない。"
- uint256_tさんはTwitterを使っています: 「関数呼び出し時に保存されないといけない(仮想)レジスタがどれかを判断するには, 呼び出しの周りで個々レジスタの生存期間を参照して判断すればいいかと思っていたけど, そもそも呼び出しがレジスタの値を破棄する物と扱えば, レジスタ退避のための処理と統合できるという(当たり前の)事実に気づいた.」 / Twitter
- hatsugai∅PRINCIPIAさんはTwitterを使っています 「32 bit 整数値を 1 bit ずつ回転させた 32 個の整数をすべて加えてから 2 の補数をとると、はじめの整数に含まれていた 1 の数(popcount)になる。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t コードの実行時間や利用可能な並列性をモデル化したアセンブラがあると良いなと思っています。」 / Twitter
- uint256_tさんはTwitterを使っています 「@zacky1972 モデル化というのはどういう意味でしょうか」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uint256_t たとえば命令スケジューリングをするときの指針になるような機能が欲しいと思っていて,いろいろな命令の並びに対して実行時間をシミュレーションできるようなモデルがあると良いんじゃないかと思いました。」 / Twitter
- uint256_tさんはTwitterを使っています 「@zacky1972 可能な命令の並び方に対して一つずつベンチマークできると便利かもしれませんね」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「MASM/GAS/Apple AS/ARM ASMのフォーマットの違いで痛い目にあっている自分としては、特殊なCPU命令ごときでアセンブラを使うのは得策ではないという知見。できるかぎりintrinsicを使うべき」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「GNU AS/Apple AS/ARM RealView (Microsoft) ASとARMであっても三種類のシンタックスがあるんだから、ARMでもnasm的なの必要だよな」 / Twitter
分岐
- uint256_tさんはTwitterを使っています 「フレーム内での位置を決定する前に命令を選択しているから, s0-10000みたいな位置に変数が置かれると, sd a5, -10000(s0) というinvalidなアセンブリが生成されてしまう.」 / Twitter
- uint256_tさんはTwitterを使っています 「先にとても雑にフレームの位置を計算すればいいのか??」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t これは分岐命令とかも同じじゃないですか? こういう問題は、命令を生成した後に自分が生成した命令をスキャンし直して、大きすぎるオフセットを持ってる命令を複数の命令列で置き換えるという処理を入れるしかないような。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@uint256_t しかも分岐命令だと収束するまで繰り返し再スキャンしないといけないですよね。1つの命令を複数命令列に置き換えることで、既存の命令のジャンプ先へのオフセットが若干大きくなることがありえるので。」 / Twitter
- msyksphinz_devさんはTwitterを使っています 「LLVMだとeliminateFrameIndex()がその修正を担いますかね。 MachineInstrの状態でオフセットを計算し、即値が入り切らなければ、そこでさらに1命令突っ込みます。」 / Twitter
AT&T 記法
- Tsukasa #01 [要出典]さんのツイート: "AT&T 記法、オペランドの向きが一般的なアセンブリ言語と逆なことまでは許せる。が、lea 命令をあんな形式にしたのはどう頑張っても擁護できない。"
- Tsukasa #01 [要出典]さんのツイート: "lea 命令だけじゃないな。レジスタ 2 個以上がかかわる全てのアドレッシング形式 (特に Intel シンタックスでいう [4*ecx+esi+8] のような表記は AT&T シンタックスだと……)。"
- Tsukasa #01 [要出典]さんのツイート: "[4*ecx+esi+8] → 8(%esi, %ecx, 4) …………。"
- Tsukasa #01 [要出典]さんのツイート: "これは重要なことだと思うけど、アセンブリ言語は機械語そのものじゃない。"
- rnurachueさんのツイート: "disasmすると落ちる情報もあるんやで(asmの表現力によるかもしれないが)"
- rnurachueさんのツイート: "アーキによるかもしれんな"
- Tsukasa #01 [要出典]さんのツイート: "まぁアーキ次第ではあるけど言いたいことはよく分かる。ジャンプ幅を意図的に決められる nasm のような処理系でも、8B 50 00 と 8B 90 00 00 00 00 は区別する方法が無いし、disasm 結果のアセンブリ部分を使うとバイナリが変わる。"
- Tsukasa #01 [要出典]さんのツイート: "あるいは x86 における 87 c0 と 90。このときは ndiasm はバイナリの違いをちゃんと復元するが、nasm が気を利かせて前者を 90 にコンパイルし直す。"
- herumiさんのツイート: "よく使われる命令はよいですがfsubrp, fsubpのAT&T記法の扱いはバグだと思いました(昔めちゃくちゃはまりました)。後、例えばvcvtpd2dq xmm0, yword [eax+32]といった新しい命令がどうなるかいちいち調べないといけないのも二度手間です。Intelが本家なのだからそれに従うのがよいと思います。… https://t.co/bFmd2lZY9j"
- herumiさんのツイート: "補足するとIntelでのfsubrpはfsubrp st1,stの略(rはreverseでバイトコードはde e1)で意味はstからst1を引いて結果をst1に格納してレジスタポップだけどAT&Tでは何故かrがないfsubp %st, %st(1)になる。逆にfsubpはfsubrpになる。引数の順序だけでなく命令も入れ代わる。 https://t.co/hPLHkN7O1o"
インラインアセンブリ
- Hideyuki Tanakaさんのツイート: "オッ(´・_・`) / “[Pre-RFC]: Inline assembly - language design - Rust Internals” https://t.co/GXv8c1KgHx"
- Hideyuki Tanakaさんのツイート: "rustのインラインアセンブリのstable化にあたって、gcc互換の実装じゃなくて、もうちょっとわかりやすくするような文法定義する動きがあるのか。現状の案では、文字列ベースで似たような感じではあるみたいだけど、どうせやるならVCとかのようなEDSLタイプがいいんすけどね~"
- Hideyuki Tanakaさんのツイート: "ただアレでやるには、ただバックエンドに文字列送るだけじゃなくて、引数とかのどれが書き換えられるとかそういうのの知識が必要になるから、コンパイラレベルでISAの知識が必要になるよな~まあそのほうが使い勝手はいいし、今時それぐらいはやってもいい気はするが。"
- Hideyuki Tanakaさんのツイート: "D言語もVCみたいなEDSL形式のインラインアセンブリ持ってるんすねえ。あれ新しいプロセッサに対応するときD言語のバックエンドにそれ用のコードを追加しなきゃいけないんすかね~(´・_・`)"
- Hideyuki Tanakaさんのツイート: "@ishitatsuyuki ふむふむやっぱあれはとりあえず必要だから入れてたけど理想の形ではなかったでしたか"
- 品川 高廣さんのツイート: "インラインアセンブラも -masm=intel を指定すれば Intel記法に出来ますよね。あまり見たことないですが。… "
- 技術書典4 け-51 x86-64-128さんのツイート: "Clangだと、インラインアセンブラの先頭行に.intel_syntax noprefixと書けば良いらしい。-masm=intelは不要。 https://t.co/8wRykdWsk3… "
- 品川 高廣さんのツイート: "gcc で Intel 記法を使うときはコマンドラインオプションで -masm=intel を付ける。clang で Intel 記法を使うときはインラインアセンブラの先頭で ".intel_syntax noprefix\n" と書く。両方やっておけば、gcc でも clang でもコンパイルできる。"
mov 命令
- 解答略さんのツイート: "昨晩からx86-80386のCPUをFPGAで自作してるんだけど、ようやくMOV命令が動いた。あと半日あればかなりの量の命令が実装できる気がする。FPGA慣れてきた。#低レイヤ https://t.co/L7oZSvx4aF"
- Fadisさんのツイート: "x86のmov命令は1命令だけでチューリング完全の要件を満たせる事が知られている( https://t.co/01OSrCDOTX )し、mov命令が動くCPUは完全なCPUと言って良いのでは"
- Fadisさんのツイート: "そして驚くべき事に、実際にmovしか吐かないC言語コンパイラ(フロントエンドはLCC)を作ってしまった猛者がいるらしい / M/o/Vfuscator https://t.co/DyXoBYQ4T7"
- Mov is turing-complete
- xoreaxeaxeax/movfuscator: The single instruction C compiler
即値埋め込み
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「OpeLaをx86-64からAArch64に移植していて分かったのは、即値を使う命令でAArch64だと余分にレジスタが必要になり、余分なpush/popが必要になって困ることがしばしばあること。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@uchan_nos 複数回演算とかコード上のをPC相対とか色々方法はあるけど。よく使う数値は命令に埋め込めるはず。」 / Twitter
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@shinji_kono 「コード上のをPC相対」っていうのは、コードの他の部分に埋め込まれた即値をldrで取ってくるってことですか?なるほど……」 / Twitter
@7shi
- 七誌さんのツイート: "VAXのアセンブラを作り始めた。まずはオペランドのパーサから。ランダムなバイト配列を逆アセンブルして、それをアセンブルして元に戻るかで確認。乱数ではなく定理証明するべきだと言われそうだけど…"
- 七誌さんのツイート: "機械語を調べるために1行アセンブルはよくやっていたのだけど、REPLがあれば効率化できるという発想はなかった。だからrappelを見て驚いた。完全にインスパイアされた… https://t.co/EbLbs6ap2d"
- 七誌さんのツイート: "総当たりで逆アセンブラを作ろうとしたとき、先に分析を済ませてからコードを書こうとしたのは、あまり良くなかったと気付いた。分析と並行してコードを書いて、うまくいった部分は分析対象から除外していかないと、複雑なものではなかなか収拾が付かない。"
- 七誌さんはTwitterを使っています: 「RETRO UNIX 8086(UNIX V1の8086移植)でもMulticsと同じようなlist形式を見付けました。私は知らなかったのですが、どうやらこういう形式があるようですね。 https://t.co/i2qycHaDts」 / Twitter
- https://www.singlix.com/runix/runix8086/unix.lst
- SODA NoriyukiさんはTwitterを使っています: 「@7shi https://t.co/rBSLFpGfPi の Example code とか https://t.co/75vJ7L8XQd みたいなアセンブリ言語と機械語を併置する奴ですか? アセンブリ言語でプログラミングし、機械語を見ながらデバッグする時代には一般的でした。」 / Twitter
- Zilog Z80 - Wikipedia
- Assembly language - Wikipedia
- ぬん。さんはTwitterを使っています: 「@7shi @n_soda linuxでも、 objdump --disassemble <binary> するとでてくる形式ですかね。(コメントはないですが)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@7shi @amasawa_seiji マニュアル見てみたら GNU as でも -al オプションで出すことができるみたいですね。」 / Twitter
@kazuho
- Kazuho Okuさんのツイート: "@nalsh @shyouhei @n_soda オーバーフローは例外的なケースだから、cmovより分岐予測あてるほうが良いのでは?"
- Kazuho Okuさんのツイート: "mov eax,eax はx86-64だとnopじゃなくてraxへのゼロ拡張なのか #spkai"
- Kazuho Okuさんのツイート: "@kazuho で、ymmいじられたかどうか覚えてるのは、コンテクストスイッチの際に退避すべき量を最小限にするためじゃないのかな #spkai"
- Kazuho Okuさんのツイート: "任意順序でのビット列並び替えが20命令前後で書けるのか / “Bit manipulations using BMI2 — bitbashing” https://t.co/aAQRwNaQS0"
- Bit manipulations using BMI2 — bitbashing
- Kazuho Okuさんのツイート: "direct-threaded codeの効果はNehalem世代で10.1%だったのがHaswellで2.8%に減少 / “Branch Prediction and the Performance of Interprete…” https://t.co/R9loLePdjF"
@kariya_mitsuru
- ngtkさんのツイート: "@uchan_nos 64bitモードで32bit命令を実行すると64bitレジスタの上位32bitは0クリアされるとかそういう話ですか?"
- OS作れないマン 技術書典3 あ11企さんのツイート: "REXプレフィックス付けなくても上位32ビットクリアされて嬉しいなーということだな。汚い。"
- disassembly - xor eax, eax in x64 - Reverse Engineering Stack Exchange
- 置き引きにあったマヌケな鳥頭さんのツイート: "@uchan_nos s/push cs/push es/ で、push es の前にオペランドサイズプレフィックス(0x66)付けたら16ビットでプッシュ出来たりしません?"
- 置き引きにあったマヌケな鳥頭さんのツイート: "@tenpoku1000 @uchan_nos あ~、push es は 8086/88 の時からあります"
- 置き引きにあったマヌケな鳥頭さんのツイート: "@tenpoku1000 @uchan_nos pop cs はテロ行為っぽいですからね…"
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C++例外処理の詳細 (2013年)。やや古い記事でgcc/x86のケースを対象にしているが、ABIからスタックフレームの復元までアセンブリレベルで説明している。 (新山は読む気なし) https://t.co/Rez7LkG2Kx」 / Twitter
- Infinite monkey - Nico Brailovsky's blog: C++ exceptions under the hood
- Introduce assembler macros by DQNEO · Pull Request #22 · DQNEO/minigo
- A bug story: data alignment on x86
- NOP命令と都市伝説
- タネ明かし: Whitespaceコンパイラを作った話の裏側 | κeenのHappy Hacκing Blog
- なぜCPUメーカはレジスタの数を増やさず、最先端の64ビットCPUでも16個しかないのですか? - Quora
- 富岳のディープラーニング処理を支えるJITコンパイラ「Xbyak_aarch64」誕生秘話:インタビュー|gihyo.jp … 技術評論社
- 実行した命令数をカウントする - Fixstars Tech Blog /proc/cpuinfo
- 2の補数表現をちょっと違った見方をしてみる - Fixstars Tech Blog /proc/cpuinfo
- takenobu-hs/cpu-assembly-examples: CPU assembly examples
Linker
その他
- ABI Navigator
- ソフトウェアの互換性と僕らの"User-Agent"文字列問題|Rui Ueyama|note
- 「悪い方が良い」原則と僕の体験談|Rui Ueyama|note
- LLVMの新しいリンカLLDがLLVM 4で導入へ
- LLD - The LLVM Linker — lld 6 documentation
- The ELF and COFF Linkers — lld 6 documentation
- LLVM Link Time Optimization: Design and Implementation — LLVM 6 documentation
- Winux Project 7
- KMC Staff Blog:GCCでリンク時に不要なコードとデータを削除する方法
- 2011年11月2日 脱GPLとBSDライセンスツールチェーン - 最後の砦「リンカー」:FreeBSD Daily Topics|gihyo.jp … 技術評論社
- Linkers and Loaders
- カジュアルに実行時リンク&ロードする - 事例2 - 関数を呼んでる関数を呼びたい
- リンカ
- Terse Executable Format - PhoenixWiki
- CRubyとLink Time Optimizationについて - なるせにっき
- melancholic afternoon
- リンカの役割 自分メモメモ - Qiita
- ⚙ D69607 Add a feature to explain why some file gets included to the linker's output
- カジュアルに実行時リンク&ロードする - カジュアルに実行時リンク&ロードする
- SwiftコンパイラのAuto-linkingとそれを直した話 - kateinoigakukunのブログ
PE
その他
- Hexacorn | Blog
- PEファイル (PortableExecutableFile)(2) – ヘッダについて « 来栖川電算
- PE(Portable Executable)ファイルフォーマットの概要
- Exeファイルを解読してみよう(後編)
- 日記移転先(゜▽゜)::EXEヘッダ/PEヘッダ/NEヘッダ
- リンカ作ろうJP$1 - yutopp's blog
- EXEファイルの内部構造(セクション) (1/3):CodeZine(コードジン)
- Windowsプログラミング その1
- d4.princess.ne.jp/diary/201411.html
- PEファイルの謎
- linker_kernelvm5.pdf
- C言語/システム/実行ファイル/COFF | LaboICT.
- Tiny PE
- 最小のEXEファイル? - 借り初めのひみつきち
- /DYNAMICBASE一問一答 « 他人の空似
- Windows support — lld 10 documentation
- windres - Google 検索
- i-saintさんはTwitterを使っています: 「VicualC++ は string literal は 16384 byte までという上限があるらしい。でかいデータを埋め込みたい場合 http://t.co/MJLnzo4E ここの Binary to MS COFF で .obj ファイルにしてリンクするといいっぽい。」 / Twitter
- Vortex's Utilities, Tools And Toys
- Tiny PE
- PEを理解したかったのでreadpeってものを作った - Qiita
- Effectiveさお
MS
その他
- DUMPBIN のオプション
- ValveTimeさんのツイート: "Former Microsoft Architect and MS-DOS Pioneer Mark Zbikowski joins Valve as a Software Engineer. https://t.co/Le02aK5LLS #valve https://t.co/9Us2aIWZjF"
- savaさんのツイート: "https://t.co/xtJD4LzUGi おいマジかよ… (MS-DOSのメモリ周りを見る(弄る)プログラムを作った人なら誰でもメモリブロック先頭にあるMやZの文字のことをご存知のはずですが、これってこの人のイニシャルなんですよ…)"
- Mark Zbikowski - アメリカ合衆国 グレーター・シアトル エリア | プロフィール | LinkedIn
- 任意の64ビットバイナリにHigh Entropy ASLRを適用する設定を見つけるまでの備忘録 - Togetter
- Address Space Load Randomization
- PE Format - Windows applications | Microsoft Docs
- Peering Inside the PE: A Tour of the Win32 Portable Executable File Format | Microsoft Docs
- Windows ISV Software Security Defenses | Microsoft Docs
- /BASE (Base Address) | Microsoft Docs
- /HIGHENTROPYVA (Support 64-Bit ASLR) | Microsoft Docs
- /DYNAMICBASE (Use address space layout randomization) | Microsoft Docs
- Migrating 32-bit Managed Code to 64-bit | Microsoft Docs
- C の装飾名の形式 | Microsoft Docs
- 重箱の隅のデバッグ(1) – インポートセクションで設定するブレークポイント – JAPAN Platform SDK(Windows SDK) Support Team Blog
- ImageHlp Structures - Windows applications | Microsoft Docs
- -SECTION (Specify Section Attributes) | Microsoft Docs
- LIB リファレンス | Microsoft Docs
- MSVC リンカー オプション | Microsoft Docs
- DUMPBIN リファレンス | Microsoft Docs
- /BASE (ベース アドレス) | Microsoft Docs
- /FIXED (固定ベース アドレス) | Microsoft Docs
- MSVC リンカー オプション | Microsoft Docs
- /LARGEADDRESSAWARE (大きいアドレスの処理) | Microsoft Docs
- /OPT (最適化) | Microsoft Docs
- /PROFILE (パフォーマンス ツール プロファイラー) | Microsoft Docs
- /ORDER (関数の順序) | Microsoft Docs
- Rui UeyamaさんはTwitterを使っています: 「VS2019でリンカが速くなったのは、間違いなくlldがMSリンカより何倍も速いのを見てMicrosoftが真剣になったからなので、間接的にもいろんな人の役に立ってると言えるかもなぁ。あと競争は重要だね。競争がないと重要なコンポーネントでも放置されがち。 https://t.co/3tHRSefWMB」 / Twitter
- Improved Linker Fundamentals in Visual Studio 2019 | C++ Team Blog
- Rui UeyamaさんはTwitterを使っています: 「まあ大幅な高速化が可能であるということが実証された後で、しかもそのソースコードを読んだりもできるという状況で、うちもエンジニアリングリソースを割いてキャッチアップしよう!とならないのは逆にありえないんだけど。」 / Twitter
- New Compiler Warnings for Dynamic Initialization and User Defined Sections | C++ Team Blog
CheckSum
- PE Checksum Algorithm的较简实现 - 011 - 博客园
- An Analysis of the Windows PE Checksum Algorithm - CodeProject
- RFC 1071 - Computing the Internet checksum
- RFC 1141 - Incremental updating of the Internet checksum
- RFC 1624 - Computation of the Internet Checksum via Incremental Update
- Standard PE checksum - Source Codes - rohitab.com - Forums
- windows research kernel(work) - Google 検索
鷲ノ巣
- PE ファイルについて (1) - IMAGE_DOS_HEADER - 鷲ノ巣
- PE ファイルについて (2) - IMAGE_FILE_HEADER - 鷲ノ巣
- PE ファイルについて (3) - IMAGE_OPTIONAL_HEADER - 鷲ノ巣
- PE ファイルについて (4) - IMAGE_SECTION_HEADER - 鷲ノ巣
- PE ファイルについて (5) - IMAGE_DATA_DIRECTORY - 鷲ノ巣
- PE ファイルについて (6) - 補足 - 鷲ノ巣
- PE ファイルについて (6.5) - 相対仮想アドレス - 鷲ノ巣
- PE ファイルについて (7) - エクスポート編 - 鷲ノ巣
- PE ファイルについて (8) - インポート 基本編 - 鷲ノ巣
Glamenv-Septzen.net
- 技術/Windows/PE(Portable Executable)フォーマットの実験 - Glamenv-Septzen.net
- 技術/Windows/PE(Portable Executable)フォーマットの実験/02, 再配置情報で遊ぼう! - Glamenv-Septzen.net
PE_FORMAT
- 目次
- 目次
- 1.基本概念
- 2. 概要
ファイルヘッダ
- 3. ファイル ヘッダ
- 3.1 MS-DOSのスタブ(イメージのみ)
- 3.2 シグネチャ(イメージのみ)
- 3.3 COFFファイル ヘッダ(オブジェクトとイメージ)
- 3.3.1 マシン タイプ
- 3.3.2 特性
- 3.4 オプション ヘッダ(通常はイメージのみ)
- 3.4.1 オプション ヘッダの標準フィールド(イメージのみ)
- 3.4.2 オプション ヘッダのWindows NT固有フィールド(イメージのみ)
- 3.4.3 オプション ヘッダのデータ ディクショナリ(イメージのみ)
- 4. セクション テーブル(セクション ヘッダ)
- 4.1 セクション フラグ
- 4.2 Grouped Sections(オブジェクトのみ)
- 5.2 COFFの再配置(オブジェクトのみ)
- 5. 他のファイル内容
- 5.1 セクション データ
- 5.2.1 タイプ インジケータ
シンボル情報
- 5.3 COFF行番号
- 5.4 COFFシンボル テーブル
- 5.4.1 シンボル名の表現
- 5.4.2 セクション番号の値
- 5.4.3 型の表現
- 5.4.4 ストレージ クラス
- 5.6. COFF文字列テーブル
- 5.5 補助シンボル レコード
- 5.5.1 補助形式1:関数定義
- 5.5.2 補助形式2:.bf および .ef シンボル
- 5.5.3 補助形式3:弱い外部参照
- 5.5.4 補助形式4:ファイル
- 5.5.5 補助形式5:セクション定義
- 5.5.6 COMDATセクション(オブジェクトのみ)
- 6. 特殊セクション
デバッグ情報
- 6.1 .debugセクション
- 6.1.1 デバッグ ディレクトリ(イメージのみ)
- 6.1.2 デバッグ タイプ
- 6.1.3 .debug$F(オブジェクトのみ)
- 6.1.4 .debug$S(オブジェクトのみ)
- 6.1.5 .debug$T(オブジェクトのみ)
- 6.1.6 Microsoft CodeView(r)デバッグ情報のためのリンカ サポート
- 6.2 .drectveセクション(オブジェクトのみ)
.idataセクション
- 6.4 .idataセクション
- 6.4.1 インポート ディレクトリ テーブル
- 6.4.2 インポート ルックアップ テーブル
- 6.4.3 ヒント/名前テーブル
- 6.4.4 インポート アドレス テーブル
再配置情報
- 6.5 .relocセクション(イメージのみ)
- 6.5.1 fixupブロック
- 6.5.2 fixupタイプ
- 6.8 .textbssセクション(イメージのみ)
アーカイブファイル形式
- 7. アーカイブ(ライブラリ)ファイル形式
- 7.1 アーカイブ ファイル シグネチャ
- 7.2 アーカイブ メンバ ヘッダ
- 7.3 第1リンカ メンバ
- 7.4 第2リンカ メンバ
- 7.5 長い名前メンバ
インポートライブラリの形式
- 8. インポート ライブラリの形式
- 8.1 インポート ヘッダ
- 8.2 インポート タイプ
- 8.3 インポート名の種類
- ダイジェストに含めないフィールド
- 付録:イメージ メッセージ ダイジェストの計算
アレ用の何か
- アレ用の何か
- アレ用の何か
- アレ用の何か
- アレ用の何か
CodeZine
- x86系CPUのネイティブコードを解析する (1/3):CodeZine
- プログラムからEXEファイルを生成してみよう (1/3):CodeZine
- EXEファイルの内部構造(セクション) (1/3):CodeZine(コードジン)
- EXEファイルの内部構造(PEヘッダ) (1/3):CodeZine(コードジン)
- Windows実行ファイルのバイナリ概要 (1/2):CodeZine(コードジン)
リソース
- 実行可能ファイルに新しいリソースを埋め込んじゃおう
- 実行可能ファイルに新しいリソースを埋め込んじゃおう
- 実行可能ファイルに新しいリソースを埋め込んじゃおう
DLL
MS
- LoadLibraryEx 関数
- GetProcAddress 関数
- FreeLibrary 関数
- FreeLibraryAndExitThread 関数
- DllMain 関数
- SODA Noriyukiさんのツイート: "thread local storage を持つ shared object を dlopen() したら、その TLS をスレッドライブラリに通知して各スレッドの TLS を拡張するみたいな処理がたぶん必要だよね? このあたりは完全にOSおよびそのバージョン依存になるから、OS付属のrtldを拡張する方針にしないと死ぬばっかじゃないかなあ。"
- NaOHaq(仮性ソーダ)さんのツイート: "Windows だと、thread が作られたときにDllMain関数 https://t.co/hM1IbMgqiW が呼ばれてそこで処理しろってなってるっぽいですね… "
- DLL の植え付けの脆弱性のトリアージ – 日本のセキュリティチーム
- Dynamic-Link Library Search Order (Windows)
- Load Library Safely – Security Research & Defense
- PROCESS_MITIGATION_IMAGE_LOAD_POLICY structure (Preliminary)
- Masaru IritaniさんはTwitterを使っています: 「今日のチーム内勉強会では、DllMain でお行儀の悪いことをするとシステムのハングを引き起こせることを学びました。時間ができたら試してみましょうか。 https://t.co/OaYB0NuVXu」 / Twitter
- Another reason not to do anything scary in your DllMain: Inadvertent deadlock | The Old New Thing
- yohさんはTwitterを使っています 「DLL の植え付けの脆弱性のトリアージ https://t.co/1yfe3WYY23 "DLL planting" とも言うのか... hijackingやpreloadingしか聞いたことなかった」 / Twitter
- DLL の植え付けの脆弱性のトリアージ - Microsoft Security Response Center
- Dynamic-Link Library Best Practices - Win32 apps | Microsoft Docs
- Dynamic-Link Library Redirection - Win32 apps | Microsoft Docs
- GetFullPathNameA function (fileapi.h) - Win32 apps | Microsoft Docs
- SetSearchPathMode function (winbase.h) - Win32 apps | Microsoft Docs
- SetErrorMode function (errhandlingapi.h) - Win32 apps | Microsoft Docs
- Dynamic-Link Library Search Order - Win32 apps | Microsoft Docs
- ダイナミックリンクライブラリのセキュリティ-Win32アプリ| Microsoft Docs
Export Address Table
- ITセキュリティのアライ出し (46) EAF出撃す | マイナビニュース
- 6.3.2 エクスポート アドレス テーブル
Import Address Table
- IAT:インポートアドレステーブルについて - Log.i53
- 騙せるPE解析ツールのImport API表示機能(2016-11-28)
- マニュアルアンパックのIAT再構築を手動でやった話 - Qiita
- wivern.com | 「リバースエンジニアリングバイブル」勉強メモ#5
- PEの.idataをアセンブラで考える - 七誌の開発日記
- GOT、PLTとIAT - 脱力系日記
- 騙せるPE解析ツールのImport API表示機能(2016-11-28)
- IAT | すなのかたまり
- DSAS開発者の部屋:Windowsに土足で乱入?! ~ API フックのための予備知識
- DSAS開発者の部屋:Windowsに土足で乱入?! ~ API フックのための予備知識(続き)
- コグノスケ
- インポートアドレステーブルと API フック - Web/DB プログラミング徹底解説
ASLR
- 第三話:ASLRの意味をデバッガで見てみる|トリコロールな猫|note
- WindowsでASLR(Address Space Layout Randomization)を確認してみる。 - バイナリの歩き方
- 本の虫: Windows 7におけるプリコンパイルドヘッダーのエラーについて
- WindowsのASLRに脆弱性、米セキュリティ機関が対策呼び掛け - ITmedia エンタープライズ
- JVNVU#91363799: Windows 8 およびそれ以降のバージョンにおいて、アドレス空間配置のランダム化が適切に行われない脆弱性
- Positive Technologies - learn and secure : Windows 8 ASLR Internals
- Proj 9x: Understanding PE Files and ASLR on Windows (15 pts.)
- 設定によりWindows8以降のASLRが不適切に行われる可能性 | SCTブログ | 三和コムテック
- -DYNAMICBASE (使用してアドレス空間レイアウトのランダム化) | Microsoft Docs
遅延ロード
- /DELAYLOAD (遅延読み込みのインポート)
- C言語系/memos/VC++/08, DLLの遅延読み込み(delay loading) - Glamenv-Septzen.net
- C言語系/memos/VC++/08, DLLの遅延読み込み(delay loading) - Glamenv-Septzen.net
- DLLの遅延読み込みをフックする | ::Hikaru's blog
- VS2008/VS2010 memo
- リンカーによる DLL の遅延読み込み
- 遅延読み込みする DLL の指定
- DLL の遅延読み込みの制約
プリロード
golang の DLL プリロード対策
- Vim界の声の大きい人さんのツイート: "ちなみに golang は既に DLL プリロード対策がされていて、起動時に LoadLibraryEx と AddDllDirectory が使える環境はそれが設定され、使えない環境はシステム DLL は直パスでロードされてます。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "?? System32配下のDLLは沢山あると思いますが、全てロード or それとも限定する選択基準があるのでしょうか? >システム DLL は直パスでロード… "
- mattnさんのツイート: "限定的です。ここに列挙されてる DLL のみ、フォールバック時に直パスで読まれます。 https://t.co/t2YOTqsoyN… "
- go/zsyscall_windows.go at master · golang/go
- Shirouzu Hiroaki(白水啓章)さんのツイート: "参考になります。 この選択の基準があれば知りたいですね。… "
- mattnさんのツイート: "僕はその際の改善には関わらなかったですが、眺めてた所だと、golang の標準パッケージが使っている DLL を列挙した様でした。なのでユーザが追加でロードする物に関しては(AddDllDirectoryが使えない環境は)問題が起きうると思います。これは仕方ないかなと思ってます。… https://t.co/GEWqnZHWHz"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、了解です。exeの横に危険なdllが置かれるのは、主にインストーラなので、そうでなければ、そこまで神経質になる必要はないですね。… "
- mattnさんのツイート: "ちなみにその際の issue がこちらです。 https://t.co/7oGxhnRDhy… "
- syscall: guard against Windows DLL preloading attacks · Issue #14959 · golang/go
- JVNTA#91240916: Windows アプリケーションによる DLL 読み込みやコマンド実行に関する問題
- 第35回 2017年6月~EOLなWindowsへの修正ファイル提供と,DLLプリロードの問題:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
- WindowsアプリケーションにおけるDLL読み込みに関する脆弱性について
- UNLHA32.DLLにおける任意のDLL読み込みに関する脆弱性
- Windows DLLプリロード攻撃の新しいパターンと防御法
- Windows Defender Advanced Threat Protection で反射型の DLL 読み込みを検出 – 日本のセキュリティチーム
- 第43回 2018年2月~いまも発見される,DLL読み込みに関する脆弱性~どう悪用されるのか?&対処は?:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
- WindowsアプリケーションにおけるDLL読み込みに関する脆弱性について
- Windows DLLプリロード攻撃の新しいパターンと防御法
- 脆弱性ポータルサイトJVN、Windows 7に存在する“DLLの植え付け”脆弱性を注意喚起 - 窓の杜
- LoadLibraryAによるDLL読み込み順序とDLLプリロード攻撃 - Qiita
- DLLプリロード攻撃のチェッカーをリリース « 他人の空似
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ダウト。2010年頃のDLLハイジャックと2016年以降のそれは別物。「3-4年も経つのに…」が正解。(トレンドマイクロがダメダメな点は賛成) JPCERT戸田さん「DLL読み込みの問題を読み解く」 https://t.co/w47xvkATgf 私「Windows DLLプリロード攻撃の新しいパターンと防御法」 https://t.co/prt4LLm1oH https://t.co/UdQEW4GX8j」 / Twitter
- DLL読み込みの問題を読み解く
- Windows DLLプリロード攻撃の新しいパターンと防御法
- DLL プリロード攻撃を防止するためのライブラリの安全な読み込み
- Process Monitor | Microsoft Docs
- DLLの検索
インジェクション
Rapport
- なかのん&マジックさんのツイート: "なんか、Rapport入ってるとFirefoxクラッシュするとかいう話が昔あった気がする。"
- Makoto Kato ︎︎さんのツイート: "Firefoxのバージョンが上がる度にクラッシュしてた。IBMに直してよって投げてたけど、最近はそんな聞かない… "
- Makoto Kato ︎︎さんのツイート: "DLL blocklistを読み込む前にDLLが注入される作りで、ブロックできないんだよね"
- Makoto Kato ︎︎さんのツイート: "ああいうセキュリティ対策系のソフトで一番素直なつくりはMSなんで、MSのが一番いいと思うよ"
- Makoto Kato ︎︎さんのツイート: "何処かのベンダーのやつは、注入したDLL内でクラッシュするんでFirefoxが強制終了しまくる話があって、いろいろ問い合わせたら聞いたこないっていってたけど、体験版ですぐ再現する話だったのは、ホントイラついた"
- Makoto Kato ︎︎さんのツイート: "アドオンごとブロックリスト行きにしたら、直してくれたけどさ"
- なかのん&マジックさんのツイート: "あれって、XULアドオンだったわけじゃなくて、外部アプリなのにやらかしてくれてたんですか?… "
- Makoto Kato ︎︎さんのツイート: "そうです。アドオンじゃなかったんですよ。プロセス起動時にDLLを注入しちゃうタイプで。。。… "
- なかのん&マジックさんのツイート: "もはや、マルウェア……… "
- Rockridgeさんのツイート: "Firefoxプロセスのアドレス空間にインジェクトされるDLLは、現在ブラックリスト方式で管理されているが、将来的にこれをホワイトリスト方式に改める。参照:https://t.co/mXNDx0IYAZ / “Platform/…” https://t.co/vDVhfKue2B"
- CreateRemoteThread関数によるDLLインジェクションをやってみる - ももいろテクノロジー
- DLL injectionでWindows APIによる暗号化処理を覗いてみる - ももいろテクノロジー
- DLLインジェクション - Wikipedia
- DLL injection - Wikipedia
- DLLインジェクションを学ぶためのオンラインパッチの実験 - Qiita
- 早川顕太:Windows 上における危険な処理の... - Google Scholar
- Rockridgeさんのツイート: "Fx53:アドオンやサードパーティー製ソフトウェアがFirefoxのプロセス内にDLLを読み込むことは、原則としてできなくなるようだ。WebExtensionsのNative Messaging API(Fx50でサポート)を使う… https://t.co/PgVacMWk7Z"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsの場合、サードパーティDLLが勝手にプロセスに dll injectionして例外を起こすことがある。 (先ほど、香港ユーザから届いた例外ダンプを解析したら、google検索に1件も引っ掛からない、謎DLLで例外が発生していたというオチ) https://t.co/hBqrjpv8iR"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLインジェクション問題(EXEフォルダ用)でのMSさんの解決策は、PreferSystem32というSYSTEM32を優先するオプション増設っぽい。 https://t.co/I3NvwwBAWa だがデフォルトだと、WinAPIやCOM I/F経由での、パスなし標準DLL読み込み問題は残ったままの様子。(手元で再確認) https://t.co/YZs6GBMXyc"
- 【トレンドマイクロ】ウイルスバスタークラウド含む12製品の CVE-2019-14688 が全然直ってない件【中国製】 - Windows 2000 Blog
NyaRuRuが地球にいたころ
- DLLの闇 (0) - NyaRuRuが地球にいたころ
- DLLの闇 (1) - NyaRuRuが地球にいたころ
- DLLの闇 (2) - NyaRuRuが地球にいたころ
- DLLの闇 (3) - NyaRuRuが地球にいたころ
- DLL の闇 (4) - NyaRuRuが地球にいたころ
- DLL の闇 (5) - NyaRuRuが地球にいたころ
- TLS Callbacks - NyaRuRuが地球にいたころ
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLが自分自身でアンロードするための、FreeLibraryAndExitThread というAPIがある。 FreeLibrary と ExitThread を発行するだけのコードだが、それが標準DLL側コードに存在するため、FreeLibrary後もExitThreadが実行できる。 https://t.co/tqpkwFae6r"
- What is the point of FreeLibraryAndExitThread? | The Old New Thing
- Shirouzu Hiroaki(白水啓章)さんのツイート: "DLLインジェクション後のクリーンナップのために設計された感じ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "昔は pragma でリンクするDLLを指定するのは邪道だと思っていたが、(Win32以外に移植予定が無いなら)こちらの方がメリットが多いな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "kernel32.dllは遅延ロードできない。 (GetProcAddressといった遅延ロードに必要なAPI自体が存在するため) https://t.co/j4HLtmgrvt kernel32関数の場合、昔ながらの GetProcAddress で解決するしかなさそう。"
- Why can't I use the linker to delay-load a function from kernel32? | The Old New Thing
- Shirouzu Hiroaki(白水啓章)さんのツイート: "現状では Vista 以降をサポート。(非公式にはXPでも動作) 新しいOSでは、主に遅延リンクで追加APIを使う形。 (ただしkernel32内APIだけは、それが出来ないのでGetProcAddress利用)"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のマルウェアは、rundll32経由dllロード→svchostを起動してdllインジェクションして、そのsvchostが永続動作、みたいな形が増えてる? (確かにsvchost多すぎて気づき辛い) https://t.co/TjFBzlXHJz」 / Twitter
- 日本国内の組織を狙ったマルウエアLODEINFO - JPCERT/CC Eyes | JPCERTコーディネーションセンター公式ブログ
- rundll32.exeとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- ダイナミック リンク ライブラリ(DLL)の基礎知識
- DLL から「正しい」LIB ファイルを作るには
- DLLファイルからLIBファイルを作成する(_stdcall宣言)
- Microsoft Windows library files - Wikipedia
- 新しい低レベル バイナリ
- ASCII.jp:なぜWindows 7のカーネルはVistaより軽量化できたのか? (1/2)
- ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (1/2)
- ASCII.jp:MinWinとVirtual DLLで変わるWindowsカーネル (2/2)
- ASCII.jp:ARM版Windows 8実現の布石となったWindows 7の「MinWin」 (3/4)
- アレ用の何か
- C言語系/memos/VC++/06, DLLの事前バインド(BindImageEx()) (v1) - Glamenv-Septzen.net
- How important is it nowadays to ensure that all my DLLs have non-conflicting base addresses? – The Old New Thing
- ReadApiSetSchema更新 « 他人の空似
- VirtualDLLの仕組み « 他人の空似
- エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~DLLプリロード攻撃~ « 他人の空似
- GetProcAddress を書く手間を減らすあれそれ - NyaRuRuが地球にいたころ
- 碧落 - Win64 開発
- 4億円超の広告枠を中国のハッカーが購入して詐欺広告を表示しまくった手口とは? - GIGAZINE
- Adaptive DLL Hijacking – Silent Break Security
- Why am I getting a crash at shutdown inside the thread pool? | The Old New Thing
COFF
- COFF - Wikipedia
- COFF - Wikipedia
- coff.h Source File
- COFF - OSDev Wiki
- DJGPP COFF Spec
- Common Object File Format (COFF
- avrcoff.pdf
GitHub
- erocarrera/pefile: pefile is a Python module to read and work with PE (Portable Executable) files
- notes/index.md at master · yukitos/notes
- COFF形式ファイルのいろいろ · HobbyOSs/opennask Wiki
- study-re-201805/study-memo-dynamicbase at master · SecureSkyTechnology/study-re-201805
Wikipedia
- Portable Executable - Wikipedia
- Portable Executable - Wikipedia
- PE - OSDev Wiki
- x86 Disassembly/Windows Executable Files - Wikibooks, open books for an open world
- 本の虫: The Old New Thing: 実行ファイルのベースアドレスが0x00400000である理由
- wivern.com | 見る価値のある5つの PE 解析ツール
- PE Explorer: EXE File Editor, Resource Editor, DLL View Scan Tool, Disassembler.
- WJR Software - PEview (PE/COFF file viewer),...
- PE形式バイナリ変換ツール
- PEダンパー兼PEエディタ「UMPE」
- C11/C++11 TLS変数への間接アクセス - yohhoyの日記
- Auto-linkingまとめ - kateinoigakukunのブログ
- daem0nc0reさんはTwitterを使っています 「PEファイルに悪意のあるコードを埋め込むための、アンチウイルス検知回避の手法 https://t.co/vFtpH0cOkc」 / Twitter
- undetectable backdooring PE file
ELF
Explore cs in depth!
- 実行プログラム作成基盤をフルスクラッチで書いた - Explore "Full-Stack" in depth!
- TUIベースのELF解析ツールを作りました - Explore cs in depth!
- ELFバイナリに含まれるnullセクション/ヘッダの真実…? - Explore cs in depth!
- オブジェクトファイルのシンボルテーブルを最低限理解する。 - Explore cs in depth!
- readelf -S を簡易実装してセクションヘッダを理解する - Explore cs in depth!
- readelf -lを簡易実装してELFフォーマットの理解を深める。 - Explore cs in depth!
- バイナリ何もわからない人に送る"ソースコード視点"のELFヘッダ解説 - Explore cs in depth!
@IT
- Linuxカーネルに見る、システムコール番号と引数、システムコール・ラッパーとは:main()関数の前には何があるのか(7)(1/2 ページ) - @IT
- あなたが知らないプログラムの真の始まり――main()関数の前にあるスタートアップとは:main()関数の前には何があるのか(8)(2/3 ページ) - @IT
blog
- ELFから公開されている関数名を抜き出す - ククログ(2009-05-22)
- DSAS開発者の部屋:Android で今後ネイティブ実行形式を扱う際に注意すべきこと
- eBPFやLD_PRELOADを利用した共有ライブラリの関数フック - Tier IV Tech Blog
- .note.ABI-tagとはなにか - VA Linux エンジニアブログ
- 最小限のELF | κeenのHappy Hacκing Blog
- Some Assembly Required*: Relocations, Relocations
- Reversingとかpwnとかを解くときのメモ(かきかけ) - 忖度
- PIE(position-independent executable)なオブジェクトの中身を見てみる - 情弱ログ
- Brainf*ckトランスレータ (5) 位置独立コード - 七誌の開発日記
- バイナリ解析についてのメモ
- GOT、PLTとIAT - 脱力系日記
- 共有ライブラリ・静的ライブラリ・動的リンク・静的リンク検証 - 誰にも見えないブログ
- 静的ライブラリ,共有ライブラリ,動的リンク,静的リンク - (iwi) 備忘録
- Goのバイナリから依存するmodule情報を取り出す方法 - knqyf263's blog
- ELFファイルを取り扱うためのlibelfライブラリ調査 - FPGA開発日記
- BPFバイナリはどのようなELF形式か(1) - 最低限の情報とは? - ローファイ日記
- BPFバイナリはどのようなELF形式か(2) - mrubyのDSLを書いたらELFを吐く - ローファイ日記
スライド
- EuroLLVM 2016: New LLD linker for ELF - Google スライド
- ELFの動的リンク
- セキュリティ・キャンプ2019 Z2. ELFマルウェア検知エンジンの試作 成果報告 - Speaker Deck
- cybozu-labs-youth-10th - Speaker Deck
Qiita
- C++ユーザーの為のリンクの話1 - Qiita
- assemblyからhello world programを追いかける - Qiita
Twitter
C
- Rui Ueyamaさんのツイート: "Cコンパイラ本に初期化式についての説明を足してみた。プログラムはなぜ動くのか、みたいな本になりつつあるけど、その説明なしに解説するのは逆に無理だ。 https://t.co/dGjZVzZJEe"
- 低レイヤを知りたい人のためのCコンパイラ作成入門
- Rui Ueyamaさんのツイート: "Cの仕様書だとこのあたりの動作はすごく抽象的に書いてあって、意味も必然性もわからない。僕が説明してるような特定のモデルを念頭に置いて読むといろいろ腑に落ちるんだけど、それをできるだけ一般的に説明しようとするとああなってしまうんだと思う。いいんだか悪いんだか。"
- _ko1さんのツイート: "init section とかは ELF (とかa.out?)だと思いますが、具体名かいちゃわないんでしょうか。Linuxの実行ファイルといえば一意に決まるから、要らんのかな(一意に決まるかどうか、知らないのだけど)… "
- Rui Ueyamaさんのツイート: "ELFだと名前は重要ではないということになっているので、SHT_INIT_ARRAYタイプのセクションは一応全部initセクションということになるんですよね。とはいえ`.init_array`であるのを前提にしちゃってるプログラムが多いですけど。… "
- _ko1さんのツイート: "おお、なるほど、私のうろ覚えの理解も間違ってました(詳細はさっぱり知らなかった)。「initと呼ばれる特別なセクションに出力する」とあったので、特定の環境を想定しているのかな、と思ったんですが、その特定の環境かいてないなあと思った次第でして。… "
- Rui Ueyamaさんのツイート: "initというのは一般名称のつもりでした。確かにそれは伝わらないかも。… "
- shinichiro hamajiさんのツイート: "「initセクション/セグメント」と言われると.initセクションとDT_INITのことかな、と思ってしまう(この方式の時は実際関数ポインタが入ってたセクションは.ctorsでした)ので、ちゃんとinit_arrayという名前を明示してほしい気持ちあるかもです… https://t.co/mTpGnUNT5G"
- Rui Ueyamaさんのツイート: "まあ足しとくか・・… "
- るくすさんのツイート: "分かった... リンカが物理アドレス節約のために、セクションが小さい場合は全部まとめて先頭の空きスペースに持ってこようとするから、先頭からのオフセットが変わってるんだ... 気付くかよそんなの..."
- るくすさんのツイート: "リンカスクリプトに陽に指定していないセクションは、なるべく空きスペースに置くようにしているのか いやまあそりゃそうだろって感じだが... まさか先頭に置いたつもりのセクションがこれの影響でずれるとは"
- るくすさんのツイート: "あああ まさにこれだ。 linker scriptでセクションの順番を指定しても、物理アドレスは変わるけどELF内のオフセットが制御できなくてブートローダーから飛べない問題。 質問している人がいた https://t.co/LyFtwAU8uy"
- るくすさんのツイート: "まあこの人は、ブートローダーとかじゃなく.textの前にシンボル置いたんだけど、実際のELF内オフセットは.textより後になっちゃう って言ってる"
- るくすさんのツイート: "まあブートローダーでELFをちゃんとパースしろやwというのが正論だし、物理的な配置をELF側に求めるのは間違ってるんですが..."
- るくすさんのツイート: "物理アドレスのオフセット値とelf内のオフセットが合わない仕様、やはり何とかするべきでは... 直感に反しすぎる..."
- るくすさんのツイート: "何が起こるかというとELFを0x40100000に置いた後、0x40101000にアクセスすると先頭からオフセット0x1000のセクションにアクセスできそうなのに、実際は対応するセクションは0x2000にあるなどが起こる。"
- るくすさんのツイート: "OFFSET 0x2000のセクションが0x40101000に配置されるの、マジで直感に反するからやめろ"
- るくすさんのツイート: "いやまあbssセクションの後とかだったら、実際のELFオフセットと物理アドレスがずれるとかはあると思うんですけど、これ一番初めの(NULLの次)セクションで起こってるんだよな... 2,3,4番目のセクションが一番目のセクションより先に配置されるなどする"
- Rui Ueyamaさんのツイート: "今調べている時間がないからここに書くけど、.gnu.hashをある方法で作るとUnixでのプロセスのスタートアップがかなり速くなるぽいんだけど、なぜそんなに違いが生じるのか誰もよくわかってません。数%は違いが出るので、わりと世の中的に役に立つはずなんだけど。誰か調べてほしい。"
- ファッション自作OSマンさんのツイート: "ELFローダーを作る際のハマりどころ ・PT_LOADは複数になることがある ・PIEバイナリの場合、sh_addrやp_vaddrなどは0オリジンなので、実際のロードアドレスを加算する必要あり ・もちろんリロケーション時にも。… "
- ファッション自作OSマンさんのツイート: "ところで、PT_LOADが複数あるELFバイナリの場合、すべてのPT_LOADは基本的に連続(アライメントのために多少隙間はあるにせよ)と考えてOK?"
- C++でOS自作 技術書典5 お05さんのツイート: "ELFのDYNAMICセグメントに基づきリロケートした結果、C++のvtableの内容が正しくアップデートされ、仮想関数が動くようになった。画面表示バグが直って正しく描画されると嬉しい。"
- Rockridgeさんのツイート: "Fx64:Linux版の実行ファイルが位置独立実行形式(PIE)になった。参照:https://t.co/quDHNpLxZD / “1079662 - Enable PIE on Linux” https://t.co/BIF3z3Icrl"
- 品川 高廣さんのツイート: "ELF ファイルの PT_LOAD セグメントで対応するファイルサイズ(p_filesz)が 0 ということはあり得るんだな。"
- Rui Ueyamaさんのツイート: "リンカは、ELFを読んだあとに同じ名前のセクションをそのまま連結して、.rela.*で指示されている箇所のアドレスをfix upすれば完成、という感じですよ。… "
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「/proc/[pid]/maps に、同じ.soファイルが、異なるページ属性で別の位置にマップされている理由。 https://t.co/hVzNTKGEWV」 / Twitter
- linux - Shared library mappings in /proc/pid/maps - Unix & Linux Stack Exchange
- shinichiro hamajiさんはTwitterを使っています: 「最近、ことあるごとにglibcのローダはシンボルテーブルがフラットで、DT_NEEDEDをRTLD_GLOBALで解決するのがダメ、Bionicやdyldの方が良い、あとC++標準はDLL的なものに言及すべき(visibilityとかdllexport的なやつ)と主張してるのだけど、そう言う人を見ない気がする。みんな困っていないのかなあ」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「linuxのx86バイナリ、かなりcrazyなことになっていて、ビルドした後に独自のobjtoolでバイナリを解析してエラーチェックとかシンボル抜き出し、セクション追加などを行っている。non-blockingな自己書き換え手法が確立した後のはっちゃけ具合が凄い。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「両方の技術の元ネタ(kprobe jump optimization+x86 instruction decoder)を提供した身としてはwktkしてる。」 / Twitter
- DrumatoさんはTwitterを使っています 「ELFをパースしたときにはbytes:Vec<u8>にしておいて,あとからシンボルテーブルを使う場合のみ構築する方法を取ったけど, ユーザ側が計算量のこと考えないと毎回テーブル作り直す重い処理になってしまう.」 / Twitter
- DrumatoさんはTwitterを使っています 「というこでEnum実装に変更して, パース時のコストを許容し,その後スマートに使用できる仕組みを取ろうと思っている.」 / Twitter
- DrumatoさんはTwitterを使っています 「抽象的で使いやすいELFライブラリを作るためには,ユーザが考慮すべきことを減らさなければ」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:単純な動的リロケーションの問題; ・ダイナミックリロケーションを行うべき場所は、普通はとても多い ・全部リロケーションするとロードが遅くなる ・物理メモリの共有もできなくなる #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:PLTとGOT: ・間接参照を導入 ・テーブルを作り、リロケーションする場所を集約 ・一個のモジュールについての相対的位置は変わらないので、まずはPLTに飛ぶようにしておけば良い ・PLTやGOTはリンカが作る #kernelvm #kernelvm_tw」 / Twitter
- FadisさんはTwitterを使っています 「共有ライブラリ内のあらゆるアドレスをロード時に書き換えると書き換え箇所が多すぎる→PLTやGOTの値を見て共有ライブラリの中身のオフセットを知る→ライブラリの中身の並び順はどこにロードしても相対的には変わらないので、これらの値だけで全てのアドレスを書き換えるのを代替できる #kernelvm」 / Twitter
- retrageさんはTwitterを使っています 「なんか最近見かけた問題に近かった気がする。ELFのローダを作っていたんだけど、最低限必要なものとしDT_RELAのPT_DYNAMICに対してR_X86_64_RELATIVEのときだけrelocationをするんだけど、実装によって元の値を足したり足してなかったりで異なっていた https://t.co/HDDox4Jgv3」 / Twitter
- rust-hypervisor-firmware/elf.rs at 6c6fddf2eb290a1c2f10b54d5b659ac1b08edb2b · retrage/rust-hypervisor-firmware
- retrageさんはTwitterを使っています 「で、rustcが吐くELFだと全部元の値が0で問題にならなかったので足さないようにした」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「.debへの言及だけじゃなくて .a への言及も欲しかったかなあ(Linux 使ってる人は「ar tv /usr/lib64/libc.a」とか試してみてね) 今のarはシンボルテーブル構築機能まで含んでるけど、昔はranlibコマンドがその担当で、アーカイブの中身の先頭の __.SYMDEF ファイルとしてシンボル情報を追加してたのね」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「シンボルテーブル構築機能を ar コマンドへ統合したのは System-V 系だと思う。1990年代初頭の 4BSD系 UNIX だとまだ ranlib コマンドの実行が必要だったけど、その頃既に System-V 系 UNIX だと不要になってた記憶が… 統合は機能分割的には微妙な判断だと思ってたなあ…」 / Twitter
- retrageさんはTwitterを使っています 「ld\.soのman pageにHardware Capabilitiesという項目があり、SSEとかのCPU拡張命令が使えればそれに対応したオブジェクトファイルにリンクする、っていう機能があるらしいんですが、最近の拡張命令がなくて誰も使ってなさそう https://t.co/YOw1zwU5jf」 / Twitter
- ld.so(8) - Linux manual page
- DQNEOさんはTwitterを使っています 「びっくりしたんだけど、ELFの仕様って1995年から変わってないのねw なんという息の長い技術や... https://t.co/29CdJt6aoJ」 / Twitter
- sjiさんはTwitterを使っています 「@DQNEO 実際には仕様化されてない GNU 拡張がデファクト気味に広がったり、新しいプロセッサに対応する補遺が出たり、TLS 対応の拡張が入ったり、みたいな増築はあったりします」 / Twitter
- Linux Foundation Referenced Specifications
- gabi41.pdf
- System V Application Binary Interface - DRAFT
- x86_64-abi-0.99.pdf
- ELF Golf
- binstudy/ELF-section.txt at master · warabanshi/binstudy
- GNU Hash ELF Sections | Oracle Ali Bahrami Blog
- 違法素数 - Wikipedia
- readelf (GNU Binary Utilities)
- 最小限で理解しつつ作るELF parser入門 in Rust
- 共有ライブラリーを解剖する
- Linux Insides : カーネル起動プロセス part5(終) | POSTD
- C - C言語の位置独立コード、GOT(53994)|teratail
- アーキテクチャ - GOTとPLTについて確認です。(48163)|teratail
- 技術レポート「Linuxのライブラリ開発」|ソフテックだより|株式会社ソフテック
- readelf コマンド – ELFファイルについての情報を表示する | Linuxコマンド.NET
- Man page of ELF
- PIC,PIE,shellcode,ASLR
- ELFの動的リンク(1) - 七誌の開発日記
- linker - What does R_X86_64_IRELATIV mean? - Stack Overflow
- mods/android/bionic/linker/arch/nacl/begin.c - arc/arc - Git at Google
- ELF - osdev-j
- ELF/実行時の話 - osdev-j
- ELF/実行時の話/プロセッサに依存する話/i386 - osdev-j
高速化
BOLT
- Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 - Publickey
- まさみさんは語りたいさんのツイート: "Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 - Publickey https://t.co/BxqLSo1Bk4 おっ、これは。関数単位じゃなく分岐単位にするのかな?"
- suzakiさんのツイート: "FaceBookのBOLT:Binary Optimization and Layout Toolは面白いが、やっていることはPGO: Profile Guided Optimizationではないのか? PGOはプロファイルを取り、そのプロファイルをコンパイラに与えて、最適化するもの。違いはソースコードを必要とするかしないか、が大きく違いますが。… https://t.co/qgIw73yWLb"
- suzakiさんのツイート: "最近、この周りの調査をしているのですが、正しく『関数の実行時間』に苦労ししています。ThreadingやMulti Coreが当たり前となり、正確な時間が取れない。 使っているのはgporf, Google Perf, Oprofileですが、それぞれ一長一短あり。"
- suzakiさんのツイート: "BOLTのHPによるとバイナリはnon-PIEのみとある。現在のディストロだときつそうに思えるが、実はPIEはあまり使われてないと言う調査をACSAC17ポスターで発表しました Analysis of Code Protection Technologies in ELF binaries in Major Linux Distributions and Generations https://t.co/6oUL31K4XL"
- まさみさんは語りたいさんのツイート: "単に今実装していないだけの可能性がありますね。中を読むと機械語命令単位で解析と再構築をしてるようなので、そちらの実装を優先したのかも。… "
- Miura Hidekiさんのツイート: "https://t.co/xGnFIJn4pU 手前みそだけど、こんな感じで出来るような気がする https://t.co/9e3Rs0McNB"
- まさみさんは語りたいさんのツイート: "BOLTの場合、ホットスポットを纏めることでキャッシュヒット率の向上を狙ってるようなので、あまり個々の関数の実行時間は気にしてないのではないでしょうか。要するにバイナリ全体に対してunlikelyマクロを適用する感じでは。… "
- suzakiさんのツイート: "perfで性能評価しているので関数単位ぐらいしか取れないと思ったら perf data with LBR (branch information) と記述がありました。 https://t.co/xzdaACuvm5 Branch単位でコードのレイアウトを変えることで、ヒートマップにあるように最適化できるのか?それにしてもヒートマップが効果が良すぎる。… https://t.co/jIfcMNx0Ba"
- まさみさんは語りたいさんのツイート: "そもそもプログラムのコードの殆どはエラー処理なので、それを追い出せたら綺麗になるということなのでしょう。なのでunlikelyだなと。… "
- LLVM Weeklyさんのツイート: "Applying the BOLT post-link optimiser to Clang for up to 15% performance improvement <https://t.co/KI7RQd0YYo>. A member of Google's compiler optimisation team shares some detailed thoughts on improving scalability with linker assistance https://t.co/a1xKohkyk2"
- BOLT/OptimizingClang.md at master · facebookincubator/BOLT
- [llvm-dev] Making Clang/LLVM faster using code layout optimizations
- Fadisさんのツイート: "BOLT: 実行可能バイナリと、それを動かして得たプロファイルを入力として、分岐の確率に基づく最適化、キャッシュやTLBによりヒットしやすくする為のバイナリレイアウトの変更等を行った実行可能バイナリを生成するリンク「後」最適化コンパイラ https://t.co/jkGgM3eVvk"
- facebookincubator/BOLT: Binary Optimization and Layout Tool - A linux command-line utility used for optimizing performance of binaries
- Google Propellerが大規模LLVMバイナリからさらなるパフォーマンスを引き出す
- FadisさんはTwitterを使っています 「Facebookが同社のリンク「後」最適化BOLTをLLVM本家に入れたがっているらしい。BOLTはx86_64の実行可能バイナリを実行して得たプロファイルをもとに、実行可能バイナリに分岐のヒントを挟んだりキャッシュに当たりやすい配置に入れ替えたりといった最適化を行う https://t.co/5wODv8QlLd」 / Twitter
- Facebook Is Looking To Upstream Their BOLT Binary Performance Optimizer Into LLVM - Phoronix
- R. ShioyaさんはTwitterを使っています 「@shirouzu 一般的な最適化というよりは,確か命令列の配置方法により特化していたと思います.よく通る実行パスの命令を連続した領域上に再配置することで命令フェッチの効率を上げたり(分岐で飛ぶと読み出しが止まるので連続になっててほしい),キャッシュやTLBのヒット率を上げるのを狙っていたと思います.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、ありがとうございます。 逆に言うと、バイナリのみだと目立った改善点はそのあたりだけになるんでしょうねぇ。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shirouzu なにかあれが出てきた背景としては,バイナリ最適化で試行錯誤した延長というよりは,最近?コードの肥大化で命令フェッチがボトルネックになっているとはサーバーサイドでは特にいわれていたので,それを何とかしたくて考えてああなったって感じじゃないかなと思っています.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@r_shioya なるほど、そんな話があったのですね。勉強になります。 > コードの肥大化で命令フェッチがボトルネックになっているとはサーバーサイドでは特にいわれていた」 / Twitter
- ドッグさんはTwitterを使っています 「Facebook の BOLT 最適化フレームワーク,LLVM に入れたいという話は前からあったけど,正式に RFC 出たのか | '[llvm-dev] [RFC] BOLT: A Framework for Binary Analysis, Transformation, and Optimization' https://t.co/jq5gWi76Hz」 / Twitter
- [llvm-dev] [RFC] BOLT: A Framework for Binary Analysis, Transformation, and Optimization
- FadisさんはTwitterを使っています 「FacebookがLinuxカーネルをBOLTで最適化できるようにした話。既にLinuxカーネルに用いられた事例があるプロファイルベースの最適化PGOと組み合わせてコンパイルベンチで最大で49%の性能向上が見られる、としている https://t.co/DOmIG8n9Xy」 / Twitter
- Facebook Has Been Working On BOLT'ing The Linux Kernel For Greater Performance - Phoronix
- FadisさんはTwitterを使っています 「BOLTはFacebookが開発したリンク後最適化フレームワークで、x86_64またはARMのバイナリを実行して得たプロファイルをもとに、頻繁に触られる実行可能バイナリがメモリ上にかたまって配置されるようにバイナリを編集する。キャッシュのヒット率が上がる為性能向上に繋がる https://t.co/jkGgM3eVvk」 / Twitter
- facebookincubator/BOLT: Binary Optimization and Layout Tool - A linux command-line utility used for optimizing performance of binaries
- FadisさんはTwitterを使っています 「s/ARM/64bit ARM/」 / Twitter
- R. ShioyaさんはTwitterを使っています 「これはキャッシュのヒット率が単純に上がると言うよりは(ヒット率が上がらないことは無いだろうけど),実行パスが連続アドレス上に乗るので一度にたくさんフェッチできる効果と,I-TLB ヒット率向上の効果が特に効いてたんじゃなかったかなと.」 / Twitter
- R. ShioyaさんはTwitterを使っています 「条件分岐が成立して離れたアドレスに飛ぶとそこで命令キャッシュの読み出しが1回途切れるけど,不成立で次のアドレスにいくなら同じラインに乗ってる限りは一度にガバッと取れるので,if 文の条件を変換する感じでなるべく不成立が続くようにバイナリを編集するみたいなことしてたはず.」 / Twitter
- R. ShioyaさんはTwitterを使っています 「リンク済みバイナリ内の配置を変えるのは結構しんどくて,BOLT の論文内でも何回か「これは簡単な仕事ではない」と強調されてたけど,特に関数ポインタとか仮想関数,C++例外とかがどこからどこに飛んでるのかをバイナリから把握して書き換えるのは一筋縄ではいかないのではなかったかなと」 / Twitter
- hrk先生さんはTwitterを使っています 「@r_shioya 最後のものが大きいのじゃないかな?」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@Prof_hrk 図は clang バイナリを実行した際の,各手法を適用した場合のミス数の減少率ですが,やっぱり I-TLB が特に効いてそうです.D-Cache や D-TLB まで減ってるのは特に説明されていないのですが,ちょっと謎です・・・ https://t.co/7fgSo6bC6Q」 / Twitter
- hrk先生さんはTwitterを使っています 「@r_shioya それは、実は謎シミュレーションだったりするかもしれません。」 / Twitter
- FadisさんはTwitterを使っています 「雑なアムダールの法則: 処理の中にスケールしない部分があると、並列度が上がるほどその部分が深刻なボトルネックになるぞ! #kernelvm」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:moldはなぜ速いのか: ・中間表現を作らず、mmapした入力ファイルのデータを可能な限りそのまま使う ・可能な限りすべての内部パスを並列化 →並列化されていないとそこがボトルネックに #kernelvm #kernelvm_tw」 / Twitter
- FadisさんはTwitterを使っています 「リンカが扱うデータ(シンボル名)は沢山あるから、手法を慎重に選ぶとデータ並列で性能を稼ぎやすいのか… #kernelvm」 / Twitter
- 𝚊𝚖𝚎𝚖𝚒𝚢𝚊.𝚍𝚎𝚟さんはTwitterを使っています 「rustでいうrayonみたいなアプローチか > データ並列 #kernelvm」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:データ並列: ・同じタイプのでーたが大量にあって、1つ1つを個別に処理 ・スレッド間の依存性がないのでよくスケールする #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「・単なる並列forループなので、複雑な同期メカニズムやメッセージングメカニズムを使った並列化と比べてい理解しやすい #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:並行コンテナ: ・Intel TBB のものを使っている #kernelvm #kernelvm_tw」 / Twitter
- Hiroshi ShimamotoさんはTwitterを使っています 「Intel TBB使って、並列forループ #kernelvm」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:moldにおけるシンボル解決: ・シンボルを並行ハッシュマップに同時に追加する #kernelvm #kernelvm_tw」 / Twitter
- KOBA789さんはTwitterを使っています 「ここでマークルツリーの名を聞くことになるとは #kernelvm」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:Map-reduceパターン: ・リンカに-build-idオプションを渡すと、出力ファイルを生成した後に、ファイルのハッシュ値を取ってそれをファイルに埋め込むことができる #kernelvm #kernelvm_tw」 / Twitter
- データ検証などで利用するMerkle Treeのメモ – Siguniang's Blog
- KOBA789さんはTwitterを使っています 「マージソートみたいな見た目だな #kernelvm」 / Twitter
- kawai🍎社会性の高いあおいちゃんさんはTwitterを使っています 「ほー。コンカレントハッシュマップ。通常、並行な処理は共有するデータに書き込む際にはそこをクリティカルクションに入れるため低速になってしまうが、コンカレントハッシュマップを利用するといい感じに並行な処理をしつつ且つ高速に動作すると。 #kernelvm」 / Twitter
- Susumu MiwaさんはTwitterを使っています 「Parallel Scanパターン #kernelvm」 / Twitter
- KOBA789さんはTwitterを使っています 「ファイルを上書きしたほうが速い、それなー #kernelvm」 / Twitter
- 百千万億 萬さんはTwitterを使っています 「Prefix Sum の並列化テクやん~ https://t.co/g9nNepI4Ai #kernelvm」 / Twitter
- Prefix sum - Wikipedia
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:細かい高速化テクニック: ・glibcのデフォルトのmallocはあまりコア数に対してスケールしない →mimallocを使っている #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「・新規ファイルを作ってそこにデータを書き込むより、すでにバッファーキャッシュ入っているファイルを上書きするほうが速い #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「・大量のファイルをmmapしている場合、プロセス終了に数百ミリ秒かかる #kernelvm #kernelvm_tw」 / Twitter
- 基礎から学ぶ 組込みRust 4/20 発売予定さんはTwitterを使っています 「いっぱい mmap しているとプロセスの exit が遅いから、子プロセスを作って exit させることで、そっちは時間かかってもユーザーには見えないから良し! #kernelvm」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:速いプログラムを書くためのヒント: ・推測せず、計測する ・凝ったコードを書くのではなく、自然と速くなるようなデータ構造を考える ・複数実装してみて一番速いものを選ぶ ・何度か同じプログラムを書く #kernelvm #kernelvm_tw」 / Twitter
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「差分リンクうまく実装しないと遅い。リンクしなおした方が今は早い #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「差分リンクはアイデアとしては速そうだけど、1個のシンボルを足した時に影響がある範囲を調べるのはローカルな処理では済まず、そのチェックに時間がかかって差分リンクは思ったほど速くならない、と #kernelvm」 / Twitter
- hotpepsiさんはTwitterを使っています 「link time optimization って中間コードをまとめるみたいな仕組みなのか、なるほど #kernelvm」 / Twitter
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「LTOの挙動(llvm)中間言語として出力、リンク時にモジュールを超えた最適化を行う。処理としては重い。moldは今のところすぐに実装する予定はない #kernelvm」 / Twitter
- mold: modern linker - Google スライド
Wikipedia
- リンケージエディタ - Wikipedia
- Linker (computing) - Wikipedia
- 名前修飾 - Wikipedia
- 位置独立コード - Wikipedia
- EXEフォーマット - Wikipedia
- New Executable - Wikipedia
- COMファイル - Wikipedia
- きしもとさんのツイート: "@knok 一応英語版のほうは、いくつかの例を挙げる形で、どれが決定版だとも言えないよ、ぐらいのスタンスに見えます https://t.co/0UIBmDCnjM"
- .bss - Wikipedia
- .bss - Wikipedia
- システムイメージ - Wikipedia
Twitter
Plankalkuel
- Shinya KatoさんはTwitterを使っています 「ENIAC の頃には既にリンカとローダーのような仕組みが存在していたらしいんだけど、アセンブリすら存在しない頃からリンカとローダーが存在したってのは本当におもしろいよなぁ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「リンカもローダーもアセンブラも無かった時に、いきなりプランカリキュールですからね。ほんとうにコンピュータの歴史は面白い」 / Twitter
- Miura HidekiさんはTwitterを使っています 「プランカルキュールでした」 / Twitter
- Hjul(ゆーる)さんはTwitterを使っています 「プランカルキュールのRubyラッパ、とりあえずこのPlankalkuelLoaderクラスの実装がすべてな気がする>>plankalkul2ruby/loader.rb at master · timfel/plankalkul2ruby · GitHub https://t.co/rzV3nq64sr」 / Twitter
- plankalkul2ruby/loader.rb at master · timfel/plankalkul2ruby
@rui314
mold
グラフ同値性判定
- Rui UeyamaさんはTwitterを使っています 「グラフの同値性判定の実用例(名前が違うだけで全く同一の振る舞いをする関数を見つけてマージするという最適化)。関数呼び出し関係というのがグラフになるので、グラフにおける同値性判定問題になる。 https://t.co/UGyHkOucy7」 / Twitter
- mold/icf.cc at main · rui314/mold
- Rui UeyamaさんはTwitterを使っています 「2つの関数について(無限に深いかもしれない)コールツリーを作ったとして、コールツリーの形と、コールツリーのそれぞれのノードのマシンコードが同じなら、その関数は全く同じ振る舞いをするので、同値ということにする。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「実際にリンカで行ないたいことは2つのグラフの同値性判定より大変で、与えられたグラフのすべてのノードのペアについて、それらから到達可能なサブグラフが同値かどうかを判定したいので、うまくやらないとめちゃくちゃ遅い。moldのアルゴリズムは暗号的ハッシュ関数を使ってその辺うまくやっている。」 / Twitter
histric
histric-1
- Rui UeyamaさんはTwitterを使っています 「前回パースした結果をうまくメモリに持っておくことで、ホントにChromiumが2秒でリンクできるようなリンカを作れる可能性がある気がする。初回起動時はやっぱり12秒くらいかかってしまいそうだけど、初回ビルドはどうせ遅いので別にいいし。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@rui314 リンカデーモン?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@anohana 初回起動したときに勝手にデーモンみたいに裏で動き続けるようになるとか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「リンカをメモリに常駐させておけば勝手に速くなってくれるということはなくて、ファイルを読み込むときにやってよい処理と、本当にコマンドが起動されたときに行わないといけない処理の2つにうまくステージを分割して、後半が極力早く終わるように前半をうまくやるということが必要になってくる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いい感じのデータ構造を考えつくかどうかで、こういう分割がうまくいくかどうかが決まるんだよね。実際、コードよりも、データをどう持つかというのがプログラミングで一番重要なところなんだよな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いまのところChromeをリンクするとき、実際のデータのコピーを始められるまでの処理に400ミリ秒くらいかかってる。もう一声縮めたいけど、100万個単位で存在するシンボルとかセクションとかを扱っているわりには悪くない数字。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「リンカたるもの、入力から出力にデータコピーするところはどうやっても省きようがないので、 - 出力ファイルのレイアウトを極力早く決めてデータコピーをとにかくさっさと開始する - データをコピーしている間に、余っているコアで付加的なデータを構築する というのが肝になるかなと。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Chromeの入力オブジェクトファイルを出力ファイルにコピーし終わるまでちょうど1秒くらいだ。実際にはまだやらないといけないことがあるけど、目標の2秒までまだ1秒もバジェットが余ってる。これは本当に2秒切れる可能性ある。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「新しいリンカの名前、modern linker、略してmoldにしようかな。理由はカビっぽくてなんとなく面白い名前だから。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldリンカのソースアップロードしておいた(まだ使い物になるとかそういうレベルじゃないけど)。日本人らしくいらすとやの画像を貼っといた。 https://t.co/V5MIFw4jJB」 / Twitter
- rui314/mold: mold: A Modern Linker
- Rui UeyamaさんはTwitterを使っています 「いろいろ実験して、どういう処理がどれくらいの時間を必要とするのか調べてみてるんだけど、Chromeのリンク、2秒どころか1.5秒も可能かもしれない。とりあえずそれを目標にしてみよ。」 / Twitter
- Adam Van ProoyenさんはTwitterを使っています 「@rui314 lldだと?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@docileninja 12 seconds」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「My linker is now able to create an statically-linked executable that does nothing but runs an infinite loop.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Next I have to support common symbols, and I want to do that really quick. I mean I don't want to spend more than, say, 20 milliseconds for them in total even for a >1GB executable.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「It looks like my new linker can fix the layout of an output file for Chromium in 300 milliseconds. Copying file contents takes 700 ms, and I guess applying relocations would take another 500 ms. So a linker that links Chromium in 1.5 seconds is possible?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「For comparison, lld takes 12 seconds, and GNU gold takes more than 50 seconds to link Chromium.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Constructing a string table was a tough one because it's simply huge (~600 MiB for Chromium), but I think I managed to create it with less than 300 milliseconds overhead.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「学期末までにまだ40日あるからChromeをリンクできる完成度まで高めるの可能かもしれないな。Chromeが2秒でリンクできたらさすがにA+くれるんじゃないか(というかそんなの授業で作るレベルのものかっていう)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なんか今作ってるリンカ、64コアマシンなのに16スレッドくらいで性能が伸びなくなっちゃうんだよな。小さなデータセットについてじっくり計算するタスクだともっとスケールするんだろうけど、大きなデータセットを素早く処理するみたいなやつだとメモリバスが厳しくてコアを全部使い切れないみたい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Ryzen 3990Xは癖が強すぎで、やっぱ3950Xがコスパ的にも最強マシンだったか。今なら5950Xだな。」 / Twitter
- Inada NaokiさんはTwitterを使っています 「@rui314 L3キャッシュを共有するCCXあたりで8コア16スレッドなのが関係してるかもしれませんね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「マルチコア向けのプログラムを書くための高水準ライブラリとしてIntel TBBというのがあるんだけど、これの出来がとてもよい。とりあえず使っとけばいいという感じ。あと、こういうよくできたライブラリがあるからC++で書いててよかったなってなる。やっぱりC++はよい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「こんなライブラリ作ってくれてるのにAMDのCPUで動かしていてすまんな・・って思うけど、でもこれとはそれと別で、なんで最近こんなダメダメなのっていう。Intelは数十年に渡って絶対王者的ポジションを占めていたのに。」 / Twitter
histric-2
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このレベルになると、OS固有機能を活用しての高速化したい感じ。 (書き込み後にもOSキャッシュ載せたい場合は(DirectI/O使えないので)、fallocate + mmap後に、msyncで最後に手動一括sync出来ると良いのかな…だがlinuxにはmmapの自動syncをpendingする仕組みが無いっぽい)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「うわー、tmpfsだとめちゃくちゃ速いな。RAMディスクだから当たり前なのかもしれないけど。tmpfsに出力するようにしたらChromeのリンク1秒切るのももしかしたら余裕なのかもしれない。」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@rui314 でもそれ、最終的に何処かへ copy する必要があるのでは…」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@objectxplosive ビルドディレクトリ全体をtmpfsに置くというのはわりと普通に行われているので。」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@rui314 source まるごと置くのが一番速そうだけど、何か不幸な事があると消えるスよね😅。out-of-source-tree build で artifacts だけ tmpfs 送りスか?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@objectxplosive リンカなのでソースは置かなくていいです。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Wow, copying file contents is extremely fast on tmpfs. We might be able to link chromium in less than a second on tmpfs if these numbers are true.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「そろそろHello worldくらいは動くようにしないといけないな。今のところは壊れた実行ファイルを誰よりも素早く作成できるリンカになってしまっている。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Hello worldを動かすために、まずシンボルテーブルを出力できるようにしてから、_startからディスアセンブリをたどっていく作業してる。何かをゼロから作るとHello world表示するまでが遠いんだぜ・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「こういうの普通はよく知らない仕組みにぶち当たって学びながら作っていくので、ときには途中でデザインを基本から変えないといけなかったりすることがあるけど、僕は一応2回めだから根本的に間違ってるところはない、はず。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なんか.gotを作るようにしたら_startから__libc_start_mainまでたどりつけるようになった。けどまだmainにたどりつく前にクラッシュしてる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Improved my new linker to emit a symbol table for debugging and then investigating why a "hello world" crashes before main(). If you create something from scratch, "hello world" isn't the first step but is actually an achievement.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「I don't know why, but this kind of mysterious low-level errors can almost always be fixed in a few days. The most difficult part is to set my mind to dive into disassembly and hexdump. I guess I've spent far more time for procrastinating than for debugging.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Chromeのリンク、2秒じゃなくて1秒目指そうぜという気分になってきた。cpがちょうど1秒くらいだから、cpと同じ速さというとインパクトがでかい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「出力ファイルをcpするのと同じくらい速いリンカなんて原理的に不可能そうだけど、①そもそもcpがファイルコピーコマンドとしてあまり速くない、②ファイルの内容をコピーしてる間に別のコアで時間のかかる計算をする余地がある、というので、絶対無理というわけでは多分ない。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「_startの直後に呼ばれる__libc_start_mainの中でクラッシュする問題は直したけど、まだmain()より前のどっかで落ちてる。正直こういうバグ直すのめんどくさい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「"Hello world"が静的リンクできる程度のリンカを書くの、プログラムが低レベルでどう動くのかを理解しないといけないのでめっちゃ勉強になるな。一回書いたでしょという話はあるけど。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なんか芋づる式にいろんな機能を実装する必要があって終わりが見えない。Hello world難しすぎワロタってなってる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「おおお、数日間のデバッグの末ついに自作リンカでhello worldがスタティックリンクできた! main()より前に実行されるコードの実行を逆アセンブリでひたすら追ったりして、なかなか大変だったぜ・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「やはりこういうプログラムを作るときに一番必要なのは、くじけない心。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Hey, so I managed to fix critical bugs so that my new linker is now able to statically-link a "hello world" program against glibc.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「今クオーターの終わりまでにChromeがリンクできるようになるわけ?という質問には、善処しますとしか言えなかったわ。Hello worldやっとできたところからChromeを出力できるまで1ヶ月で足りるか・・?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Bumped up my (already ridiculously ambitious) goal from 2 seconds to 1 second to link chromium. I *believe* that's not entirely impossible. https://t.co/V5MIFw4jJB」 / Twitter
histric-3
- Rui UeyamaさんはTwitterを使っています 「自作リンカでビルドしたhello world、./helloだとメッセージがでるのに./hello | catだと出なくなるというバグがあった。単に一つリンカの機能が欠けてただけだったけど、こんなバグどうやって直すんだ(直したけど)。」 / Twitter
- gitster@ Git v2.30 12月28日発売 予約受付中(うそよ)さんはTwitterを使っています 「@rui314 こんなバグどうやって発現するんだ?という方が気になりますね。実行時にwrite(2)の行き先がttyかパイプかによって挙動を変えるなんて、狙ってもリンカレベルでどうやるんだろ?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@jch2355 デフォルトだとstdoutは行バッファリングですけど、isattyがfalseだとフルバッファリングになるので、そのときにはexitするときにバッファをフラッシュするんですよね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@jch2355 フラッシュする関数のリストは__libc_atexitというセクションに入っているんですが、リンカが定義するべき__start___libc_atexitと__stop___libc_atexitというシンボルを定義しわすれていた。その結果exitのタイミングでstdioの後始末をする関数が全然呼ばれていなかったという。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「ここ1ヶ月くらい土日もなく起きてる時間コードばっかり書いてる気がする。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、現段階で2500行くらいか。僕の野生の勘ではトータル6000行くらい書けばとりあえずChromeをリンクして動かせるんじゃないかと思うんだけど。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「コードも凝ったところがなくてかなりわかりやすく書けてると思うし(こういうあまり誰もよく知らない低レイヤだと「何をする必要があるのか」というのを知るほうが大変なんだけど)、速度も出るし、いまのところ結構よい感じ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「僕は自由研究の工作としてのプログラミングが好きなだけなので、あんまり競技プログラミングとかにはやる気がわかないのであった。食わず嫌いもよくないからやろうと思ったことはあったけど、結局やらずじまい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「最近は競技プログラミングの人気が上がっているので、ある程度以上できるプログラマだとそういうのやってると思われることもあるけど、別にそんなことはないです。というか一般にはそういう話をあまり見聞きしない。趣味でやってていい成績だしている人はすごいなぁとは思うけど。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「リンカを作っているとどんなバグがでてくるのかをまとめてみた。これからも更新予定。https://t.co/SuxohXLQTO」 / Twitter
- mold/BUGS.md at main · rui314/mold
- Rui UeyamaさんはTwitterを使っています 「I decided to keep a note about interesting linker bugs before I forget. I'll update this doc as I meet a new one. https://t.co/SuxohXLQTO」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「When working on the binary level, a very subtle bug can cause a program crash with a very little trace of what was wrong. I still don't know how to efficiently debug this kind of issues, but it looks like patience is most important...」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「んー、やっぱり10ミリ秒単位の最適化を考えたりするのは、コンピュータをうまく使っている感じがして楽しいな。1000ミリ秒でchromeをリンクするという目標があると張り合いがあってよい。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「速度を知りたいだけだから、やっつけなプロトタイプ作ったら、変種パターンでの確認も必要となり、速度実験用プロトタイプこそ最初から拡張性考えて作っとけ、みたいな羽目になることある(笑)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「高速化できそうなアイデアがあったので実装してみたけど速くならなかったのでボツ。こういうの、いろいろアイデアがあっても結局最後は実装して試してみるしかないので、プログラムを高速化するためには自分のプログラミングも速いほうがずっと有利っていう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一般的には、最初から拡張性を仕込むのは悪手なこと多い。 思考実験的に、こういう拡張はここを変えればいける、という見通しだけくらいで良い。 YAGNI https://t.co/KqTrhwJLM6」 / Twitter
- YAGNI と premature complication #4
- Rui UeyamaさんはTwitterを使っています 「Chromeを1秒でリンクするのはどうやっても無理かも。データをコピーするだけで0.75秒くらいかかるから、まともな処理をするには残りの時間が少なすぎる。1.5秒でリンクするのなら現実味あるかも。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「データをmemcpyでコピーするところは数コアでサチるので、根本的にメモリバスがボトルネックで、速度を上げようがない(多分)。」 / Twitter
histric-4
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても仮想ページの初期化コストって、0初期化よりも、割り込み→物理ページ割り付け、にコストが掛かっている感じある。 …だとすると large page明示指定できるなら高速化可能?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 手元のWindowsだと(i5-8600K)、memcpy自体より仮想メモリのページ初期化コストが大きいですね。 1GB領域のmemset/memcpy速度実験。 VirtualAlloc(≒mmap(anon)) .. ほぼノーコスト 1st memset ... 2.5GB/s(4KBページの先頭のみ初期化だと3.3GB/s) 2nd memset ... 21GB/s 2nd memcpy ... 10.6GB/s」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@shirouzu mmapしたタイミングでページテーブルも埋めるMAP_POPULATEというフラグがあるんですが、それをつけても速くならなかったんですよねぇ・・。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど。 同じmmap領域に、memcpyのセットを2回以上行っても、速度は大して速くならない感じでしょうか?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsでの large page は使い辛そう。 https://t.co/cEh2whGBfX」 / Twitter
- やねうら王、Large Page対応で10数%速くなった件 | やねうら王 公式サイト
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu メモリが十分余っているなら、連続する仮想アドレスに対するアクセスを検知して後続する有効な仮想アドレスを事前に割り当てるサイズを適応的に拡大していけば、page fault handler の呼び出し回数と page table の書き換え回数の両方をだいぶ減らせそうな気がします。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu やねうら王の場合、ページ自体は既に割りつけられていてアクティブに使われている状況下での高速化でしょうから、TLB miss低減の方の効果でしょうね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda 検知+適応的に、というのはOS側がそんな挙動をすれば…という意味でしょうか?」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu その意味でした。 カーネルの改造が必要なのでWindowsの場合、Microsoftでないとできないっすね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「とりあえずChromeは大きすぎだから、gitを自作リンカでリンクして動かすというのを目指すのがよさそう。自作Cコンパイラでgitをコンパイルして動かすのよりずっと簡単な目標でしょ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VirtualAlloc(MEM_LARGE_PAGES) の結果。 やはり物理ページ割り付け・初期化コストが物凄く減った。 (なおVirtualAlloc自体の時間は僅かに掛かる…遅いと125GB/s、速い場合は計測不能) 1st memset ... 21.2GB/s 2nd memset ... 31.7GB/s 2nd memcpy ... 10.6GB/s https://t.co/xPUE5uqvS5」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@shirouzu 入力ファイルをMAP_POPULATEつきでmmapして効果ないなぁと思っていたんですが、出力ファイルをMAP_POPULATEつきでmmapすると顕著に効果ありました。その代わりmmapが非常に遅くなりますが。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 mmap(anon) + write1回の方が速かったりしませんかね。 (direct I/O write 1回(必要あれば追加truncate)が一番速そうですが、リンカだと通常writeでキャッシュに載せた方が後々嬉しいのでしたっけ)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 あと、Win32だと large page で初期ページ割り付けコストがかなり減るみたいですね…mmap(MAP_HUGETLB)で意味があるかはわかりませんが。 https://t.co/BOaM1tVLDu」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ただし 2nd memcpy が 15.8GB/s 出ないのがやや謎…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この結果を見ると、もう少しWin32でもlarge pageの利用ハードル(gpeditでユーザ許可必要、原則要admin)を下げて欲しいところ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「ついにいい方法を見つけた気がする。出力先のファイルがすでに存在する場合、新たなファイルを作るかわりに、既存ファイルをそのままmmapして内容を上書きしてしまえばいいんだ。遅いのはページフォールトではなく、ファイルシステムが新たなブロックをファイルに割り当てるところだった(多分)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「これでファイルの書き込みにかかる時間が750msから500msになって、1秒切りのゴールにぐっと近づいた感がある。まあデメリットとしては、中途半端なところでリンカが殺されると食われた状態の出力ファイルが残るというのがあるけど、これは速度のために許してもらおう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Linux kernel を漁る時に、関数ポインタテーブルになってる部分が追いづらい… fop->write() みたいなコードになっている時、代入されうるxxx_write がリスト選択して追えるサイトって無いのかしらん?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど。 昔のSolarisのコードだと write(2) の entry部分で rw_lock(inode, writer_mode) みたいなコードでシリアライズ強制でしたが、今時のwrite(2)でも同一fdでは並列動作しないという感じですかね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@shirouzu MAP_ANONでmmapした領域にmadviseをするとtransparent huge pagesを有効にできたりするんですが、そういうのを試しても速くなりませんでしたね。最後のwriteが遅すぎて(O_DIRECT使って、かつ複数のスレッドから呼んでも)。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど…通常の方式だと、物理デバイスへのmsync/fsyncは待たずに終了なのでしたっけ。 (だとしたら、O_DIRECTは遅くなる方向にしか効かないですね) あと、O_DIRECT + 複数スレッドというのは、write(2)を複数回実行ということでしょうか…?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@shirouzu そうです。writeに2GBのバッファへのポインタを渡してもカーネル内でシングルスレッドでデータコピーしているぽいので、バッファを複数のブロックにわけて複数のスレッドからpwriteしてみました。」 / Twitter
histric-5
- Brian GesiakさんはTwitterを使っています 「@rui314 I'm not an expert by any means, but would it be possible to install a signal handler to delete the file if mold is halfway through updating it? Or is the overhead of adding a signal handler not worth it?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@modocache The usual technique to create an output file is to create it with a temporary name and then rename it an output filename. Since renaming is atomic on filesystem, it is either you'll have the original file with the original name or the new file will replace the original one.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@modocache But if you overwrite an existing file, you can't undo it easily. If you keep the original file contents somewhere, you may be able to write it back, but that incurs the cost of copying file contents at the beginning.」 / Twitter
- Brian GesiakさんはTwitterを使っています 「@rui314 Oh yeah, totally. I thought a concern would be having a file remain there, but with broken content. If mold is interrupted, I thought it'd be nice to delete the half-overwritten file, since it almost certainly shouldn't be used.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@modocache Ah, sure, good point. Deleting a broken file is probably better than leaving it as-is.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「一回作ったことがあるリンカをもう一回作るというよく知ってるテーマでここ一ヶ月ほど暇を惜しんでコードを書いてて、自分一人でやっているし、条件としては最もよいはずなんだけど、月産2700行しか書いてない。プログラマの生産性なんてこんなものです。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「簡単なプログラムがリンクできるようになったので、リンカのソースをいじっていろいろ整理してる。動くようにする(なにをするべきかを学ぶ)のと、その過程で学んだことを元にコードを整理するというのは、やっぱり小さいステップで交互にやるのがよさそう。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「こういうのは多分ある程度は経験が必要で、経験が浅いと不必要に汎用的(と自分は思っているけど本当は単にややこしいだけ)なコードを書きがち。多くの場合、とりあえず動くやつを書いて、あとから必要に応じて整理したり書き直したりするほうがいいと思う。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「あとこういうのは、コードを大切にしすぎないのが多分重要で、リファクタリングしたつもりで書き直したけどやっぱり後で元の方法に戻した、とかもいいと思うんだよね。そういう試行錯誤をするためにはコーディングとかタイピングが速いほうが有利なので、量が質に転化するみたいなところはある。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldもいい感じに開発が進んでて、8コアくらいの中堅PCでもChromeみたいな巨大なプログラムを1秒以内でリンクできるようになる可能性ある。しかしこの目標達成できたら、ビルドのリンクのステップが遅いという何十年もプログラマを悩ませてきた問題が、ついに完全かつ最終的に解決されてしまうのでは?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「とりあえず自作リンカでgitをリンクできるようにしようとしてる。なんかすごく似たことをつい数ヶ月前にもやってたような・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なんかリンカばかり作ってるけどこれは偶然の成り行きで、最初にlldを作ったときは、コンパイラとリンカを作らないといけないけどどっちがいい? とマネージャに聞かれたので、コンパイラはむずそうだけどリンカは気合いで作れそうだなと思ってリンカにしますと言ったからそうなっただけなのであった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「言語処理系好きなひとはコンパイラをやりたがるからリンカを選ぶ人は珍しいなと言われたんだけど、そもそもそれまで僕はJavaとJavaScriptでWebフロントエンド書くみたいなことをやっていたので、まいっかという感じであった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「今また別のmoldというリンカを作っているのは、学校での研究としていい感じに動くコンパイラを作ろうと思ってたんだけど、学期が始まった後に「作ってみました」だけじゃどうかなぁ・・と教授に言われたので、しょうがなく超速いリンカを作るというプロジェクトに切り替えただけなのであった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いい感じに動く面白いものを作りたいとは思うけど、具体的なテーマそのものにはあんまりこだわりないかも。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「マネージャにはWindows向けのちゃんと動くリンカを作ってよと言われただけだったんだけど、すごく速いやつを作ったらこれをUnixに移植して使いたいという人たちが出てきて、僕もそれに取り組んでた。なので高速Unixリンカを書くというのは完全に脱線状態なだけなのであった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「今週の教授との定例ミーティング終わり。なんでmoldが速いくてどこらへんに新規性があるのかをプレゼンを用意して説明したら喜んでもらえたぽい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「おお? 自作リンカでリンクしたgitが動いた! なんかコマンドが終了するタイミングで必ずクラッシュするけど・・。」 / Twitter
- dancerj 🗾さんはTwitterを使っています 「@rui314 .finiセクションかなんだったかデストラクターのセクションだったかが順番間違ってるとかありがち・・・」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@dancerj 普通にありえる」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「今日のプレゼン資料の1枚目には、「catコマンドより速いリンカを作ってビルドのリンクが遅いという問題を最終的かつ完全に解決する」とババーンと書いておきました。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「git --helpが最後に落ちるのは、stdoutがあらぬところを指しているからだった。コピーリロケーションを実装したら動くようになった。stdoutがデタラメな値なのに途中まで動くっていうのもすごいけど。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「次はenvironがあらぬところを指しているらしい。オールスターだ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「environ変数が見えない問題は直した。なんかコピーリロケーションの微妙な問題だったんだけど、こんな世界でも100人くらいしか実際の仕様を知らなさそうな微妙な動作(文章化されてない)にあらゆるLinux実行ファイルが依存してていいんだろうか? 低レイヤだとありがちな状態だけど・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いや、なんか違うかも。仕事ももちろんフルタイムで取り組んでいたし、OKRとかで期末までに成果を上げてほしいという仕組みがあったし、いい仕事をするインセンティブもあったと思うけど、今ほどのやる気はなかったような・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「A+が欲しいから選んでみたテーマだけど、最速リンカを作るというのはいいテーマだったかも。というかフルタイムで取り組める時間と、学期末までに成果を出したいという気持ちの両方があれば、いろんなテーマでそこそこ面白いものが作れるんだろうけど、学校というのはそういう意味で悪くないのかも。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なんとなくあと数日デバグを頑張ったらgitが動くようになりそうという気がする。moldでgitがリンクできるようになったら、chibiccとmoldでgitをビルドしてみて自作ツールチェインの完成度の高まりを感じてみたい。」 / Twitter
histric-6
- Rui UeyamaさんはTwitterを使っています 「よっしゃ。chibiccでコンパイルしてmoldでリンクしたgitのバイナリで自作ツールチェインのリポジトリをgithubにpushするのに成功した。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、現在3677行。そんなに欠けてる機能があるとは思えないから、多分4000行でChromeをリンクできるリンカを書ける。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「git range-diffの表示するdiffが少しだけ違うという問題をデバグしてる。リンカのエラーでこんな微妙な問題、どうやったら生じるんだろ?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「これはlibcにregexecという同名の関数が複数含まれていて、想定してるのと違う古いバージョンのを偶然使ってしまっているからぽい。つまりシンボルバージョニングに対応しないといけないぽい。バージョニングには対応しなくても動くと思っていたけど、想定甘すぎた。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldでリンクしたgit、テスト完走した。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「git linked with mold (my new linker) can now pass all its tests.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「学期末まであと1週間半で、目標のchromeはまだ動かすには至ってないけど、gitが動くところまで来てるんだし、現時点でもA+もらえるんじゃないかなぁ。lldの10倍速いリンカを作ってみるなんて、学生の一学期分の研究成果としては正直やりすぎなくらいだろうし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldでmold自身をリンクして全部普通にテストが通った。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「今週のウィークリーミーティング終わり。USENIX ATCに出すかーみたいな話をしたけど、それなら論文提出締め切り1月15日なんだよね。忙しくなりそう。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「おお?? 新作の自作リンカことmoldでリンクしたChromiumが、あっさりと普通に起動してしまった。ここまで2ヶ月しかかかってないぞ。 https://t.co/Vj9iHq7Kdh」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@kw_udon_ いまのところ5秒弱かな。これでもlldより倍以上速いけど、ファイル読み込みんだ後のイメージをデーモンにしてメモリに常駐させることで1秒切るところまで縮めるつもり。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@kw_udon_ 実際ファイル読み込みのところとかを除くと0.8秒くらいしかかかっていないので、1秒切りは普通に可能な目標という感じ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Looks like Chromium linked with mold (my new linker) started working just fine. I've spent only two months so far for this project, though. https://t.co/WOEAJPtReg」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「リンカを書くのは実はそんなには難しくなくて、moldも4000行しかない。ただ、ドキュメント化されていない隠れた仕様が多い上に、それを正しく実装してないとわけのわからないエラーで落ちる実行ファイルができてしまうパターンが多いというのがつらい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「教授との最終のミーティングが終わった。なんかポリシーとして(?)A+はないけどAだし、PhDいくならいい推薦状書くよと言っていたけど、A+ないんか〜 最初から言ってくれ〜。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「この論文、USENIX ATCよりACM OOPSLAに出すほうがよくない?という気がしてきた。教授に相談してみるか・・。しかし教授も正直この分野そんなに詳しくないと言っていたからどうしたもんか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、LLVMをライブラリとして使ってELFファイルを読み込んでたんだけど、自前コードで書き直してLLVMを使わなくすることに成功した。そんなに重要じゃない使い方なのに大きいライブラリに依存してるのってあまりよくないので。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、LLVMへの依存性をなくした代わりに、string_viewとかspanみたいなC++17/C++20の機能使いまくりのコードになってしまった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「うーん、やっぱりC++は手に馴染むな・・。書きやすいし性能も出るし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「C++に慣れれば慣れるほど構造体に毛の生えた程度のbetter C的な書き方になっていくのは気のせいか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold普通にリンカとして悪くないのでは? という完成度になってきたけど、コードはC++で4600行。C++標準ライブラリにしか依存してないし(マルチスレッドのためにIntel TBBは使ってるけど意味的には無視できる)、シンプルで高性能で結構よいのでは。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、お膳立ては揃ったから、いよいよChromeを本当に1秒でリンクできるようにしてみるかな。ただ、予備実験ではfork(2)をすると(多分copy-on-writeのオーバーヘッドのせいで)リンクに1.5秒くらいかかるようになってしまったので、ちょっと別の方法を考えないといけない。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「うまくやれば多分1秒どころか800ミリ秒くらいでいけると思うので、単なるファイルコピーより速いリンカという目標を達成できると思う(cpとかcatだと1.1秒くらい)。」 / Twitter
- 成瀬さんはTwitterを使っています 「よっしゃ、vfork(1)の出番だ!!」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「あら? moldでのChromeのリンク時間、mallocをtcmallocとかtbbmallocに換えただけで4.5秒→2.5秒になってしまった。glibcについてくるデフォルトのやつはマルチスレッドでそんなに遅かったのか・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「メモリをたくさん使っているプロセスは_exit(2)ですら500ミリ秒くらいかかったりするので、それを隠蔽するようにしたら2.0秒になった。lldだと11.5秒くらいかかるから、もうデーモン化みたいなしゃらくさいことをしなくてもこれで十分じゃないか?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Chromeをリンクするのにかかる時間です。64コアマシンだけど、16スレッド動かせば十分という感じ。もっといい感じにスケールしてほしいけど、まあこんなもんかなぁ・・。 https://t.co/gZM7ejtbEt」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「しかし2秒だと普通に使ってて「はやっ」ってなるわ。」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@rui314 「アムダールの法則」のカープになっているように見えます。」 / Twitter
- アムダールの法則 - Google 検索
histric-7
- Rui UeyamaさんはTwitterを使っています 「mold、完全に目処がついたと言ってよさそう。Chromeをリンクするのに2.5秒、直前に同一コマンドを実行してファイルをプリロードしておくと、ほとんどの入力ファイルが同じ場合に0.8秒という結果になった(16スレッドでテスト)。ほかのリンカだと最低10秒かかるから、めちゃくちゃ速いといっていい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「どう考えても仕事をやめた後のほうがいいプロダクトを作れている。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「この個人プロジェクト、別にGoogleでやるのも不可能じゃかったとは思うけど、こういう自由研究みたいなのを一人でできる立場になるのって結構大変だと思うんだよね。かといって別の本業プロジェクトの片手間でやるとなんか肩身狭いし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「しかし2ヶ月頑張っただけでこんなに劇的に速いリンカが作れるというのも、簡単すぎてちょっと変な話なんだよな。リンクが遅いというのは多くのプログラマがビルドコマンドを叩くたびに感じていることで、なぜそういう日常的な問題がこんなに放置されていたのか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「まあ「作るという発想がないから」というのが答えなんだろうけど、同じ理由で、広く使われているのにしょぼい状態で放置されているものってたくさんあるのかも。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Intel TBBがなければこんなに簡単にパラレルなプログラムは書けなかったのでIntel TBB様々だわ。よいライブラリだ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldにバックグラウンドでのファイル読み込み機能を実装して、直前(数秒前とか)に同じコマンドを--preloadオプション付きで実行しておくとChromeが1秒でリンクできるのを実際に確認した。これで数ヶ月前に立てた目標を無事達成! 無理そうな目標があっさりと実現できてしまいましたね・・。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「最後の最後にUNIXドメインソケットとかfile descriptor passingみたいな知識が必要になって、UNIX詳解プログラミングを読んでおいてよかったなと思いました。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldリンカいまでも十分に速いけど、一層速くするには自分でコンカレントなハッシュマップを自分で書かないとダメかもな。ここらへんを参考にちょっと書いてみてもいいかも。 https://t.co/O2alK8E3jS」 / Twitter
- Algorithmic improvements for fast concurrent Cuckoo hashing | Proceedings of the Ninth European Conference on Computer Systems
- Rui UeyamaさんはTwitterを使っています 「64コアThreadripper使い切るの難しいというか、アプリケーションによってはほとんど不可能だな。今書いてるやつだと10コア20スレッドくらいで性能が頭打ちだし、これ以上スケールするように書ける気がしない。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「I/Oが少なくてずっと計算をするようなタイプの処理がたくさんあるなら、64コアまでスケールするのかもしれない。そういうワークロードじゃなければ、Ryzen 5900X(12コア)か5950X(16コア)あたりで十分そう。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「もう十分に速いから最適化はこれくらいにしとこうかな。2GBのChromeのファイルを10コア20スレッドで1.8秒でリンクできるし(デーモン化みたいなトリックなしに)、これ以上はどんなにがんばっても数百ミリ秒しか速くならないだろうし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いつのまにかmoldがRedditに投稿されていた。この作者の目標は過大すぎて疑わしいみたいな感じのことを言っている人もいるけど、README更新してなかっただけでもう結構実証されてるんだよな・・😅 https://t.co/VX2I0PXfeD」 / Twitter
- mold: A Modern Linker : cpp
- Rui UeyamaさんはTwitterを使っています 「C++で例外をスローできるようになった(なんかリンカがテーブルを作成したりしないといけない)。これなしでChromeをリンクして動いてたってのはすごいな。。しかしこれで主要機能を全部実装したのでは。」 / Twitter
- _ko1さんはTwitterを使っています 「@rui314 Chromeは例外使ってないのを徹底してるってことですか」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@_ko1 でもなんかいろんなライブラリが入っていて、どれでも使ってないというのはありえるのかなぁ。まあ、起動してちょっとサーフィンするくらいなら使ってないのかも。」 / Twitter
- _ko1さんはTwitterを使っています 「@rui314 使ってたらビルドできなそうじゃないすか」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@_ko1 リンクはできちゃうんですよ、ただそのままだと例外が投げられたタイミングでハンドラが見つからなくてクラッシュするだけで。」 / Twitter
- _ko1さんはTwitterを使っています 「@rui314 なるほど、単にセクション無視しちゃうだけと」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@_ko1 例外のハンドルの仕方がわかるレコードがたくさん入っているセクションがあるんですけど(.eh_frame)、これをリニアにスキャンするとめちゃくちゃ遅いので、関数のアドレスで二分探索できるテーブルがあって(.eh_frame_hdr)、これを作らないと例外がキャッチできないという。」 / Twitter
- _ko1さんはTwitterを使っています 「@rui314 (多分あんまり)undocumented world だ」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「高速化のためのアイデアとそれを実装しなかった理由というのをREADMEに追記してみた。実装からは何が実装されたのかがわかっても、何がなぜ実装されなかったのかはわからないので。 https://t.co/V5MIFw4jJB」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「リンカの機能を説明するためにUnixの歴史を説明するというアアプローチになった(未完)。 https://t.co/iCaLUnJSzi」 / Twitter
- rui314/mold: mold: A Modern Linker
- Rui UeyamaさんはTwitterを使っています 「moldのマルチスレッドの使い方について追記してみた。 https://t.co/IS736Nd7lT」 / Twitter
- rui314/mold: mold: A Modern Linker
- Rui UeyamaさんはTwitterを使っています 「Chromeをリンクするときにgoldで50秒、lldで5秒かかる機能を1秒に縮めることができた。新規性あるアルゴリズムぽいから論文書くか。」 / Twitter
histric-8
- Rui UeyamaさんはTwitterを使っています 「しかしグラフの問題に帰着するのでいかにも先行研究がありそうなんだけど、あんまり詳しくなくて(というか分野が深すぎて)どうしたもんだか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「goldで50秒かかる処理をlldで5秒にしたときは、何週間もアルゴリズムについて考えていたし、結果として劇的に速くしたと思ったもんだけど、数年後にまたいいアイデアがわりと簡単に出たりするから面白いもんだ。今回は1〜2日しか考えてないし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いや、これは去年、学校の授業(具体的には暗号の授業)でいろいろ課題をやったから簡単に考えつくことができたアルゴリズムだな。数年前より成長している。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いい感じに計算量が少なくて並列化もしやすいアルゴリズムを考えて、実際のコンピュータでいい感じに動くように実装するの(コンパクトなデータ構造を考えてキャッシュによりやすくするとか)、腕の見せどころという感じだ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「アルゴリズムを考案するのは面白いけど、それを性能評価できるレベルまで実装するのは結構辛い。実装してみたら大して性能出ませんでした、というのもあるし。どうしても根性みたいなものがいる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「さらにちょっと最適化して1秒→770ミリ秒まで縮めた。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「いや違うな、同じコア数だと940ミリ秒くらいだ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「最近考えていたアルゴリズムについてコメントを足してみようと思ったけど、これこそコメントじゃなくちゃんと書くべきなのかもな。正直こういうグラフの問題は図がないとわからないし。 https://t.co/UGyHkOucy7」 / Twitter
- mold/icf.cc at main · rui314/mold
- Rui UeyamaさんはTwitterを使っています 「今書いてる論文、思ってたよりちゃんと数学的な証明を書かなくてはいけなくて、宿題で証明問題がやたら出ていたグラフ理論の授業ありがとうという気持ちになっている。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「昨日まで考えていた証明に穴があったので今日またずっと考えてたんだけど、正しい証明にたどり着いた気がする。数学っぽいやつは時間がやたらかかる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「僕が今まで当然正しいと思って使っていたアルゴリズム、よく考えてみると本当にきちんと動くかどうか全然自明じゃなかったという。怖い話だ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「論文書くの疲れた」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「普通にLinuxで動くリンカを作るために必要な機能をまとめたサーベイ論文も書きたいんだよな。これは本当に必要というか、実際のコーディングよりもこの調査のほうが大変という状態なので。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「サーベイ論文というと近年の研究をまとめたものというイメージだけど、こういうなんのドキュメントにもなってないものを文章化するみたいなやつもサーベイ論文と言うんだろうか。まあサーベイではあるからサーベイ論文なのかな?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「論文、アルゴリズムと実装の部分は書き終えたから、あとはベンチマークだ。これは結構手間かかるだろうなぁ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なぜmoldをRustで書かないのかという質問が来たけど、 1. C++が一番慣れてる 2. Intel TBBみたいな良いライブラリがそろってる 3. こういうプロジェクトでは、実装しようとしているもの自体が興味深いのであって、どの言語で実装するかはそこまで重要ではない という感じかな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、Firefoxのビルドもびっくりするほど速い。ビルドしたバイナリが動作しないという点を除けば完璧だな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「お、moldでFirefox動いた。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「.soファイルやビルド途中のアーティファクトも含めて、ChromeとFirefoxの全体がmoldでビルドできた。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「なんかリンカの微妙なバグにより、Ctrl-wでウィンドウを閉じたときにChromeがクラッシュするという謎の問題が発生したけど、エスパーにより数時間で原因が判明してしまった。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、LLVMをリンクしてテストが完走した。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold is now able to link Chrome, Firefox and LLVM! Still buggy but getting closer to be a production quality linker.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Everybody loves benchmark, so here are some numbers. mold vs. lld link time: - Chrome (1.9GB): 2.1s vs. 12.0s - Firefox (libxul.so, 1.3GB): 1.5s vs. 6.2s - Clang (2.1GB): 2.0s vs. 4.7s So mold achieves roughly 1GB/s throughput. All builds are w/ debug info.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「現代的なソフトウェア産業の方向性とは全然違うけど、いい感じのプログラムを一人で作ってるときが一番楽しいな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold isn't just fast but small and simple. Currently 6.5 kloc. IMO its source code is pretty clean. I'd like to write "demystifying ELF linking" paper based on it if I have enough time.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、なんじゃこりゃというくらい新機能追加が簡単だな。目ぼしい機能は実装してしまったから後はバグ出しか。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「It is sometimes surprisingly hard to modify a build system to use an alternative linker, so I made it easy by a hack. By running make as `mold -run make`, mold intercepts all invocations of /usr/bin/ld to redirect it to itself. https://t.co/0UXU4iT9xP」 / Twitter
- rui314/mold: mold: A Modern Linker
- Rui UeyamaさんはTwitterを使っています 「I was trying to build various programs with mold for testing, but it's not easy to figure out how to make them to use the nonstandard linker. Me: "But isn't this exactly the issue a potential mold user would face on day one?" So I came up with this hack.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「For now, mold can link chromium, firefox, llvm, mysql, postgresl, ffmpeg, libunwind, openssl, zlib & a few more. What else?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold、現状で9000行くらい。機能を足していくとどうしてもコード量は増えてしまうな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「x86-64以外に移植するためにmoldを改造してみた。アーキテクチャ依存の部分をくくり出すんじゃなくて、ほとんどのクラスと関数をテンプレートにして、実質4パターン(ELF 32/64 little/big endian)のコードをまるごと生成するという荒業だけど、まあ悪くなさそう。 https://t.co/V5MIFw4jJB」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Trying to make mold portable. Instead of separating arch-dependent code from indep one, I made almost all functions and classes template to virtually create 4 different linkers (ELF 32/64 LE/BE) living in a single exe. Kinda brute force and little bit inefficient but not too bad.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「mold is gaining i386 support. It can read i386 object files and create an i386 exe, though the produced binary crashes inside libc_start_main.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldはx86-64ベタベタで書いてたけど、その気になれば2日でi386サポートが大体動くところまで改造できるわけで、最初は移植性について考えないというやり方で正解だった。新しくプログラムを書くときは、あれもこれもと考えがちだけど、ある程度完成するまで余計なこと考えてもしょうがないんだよね。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Dynamically-linked "hello world" program worked with mold/i386! i386-dependent code in mold is just this: https://t.co/JOnDDKiGOO」 / Twitter
- mold/arch_i386.cc at main · rui314/mold
- Rui UeyamaさんはTwitterを使っています 「mold no longer leaks memory. I don't care too much about memory leaks if it is a short-lived program such as a linker, but I did it because it wasn't too hard to fix leaks. It was actually trivial thanks to AddressSanitizer.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「I made a few changes to make mold suitable to be installed under /usr/bin. One thing I had to do was to write a man page. https://t.co/gjGgRBmTqr」 / Twitter
- Man page of MOLD
- Rui UeyamaさんはTwitterを使っています 「Finally figured out why go's gc collects live objects only when some .so are linked with mold. It was extremely puzzling and took a few days to debug. Turned out it was a go's bug and not mine. https://t.co/R1NaMn5Y2Q」 / Twitter
- cmd/link: `go tool dist test testshared` failed if linked with lld or mold · Issue #46560 · golang/go
- Rui UeyamaさんはTwitterを使っています 「I already made a change to mold to appease go, even though technically it's their fault. It's an inconvenient fact: complying with the standard is not enough, you need to make it bug-compatible to make your linker work in real life.」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「moldのclangのリンク時間を3.6s→2.5sに縮めた。出来合いの並行ハッシュマップだと性能が出ないので、HyperLogLogアルゴリズムでテーブルサイズの見当をあらかじめつける&並行ハッシュマップを自分で書くという合わせ技。 https://t.co/1nJcV4exCV」 / Twitter
- Optimize string merging · rui314/mold@41b2fa7
histric-1
- Rui Ueyamaさんのツイート: "今日説明していて思ったけど、lldは僕の考え方を反映した、普通にはよくないとされているけど僕は良いと思っている手法が導入されているんだなと思った。 - メモリはプログラムの終了時まで解放しない - コード重複はしてもいいのでプラットフォーム共通になるように抽象化しない"
- Rui Ueyamaさんのツイート: "lldにおいては成功した取り組みだったと思うけど、いずれにせよソフトウェアエンジニアリングというのは実践的なもので、「正解」があるものではないので、非伝統的や非正統的であっても、単に自分がよいと思うものがあったら追求していってほしい。例えばオブジェクト指向とか別にどうでもいいし。"
- Rui Ueyamaさんのツイート: "「メモリを途中で解放してもたかが知れてるから最後まで解放しないほうが単純」とか「抽象化せず多少重複したコードを書くほうが簡単」とか主張するのは勇気がいります。XX原則に従ってないとか必ず言われるからね。でも多分そんなに難しく考える必要ないと思う。簡単に書くのが一番重要。"
- Rui Ueyamaさんのツイート: "リンカをより速くするプロポーザル書いた。 https://t.co/tsCOkSOXvO"
- [llvm-dev] [RFC] lld: mostly-concurrent symbol resolution
- Rui UeyamaさんはTwitterを使っています: 「goldはタスクを小さいジョブに分けて、依存関係を管理しつつ、実行できるジョブを並列にどんどん実行していくみたいな凝った作りになってるのに、単純な並列forループしか使ってないlldのほうがスケールするのは面白い。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「lldはGNUリンカとの完全互換を目指していたので、あんまり重要ではない、ただ伝統的にそうなっているという動作を同じように実装する必要があって、最適化には限界があった。もっとシンプルな作りで、スピードを第一目標にしたリンカを作ってみたいとは思ってた。ニーズも大いにあるし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「lldを使っても大規模プロジェクトだとリンクは遅くて、プログラマの生産性を明らかに下げてる。しかし既存リンカとのコマンドライン互換を諦めたらあと10倍くらい速いやつが作れそうな気も?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「小規模プロジェクトだとそもそもリンカに対してニーズが特にないのでコマンドライン互換でそのまま使えればいいという感じだけど、大規模プロジェクトだとビルドファイルに変更を加えてもいいからとにかく速くリンクしたいというニーズがあって、後者にフォーカスすればlldを置き換えれるかも。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「オブジェクトファイルをcatして1つのファイルにまとめるのと同じくらい速いリンカというのを作りたいんだよな。あながち無理でもなさそうというか、catって複数のファイルをまとめるコマンドとしてはあんまり速くないし。」 / Twitter
- Junio C HamanoさんはTwitterを使っています 「@rui314 出来上がりのバイナリが実行開始するまでのレイテンシーを犠牲にしてよいのなら、ホントにcat程度にしておいて、起動後、実行時に、通常ならリンカがするはずの大方の処理を行なう、みたいなズルはできそうだけど、そういうのを狙ってるわけじゃないよね😜?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@jch2355 今までのリンカが並列にやってこなかったことを並列にやるみたいな感じのことを考えてます。コマンドを起動したらまっさきにファイルをコピーし始めるくらいの勢いで動くものを。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「1.9 GBのchromeの実行ファイルをリンクするのにlldで12秒かかる。これを2秒とかでできるリンカが作れないかなと考えてる。理想を言えば1秒にしたいけど(1.9 GBのファイルをcpすると1秒かかるので)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「goldリンカだと54秒かかるので、lld作った時点ですでに相当速くしちゃってるんだよな(自分でハードルを上げていくスタイル)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「リンクの遅さに対する対策として、プログラムを複数の.soに分割したりインクリメンタルなリンクを実装するというアイデアがよくでてくるけど、なんかいろいろ複雑になっちゃうから、そういうのは根本的にはあんまり筋がよくない解決策だと思う。単にリンカをすごく速くするほうがいいはず。」 / Twitter
- ASCII.jp:2021年のWindows 10の大型アップデート「21H1」はこうなる(予定) (2/2)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++のリンカだと、ファイルIOが主要ネックに見えるけど、すでに読み取り1回、書き込み1回的な状態になっているのかしらん?」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@shirouzu ファイルIOがない考えてるだけの時間が長過ぎるんですよね」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@rui314 なるほど…オンメモリ処理が1/5~10になるとしたら凄いですね。」 / Twitter
- Lizan ZhouさんはTwitterを使っています 「ほしい…ASANでコードサイズが爆発的に増えても速くリンクできるようになるとうれしいな…」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@lizan ASANでそんなにリンク遅くなるっけ?」 / Twitter
- Lizan ZhouさんはTwitterを使っています 「@rui314 コードサイズが倍近くになるはず」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@lizan ああそうか確かに」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「そういやAndroidもlldに移行すると言っていたけど、もうそろそろ完了してそう。ほかにもPlayStation、Switch、Chromeとかはlldを使っているはずだから、僕らが作ったリンカの出力が我が家でもいたるところにあるな。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「lldを速くするという研究で論文を書いている人がいた。スウェーデンの学生の卒論かな。 https://t.co/moXtdj4WZE」 / Twitter
- Optimizing the LLVM ELF linker for a distributed compilation environment : Concurrent Linking with LLVM LLD
- Rui UeyamaさんはTwitterを使っています 「僕がオリジナルのコードを書くと、メモリリークしたままexitするのはないわとか、グローバル変数使いすぎとか言われるんだけど、そういう細かいところじゃなくてもっと本質的に何やってるかに着目してくれ〜。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「まああと、メモリ解放しないまま最後にexitでまとめて始末するのもやり方としてはありだし、プログラム中に1個しかないものならグローバル変数を使っても別にいいし(というか多くの人が必要以上に避けすぎ)。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「コードからファイルを開くのが、例えばmainに渡されるFileOpenerというオブジェクト経由でしかできないみたいな仕様になっていたら、グローバル変数に代入したくない一心でFileOpenerをあらゆる関数の引数に足すひと結構いるんだろうなと思う。つまり実質グローバル変数みんな普通に使ってるのよ。」 / Twitter
- 市川 真一さんはTwitterを使っています 「メモリ解放せずに exit するポリシーだと、そのような発想になるのは理解できます。それで、実質的にグローバル変数を使ってるという認識は当然あるのですけど、exit せずにプログラム全体を再始動させたりするのに、グローバル変数の参照がプログラムの至る所にあると難しいというのが理由です:」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「速いプログラムを書くためには、性能の出そうなコードを結局何パターンも書いて一番いいものを選ぶとかしないといけないので、勘と実装力の両方が問われる。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「よさそうなアルゴリズムを思いついたので実装してみたら、かなり有望な数字が出てきた。これ特にVisual Studioのリンカが速くなりそうだなぁ。またMicrosoftに感謝されそう。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「有向グラフにおいて「あるノードから到達可能なすべてのノードとエッジからなるサブグラフ」を一言で言う用語ないんだっけ。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「Demystifying Unix linkersなるドキュメントを書き始めた。めちゃくちゃ基本から解説して、誰でもUnixリンカの動作とか機能を理解できるものにしたい。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「このテーマだと僕より詳しい人はほとんどいないし(成り行き上詳しくなっただけだけど)、ここまでの調査に要した時間を考えるとドキュメントにまとめないのは大きな損失なんだよな。自分でも忘れてきてるし。」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「@ZebraCakes 英語で書いてます(日本語はないです)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「There are not too many people who know how hard a linker development can be, and Jakub and I are the ones!」 / Twitter
- Jakub KonkaさんはTwitterを使っています 「After a lot (and I mean it, a lot) of debugging, and a few rewrites, I am super happy to announce that @ziglang ld (or zld) is successfully able to link C++ on arm64 macOS, and as a result, you can now bootstrap Zig's stage1 compiler from anywhere: https://t.co/jUYoXDdvjY」 / Twitter
- (2) Rui UeyamaさんはTwitterを使っています 「Linker is not a very complicated program IMO, but it is hard to develop because of a few reasons: - lack of documentation - debugging a program-generating program is generally hard」 / Twitter
@fadis_
- Fadisさんのツイート: "本日最後のセッション、 @rui314 さんの「 lld: 速くてシンプルなリンカ」が始まります #kernelvm"
- Fadisさんのツイート: "lld: ELF、COFF、March-Oを喋る事ができるリンカ #kernelvm"
- Fadisさんのツイート: "GPL3のbinutilsを使いたく無いBSDな人たちがシステム丸ごとlldでリンクできるようにしようと頑張っているらしい #kernelvm"
- Fadisさんのツイート: "lldでWebAssemblyのリンクも行う事ができる!! #kernelvm"
- Fadisさんのツイート: "lldの目標: GNUリンカよりシンプル シンプルなら簡単に理解でき、hackableにできる #kernelvm"
- Fadisさんのツイート: "lldはGNU ldの為のリンカスクリプトをできるだけそのまま使えるようにしているが、当のGNU ldも従来のldとgoldでリンカスクリプトの解釈が違っていて厳密な互換はそもそも取れそうにない、と #kernelvm"
- Fadisさんのツイート: "プログラムのサイズにもよるがlldはgoldより2倍から5倍速い #kernelvm"
- Fadisさんのツイート: "「2ソケット20コア40スレッドのXeonでリンカのパフォーマンスを比較」 「パワフル過ぎでは」 #kernelvm"
- Fadisさんのツイート: "新規に作ったリンカである為正確に何が速度の差の決め手になっているかは作者も分かっていないが、問題に対して素直なデータ構造で実装すれば速さはついてくる、というポリシーに基づいて開発している、と #kernelvm"
- Fadisさんのツイート: "C++では名前のマングリングが行われる為シンボル名がとても長くなる傾向がある → これが並んだシンボルテーブルの参照は遅い → C++で速いリンカを作るためにはシンボルテーブルの参照を可能な限り減らす必要がある #kernelvm"
- Fadisさんのツイート: "リンカをマルチスレッド化する際には出力が決定論的になる(スレッドがどう実行されたかによって順番が違っていても良い情報が入れ替わったりしない)ように注意して実装する必要がある、と #kernelvm"
- Fadisさんのツイート: "リンカの実行時間のほとんどは入力ファイルを出力ファイルに置き直す時間と、大量の文字列のマージでと、シンボル名解決で、このうちマルチスレッド化が難しいシンボル名解決以外をマルチスレッド化する #kernelvm"
- Fadisさんのツイート: "文字列のマージは従来1つのハッシュテーブルを使っていたが、複数のスレッドが挿入すると順序が決定論的にならない → スレッドごとにハッシュテーブルを作って、全てのハッシュテーブルに対して挿入したい値の存在のチェックをする #kernelvm"
- Fadisさんのツイート: "lldとgoldのコードの複雑さをコードの長さで比較しようにも、goldがアーキテクチャ毎にコピペプログラミングをしていてコード量が爆発していてあまり良い指標にならない、と #kernelvm"
- Fadisさんのツイート: "clangがきっかけとなってC++のエラーメッセージは随分読みやすくなった → リンカのエラーメッセージも読みやすくしよう、ということでlldはDWARFの情報を呼んで人間に優しいエラーメッセージを出している #kernelvm"
- Fadisさんのツイート: "いかに短いC++のコードから膨大なエラーを出すかを競うコンテスト https://t.co/6EbOnBTHaY #kernelvm"
- Fadisさんのツイート: "lldにおけるLTOでは、lld自体に複雑な最適化は実装せず、リンクが完了したネイティブバイナリの代わりにLLVM IRを吐き出し、LLVMの最適化機能に最適化を丸投げする #kernelvm"
- Fadisさんのツイート: "lldの実装綺麗だなぁ"
- Fadisさんのツイート: "lldはホスト依存の暗黙のパラメータを持たない(リンカを呼ぶコンパイラはどうせ必要な情報を全て渡してくるのでリンカ自体はどこで動かしても同じ動きをするように実装する) #kernelvm"
- Fadisさんのツイート: "質問者「BSDがGPL3を避けてlldを試みているということはMacもそうなのか」 → 「MacはMach-Oを吐くために独自のリンカを使っているためlldを必要とはしていない」 #kernelvm"
- Fadisさんのツイート: "make -jしたビルドが最後のリンクで詰まってマルチコアで性能が伸び悩むの、極めて手軽にアムダール則を体感するヤツだ"
- Fadisさんのツイート: "C++、シンボル名が超長いから「シンボルを解決するための文字列比較にやたら時間がかかる」事を想定していないリンカでリンクすると、リンク時間もエグくなりがち"
- FadisさんはTwitterを使っています 「linuxカーネルは攻撃者が狙った関数に飛びにくいように関数にASLRが出来るが、カーネルの.textは1つしかないためセクション単位で位置が変わってもアドレスがバレやすい。そこで関数毎にセクションを分けてカーネルのASLRの効果を高めようという提案がなされているらしい https://t.co/RYaxOpE4T8」 / Twitter
- FadisさんはTwitterを使っています 「C++、カジュアルに型で計算する言語なので、型のテンプレート引数に膨大な情報が載りがちで、それをマングルすると 長さが100kBを超えるシンボル名 が生み出されて、それを文字列比較するリンクがビルド時間全体の1/3に達したり、デバッグ情報が4GBを超えてRPMに入らなくなったりしがち」 / Twitter
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "#ifdef 等によって、機能差を持つバリエーションを作るのではなく、ビルド後のバイナリ内にパッチを当てることで、バリエーションを作るテスト。 (一部ユーザ向けに、slack転送を無効化したIPMsgを用意する)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "有効化するかの条件分岐にnopを入れるという話ではなくて、volatile int64 flag=シグネチャ値; if (flag) というコードを書いた後、バイナリからシグネチャ値を見つけて0にする、という感じ。 (万一偶数のバッティング時はシグネチャ値を変更)"
- 鯉江さんのツイート: "config.cのようなものにflagをあつめてリンク時につけかえるのではだめ? volatileとなっているところをみるとオプティマイザが頑張ってif(flag)を消してしまう可能性がある?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "volatileを入れているのは、最適化オプションで「プログラム全体の最適化」「リンク時にコード生成」という機能があって、それらを有効にしているとプログラムを1ソースで書いたのに近い最適化が施されるはずなので、その対策です。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、flagはグローバル変数として定義して、複数ソースから参照しています。 (その前提を書いていないと前説明が意味不明だったかも)… "
- The SQLite Amalgamation
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、sqliteは、ビルド用にソース群を一つの.cに変換して、強力な最適化を促すという「Amalgamation」というテクニックを使っていて驚いた記憶。 https://t.co/kg6HB6pz3n… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ごく一部で欲しい組織があるかもしれないので、Slack等への外部転送無効化バージョンを追加しておいた。 https://t.co/wDjue1IdtK"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、ベース版バイナリにパッチを当てる形で作成。 そのため、pdbやcodファイルは、ベース版のみ保持すればよい形に。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「昔は動的リンクで.soを交換すればlibのバグは修正可能。しかし現在はsymbolがversioningされ特定のlibのバイナリに依存」 昔は、DLLがupdateされて既存アプリが動かなくなる=DLL地獄、と言われていた。上記対応(WinだとSxS)で、DLL地獄が解消されたが、同時にDLL更新メリットも消滅した形。… https://t.co/SCKOMkizWI"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、SxS導入以降は IPMsg/FastCopyは共に静的リンクでリリースしていたりする。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "IPMsg/FastCopyは、GUI関係のライブラリ(MFCやQtなど)って、使ってないんですよね。(GDI APIを直接呼んでいます) 静的リンクしているのはC/C++の標準ラインタイムだけですね。… "
- SODA Noriyukiさんのツイート: "なるほど、それなら納得です。 Plan 9の場合は gdi32.dll とか user32.dll 相当のものまで静的リンクしてしまい、異なるバイナリで共有して利用されるのはカーネル部分だけってことになるので、さらに大胆な話だと言えると思います。(まあ太古のUNIXはみんなそうだったんですが)… https://t.co/62NThqcbgv"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 ちなみにIPMsg/FastCopyが静的リンク化したのは、VistaのSxSが導入 + VS2005以降crt系バージョン確認が厳格になり、ビルド時と完全同一crtがユーザ環境にも必須になったため、というのが大きかったです。 (この制限はVS2010以降は緩和されましたが)… https://t.co/pG4I7EOB9g"
- きしもとさんのツイート: "「バージョンを選択する方法」次第のように思うのですが。バージョン番号 x.y.z の、z については大は小を兼ねる、といったようにして、「特定のlibのバイナリに依存」はしないようにするのが普通とか… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにそうですね。 あと、WinSxSだと、Vista時代にWinUpdate程度のcrtのわずかなバージョン違いでもDLLロード拒否を食らった覚えがあるので、OSによる許容ポリシーの違いがあるかもしれません。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "正確に思い出すと、開発環境VistaをWinUpdateすると、利用者側VistaもWinUpdateしないと、DLL版が動作しなくなる、という話だったと思う。 (もしくは Update版の頒布用crtを別途インストールしてもらうか)"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「VC++ で .lib を指定した時に使っていない .o が取り込まれる不思議。 しかもリンク時最適化を有効にしているのだが。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「通常の静的リンクだと、使っている関数を含む .o だけ取り込まれるはず。 さらにリンク時最適化有効だと、.oの中で利用関数と変数以外は削除、と理解しているのだが。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「むむ、関数単位の依存関係は無かったが、.o単位だと隠れた依存関係があった。 プログラム全体最適化を有効にしている場合は、関数単位の依存関係で見て欲しかった。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自分用メモ。 こういう参照関係のときにも、(呼ばれない)mod1_f2() とそれが参照している、mod2/mod3 がリンクされてしまう、という話。 mod1_f1 と mod1_f2 を別ファイルとし、mod1_static をどちらかに寄せて、もう片方は extern参照すれば解決(ただしmod間参照なのでstaticは外す必要) https://t.co/yIYhi6eIZR」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「大昔、同じoだがaだかを二度指定するしか無かった時に、負けた感があった、、、」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@shirouzu あるある。ライブラリ間で循環参照的なのがあったりすると必要になるんですよねえ。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「暗記するのは確かに無駄なんだけど、リンカーがどうやってライブラリに含まれるオブジェクトファイルを拾っていくかを想像すると、暗記するまでもなく(昔のヘボい計算機リソースで簡単にできる実装としては)当たり前の動作って感じになります。」 / Twitter
- 𝒯𝒶𝓉𝓈𝓊ℴ 𝒮ℯ𝓀𝒾𝓃ℯさんはTwitterを使っています: 「確かにちょっとはまった記憶があって、とりあえず 「CFLAGS と LDFLAGS はちゃんと分けて書かないと駄目」ぐらいに覚えてた。 また一つムダ知識が(でも多分、すぐ忘れるw)」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「おお、gccのオプションって順番に意味があったのか・・・。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「gcc "CFLAGS" source "LDFLAGS" output みたいになっているようだ。-lcapをCFLAGSに入れたら無視された。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@mhiramat これはgccというよりはベル研時代からの cc ドライバや ld の仕様ですね。cc に渡した順番で (.c が .o に変換されて) 引数が ld に渡り、ld は引数を先頭から解釈していき、ライブラリの中からリンクするオブジェクトを選択するのは、そのライブラリ引数出現時点で、未解決のシンボルのみなので…」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@mhiramat というわけでライブラリを先頭に書くと、その時点では未解決シンボルが存在しないので、そのライブラリ中のオブジェクトファイルは決して選択されないというハメに」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「@n_soda これは酷い仕様ですね・・・。必要のない後方互換性は残すことないのに・・・。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@mhiramat これは UNIX のリンカーに特有ってわけじゃなくて、伝統的なリンカーはだいたいこういう動作だったと思います。CP/M の L80 とか、MS-DOS の link.exe もこうだったような。」 / Twitter
- fjのYog教祖様さんはTwitterを使っています: 「@mhiramat @n_soda いや、そうしないと「未解決なシンボル」が無くなるのが「全部のライブラリをリンクした時」(不要なライブラリが無くなってしまう、と言う意味)になる。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています: 「@fjs_kyousosama @mhiramat 現代なら計算機が強力なので、未解決シンボルが残ってたら引数を再度頭から舐めるっていう動作にすることは可能は可能だと思います。 とはいえ超大規模プログラムだと、現代でもリンクにかかる時間が馬鹿にならないらしい(だからこそ @rui314 さんのリンカーが生まれた)ので、やっぱダメかも?」 / Twitter
@k_takata
- K.Takataさんのツイート: "VCはずいぶん昔から、使っていない関数をリンク時に除外してファイルサイズを小さくする機能があるが、gccには無いのだろうかと思っていたら、あったようだ。 https://t.co/fYP9rIR2bn コンパイル時に -fdata-sections -ffunction-sections を指定し、リンク時に -Wl,--gc-sections を指定する。"
- How to remove unused C/C++ symbols with GCC and ld? - Stack Overflow
- K.Takataさんのツイート: "ただ、MinGWでは使えないという話もあって調べてみると、--gc-sectionsがPE形式で使えるようになったのはbinutils 2.25かららしい。 https://t.co/8Imo5XHSvm さらにコンパイル時に -fno-asynchronous-unwind-tables も指定する必要があるらしい。"
- 11539 – ld --gc-sections should work for PE-COFF on MinGW
- K.Takataさんのツイート: "で、wxGoをビルドするのに -ffunction-sections を指定してサイズを小さくできないか試してみたところ、too many sections (70137) というエラーになってしまった。従来のCOFF形式オブジェクトファイルだとセクション数は16bitで管理しており、それを超えてしまったらしい。"
- K.Takataさんのツイート: "コンパイル時に -Wa,-mbig-obj を指定すると、big-obj形式 https://t.co/5GwXmQGy2x が使われて、セクション数の制限が事実上無くなるらしいのだが、cgoがbig-obj形式をサポートしておらず、エラーになってしまった。 cannot parse gcc output $WORK\b001\\_cgo_.o as ELF, Mach-O, PE object"
@kazuho
- Kazuho Okuさんのツイート: "実際にコンパイルさせてみて成功したらオッケーっていうダックタイピング万歳なautoconfなんやから、リンカの引数も全部試してみたらええねん :-p"
- Kazuho Okuさんのツイート: "コンパイラ間の競争が激しくなって __builtin_feature みたいなフィーチャーディテクション機能も導入されたし、リンカもはやくそうなってほしい感ある"
- Kazuho Okuさんのツイート: "「シンボル名のハッシュ値計算するのめんどくさいからシンボル名全部sha1とかしときたい」www #spkai"
- Kazuho Okuさんのツイート: "未使用の関数やグローバル変数はリンク時になかったことにできると思ってたけど、 ``` void (*foo)(void) = myfunc; ``` みたいなコードがある場合はmyfuncを落とすのが特に難しくなったりするのかなぁ(fooをmyfuncに初期化するためのコードが生成され、それがmyfuncを参照しちゃう的な)"
@liva_jy
- Livaさんのツイート: "セクションの開始位置はアラインメントしよう、という知見を得た。 #liva_notebook"
- Livaさんのツイート: "きちんとアラインされてない場合、リンク時に上手い具合にずらしてしまう事があって、下手なリンカスクリプトを書いていると、リンカが解決した関数のアドレスと、実際にロードされたアドレスがずれてしまう #liva_notebook"
- hikaliumさんのツイート: "なるほど!LLVMで挙動を見てみたところ、翻訳時に既知でないラベル(後方のラベル参照等)は未解決のまま残されるのね。(つまり常にrel32として場所はとられる。) で、リンカがあとでそれを埋めてくれると。なんとまあ。 (まだまだ勉強が足りないというお気持ちになった。こういう発見が楽しい。)… https://t.co/u1OU8WNMCS"
- Rockridgeさんのツイート: "Fx63:clang-clを用いたWindows版のビルドにおいてThinLTOとPGOが有効化。64bit版のSpeedometerスコアがMSVC比で6%アップした。参照:https://t.co/ipbr5LRbF0 … https://t.co/euttRNA8Ez"
- 10/27,28はOSC Tokyoさんのツイート: "僕のLDが壊れている.undefinedなシンボル(operator new)に対してエラーにならない.自分で宣言した関数の場合はエラーになるのに."
- Nerry@さんのツイート: "gnu-efi使ってた時ldが未解決シンボルでエラーにならない挙動すごく困った… "
- 10/27,28はOSC Tokyoさんのツイート: "同じく悩んでる人がいるとは!… "
- しんやさん@檸檬堂友の会さんはTwitterを使っています: 「C言語にてテスト時に便利な技術 これができればテストマスターだ! インターポジショニング →既存関数を自由に置き換える Weakシンボル →テスト時のみに関数をリンクさせたい時 objcopy →シンボルを置き換える、最強」 / Twitter
- インターポジショニング - Google 検索
- weakシンボル - Google 検索
- DrumatoさんはTwitterを使っています 「もし読み込んだセクションのオフセット+サイズがセクションのオフセットになっていないとき, 間にパディングがあると考えてセクションヘッダを挿入する,みたいな実装で対応しようと思う」 / Twitter
- DrumatoさんはTwitterを使っています 「gccの吐くバイナリ,どこのセクションにも所属していないパディングが沢山存在するのだけれど, これ普通にそういう意図のセクションを作って欲しい. これ凄い困るなあ,どうしよう.」 / Twitter
- c - different type variables with same identifier linked together - Stack Overflow
- Yoshikazu GOTOさんはTwitterを使っています 「rui314さん:リンカが行うことのまとめ: ・与えられたファイルをすべて読む ・シンボルを解決 ・リロケーションテーブルを読んでPLTやGOTを作る ・出力のレイアウトを決める ・ #kernelvm #kernelvm_tw」 / Twitter
- プロセス、実行形式、リンク
- A method of machine code translation to intermediate representation | IEEE Conference Publication | IEEE Xplore
- リストとマップファイルの生成
- クロス・リファレンス情報 | CS+ V4.01.00
- マップ情報を出力する | CS+ V8.02.00
左再帰
- 6.pdf
- 手書きLLパーサにおける左結合性を持つ演算子の左再帰をループで解決する - ふるつき
- 4.pdf
- compiler_04.pdf
- 左再帰 - Wikipedia
- 再帰下降構文解析の間接左再帰の除去方法について具体的な方法... - Yahoo!知恵袋
- chainl の正体 - ksmakotoのhatenadiary
Advent Calendar
その他
- Rui Ueyamaさんのツイート: "Forth書いたこともWindowsバイナリ手書きしたこともコンパイラのセルフホストしたこともあるけど、この記事すごくよいのでは? 1日ではできないだろうけど腰を据えて読めば。 https://t.co/sCr5wN2uZZ"
- 一日でできるセルフホスティングForthコンパイラ - Qiita
- Shiro Kawaiさんのツイート: "うん、とても良い。セルフホストで立ち上げるの楽しいんで自分も記事書いてみたいと思うんだけどいろいろ細かい話がたくさんあって全部説明しつつ短い記事にまとめるのがすごく難しい。なのでこんだけまとめて書けるのすごい。 https://t.co/ZDjB0sbM3A"
- PyPy Advent Calendar 2011 まとめ - pypy-ja
- ひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017 - Qiita
- MPI Advent Calendar 2017 - Adventar
- AVX-512 Advent Calendar 2014 - Qiita
- Emacs Advent Calendar 2018 - Qiita
- セキュリティツール系 Advent Calendar 2018 - Adventar
- Brainf*ck Advent Calendar 2019 - Adventar
- Ruby 2.7 Advent Calendar 2019 - Qiita
- Elixir Advent Calendar 2019 - Qiita
- 自作言語 Advent Calendar 2019 - Qiita
Theorem Prover
- Theorem Prover Advent Calendar 2013 - Qiita
- Theorem Prover Advent Calendar 2014 - Qiita
- Theorem Prover Advent Calendar 2015 - Qiita
- Theorem Prover Advent Calendar 2016 - Qiita
- Theorem Prover Advent Calendar 2017 - Qiita
アルゴリズム
- グラフ探索アルゴリズム Advent Calendar 2015 - Qiita
- 文字列アルゴリズム Advent Calendar 2016 - Qiita
- 文字列アルゴリズム Advent Calendar 2017 - Qiita
- データ構造とアルゴリズム Advent Calendar 2018 - Qiita
- データ構造とアルゴリズム #2 Advent Calendar 2018 - Qiita
- データ構造とアルゴリズム Advent Calendar 2019 - Qiita
- データ構造とアルゴリズム Advent Calendar 2020 - Qiita
WebAssembly
- WebAssembly Advent Calendar 2017 - Qiita
- WebAssembly Advent Calendar 2018 - Adventar
- WebAssembly Advent Calendar 2018 - Qiita
- WebAssembly Advent Calendar 2019 - Qiita
- WebAssembly Advent Calendar 2020 - Adventar
- WebAssembly Advent Calendar 2020 - Qiita
C 言語
- C言語 Advent Calendar 2015 - Qiita
- C言語 Advent Calendar 2016 - Qiita
- C言語 Advent Calendar 2017 - Qiita
- C言語 Advent Calendar 2018 - Qiita
- C言語 Advent Calendar 2019 - Qiita
テスト
- ソフトウェアテスト Advent Calendar 2016 - Qiita
- ソフトウェアテスト Advent Calendar 2017 - Qiita
- ソフトウェアテスト Advent Calendar 2018 - Qiita
- ソフトウェアテスト Advent Calendar 2019 - Qiita
- ソフトウェアテスト Advent Calendar 2020 - Qiita
- ソフトウェアテストの小ネタ Advent Calendar 2017 - Qiita
- ソフトウェアテストの小ネタ Advent Calendar 2018 - Qiita
- ソフトウェアテストの小ネタ Advent Calendar 2019 - Qiita
- ソフトウェアテストの小ネタ Advent Calendar 2020 - Qiita
- 言語実装 Advent Calendar 2015 - Qiita
- 言語実装 Advent Calendar 2016 - Qiita
- 言語実装 Advent Calendar 2017 - Qiita
- 言語実装 Advent Calendar 2018 - Qiita
- 言語実装 Advent Calendar 2019 - Qiita
- 言語実装 Advent Calendar 2020 - Qiita
- ML Advent Calendar 2014 - Qiita
- ML Advent Calendar 2015 - Adventar
- ML Advent Calendar 2016 - Qiita
- ML Advent Calendar 2017 - Adventar
- ML Advent Calendar 2020 - Qiita
- 意味論 Advent Calendar 2016 - Adventar
- 型 Advent Calendar 2019 - Qiita
- Idris Advent Calendar 2020 - Qiita
- Miura HidekiさんはTwitterを使っています 「コンピュータの専門家も、使いやすいプログラムが書けることと、優れたアルゴリズムが考案出来ることと、アプリケーションを駆使して仕事を効率化出来ることは 完全に独立な話のような気がする。」 / Twitter
IDE
- MJ文字情報検索システム | 独立行政法人 情報処理推進機構 - IPA
- Desktop Screen Resolution Stats Japan | StatCounter Global Stats
- 富豪的プログラミング
- 自分が使わないものを発表するな - 増井俊之
- 自分の成果物を自分で使え - 西尾泰和のScrapbox
- 「目新しい技術」を避け「退屈な技術」をソフトウェア開発で採用すべき理由とは? - GIGAZINE
- AmazonのAPI設計方針 (The Bezos Mandate) - Qiita
- Google Registry APIを使用したAPI情報の整理
- HTMLとCSSだけでWebブラウザにサイドチャネル攻撃を仕掛ける手法 - PC Watch
- [2103.04952v1] Prime+Probe 1, JavaScript 0: Overcoming Browser-based Side-Channel Defenses
- mdn/content: The content behind MDN Web Docs
その他
アジャイルの実際
histric
histric-1
- 伊津野 英克さんはTwitterを使っています 「先日「Empirical Studies of Agile Software Development: A Systematic Review」という 2008 年の論文を読んだんだけど、アジャイル開発に関する学術的な根拠が少ないとの結論(根拠がないわけじゃなくて、まともな実証研究がなさすぎて評価できない)」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「では、2016年の「Challenges and success factors for large-scale agile transformations: A systematic literature review」ではどうかというと、「収録された論文のほぼ90%が経験談であり、このテーマに関する健全な学術研究が不足している」とのこと。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「読んでて思ったのは、アジャイル開発の登場人物はみんなやる気がありすぎる。お客にやる気があって、開発者にやる気があって、PMにやる気があったら、WFだろうがなんだろうが、そうそう失敗しないよなぁ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「論文で指摘されてたのは「顧客が関与を強められる」一方「顧客はストレスを感じており、長時間労働を強いられている」と感じていたとのこと。顧客サイドだって本業を抱えながらプロジェクトに参画してるケース多いもんね。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「品質は上がっているという報告が多い一方、生産性に関してはあんまり変わってないんじゃないか、という雰囲気。一方でアジャイル開発はデザインやアーキテクチャの問題に気が配られにくいという問題が指摘されている。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「あと、チーム内の結束力が上がる一方、チーム外との関係が微妙になるみたい。WFだと全体感が重要なので足並み揃えるタイミング多いけどアジャイルだとそこら辺考慮されていないかもね。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「テスト・ファーストについて「多くの学生にとって難しいものでした。これは、設計自体が非常に難しく、テストを先に書くことで学生が設計上の意思決定を早期に行わなければならないから」とのこと。それはそう思う。ある程度システムを理解してからでないとテストを書くのは難しい。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「「A Theory of Team Coaching」に、プロジェクト初期はみんな良くわかってないという話が書いてあったけどその通りだと思う。テスト・ファーストは人類には早すぎる。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「アジャイル開発に限った話じゃないけど、アジャイルに適した案件の方がアジャイル開発を選択しがちだし、成功したアジャイルは成功したWFよりも喧伝されるから、実例では十分じゃなくてちゃんと同じ条件で比較しないとだめなんだよね。」 / Twitter
- アジャイルに根拠はあるのか? 「Empirical Studies of Agile Software Development: A Systematic Review」を読む - hidekatsu-izuno 日々の記録
- 続・アジャイルに根拠はあるのか? 「A Comparison of Software Cost, Duration, and Quality for Waterfall vs. Iterative and Incremental Development: A Systematic Review」を読む - hidekatsu-izuno 日々の記録
- 伊津野 英克さんはTwitterを使っています 「「The Waterfall Model in Large-Scale Development」という論文を読んだのだが、それは本当にウォータフォールの問題なんだろうか、という疑念が。単に大規模にプロジェクトをやるな、ということを言っていないだろうか。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「WFの主要な問題として抽出されているのが、要件定義からリリースまで、あるいは、実装からテストまでの間が長いという点にあるのなら、アジャイル開発の導入ではなく、単にプロジェクトを分割すればいいだけかもしれない。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「「A SYSTEMATIC SURVEY ON WATERFALL VS AGILE VS. LEAN PROCESS PARADIGMS」という論文を読むと、大規模開発に適した手法はない、という身も蓋もないことが書いてあるw」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「アジャイルのどのメソッドがプロジェクトへの寄与度が高いか、みたいな研究、意外とないのね。それ以前の問題なのかもしれんが。」 / Twitter
- 世の中のアジャイルテスティングの定義と原則 - 千里霧中
- 「アジャイル vs ウォーターフォール」からプロジェクト管理を考える - Qiita
- 「『アジャイル vs ウォーターフォール』からプロジェクト管理を考える」という記事を公開した - hidekatsu-izuno 日々の記録
- 伊津野 英克さんはTwitterを使っています 「突飛な意見は拡散しても、ちゃんと論文調べて書くと誰も読まないんだもんなぁ。https://t.co/1SKwsw7W9d」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「論文で指摘されてるWFの問題点は現実のWFでもたしかに問題なんだけど、アジャイル信者の藁人形WFで指摘される問題点は現実のWFでは問題になってないわけですよ。」 / Twitter
- なぜ企業は大規模開発を選択してしまうのか - Qiita
- 伊津野 英克さんはTwitterを使っています 「PMBOKが成果物ではなく価値重視に変わったということは、分析可能なプロジェクト管理の成功から分析不能なプロジェクトの成功に変わったとも言えるわけで、それが良いことなのかどうかは微妙だと思う。」 / Twitter
- アジャイルテスティング問答 - 千里霧中
- 伊津野 英克さんはTwitterを使っています 「アジャイル型開発はプロジェクト管理の方法ではなくプロダクト管理の手法なんだよ。プロジェクト管理の手法ではないからプロジェクトの定義(有期で目的がある)に縛られない。逆に言えばプロジェクト管理には(そのままでは)適用できない。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「ガントチャートはタスクには依存関係があるはずだという前提があるんだけど、現実は終了の依存関係があるだけで開始に依存関係はないから役に立たないんだよ。バックログの方が使いやすい大きな理由のひとつ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「アジャイルから顧客価値の最大化という幻想を取り払わなければ具体的な議論は何もできない、ということに気付くなど。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「アジャイルソフトウェア開発宣言をよく読むと顧客価値を最大化するなどどこにも書かれてない。あの宣言良く出来てるな。」 / Twitter
histric-2
- 伊津野 英克さんはTwitterを使っています 「この記事自体はいい記事だとは思うだけど、ウォーターフォールならリスクが累積するがアジャイル開発ならリスクが蓄積しないという根拠は自明ではないよなぁ https://t.co/RWuER1iWsj」 / Twitter
- 大規模アジャイル開発の可能性(前編)ウォーターフォールは大規模向きだったのか? : 富士通ソフトウェアテクノロジーズ
- 伊津野 英克さんはTwitterを使っています 「ここでいうリスクは不確実性を含むと思うだが、不確実性を随時潰していくのはウォーターフォールだろうがアジャイルだろうが変わらない。品質問題が明らかになるのが遅れるリスクはたしかにあるが、生産性が変わらない以上、アジャイルの場合、期限までに出来上がっている範囲が小さくなるだけでは。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「とすると、この記事の言っていることはデタラメでは、というのが個人的な結論。実際、こんなにリスクに差があったらウォーターフォールはほぼ必ず失敗してるはず。そんな現実は存在しない。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「ISO/IEC 12207 を読んでも「プロジェクトアセスメント及び制御プロセス」において「必要に応じて,プロジェクトアクティビティを,軌道修正することを含む。軌道修正には,必要に応じて,再計画を含んでもよい」と書かれているんだが https://t.co/4He0PeLZw5」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「ウォーターフォールは後戻りできないというのはアジャイル支持者のデマだな。実際、手戻りできなかったら完成しないんだから、そんなプロジェクト管理成立しないだろ。」 / Twitter
- torii takayukiさんはTwitterを使っています 「@hidekatsu_izuno 手戻りするのがアジャイルなら参加したことあるぜ!みたいな勘違いを生みかねないよなぁ。(たしかに仕様書が最後にできるタイプの開発だったけど。)」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「@ttaka みんな雰囲気で仕事してますからねぇw」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「9人以上のチームはそれより小さいチームより生産性が低いという論文 https://t.co/0fw8h1pFaY」 / Twitter
- (PDF) Empirical Findings on Team Size and Productivity in Software Development
- 伊津野 英克さんはTwitterを使っています 「これ読むとところどころむしろウォーターフォールの方が合致してる感じもある https://t.co/jXDxJofcs8」 / Twitter
- TPS(トヨタ生産方式)入門 / TPS Introduction - Speaker Deck
- 伊津野 英克さんはTwitterを使っています 「トヨタ生産方式をソフトウェアに適用すると、設計とプログラマとテスタは別々にして流れ作業にしなきゃならんが、ソフトウェアは同一品種大量生産ではなく一品物であることを忘れており、なんでこの概念をソフトウェアに持ち込もうとしたのか謎。」 / Twitter
- torii takayukiさんはTwitterを使っています 「@hidekatsu_izuno 一応今の自動車製造は多品種大量生産だけど、往々にして作る前に何ができるかわかってないソフトウェアに適用するのは難しいよなあ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「ソフトウェアに持ち込まれたのは、トヨタ生産方式の上位概念としてのリーン思考であって、トヨタ生産方式そのものではないことは断っておく(念の為)」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「大規模アジャイルの正体がわかってしまった、というかアジャイルは仕組み上スケールしない(1チーム9人が最善)ので大規模やりたいなら独立可能な部分に分割するか、期間をそんだけ伸ばせ、という話でしかないな。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「ウォーターフォールと違って期間を長くすることのペナルティはないから、1000人月の作業があるなら9人✕111ヶ月頑張れが正解。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「SAFeのように大規模アジャイルの方法論というのは、アジャイルのチームがスケールしないので、複数チームの管理を導入しているわけだが、期間さえかければ小規模でもできることは自明なわけで、その裏には期限があるという前提が隠されている。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「しかし期限があるということはプロジェクト管理をしたいということだし、それはより良いプロダクトを産み出したいというアジャイルの方向性と矛盾している。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「結局のところ、古典的プロジェクト管理がなぜスケールするかと言うと、工程とドキュメントでその部分を埋めることが前提になっているということだよね。期限を定める→スケールさせるしかない→工程とドキュメントが必要 というのが正しい認識。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「えー、アジャイルって富士通が命名した用語だったのか……>ソフトウェア開発の文脈で「アジャイル」が使われたのは、1998年のIEEE Software誌の記事が最初で、富士通のAgile Software Process(ASP)とAgile Software Engineering Environment(ASEE)という社内手法を指していたhttps://t.co/GcwPyqr25c」 / Twitter
- (PDF) Agile Development at Scale: The Next Frontier
- 伊津野 英克さんはTwitterを使っています 「SIer を馬鹿にしていたら、実は SIer の手のひらで踊っていた的な。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「アジャイルもリーンもスクラムもかんばんも日本の発明だと考えると、この分野における日本の貢献凄いじゃん。」 / Twitter
- torii takayukiさんはTwitterを使っています 「@hidekatsu_izuno ジャパンアズナンバーワンの置き土産だなぁ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「@ttaka 製造業由来ですしねぇ。過去の栄光orz」 / Twitter
- torii takayukiさんはTwitterを使っています 「@hidekatsu_izuno 製造業由来だしねぇ。(愛知で過去の栄光といったら色々怒られそうだけど)」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「ウォターフォールかアジャイルかって問題、外形的には保守フェイズをどれだけ早く始められるかだけの話なのではないかと思い始めてる。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「この論文がアジャイルの初出っぽい。内容もまさにアジャイルでアジャイルが日本発なのは確実。ただ、著者の青山幹雄さんが発表した当時は新潟工科大学に所属しており富士通発と言えるかは微妙かも(ただ、数年前まで富士通なので、その経験が元になってはいそう)https://t.co/Cs9P8jkbD1」 / Twitter
- p3-aoyama.pdf
- 伊津野 英克さんはTwitterを使っています 「富士通発でも間違いではないか "At Fujitsu, the author has been involved in the development of a family of large-scale telecommunication software systems for last ten years. In this project, we experienced an evolutionary change of our software processes [Aoya87, Aoya95, Aoya96a]"」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「悲しい>最も多く採用されなかったプラクティスは、週40時間制でした。 https://t.co/V2iAfy5UTX」 / Twitter
- Understanding Agile Software, Extreme Programming, and Agile Modeling | Request PDF
- 伊津野 英克さんはTwitterを使っています 「ようやく真相に辿り着いた。元富士通の青山氏が最初にIIDをアジャイルと呼んだのは事実だが、現在みんながアジャイルの元祖と考えているアジャイル開発宣言の元になったのは "Agile Competitors and Virtual Organizations" という 1995 年の本ということのようだ。 https://t.co/Mik59YrpPm」 / Twitter
- The Secret History of Agile Innovation
- 伊津野 英克さんはTwitterを使っています 「スクラムにおいてプロジェクトの成功に重要であるとされる要因の32%しか実際のプロジェクト成功要因に関係していなかったという論文 https://t.co/KXv6kL1wYv」 / Twitter
- An empirical study on the relationship between the use of agile practices and the success of Scrum projects | Request PDF
- 伊津野 英克さんはTwitterを使っています 「相変わらずアジャイル関連の論文を読んでんだけど、アジャイル開発が生産性に寄与しない(悪化の可能性すらある)ことに関しては確信がある。生産性は悪化するが成功率は上昇するというところがミソ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「アジャイルソフトウェア開発スクラムが届いたので、ぱらぱらとめくってみたがPre Game/Post Gameという概念は早々にスクラムから排除されたようだ。ミニマリズムで素晴らしいが適用範囲は狭めてしまった感がある。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「アジャイルでも某エバンジェリストの活躍もありテスト駆動開発が有名だけど、いくつか論文を読む限りかなりネガティブな結果しか得られてない。(他のプラクティスはそうでもない)まぁ、実践してる人もあんまりいないので悪影響もなさそうだけど。」 / Twitter
- 機械学習によるテスト失敗の予測
- 開発イテレーション偏重 - 兼雑記
- mumumuさんはTwitterを使っています 「SPINFER: Inferring Semantic Patches for the Linux Kernel [ATC '20] Linuxみたいな大規模SWのAPIの変更に対して,関連するファイルの変更Patchを自動で生成するためのルールを生成する研究.どちらかというとルールベースで推論(ML的なのではない)してる.正確性は90%近くくらいらしい.」 / Twitter
- Web 技術の調査方法 | blog.jxck.io
- Makoto Kato ︎︎さんはTwitterを使っています 「rniwaよりもWebKitトップのMajの方が方向性は一番重要だし、TPACそこまで重要ではない気がするし、WICGは個人草案という表現はちょっとと思うし、細かいところに粗がいろいろある感じ https://t.co/SFRnNutDep」 / Twitter
- リポジトリクラスのメソッド設計 - kawasima
- Dropboxが新開発した「非同期処理フレームワーク」はどのように構築されているのか? - GIGAZINE
- Introducing Ungrammar
- 井山梃子歴史館さんはTwitterを使っています 「Ungrammar( https://t.co/vSiuWSh6EC )の考え方は面白いと思っていて,これは言語定義におけるインターフェイスと実装の分離なんだよね」 / Twitter
- rust-analyzerの紹介 | κeenのHappy Hacκing Blog
- Fabulousにより、F#でiOS向けとAndroid向けの宣言型クロスプラットフォームUIが構築可能に
- リファクタリング - Visual Studio | Microsoft Docs
- Visual Studio での C++ コードの編集とリファクター | Microsoft Docs
- OSTree - Google 検索
- Flatpak - Google 検索
- Google、オープンソースのモジュール依存関係を分かりやすくグラフ化してくれる「Open Source Insights Project」公開 - Publickey
MS
その他
NyaRuRuが地球にいたころ
- Win32 Fiber カッコワルイ - NyaRuRuが地球にいたころ
- HotKey でキーリピートを無視する機能が付いたらしい - NyaRuRuが地球にいたころ
- Header Annotations - Visual C++ - NyaRuRuが地球にいたころ
- SPU C/C++ Language Extensions - NyaRuRuが地球にいたころ
- Microsoft が提供する C/C++ ヘッダファイルにおける事前条件・事後条件の充実っぷりは異常 - NyaRuRuが地球にいたころ
- ゲームプレイ中のスクリーンセーバやディスプレイ休止を回避する方法 - NyaRuRuが地球にいたころ
- コンソールアプリケーションで出力がパイプされているときに,それが閉じられたのを知る方法 - NyaRuRuが地球にいたころ
- 別スレッドでリソースを解放することのあれそれ - NyaRuRuが地球にいたころ
- Msdn フォーラム - Windows SDK サポートチーム
- Msdn フォーラム - Windows Driver Kit サポートチーム
- Msdn フォーラム - Windows クライアント開発
- EternalWindows
- Gecko1.8相当製品において修正したバグ - WebStudio
- 64 ビット Windows アプリケーション開発 - RAD Studio
- 碧落 - Win64 開発
- 1985年誕生「Windows1.0」を触ってみたら、恐怖のおっちょこちょいOSだった - デイリーポータルZ
- Visual C++(cl.exe)で UTF-8 のファイルをコンパイルする - Bite Code
- Windows 10のInsider PreviewでシステムロケールをUTF-8にするオプションが追加される | スラド
- OneCore.lib/MinCore.libの紹介 « 他人の空似
- Big Sky :: ネットワーク構成を変更した直後に Cygwin や msys2 が激遅になる問題の解決方法
- Big Sky :: Windows で子プロセスの標準入出力バッファリングを無効にする
- Idleプロセスと名無しのプロセス
- ChalkTalk CLR – COMのすべて – kekyoの丼
- ASCII.jp:Windows 10「October 2018 Update」でファイル消失の原因になったKnown Foldersって何? (1/4)|Windows Info
- \と¥の問題 - 立命館大学情報理工学部セキュリティ・ネットワークコース プログラミング言語サポートページ
MS
その他
- Diagnostics (Windows)
- Graphics and Multimedia (Windows)
- Audio and Video (Windows)
- System Services (Windows)
- Security (Windows)
- Restart Manager Reference (Windows)
- Packaging, deployment, and query APIs (Windows)
- System Administration (Windows)
- Networking (Windows)
- Per-directory case sensitivity and WSL – Windows Command Line Tools For Developers
- KeyboardDeliveryInterceptor Class (Windows.UI.Input) - UWP app developer | Microsoft Docs
- Ink presenter (Windows)
- DirectComposition (Windows)
- Makoto Kato ︎︎さんのツイート: "Windowsのコンソール系バグ (APIも含む) は、https://t.co/97QTqsydFS で報告できるようになったのは素晴らしい"
- Microsoft/console: Windows Console Tools
- Windowsドライバ開発を容易にするMicrosoft Driver Module Framework
- Condition Variables - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自前Conditionクラス、CriticalSectionで守っているため、CAS(Compare And Swap)不要なのにCASを使っている気がする。 (そもそもVista以降、CV入っているし、ネイティブCVに移行してXPユーザには泣いてもらうかな…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちがった。 クラス内csで守る部分と、globalリソースのためのCASに分けていたのだった。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ポインタサイズの省サイズ&高速な ReaderWrite Lock (ポインタサイズのため再帰不可) ---- Slim Reader/Writer (SRW) Locks (Vista以降) https://t.co/CNVy8QiN1J」 / Twitter
- Slim Reader/Writer (SRW) Locks - Win32 apps | Microsoft Docs
Windows 10
削除または非推奨
- Windows 10 Creators Update Deprecated Features | Microsoft Docs
- Windows 10 Fall Creators Update Deprecated Features | Microsoft Docs
- Windows 10, version 1803 - Features that have been removed | Microsoft Docs
API
- Windows 10 version 1607 API changes - UWP app developer | Microsoft Docs
- Windows 10 Creators Update API changes - UWP app developer | Microsoft Docs
- Windows 10 Fall Creators Update API changes - UWP app developer | Microsoft Docs
- Windows 10 Build 17134 API changes - UWP app developer | Microsoft Docs
- SetThreadDescription function | Microsoft Docs
Windows Hypervisor Platform
- Windows Hypervisor Platform | Microsoft Docs
- Windows Hypervisor Platform API Definitions | Microsoft Docs
- VM Saved State Dump Provider API | Microsoft Docs
- QEMUのWindowsホストでのHyper-Vのサポート | K'zlog
- [Qemu-devel] [PATCH 0/4] Implements the Windows Hypervisor Platform acce
- [Qemu-devel] [PATCH 1/4] Add the Windows Hypervisor Platform accelerator
- [Qemu-discuss] configure fails with whpx enabled on msys2 w64 build proc
- Microsoft Windows 10 - Wikipedia
- What's new in Windows 10 build 10240 - July 2015 - UWP app developer | Microsoft Docs
- What's New in Windows 10 build 10586 - November 2015 - UWP app developer | Microsoft Docs
- What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
- What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
- Windows 10 の開発者向け新着情報、ツール、機能 - UWP app developer | Microsoft Docs
- Windows Machine Learningなど開発者にも続々と新機能 - Windows 10 April 2018 Update | マイナビニュース
- What's New in Windows 10 for Developers, Tools & Features - UWP app developer | Microsoft Docs
- TLS (Schannel SSP) | Microsoft Docs
- Why Are We Deprecating Network Performance Features (KB4014193)? | Ask Premier Field Engineering (PFE) Platforms
- Update on Microsoft’s Symbol Server – Debugging Tools for Windows
- Microsoft public symbol server | Microsoft Docs
- Windows Filtering Platform (Windows)
- SetThreadDescription function (Windows)
- Technical documentation, API, and code examples | Microsoft Docs
- Bug Check Code Reference | Microsoft Docs
- Windows API Index (Windows)
非推奨
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WIn95時代から存在する、Win32アニメーションコントロールを初めて使ってみる…AVI縛り以外は意外と良いかも。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "うーん、非圧縮でない場合に、RLE8縛りになるのが厳しいな… https://t.co/5NHvwiXDeE An animation control can display an AVI clip originating from either an uncompressed AVI file or from an AVI file that was compressed using run-length (BI_RLE8) encoding."
- About Animation Controls (Windows)
- Shirouzu Hiroaki(白水啓章)さんのツイート: "結局、GDIplusで、アニメーションGIFのフレームを1つずつ取り出しながらタイマーで描画、というベタな解に落ち着きそう。"
- 市川 真一さんのツイート: "古い環境をサポートするためなのでしょうけど、GDI+ は非推奨 API らしいですね。今なら Direct2D を使ってほしいみたいです: Deprecated or legacy APIs https://t.co/Z283r33XkN… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ありがとうございます。 MSは広まったAPIやコンポーネントは滅多に廃止しないので、GDIとGDI+は事実上廃止されないのではという気も(笑) (CreateFileTransactedのような不人気API群は躊躇なく廃止しますが)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "GDI/GDI+が廃止されるとしたら、デスクトップ開発はC#等のマネージドアプリのみを認め、C++はドライバ開発のみと決断した時かな?とも。… "
- 市川 真一さんのツイート: "それに期待したいところです。ゲームや Web 関係の技術は廃止されて被害にあってる人も多いようですね… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それは知りませんでした。 ゲーム系はよく知らないのですが、Web系だとIEコンポーネントやInternetOpen等廃止されそうと言われつつも、しぶとく未だに使えている印象もあったのですが(笑)… "
- 市川 真一さんのツイート: "例えば Web 系だと C/C++ じゃないですが、J# が丸ごと廃止になってたり。あれで開発してた人もいたのですけどね… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 MSの過去の行動を見ると、累積ソフト資産の総量で決めている感じがしますね。 累積総量が多いと、古臭くても非推奨でもしぶとくサポート、と。 逆に、Windows Mobileなどは、梯子を外された感を持つハード&ソフトベンダの方も多そうですが。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "その点、Appleは結構大胆に切り捨てている印象が…でもユーザが思ったほど離れない不思議。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "昔MSは、SDIよりMDIを推奨し続けて、ついにMDIアプリはMS Excelのみ、といった時代になってようやくMDI推奨を取り下げて、その後ExcelもSDI化したという歴史があったような。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "2001年に SDI推奨になった資料があった…ということで、記憶より前からSDI推奨に変わっていた様子。 https://t.co/j2vs3xRRW8"
- Microsoft Windows ユーザー エクスペリエンス FAQ
- Microsoft API とリファレンスのカタログ
- Windows 7 API List (Windows)
- Windows 8 and 8.1 Technologies (Windows)
- Windows におけるコーディング規約 (Windows)
- Technical features new to Windows Vista - Wikipedia
- Windows のキーボード ショートカット - Windows Help
MSDN
Windows Hardware Certification blog
- New Windows 10 Driver Failure Report, now live in Hardware Dev Center – Windows Hardware Certification blog
- Win32 logo certification deprecation – Windows Hardware Certification blog
- Errata filter database lookup is now available via Hardware Dev Center – Windows Hardware Certification blog
Japan WDK Support Blog
- カーネルモード デバッガで UMDF ドライバをライブデバッグする – Japan WDK Support Blog
- NDIS Connection-less Protocol Driver Sample をインストールする – Japan WDK Support Blog
- MSDN インシデントで技術サポートにドライバー開発のお問い合わせをする方法 – Japan WDK Support Blog
- INF ファイルが Universal かどうか検証する方法 – Japan WDK Support Blog
- SimRep File System Minifilter Driver サンプルを動かしてみる – Japan WDK Support Blog
- 新しい Windows Driver Kit documentation – Japan WDK Support Blog
- Minispy File System Minifilter Driver サンプルを動かしてみる – Japan WDK Support Blog
- Visual Studio 2015 でのテスト署名方法 – Japan WDK Support Blog
- パブリック シンボルとプライベート シンボル – Japan WDK Support Blog
- Windows 10 update history 公開 - Japan WDK Support Blog - Site Home - MSDN Blogs
- Err.exe でエラーコードの定義を探す – Japan WDK Support Blog
- WDK for Windows 10, version 1803 – Japan WDK Support Blog
- Hyper-V 仮想マシンへのネットワーク経由のカーネルデバッガ接続方法 – Japan WDK Support Blog
- プリンタードライバーの GPD ファイル記述に関する注意事項 – Japan WDK Support Blog
- Authenticode 署名のドライバインストールのトラブルシューティングの一例 – Japan WDK Support Blog
- Intel、新規格「UWD」に対応したグラフィックスドライバ - PC Watch
- GPU情報取得ツール「GPU-Z」が新しいドライバー形式“UWD”に対応 - 窓の杜
- Microsoft、Windows互換認定を受けたハードウェアのカタログサイトを公開 - 窓の杜
- Partner Center
JAPAN Platform SDK(Windows SDK) Support Team Blog
- NotifyIcon.ShowBalloonTip メソッドで表示されるバルーン表示の問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Microsoft Print to PDF 選択時の CPrintDialog::OnInitDialog() 動作について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Windows 10 で ISequentialStream インターフェースからファイルを操作する際のパフォーマンスについて – JAPAN Platform SDK(Windows SDK) Support Team Blog
- UIAutomationCore.dll を利用するアプリケーションが異常終了する問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- CFileDialog クラスにて表示したダイアログ ボックスの応答がなくなる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Thread.Abort メソッドを利用してスレッドを終了させる際の注意点について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- ツールバー移動時の軌跡が残像となる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- リモート メールスロットへの書き込み時 ERROR_BAD_NETPATH (53) となる問題について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- LoadImage 関数が負の高さをもつビットマップの読み込みに失敗する – JAPAN Platform SDK(Windows SDK) Support Team Blog
- ICopyHook::CopyCallback ハンドラ関数へ通知される pszDestFile が空になる – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Windows 10 でトースト通知が表示されないことがある – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Virtual Bytes が、Windows 10 April 2018 Update 適用前後で異なる – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Graphics.DrawLine メソッドで Panel コントロールに描画した直線が表示されません – JAPAN Platform SDK(Windows SDK) Support Team Blog
- WPF アプリケーション上で、F10 キーが押されたことを検出できない – JAPAN Platform SDK(Windows SDK) Support Team Blog
- 仮想化した TreeView コントロールが自動的にスクロールされる。 – JAPAN Platform SDK(Windows SDK) Support Team Blog
- TryShowPrimaryView メソッドを実行してもタッチ キーボードが表示されない – JAPAN Platform SDK(Windows SDK) Support Team Blog
Cloud and Server Product Japan Blog
- Visual Studio 日本チーム Blog – 日本マイクロソフト株式会社 Visual Studio 製品マーケティングの Blog です。 日本のお客様向けに Visual Studio に関する様々な情報をお届けします。
- Cloud and Server Product Japan Blog – サーバー&クラウド関連の製品やサービスの発表をお伝えする、マイクロソフト マーケティングチームの公式ブログです。
- Windows Server 2008 SP2 のサービス変更について – Cloud and Server Product Japan Blog
- IoT デバイスへの証明書のインストール – Cloud and Server Product Japan Blog
Visual Studio サポート チーム blog
- Visual Studio サポート チーム blog – Visual Studio / .NET Framework をご利用いただいている開発者の方に役立つ情報をお届けします。
- 夏時間が適用されるタイムゾーンにおける mktime 関数利用時の注意事項について – Visual Studio サポート チーム blog
- Visual Studio 2015 の _utime32 関数で指定可能な時刻の上限が以前と異なる – Visual Studio サポート チーム blog
- Visual Studio 2015 / 2017 で発生する可能性がある _snscanf_s 関数の問題について – Visual Studio サポート チーム blog
- Visual Studio 2015 および Visual C++ 2017 のリンク時のコード生成における最適化の不具合について – Visual Studio サポート チーム blog
- 参照側プログラムのリビルドが必要となるような DLL の変更について – Visual Studio サポート チーム blog
- Windows 10 および Windows Server 2016 における Windows インストーラー パッケージの VersionNT プロパティについて – Visual Studio サポート チーム blog
- Visual C++ の正規表現ライブラリで発生するバージョン間での動作の違いについて – Visual Studio サポート チーム blog
- 以前のバージョンの Visual Studio 2017 インストーラーについて – Visual Studio サポート チーム blog
- OLE パッケージ オブジェクトを含むドキュメントを開くと GDI オブジェクトが増加する – Visual Studio サポート チーム blog
The Visual Studio Blog
- The Visual Studio Blog | The official source of product insight from the Visual Studio Engineering Team
C
- 多次元配列 (C)
- Microsoft 固有の修飾子
- コンパイラ セキュリティの徹底調査
- 不完全な型
- 通常の算術変換
- 代入変換
- 定義済みマクロ
- EncodePointer function (Windows)
- DecodePointer function (Windows)
- memcpy_s、wmemcpy_s
- strnlen、strnlen_s、wcsnlen、wcsnlen_s、_mbsnlen、_mbsnlen_l、_mbstrnlen、_mbstrnlen_l
- x86 Intrinsics List
- C/C++ ビルドのリファレンス
- /X (標準インクルード パスの無視)
- コンパイラ組み込み
- コマンド ラインでのビルド
- Visual Studio での C++ プロジェクトのビルド
- リンカー オプション
- _STATIC_ASSERT マクロ
- /Gs (スタック チェック呼び出しの制御)
- Creating Guard Pages (Windows)
- _resetstkoflw
- __rdtsc
- データ型の範囲
- データ型定数
- グローバル定数
- 非数 (NAN) 項目
- How do I access the magic IEEE floating point values like NaN in code? | The Old New Thing
- C 浮動小数点定数
- String Manipulation Summary (Visual Basic)
- Windows Driver Kit documentation | Microsoft Docs
- UI オートメーションの概要 | Microsoft Docs
- Windows Machine Learning - UWP app developer | Microsoft Docs
- What’s new in Windows Console in Windows 10 Fall Creators Update – Windows Command Line Tools For Developers
- IE11のドキュメントモードのフローチャート | Microsoft Edge Japan
- USB デバイスが「不明なデバイス」として表示される場合の対処法 – Windows & Devices 開発統括部
- ソリッド ステート ドライブ (SSD) に関するサポートと Q&A – マイクロソフトのEngineering Windows 7 ブログ
- 文字列の操作
- Naming Files, Paths, and Namespaces (Windows)
- お客様の声から学びました
- Open Specifications Developer Center
- Windows Driver Kit (WDK) - Windows 10 hardware dev
- Functions
- Open Specifications Developer Center
- API を廃止する
- wimをアクセスするコード(不完全)
- 新しいハードウェアダッシュボード問い合わせ方法について
- Msdn forums - Open Specifications
Winsock
- データの送受信(標準編)
- Winsock2関数
- c++ - what is __in and WSAAPI? - Stack Overflow
- DNS クライアントの新機能
- GetAddrInfoEx function (Windows)
- FreeAddrInfoEx function (Windows)
- GetAddrInfoExCancel function (Windows)
- GetAddrInfoExOverlappedResult function (Windows)
- Windows Sockets Error Codes (Windows)
- Handling Winsock Errors (Windows)
- WSAGetLastError function (Windows)
- FormatMessage function (Windows)
- Error Codes - errno, h_errno and WSAGetLastError (Windows)
- IdnToAscii function (Windows)
- IdnToUnicode function (Windows)
- IPPROTO_TCP Socket Options (Windows)
- Big Sky :: Windows 10 に AF_UNIX が来たので試してみた。
- AF_UNIX comes to Windows – Windows Command Line Tools For Developers
- Graceful Shutdown, Linger Options, and Socket Closure - Windows applications | Microsoft Docs
Application Manifests
MS
Wikipedia
- リソース (Windows) - Wikipedia
- Resource (Windows) - Wikipedia
- Multilingual User Interface - Wikipedia
Resource Files
- About Resource Files (Windows)
- Resource-Definition Statements (Windows)
- Resource File Formats (Windows)
- RESOURCEHEADER structure (Windows)
- Resource Types (Windows)
- Resource Types (Windows)
- Resource Files (Visual Studio)
- Multilingual User Interface Reference (Windows)
- Manifest Resources
- /ALLOWISOLATION (マニフェスト検索)
- /MANIFEST (side-by-side アセンブリ マニフェストを作成する)
- /MANIFESTUAC (UAC 情報をマニフェストに組み込む)
- /MANIFESTINPUT (マニフェスト入力の指定)
- アプリケーション マニフェスト
- 方法 : マニフェストを C/C++ アプリケーションに埋め込む
- C/C++ 分離アプリケーションおよび side-by-side アセンブリのトラブルシューティング
- Installing Side-by-side Assemblies (Windows)
- Side-by-side Assemblies Reference (Windows)
- Windows XP ビジュアル スタイルの使用
- コマンド ラインでのマニフェスト生成
- Visual Studio でのマニフェスト生成
- Mt.exe (Windows)
- Manifests (Windows)
- Manifest Files Reference (Windows)
- Manifest Files Reference (Windows)
- Application Manifests (Windows)
- Application Manifests (Windows)
- Application Manifests (Windows)
- Application Configuration Files (Windows)
- Publisher Configuration Files (Windows)
- Manifest File Schema (Windows)
- Application Configuration File Schema (Windows)
- Publisher Configuration File Schema (Windows)
- UAC関連
- 現在のWindowsサイドバイサイドについて
- 現在のWindowsサイドバイサイドについて-続き-
- Windows マニュフェストファイルの読み込み順 |
- c++ - reading an application's manifest file? - Stack Overflow
- winapi - How to use a manifest embedded as a resource? (Windows XP/Vista-style controls) - Stack Overflow
- resourcelib/Manifest.md at master · resourcelib/resourcelib · GitHub
- RT_MANIFEST
- RT_MANIFEST resource, and ISOLATION_AWARE_ENABLED – Junfeng Zhang's Musing
- [Delphi/BCB] manifestファイルをexeに埋め込む: プログラミングの覚え書き
- [ 314_アプリケーションマニフェストの作成とリソースの操作 ] - Mr.XRAY
- Programming Windows Maniacs - プログラミング ウィンドウズ マニアックス - Windows XP以降でアプリケーションにThemeを反映させるには(2)
- WindowsXPのVisualStyleを使う(SDK)
- Section7.5 ボタンとかのデザインをXP仕様にする
- Windows 7 64-bit 環境で Application Manifest が無視されることがあるように見える - NyaRuRuが地球にいたころ
- UTF-8文字列をAPI引数で使えるようになった – すらりん日記
PATH
PATH の正規化
- パス内の"."や".."を削除して、正規化する - .NET Tips (VB.NET,C#...)
- PathCanonicalize function - MSDN Search
- 軽減策: パスの正規化 | Microsoft Docs
- 8-1. Windowsパス名の落とし穴
- Windowsのパスがうまく指定\表示できない問題 in Python - ぴよぴよ.py
MAX_PATH
- INADA Naokiさんのツイート: "Pythonは10年以上かけてWindowsでwchar_tを使うように、ANSI APIを排除するように頑張ってきたけど、それが終わる頃に、WindowsがANSI APIでUTF-8つかえるようにする&パス長制限を外す動きを見せて、何もしなくてもUTF-8対応できたんや…ってなりそう。MSの動きが10年遅いんだよ。。。。"
- About Unicode Enabling Applications and Code Pages – Windows Embedded Standard (Standard 7, Standard 2009, XPe…)
- GetFullPathName function (Windows)
- Naming Files, Paths, and Namespaces (Windows)
- CreateFileW等のwin32apiでMAX_PATH 超のメモ - Qiita
- Windows で長いファイル名のファイルがあるフォルダに対して、ワイルドカードを使うと落ちることがある · Issue #675 · vim-jp/issues
- .NET Framework 4.6.2 を発表 – Visual Studio 日本チーム Blog
- More on new .NET path handling – Jeremy Kuhne's Blog
- Maximum filename length in NTFS (Windows XP and Windows Vista)? - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(1607)以降、レジストリ変更(LongPathsEnabled)すると、MAX_PATH制限が無くなる=システム全体の変更。 こういう制限は、アプリのマニフェスト定義でオプトインの形の方が望ましい気がする。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "読み足りなかった。マニフェストに longPathAware を追加すれば、アプリ単位設定できる、とある。 https://t.co/rLxJ5bYraW (一方で、システム設定変更とマニフェスト追加の両方を行わないと有効にならない、と動作結果を報告しているサイトもあるな…)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、\\?\ の場合の文字列上限に関する、最新と昔の記述の違い。 昔は「nearly 32,000 Unicode characters long」というアバウトな数字だった。… "
- Naming Files, Paths, and Namespaces (Windows)
- Naming Files, Paths, and Namespaces - Win32 apps | Microsoft Docs
ファイル時刻
- GetFileTime function (Windows)
- FILETIME structure (Windows)
- SetFileTime function (Windows)
- c - How do I get the file HANDLE from the fopen FILE structure? - Stack Overflow
- _get_osfhandle | Microsoft Docs
- _get_osfhandle - RAD Studio
- _fileno | Microsoft Docs
- _fileno - RAD Studio
ストレージ
- Disk Management Reference (Windows)
- Distributed File System Reference (Windows)
- Extensible Storage Engine Reference
- File Management Reference (Windows)
- Offline Files Reference (Windows)
- Packaging API Reference (Windows)
- Remote Differential Compression Reference (Windows)
- Transactional NTFS Reference (Windows)
- Volume Management Reference (Windows)
- Windows Storage Management Provider (Windows)
- hitoさんのツイート: "CVE-2018-6557を見て、symlink restrictionの有効性に久しぶりに感動している"
- Create symbolic links (Windows 10) | Microsoft Docs
- Symbolic link - Wikipedia
- NTFS symbolic link - Wikipedia
- Symlinks in Windows 10! - Windows Developer BlogWindows Developer Blog
- ASCII.jp:Windows 10 RS5で改良されたファイル名の大文字/小文字の区別 (1/2)|Windows Info
- Shirouzu Hiroaki(白水啓章)さんのツイート: "と思ったが、このフラグはXP以降デフォルトでは無効らしい(レジストリ設定がある)。 で、WSL用にWin10で、ディレクトリにこのフラグを設定する例外を増設したという話…付け焼刃感強い&わかりづらすぎる。 https://t.co/rbsSnStKz5"
- Enable or Disable Case Sensitive Attribute for Folders in Windows 10 | Tutorials
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「逆に言うと、Windowsはopenやgetattr系の命令は同期なので(read/writeはasyncあり)、特にSMB3以降で、open/getattrをマルチスレッド化すると効果大。 (だが explorer はそれをやってない様子) https://t.co/bAVs9YmwHN」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya smbはopen/closeが同期かつ遅い、という印象はありますね。 逆に、nfsだとopen/close自体が無いのと、readdirplusでreaddirのついでにエントリのfh取得まで出来ます。 ただ、それ以外の話もありそう、、、sambaはユーザーモードですし。」 / Twitter
GUI
- Windows Accessibility Features Reference (Windows)
- DWM Reference (Windows)
- Globalization Services (Windows)
- National Language Support Reference (Windows)
- Windows User Interface (Windows)
- Windows Animation リファレンス (Windows)
- Windows Ribbon Framework Reference (Windows)
- Property System Reference (Windows)
- Shell Reference (Windows)
- Windows Search Reference (Windows)
- Console Reference - Windows Console | Microsoft Docs
- User Interaction (Windows)
- Legacy User Interaction Features (Windows)
- Windows and Messages (Windows)
- Windows 10 Fall Creators Update での GetPixel、SetPixel 関数の処理速度について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Windows 10 Fall Creators Update での Credential Provider に対する影響について – JAPAN Platform SDK(Windows SDK) Support Team Blog
- 「Fall Creators Update」でGetPixel/SetPixel関数が遅くなる問題 ~一部アプリの動作速度に影響 - 窓の杜
- 「Fall Creators Update」でGetPixel/SetPixel関数が遅くなる問題、「KB4058258」で修正 - 窓の杜
- メッセージクラッカ - Web/DB プログラミング徹底解説
- Windows Programming/Resource Script Reference - Wikibooks, open books for an open world
- Windows のマウス キー機能 - マイクロソフト アクセシビリティ
- なかのん&マジックさんのツイート: "マウスとか、特定の入力デバイスに依存したUIは本当にあかん。マウスに依存してるのだと、hover時にしか開かれないメニューとか。"
- XAML Islands Archives - Windows Developer BlogWindows Developer Blog
SegmentHeap
- メモリ食いのGoogle Chrome、ついに消費量削減へ - PC Watch
- Opt in to the Windows "segment heap" (I217d045e) · Gerrit Code Review
- May 2020 Updateの「Microsoft Edge」は省メモリ ~ブラウジング時の消費量を最大27%削減 - 窓の杜
- Improving Memory Usage in Microsoft Edge - Microsoft Edge Blog
- Application Manifests - Win32 apps | Microsoft Docs
- Visual C++ 2017 第4回 アプリケーションマニフェストの作成(1/2) : FENIX-PC
- us-16-Yason-Windows-10-Segment-Heap-Internals.pdf
- Windows-kernel-SegmentHeap-Aligned-Chunk-Confusion/ at master · synacktiv/Windows-kernel-SegmentHeap-Aligned-Chunk-Confusion
Win32 Container
- Microsoft explains how Win32 apps will work on Windows 10X - Neowin
- Microsoft Bagikan Detail Lebih Lanjut Mengenai Windows 10X | WinPoin
- Makoto Kato ︎︎さんはTwitterを使っています 「Windows internals Part 2が出ないところで、新しいContainerシステムなWindows 10Xが出るんだが、これをフォローするWindows internalsはいつ出版されるんでしょうか」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Native ContainerなEdgeからWin32 ContainerなEdgeに変わるのは劣化だよな。。。」 / Twitter
- ASCII.jp:Windows 10Xはなぜかアップデートが90秒で終わるらしい (1/2)
- イスラエルエリカちゃんさんはTwitterを使っています 「Virtual events - Microsoft 365 https://t.co/OsuRSCDvBS」 / Twitter
- Virtual events - Microsoft 365
- イスラエルエリカちゃんさんはTwitterを使っています 「ぇっ、「Win32アプリが動くコンテナ」には「ゲストカーネルとドライバ」が動いていて、ホストOSへUIを表示する為にはホストOS上でRDP client走らせるの…」 / Twitter
- イスラエルエリカちゃんさんはTwitterを使っています 「今までニュースサイトとかで話に出てた”Windows Core OS”の事っぽいから急に出てきたものじゃないみたいだけど、別OS感すげぇな」 / Twitter
- イスラエルエリカちゃんさんはTwitterを使っています 「「Classicじゃん!!!(MacOS Xの)」ってなってしまった」 / Twitter
- ASCII.jp:アプリ互換性を維持しつつ生まれ変わったWindows 10Xでタブレット市場を挽回できるか (1/2)
- ASCII.jp:変わるWindowsのアプリ戦略 UWPからデスクトップアプリに原点回帰か (1/4)|Windows Info
NUMA
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MapViewOfFileExNuma というWin32APIが増設されていた。 https://t.co/BLSySUw57w」 / Twitter
- MapViewOfFileExNuma function (winbase.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NUMA関連Win32API一覧 https://t.co/kMatP7SyHE」 / Twitter
- NUMA Support - Win32 apps | Microsoft Docs
ストレージ
Project Zero
- Project Zero: Windows 10^H^H Symbolic Link Mitigations
- Project Zero: Between a Rock and a Hard Link
- Project Zero: The Definitive Guide on Win32 to NT Path Conversion
- Project Zero: Windows Exploitation Tricks: Arbitrary Directory Creation to Arbitrary File Read
@shirouzu
時刻
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32のSYSTEMTIME構造体はミリ秒が最小単位。 だが、Win8以降、GetSystemTimePreciseAsFileTime という100ns単位のAPIが増設され、実効的には1usの精度のUTC時間が取れるようになっていた。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIXのファイル時間は秒単位の時代が長かったが、最近はns単位が普通となった。 以前は、samba経由で保存すると(100ns単位が)秒単位に丸められてしまった。 今は、samba経由で保存すると、100ns倍数のmtimeとなり、samba経由で保存したファイルだね、とすぐ分かるように(笑)"
- SODA Noriyukiさんのツイート: "あれはLinuxのext2fsがウンコだっただけで、1990年代前半くらいにはffsを採用しているOSならばファイルシステムのフォーマット的にはミリ秒(SVR4)ないしナノ秒(*BSD)、解像度的には 10ms くらいにはなってました。ext2fs だけはファイルシステム的に秒単位だったので、だいぶ不便でしたが。… https://t.co/LsrXxpYO5z"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 あとは、samba側が長らく秒単位のstat/utimeを使っていたから、というのもあったのかもしれませんね。(昔、SolarisやHP-UX上のsambaでも、長らく秒単位だった記憶があるので)… "
- SODA Noriyukiさんのツイート: "なんと。SVR4 の場合、stat(2) でも st_mtime は「# define st_mtime st_mtim.tv_sec」で定義されていて、tv_nsec が使えたんですが、Samba 側が使ってなければどうしようもないですねえ... 僕はずっと UNIX native の開発ばかりしてたので気づきませんでした。… https://t.co/juPB5wvdiE"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Solaris7/8時代のmanを検索してみましたが、tv_nsecの件、見当たらないですね…statがtimevecも入れた構造体に拡張されると、statのABI互換が無くなると思うのですが、timevec対応statには別syscall番号を振る、みたいなことをしたんですかね。 https://t.co/0WtgsRlw8i… https://t.co/AcDQIe6iIC"
- SODA Noriyukiさんのツイート: "4.0BSDではダメですが少なくとも 4.2BSD くらいには tv_nsec 分の領域が struct stat にリザーブされていたので https://t.co/0QatkejSe6 Solarisの場合、ABI問題はないんですよ。… "
- SODA Noriyukiさんのツイート: "AT&T 3b2用のピュアなSVR4の場合、 ユーザーランド: !defined(_STYPES)ならばユーザランドはデフォルトでtv_nsec用の領域がある カーネル: システムコール番号18,28,88が昔からのstat(2),fstat(2),lstat(2)、123,124,125がtv_nsecつきのxstat(2),lxstat(2),fxstat(2) でした。… https://t.co/OzUDHKxenR"
- SODA Noriyukiさんのツイート: "Solaris の方を見ると、システムコール番号18,28,88が st_nsec つきのインターフェースになっていて、 123,124,125は別のシステムコールになってますね。 https://t.co/Wb44d4q1Sw… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "確かに、各timeにreserveだかspareだかという記述なら、SunOS4.1.2時代のヘッダにも、それっぽいフィールドが載っていたような気も…。 ABI的には大丈夫だったのですね。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルシステムの比較表。 ext4でようやく生成日時を保存するようになった様子だが、stat(2)側の問題で、Birth timeは空のまま。 https://t.co/QHYYiPleVL… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ext4のinodeを直接漁れば、生成日時は取れるらしい。 そういえば、UNIXのctimeはちょっと変わってる印象。 (atime以外の)inode修正日時の保存し、syscall経由では変更不可、というのは解析やセキュリティ用途を意識したものだったのかしらん? (たしかに調査用途に使ったことがある)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "timevecじゃなくてtimespecだった。 この構造体はいつ頃定義されたのかしらん。 (初めて意識に上ったのはnanosleepを使おうとした2000年くらいだったか、あまり昔という印象が無い)"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho Win32API経由でOneDriveフォルダ(WebDav)を操作すると、CreateFile -> WriteFile -> SetFileTime -> CloseHandle だと SetFileTime が反映しない・ローカル側が消えると秒粒度になる等で、使いづらい面はありましたね。 (OneDrive(WebDav client)実装側の問題かも)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu ありがとうございます。LAN用のファイル共有プロトコルから離れると、細かな問題はいろいろありそうですね」 / Twitter
セキュリティ
- Shirouzu Hiroaki(白水啓章)さんのツイート: "昔は、共有ドライブルートのACLは読めなかったと思うのだが、Win10で試すと問題なく取れるようになってるなぁ。 共有ドライブルートの場合、GetFileAttributes APIすらエラーになっていた記憶があるのだが。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsドメインでのACLの扱いは、NT3.5時代にドメイン管理していた頃の知識のままだなぁ。 ローカルグループ同士は入れ子構造にでき便利だったが、サーバ側ドライブのACLで使えない。ドメイングループは入れ子表現できず、適切なACL表現にするのに苦労した記憶…今はそんな縛りは流石に無いのかな?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "CreateFileにACCESS_SYSTEM_SECURITYを立てると、BackupReadでもSACLを取得できるとは知らなかった。 でもこのフラグを立てたCreateFileはAdmin必須でsambaではエラーになる。local + admin の場合のみ有効にするかな…。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy v3.62をリリース。 ACLオプション動作の拡張(管理者権限でローカルNTFS(or ReFS)間のコピーでは、DACLだけでなくSACLもコピーするように) https://t.co/L7jJavdtio #fastcopy"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsでEAを使うには、ZwSetEaFileというドライバー用APIのユーザランド版をntoskrnl.dllからGetProcAddressして使うしか無さそうに見える。 https://t.co/4Y9332b9lq"
- ZwSetEaFile routine (Windows Drivers)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32/NTFSって、chmod 600 としたいだけでも、これだけ手順必要。 (多機能=典型的な設定すら大変な作業に…典型的なダメデザイン) https://t.co/5J7695dCnB」 / Twitter
- Win32API セキュリティ属性を指定してファイルを作成する - s-kita’s blog
ディレクトリ削除
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsのディレクトリツリーの削除が、POISIX的な削除ではうまくいかないという話。 (DeleteFile直後は dir-entry的から消えてないが、MoveFileだとentry消えるから、tempにfile-moveしてのempty-dir削除の方が確実と。悪夢だ…) https://t.co/eNtfzFKvGn https://t.co/bDzkL5a61x」 / Twitter
- fs::remove_dir_all rarely succeeds for large directories on windows · Issue #29497 · rust-lang/rust
- CppCon2015/Racing the Filesystem - Niall Douglas - CppCon 2015.pdf at master · CppCon/CppCon2015
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopyではこの現象に出くわすため、RemoveDirでエラー発生時はNotification系APIでイベント待ちのループでリトライしてるのだが。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「コマンドプロンプトから標準コマンドを使っても、問題を起こすので、皆のtipsが寄せられるの巻。 (リトライとか移動とか。大した解決策はない) https://t.co/pVQxIeD2oK」 / Twitter
- windows - How to solve "The directory is not empty" error when running rmdir command in a batch script? - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FindFirstFile等で得るファイル属性値と、ファイルハンドルから直接GetFileInformationByHandleで得る属性値が異なることがあって、NTFSがファイル情報を dir-entry と file-slot に二重持ちをしているのか、OSが最新でないキャッシュを握って返すのか分からないけど、この辺も妙なのは確か。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VC++ の std::remove_all を見ると、やはりリトライしてるのだけど、最下部で Undocumented なパラメータを使った、SetFileInformationByHandle() を呼んでる…うーん、いつもながらのMSスタイル(笑)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この辺の話。 https://t.co/YQWskLCgKg」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これ読むと、VC++ の std::remove は Vista以降だと何も考えずに SetFileInformationByHandle を発行していて、DeleteFile/RemoveDirectoryは使ってない。(フォールバックすらしない) あとXPにはSetFile...は無いので、とりあえずRemoveDirectory発行してダメなら DeleteFileと。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「実際の VC++ STL用ライブラリソースはこちら。 https://t.co/MAgVCURokh それを呼び出してるSTLヘッダ側はこちら。 https://t.co/4Ai75IT1kK」 / Twitter
- STL/filesystem.cpp at master · microsoft/STL
- STL/filesystem at 2914b4301c59dc7ffc09d16ac6f7979fde2b7f2c · microsoft/STL
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「逆に最新の Win10なら、SetFileInformationByHandle(FILE_DISPOSITION_FLAG_POSIX_SEMANTICS) が増設されたことで、Dir削除がnot emptyでエラーになる呪いが消えていたりする…?(要検証) (これ、元々はWSLのために作られたのかしらん?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「手元で簡単に試した範囲では、同一プロセス内で create/unlinkがシミュレートできるようになっただけだった。やれやれ。 (別プロセスが開いたファイルは相変わらず ERROR_SHARING_VIOLATION が出る)」 / Twitter
direct I/O
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「こういうレポートは有り難い。 https://t.co/mOLcjcLzn4」 / Twitter
- Results of using FastCopy in an LTO Drive environment. - Google グループ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「1ファイル毎にヘッドが戻る現象、ftruncateが効いているのか、SetFileTimeが効いているのかだろうなぁ。 前者なら対処は可能だが、、、」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「direct I/Oで用意するバッファ、セクタ単位必須(&アライン)なのはいいけど、末尾書き込みサイズは非セクタ単位をサポートしてほしいところ。 実際、読み込みではその仕様だし、、、書き込みと非対称。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、direct I/Oで末尾のセクタ単位未満のアクセス。 別スレッドで観察すると、末尾以降にディスクのゴミデータが一瞬現れた後にゼロクリア、なんてことが起きてないか、ちょっと気になったり。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IO前に、mmu/pte的に当該ページ群をユーザランドから無効化してそうだな。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「太古のUSBだと Direct I/O や Async I/O でバグるのものあるのだよなぁ。 (あと XP時代のRDP Drive共有で Async I/Oで書き込み場所が狂うという豪快なのも…Async I/O = offset位置明示APIにもかかわらず)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Vista あたりから Async I/O、Win8.1くらいからDirect I/Oを 標準Explorerでも使っている様子で、それ以降は枯れてきた感じある。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔、Linuxでも Async I/O が枯れてない話があった記憶…最近は io_uring も充実してきたので、状況変わったかな?」 / Twitter
非同期 I/O
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「SetFileIoOverlappedRange は面白そうなWin32APIなのだが、Vista時代にSQL Serverでデータ破壊バグがあったのが少し気になる。 https://t.co/9PPX3QyYef https://t.co/sJLCdtJKU3」 / Twitter
- SetFileIoOverlappedRange function (fileapi.h) - Win32 apps | Microsoft Docs
- SQL Server data corruption when a memory range is accessed by the SetFileIoOverlappedRange function and an I/O operation in Windows Vista, in Windows Server 2008, in Windows 7, or in Windows Server 2008 R2
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このAPIは非同期I/Oするにあたって、事前に物理メモリロック範囲指定をファイルに紐づけて行うことで、I/Oごとの細かく個別ロックするカーネル処理がスキップできる、というイメージかな。 (手元で簡単に試した範囲だと、複数ファイルで同一領域しても大丈夫そう)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy で仮想メモリ→物理メモリロックで、時折遅い状況が出る、などがあれば改善できそう。 ただよほど巨大バッファ指定(GB越えとか)でなければ、普通は1周すれば物理メモリに乗った状態になるので、普通はそんなに変化無さそう。 (バッファにGB超指定しても、意味ある環境あるかな…)」 / Twitter
histric-1
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy実験。 削除をマルチスレッド対応にすると、ネットワークドライブの削除(小さなファイル群)で2.5倍の速度が出るようだ。 (ローカルドライブでも、1.5~1.8倍くらいのレートに)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ローカルドライブの単一ファイルシステム内の並列削除でも、マルチスレッドで高速化している。 OSファイルシステム処理(NTFSドライバ&キャッシュマネージャ)が、きちんと並列処理している現れで、興味深い。 (=MFT処理でジャンボロックなどしていない、ということ)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "本当はwin32に、asyncなopen/delete apiが欲しい。"
- Ryota Shioyaさんのツイート: "Windows 上のファイルの削除ですと,先に全部ファイルを消してから次にディレクトリを消すと妙に速くなると言うのを以下で見て,実際やってみたらその通りだった記憶があるのですが,このあたりって何か関係あったりするんでしょうかね https://t.co/dUbeTuLfzA… https://t.co/bXc0f8WfP8"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "どうなんでしょう? 手元のWin10(17134)で、HDD/SSDで数万~数十万ファイル程度の削除を何度か確認した範囲では、rmdir単体より、del + rmdir の方が速い、という傾向は出ないみたいですね。 XP~Win10のどこかで、処理が変わったのかもしれません。… https://t.co/2VRWenxYJb"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSファイル削除は、ブロック解放($Bitmap変更)、当該ファイルスロットの無効化(MFT自体の変更)、direntryの削除(B+treeのリーフ削除?)といった(あとジャーナル($LogFile)もかな)、あちこちにアクセスする話なので、それらの物理配置も強く影響しそう。(つまり作成時の状態に依存)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "高速なファイル検索のためには、先に空ファイルを全て作った後に、ファイル実体を作った方が、dir-entryの物理配置が集約するので良い、という話もあったり。 (いかにB+treeでも、物理ブロックが飛び飛びになると遅くなる)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、SSDだとディレクトリのフラグメントはもう気にしなくていいかもしれない。(未計測だが)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "削除多重度を上げるため、全ファイル非同期削除→全ディレクトリ削除、という2フェーズ削除を実験してみたが、これはHDD上では逆効果だった。 (別ディレクトリエントリ間の並列動作=ヘッドシーク多発、となった可能性あり)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSにバックアップ(FastCopy)すると「CreateHardLink(この要求はサポートされていません。50)」が大量に出ていた。 何だろうと思ったら、ReFSはハードリンクをサポートしていなかった。ReFSがシステムドライブに使えないのが理由の一つが良く判る(WinSxSには大量ハードリンク有り)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ローカルNTFS相手でも、多数のCreateFileをマルチスレッド化すると目に見えて高速化するのは想定外だった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32サブシステムは、ファイル名の大小文字("A"と"a")を同一と見なすが、いわゆる全角の大小文字(「A」「a」)も同一とみなす…ちなみに「あ」と「ア」は別。 (なお、NTFS内は区別していて、POSIXサブシステム経由だと別扱い)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NTCreateFileを使うと、openat()相当の動作が可能になる。 ただし、そのハンドルはNTxxx系APIでしか利用できない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FAT32内のキリル文字ファイルをD&Dすると、FindFirstFileExW()で ERROR_NO_UNICODE_TRANSLATIONが発生する謎、しかもコマンドライン起動の場合は発生しないとのこと。 W系APIの中で、MBCS変換している?謎だ… https://t.co/FwWfW0lFp8"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WinAPIというより、システムコールと呼ぶべき、NTCreateFileを使うと、openat相当の技が使えるようになる…今計画している拡張にはすごく欲しいな。 (計画だと、パスデータのメモリコピーが多く発生しそうなのだが、それを一気に減らせる)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "GetVolumeInformation、Win7以降からようやく、FileSystemFlagsにまともな値が返ってくる様子。 (ただし、この値を信用するとXP/Vistaでまともに動作しなくなる。起動すら不可、にしたら使う感じかな)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深い。ちょっと補足すると、 ・Transactional NTFS は事実上obsolete。 https://t.co/Ff9lb6vR4u ---- 「Windows のファイルのコピーは、驚くほど奥が深い」 https://t.co/O0fi9TiORc"
- Transactional NTFS (TxF) - Windows applications | Microsoft Docs
- 登 大遊 - Windows のファイルのコピーは、驚くほど奥が深い。 Windows... | Facebook
- Shirouzu Hiroaki(白水啓章)さんのツイート: "さらに補足。 ・ファイル拡大でゴミを読み取る可能性があるのは、SetFilePoiter+SetEndOfFile ではなく、SetFileValidData(管理者権限)を使用した時だけ。 (NTFSで)前者で領域確保のみを行い、ReadFileを行うと0データが返る。 初めてWriteした時点で、0~書込位置にゼロfillが走る。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なおFAT系の場合、書き込み時ではなく、領域確保時点でゼロfillが走る。 NTFSの挙動は extent方式の特徴。extent管理領域に「未書き込み」フラグを立てておき、読み込みで0を返す、という技が使える。 (ext4も同様で、ftruncateによるサイズ拡大が一瞬で終わるが、ext3だとゼロfillが延々走る)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "下記は、一応昔ながらの BackupRead という手はあるかも。 >「Win32 SDK の API ドキュメントを見渡したが、NTFS のアクセス権限を無視した代替ストリームの列挙を可能とする API は 1 つも存在しなかった」"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、SetFilePointer+SetEndOfFileは実領域確保が約束されているわけではなく、samba ではsparse fileとなり、これを避けるには(お勧めは出来ないが)SetFileValidData を使えばいけたはず。 (ただ、このAPIはfallocateに翻訳されるため、ext3だと延々zero-fillになる問題が出る)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、登さん、良く調べてるなぁ。さすが。"
histric-2
- Shirouzu Hiroaki(白水啓章)さんのツイート: "もし一般権限でファイルサイズ拡大だけで、全ユーザの削除データを読み取れるなら、ACLなど無意味な特大セキュリティホールのような…… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "MSの生き字引、レイモンド・チェンによると(ACLなどない)Win95ではSetEndOfFileでゼロクリアしていなかったらしい。 ドキュメントに保証する記述が無いのは、そのためと。 https://t.co/fE5alE9v4y"
- On the various ways of creating large files in NTFS | The Old New Thing
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それに関して「(ファイルシステム部が)NT系なら拡張部分を0と仮定してよい」と書いてあった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: ""NtSetInformationFile extends the file and pads the extension with zeros." とあるので、NT系ならNTFS以外でも0fillを期待して良さそう。 https://t.co/HIOONRG02K"
- NtSetInformationFile function (ntifs.h) - Windows drivers | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんのツイート: "この件で、久々に「Windows NT ファイルシステム詳説」を見たのだが、あまり役に立つ情報は見つけられなかった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ただ、昔の記憶にあった通り、「NTキャッシュマネージャ」は単なるキャッシュ以上の動きをしていることを確認できてよかった。 (場合によって、ファイルシステムドライバ側の領域拡張命令を呼び出したりする)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ここは正確でなかった。 WindowsNTファイルシステム詳細を参照すると、(ext4やxfsと違い)未書き込み管理はextentに保存していない。 ValidDataLengthという8byteの属性のみで、そのため、先頭からnバイトまで有効なデータ、という情報のみ=末尾writeすると、先頭~末尾0fillを行う必要が出る。"
- 鯉江さんのツイート: "ちなみにext4とかだとエクステント内に穴があくときはどうなるんでしょう?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そんなことは無かった。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "GetFullPathNameW、パス途中にショートファイルな要素が存在すると、fnameポインタがNULLになる、というバグ的挙動があるな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "この関数「マルチスレッドでは非推奨」とあって驚く。 static buffer類は使ってないのに何故?と思ったら、「C:だけ指定するとカレントディレクトリを埋めて戻す」機能があり、別スレッドがcwdを変えると問題になるから、というオチだった。なんだそれ感。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ふーむ、IO_REPARSE_TAG_LX_SYMLINKって知らなかった。 https://t.co/HCp71rLXsL"
- ツッコミどころいろいろ (#3611861) | Windowsにおけるファイルコピーに関する驚くほど複雑な注意点 | スラド
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SHCreateItemFromParsingName APIに対しては、たとえMAX_PATHを超える場合も、\\?\ を付けてはいけない謎tips。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それはいいのだが、8.3文字変形される(=longpathではMAX_PATHを超える)場合、ファイルダイアログ系&ドラッグ&ドロップで、非ASCIIパス要素が化けるバグがある様子。 たとえば「あいう」が「B0D0F0」に化ける。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(17763)でLongPathAwareを有効にしなくても、ファイルダイアログ系で(バッファ指定を大きくすると)MAX_PATHを超えるパスを格納してくる様子。 パス要素8.3文字化でMAX_PATHに収まるときはその形。それでもMAX_PATHを超える時は \\?\ を付加して通常パス名で格納というハイブリッド動作。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、マニフェストでlongPathAwareを有効にすると、そもそも8.3文字変形が無くなるため、この問題は消える。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32では、Symlink / Junction / Mount-point はいずれも「リパースポイント」という枠組みで実装されている。 FastCopyではリパースポイントをリパースポイントとして複製しているため、新しい種類のリパースポイントが現れてもそのまま動作するはず。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、リパースポイントにもカテゴリーがあり、DeDupやHSM(階層化ストレージ)用のリパースポイントだけは実体をコピーするようにしている。 具体的には、IsReparseTagNameSurrogateで識別する。 https://t.co/E4AEELiaOm"
- IsReparseTagNameSurrogate macro (winnt.h) | Microsoft Docs
histric-3
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今のところ、Win10(17763.475)上で、マニフェストlongPathAware(&レジストリLongPathsEnabled)を有効にしても、Drag&Drop経由では ShortPath換算MAX_PATH以内のファイルしか受け取れない様子。 (DragQueryFileWで MAX_PATH以上のバッファを指定しても無効)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ManifestでLongPathAwareを組み込むには、Win10SDKのmt.exeが必要。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「MSさん、FILE_SHARE_DELETEを作った時にUNIX的挙動に寄せなかった理由は何だろうなぁ…まったくもって使いづらい。 (大昔と違って)開いていてもリネームは可能なので、それで凌ぐことが多い。(インストーラで、コピーしたいファイルが開かれている時など) https://t.co/pOOus50ERd https://t.co/YiOxt1mLTJ」 / Twitter
- 消えないファイルの話 – JAPAN Platform SDK(Windows SDK) Support Team Blog
- mattnさんはTwitterを使っています: 「提案している人達は FILE_SHARE_DELETE を付け足す事で logrotate を実現したいという話だけども、Windows の FILE_SHARE_DELETE は UNIX のそれとは違う。これは issue の中のC言語のコードでも実証した。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昨年から fsutil file setCaseSensitiveInfo dir-path enable とやると、WSL配下以外でも大文字小文字を別ファイルとして扱うように、という今更迷惑千万な改変。 API的には NtQueryInformationFile(FileCaseSensitiveInformation) という隠しAPI的な呼び出しが必要。 https://t.co/9mIoB1292f」 / Twitter
- NtQueryInformationFile function (ntifs.h) - Windows drivers | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Win32APIのUTF8拡張を、システムグローバルなコードページ(日本だとSJIS/CP932設定)をUTF8に変更で実現もそうだけど、とってもセンスがない。 (APIの場合、やるならUTF8専用API(=主にW系APIのラッパーで良い)の追加が最もスジが良い方法)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「何と、この問題が起きるのは FindFirstFileExW だけであり、FindFirstFileW では問題なかった。 MSさん、一体どういう実装しているのかしらん…? https://t.co/Rm1VAZ6MUB」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いい加減な情報を返すことがある FindFirstFile系… ---- 「本当に最新情報が欲しい場合は GetFileInformationByHandle を使え」 https://t.co/RnvYvsd0en」 / Twitter
- FindFirstFileExW function (fileapi.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NTFSの副次ストリーム(ADS)の上限数が、ストリーム名長合計に依存する話。 副次ストリーム名は$ATTRIBUTE_LISTに含まれ、$ATTR…のサイズ上限は256KiB(&UTF16で格納)。 https://t.co/D5Utjev1J6」 / Twitter
- How many alternate data streams can a file have? - Colin Atkinson's Blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「SSD/NTFSで、10並列CreateFileすると、CreateFileプロセスよりMsMpEng(Windows Defender)がCPUの殆どを消費してしまう…これをOFFにすると10倍くらいCreateFile速度が延びる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「GetDiskFreeSpaceWはドキュメントと違い、途中dirでも情報取得できる模様。(実際そうでないとジャンクション等で困る) https://t.co/JO3ALotTaK」 / Twitter
- GetDiskFreeSpaceW function (fileapi.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近、GetFileAttributes等のfileattrに 0x100000 という undocumented な値が取れてしまう。 調べてみると最新のwinnt.hに FILE_ATTRIBUTE_UNPINNED という値が増えていた。(ただし説明無し。クラウド上ファイルをローカルに常駐させるかのフラグっぽい) https://t.co/VUwGZzsUSM」 / Twitter
- What do new Windows 8/10 attributes mean: No scrub file (X), Integrity (V), Pinned (P), Unpinned (U) - Super User
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy英語掲示板で、アーカイブビット(変更があると1になる属性bit)を利用したバックアップできると良いなぁ、というご意見。 今時でもコレを利用したバックアップって、メジャーなのだっけ?」 / Twitter
- Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「弊社ではまったく扱った記憶がなく、、どちらかというとAcronisとかのバックアップソフトが活用するメタなのでは?と思ってたり」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「タイムスタンプ&サイズ」が無変化だが、実は変更有だとアーカイブビットの意味ある…だがその状況はかなりレア。 (mmap中のメモリ経由更新はその類い。ただmmap中ファイルはバックアップする意味ほぼない)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Ext4 の Case Insensitiveモードって、Windowsとのファイル交換トラブルを減らすために作られたのかしらん? ちなみにWindowsだと、日本語ファイル名の「A」と「a」も同じ文字扱いと知っている人は少なめ。」 / Twitter
- 概念と化した恐竜先生さんはTwitterを使っています 「@shirouzu ちゃんと追ってないけど、考慮不足な気がするんですよね。Sambaの下敷きとして使うときにcase insensitiveが欲しくなるのはそうなんですが、そういう時には厳密にMS互換の動作をしてほしくて、Unicodeルールで処理されてもうれしくないと思うんですよ」 / Twitter
- UnagiさんはTwitterを使っています 「うお。全角 A a が同じなの今まで気付いてなかった。試してみると macOS もそうなのね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「動作が奥まで見えていると、無駄・並列化可能部分が判るのだろうなぁ。 16年前にFastCopy設計した時も、src/dstは別物理HDDなら並列化可能(逆に単一HDDなら大きなバッファ単位で切り替え動作が良い)、OSキャッシュは利点無いので回避、といった知見の積み重ねだったな。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「>OSキャッシュは利点無い 大量のコピーやバックアップ的な動作では、srcやdstに溜まったキャッシュは、次々発生するコピーによって置き換わって再利用されず、しかも他のプロセス/ファイルの物理ページもLRU的に侵食していたのだよね。 (なお最近のWin10は置換ロジックが少し改善されたのだが)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお UTF-16で数えた文字数なので、ANSI API+漢字だと 260バイト=130文字とかになる。 なお、OSレジストリ変更+アプリmanifest(longPathAware)+アプリ側で MAX_PATH超に対応、を満たすより、FastCopyのように内部で \\?\ 付与して MAX_PATH超対応する方がOS ver縛り無くて汎用性高いのだよな。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopyのベリファイは、OSキャッシュ排除は FILE_FLAG_NO_BUFFERING で排除してるが、デバイスキャッシュの影響も(なるべく)排除すべく、全コピー完了後にベリファイモードに移行する形にしてる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これに FILE_FLAG_WRITE_THROUGH を追加設定すると ReadFileでもCDB(SCSI/SATAコマンド列)にFUA(メディアI/O強制)ビットが設定されている、とのこと。へぇ。 (ただし効果があるかはドライバ依存) https://t.co/CK1KWGjZMR」 / Twitter
- How to verify file write to a physical hard disk — OSR
file コマンド
- ぬるぽへさんのツイート: "最近のfileコマンドは、先頭のマジックとマジックごとに用意されたテキストデータベースを比較するとかじゃなくて、専用のバイトコードでマジックのインタプリタが書かれていてそれを走らせて判断しているらしい"
- Tsukasa #01さんのツイート: "magic のバイトコードは一応チューリング完全になることを回避してるはず (私が知る magic では自由な形でのループは制限されてたはず)。 #kernelvm"
- Tsukasa #01さんのツイート: "あぁ、線形実行する形になってるからやはりチューリング完全ではない (ある値にマッチしたら深いマッチを行える程度) し、実行時間も完全に予測/制御可能。 #kernelvm"
- 本の虫: 実行可能ファイルかつPDFファイルかつJarファイルかつHTMLファイルとして認識されるファイル
- Cached I/O と Non-Cached I/O の違いをパフォーマンスカウンタで見てみたよ - NyaRuRuが地球にいたころ
- 「システム キャッシュ」の謎 - NyaRuRuが地球にいたころ
- ハードウェア書き込みキャッシュのバイパス要請 - NyaRuRuが地球にいたころ
- メモリマップドファイルとワーキングセット - NyaRuRuが地球にいたころ
- Win32 API でファイルのハードリンクカウントを調べる - WinSxS フォルダの真実 - NyaRuRuが地球にいたころ
- ユーザの感情に作用する遅延書き込みの仕組みを暴け - 記事紹介: Inside Vista SP1 File Copy Improvements (3) - NyaRuRuが地球にいたころ
- SSD なら動作を変えるアプリケーションを作る - NyaRuRuが地球にいたころ
- Vista のファイルコピーが遅い件について - NyaRuRuが地球にいたころ
- 記事紹介: Inside Vista SP1 File Copy Improvements (2) - NyaRuRuが地球にいたころ
- 記事紹介: Inside Vista SP1 File Copy Improvements (1) - NyaRuRuが地球にいたころ
- IWordBreaker とファイル検索 - NyaRuRuが地球にいたころ
- ReadyBoost と FILE_FLAG_NO_BUFFERING - NyaRuRuが地球にいたころ
- Big Sky :: CreateFile で FILE_SHARED_DELETE を指定するとどうなるか
- 全言語で気をつけるべき、ファイル書き込み時のお作法 - Qiita
- ほぼすべてのウイルス対策ソフトにOSを破壊可能な脆弱性 ~現在は多くのソフトで修正済み - PC Watch
- Microsoft、ゲームのロード時間を大幅削減する「DirectStorage」のWindows版を提供 - PC Watch
- ドッグさんはTwitterを使っています 「path-slash で Windows のファイルパスの verbatim prefixes を正しく扱えてないバグがあった.ファイルパスの prefix 地味にムズいなぁ https://t.co/zp1Sft0Z2x」 / Twitter
- std::path::Prefix - Rust
- ドッグさんはTwitterを使っています 「これ例えば verbatim UNC だと \\?\UNC\server\share までが prefix なのか…」 / Twitter
- マイクロソフトのDirectStorage APIがPCIe 3.0 NVMe SSDとDirectX 12 GPUを対応|自作.com
インストーラ
Windows Installer
MS
- Windows インストーラー パッケージの作成
- Visual Studio Installer :インストーラ パッケージ (.msi) ファイル
- Windows インストーラーのエラーをトラブルシューティングする方法
- Download Windows Installer 4.5 Redistributable - 日本語 from Official Microsoft Download Center
- Windows インストーラー 4.5 について
- 【レビュー】「Windows Installer」の不正なインストール情報をクリアできるMS純正ツール - 窓の杜
- Windows インストーラーの基本概念
- Windows Installer (Windows)
- Windows Installer Guide (Windows)
- Windows Installer Reference (Windows)
- About Windows Installer (Windows)
- Windows Installer Examples (Windows)
- Overview of Windows Installer (Windows)
- Using Windows Installer (Windows)
サードパーティ
- Windows Installer の修復によるインストールトラブル対処方法(Windows)
- Windows Installer を修復してインストールの不具合を回避する方法 - F-Secure Community - 67241
- 「Windows Installer」とは何ですか? - Wise for Windows Installer 5J Professional - ナレッジベースの詳細 | GrapeCity Developer Tools
- Windows Installerに対応したソフトウェアのリモートインストール手順
- 相栄電器 サポート情報: インストール時に Windows Installer のログを記録する
- インストーラー作成ソフト「Inno Setup」が2年ぶりのバージョンアップ - 窓の杜
- jrsoftware.org // Jordan Russell's Software
Qiita
- Windows GUIプログラミング入門15 インストーラー(1) - Qiita
- インストーラー作成ツールの選択 - Qiita
Wikipedia
- Microsoft Windows Installer - Wikipedia
- Windows Installer - Wikipedia
- WiX - Wikipedia
- WiX - Wikipedia
Twitter
- おおきくてながいさんのツイート: "インストーラーの中身は全く見てないけどmsiならupgrade table吹き飛ばしたりsetup.exeからたたいてるみたいだからレジストリにlogging=voicewarnupつけて引数解析したうえでmsi直実行したりproperty tableのそれっぽい値を探したりいろいろ悪いことは思いつくインストーラークラスタ"
- おおきくてながいさんのツイート: "インストーラーの中身全然知らないけどね。orcaも入れてないし。うん、全然知らない。何にも知らない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "アンチウイルスに誤検出されずらい、インストーラの作り方、を知りたいところ。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "この形にしたのは(Explorer等を使った場合に起きる)展開ファイルにゾーン情報が付与されるのを回避するため。 付与されていると、exe実行時に警告が出る以外に、ヘルプ(.chm)の目次は出るものの、肝心の中身が表示されないという、原因が分かりづらい問題が出る。… https://t.co/e71lQ4w7g3"
- うがp@「~」←ちるだ!!さんのツイート: "FastCopyを使っていた人ならわかるけど、 今回からINSTのみの配布。 実行時、展開のみ というオプションがあるみたい。 高速ファイルコピーツール「FastCopy」v3.50が公開 ~処理が2倍以上高速化するケースも - 窓の杜 https://t.co/nHxDHpWnVQ @madonomoriさんから"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "32bit/64bit版を同梱した共通化インストーラ(32bit製)が完了。 1,194KB → 1,461KB と約22%のサイズ増加。 ただ今時だと、誰も気にしないレベルかな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "/SILENT, /EXTRACT, /EXTRACT(32|64) などのオプションも追加。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WinServer 2008以降、WOW64 をアンインストールすることが可能になっている様子。 (32bit製インストーラのみ、という点がネックになる可能性はあるのかな?) https://t.co/YAD124wZZ3"
- WoW64 Is Now an Optional Feature for Server Core (Windows)
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyインストーラは、インストーラexeをビルド後、末尾にメインファイル群を付加する形。 IPMsgインストーラでは、インストーラのソースに、メインファイル群をC言語データ配列化したものが含まれ、ビルドするとexe自身にそれらが内包される形。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "後者は、アンチウイルスの誤検出低減への効果を期待したものだったが、数年運用した結果として、全く無意味と判った(笑)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy最新版は、32bit/64bitの両インストール(or 取り出し)を可能にした、単一インストーラ(当然32bitバイナリとして作成)となった。 今のところ、特に困った人もおらず、こちらは配布ファイルが1つで済むので良いことしかない様子。次の IPMsgでも同様にしよう。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "普通にインストールすれば、x64環境ではx64版が動くはず。 だが、わざわざx86版を取り出して、x64環境で使っている人が居るっぽい。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "インストーラに、sha256による自己ハッシュ検証を入れるように変更。 ただ、コード署名を入れれば不要になるが。"
- Rockridgeさんのツイート: "Fx65:MSI形式のインストールパッケージをサポート。15年前から要望がでていたが、ついに。参照:https://t.co/eWVZm3gyU7 / “show_bug.cgi?id=1475510” https://t.co/yw35MuaNhh"
- WiX チュートリアル 日本語訳
- WiXではじめるWindows Installer作成入門 第1回 (1/3):CodeZine(コードジン)
- Microsoft Visual Studio 2015 Installer Projects を利用してインストーラーを作成する
- Visual Studio 2015でWindows Installerを使えるようにする - Webサービスで起業を目指すプログラマーblog
- Visual Studio 2015 Community Edition で Windowsインストーラを作成する - グロブ
- Visual Studio 2017 Installer Projects でインストーラーを作成する │ Web備忘録
- Visual Studio Installer (インストーラー プロジェクト) に関するあれこれ | Tk2Kpdn Wiki
- Windows Installer の削除して良いファイル - Windows 2000 Blog
- 第561回 ローカルインストール時もcloud-initを活用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
MSIX
- MSIX とは - MSIX | Microsoft Docs
- Three things you need to know about Windows Developer Day - Windows Developer BlogWindows Developer Blog
- Microsoft/msix-packaging: MSIX Packaging SDK
- Free Windows Installer - MSI Installer Tool
- Grant identity to non-packaged desktop apps | Microsoft Docs
- Identity, Registration and Activation of Non-packaged Win32 Apps - Windows Developer Blog
- 新しいUWPとWin32アプリケーション配布モデル
- Microsoftがアプリ戦略をアップデート 新形式「MSIX」でモダン化は進むか (1/2) - ITmedia PC USER
- MSIXでパッケージ可能になった開発者向けWindows 10 SDK Previewが公開 - PC Watch
- 新しいアプリインストール形式“MSIX”が利用可能 ~「Windows 10 RS5」Build 17682以降 - 窓の杜
- Microsoft、次世代アプリパッケージ“MSIX”を作成・編集するツールをストアで公開 - 窓の杜
- 「MSIX Packaging Tool」がストアで正式公開 ~MSI後継のインストールパッケージを作成 - 窓の杜
- Microsoft、“MSIX Packaging Tool Insider Program”を開始 - 窓の杜
- 「Windows 10 May 2020 Update」、開発者向けの準備が完了 ~“Go-Live”なSDKが公開 - 窓の杜
- Windows Virtual Desktop の MSIX アプリのアタッチの概要 - Azure | Microsoft Docs
- Windows Virtual Desktop の MSIX アプリのアタッチ - Azure | Microsoft Docs
- 「Windows 10 Enterpriseマルチセッション」で「MSIX App Attach」をサポート - ZDNet Japan
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7以降、「プログラムの追加と削除」エントリは、非Adminでも登録可能になっていた。いつアナウンスされたのだろう…? (正確には HKEY_LM 以外に HKEY_CU 配下の REGSTR_PATH_UNINSTALL も有効になった、という形)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「コード署名」「Program Filesインストール」「マニフェスト(uiAccess=true)」の3つが揃ったプログラムはUACをバイパスして、管理権限プロセスにも SetWindowsHookEx できるのね。 (インストール時に管理者権限必須とはいえ、ちょっと微妙だな…) https://t.co/T9bnrIg7Ip"
- visual studio でビルドする際の uiAccess="true" について
- Shirouzu Hiroaki(白水啓章)さんのツイート: "正確には、管理者権限アカウントからプロセス起動した場合に、UACでは落とされるべき一部特権が落とされないで起動する、という話だろうなぁ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsで、日本語(マルチバイト)ユーザ名だけで発生する問題、時折、うっかり踏んでしまう…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "最近の FastCopy や IPMsgインストーラは、x86/x64版を同梱したファットバイナリで、OS種別により x86/x64バイナリのどちらかをインストール。 配布ファイルが1種類になり楽になった。 (以前は x86/x64 * exe/zip の4種類インストーラを配布。exeのみでOKになったのはコード署名のおかげ)… https://t.co/g8o1y5YmLv"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この意味が未だに分からない…どういう意図なのだろう? https://t.co/KLLYxZcwBT」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「設定→「アプリと機能」と、コントロールパネル→「プログラムと機能」in Win10。 アンインストール時、ユーザ権限インストールで登録されたアプリでも、前者だけは必ず管理権限を求められる。」 / Twitter
- UnagiさんはTwitterを使っています 「@shirouzu うちのだと特に特権昇格してくる事はないんですけど、確かに動作が違っててよくわからん動きするんですよね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@unagix そうなのですね。 ところで「動作が違って、、、」というのは具体的にはどんな違いでしよう?」 / Twitter
- UnagiさんはTwitterを使っています 「@shirouzu うまく説明できないんですが、RestartManager API 周りがちゃんと動いてくれてない感じなんですかね。自分のアプリを落としてアンインストールした後にまた上がってきたりする。他のアプリでも、動きは違うけどうまくアンインストールできないケースをよく見ますね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@unagix なるほど、、、 環境によって挙動がバラバラだと対処に困りますねぇ。」 / Twitter
- 2019年2月6日 OSを"インストール"ではなく"デプロイ"する ―マルチブート環境を簡単に実現するデプロイツール「znx」:Linux Daily Topics|gihyo.jp … 技術評論社
- Dockerイメージのレイヤー構造について - めもめも
- ASCII.jp:WindowsでのWin32アプリケーションのインストール状態を調べる方法 (1/2)
- 第9回 Windowsのファイルシステムの概要とFATファイルシステム (1/2):Windows OS入門 - @IT
- Periodic Background Sync 及び Web を Install するということ | blog.jxck.io
- FadisさんはTwitterを使っています 「CentOSのインストールディスク、ボリューム名をデフォルトから変えるとinitrdの中で詰んでしまうの何でかと思ったけど、これ光学ディスクドライブが複数あるマシンでブートした時に間違ったディスクをマウントしない為にボリューム名をチェックしてるのか」 / Twitter
システム情報
- システム情報
- SystemParametersInfo 関数
- IsProcessorFeaturePresent 関数
- GetSystemMetrics 関数
- GetSystemInfo 関数
- GetKeyboardType 関数
- GetCurrentHwProfile 関数
イベントログ
- Windows 7/8.1/10などで一部アプリが接続不能に ~2021年6月のパッチが原因 - 窓の杜
- Windows 10, version 21H1 | Microsoft Docs
- Event Logging Reference - Win32 apps | Microsoft Docs
- Windows Event Log - Win32 apps | Microsoft Docs
アクセシビリティ
- Windows 8.1/8 のアクセシビリティ機能 | マイクロソフト アクセシビリティ
- Windows 7 のアクセシビリティ機能 | マイクロソフト アクセシビリティ
- Windows 10 のアクセシビリティ機能 - マイクロソフト アクセシビリティ
- アクセシビリティ
- マイクロソフト アクセシビリティ ホーム
- アクセシビリティ対応アプリケーションの開発 – Windows アプリ開発
- 支援技術情報トップ - マイクロソフト アクセシビリティ
- Windows Vista のアクセシビリティ機能 | マイクロソフト アクセシビリティ
Audio & Video
- DirectX Video Acceleration - Wikipedia
- DirectX Video Acceleration - Wikipedia
- DXVA の構造体
- MediaSinkでDXVA
- 便利機能 >ハードウェアデコーディング
- Media Foundation - Wikipedia
- Media Foundation - Wikipedia
- つまみぐいプログラミング Media Foundation でカメラ画像を取得
- XAudio2とMedia FoundationでMP3/WMA再生 - syghの新フラグメント置き場
- MediaFoundation --- 動画の読み込み - 何でもプログラミング
- 5時間でMedia Foundation Interfacesをとりあえず使いこなしてアプリに実装する心得 - notes5375
- MediaFoundationを使う (1) MediaFoundationの特徴 - プログラマのつれづれなるままに
- Media Foundationで再生する動画(wmv)をDirect3D 9 surface上で表示したい
- チュートリアル: WRL および Media Foundation を使用した Windows ストア アプリの作成
- MediaFoundationでID3D11Texture2Dに動画のフレームを読み込む 覚書β - 昏の花
- XAudio2 Introduction (Windows)
- XAudio2 移行ガイド
Fixstars Tech Blog /proc/cpuinfo
- Windowsデバイスドライバの基本動作を確認する (1) - Fixstars Tech Blog /proc/cpuinfo
- Windowsデバイスドライバの基本動作を確認する (2) : プラグアンドプレイ - Fixstars Tech Blog /proc/cpuinfo
- 仮想マシン上でWindowsデバイスドライバをデバッグする - Fixstars Tech Blog /proc/cpuinfo
- Windowsドライバのテスト署名の動作を確認する - Fixstars Tech Blog /proc/cpuinfo
- WDKのサンプルRAMDiskドライバを触ってみた (1) - Fixstars Tech Blog /proc/cpuinfo
Wikipedia
- クライアント/サーバー ランタイム サブシステム - Wikipedia
- Win32コンソール - Wikipedia
- Windows プレインストール環境 - Wikipedia
- Windows Recovery Environment - Wikipedia
- Windows Aero - Wikipedia
- ClearType - Wikipedia
- Microsoft Transaction Server - Wikipedia
- Desktop Window Manager - Wikipedia
- Windows Imaging Component - Wikipedia
GitHub
- EasyHook
- EasyHook/EasyHook: EasyHook - The reinvention of Windows API Hooking
- Microsoft/vcpkg: VC++ Packaging Tool
- masafumiさんのツイート: "MicrosoftからHLSLを様々なグラフィックスAPI向けシェーダにコンバートするツールがオープンソースになってた。SPIR-VやMetalとかどうなんでしょうなぁ ShaderConductor https://t.co/LgrPRJUkTr"
- Microsoft/ShaderConductor: ShaderConductor is a tool designed for cross-compiling HLSL to other shading languages
Qiita
- Wine Emulator の内部構造 : Inside Wine - Qiita
- Visual Studio 2017 Update 3 で Win32 プロジェクトが作成できなくなった時の対処法 - Qiita
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VisualStudioデバッガで、文字列表示をMBCSからUTF-8に変更する方法、残念ながらVS2017の設定ファイルに項目当該が見つけられない。 https://t.co/55UOPeSTn2 (毎回ウォッチ画面で、str, s8 とかすればいいのだが、ちょっと面倒)"
- Visual Studio のデバッガで文字列を UTF-8 で表示させる - Qiita
- ダウンロードしたファイルの「ブロック解除」をコマンドで - Qiita
- Windows 10 NTFS代替ストリーム - いろいろメモ
- COM Advent Calendar 2014 - Qiita
- 【IE限定】JavaScriptからCOMを呼び出す - Qiita
Twitter
その他
- 藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "Cygwinがsocket全部にSO_{RSV,SND}BUF付けて回るのやめさせたら速くなったよって話 / “Windows network performance suffering from bad buffering |…” https://t.co/dIyhmKE12X"
- Windows network performance suffering from bad buffering | Networking Blog
- 道化師さんのツイート: "Windows さん、単純なファイルの読み書きを大量に実行するとそれだけでちょくちょくエラーになるのホント勘弁して欲しい。。。 # 失敗した場合でもリトライするだけ成功する"
- sweetie089さんのツイート: "windowsの下位互換性は他に比べるとすごいけどやっぱり色々切り捨てていて、例えば別に確保した隣り合うメモリーを一つと扱い巨大データを入れて一部APIに突っ込むとエラーする。 これができる前提のコンパイラ利用アプリは動くけど長く使ってると唐突に落ちるという意味不明挙動になりマジで困る。"
- Windows_Japanさんのツイート: "【ファイルの容量をいち早く確認したいそんなとき】 メールに添付をするときなど、ファイルのサイズが気になる時はありませんか? 「Alt+ダブルクリック」でファイルを選択するとプロパティを表示できるので、すぐに確認ができますよ。 #Windows #Windows10… https://t.co/npiBujXYu0"
- 品川 高廣さんのツイート: "Windows 10 SDK (10.0.17763.0) にある Windows Hypervisor Platform API のヘッダファイルにタイポを見つけた。UINT32 を UNIT32 と書くのはありがちなタイポではあるけど、Microsoft がやるとはね。https://t.co/ys9MFdwl3e"
- Virtual Processor Exception | Microsoft Docs
- マイクロソフトサポートさんのツイート: "エクスプローラーをすぐに開きたい時は、「Windows」キー+「E」キーを使うのがお勧めです。キーボードだけで操作できるので作業時間の短縮にもなります。覚えておくと便利なショートカットキーですよ #MSHelpsJP… "
- moriyoshitさんのツイート: "これかー https://t.co/xyp9yF9c3u… "
- http://www.catch22.net/tuts/undoc01
- mattnさんのツイート: "通常 Windows のプロセスは UNIX の様に extra FDs を渡せないんだけど、どうやら STARTUPINFO の lpReserved2 に * fd の個数 * fd の種別 * fd の配列ポインタ の構造体ポインタを食わせた場合には UNIX と同じ動作になるという裏 API があるっぽい。"
- Takashi Kawasakiさんのツイート: "Restart Managerも結局のところ中途半端な感じだし、MSIは何をしているのかわからんし、Windows Updateでの再起動を減らしましたって話も気づいたら元に戻ってるし・・・、ファイルロックからは逃げられないのだよ。"
- Akso de la Malbonoさんのツイート: "ちょっと待って, Windows 上で動くバイナリエディタ探したら20年以上更新が停止しているソフトウェアがいまだに人気で現役稼働ってどういうことやねん.というか,それよりも20年以上更新が停止しているプログラムが最新 OS で普通に動くってどういうことやねん."
- Takashi ToyotaさんはTwitterを使っています: 「テーブルは各プロセスに紐づけられている。解析すれば、各プロセスとカーネルオブジェクトの関係が簡単に分かる。たとえば、気になるプロセスが参照しているレジストリ(Keyオブジェクト)情報を容易に取得・解析できる。」 / Twitter
- Takashi ToyotaさんはTwitterを使っています: 「Windowsのハンドルテーブル周辺は幾度となく内部変更されてきた。この記事では変更の背景をアセンブラーレベルで紹介している。このテーブルはオブジェクト名前空間と関連し、フォレンジック解析では避けて通れない。大変魅力的なテーブルである。」 / Twitter
- Takashi ToyotaさんはTwitterを使っています: 「WinDbgとWindows XP/7/8/10のハンドルテーブル解析 https://t.co/XYwXiaXNRS via @t_toyota」 / Twitter
- Inada NaokiさんはTwitterを使っています: 「Windows 1903 から、アプリ単位でACPをUTF-8にできるようになったらしい。今までは-W系APIが推奨されていたけれども、これからは-A系もOK。 https://t.co/g5V8HEBJVG」 / Twitter
- Windows UTF-8 コードページを使用する - UWP apps | Microsoft Docs
- だんぼーだよさんはTwitterを使っています: 「PaaS やマネージドなクラウド移行ができず IaaS 移植に留まる原因いろいろあるのですが、検討の結果最終的に "外字" が主要因で諦めたケースをよく聞きます。そして大半が非 Unicode のシステムで、Unicode には意図する文字が存在する (外字不要) のことが非常に多いです。 https://t.co/CAFZq00T7F https://t.co/dJOo0cTecZ」 / Twitter
- だんぼーだよさんはTwitterを使っています: 「アプリの書き直しに加えデータの置換が発生するため、非常に難しい移行になります。新規に開発するシステムでは少しずつでも Unicode 対応を検討し、やむを得ない場合以外は新たに外字を増やさないところから PaaS を見据えたデザインが必要です。業務上必要な記号等も外字以外の実装方法はあります。」 / Twitter
- だんぼーだよさんはTwitterを使っています: 「なお、Windows において、外字は作成したコンピューター以外での使用は非サポートです。外字のコピーによって回避策のない文字化けや Bluescreen に至ることもありますので、すぐには難しいユースケースもあると思いますが、可能な限り控えてください。 https://t.co/8BMmugw9Gu」 / Twitter
- Windows で外字エディタを使用して外字を作成する方法
- Masahiro SakaiさんはTwitterを使っています 「Why does CoCreateInstance work even though my thread never called CoInitialize? The curse of the implicit MTA https://t.co/GwGqJ23yVz CoInitialize[Ex]してないのにMTAに属してているように見え、仕様なのか疑問に思ってたけど、一応ちゃんとドキュメントされていたのね。」 / Twitter
- Why does CoCreateInstance work even though my thread never called CoInitialize? The curse of the implicit MTA | The Old New Thing
- ケケモコソカメニハさんはTwitterを使っています 「(横から失礼します。Windowsのカット/コピー/ペーストは元々Shift+Del/Control+Insert/Shift+Insertでした。C X VはApple起源ですね。叩く方もよくわかってないまま叩いてるので流石に可哀想になります。 https://t.co/X8rbIpOtH7 https://t.co/whPSWFvxLz ……って割り込もうか悩んでまs)」 / Twitter
- Cut, copy, and paste - Wikipedia
- Computer History: Who Invented Copy and Paste Command?
- ドッグさんはTwitterを使っています 「winrt-rs,windows-rs に改名してたことを知った.crate 名も windows という直球な名前になってる https://t.co/mqTF1aQi0c」 / Twitter
- microsoft/windows-rs: Rust for Windows
API・型
- kenichiudaさんはTwitterを使っています 「元ツイートの意図から外れるかもしれないが、Windows APIを擁護すると - STRICTが定義されていればHBITMAPとHCURSORは別になる。 - cにもintptr_tあるし、サフィックスのPTRはWindows API固有ではない。 - WORDはIAに引っ張られている感がある。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「C言語でなくWin32APIの型定義だと ・HANDLEのtypedef多すぎで、HBITMAPとHCURSORを取り違えてもエラーにならず ・LP…と言いつつ、far(lp)に対するnear pointerはもう無い ・DWORD_PTRは、ポインタ型でない ・WORDは2バイトのまま(まあ互換性大事) とか色々ツッコミ所多い。 https://t.co/THs00R4U4q」 / Twitter
- Windows Data Types (BaseTsd.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔からSTRICT入れてるのだが、最近もHANDLE関係で形違い代入できてオイオイと思った記憶あるのだが、何だったかなぁ。 (HICONとHCURSORは意図的に代入可能にしてあるっぽいが) STRICT は HDC だと struct HDC__ {...}; typedef struct HDC__ *HDC; みたいな変形になる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「型の話はズレるけど、HANDLE型の大半は CloseHandle() なのだが、HANDLE FindFirstFile() は FindClose() で閉じるとかの例外も意外と多くて困りもの。 (OS内部で振り分け可能だろうに…kernel32.dllなどのユーザランドでアレコレする必要があるとかだろうか?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「レイモンド・チェン氏に、The Old New Things で取り上げてもらいたいところ。 (同じ型なのに開放方法が違うの、newとmallocポインタと同じで、自動開放しづらくて嫌)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応、関連。 https://t.co/OBzWJY0Czd」 / Twitter
- Kernel Objects - Win32 apps | Microsoft Docs
- kenichiudaさんはTwitterを使っています 「@shirouzu ハンドル系のunique_ptrを個々に定義するより、WILを使った方が楽かもしれません。 https://t.co/NU9BsgLWcw」 / Twitter
- RAII resource wrappers · microsoft/wil Wiki
App Paths
- はぇ~☆さんはTwitterを使っています 「Windows APIの中には、ごくまれに実行ファイルのインストール先がProgram Filesか否かで挙動を変えるものがあるから、あんまりおすすめはできないよ。 https://t.co/xeCTyu8Rcl」 / Twitter
- はぇ~☆さんはTwitterを使っています 「あとApp Pathsという仕組みがあるから、ちゃんとしたアプリケーションであれば、インストール先がどこであれ起動できるのよ。例えばGoogle Chromeは start chrome でちゃんと立ち上がる。」 / Twitter
- UnagiさんはTwitterを使っています 「@haxe あれすごくチートっぽくて、ユーザープログラムが触れて良いものなのか悩ましい気がする。」 / Twitter
- はぇ~☆さんはTwitterを使っています 「@unagix HKCRに書いてもいいのよ?」 / Twitter
- はぇ~☆さんはTwitterを使っています 「@unagix HKCUだた」 / Twitter
Store 締め出し
- Hideaki_nomapさんのツイート: "どうやらMicrosoftは、人気やアクティビティの低いappを排除することでStoreの質を高めようとしているみたいですが、市場の価値は人気商品ばかりではなく多様性も重要というところに、どうして気付かないのだろう。たとえ利用者が僅かでも、その人たちには有用でしょうに。 @microsoft @msdevjp"
- Hideaki_nomapさんのツイート: "私が視覚障害者の補助のために作成したappは、この理由によって強制的に公開停止されたようです。フィードバックを得て改良する道も閉ざされました。Storeチームには本当に呆れました。… "
- Hideaki_nomapさんのツイート: "Store teamは、"Create amazing apps with staying power" sectionを見ろと言ってきます。ポリシー10.1.4のActive Presenceは、よく考えると最悪ではないですか。人気の本しか置かないダメな図書館と似たような臭いを感じるのです。… https://t.co/BVWvyex40K"
- Hideaki_nomapさんのツイート: "Win 10用のアプリをセキュリティ的に安全に配布しようとすると、Storeを使うことになるのですが、@microsoft が行っていることは、人気がないといった理由でその配布手段を開発者から奪う行為です。これが許されるなら、Windows用に開発する価値は全くないですね。"
- Hideaki_nomapさんのツイート: "例えば、ホーキング先生の車椅子のようなのもを作ったとします。たった一人のためのアプリでも、利用者が必要性を認めるなら、有用性は高いものです。大勢に関係のないアプリでも、まだ稚拙な代物でも、その配布手段を奪う行為は、市場やプラットフォームの破壊でしかないと思います。"
- Hideaki_nomapさんのツイート: "MSからメール連絡が来て、突然にunpublishされました。こちらで調査し、修正する余裕すらありません。理由はこれだけ→… "
SendInput
- kayaさんのツイート: "UWPではSendInput使えなかったか..."
- kayaさんのツイート: "いや、使えるけどキーロックがずれる?"
- なかのん&マジックさんのツイート: "SendInput使えないと自動テストが限定的になりそう。"
@shirouzu
互換性
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@totutohoku ご興味がありましたら参考まで。 WindowsにSimCityのバグ対応が入っている話。 https://t.co/lD4ccuV95P 泥臭い対応の数々。 https://t.co/2c2nq0oN1S クラッシュで次回からメモリ管理の挙動変更 Fault Tolerant Heap。 https://t.co/omhmQlcKQj」 / Twitter
- 2004-07-03
- 本当はすごい「Windowsの互換性維持」 | 日経 xTECH(クロステック)
- Fault Tolerant Heap - Windows applications | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32 APIのUTF-8版出さないかなぁと昔から思う。 (ANSI版をコードページで不完全にu8対応させるのではなくて)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「不完全と言うのは、ANSI用構造体だとサイズ不足なメンバがそこそこあること。 (以前はシステムグローバルでMBCS捨ててのUTF-8解釈モードという、さらに使い物にならない縛りがあったが、今はアプリ単位が可能に)」 / Twitter
同期
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32 CriticalSectionとEventを使った自作Condtionクラス、待受スレッド上限が32なのだが(atomic系演算の制約)、そろそろVista以上を必須とする Win32 CONDITIONを使うかな。 (以前のベンチでは、性能は同等だった)"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「それにしてもVistaて、セキュリティ関係だけでなく、CONDITION_VARIABLEやRWLockなど便利なプリミティブが随分と増えた…OSのメジャーバージョンを上げただけのことはある。」 / Twitter
ソート順
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Explorerのソートは、数字は自然ソート、漢字は音読みソート、になっている様子…NTFSの順序(unicode順)と違っているため、プログラム出力と順序が違っていて、作業がしづらいな。"
- SODA Noriyukiさんのツイート: "音読みに変換しているわけではなくShift_JISというかJIS X0208的順序でしょうから(含まれている文字がすべてShift_JISで表現できるのであれば)文字コードを Shift_JIS にして自然ソートすればいいんじゃないでしょうか?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そこまでやる気なら、その通りです(笑)… "
エラー
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsのHRESULTは、ファシリティだのといった構造を持っている割に、現実の問題解決に繋がらないことが多すぎ。 エラーコード(抽象化されたエラー内容)よりも、いっそエラーファイル名&行番号を出してくれた方が問題解決DBが充実するのでは感もあったり(笑) https://t.co/LMOWLxABiz"
- ASCII.jp:Windowsで表示されるエラーコードの見方|Windows Info
- Shirouzu Hiroaki(白水啓章)さんのツイート: "古い話だが、エラー時のHANDLE値がINVALID_HANDLE_VALUE(0xffffffff)だったりNULL(0)だったりと揺らぐ理由…Win16関連APIは前者、Win32独自は後者。 (前者はGetCurrentProcess()等の疑似ハンドルとも等値なので注意) https://t.co/HEzgH6enao"
- Why are HANDLE return values so inconsistent? – The Old New Thing
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ただし、CreateFileはWin32新設だがWin16時代に予約されていたこと&OpenFileが存在することから、0xffffffffに統一。 そういえば、UNIXの creat → open に対し、Windowsは OpenFile → CreateFile と逆の名前に進化したな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "0xffffffff ではなく -1 が正しい。 (x64で符号拡張なしに64bit化したと思っていたのだが、改めて確認するとそんなことは無かった)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、INVALID_HANDLE_VALUE という長い命名はイマイチ感。 命名は、エントロピー符号的に「頻度の高いものは短く」をベースにして欲しいところ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "カーネル内部で発生したNTSTATUSエラーがWin32エラー番号に翻訳できないと、ERROR_MR_MID_NOT_FOUND(317: strerror() での変換に失敗的なエラー)に変換されてしまう様子。 https://t.co/LX107xcAXD"
- c# - How to convert specific NTSTATUS value to the Hresult? - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんのツイート: "出くわしたのは、GetOverlappedResult(非同期IOの結果を受け取るAPI)で 317 が返る、という問題。 非同期API系は利用頻度が少ないせいか、こういうアラが出やすい印象がある。"
エクスプローラ
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Explorerの各アイコンの表示設定は、ROT13BLOBなレジストリに保存されている。 (これを強制変更すれば、次回ログイン(or Explorer再起動)以降は表示可能、という動作ならできるのだが)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyでシェル拡張のオプションが通常のオプション指定とは別画面になっているのは、元々、シェル拡張はOSグローバルな機能だった名残り。(全員に設定が反映する) しかし、今は原則ユーザ毎拡張が出来るようになったので、そろそろ通常設定画面に移してもよいかも。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Fall Creators Updateから、通知領域アイコンが(隠しAPIを使っても)プログラム的に常時表示できなくなった点、いろいろと調べたけれど、結局、OS設定画面へのショートカットボタンを作るという、ソーシャル的解決にすることに。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで、Explorerの標準コピーハンドラを置き換える実験に成功。 当初、ICopyHookを使うと思っていたのだが、これはsrcがディレクトリにしか効かない中途半端なシロモノだった。 何日か研究・試行錯誤した末にようやくたどり着いた…「MSさんちょっと酷いよ」と言いたくなる方法というか。"
ネットワーク
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WNetOpenEnum 等のWNet系APIですかね。 FastCopyだと逆に、ドライブレターの付いたネットワークドライブからサーバ名+共有名に変換するのに、WNetGetUniversalName APIを使っていたりします。… "
- Kengo Sawatsuさんのツイート: "Win32APIでIPアドレスまたはUNCで引いた名前からSMBの共有ポイント名サーチする関数ってないのかなぁ。 ちょろっとした社内情報探索スクリプトを作りたいのだけど。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ネットワークドライブ相手だと、スレッド数は多いほど削除速度が上がっていく様子(50→60スレッドで10%向上など)。 自作CondVarは32スレッドまでの制限があるので、そろそろVista以降でのみ使える CondVar に移行するかな… https://t.co/mg9NKhH1OQ"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "2018 April Update以降の挙動と思うが、隠しAPIに近い、IOCTL_LMR_DISABLE_LOCAL_BUFFERINGを発行しておかないと、ネットワークドライブへのWriteFileが、非同期I/Oあり非同期I/Oなしと同じ速度に低下する。 ちょっと酷い挙動だなぁ…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "MSDNでの IOCTL_LMR_DISABLE_LOCAL_BUFFERING に関する記述。 (SDKのheaderにすら番号の定義がない) ---- The IOCTL_LMR_DISABLE_LOCAL_BUFFERING control code is defined internally by the system as 0x140390 and not in a public header file. https://t.co/E2iWHkdlvQ"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Vista以降、CreatePersistentTcpPortReservation API が増設され、指定ポート範囲を永続予約(&この時のトークンを使って bind)が出来たのだが、手元で試すとトークン不要でbind出来てしまう謎… https://t.co/jIIJgS8yzA」 / Twitter
- CreatePersistentTcpPortReservation function (iphlpapi.h) - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(Reserve済みでも(トークンなしに)bind出来て、逆にbind中にReserve試みると「使用中エラー」になるという、話が逆ではとか)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、コマンドラインだと管理者権限でこんな感じ。 netsh int ipv4 add excludedportrange tcp 開始ポート番号 ポート数」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win32APIで、20数年たっても未使用なreserved引数や、逆に Ex とか 2 が付いた APIも多いさまを見ると、事前に見通すことの難しさよとか思ったり。 (Win16 → Win32で形だけ残したreserved引数もあるらしいが)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "MSの中の人がコメントしていた。 https://t.co/o2vTZrQz9Z"
- winapi - Windows API reserved parameters - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんのツイート: "最近のWin系OS判定は、IsWindows10OrGreater() 的な関数を使うのが推奨だが、いずれ、 IsWin10FallOrGreater() みたいな関数が登場するのだろうか?(ない) https://t.co/U8QY5ahSjN"
- Version Helper functions - Windows applications | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「古くて新しい話。 WinProcは汎用関数のため、メッセージ種類によって、2つ用意されたuint的なパラメータに、char/wcharポインタをキャスト代入したりする。 混在ミスがあってもコンパイラは警告を出せないという話。 unixのioctlの引数問題に近い。 https://t.co/b0DxHz5HiP」 / Twitter
- 「Windows 10」のシャットダウンを妨げる謎の「G」アプリ、マイクロソフトが説明 - CNET Japan
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応、UWP/XAML を Win32 から使うという手はあるらしい。 ただこれは、Win8.1以降用のビルドの必要があるので、WIn7をサポートするならDLL化が必要。 https://t.co/T8JGi0t18v」 / Twitter
- UWP XAML を使用した C++ Win32 アプリでの API のホスト | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32の Kernel Handle は常に下位2bitは0であり、それらは CloseHandle で閉じられる。 (のはいいけど、HANDLE型を名乗りながら、FindCloseしろとか、非Kernelな疑似Handle多すぎ) https://t.co/5XDjnNsJPn」 / Twitter
- Why are kernel HANDLEs always a multiple of four? | The Old New Thing
@rockridge07
- Rockridgeさんのツイート: "Fx57:Windows 10上のテーマではウィンドウの半透明効果を無効にしている。ウィンドウのリサイズが高速化されるなど、パフォーマンスに好影響も。 / “1366405 - We're forcing the window'…” https://t.co/WurqxtabCf"
- Rockridgeさんのツイート: "Fx60:Windows版で、グループポリシーを用いた集中管理が可能となった。 / “1433136 - Implement GPO support on the Policy Engine” https://t.co/6ImjkZEVsQ"
- Rockridgeさんのツイート: "Fx63:Windows 10のダークモードをサポート。Fx65ではアクセントカラーも正しく反映されるようになった。参照:https://t.co/Nre4vq8hvA / “1368808 - Respect Windows …” https://t.co/uACKUzrjGZ"
- Rockridgeさんのツイート: "Fx64:Windows版で、ページアクションメニューに「共有」の項目が新設された。OSネイティブなページ共有機能を呼び出すことができる。 / “1363169 - Add support for native Windows …” https://t.co/MUAc7IToXv"
@d_toybox
- なかのん&マジックさんのツイート: "WindowsってVista以降はプロセスがビジー状態になると一旦、ウインドウがフォーカスを失ったかのようなメッセージが発行されてるんで、たぶんそれによってドラッグの処理が中断されて……みたいな感じなんだろうなと。知らんけど。"
- なかのん&マジックさんのツイート: "FirefoxでもIME周りでそれが原因で遅いマシンだと未確定文字列が意図せず確定されまくるというバグが昔あって、 https://t.co/ypmQllanBc で修正してたり。"
- 窓の杜さんのツイート: "正直、“タブレットモード”のボタンとかいりますか? クイックアクションに表示されるボタンをカスタマイズする【いまさら聞けないWindows 10のTips】 https://t.co/Whjwx33yv8 https://t.co/FtlmXUENU6"
- なかのんクエストさんのツイート: "デバッグ時に必須のボタン。"
- なかのん&マジックさんのツイート: "Windowsのタブレットモード使うと、WebアプリがFirefox for Androidより使いにくくて、逆に、「モバイルブラウザモード」みたいなの欲しくなるな。「PCブラウザモード」みたいなの。"
- なかのん&マジックさんのツイート: "あ、先にGoogleさんとの協議の結果、決まったWindowsのAltGrキーのイベント発火を修正するか。おおむね、Geckoの動作が好ましかったっていう結果なので修正簡単そう。"
- なかのん&マジックさんのツイート: "WindowsのAltGrって、なんで内部的にはCtrl+Altの同時押しという、すごいリソースが無かった時代からの伝統です、みたいな感じがあるんだろう。MS-DOSの頃にどうしてたのか分からないんだけど、少なくともWindowsの時代にはそこまでシビアじゃなかったと思うんだけど。"
- なかのん&マジックさんのツイート: "Win10のRDP、サーバ側と、クライアント側でDPI設定が違うとき、RDP経由か否か、それぞれで起動したアプリが、もう一方の方で見る時にDPIおかしくなるのは、やっぱりアプリのデキが悪いのかなぁ。"
- なかのん&マジックさんのツイート: "Windowsをタブレットで使うときには、タッチキーボードをサードパーティーに解放して欲しいのと、OSレベルでの戻るボタンみたいなの必要だなーと感じる。"
- なかのん&マジックさんのツイート: "タスクバーに戻るボタンみたいなの、あるにはあるけど、そうじゃねーっていう動き。"
- なかのん&マジックさんのツイート: "SendInput()でWM_KEYDOWNとWM_CHARを発生させたときに、lParamの31ビット目 (lParam << 30) がどうなるか詳しい人居ません?"
- なかのん&マジックさんのツイート: "SinharaとTamilのIMEと自称するキーボードユーティリティがWM_KEYDOWNとWM_CHARを自前で生成して送ってくるんだけど、それらのlParamの31bit目が常に1で困ってる。"
- なかのん&マジックさんのツイート: "(lParam & (1 << 30))だ"
- なかのん&マジックさんのツイート: "あー、なんか分かった気がする。 KEYEVENTF_KEYUPを指定しておかないと、キーが内部的に押されたままになってて、lParamの31bit目の値が決まってそう。"
- なかのん&マジックさんのツイート: "Win/macOS間はやりたいことと、好みの問題大きいな。個人的にはWinだけど、Winの、とくにノートパソコンでは、タッチパッドの出来が恐ろしいほどピンキリなんでこの辺の環境で当たりを引いたかどうかでも大きく評価が変わりそう。ひどいのは本当に使い物にならない。"
- なかのん&マジックさんのツイート: "MicrosoftはSurfaceBook見る限りは、MacBookと同等のタッチパッドを提供できるんだから、各PCベンダにライセンス供与とかなんとかできんものかな。"
- なかのん&マジックさんのツイート: "あの辺、ソフトウェア特許の塊らしいから。"
- なかのん&マジックさんのツイート: "レビューしてて初めて知ったけど、Win2k以降はデバイスの変更を普通のアプリも簡単に検出できたのか。"
- なかのん&マジックさんのツイート: "そういえばPDFのサムネイル作成って異様に遅いけど、あれやってるのはWindows自身なのか、Adobeのシェル拡張なのか。"
- なかのん&マジックさんのツイート: "そーいや、D&Dを受け入れるアプリがバッチ処理とかで当分応答できない時に、エクスプローラからのドラッグ中にそのアプリのウインドウの上を通過しちゃうとエクスプローラ全体を再起動するしかなくなるのつらい。"
- おこめ/つなもりさんのツイート: "リモートドライブ(停止中)通ったりすると死… "
- なかのん&マジックさんのツイート: "歴史的にしゃーないけど、設計自体のバグよね……… "
- なかのん&マジックさんのツイート: "Windowsがマイクロソフトアカウントの作成、もしくは登録から行くと、ユーザー名でフォルダ作るの本当に迷惑。古いVCのランタイムが使えなくなるんで動かないアプリが出てくるんだよな。"
- なかのん&マジックさんのツイート: "非ASCII文字が含まれてる場合、ASCII文字だけの別名も用意しておくとか逃げ道欲しい。「短いファイル名」みたいな。スマートじゃないけど、アクセシブルなのは保証される。"
- おおきくてながいさんのツイート: "名前に土吉含んでたらmsiすら動かなくて完全にダメ"
- なかのん&マジックさんのツイート: "WindowsってプロセスのCPUの優先度以外に、ネットワークの優先度って設定できないのかな。ダウンロードしながらインストールするインストーラが動いてると、ストリーミングで動いてる動画ソフトが途切れ途切れになる。"
- なかのん&マジックさんのツイート: "最近のMSはユーザー目線でも、悪い意味でMSらしくないと思うけど、アプリ開発者としては、APIの互換性・安定性という点、また、そのドキュメントのクオリティでは、最高かなって思えてしまう。"
- なかのん&マジックさんのツイート: "よそのデスクトップアプリ開発者向けのドキュメントなんて、形だけで役にたたないとか、そもそも書いてることが嘘とか多過ぎで。"
- なかのん&マジックさんのツイート: "ただ、COM形式のAPIは正直なところ、手放しで褒められるものは私の知ってる狭い範囲には無い。"
- なかのん&マジックさんのツイート: "Win32のあのメッセージドリブンな形式の採用や、C APIの設計って今でも天才的だと思う。"
- なかのん&マジックさんのツイート: "APIをオブジェクト指向にしちゃいかんと、最近本当に思う。オブジェクト指向は一見綺麗な、すっきりして見える構造を作り出せるんだけど、そのスッキリ感を維持するためには大きな変更を必要とするので、安定感や互換性を求められるAPI向きではないよな、と。"
- なかのん&マジックさんのツイート: "Cocoaとかホントにアレ。"
- なかのん&マジックさんのツイート: "そーいや、Cocoaに代替API無いのにCarbon APIを無かったことにしていくの、本当に頭おかしい。Geckoのキー入力のハンドリング部分なんか、今、Appleが公開してるドキュメントだけを元に書けなかったりする。"
- なかのん&マジックさんのツイート: "興味ある人は読んでみると面白いかも。TISで始まってるAPIを使いまくってるけど、これがないと、入力を国際化してフレームワーク的な他のアプリの土台となるものを書けなかったりする。ちなみに、いまだにMacOS9以前のAPIも使ってたりする。使わないとどうしようもなく、かつ、今はドキュメントも無い"
- なかのん&マジックさんのツイート: "https://t.co/kUOexQ9Ro6 このへん。"
- TextInputHandler.mm - mozsearch
- サンディスクさんのツイート: "Windowsさんはなぜ、「フォーマット」と「取り外し」をすぐ近くに配置するのか・・・(*'ー'*) (←USBメモリーを安全に取り外そうとして、間違ってフォーマットを押してしまい、しかも、あれ??フォーマットするんだっけか・・・・(*'ー'*)?? と勘違いしてフォーマットしてしまった)… https://t.co/agxZKjArdd"
- なかのん&マジックさんのツイート: "フォーマットがそもそもコンテキストメニューに必要なんだろうかってのはいつも感じる。"
- なかのん&マジックさんのツイート: "レコーダーで、BD/DVDのディスクの初期化の近くにHDD/USB HDDの初期化があるのもかなり怖い。"
- なかのん&マジックさんのツイート: "GUIアプリ書いてると嫌になるのはダントツでmacOSだなー。APIがころころ変わったり、代替わりしたり、新機能への対応がしんどかったり。Linuxはちょっとシンプル過ぎてやれないこと多かったり、IME周りはカオス過ぎてアレ。Windowsはその辺のバランスが良い。進化してるけど互換性が凄い。"
- なかのん&マジックさんのツイート: "うわー、Windows、VK_OEM_PLUS 0xBB For any country/region, the '+' keyっていう定義なのに、`+`キーが入力できないキーでこのキーコードが発生するケースあったのか。知らんかった……"
- なかのん&マジックさんはTwitterを使っています: 「WindowsってShiftキーだけ、両方を離した時にしかWM_KEYUPが発行されないバグがあるんだ……Win7でも再現した。 / https://t.co/OFWbfje4Qj - keyup event with ShiftLeft/ShiftRight code sometimes not fired」 / Twitter
- 1566848 - keyup event with ShiftLeft/ShiftRight code sometimes not fired
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「全然違う話だけど、Microsoftさん、マウスホイールのメッセージに、モーメンタムかどうかの情報を足すようにしてくれませんかね。つまり、SendInputからの変更。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Ctel + wheelでズームを実装すると、惰性でホイールが回り続けているイベントを、後からCtrlキーを押したことで、意図しないズームが発生しちゃうんですわ。macOSはイベントから惰性かどうかを判断できるのでこういった不本意なズームを回避できる。」 / Twitter
@makoto_kato
- Makoto Kato ︎︎さんのツイート: "Nightlyをアップデートするたびにe10s (with sandbox)が動作しなくなるので調べたけど、Windows 10のGetMappedFileNameWがバグってる気がするんだ。たぶんCoWがらみな気がするだけど。 https://t.co/TZM2FEEhOp"
- Makoto Kato ︎︎さんのツイート: "https://t.co/zZDcKsDro8 "またWindows On ARMでは、AArch64のネイティブコードからなるデスクトップアプリケーションが動作する" WDKみてると、なんかaarch64なデスクトップアプリ使えないようにしてる雰囲気あるって話でてるんだけど、こ… https://t.co/er1hwgIZKC"
- Makoto Kato ︎︎さんのツイート: "WinRTの時だって、バイナリ的には署名チェックさえバイパスすれば動いたし (CSRSSにデバッガアタッチしてバイナリパッチしちゃえばだったはずだけど)、あれはホント愚策だったなぁと"
- Makoto Kato ︎︎さんのツイート: "clang使った場合で、最新のWindows SDK使うとビルドエラーになるの、これね https://t.co/FPwttRPSeI"
- clang can't compile wrl/implements.h - Developer Community
- Makoto Kato ︎︎さんのツイート: "現在(過去も含めて)公開されているWindows SDKだとChakraCoreとか.NET Coreのaarch64版をビルドできないんだけど、彼らコントリビューター増やす気はさらさらない感じしてる"
- Makoto Kato ︎︎さんのツイート: "https://t.co/A1Ny6xp2ne"
- Makoto Kato ︎︎さんのツイート: "rustというかllvmのマトモなポートしない限り無理だけど"
- Makoto Kato ︎︎さんのツイート: "Windows on arm用のイニシャルゴードはllvmに入ってるけどexception handlerのサポートが入ってないからrustはそままではポートできない。そもそもMicrosoftがehの仕様に関するドキュメント公開してない"
- Makoto Kato ︎︎さんのツイート: "armasm64のehサポートに関しては必要なヘッダはバグ報告したんで最新のWindows SDKには入ってる"
- Makoto Kato ︎︎さんのツイート: "armasm64のEHサポートに関してはcプリプロセッサ通さないとarmasm64だけではサポートほぼ不可という状況で、いろいろ面倒なこと増える"
- Makoto Kato ︎︎さんのツイート: "そもそもMSはarm/aarch64のアセンブラを自社開発せずにArmからライセンス貰ったみたいで、いろいろ残念なこと多い"
@vyv03354
- vyv03354さんのツイート: "@d_toybox OSVERSIONINFOとか、OPENFILENAMEとか、結構ありますよ。"
- vyv03354さんのツイート: "@piro_or Win64にはファイルシステムリダイレクションというのがあって、32bitアプリがフルパスでSystem32を指定しても強制的にSysWOW64にリダイレクトされます。"
- vyv03354さんのツイート: "爛 ←游ゴシックでは木偏、それ以外では火偏に見える不思議な漢字 とりあえずフィードバックは送った。https://t.co/otBZ51LvoT ネタ元はこちら https://t.co/WPawWoR3Ky #もずでぶ"
- vyv03354さんのツイート: "爛︀ ←元ネタ通りにStandardized Variantを使えばTwitterにも投稿できるけど、Firefoxでしかうまく字形が変わらない"
- vyv03354さんのツイート: "しかもどうやらTwitterがフォントを指定しているのでTwitter上では確認できない"
@unagix
- uNagiさんのツイート: "Windows 10 IP 17063 の例のデフォルトロケール UTF-8 の件、有効にすると想像通りの動作になる。A 系の API が全て UTF-8 で I/O されてる。コマンドプロンプトは cp65001 になる。 https://t.co/E1t5YdPD8V"
- uNagiさんのツイート: "メモ帳の読み書き時に選択できる" ANSI" は、A 系 API なので全て UTF-8 になる。だから Shift-JIS のファイルも UTF-8 で読もうとして化けてしまう。"
- uNagiさんのツイート: "メモ帳で "UTF-8" を指定して保存しても、"ANSI" で保存しても、どちらも UTF-8 になるという奇妙な事が起きる。これがシステム全体で発生する事になるので、 A 系 API が一つでも残っているコードを保守している人はこの設定がいつデフォルトにされるか注視する必要が… https://t.co/hF5aShqkuu"
- uNagiさんのツイート: "国内でよく見かけるのが ANSI API = cp932(SJISみなし) という間違った扱いをしているもので、そういうアプリは元から海外では正常動作していないのだけど、このオプションが有効の場合は国内でもダメという事になる。"
- uNagiさんのツイート: "マルチバイト文字セットでビルドされているアプリの末路・・・ https://t.co/59CktY6zOU"
- Unagiさんのツイート: "@syuu1228 Windows NT には昔からある、予約語の制限を回避するプレフィックス。¥¥.¥ というのもある。これ使うとドライブレター無しでアクセスするのもできた気がする。まとまった公式ページがあったはずだけど、この記法に名前がちゃんと付いてなくてググれない…"
- Error Handling (Error Handling) - Win32 apps | Microsoft Docs
- Drawbridge - Microsoft Research
- Drawbridge - Drawbridge.pdf
Unicode
その他
公的機関等
- 法務省 戸籍統一文字情報 トップ
- 文字情報基盤整備事業 | IPA 文字情報基盤整備事業に関するWebサイトです
- MJ縮退マップ | 文字情報基盤整備事業
- 長年の懸案だった“外字問題”が解決へ、6万字を1万字に対応付ける「縮退マップ」が完成 | IT Leaders
- MJ縮退マップとマイナンバー | yasuokaの日記 | スラド
Locale
最近の Python-dev
- DSAS開発者の部屋:最近の Python-dev (2017-01)
- DSAS開発者の部屋:最近のPython-dev (2017-05)
- DSAS開発者の部屋:最近のPython-dev(2017-06)
- Language code - Wikipedia
- Locale (computer software) - Wikipedia
- Codes for constructed languages - Wikipedia
- List of HTTP header fields - Wikipedia
- Country code - Wikipedia
- ISO/IEC 9995 - Wikipedia
ascii
- SODA Noriyukiさんのツイート: "*BSD系のascii(7) https://t.co/TzFY5Tqgtl が LF/FF じゃなく nl/np (newline/newpage) な件で、 Bell研からの伝統だよねー( https://t.co/gBQvXfjQTo )という話をしてた。 Linuxのman https://t.co/WtZTvdGgHE だとASCII規格通りでNPへの言及はないのね。LFはLineFeedじゃなくてnewlineとあるけど"
- ascii(7) - NetBSD Manual Pages
- unix-history-repo/ascii.7 at Research-V7-Snapshot-Development · dspinellis/unix-history-repo
- ascii(7) - Linux manual page
革命の日々!
- 革命の日々! IEがEUCのJIS X 212をサポートしていないのは規格違反なのか
- 革命の日々! FirefoxのEUCの独自拡張のセンスが最低な件について
- FrontPage - Legacy Encoding Project
- 革命の日々! プロジェクト「セーブ・ザ・鷗外」
- 革命の日々! レガシーエンコーディングなオフ会
- 革命の日々! それは典型的な波ダッシュ問題ではあるまいか
- Man page of ASCII
- 第4回 UTF-8の冗長なエンコード:本当は怖い文字コードの話|gihyo.jp … 技術評論社
- 文字のチェック方式 - マイクロソフト系技術情報 Wiki
- 文字コードについて
- 中国語の文字コード
- Kyoto University Research Information Repository: 日本・中国・台湾・香港・韓国の常用漢字と漢字コード
- ISCIE2001.pdf
- CP932変換表の問題が顕在化する例 - yanok.net
- 書家の第3水準漢字が文字化けするわけ - yanok.net
- Java 9 でようやくResourceBundle のデフォルト文字コードが UTF-8に - yanok.net
- 本の虫: ASCII以前の世界
- libiconv - GNU Project - Free Software Foundation (FSF)
- 【やじうまWatch】 ウェブサイトにおける文字コードの割合、UTF-8が90%超え。Shift_JISやEUC-JPは? - INTERNET Watch
- Usage Statistics of Character Encodings for Websites, June 2018
- Usage Statistics of UTF-8 for Websites, June 2018
- Historical trends in the usage of character encodings, June 2018
- なかのん&マジックさんのツイート: "へー。便利そう。 / "WTF-8 (Wobbly Transformation Format − 8-bit) is a superset of UTF-8 that encodes surrogate code points if they are not in a pair." https://t.co/uvxuX2KXX6"
- The WTF-8 encoding
- 強いユニコード - Google 検索
- ドッグさんはTwitterを使っています 「godot engine って font fallback とか RTL とか CJK variants とか BiDi とかテキストレイアウトちゃんと実装してるのか https://t.co/znfSgWVG4X」 / Twitter
- Godot Engine - Complex text layouts progress report #2
- WindowsでもC++でUTF-8で読み書きしたい、他OSと同じビルドシステムを使いたい - Qiita
blog
その他
- MySQL と寿司ビール問題 - かみぽわーる
- Unicode の雪だるま - bkブログ
- 「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記
- 文字コード考え方から理解するUnicodeとUTF-8の違い | ギークを目指して
- プログラミング言語における文字コードの話 | ++C++; // 未確認飛行 C ブログ
- Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
- kaya: 主な実装における EUC-JIS-2004, Shift_JIS-2004 から Unicode への変換結果の違い
- 特殊顔文字に使われている謎の文字よ、お前は一体何者なのか – たぬきフォント
- Java とか Android (DEX) の MUTF-8 (Modified UTF-8) って何者よ?っていう話 - bearmini's blog
- クメール文字とUnicode - Togetter
- Unicode 12.0正式版が登場。日本語では小文字の「ゐ」「ゑ」「を」「ヰ」「ヱ」「ヲ」「ン」が追加。新元号が発表され次第、次の12.1で新元号キャラクタを追加 - Publickey
- UTF-8小話 - Plan9日記
- UTF-8とルーン文字 - Plan9日記
- Wayback Machine
- unicode-math を完全に理解したい話(1) - マクロツイーター
- 漢数字が数字順にソートされない理由を調べてみた - give IT a try
- 文字エンコーディングの検出方法 - インフラエンジニアway - Powered by HEARTBEATS
The Unicode Blog
- The Unicode Blog: Unicode CLDR 35 alpha available for testing
- The Unicode Blog: Announcing The Unicode® Standard, Version 12.0
- The Unicode Blog: Adopt-A-Character Grant to Support Maya Inscriptional Hieroglyphs
- The Unicode Blog: Unicode CLDR Version 35 Language/Locale Data Released
- The Unicode Blog: CLDR Version 35.1 Language/Locale Data Released for Reiwa Era, Unicode 12.1
- The Unicode Blog: New Unicode Working Group: Message Formatting
- unicode-org/message-format-wg: Developing a standard for localizable message strings
- The Unicode Blog: Unicode Locale Data v37α available for testing
- The Unicode Blog: Announcing The Unicode® Standard, Version 13.0
Tociyuki::Diary
- 「ソフトウェア作法」40周年を過ぎて - Tociyuki::Diary
- 日本語 Wikipedia の深さ優先探索 - Tociyuki::Diary
- UnicodeData Canonical Combining Class のダブル配列トライ - Tociyuki::Diary
- Unicode East Asian Width 再び - Tociyuki::Diary
- Unicode East Asian Width さらに - Tociyuki::Diary
- Unicode の文字数カウント - Tociyuki::Diary
- ucd::width 関数 (その1) - Tociyuki::Diary
- ucd::width 関数 (その2) - Tociyuki::Diary
- EastAsianWidth 対応 wcwidth - Tociyuki::Diary
- UTF-8 エンコーディングのままでバッファ・ギャップ - Tociyuki::Diary
- UTF-8 エンコーディングのままでバッファ・ギャップ その2 - Tociyuki::Diary
にせねこメモ
- 『ギリシャ文字・キリル文字・ラテン文字』 - にせねこメモ
ギリシア語
- マクロン付きのギリシア文字の母音にアクセントや気息記号を付けて表示する - にせねこメモ
- 古典ギリシャ語会話表現集 - にせねこメモ
ロシア語
- 『ロシアの文字の歴史』 - にせねこメモ
- ロシアらしい数字 - にせねこメモ
モンゴル語
- ネット閲覧可能な(モンゴル文字による)モンゴル語資料 - にせねこメモ
- モンゴル文字簡易翻字ブックマークレット - にせねこメモ
- モンゴル文字とUnicode - にせねこメモ
- Unicodeモンゴル文字フォント一覧 - にせねこメモ
- 現在のUnicodeモンゴル文字の問題点と最近の動き - にせねこメモ
中国語
- 簡体字フォントセミナー「中国の文字、いろいろと。」に行ってきた。 - にせねこメモ
- 繁体字フォントセミナー「台湾の文字、いろいろと。」に行ってきた。 - にせねこメモ
韓国語
- ハングル書体セミナー「韓国の文字、いろいろと。」に行ってきた - にせねこメモ
- ブラウザ上で文字列のUnicode Code Pointを調べる - にせねこメモ
- イオニア数字変換TeXマクロ - にせねこメモ
- 文字のデザインに筆記具が与える影響 - にせねこメモ
- 変な文字化け - にせねこメモ
- Adobe Illustrator CS6日本語版でタイ文字やアラビア文字を組む - にせねこメモ
- Type& 2015「書体視認性:MIT AgeLab と Monotype の共同研究」を聴いてきました - にせねこメモ
yasuokaの日記
その他
- 「くゎ」と「か」の対立 | yasuokaの日記 | スラド
- 「だぢづでど」と「ざじずぜぞ」の対立 | yasuokaの日記 | スラド
- 法律における「碍」の1字 | yasuokaの日記 | スラド
- 島津製作所の「dzu」と標準式ローマ字 | yasuokaの日記 | スラド
- 常用國字標準字體表の「彞」とedukai-3.ttf | yasuokaの日記 | スラド
- 直接構成素解析と直接構成鎖解析 | yasuokaの日記 | スラド
- Universal Dependenciesにおけるcompound:prtと直接構成鎖解析 | yasuokaの日記 | スラド
Unicode・ISO・JIS
- Unicode 10.0.0がリリース | yasuokaの日記 | スラド
- 「⿰月兊」はUnicode 10.0のどこに行ったのか | yasuokaの日記 | スラド
- U+337B「㍻」は、いつUnicodeに収録されたのか | yasuokaの日記 | スラド
- ISO/IEC 10646:2017に収録されていない『新潮日本語漢字辞典』の漢字 | yasuokaの日記 | スラド
- Adobe-Japan1-6にないJIS X 0212の漢字 | yasuokaの日記 | スラド
- U+2D583は「出」の別体なのか | yasuokaの日記 | スラド
- 元号の合字を含むISO/IEC 10646:2017 Annex Aのコレクション | yasuokaの日記 | スラド
- Unicode 13.0リリース | yasuokaの日記 | スラド
大漢和辞典
- ISO/IEC 10646:2017に収録されていない『大漢和辞典』の漢字 | yasuokaの日記 | スラド
- ISO/IEC 10646:2017に収録されているが文字情報基盤に含まれていない『大漢和辞典』の漢字 | yasuokaの日記 | スラド
- 大漢和番号14404は本当にU+2339Fなのか | yasuokaの日記 | スラド
登記統一文字
- 登記統一文字01009170を含む会社法人 | yasuokaの日記 | スラド
- 登記統一文字01054170を含む神社 | yasuokaの日記 | スラド
- 登記統一文字01019580を含む寺院 | yasuokaの日記 | スラド
- 登記統一文字01009670を含む神社 | yasuokaの日記 | スラド
- 登記統一文字01080960を含む神社 | yasuokaの日記 | スラド
- 登記統一文字01104650を含む会社法人 | yasuokaの日記 | スラド
- 法人番号公表サイトにおける登記統一文字用例 | yasuokaの日記 | スラド
戸籍統一文字
- 戸籍統一文字152850「はかた」がU+2D92Aへ | yasuokaの日記 | スラド
- 戸籍統一文字で重複している漢字 | yasuokaの日記 | スラド
- 「⿺辶鳥」は“ナベ”の異体字なのか | yasuokaの日記 | スラド
- 戸籍統一文字370600はU+2713Cではないのか | yasuokaの日記 | スラド
住基統一文字
- 住基統一文字B159を含む会社法人 | yasuokaの日記 | スラド
- 『住民基本台帳ネットワーク漢字辞典』の音義未詳字 | yasuokaの日記 | スラド
- 住基文字b077「𭖬」を含む地名 | yasuokaの日記 | スラド
- Re: 住基文字b077「𭖬」を含む地名 | yasuokaの日記 | スラド
文字情報基盤
- 𡶌部神社の「𡶌」は、なぜ文字情報基盤に含まれていないのか | yasuokaの日記 | スラド
- U+2B1E6「𫇦」とU+241FE「𤇾」は、どういう関係にあるのか | yasuokaの日記 | スラド
- 「野」を字母とする変体仮名 | yasuokaの日記 | スラド
登記ねっと 供託ねっと
- 「登記ねっと供託ねっと申請用総合ソフト」の外字コード | yasuokaの日記 | スラド
- ソフトウェアのダウンロード | 登記・供託オンライン申請システム 登記ねっと 供託ねっと
法人
- U+2C0B2「⿰木亜」を含む会社法人 | yasuokaの日記 | スラド
- U+2D047を含む会社法人 | yasuokaの日記 | スラド
- 「⿰金鼡」を含む会社法人 | yasuokaの日記 | スラド
- 「⿲氵車斥」を含む寺院 | yasuokaの日記 | スラド
- U+2E092「⿰示責」を含む神社 | yasuokaの日記 | スラド
- 「⿱目勿」を含む会社法人 | yasuokaの日記 | スラド
- 「𛂯𛀿𛀸゙」を含む会社法人 | yasuokaの日記 | スラド
- 「⿸屁月」を含む神社 | yasuokaの日記 | スラド
人名漢字
- 「胱」「腥」「腟」は人名用漢字なのか | yasuokaの日記 | スラド
- 氏名における「髙」や「𠮷」や「乭」 | yasuokaの日記 | スラド
- Re: 氏名における「髙」や「𠮷」や「乭」 | yasuokaの日記 | スラド
- 子の名を当用漢字に制限する戸籍法施行規則の施行 | yasuokaの日記 | スラド
- 「襄」は子の名づけに使えるか | yasuokaの日記 | スラド
- 戸籍と在留カードにおける「陳」と「陣」 | yasuokaの日記 | スラド
- 昭和9年4月5日民事甲第428号民事局長回答の射程は「千遥」の出生届に及ぶのか | yasuokaの日記 | スラド
- 昭和9年4月5日民事甲第428号民事局長回答とその実態 | yasuokaの日記 | スラド
- 在留カードの入国管理局外字とその変遷 | yasuokaの日記 | スラド
本の虫
- 本の虫: ㄘんㄘん
- 本の虫: C++0x本:求む、簡単なBMP外の文字
yanok.net
- 波ダッシュ問題はなぜ『文字コード技術入門』の第8章にあるのか - yanok.net
- Unicode の嫌なところを触ってしまった Python - yanok.net
- Unicode 10.0リリース、変体仮名を収録 - yanok.net
- 言語を示すのに国旗を使うのはよくない - yanok.net
- 「ユニコードは犯罪だからやめてください」の衝撃 - yanok.net
- BOM つき UTF-8 へのその場しのぎの対処 - yanok.net
- UTF-16 が単に Unicode と呼ばれることがある理由 - yanok.net
Python
- DSAS開発者の部屋:最近のPython-dev(2017-12)
Ruby
- Rubyist Magazine - Ruby M17N の設計と実装
- 最近のruby-core (2016年11月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年7月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年4月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年3月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年2月) | Money Forward Engineers' Blog
- UTS #18: Unicode Regular Expressions
- Locale
- 最近のruby-core (2017年3月) | Money Forward Engineers' Blog
- Makoto Kato ︎︎さんはTwitterを使っています 「https://t.co/RCyv4OefHq これ書いた人全くわかってないと思うんだけど、IVSはバリエーションがあるので、例えばAdobe-Japan-1-7対応なフォントがあったとしても、IPAフォントが採用してる汎用電子情報交換環境整備プログラムのHanyo-DenshiなフォントのIVSとは互換性がない」 / Twitter
- Windows と日本語のテキストについて - Windows Blog for Japan
- Makoto Kato ︎︎さんはTwitterを使っています 「なので、Windows側でHanyo-Denshi側のフォントもデフォルトで提供すべきだと思うんだ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「全く同じ字形であってもIVSのバリエーションが異なれば同じコードポイントにならんでしょ。」 / Twitter
News
- UnicodeのWAVE DASH例示字形が、25年ぶりに修正された理由 - INTERNET Watch Watch
- Unicode 8に対応、「GNU C Library 2.23」が公開 | OSDN Magazine
- Unicode 10、変体仮名と縦書きレイアウト導入へ | マイナビニュース
- 新絵文字56種類が追加された「Unicode 10.0」が発表される - GIGAZINE
- 変体仮名285文字や縦書きレイアウト仕様が追加された「Unicode 10.0」 -INTERNET Watch
- ıɥɔıɐʇ ɐʇɐqɐʍɐʞさんのツイート: "そういえば今開催中のUnicode技術委員会で、新元号の合字の文字符号が U+32FF(ここしか空いてない)に確保されることになったらしいので、それである程度は備えられるかも。/https://t.co/nF9ou4TxCI / 新元号システム問題 https://t.co/w6xMtUelGC"
- 17429-sc2-n4577-japan-new-era.pdf
- 新元号の発表はいつになるのか…。現役SE「システム屋を殺す気か」と悲鳴
- 「Qt 5.11」リリース、Unicode 10対応を強化 | OSDN Magazine
- 【山田祥平のRe:config.sys】さよならシフトJIS、主なしとて春な忘れそ - PC Watch
- Unicode 12.1をサポートした「Glibc 2.30」リリース | OSDN Magazine
エンコード自動検出
- Google Chrome 55.0.2845.0 canary で、ついにエンコーディング自動検出がデフォルトになって、エンコーディングメニューがなくな...
- google/compact_enc_det: compact_enc_det - Compact Encoding Detection
WTF-8, WTF-16
- Masaki HaraさんはTwitterを使っています 「WTF-8、知らなかった。「UTF-16として解釈してほしい気持ちだけど、実際には任意の16bit整数が入りうるデータ」をWTF-16と定義して、WTF-16をエンコードできるようにUTF-8を拡張したものをWTF-8と(非公式に)呼んでいるのか。RustのOsStringはWindowsではWTF-8を使っていると。」 / Twitter
- Masaki HaraさんはTwitterを使っています 「https://t.co/a3trBXwv2U WTF-8とCESU-8の違いも述べられている(というか全然違う)。WTF-8は「対応しないサロゲートをそのままエンコードし」「対応するサロゲートを結合してエンコードする」。CESU-8は「対応しないサロゲートを禁止し」「対応するサロゲートを分割してエンコードする」。」 / Twitter
- The WTF-8 encoding
- NODA KaiさんはTwitterを使っています 「@qnighy Osほげほげを名乗るならOSのC APIからmemcpyしただけのバイト列にしてくれって訴えたのですが聞いてくれませんでしたね…」 / Twitter
- WTF-16
- Why should strings be lists of Unicode Scalar Values? · Issue #135 · WebAssembly/interface-types
ICU
- ICU 55.1: Main Page
- JVNVU#97322697: ICU4C ライブラリに複数の脆弱性
- International Components for Unicode - Wikipedia
- Downloading ICU - ICU - International Components for Unicode
- ICU License - ICU 1.8.1 and later
- ICU のライブラリサイズを削減する方法 - Qiita
- 小倉唯さんのツイート: "https://t.co/hR3900GqQl うおおおおおおおおおおおお, ABI 大崩壊わらうw"
- Makoto Kato ︎︎さんのツイート: "Geckoの中のICU、59に上げるのはキャンセルになってます"
- Rockridgeさんのツイート: "Fx56:文字の符号化処理を行うコンポーネントがuconvからRust言語ベースのencoding_rsに置き換えられた。参照:https://t.co/WFb7iNCLq2 / “1261841 - (encoding_rs)…” https://t.co/QGyHR8aExD"
- Uconv - Wikipedia
- uconv(1) - Linux man page
- Makoto Kato ︎︎さんのツイート: "ICU 60.1って、Fuchsiaのサポート入ってるんだ"
- Makoto Kato ︎︎さんのツイート: "https://t.co/kCtE4o40Gn icuもLinuxでUTF-8じゃないロケールサポートやめるぽいな"
- PostgreSQL 10のICUコレーションとJIS X 4061 – yohgaki's blog
- Makoto Kato ︎︎さんのツイート: "ICUのデータファイル、ECMA-402的には半分以上いらないので、BlinkとかGeckoとかがやってるようなデータ削減をnodejsもやるべきとは思う"
- Makoto Kato ︎︎さんのツイート: "BlinkのAndroid版のICUデータ、通貨とかのローカライズ情報はGNPを元に削減してるのは、面白かった"
- Rockridgeさんのツイート: "Firefoxでは、主にICUライブラリを通じて、Unicodeコンソーシアムが管理するCLDR(Common Locale Data Repository)によって提供されるロケールデータを利用している。 / “CLDR as…” https://t.co/QhO8R4vO1w"
- CLDR as source of key internationalization data in Firefox: milestones achieved and next steps | Mozilla L10N
- mattnさんのツイート: "昨日言ってた、Google Chrome の最新版が Windows7 で new Date が韓国標準時を返すバグ、ICU が原因なんだけど moriyoshi さんが詳細を送ってくれた事もあり解決しそう。 https://t.co/aZZ16PRsa3"
- チェンジセット 41514 – Unicode ICU trac
- Makoto Kato ︎︎さんのツイート: "ABI以外にもUnicode 10ベータのデータ使ってるとか、DateTimeのゾーン表記がGMTで書かれてたのにUTC表記になってるとか(これがなぜ変わったか調べてないからなんともいえないけど)ひどい有様です。… "
- The Unicode Blog: ICU 64 Released
HarfBuzz
- HarfBuzz - Wikipedia
- HarfBuzz - Wikipedia
- HarfBuzz – Y.A.M.A.P
- Fadisさんのツイート: "これからは「〜文字まで」みたいな仕様があったらHarfBuzzをリンクするか https://t.co/gVGozYsCZ1"
- HarfBuzz Manual: Clusters
GNU FriBidi
- GNU FriBidi - Wikipedia
- fribidi/fribidi: GNU FriBidi
- fribidi/fribidi - GNU FriBidi 0.19 series, an implementation of the Unicode Bidirectional Algorithm
Unicode
- Unicode Terms of Use
- Unicode Terms of Use
- Technical Reports
- Unicode Character Database
- Index of /Public/PROGRAMS
- Index of /Public
- Unicode 9.0.0
- UAX #24: Unicode Script Property
- UAX #31: Unicode Identifier and Pattern Syntax
- UAX #34: Unicode Named Character Sequences
- UAX #38: Unicode Han Database (Unihan)
- UAX #41: Common References for UAXs
- UAX #42: Unicode Character Database in XML
- UAX #44: Unicode Character Database
- UAX #45: U-source Ideographs
- UCS-2 ‐ 通信用語の基礎知識
- Unicode ‐ 通信用語の基礎知識
- ユニコード
- Unicode―文字コード入門―
- Tech Basics/Keyword:Unicode(ユニコード) - @IT
- 怖くないユニコードの話 - YouTube
JIS X 0221
- JIS X 0221:2014とISO 10754:1984 | yasuokaの日記 | スラド
- JIS X 0221 - Wikipedia
- JIS X 0221:2014が出ています - yanok.net
- 国際符号化文字集合(USC)(JIS X 0221)が改訂 | カレントアウェアネス・ポータル
- JIS X 0221:2014附属書JA(参考)日本文字部分レパートリ | yasuokaの日記 | スラド
絵文字
INTERNET Watch
- 「Unicode 9.0」が6月21日にリリース、72種類の絵文字を追加 -INTERNET Watch Watch
- これからの絵文字の実装指針、UTR #51“Unicode Emoji”とはなにか - INTERNET Watch Watch
- 「Unicode 8.0」で肌の色の多様性に対応へ、“絵文字”に肌の色を変化させる符号を追加 -INTERNET Watch Watch
- 「Unicode 7.0」仕様公開、約250文字の絵文字を追加 -INTERNET Watch Watch
- 「Unicode 6.0」が策定、絵文字が国際標準に -INTERNET Watch Watch
- Unicode、男女を切り替えられる絵文字を追加 -INTERNET Watch
- 「Unicode 10.0」への追加候補となる51種類の絵文字を発表 -INTERNET Watch
スラド
- Unicode 9.0.0で追加される72種の絵文字 | スラド アップル
- Unicode 9.0.0でライフルの絵文字が追加されなかったのはAppleとMicrosoftが反対したため? | スラド アップル
- Unicodeの絵文字にスコットランド国旗が追加されない理由とは | スラド IT
- iOS 10では拳銃の絵文字が水鉄砲の絵文字に置き換えられる | スラド アップル
- 絵文字のピストル、本物っぽいデザインとおもちゃっぽいデザインのどっちがいい? | スラド IT
- Unicodeの絵文字のルーツ | yasuokaの日記 | スラド
- キーマンズネットの考える絵文字とそのルーツ | yasuokaの日記 | スラド
- J-PHONE SkyWalker絵文字とUnicode絵文字 | yasuokaの日記 | スラド
Wikipedia
- UnicodeのEmojiの一覧 - Wikipedia
- Unicode6.0の携帯電話の絵文字の一覧 - Wikipedia
Twitter
- Rockridgeさんのツイート: "Fx50:EmojiOneライブラリを取り込むことで、Windows XP/Vista/7およびLinux上で絵文字のサポートを強化。参照:https://t.co/ZDKMAOTZMA / “1231701 – Ship an…” https://t.co/jGCunzkZYt"
- Rockridgeさんのツイート: "Windows版およびLinux版Firefox 50でカラー絵文字が正しく表示されるようになった。 / “Emoji for all Firefox users! | Blog: timdream” https://t.co/3zTq4D17Ur"
- Rockridgeさんのツイート: "Fx59:絵文字用フォントの指定に対応し、通常文字と絵文字が混在しても絵文字が崩れないようにした。 / “1032671 - Add https://t.co/x39AiS2czz-list.* for Emoji” https://t.co/817tDG1ZM1"
- Rockridgeさんのツイート: "Fx61:絵文字ライブラリがEmojiOneからTwitter Emoji(Twemoji)へと変更された。参照:https://t.co/mAgjkdO4nE / “1358240 - Replace EmojiOne wit…” https://t.co/lvlTa4XT6i"
- Twitter Emoji (Twemoji)
- twitter/twemoji: Twitter Emoji for Everyone
- 堀 正岳(Lifehacking.jp)さんのツイート: "台風の絵文字(U+1F300)は機種依存しているので環境や、使っているSNSによって表示は違うのですが、ツイッターとGoogle(Android)はなんと右巻きの渦になっています。現実の台風は北半球だと左巻きですので、注意しないといけませんね。… https://t.co/dIK3lSOlEk"
- 堀 正岳(Lifehacking.jp)さんのツイート: "iPhone上でもSafariでサイト上で見ると右巻き、アプリで見ると左巻きになっているところが面白い(笑)… "
- 堀 正岳(Lifehacking.jp)さんのツイート: "ツイートがのびているので付け加えておくと、もとのUnicodeは”Cyclone"に対応しておりこれは「低気圧」という一般的な名称をさしてます。だから右巻き・左巻きのどちらが正解ということはありません。でもふだんの経験と違うものがみえると驚くのと、表示環境しだいで違うというのは面白いですよね"
- 堀 正岳(Lifehacking.jp)さんのツイート: "「場所次第で台風・サイクロン・ハリケーンと呼ぶのでは?」という質問もあるかもしれませんがUnicodeはその3つを区別しているわけではなく、もし地域差を表示してるとしてもサイクロンは北インド洋を含むので右巻きか左巻きかは、言葉だけからはわからないんです..."
- えいす8️⃣さんのツイート: "📛←日本人にはどう見ても幼稚園の名札だが、外人には何なのかさっぱり分からないらしく「燃えるトーフ」とか呼ばれている絵文字"
- なかのん&マジックさんはTwitterを使っています: 「Windows 10でも、デスクトップアプリのpassword fieldと、UWPのそれは、絵文字の取り扱いが違うのか。前者はsurrogate pairだけ意識してて、後者は見た目の文字単位でハンドリングしてる。」 / Twitter
- なかのん&マジックさんはTwitterを使っています: 「UWPのpassword fieldの動作が一番良いように思える。GTKのはUTF-16の一文字単位で編集できてしまうし(現在のGeckoも同じ)、macOSに至っては絵文字が混じってるとマトモに動作しなくなる。」 / Twitter
- 桃芭蕉実🍑🍌さんはTwitterを使っています: 「お寿司🍣の絵文字、見え方がスマフォとかによって違うんだね〜しらなかった〜 https://t.co/EReSX1551u」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「最近https://t.co/0cq48c17Uaの話を見ることなかったのですが、QID emojiってのを知って、まぁ呆れた https://t.co/cZuF21UHX4」 / Twitter
- UTS #51 Addendum: Unicode Emoji QID
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「絵文字等のUTF16的にマルチバイトな文字をどうマスクするかで今年夏にちょっと格闘してみたんだけど、メチャクチャに難しいですな。確か、WindowsのUWPのパスワードフィールドの処理が一番綺麗だった気がするものの、細かいことは忘却の彼方。 https://t.co/y0KFfhi7HT」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「@d_toybox これ現在インストールされているフォントとかにも依存するので最適解はないですね。なんであんな仕様になったと今でも思ってる。(というと自分が仕様側に入れよと言われる話なんですが)」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「@makoto_kato とりあえず、layoutがflushされてるかという例の問題と、やたらとあちこちにassertが仕込まれてて、クラスタ内やサロゲートペア間で何も起きないこと前提になってて、どんだけ直さないといけないのやらっていう感触でした。フォントはシステムデフォルトを強制するとかで緩和するしかないですかね……」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています: 「@d_toybox Platformのバージョンによってインストールされているフォントが変わるので、レンダリング情報 (nsTextFrame) をみないと正しいマスクされる文字数がわからないんですよね。。。プラットフォーム固定だとどうにかなるんですが。。。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今更だが、emojiの書記素(Grapheme Cluster?)判定をやらないと、こんなことになる。 それにしても、「親」絵文字と「子」絵文字が並ぶと「家族」絵文字にする仕様、誰得な仕様としか思えない(笑) https://t.co/wGg7RMVUiB https://t.co/so7v3SabmY https://t.co/uTk0td9Ixu」 / Twitter
- 書記素分割/Unicode カテゴリー判定 | ++C++; // 未確認飛行 C ブログ
- 🦀葛城玲🦀さんはTwitterを使っています 「@shirouzu 合字の仕様ですね。そうしたくない場合はU+00A0(NBSP記号)を間に入れるルールになってた筈です。」 / Twitter
- 特集 : 絵文字が開いてしまった「パンドラの箱」 - CNET Japan
- 「Firefox 50」リリース、絵文字の独自サポートなどを導入 | OSDN Magazine
- おう吐・ゾンビ・授乳などUnicodeに新しい絵文字69種類が追加される - GIGAZINE
- “Emoji 5.0”をサポート、日本語対応も充実した「Windows 10」Build 16226 - 窓の杜
- Unicode Emoji 11.0が公開〜157種の絵文字が2018年に仲間入り - iPhone Mania
- 絵文字を支える技術の紹介 - Qiita
- 「Unicode 11.0」に含まれる157の新しい絵文字をサポート ~「Windows 10 RS5/19H1」 - 窓の杜
- 定番のテキストエディター「秀丸エディタ」v8.85β7、絵文字の結合文字に対応 ほか - ダイジェストニュース - 窓の杜
- 「Windows 10 19H1」Build 18277が公開 ~“集中モード”や“アクション センター”が改善 - 窓の杜
- 結合文字を利用したカラー絵文字をサポート ~「秀丸エディタ」v8.85が正式版に - 窓の杜
- 栗田穣崇さん『ドコモの絵文字にうんちを入れたかったのですが、社内で大反対されまして…』 うんちの絵文字がUnicodeに登録されるまでの裏話 - Togetter
- The Unicode Blog: Unicode Emoji 12.0 — final for 2019
- 絵文字が開いてしまった「パンドラの箱」第3回--Unicode提案の限界とメリット - (page 6) - CNET Japan
- Windows 10プレビュー、絵文字の検索機能を追加 - PC Watch
- “Emoji 12.0”をフルサポートした「Windows 10 20H1」Build 18845が“Skip Ahead”に - 窓の杜
- 「Windows 10 19H1」も“Emoji 12.0”に完全対応 ~Build 18348が“Fast”リングに - 窓の杜
- The Unicode Blog: Emoji 12.0 Now Available for Adoption
- The Unicode Blog: Unicode Technical Committee Considers Emoji Color Mechanism
- The Unicode Blog: The Unicode Consortium Launches New Website in Celebration of World Emoji Day
- iPhoneの絵文字一覧から「台湾国旗」が削除されてしまったと香港・マカオのユーザーが報告 - GIGAZINE
- The Unicode Blog: The Most Frequent Emoji
- Emoji Frequency - Unicode
- The Unicode Blog: Emoji 12.1 release: 168 Emoji added
- Windows 10プレビュー版で顔文字が呼び出し可能に - PC Watch
- iOS14.2で「マスクを着けた顔」の絵文字が笑顔に変更 - iPhone Mania
照合
- Unicode照合アルゴリズム - Wikipedia
- Unicode collation algorithm - Wikipedia
- UTS #10: Unicode Collation Algorithm
- 🐬🍣🍻さんはTwitterを使っています 「MySQL 8.0のキャラクターセットとCollation(照合)の利用。utf8mb3の利用はNG, 将来バージョンで非サポートの方向。照合は要件に応じてutf8mb4_binかutf8mb4_0900_*のいずれかのみ推奨。日本語ではutf8mb4_900_ai_ciは病院美容院(拗音の照合)問題があるので非推奨。 #mysql_jp https://t.co/VqMFnm6n9R」 / Twitter
互換漢字
- CJK互換漢字 - Wikipedia
- CJK Compatibility Ideographs - Wikipedia
- CJK統合漢字 - Wikipedia
- CJK Unified Ideographs - Wikipedia
- Unicode CJK互換漢字 F900~FAFF - CyberLibrarian
- Unicode CJK互換漢字補助 - CyberLibrarian
- CJK互換漢字 ‐ 通信用語の基礎知識
- 日本の文字とUnicode 第4回 | 大修館書店 WEB国語教室
- 人名用漢字と互換漢字 | yasuokaの日記 | スラド
- “情報化時代”に追いつけるか? 審議が進む「新常用漢字表(仮)」: 第2部 新常用漢字表と文字コード規格第5回 なぜUnicode正規化は生まれたか
異体字
ITpro
- 新常用漢字が引き起こす文字コード問題 - UnicodeのIVSがもたらすメリットとデメリット:ITpro
- 新常用漢字が引き起こす文字コード問題 - 漢字1文字が最大8バイト、Unicodeの「IVS」とは?:ITpro
- 新常用漢字が引き起こす文字コード問題 - UnicodeのIVSがもたらすメリットとデメリット:ITpro
INTERNET Watch
- 渡邊の「邊」などの異体字の使い分け、MS Officeで可能に、IVSアドイン公開 -INTERNET Watch Watch
- 人名に使われる異体字など、IVS文字の入力を支援するソフト「IVSパレット」、イーストが発売 -INTERNET Watch
blog
- IVDの2017-12-12版が公開 | yasuokaの日記 | スラド
- Index of /ivd/data/2017-12-12
- 「崙の簡化字」のIVS | yasuokaの日記 | スラド
- Windows標準のフォントだけで異体字(IVS)を扱う | 毛流麦花
- Mac OS X 用異体字(異体字セレクタ Unicode IVS を含む)入力支援プラグイン及び TeX 系エディタ TeXShop 対応バイナリ - 技術考
- IMEパッドでUnicodeの異体字セレクタを利用する―Office IME 2010を使いこなすを使いこなす―
- 日本語は1文字何バイト? ( ソフトウェア ) - アルファのブログ - Yahoo!ブログ
Twitter
- Tsukasa #01さんはTwitterを使っています: "PanCJKV IVD Collection (unregistered) : https://t.co/jjnt5Enuqh"
- Tsukasa #01さんはTwitterを使っています: "国ごとの字形の違いを表現するための IVD を Adobe がとうとう提案しようとしているのか。"
- Tsukasa #01さんはTwitterを使っています: "OpenType の feature で国ごとの字形の違いを表現することは一応可能だとは思うけど、IVD を使うことでプレーンテキストの中でも同様のことができるようになるのか。"
- vyv03354さんのツイート: "@makoto_kato IVS対応フォントでも通常IVSを単独の文字として収録していないので、ブラウザが認識していないとVSだけフォールバックが起きてうまく表示されません。フォントを1つしか使わない普通のアプリでは問題になりませんけど。"
- Rockridgeさんのツイート: "Fx52:Windows版で、Webメールなどにおいて、IVS(Ideographic Variation Selector:漢字の異体字セレクタ)を用いた文字がバックスペースを2回押さないと消えない問題を修正。 / “8500…” https://t.co/uKAQekBADG"
- ISO/IEC 10646:2017発行 | yasuokaの日記 | スラド
- なぜ「⿸广帯」はISO/IEC 10646:2017から漏れてしまったのか | yasuokaの日記 | スラド
- 「⿺辶鳥」はISO/IEC 10646:2017に収録されたのか | yasuokaの日記 | スラド
- 楠 正憲さんのツイート: "この6万文字をWindowsやOffice、Mac、Linuxでもちゃんと扱えるところまできたのに自治体外字は百数十万文字も残ってるんですよね。マイナンバー対応で統合宛名の整備も進んだので、さすがに決着をつけたいな / “コンピ…” https://t.co/wCtbmA3lPQ"
- ひめ@女体化したいさんのツイート: "どうせISO/IEC 10646:2017に関係するニュースでしたらこちらの岩手県大船渡市盛町字二本𭫚(にほんどう、拡張F U+2DADA)がオススメです https://t.co/iazheILI34"
- Tsukasa #01 [要出典]さんのツイート: "あ、文字情報基盤周りだと、ISO/IEC 10646:2017 だけじゃなくて、IVD が 2017-12-12 版になったことも関連してるのかな (この版では、大漢和で重複収録されたものを "区別" するための IVS が追加されている。"
- Tsukasa #01 [要出典]さんのツイート: "まぁそれはそうと、"全漢字" 使用可っての、だいぶ語弊があるよね。(ここまで書いて) 語弊があるどころか、登記統一文字で実際に複数の法人名に用例があるような字でも収録から外れてたり云々。"
- Makoto Kato ︎︎さんのツイート: "IVSってフォントに依存するし、AdobeのセットとあのIPAが絡んでるセットは正規化してないから、グリフの形が全く同一でも同じコードになってないってところが好きじゃないんだけど、それ解決してるの?"
- Makoto Kato ︎︎さんのツイート: "だから、IPAフォントじゃなくて、Noto CJKにあのIPAのIVSを移植しないと意味ない"
- Standardized Variants
- Ideographic Variation Database
- Windows 8 の IVS 対応と IVS Add-in for Microsoft Office | マイクロソフト 公共機関向け
- c - C言語でのUTF-8文字列の正確な長さを取得する - スタック・オーバーフロー
- ダイナフォントのIVS(異体字切り替え)対応について教えてください。 | ダイナコムウェア株式会社
- Unicode IVSとは | 異体字フィクサー | 製品情報 | 株式会社リンクス
- IVSフォント利用ライブラリー|イースト株式会社
- IVD/IVSとは | 文字情報基盤整備事業
- IVS対応情報 | 文字情報基盤整備事業
- 異体字セレクタ - Wikipedia
- 異体字セレクター
- IVD ‐ 通信用語の基礎知識
- 異体字セレクタセレクタ (α v0.5)
- さきさかさんはTwitterを使っています 「芦屋、Unicode規格に出てくるお嬢様が住んでるところという認識しかない https://t.co/u8kKtJLhYf https://t.co/IBfvKGqdVA」 / Twitter
- UTS #37: Unicode Ideographic Variation Database
結合文字
- Unicodeの特殊な文字 “結合文字列” – ものかの
- サロゲートペアや結合文字が含まれているか調べる: .NET Tips: C#, VB.NET
- 結合文字列をUnicode正規化で合成する方法の危険性 - Qiita
- 結合文字列を合成する安全な方法を考える - Qiita
- macのファイル名のための安全なNFC正規化 - Qiita
- ICU 結合文字かを判定する - Faith and Brave - C++で遊ぼう
- 文字数をチェックする際にイタズラを目的とした大量の結合文字を見逃さないようにする - Qiita
- Unicode結合文字の取り扱い | 文字列 | プログラミング言語の比較 | hydroculのメモ
- 結合文字についてMacのおしい点 - yanok.net
- 「プログラマのための文字コード技術入門」EPUB版販売開始! - yanok.net
- 合字 - Wikipedia
- Typographic ligature - Wikipedia
- 複雑なテキスト配置 - Wikipedia
- Complex text layout - Wikipedia
- 結合文字 - Wikipedia
- Combining character - Wikipedia
- 合成済み文字 - Wikipedia
- Precomposed character - Wikipedia
- 図形素結合子 - Wikipedia
- Combining Grapheme Joiner - Wikipedia
- Unicode結合文字 難読化シェル芸
制御文字
ASCII
- 制御文字 - Wikipedia
- ISO 2047 - Wikipedia
- エスケープシーケンス - Wikipedia
- エスケープ文字 - Wikipedia
- 改行コード - Wikipedia
- キャリッジ・リターン - Wikipedia
- キャレット記法 - Wikipedia
- 肯定応答 - Wikipedia
- 削除文字 - Wikipedia
- シフトアウト・シフトイン - Wikipedia
- スペース - Wikipedia
- ソフトハイフン - Wikipedia
- タブキー - Wikipedia
- 置換文字 - Wikipedia
- テキスト終結文字 - Wikipedia
- 伝送終了文字 - Wikipedia
- 問い合わせ文字 - Wikipedia
- バックスペースキー - Wikipedia
- 否定応答 - Wikipedia
- ベル文字 - Wikipedia
- 一ノ瀬 いろはさんのツイート: "ゼロ幅接合子にゼロ幅非接合子・・・・・・ ウッ、アタマが!… "
- ゼロ幅非接合子 - Wikipedia
- Zero-width non-joiner - Wikipedia
- ゼロ幅接合子 - Wikipedia
- Zero-width joiner - Wikipedia
- macOS 10.13/iOS 11のゼロ幅非接合子処理の不具合を利用しアプリをクラッシュさせる文字列が複数発見される。 | AAPL Ch.
- 2. スペースは" "だけじゃない的な話
- jaco-js/SPACE_CHARS.ts at master · jaco-project/jaco-js
- \sは本当に空白文字を網羅できているのか? - Panda Noir
- 新たな元号にZERO WIDTH JOINERは使えるのか | yasuokaの日記 | スラド
- ノーブレークスペース - Wikipedia
- 単語結合子 - Wikipedia
- Word joiner - Wikipedia
- ゼロ幅スペース - Wikipedia
- Zero-width space - Wikipedia
- Thin space - Wikipedia
- 図形間隔 - Wikipedia
- Figure space - Wikipedia
正規化
- Unicode正規化 - Wikipedia
- Unicodeの等価性 - Wikipedia
- Unicode equivalence - Wikipedia
- Unicodeの互換文字 - Wikipedia
- Unicode compatibility characters - Wikipedia
- ダイアクリティカルマーク - Wikipedia
- Diacritic - Wikipedia
- Unicode正規化
- Elasticsearchでの文字列の正規化 - Carpe Diem
- IBM Knowledge Center - エンコーディングと正規化
- ユニコード
- UAX #15: Unicode Normalization Forms
- Unicode正規化 用語の混乱について 第4.2版 – ものかの
- HFS+のエンコーディングとUnicode正規化 第3版 | ものかの
- HFS+のテキストエンコーディング – ものかの
- 普通のUnicodeはNFCなのか – ものかの
- 本の虫: Linus Torvalds、HFS+に激怒
- Taku Kudoさんのツイート: "NFKC 正規化といっても、Unicode Version が異なると結果が変わることがある(極めてレアだけど)。正規化を完全に自己完結モジュールにしたければ、Unicode Versionもモデルに含めないといけない。"
- Kazuho Okuさんのツイート: "しかし「NKDで正規化したハッシュテーブル」みたいなやつ(ファイルシステムとか)、文字が追加されたらNKDの定義がかわるわけだけど、いったいどういう動作するのかな。未定義文字は登録できない、かつ、定義済の文字についてはNKDの定義がかわらない、みたいな規則にはしてないだろうし"
- macOS上のAPFSはUnicode Normalizationを行うのか? - なるせにっき
- にせねこさんのツイート: "現在のTwitterでは投稿時にUnicode正規化がなされるらしく、互換漢字の旧字は対応する新字に置き換えられてしまうようです。 https://t.co/0CrCRXA9TM… "
- TwitterにUnicode正規化が導入された時刻の推定 by zeeksphere - Togetter
- ファイルシステムとS3でのユニコード正規化の関係を調べてみた2021 - Techブログ - MNTSQ, Ltd.
東アジアの文字幅
- UAX #11: East Asian Width
- 東アジアの文字幅 - Wikipedia
- 和字間隔 - Wikipedia
書記素クラスタ
- Shiro Kawaiさんのツイート: "#tcfm 12回 https://t.co/orkUFymQiq Grapheme clusterを構成するコードポイント数って上限無いんじゃなかったっけ。文字数で入力制限かけるようなコードだとやばそうだな。"
- Jun Mukaiさんのツイート: "https://t.co/mIq2d78OKz GB9とGB11のルールの組み合わせによりいくらでも長いgrapheme clusterはつくれます… "
- UAX #29: Unicode Text Segmentation
- Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ
- Perl 5.26 & Unicode 9.0 で変わる書記素クラスタ(grapheme Cluster)のお話 - Shogo's Blog
- Python でタイ文字やアラビア文字の個数をうまく数える - Qiita
- UAX #29: Unicode Text Segmentation
サロゲートペア
- サロゲートペア入門:CodeZine(コードジン)
- JavaScriptでのサロゲートペア文字列のメモ - Qiita
- サロゲート・ペアのトラブルはいつまで続くか - yanok.net
- Unicodeサポートの現状 - yanok.net
双方向テキスト
- UAX #9: Unicode Bidirectional Algorithm
- 双方向テキスト - Wikipedia
- Bi-directional text - Wikipedia
- bidiフォーマット文字も追加:Unicode標準6.3が公開、日中韓の互換表意文字改善 - @IT
- 七誌さんはTwitterを使っています: 「Windows 2000の頃からWin32の標準TextBoxで右クリックするとメニューにRLM等のUnicode制御文字関連項目があるのは知っていたけど、初めて使った。 Wikipediaの例をコピペして制御文字を表示すると存在が確認できる。バイナリダンプすると対象文字(!)の後にある。 https://t.co/UbIAZG3oj0 https://t.co/KX29zYXXHz」 / Twitter
- Right-to-left mark - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「牛耕式」を知っている人少なそう、、、牛耕式対応BiDiとかあったらすごいな。 https://t.co/o0QRy67YAk」 / Twitter
- 中村 実さんはTwitterを使っています 「古代ギリシャ語を牛耕式で書く場合、右から左の行と左から右の行では文字の左右が逆、つまり鏡文字になったそうだが、現代のエディッタ&フォントで表示できるのかしら?」 / Twitter
- Masaki HaraさんはTwitterを使っています 「ちなみにRustは1年以上前に文字列の端を取り除くメソッドの一種であるtrim_left/trim_rightを非推奨にしてtrim_start/trim_endにしていますね。これは右から左に書記する体系では混乱のもとだからです」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえは、IPMsgのログビューアは、一応アラビア語などbidi表示されるのだけど、範囲選択で馬脚を現してしまう、、、本当ローカライズは色々面倒。」 / Twitter
- Go でアラビア語を描画する - Qiita
- unicode-org/lstm_word_segmentation
- 千種創一さんはTwitterを使っています 「日本のパソコンには「㍍」や「㍿」とか無理矢理な圧縮文字がありますが、中東のパソコンには ﷺ という صَلَّى اللهُ عَلَيْهِ وَآلِهِ وَسَلَّمَ 彼(預言者)とその一族に神の祝福と平安あれ という文章を縮めた神がかった圧縮文字が存在します」 / Twitter
行分割
- - UAX #14 Unicode 行分割アルゴリズム - metacpan.org
- UAX #14: Unicode Line Breaking Algorithm
- UAX #29: Unicode Text Segmentation
- Qt in depth: Qt の禁則処理 - Qt Japanese Blog
- libunibreak
- adah1972/libunibreak
Wikipedia
その他
- U-PRESS - Wikipedia
- Template:文字コード - Wikipedia
- Template:Character encodings - Wikipedia, the free encyclopedia
- Character encoding - Wikipedia, the free encyclopedia
文字
- Unicodeにおけるラテン文字 - Wikipedia
- Latin script in Unicode - Wikipedia
- 拡張漢字 - Wikipedia
- 香港増補字符集 - Wikipedia
- Hong Kong Supplementary Character Set - Wikipedia
- 西夏文字 - Wikipedia
- Tangut script - Wikipedia
- バムン文字 - Wikipedia
- Bamum script - Wikipedia
- たいと - Wikipedia
- Taito (kanji) - Wikipedia
- ノーティカルスター - Wikipedia
- Nautical star - Wikipedia
- 蘇州号碼 - Wikipedia
- Suzhou numerals - Wikipedia
- カシーダ - Wikipedia
- Kashida - Wikipedia
- Unicode - Wikipedia
- Unicode - Wikipedia
- ISO/IEC 10646 - Wikipedia
- Universal Coded Character Set - Wikipedia
- DIS 10646 - Wikipedia
- ユニコードコンソーシアム - Wikipedia
- Unicode Consortium - Wikipedia
- Ideographic Rapporteur Group - Wikipedia
- Ideographic Rapporteur Group - Wikipedia
- Common Locale Data Repository - Wikipedia
- Common Locale Data Repository - Wikipedia
- Unicode一覧 - Wikipedia
- List of Unicode characters - Wikipedia
- Unicode一覧表 - Wikipedia
- Unicode文字のマッピング - Wikipedia
- Universal Character Set characters - Wikipedia
- 文字符号化方式 - Wikipedia
- UTF-8 - Wikipedia
- UTF-8 - Wikipedia
- ホモグラフ攻撃 - Wikipedia
- IDN homograph attack - Wikipedia
- バイトオーダーマーク - Wikipedia
- Byte order mark - Wikipedia
Twitter
その他
合字
- KIMATA RobertHisasiさんのツイート: "日本語の文中で全く読めない文字「ゟ」に出くわして、「より」の合字があることを知る"
- KIMATA RobertHisasiさんのツイート: "ひらがなの合字とカタカナの合字、UNICODEで定義されているのはここらへん参照らしい https://t.co/PSgHt1RbcO https://t.co/zLCBg9u89L 濁点、半濁点以外の合字だと平仮名の「ゟ」(より)と片仮名の「ヿ」(コト)がある模様。なお、「〼」(ます)は枡記号であって仮名ではないらしい。そうなんだ"
- The Unicode Standard, Version 12.0
- The Unicode Standard, Version 12.0
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「ゟ」は、「より」のひらがな合字、「合略仮名」と。… "
- OS作れないマンさんのツイート: "wchar_tがUnicodeだと言われるともやもやする。"
- なぎせ ゆうきさんのツイート: "ユーザー「ちゃんと文字数数えてくださいよ!」 プログラマ「では文字の数え方を定義して下さい。"👎"これは?」 ユ「1文字」 プ「サロゲートペアは1文字と。"・ิ"これは?」 ユ「1文字」 プ「合字は1文字と。"フ゜"これは?」 ユ「2文字……?」"
- Fadisさんのツイート: "Unicodeへの絵文字の追加によって、表音文字を使ってきた文化圏が表意文字をカジュアルに使い始めた事は遠い未来から文字の歴史を見ると大きな事件になっているのかもしれない"
- 渋川よしきさんのツイート: "UTF-8は最大6バイトでは?「絵文字を入力する」ユースケース対応でIME対応が進むことも期待できる。 : 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama|note(ノート) https://t.co/nzV61y7j5Y"
- kamimuraさんのツイート: "@shibu_jp @ymotongpoo 自身では単純に、utf-8の可変長でもほとんどの文字が6バイト(今では4バイト)になる、後方互換気にしない、いずれ2~6(4)バイトの大きさは気にするほどでもなくなる、と都合よく仮定して文字をUTF-32で実装してみたり。 https://t.co/KWo9s6Xqam… https://t.co/CAPAA5GLsz"
- Shiro Kawaiさんのツイート: "@tenpoku1000 @mkamimura @rui314 同意。「文字」というのはどうコード化しても前後の文脈に依存する場合が出るので、文字列=互いに独立した文字オブジェクトのランダムアクセス列、という道は幸せにはなれないと考えます。SchemeもR6RS前に大きな議論があって、結局言語上の文字=コードポイントと割り切り意味的な文字はア… https://t.co/m04MNNXdGt"
- 鹿野壮(かのたけし)さんのツイート: "Google Chromeで絵文字のサイズを257px以上にすると、消えるよ。 (FirefoxやSafariでは消えない) #跡部王国 https://t.co/8lhNaJ9Fly"
- mashabowさんのツイート: "新元号の組文字、「BMPに符号位置確保しといて」って要求が日本NBから出てた https://t.co/OsFnV1JWBT"
- 17429-sc2-n4577-japan-new-era.pdf
- Ken Lunde (小林劍󠄁)さんのツイート: "This is the second—and likely final—draft of the new figure for Section 18.2, “Ideographic Description Characters,” of the #Unicode11 Core S… https://t.co/YEnqKjnYCq"
- Kazuhiro Kazamaさんのツイート: "JavaやJavaScriptの国際化に携わってきたNorbert Lindenbergが日本語の勉強に来日した時に「日本語は難しい」と嘆いていたのですが,新たに日本語にハングルの要素を取り入れた"Niji script"を考えたそうです.ぜひ見てあげてください. https://t.co/5pJ1tSPZKq"
- The Niji script
- Masaki Haraさんのツイート: "WTF-8、知らなかった。「UTF-16として解釈してほしい気持ちだけど、実際には任意の16bit整数が入りうるデータ」をWTF-16と定義して、WTF-16をエンコードできるようにUTF-8を拡張したものをWTF-8と(非公式に)呼んでいるのか。RustのOsStringはWindowsではWTF-8を使っていると。"
- Masaki Haraさんのツイート: "https://t.co/a3trBXwv2U WTF-8とCESU-8の違いも述べられている(というか全然違う)。WTF-8は「対応しないサロゲートをそのままエンコードし」「対応するサロゲートを結合してエンコードする」。CESU-8は「対応しないサロゲートを禁止し」「対応するサロゲートを分割してエンコードする」。"
- Hiroyuki Komatsuさんのツイート: "1970-1980 年代のコンピューターで使われていた画像描画用の文字が、ユニコードに採択されました。 古いコンピューター風の演出や、エミュレーター用途だけでなく、軽いツールのアイコンとしても使えそうです。顔文字の表現の幅も広がりますね。 僕の好きな MSX の命令は VPOKE でした。… https://t.co/ZrvdDhMVrc"
- The Unicode Consortiumさんのツイート: "214 characters from legacy computers and teletext that were proposed by @DougEwell, @BeckieRGB, and others in the “Terminals Working Group” in L2/19-025 were just accepted at #UTC158 for a future version of #Unicode → https://t.co/BNVgHvH2XQ… https://t.co/iI2Zo54TZO"
- 島鉄雄さんはTwitterを使っています: 「「𩸽」(ほっけ)という漢字が UTF-8 だと 4 byte になる知見を得た。 4 byte 文字も含めてちゃんと UTF-8 に対応しているか確認する時と、居酒屋で取り敢えずツマミを頼む時にほっけが使える。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「全角スペースが紛れてsyntax error、というツイートをちらほらみかけるんだけど言語仕様でUnicode許すならカテゴリZsを空白扱いにすればいいのに」 / Twitter
- Tsukasa #01 [要出典]さんはTwitterを使っています 「Unicode 13.0 がもうすぐ公開か。……このバージョンで、久しぶりに新しい面が使われる。そう、漢字のために第2面、6.5万字強を割り当てたにも関わらずほぼ使い果たし、またもや漢字専用に割り当てられた第3面が今回正式デビューすることになるのだ。」 / Twitter
- ドッグさんはTwitterを使っています 「unicode-org 公式の i18n ライブラリ ICU4X が ICU4C や ICU4J での経験を生かして新たに実装されてる.実装は Rust .ECMA-402 互換の API を提供し,(多分 C ABI を通じて)複数のプラットフォームや言語で使えるようにするらしい | 'unicode-org/icu4x' https://t.co/GiILG5jWFv」 / Twitter
- unicode-org/icu4x: Solving i18n for client-side and resource-constrained environments.
- ドッグさんはTwitterを使っています 「今のところ,対応予定のプラットフォームはブラウザ, iOS, Android, WearOS, WatchOS, Flutter, Fuchsia で,対応予定の言語は Rust, JavaScript, Objective-C, Java, Dart, C++.ブラウザ対応は Wasm を使うのか」 / Twitter
UTF-8(Windows)
- Hideyuki Tanakaさんのツイート: "BOMってバイトオーダー示すためのものなのになんでバイトストリームであるUTF-8にBOMをつけてもいいような仕様にしたのか、Unicodeコンソーシアムの考えることはホンマわからん。(´・_・`)"
- なかのん&マジックさんのツイート: "charsetをHTTPヘッダとかで指定できないローカルファイル向けじゃないのかなぁ。昔、HTMLエディタを自作してたけど、一番困ったのは、読み込んだファイルがASCII文字しかない場合に、どのエンコーディングを前提とするかって事。新しく非ASCII文字を入力して保存する場合、さて、どうする?ってなる。"
- なかのん&マジックさんのツイート: "正直、なんで、UTF-8のBOMがそんなにうざがられてるのか理解できないんだよな。一部のアプリが適切にそれを無視できていないなら、悪いのはそのアプリの方なんで。"
- なかのん&マジックさんのツイート: "テキストエディタがCRLFか、LFのみにしか対応してなかったら、そのテキストエディタは使えないって思うでしょ?"
- なかのん&マジックさんのツイート: "逆に言えば、なんで未だにローカルファイルに文字コード情報がファイルシステムとかで記録・提供されないのよって思う。"
- なかのん&マジックさんのツイート: "そもそも、U+FEFFは"ZERO WIDTH NO-BREAK SPACE"なので、これをBOMとか呼んでるのがそもそもどうなのって感じもする。昔、ブラウザの文字化け回避に、HTMLに<!-- あ -->とか入れてたハックみたいなもんよね、あれ。(「あ」だったかどうかちょっと自信無いけど)"
- なかのん&マジックさんのツイート: "なので、あれを入れてる時点でASCIIなファイルではないので、これをUTF-8非対応のアプリに読み込ませるのは人の愚行なわけで。"
- なかのん&マジックさんのツイート: "今どき、まともなテキストエディタならBOMを標準で入れたりしないだろうし、大抵のUTF-8 awareなアプリならそれを無視するだろうしで、どういうシナリオで問題になるのかよく分からない。"
- KIMATA RobertHisasiさんのツイート: "Windows 標準及びごく少数の許可されたソフトウェアのみで作業する必要があり、しかも、BOMなしUTF8が必要だったため、メモ帳でJScriptファイル書いて、ADODBオブジェクトでBOM付きUTF8ファイルとして保存した上でバイナリとして読みだしてBOM分を飛ばしてから保存と言う作業をしたことがあり(笑)… https://t.co/mHP1FbgI78"
- 一ノ瀬 いろはさんのツイート: "notepad.exe が意図的に入れようとしなくても勝手に入れるぐらい。… "
- 一ノ瀬 いろはさんのツイート: "シェルスクリプトなどで使われる shebang の扱いと PHP ぐらいかな?… "
- 一ノ瀬 いろはさんのツイート: "どっちも書くのはツラいですね。 しかしnotepad.exeしか与えられない環境というのは意外と多く。… "
- なかのん&マジックさんのツイート: "メモリ4GBを基本的人権とか言う前に、もっと大切なことがある気がしてきますな……"
- なかのん&マジックさんのツイート: "とりあえず、みんな使っていないであろうメモ帳に変更があったからといって、なんでみんな反応したりするのかよく分からん。"
- Piro/Linuxコマンド操作漫画連載中さんのツイート: "法人サポートではこのファイルをこれこれこのように編集して下さいと案内する事がありますが、そこでBOMを強制的に付与する物が標準的に使われてしまうと、恐らく要らぬトラブルが増える事が予想されます。… "
- 村上真雄 MURAKAMI Shinyuさんのツイート: "Windows 10 のコントロールパネルの地域の設定で「ベータ: ワールドワイド言語サポートで Unicode UTF-8 を使用」にチェックを入れると、今までデフォルトでShift JISだったもの(メモ帳をはじめ…)がUTF-8(BOM無し)になってくれてありがたいです。(それで不具合出る古い日本語アプリは捨てよう)… https://t.co/flgTiuKVCN"
- 村上真雄 MURAKAMI Shinyuさんのツイート: "この設定をすると「メモ帳」の「名前を付けて保存」で「文字コード: ANSI」(デフォルト)だとBOM無しのUTF-8、「文字コード: UTF-8」だとBOM付きのUTF-8のファイルになります。"
- 村上真雄 MURAKAMI Shinyuさんのツイート: "Windows用語の「ANSI」は、ANSI(米国国家規格協会)の標準規格じゃないのに、誤った名前で使われ続けているらしい: https://t.co/RvWOzy3rZa そのあたりの謎なWindows用語も直してほしいものです。"
- Windows code page - Wikipedia
- なかのん&マジックさんのツイート: "あの設定を変更すると、壊れるアプリは多々ありそう……古いアプリというより、古くからあるアプリの互換性が心配。特にインストーラとか、メンテがそこまで活発じゃなさそうな部分。"
- uNagiさんのツイート: "マルチバイト文字セットでビルドされているアプリの末路・・・… "
- なかのん&マジックさんのツイート: "あー、Unicodeアプリ以外全滅ですか。さすがに使えないですね……単純に古い開発環境で作ってるだけの新しいアプリも全滅しちゃいますね。… "
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「WinNT系カーネルもそうで、W系WinAPIは全てUTF-16(昔はUCS-2のLE表現)。 UTF8系WinAPIを用意すべきなのに、A系APIをOSコードページ指定(システムグローバル)を65001にすることで、UTF-8利用可にするという頭の悪い方向で頭が痛い… https://t.co/EZyfCcKfgj」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「1903からアプリ毎のUTF-8設定できるのね。知らなかった。 ただ、WIN32_FIND_DATAA など cFileName が MAX_PATH byte しか無いため、非ASCIIで87文字以上の長いファイル名が格納できないという、MBCS版(SJIS129文字まで)より、さらに制限のキツいアプリしか作れない。 https://t.co/1AnPmGpEfB」 / Twitter
- K.TakataさんはTwitterを使っています: 「manifestでアプリ単位でUTF-8に切り替えできるようになったので十分じゃないのかな。 https://t.co/V0T47xXIgI UTF-8なAPIだけを用意してもCRTが使えないのであまり意味がないし https://t.co/kqfXMGhXRx」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「それと、IPMsg で実際に W系APIを UTF-8 API的なラッパーを用意して、UTF-8で動くコードを書いてる経験からすると、CRTは(UTF-8明示対応が理想だけど)実はmbcs系を明示的に使わず、strXXXみたいなASCII用関数を使う限り、ほぼ問題ない。(UTF-8はASCII系との互換性が高い) https://t.co/lvFt3kI1iA」 / Twitter
- ipmsg/tapi32u8.h at 733f2515b34f7a5f84342448540b1a61d9f1dd0b · shirouzu/ipmsg
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まずいのは mbsstr とか MBCS版CString のような MBCS前提に書かれたライブラリ。たとえば、VC6 の CString Find に UTF-8を食わせると破綻した経験。 (なお、VS2005のCStringだと leadbyte 終端時の \0飛び越しは無くなっていた) https://t.co/bCkJtweS6V」 / Twitter
- 私的メモ(2004年01月版)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば「アプリ毎コードページ設定化は無理?」と思っていたのだけど、意外と大丈夫だったのね。 コモンダイアログ等のDLLはMSさんがUTF-8対応したのだろうけど、それ以外で未対応DLLを食うパターンが無いかの確認はアプリ側でやれよ、ということかな。 https://t.co/fvAxXRJEcQ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「なお、アプリ毎の ANSI API の MBCS/UTF8解釈切り替えは、DLLの存在を考えると、たぶん無理。」 / Twitter
Julia
- ChuuiさんはTwitterを使っています 「@uchan_nos Julia言語は、REPL環境に「 \lambda タブ」と押すと、λ が入力できる機能が標準で備わっている。 Julia公式 unicode入力: https://t.co/SGQkkNb6UH 各エディタの場合は拡張機能で。 次のブログ、興味深い記事でした。 > Unicodeプログラミングのすゝめ https://t.co/PRwjmS2h9n」 / Twitter
- Unicode Input · The Julia Language
- Unicodeプログラミングのすゝめ - りんごがでている
@rockridge07
- Rockridgeさんのツイート: "Fx42:Unicode v8.0をサポート。参照:https://t.co/hR5TaueMuf / “1183209 – update Unicode character data to version 8” https://t.co/3lbspBIwRe"
- Rockridgeさんのツイート: "Fx53:Unicode v9.0をサポート。参照:https://t.co/5eJdHuOEmL / “1281448 – update Unicode character data to version 9.0” https://t.co/QtHgUt197u"
- Rockridgeさんのツイート: "Fx56:Unicode v10.0をサポート。参照:https://t.co/XCqHzGprAP / “1376834 - Update Unicode data to release 10.0” https://t.co/SyxYcNNjNa"
@d_toybox
- なかのん&マジックさんのツイート: "これ、Unicodeが悪いかのような書き方してるけど、欧米の言語で考えればUnicodeのアプローチ正しいでしょ? 欧米の言語ごとに同じアルファベット定義させる気? lang属性はそういう意味で必要なのよ。 / 1000speakers Speach by Songmu ~何故htmlにはlang属性が必須なのか? https://t.co/8eoYzLWlr0"
- 1000speakers Speach by Songmu ~何故htmlにはlang属性が必須なのか? (1)
- なかのん&マジックさんのツイート: "あと、ページ全体のlang属性もきちんと指定しておかないと、例えば英語の設定しかしてないブラウザで漢字交じりのUTF-8なページを表示した時に、日中韓どのフォントで表示すれば適当なのかはヒントが他に無いのよね。実際にこういうトラブルで定期的にバグとしてFirefox側に報告来てたりするのよ。"
- なかのん&マジックさんのツイート: "Firefox的にはユーザ自身が設定の言語の所に、自分の使えるCJKの言語を追加して優先順位を適切にしておくと、それを優先するよって形にはなってるんだけど、まあ、英語版のNightly使ってる中国系の人からの報告が常にやってくる。"
- なかのん&マジックさんのツイート: "ちなみにGeckoは歴史の長いエンジンなので、過去からの互換性のために最後までヒントが無かったときのフォールバックで日本語が最初に来るので日本人は中々見かけない問題ではある。他のエンジンはどうしてるのか知らない。"
- なかのん&マジックさんのツイート: "ブラウザの実装やってる側からするとこの記事とか本当にアホかって思う。検索エンジンの方だけ向いて、ユーザの方を向かずにWeb作ってるからこう判断しちゃうんだろうな。 / Google「言語指定にlangは使うな」/公式発言 https://t.co/xFuK2b8j6L"
- Google「言語指定にlangは使うな」/公式発言
- なかのん&マジックさんのツイート: "Unicodeのコードテーブルで#(U+FF03)の定義を確認したけど、FULLWIDTH NUMBER SIGNと、<wide># だけだし、# (U+0023)の方もNUMBER SIGN、pound sign、hash、crosshatch、octothorpeだけで、music sharpはU+266Fと案内してるよなぁ。"
- なかのん&マジックさんのツイート: "UTF-16とかBOMは間違ってないと思うけどなぁ。少なくとも、処理する上でUTF-8は無いわーって思う。伝送にはUTF-8以外に無いわーだけど。"
- なかのん&マジックさんのツイート: "'EXCLAMATION QUESTION MARK' (U+2049) / 「!」「?」の名前は有名 では「!?」と並べたときの呼び方は? - ねとらぼ https://t.co/R9KQ6G3cul"
- 「!」「?」の名前は有名 では「!?」と並べたときの呼び方は? - ねとらぼ
- Yuzuru Suzukiさんのツイート: "「々」が漢字ではなく記号扱いだからバリデーション通らない超基本のやつだ。… "
- Atsushi Sasakiさんのツイート: "【悲報】ゆうちょPayでは「佐々木」という姓が名前として入力できない。なんだこれ日本に佐々木姓が何人いると思ってんだ……… "
@makoto_kato
- Makoto Kato ︎︎さんのツイート: "emojiはUTF-32は解決できるかもしれないけど、IVSは解決できないし、クラスタは解決できないので、あのruiさんのエントリになるほどと思ってる人はunicodeのスペック読み直せ"
- Makoto Kato ︎︎さんのツイート: "個人的にはJPって絵文字並べると日本の国旗ができるスペック、あれどうなのよだし、そのタイミングで文句言えなかったのは自分の守備範囲のせいかも"
- Makoto Kato ︎︎さんのツイート: "元号が増えるとICUのアップデートが必要"
- Makoto Kato ︎︎さんのツイート: "なので、ICUを使ってるコードはすべてアップデートしないといけないんですが、誰が調査するんですかねー。(そもそもそのアプリで日本の元号表示したりするのかは置いておいて)"
- Makoto Kato ︎︎さんのツイート: "NEX久々に乗ったけどまだdouble byte言ってる。そもそもIDNとかあるのに何言ってるんだろ。作ったNTT Com?の人がおそらく40代以上なんだろうな… "
- Makoto Kato ︎︎さんのツイート: "triple bytesならいいのかといつも突っ込みたくなるやつ"
@kazuho
- Kazuho Okuさんのツイート: "今までマルチバイト対応が少なかったのを欧米圏の人たちの他文化への理解の欠如のせいにするツイートが散見されるけど、彼らからしてみれば、対応しようにも漢字読めないから正しい表示にできているのか判断しようがなかったんですよ。絵文字が流行るまでは。"
- Kazuho Okuさんのツイート: "アラビア語の表示が正しくできてるかデバッグしたことのある人だけが、英語圏のプログラマに斧を投げなさいって感じ"
- Kazuho Okuさんのツイート: "いっタイなんて書いてあるのか、わかりませんからねぇ https://t.co/Iexqryl8Xi"
- Kazuho Okuさんのツイート: "実際、ASCII+EUC/ShiftJIS自体に発生した様々な問題をユニコード(UCS2)で解決しようというのはアメリカ主導の提案だったわけだし、彼らにとっては、文化的無理解からやりたくなかったのではなく商業的理由でやりたかった話"
- Kazuho OkuさんはTwitterを使っています 「utf-8でBOM使うのがおかしいというのはunicodeの世界しか見ていない話で、文字コードの推定やる場合には便利だし、実際application/javascriptの場合は推奨されている推定手法です。ベストな解は、もちろんcharsetを指定することだけど。 https://t.co/AToDQAGcw9」 / Twitter
- RFC 4329 - Scripting Media Types
@rui314
- 絵文字がある種のUnicodeバグを世界から一掃しつつある件について|Rui Ueyama|note
- Rui Ueyamaさんのツイート: "欧米の人たちはマルチバイト文字圏の苦労がわかってないし、わかっていても意図的に無視してきた、みたいなこと、いわないほうがいいと思いますよ。実際に払われてきた苦労をわかってないのはそういう人たちのほうで、しかも僕も含めた開発者を人種差別的な意味まで含みながら侮辱しているだけなので。"
- Rui Ueyamaさんのツイート: "UTF-8の認識が15年前くらいからアップデートされていないひとがわりといるのかも? Unicodeは2^32とかではなく最大でも1,114,112文字に制限されているので最長でも4バイトだし、冗長なエンコーディングは禁止されているのでそういうのは単に不正なバイト列。"
- Rui Ueyamaさんのツイート: "@anohana @tenpoku1000 @mkamimura そうですね。それと、ほとんどのデータや文章は最初から順番に読んでいかないと意味がわからないので(HTMLや自然言語の文を途中から読んでパーズしたりできない)、n文字目にO(1)でシークできるというのは実際はほとんどメリットないと思います。"
@a4lg
- Tsukasa #01 [要出典]さんのツイート: "ある資料の収録字を調べる → Unicode 中には無い → IDS で検索 → 中国国家図書館が、各地方志の電子化を行う過程で 4000 字以上の漢字を IRG に提出し、――その多くが今も未収録なことを発見する (IRG N1199 等)。"
- Tsukasa #01 [要出典]さんのツイート: "奇妙な字がたくさん。まだ Unicode に登録されていない漢字が多いという事実に圧倒される。 https://t.co/m5KhzR53GP (提案[この時点では正式な proposal ではない]) https://t.co/2fUdm0vutW (グリフ一覧)… https://t.co/xGe2XEzdey"
- Tsukasa #01 [要出典]さんのツイート: "念のため強調しておくと、Unicode 登録準備が進められているものを含めると、9万以上の漢字が Unicode (と、おそらく 2 年以内にそこに収録されるワーキングセット) に収録されているのだ。そこに漏れているものがまだまだ多いということは、………いやぁ、おそろしいねぇ。"
- Tsukasa #01 [要出典]さんのツイート: "@wtnelson @sarasvati635 Yes, I agree that. The only (and the biggest) problem is, this ideograph got too famous (about its stroke count) to reject. It feels more li… https://t.co/J8pJeS9nog"
- William T.さんのツイート: "@sarasvati635 @a4lg I am angry about UK-02960 「⿱䨺龘」 UK “additional evidence” is 和製漢字の辞典 that says: 存在未確認 UK says that UCS "does not encode idiosyncratic, pers… https://t.co/x0Mc38nVJ9"
- Tsukasa #01 [要出典]さんのツイート: "@ZawemonK "単なるデマ" として潰すタイミングを逸した感 (デマだったとしても、それを前提として載せてしまっているものも笹原氏の本含めてありますし……)。"
- Tsukasa #01 [要出典]さんのツイート: "oO( というわけで、それこそ 龍*n とか 雷*n の自称古文とかは広がらないうちに潰………れてるのかな。まぁ今はあまり広がってないが、流石にこれをエンコードしようっていうのなら強く反対。 )"
- Tsukasa #01 [要出典]さんのツイート: "@ZawemonK これ単独ではないでしょうが、間違いなくひとつ挙げられるのは、今昔文字鏡等の宣伝があるかと。"ちくわ" "慶應" とかもその類ですし。"
@tanakh
- Hideyuki Tanakaさんのツイート: "⿸ こんな文字とかあったんすね(´・_・`)"
- Hideyuki Tanakaさんのツイート: "漢字構成記述文字なんてものが定義されてたのか(´・_・`)"
@ohashimasaki
- Masaki Ohashiさんのツイート: "結局のところ、入力チェックを設けるよりも、所定の文字に関してだけ自動的に置換をするようにしといたほうがはるかに簡単だしスムーズだよね。どうせ0-9A-Za-zとカタカナと一部の記号だけなんだから…「全角」とか「半角」とかで決めるから意味が分からなくなる。"
- Masaki Ohashiさんのツイート: "もし「全角」「半角」をチェックしたいなら、自分または顧客が「全角」「半角」と考える文字の範囲をあらかじめ決めておかないとチェックしようがないけど、そもそも意味あるのかw たいていは顧客の社内文書のスタイルに起因するものなんだろうけど。とくに「全角」限定は悩ましい。"
@anohana
- Shiro Kawaiさんのツイート: "論文のアルゴリズム実装してみる時は、最近ではギリシャ文字とかあまり抵抗無く使うなあ。 上付き下付き文字を ^+ とか _1 とか書くのがいまいち、と思ってたんだけど、考えてみたらUnicodeにあるから使えばいいのか。U+2070 ~ U+209Cあたり。… https://t.co/W8RwPhGeG1"
- Shiro Kawaiさんのツイート: "SchemeはUnicodeの一般カテゴリで識別子を定義してて、全角数字はNdなので最初の文字としては使えない(2文字目以降は可)。が、Gaucheは今のところ「数字として解釈できないシンボルっぽいやつはシンボルでいいや」という昔のLispのユルさを引きずってる。 gosh> (define 1 2) |1| gosh> (+ 1 1) 4… https://t.co/UdfDqGRZHG"
- Shiro Kawaiさんのツイート: "これはやっぱりあんまりなのでそのうち変えるかも。"
- decodeunicode.org
- 📙 Emojipedia — 😃 Home of Emoji Meanings 💁👌🎍😍
- 文字コードDB
- FileFormat.Info · The Digital Rosetta Stone
- Unicode Standard
- History of Unicode Release and Publication Dates
- rusticstuff/simdutf8: SIMD-accelerated UTF-8 validation for Rust.
GUI
その他
- プロダクト支援チームでkintoneのStorybookをホスティングした話 - Cybozu Inside Out | サイボウズエンジニアのブログ
- D-Bus のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- Epoxy/README.ja.md at main · kekyo/Epoxy
- flutter 内部構造 - Google 検索
- モジュールの構造化 · An Introduction to Elm
- PreactチームがWMRをリリース、最新のWebアプリ開発を簡単に
- 日本のアプリのUI(ユーザーインタフェース) は古くて醜いのはなぜでしょうか?に対するMakiko Nukagaさんの回答 - Quora
- 第595回 リモートデスクトップのためのSPICEクライアントあれこれ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「xorg-serverからxdmxを削除する提案がなされているらしい。xdmxは複数のホストで実行されているXサーバを繋いで、沢山のホストとディスプレイで巨大なスクリーンを作る機能で、2011年にOpenGLを使うとクラッシュする不具合が報告されてから修正されないまま放置されていた https://t.co/vbKcC9t6TU」 / Twitter
- X.Org Looks To Drop DMX After Being Rather Broken For ~14 Years - Phoronix
- FadisさんはTwitterを使っています 「xdmxが正常に動いていた時代にはこういう浪漫環境を作ってる人とかいた https://t.co/LfoYA3rqhV」 / Twitter
- Quake 3 by arranging 24 monitors - GIGAZINE
- 「GNOME 41」が公開 | OSDN Magazine
- 「Electron 15」が公開、暗号化APIを導入 | OSDN Magazine
- フロントエンド大好きseyaさんさんはTwitterを使っています 「色んなよくある UI パーツの種類、使い方、状態などを整理してるサイト。勉強になる!! https://t.co/1DwtyIdpGx https://t.co/jAhOz8Bkfm」 / Twitter
- UI Control Guidelines | Wireframing Academy | Balsamiq
情報管理の概念
- Kazuho OkuさんはTwitterを使っています 「ディレクトリ(木構造)により様々な種類の情報をまとめて管理するってアプローチ、別に正しい解でもなんでもないもんなぁ。 インターネットでもディレクトリサービス(Yahoo!)は検索(Google)に駆逐されたし、ウェブ上のサービスは、サービス(アプリ)にアクセスしてリスト+ラベル+検索で情報に...」 / Twitter
- YAMADA Tatsushi 山田達司さんはTwitterを使っています 「Palmが受け入れられた理由の一つはユーザーに対してファイルやフォルダーという概念を全く見せなかったからだと思ってます。」 / Twitter
- Munechika NishidaさんはTwitterを使っています 「一見「なるほど」と思うのだけれど、違うと思っている。実際には、PC初心者にとって常にハードルなのが「ファイルとフォルダ」なので、単にそれらの概念は「覚えないとわからない」という話ではないか、と:「ファイル」や「フォルダ」を理解できない学生が急増中 - GIGAZINE https://t.co/FCbwIrXYEf」 / Twitter
- 「ファイル」や「フォルダ」を理解できない学生が急増中 - GIGAZINE
- 崎村夏彦『デジタルアイデンティティ』日経BPより発売中さんはTwitterを使っています 「@hackerdudesan これはスマホにも踏襲されてますよね。 ある一定以上に情報量が増えると途端に不便になるけど、そこまでは便利。」 / Twitter
- YAMADA Tatsushi 山田達司さんはTwitterを使っています 「@_nat ですね。タグや検索をうまく使うスキルが必要ですね。」 / Twitter
- YAMADA Tatsushi 山田達司さんはTwitterを使っています 「@kazuho ですよねえ。システムとしてどういった形態が正解なのかと、利用者にどう意識させるかでも違った方法が必要そうですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「アクセスするという Palm やスマホと同じモデルですよね。あるアプリのデータを他の(自作の)アプリに読み込ませるみたいな使い方をやらないのなら、ディレクトリなんて要らないんじゃないの」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「つまり、データフォーマットと、データを扱いアプリケーションを分割可能な世界というのが、どれだけ必要なのか、という話。分割可能であったほうが進化しやすいだろうというのは言えるんだろうけど。」 / Twitter
Wayland
blog
- Rust製GUIスタック「Kazari」
- Life of a Pixel - Google スライド
- Introduction - The Wayland Protocol
- weston/terminal.c at master · wayland-project/weston
- Appendix A. Wayland Protocol Specification
- Introduction - The Wayland Protocol
- wayland/wayland.xml at master · wayland-project/wayland
- Implementing Resea GUI - 1. Porting Cairo 2D graphics library
- Implementing Resea GUI (Part 2): Font Rendering with FreeType
- Implementing Resea GUI (Part 3): Porting libpng
- Wayland
- wayland / wayland · GitLab
- MirServer/wlcs: Wayland Conformance Test Suite
- 第652回 キミはMirを憶えているか:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 2017年9月5日 Waylandでもリモートデスクトップ! Red Hat開発者がGNOMEにAPIを追加:Linux Daily Topics|gihyo.jp … 技術評論社
- Wayland | OSDN Magazine
- Wayland - Wikipedia
- Wayland (display server protocol) - Wikipedia
- Wayland - ArchWiki
- Wayland - ArchWiki
- Wayland ‐ 通信用語の基礎知識
- Wayland | Linux技術者認定 LinuC | LPI-Japan
- Waylandとは? - Qiita
- Wayland/jp - RawPedia
- Waylandのウィンドウのx、y座標を設定するにはどうすればよいですか?
- Wayland - 接続と切断
- Waylandについて - 雑記
- bitWalk's: Wayland と X Window System
- GNOMEでWaylandを使う | 普段使いのArch Linux
- Firefox 75がLinux向けディスプレイサーバーのWaylandをサポート - GIGAZINE
- Ubuntu 19.04 その11 - Waylandセッションのデフォルト化はUbuntu 20.10まで見送りか? - kledgeb
- 【Ubuntu 17.10】WaylandからXorgに切り替えるべき7つの理由 | LFI
- Makoto Kato ︎︎さんはTwitterを使っています 「WSLg、IMEもwaylandプロトコル実装すればいけると思うんだけど、まぁ大変そう」 / Twitter
- 第666回 Waypipeを用いてWayland環境で「X転送 over SSH」っぽいことをしてみる:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- managarm/managarm: Pragmatic microkernel-based OS with fully asynchronous I/O
- FadisさんはTwitterを使っています 「glfwがsurfaceを作れない!→waylandをenableしたglfwはX上でsurfaceを作れない→何でwaylandがenableになったの?→次にglfwのバージョンが上がる時にはNVIDIA+wayland事情が改善してると信じてGentooのUSEフラグをバージョン付きで-waylandしてた、を3回繰り返してglfwを常に-waylandするようにした」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「WaylandになってGTKレベルでちゃんとHiDPI per Monitorがサポートされてるのだが、まぁなんかGeckoのバグ踏んでる」 / Twitter
MS
Windows App SDK(WinUI 3, Project Reunion)
- ASCII.jp:UWPからデスクトップアプリに回帰すべく、MSが送り出した「Project REUNION」 (1/2)
- Project Reunionを使用して、MicrosoftはWin32とUWP APIの統合を試みる
- Microsoft、Win32とUWPの2つのAPIを再統合する「Project Reunion」 ~WinUI 3に統合され、開発者は新しいアプリケーションを開発可能。EdgeやTeamsも機能強化 - PC Watch
- microsoft/ProjectReunion: Project Reunion is an evolution of the Windows developer platform that will make it more compatible, agile, modern and open.
- UWPアプリの洗練されたUIをWin32アプリでも ~Microsoft、「WinUI 3 Preview 1」を発表 - 窓の杜
- Introducing WinUI 3 Preview 1 - Windows Developer Blog
- WinUI 3 Preview 2 (July 2020) | Microsoft Docs
- デスクトップ アプリ用の WinUI 3 の概要 | Microsoft Docs
- Windows 10 21H2以降で恩恵を受けられそうなWinUI 3 - 阿久津良和のWindows Weekly Report | マイナビニュース
- Microsoft、「WinUI 2.5」を公開 ~プログレスリングやBootstrap風の情報バーを追加 - 窓の杜
- Microsoft、「Windows UI Library」を公開 ~OSバージョンに縛られずに新機能を導入可能 - 窓の杜
- Microsoft、「Project Reunion 0.5」を発表 ~Win32とUWP/XAMLに二分されたWindowsアプリ開発を再結合 - 窓の杜
- 「Uno Platform 3.6」が発表 ~「Project Reunion 0.5」の「WinUI 3」に即日対応 - 窓の杜
- ASCII.jp:UWPとデスクトップアプリの統合を試みる「Project Reunion」のプレビュー版が登場する (1/2)
- ASCII.jp:あらためて「.NET」について整理する (1/2)
- MicrosoftがProject Reunion 0.5のプレビュー版をリリース
- ReactとWinUI 3を使ってWindowsネイティブアプリを開発する
- Microsoft、「Project Reunion 0.8」を発表 ~Win32とUWP/XAMLに二分されたWindowsアプリ開発を再結合 - 窓の杜
- WinUI 2.6 Release Notes - Windows apps | Microsoft Docs
- 「Project Reunion」の正式名称は「Windows App SDK」に ~v0.8が一般公開 - 窓の杜
- Uno Platform 3.8登場
Windows Community Toolkit
- ARM64アプリの開発をサポート ~Microsoft、「Windows Community Toolkit」v6.0を発表 - 窓の杜
- トースト通知がたった数行で。新しいMVVMライブラリも ~「Windows Community Toolkit 7.0が公開 - 窓の杜
Uno Platform
- 「Uno Platform 2.0」が正式公開 ~C#/XAMLのUWPアプリをiOS/Android/WebAssemblyへ移植 - 窓の杜
- 「Uno Platform」が「Visual Studio Code」にプレビュー対応、WebAssemblyアプリが開発可能に - 窓の杜
- Windows 10の「電卓」アプリがオープンソース化 - 窓の杜
- Windows 10の電卓アプリがiOS/Android/WebAssemblyで動作 ~「Uno Calculator」が公開 - 窓の杜
- Unoプラットフォーム3.1がリリース
MAUI
- Microsoft、.NETのUIを統一する「.NET Multi-platform App UI」(.NET MAUI)を発表 - 窓の杜
- マイクロソフト、マルチプラットフォームUIを実現する「.NET Multi-platform App UI」(MAUI)を実際にデモ。単一コードからWebとWindowsアプリを生成 - Publickey
- Microsoft、「.NET MAUI」Preview 4を発表 ~マルチプラットフォーム対応アプリUIフレームワーク - 窓の杜
- .NET MAUI Preview 4はこちら
- .NET MAUI Preview 5が目前に
- 新たなWeb認証オプションと.NET MAUI Essentialsを加えたXamarin.Essentials 1.7
- MicrosoftがXamarin Community Toolkit用の.NET MAUI Compatibility Packageをリリース
- .NET MAUIがPreview 8をリリース、しかしGAは2022年Q2に延期
WebView2
- 新しい「Edge」をアプリに組み込める ~Win32 C/C++向けの「WebView2」が一般公開 - 窓の杜
- MicrosoftがChromiumベースのWebView2でハイブリッドWindows Webアプリをサポート
- Microsoft、.NET向け「WebView2」を一般公開 ~ランタイムバージョンの固定にも対応 - 窓の杜
- Microsoft Edge WebView2が一般公開
- マイクロソフト、Chromiumベースの「Microsoft Edge WebView2」.NET正式対応版リリース。バージョンを固定できる「Fixed Version distribution mode」も - Publickey
- 高梨陣平さんはTwitterを使っています 「MS Teams 2.0が大胆な変更。Electronを止めてEdge Webview2に。Angular を止めてreactjsに。apollo graphqlを採用。Win11からで、商業は後。 Electronはメモリを食い過ぎた。Edge Webview2はMS製のWeb技術をネイティブアプリに突っ込むもの。」 / Twitter
- Hacker NewsさんはTwitterを使っています 「Microsoft Teams 2.0 will use half the memory, drop Electron: https://t.co/naMPGiW40I Comments: https://t.co/tGhJSOwi1g」 / Twitter
- Microsoft Teams 2.0 will use half the memory, dropping Electron for Edge Webview2 – Tom Talks
- Microsoft Teams 2 will use half the memory, dropping Electron for Edge Webview2 | Hacker News
- 「Electron」と「WebView2」はどう違う? ~「Electron」の開発チームが解説 - やじうまの杜 - 窓の杜
- Microsoft、「WebView2」ランタイムをWindows 11に同梱 ~古い環境へのバックポートも進める - 窓の杜
Windows Runtime
C++/WinRT
- C++ - C++/WinRT の紹介
- Standard C++ and the Windows Runtime (C++/WinRT) - Windows Developer BlogWindows Developer Blog
- C++/WinRT
- C++WinRTではじめるUWP
- C++/WinRT | Modern C++ for the Windows Runtime
- Microsoft/cppwinrt: C++/WinRT is a standard C++ language projection for the Windows Runtime.
- MS、オープンソースで公開のC++/WinRTの処理高速性をアピール | マイナビニュース
Windows Template Studio
- Windows Template Studio - Visual Studio Marketplace
- Microsoft、UWPアプリの雛形を手軽に作成できる「Windows Template Studio」v1.3 - 窓の杜
- 「Windows Template Studio」v1.5が公開 ~UWPの雛形を作成するVisual Studio拡張機能 - 窓の杜
- アプリ雛形を作成するVS拡張「Windows Template Studio」v1.6、画像ギャラリーに対応 - 窓の杜
- Visual Basicをサポートした「Windows Template Studio」v1.7が公開 ~Prismにも対応 - 窓の杜
- アプリの雛形を作成するVisual Studio拡張「Windows Template Studio」がv2.0に - 窓の杜
- 「Windows Template Studio」がv2.2に ~UWPアプリの雛形を作成するVisual Studio拡張 - 窓の杜
- Windowsランタイム - Wikipedia
- Windows Runtime - Wikipedia
- Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
- Windows Runtime 8.x APIs for desktop apps (Windows)
- Windows と C++ - Windows ランタイムにおける洗練された型
- RoGetActivationFactory function (Windows)
- パッケージ デスクトップ アプリで利用可能な UWP API (デスクトップ ブリッジ) - UWP app developer | Microsoft Docs
- ToastNotification Class (Windows.UI.Notifications) - UWP app developer | Microsoft Docs
- 遥佐保の技術メモ:[C++][WRL]デスクトップアプリからトースト通知 - livedoor Blog(ブログ)
- DesktopからToast Notificationsへ通知する | Software Development | Just another WordPress site
- トースト通知 - かずきのBlog@hatena
- デスクトップアプリからWinRT APIを使用する - 酢ろぐ!
- 特集:デスクトップでもWinRT活用:開発者が知っておくべき、ライブラリとしてのWindowsランタイム (1/5) - @IT
- WinRT APIを使ってみる - イグトランスの頭の中
- WinRTとC++イテレータ - イグトランスの頭の中
- WinRTのref classでの演算子多重定義 - イグトランスの頭の中
- C++コンポーネント拡張:新しいCOM
- COM 再入門 (1) - モノトーンの伝説日記
- Windows Runtime/WinRTとプログラミング言語 - WisdomSoft
- Windows 8時代のアプリ開発とWinRT(1/4) - @IT
- WinRT:Win32のオブジェクト指向による代替
- Windows 8時代のアプリ開発
- Rockridgeさんのツイート: "Fx64:Windows 10ネイティブのトースト方式通知をサポート。通知はアクションセンターに登録される。今のところNightlyチャンネルでのみ有効化されている。 / “1155505 - Implement ToastNo…” https://t.co/0wEyVnh7NH"
- ゆたかさんのツイート: "UWP最高!!全部API置き換えるもん!!!!みたいな熱量からだんだんやっぱWin32捨てれねぇわ…感を漂わせて、バージョンごとに増えていく許可されたWin32 APIがちょっとおもしろい"
CLI
- Standard ECMA-335
- Standard ECMA-335-archive
- ECMA-335翻訳ドキュメント
- ECMA C# and Common Language Infrastructure Standards
- Reference Source
- 共通言語ランタイム (CLR)
- coreclr/dotnet-standards.md at master · dotnet/coreclr
- マイクロソフト、C#やCLIのオープンソースによる実装を認める。Monoプロジェクトに弾みがつくか? - Publickey
- JIS X 3016共通言語基盤の改正について | IPSJ/ITSCJ
- 共通言語基盤 - Wikipedia
- Common Language Infrastructure - Wikipedia
- Microsoft Open Specification Promise - Wikipedia
- Microsoft Open Specification Promise - Wikipedia
- WPF/WinFormsをオープンソース化 ~Microsoft、「.NET Core 3.0」Preview 1を発表 - 窓の杜
- [速報].NET Coreがデスクトップアプリケーション対応。Windows Forms/WPF/UI XAML Libraryもオープンソース化。Microsoft Connect(); 2018 - Publickey
- NOKUBI Takatsugu野首貴嗣さんのツイート: "Windows Forms / WPF のクロスプラットフォーム化対応のコントリビューションは受け付けない予定らしい https://t.co/i43JoAEyif - marchrockのコメント / はてなブックマーク - https://t.co/OF08FdpIeW"
- wpf/contributing.md at master · dotnet/wpf
- Windows Forms / WPF のクロスプラットフォーム化対応のコントリビューションは受け付けない予定らしい https://github.com/dotnet/wpf/blob/master/Documentation/contributing.md - marchrockのコメント / はてなブックマーク
- .NET Core 3.0の概観:C# 8、WPF、Windows Formなど
- C#機能: ラムダ属性
- CoreCLRのソースをVisual Studio 2017で読む - fujieda's tech blog
- [速報]オープンソースの「.NET 5」がすべての.NETを引き継ぐ。.NET Frameworkと.NET CoreとXamarinは「.NET 5」に。Microsoft Build 2019 - Publickey
- [速報]マイクロソフト、新UIフレームワーク「.NET Multi-platform App UI」(.NET MAUI)発表。単一コードでマルチプラットフォーム対応。Microsoft Build 2020 - Publickey
DWM
- WDDM, DWM: pros and cons - NyaRuRuが地球にいたころ
- Futuremark Updates and Vista DWM - NyaRuRuが地球にいたころ
- DWM による描画の現場を押さえる - NyaRuRuが地球にいたころ
- Desktop Window Manager (DWM) の動作解説図 - NyaRuRuが地球にいたころ
- Perforator による Desktop Window Manager (DWM) のプロファイリング (1) - NyaRuRuが地球にいたころ
- Perforator による Desktop Window Manager (DWM) のプロファイリング (2) - NyaRuRuが地球にいたころ
GDI
- GDI アクセラレーションについて整理する - NyaRuRuが地球にいたころ
- Windows 7 と GDI/GDI+ の GPU アクセラレーションの可能性 - NyaRuRuが地球にいたころ
- 「Windows Vista での GDI/GDI+ 描画」についてのお詫び - NyaRuRuが地球にいたころ
- Windows Vista での GDI/GDI+ 描画 - NyaRuRuが地球にいたころ
NyaRuRuが地球にいたころ
- WDDM によるタイムアウトの検出と GPU の回復 - NyaRuRuが地球にいたころ
- 進化しすぎた GPU の災禍 - NyaRuRuが地球にいたころ
- GPU を利用したテキストレンダリング - NyaRuRuが地球にいたころ
- デスクトップの暗黒面 - NyaRuRuが地球にいたころ
- デスクトップの裏側 - NyaRuRuが地球にいたころ
- デスクトップの裏側 (2) - NyaRuRuが地球にいたころ
- デスクトップコンポジションの無効化 - NyaRuRuが地球にいたころ
- Windows Vista (x86) SP1 ではデスクトップヒープのデフォルト値が増やされてる - NyaRuRuが地球にいたころ
- ウィンドウコンポジション (1) - NyaRuRuが地球にいたころ
- Windows 7 のグラフィックスの変更点を整理する - NyaRuRuが地球にいたころ
- Guidelines for Graphics in Windows 7 - NyaRuRuが地球にいたころ
- Windows 7 Developer Guide とグラフィックスの改良点 - NyaRuRuが地球にいたころ
- Windows Vista と CreateWindow 限界 - NyaRuRuが地球にいたころ
- いまさら聞けない Windows Vista の基礎知識 グラフィックス編 解答 - NyaRuRuが地球にいたころ
- いまさら聞けない Windows Vista の基礎知識 グラフィックス編 - NyaRuRuが地球にいたころ
- New Magnification API - NyaRuRuが地球にいたころ
- New Magnification API (2) - NyaRuRuが地球にいたころ
窓の杜
- 新「Edge」ベースのPWAパッケージングを生成 ~「PWABuilder」に新しいプレビュー機能 - 窓の杜
- Windows 11の仕様変更で様々な影響 ~フリーの高機能テキストエディター「Mery」ベータ版で暫定修正 - 窓の杜
ASCII.jp
- ASCII.jp:2画面タブレット向けのWindows 10Xをエミュレーターで動かす (1/2)
- ASCII.jp:Windows 10のスタートメニューのタイルに表示されるWin32アプリのアイコンを作成する (1/2)
- ASCII.jp:キーボードのキー入れ替えにおける、仮想キーコードとキーボードスキャンコード (1/2)
- ASCII.jp:Windowsのディスプレイとモニター いまだ96DPIが基準
infoQ
- Windows Forms 5.0の新機能
- Xamarin Forms 5.0は、新しいグラフィック機能とインタラクティブ機能を安定化
Twitter
- Takashi KawasakiさんはTwitterを使っています 「Windows 11、結局コンテキストメニューはIExplorerCommandっていうCOMインターフェイスを実装しないといけない感じだけど、サンプルコードを見たら昔よりはあか抜けてて、これなら・・・いや、やっぱりダメだろって思ってる。 https://t.co/UBZ9KfGxEI」 / Twitter
- AppModelSamples/dllmain.cpp at master · microsoft/AppModelSamples
- Takashi KawasakiさんはTwitterを使っています 「見てたのはこの記事。 https://t.co/FDHQwPjA4M」 / Twitter
- Extending the Context Menu and Share Dialog in Windows 11 - Windows Developer Blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 単に掴むという意味だと、本当のウィンドウは(表示領域より)右/左/下にもう少し広がっていて、透過な影描画エリアなので、その透過部分は枠同様に掴めたりします。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このため、Windowsで座標0,0にウィンドウを置くと、表示的にはピッタリ左上とならず、透明部分だけ内側にズレて表示されてしまう。」 / Twitter
- tn-mai/DX12Tutorial: DirectX 12の学習用コードとか資料とか
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win10永続説の頃、Win8系タイリングが今後も続くと思ってヤレヤレ感あった。 で、Win11が出ると聞いてプチ期待したが、枠の角が僅かに丸くなる以外は、やっぱりタイリング系なのね。 視認性はXPあたりが一番良かった気がするのだけど。 (多少は立体的+マウスオーバーでボタン色変化)。」 / Twitter
- ナマケモノさんはTwitterを使っています 「MS製DirectX 12上のDX9互換レイヤがオープンソースに。まじかよ、MS、神だな。 Open Sourcing Direct3D 9 on 12 and the Release of the DXBC Signer NuGet Package https://t.co/NHdMaLq58e」 / Twitter
- Open Sourcing Direct3D 9 on 12 and the Release of the DXBC Signer NuGet Package | DirectX Developer Blog
- ロボ太さんはTwitterを使っています 「そういえばWindowsの「砂時計カーソル」を最近見なくなったなぁ、と思ったら、今はWait Cursorと呼ばれていて、砂時計(Hourglass)カーソルと呼ばれてたのはVistaまでだったそうな。そうか、Vistaまでか。おっちゃん年よりだからさ、Vistaは「最近」な感覚なんだよ。 https://t.co/nlNq9nJ9mc」 / Twitter
- Windows wait cursor - Wikipedia
- 圧倒的な説得力! プレゼン資料より「プロトタイプ」:日経ビジネス電子版
- 「MS Silverlight」のサポート終了が迫る中、オープン実装「OpenSilver」がベータに | OSDN Magazine
レンダリング
その他
その他
借り初めのひみつきち
- ビットマップクラス統合 - 借り初めのひみつきち
- 3種のビットマップ - 借り初めのひみつきち
- MYOS のウィンドウのつくりかた - 借り初めのひみつきち
- 今週の MYOS 🧚♀️ - 借り初めのひみつきち
株式会社ロジカルビート
- 【Shadertoy】レイマーチング基礎 – 株式会社ロジカルビート
- 【Unity】【描画処理】16ビットカラーの中身 – 株式会社ロジカルビート
- 【描画処理】【数学】16ビットカラーの中身(補足編) – 株式会社ロジカルビート
Flutter
- Inside Flutter - Flutter
- Flutter の Widget ツリーの裏側で起こっていること. Widget・State・Element・RenderObject… | by mono | Flutter 🇯🇵 | Medium
- Flutter はじめの一歩. はじめに自動的に作られるカウンターアプリを丁寧に解説 | by mono | Flutter 🇯🇵 | Medium
- 【Flutter】必要最低限の構造からFlutterの基礎を学ぶ - はなちるのマイノート
- 社内でFlutterのハンズオンを行ったので、資料を公開します - ペパボテックブログ
- Flutter入門のためのDart入門 - Qiita
- Flutter:Widget一覧 - Qiita
- Flutterの実践導入で用いるBLoC Patternの全体像と押さえておくポイント|yamarkz - Kazuki Yamaguchi|note
- Flutter Webの現状調査 - ntaoo blog
- 最高のクロスプラットフォームを自称するGoogleのUIツールキットFlutter 2.2
- 革命の日々! Windows VistaのIE7で文字サイズ変更が記憶されない。
- MozillaはQuantumプロジェクトで過去と訣別し、未来に賭ける - Mozilla Flux
- いまどきのデスクトップ処理系 - Backnumbers: Steps to Phantasien
- 動画上にコメントを表示する"弾幕"の仕様 - ASnoKaze blog
- #html_modules_study アウトラインメモ | Web Scratch
- The WHATWG Blog — The state of fieldset interoperability
- Proposal for promotable IFRAME - WICG
- 縦書きWeb普及委員会
- FAQ | たてよこWebアワード
- カクヨムでの縦組み表示の実装と、縦書きWebの将来に向けて (builderscon tokyo 2018) - Hatena Developer Blog
- WEB+DB PRESS の連載はなんとか打ち切りにならず続行中 - Backnumbers: Steps to Phantasien
- Blog Title - 第二回部会 - Part 1 (概要)
- John Resig - Selectors that People Actually Use
- 🐛よくハマったFlexboxのバグまとめ|たかもそ|note
- NetBSD と Adobe Flash Player の思い出:tsutsuiの作業記録置き場 - ブロマガ
- カスタムなSF SymbolsをSVGから自動生成する - クックパッド開発者ブログ
- 特定の端末のみで起こる WebView プチフリーズを Tracing を利用して追った話 - SmartNews Engineering Blog
- Analyze runtime performance - Chrome Developers
- 実行時のパフォーマンスの分析 | Chrome DevTools | Google Developers
- グラフ(ネットワーク)を奇麗に描画するアルゴリズム - mfumiの日記
- JavaScript - Fruchterman-Reingoldというグラフを描画するアルゴリズムを実装してみたが、すべてのノードが描画領域の右下に集まってしまう|teratail
- CiteSeerX — Graph Drawing by Force-directed Placement
- Hugo で <datalist> を活用したタグの選択補完機能を実装する | Coelacanth's Dream
- CNNを用いた単一画像からの描画モードへの分解と合成 | Preferred Networks Research & Development
- Let's build a browser engine! Part 1: Getting started
- What You Need to Know About React 18 | by Sheeraz Shaikh | Jun, 2021 | JavaScript in Plain English
- N回目のWebComponents元年: Lit 2.0 - Google スライド
- 1次B-スプライン曲線の制御点列をそのまま利用して2次B-スプライン曲線で1次B-スプライン曲線を近似する - にせねこメモ
won't fix
- won't fix: Adobeが行っている各ブラウザへのコントリビューション
- won't fix: Twitterの仕様の認識間違いに対してのMozillaの反論
- won't fix: safe-area-insets が本当に使われているとは思えない
- won't fix: WebKitとBlinkのスタンスの違い
blog.jxck.io
- Display Locking によるレンダリングの最適化と Async DOM | blog.jxck.io
- ブラウザで何が起こっているのかを知る Reporting API と ReportingObserver | blog.jxck.io
- img の srcset 指定時に選択される画像 | blog.jxck.io
- Scroll To Text Fragment と :~:text | blog.jxck.io
- Font Display プロパティを用いた FOIT/FOUT 最適化 | blog.jxck.io
- CSS Rhythmic Sizing で Vertical Rhythm | blog.jxck.io
- mouseover 中に表示される DOM のデバッグ | blog.jxck.io
nhiroki's weblog
- crossorigin 属性の仕様を読み解く
- リソースの読み込みを助けるウェブブラウザ API の世界
- ウェブの進化とウェブブラウザ開発の最前線
- environment settings object の origin の仕様を追う
mizchi's blog
- この DOM がすごい2018: worker-dom - mizchi's blog
- worker-dom-code-reading.md
- SPA が、ウェブ開発のベストプラクティスになる時代 - mizchi's blog
- 実践: React Hooks - mizchi's blog
- WebComponents: ReactNative.View のような CSS の既定値を持つだけの x-view を作ってみる - mizchi's blog
- React Hooks をどう使っていくか - mizchi's blog
- 「この〜を導入すると、なんとこうなりました!どうです?わかりやすいと思えませんか?」 - mizchi's blog
- WEB+DB PRESS Vol.106 で仮想DOMアルゴリズムについて書かせていただきました - mizchi's blog
- GUI環境でWeb の UIを構築する開発ツールを作りたい - mizchi's blog
水底の血
- メモ:CSS Basic User Interface Module Level 3 (CSS3 UI)は勧告案へ - 水底の血
- メモ:`scrollbar-*-color`プロパティが標準化への一歩 - 水底の血
- CSS Snapshot 2017が発行されました - 水底の血
- CSSワーキンググループの示す2015年時点のCSS仕様群の姿 - 水底の血
- (メモ)CSS1、CSS 2.0がSuperseded Recommendationへ - 水底の血
- `appearance`プロパティはブラウザーでサポートされません - 水底の血
- HTML文書は文字エンコーディングUTF-8でなければなりません - 水底の血
- 帰ってくるHTML Ruby(rb/rtc)要素 - 水底の血
- 『オンスクリーン タイポグラフィ 事例と論説から考えるウェブの文字表現』をほんのちょっぴりお手伝いした話 - 水底の血
Shiki’s Weblog
- Shiki’s Weblog: ESウェブブラウザ通信 - HTTPリクエストの並行処理
- Shiki’s Weblog: ESウェブブラウザ通信 - CSS 2.1 Test Suite #13
レンダラーの提案
React Native
- React Nativeとネイティブアプリでの開発の違いとは | TechAcademyマガジン
- React Nativeを用いた初めてのiOSアプリ開発 : 選んだ理由と、開発で学んだこと | プログラミング | POSTD
- React Native開発のつらい点まとめ – MMiyauchi Blog
- React Nativeとは何なのか - Qiita
- やはりHTML/DOMは再発明されるべきじゃないか - mizchi's blog
- なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita
- Performance Calendar » React’s diff algorithm
- Reconciliation - React
- Virtual DOMのアルゴリズムが知りたくてvirtual-domのコードを読んだ話 - saneyuki_s log
- Facebook の決断:MVCはスケールしない。ならば Flux だ。
- Fluxアーキテクチャの覚え書きを書いた - saneyuki_s log
Adwaysエンジニアブログ
- React NativeのレイアウトエンジンYogaの仕組み [前編] - Adwaysエンジニアブログ
- React NativeのレイアウトエンジンYogaの仕組み [後編] - Adwaysエンジニアブログ
- React NativeのレイアウトエンジンYogaの仕組み [続編] - Adwaysエンジニアブログ
- CSS Flexible Box Layout Module Level 1
- CSS Flexible Box Layout Module Level 1
ゆっくりと…
- ブラウザ動作の理解-レンダリングツリーの構築と描画のタイミング | ゆっくりと…
- ブラウザ動作の理解-リフローとリペイント及びその最適化 | ゆっくりと…
- ブラウザ動作の理解-レンダリングの負荷を測る | ゆっくりと…
フロントエンドBlog
- BackstopJSを使ったCSSのリファクタリング | フロントエンドBlog | ミツエーリンクス
- webpack 4とmini-css-extract-pluginを使ってCSSを別ファイルに書き出す方法 | フロントエンドBlog | ミツエーリンクス
- BabelとPostCSS、ESLintとstylelintの設定をpackage.jsonに詰め込んでみる | フロントエンドBlog | ミツエーリンクス
- Shadow DOM と CSS Containment によって実現されたCSSのスコープの概念 | フロントエンドBlog | ミツエーリンクス
- 新たなCSS設計思想 MOCSS の登場 | フロントエンドBlog | ミツエーリンクス
- IE9サポート終了・CSS Flexible Box Layout Moduleの利用拡大 | フロントエンドBlog | ミツエーリンクス
- 「Can I use...」にCSSのtext-orientationプロパティが掲載されるようになりました | フロントエンドBlog | ミツエーリンクス
- CSS Template Layout Moduleの面影を追う | フロントエンドBlog | ミツエーリンクス
- Google Chrome 61で追加されたscroll-behaviorを考える | フロントエンドBlog | ミツエーリンクス
- scroll-behavior - CSS | MDN
- 3ステップでCSS設計のプロセスを振り返る | フロントエンドBlog | ミツエーリンクス
- CSS Paint APIの使いどころ | フロントエンドBlog | ミツエーリンクス
- clip-pathを使ってWebページの表現方法を増やそう! | フロントエンドBlog | ミツエーリンクス
- CSSが効かない!?fieldset要素でも簡単にテーブルレイアウトを実現できるdisplay: contents; | フロントエンドBlog | ミツエーリンクス
- 記述次第でAutoprefixerいらず?!CSS Grid LayoutのIE11対応方法と未サポートブラウザのフォールバック例 | フロントエンドBlog | ミツエーリンクス
- CSS Painting APIが勧告候補になりました。 | フロントエンドBlog | ミツエーリンクス
- サイトにCSSだけで魔法陣を散りばめて新しい表現を模索してみる(前編) | フロントエンドBlog | ミツエーリンクス
- 第10回MLCマークアップ部お題のスクープ型ボックスをCSSマスクで再現した話 | フロントエンドBlog | ミツエーリンクス
- 第10回MLCマークアップ部お題のスクープ型ボックスをCSSマスクで再現した話の余談 | フロントエンドBlog | ミツエーリンクス
- CSS Working Group の Editor's Drafts に見るCSSの未来 | フロントエンドBlog | ミツエーリンクス
- CSSとJavaScriptで円の中に文字を収める | フロントエンドBlog | ミツエーリンクス
- JavaScriptで操作するCSS TransitionとCSSOMの関係 | フロントエンドBlog | ミツエーリンクス
- VS CodeとMJMLでレスポンシブなHTMLメールを作成する | フロントエンドBlog | ミツエーリンクス
- HTMLメールにカウントダウンを組み込む | フロントエンドBlog | ミツエーリンクス
- W3C発行のHTMLがすべて廃止された日 | フロントエンドBlog | ミツエーリンクス
- いろいろなHTMLのリンター | フロントエンドBlog | ミツエーリンクス
- source要素にwidth/height属性を指定して各画像のアスペクト比の維持とCLSの改善を図る | フロントエンドBlog | ミツエーリンクス
- 2021年に伸びるCSSプロパティ3選 | フロントエンドBlog | ミツエーリンクス
- CSS Snapshot 2020が発行されました | フロントエンドBlog | ミツエーリンクス
- WHATWGとW3Cとの間の覚書の更新について | フロントエンドBlog | ミツエーリンクス
HTML5Experts.jp
- モバイルWebのUIを速くする基本テクニックがわかる──Google I/O 2016 High Performance Web UI | HTML5Experts.jp
- 「Web Componentsが来る!CSS設計はどうなる?」―CSSのエキスパートに聞いてみた! | HTML5Experts.jp
- これからのCSSはmargin禁止!?CSSグリッドレイアウトやコンポーネント指向なCSSについて、矢倉さんに聞いてきた! | HTML5Experts.jp
- CSSでバーティカルリズムを実現しよう!line-height-stepを使ってみる | HTML5Experts.jp
本の虫
- 本の虫: ベンダープレフィクスはクソミソのゲロゲロ
- 本の虫: ブラウザは須く一部のCSS3 rubyを実装すべし
- 本の虫: CSS3のプロパティ、text-combine
技術評論社
- 第586回 waifu2xで画像をきれいに拡大する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- BootstrapでレスポンシブなWebサイト制作:連載|gihyo.jp … 技術評論社
Publickey
- W3CとIDPFが正式統合。Web技術と出版技術を融合する将来に向け、ロードマップ作成に着手 - Publickey
- Webで縦書きなどを実現する「CSS Writing Modes Level 3」、ついにW3Cの「勧告」に - Publickey
- Angular 9正式版リリース。高速かつ軽量なレンダリングエンジン「Ivy」がデフォルトに - Publickey
- Flutter 2.2正式リリース。Null安全がデフォルトに、Windows、macOS、Linux対応をシングルコードで。Google I/O 2021 - Publickey
- ブラウザのしくみ: 最新ウェブブラウザの内部構造 - HTML5 Rocks
- Layout、Paintingとは何か?レンダリングから学ぶWebサイトのパフォーマンス | Dress Cording
- [フロントエンド] ブラウザレンダリングの仕組みを理解して、ブラウザに優しいJavaScriptを書こう - YoheiM .NET
- Webエンジニアが知っておくべきブラウザレンダリングの仕組み | 学生エンジニアのプログラミング
- 2017-09-26のJS: Chrome 62 Beta、Safari 11.0、モダンブラウザのレンダリングパイプライン - JSer.info
- A Short Walkthrough of WebRender 2 — Hacking With Caffeine
- A Quick Overview of Chrome's Rendering Path — Hacking With Caffeine
- Mus and Compositing
- Notes from FOSDEM 2017 · Anjana Sofia Vakil
- LayoutNG - Google ドキュメント
- Building a faster browser: Behind the scenes improvements in Microsoft Edge | Microsoft Edge Web Summit 2017 | Channel 9
- LibDOM | DOM Library
- Cacheability of render critical resources - Analysis - Discuss - HTTP Archive
- How JavaScript works: the rendering engine and tips to optimize its performance
- ブラウザの作り方 - Speaker Deck
- ちいさな Web ブラウザを作ってみよう
HTML
DTD
- Document Type Definition - Wikipedia
- Document type definition - Wikipedia
- SGML実体 - Wikipedia
- SGML entity - Wikipedia
- HTMLのDTDを読んでみよう
- SGML,XML,HTML
- HTMLの基本構造 - 仕様書に見るHTML(1)
- HTML 4 Document Type Definition
- DTDを読む
- DTDの読み方
- IBM Knowledge Center - DTD を読む
- ごくごく簡単なDTDの説明
- Designing document type definition (DTD) in SGML/XML
- 5分でわかる!XML超入門 第01回 何はともあれXMLって何? | サイバーテック
RFC 2854
- RFC 2854 - The 'text/html' Media Type
- RFC 2854
HTML 2.x
- HTML 2.x ‐ 通信用語の基礎知識
- https://tools.ietf.org/rfc/rfc2070.txt
- rfc2070J.html
- jbpe.tripod.com/rfcj/rfc2070.j.sjis.txt
- RFC 2070
- HTML 2.x
- jbpe.tripod.com/rfcj/rfc2070.je.sjis.txt
HTML 2.0
クライアントサイドイメージマップ
- https://tools.ietf.org/rfc/rfc1980.txt
- [RFC1980] HTML 拡張提案: クライアントサイドイメージマップ
- RFC 1980
HTML Tables
- https://tools.ietf.org/rfc/rfc1942.txt
- RFC 1942
Form-based File Upload
- https://tools.ietf.org/rfc/rfc1867.txt
- jbpe.tripod.com/rfcj/rfc1867.je.sjis.txt
- RFC 1867
- HTML 2.0 ‐ 通信用語の基礎知識
- https://tools.ietf.org/rfc/rfc1866.txt
- Hypertext Markup Language - 2.0−目次
- RFC 1866 - The 'text/html' Media Type
- RFC 1866
- www.age.ne.jp/x/sf/HT/HTML/RFC1866J-1_0.TXT
HTML のクワイン
- ドッグさんはTwitterを使っています 「HTML のクワインだと… | 'This page is a truly naked, brutalist html quine.' https://t.co/a45MiEWwGm」 / Twitter
- This page is a truly naked, brutalist html quine.
- ドッグさんはTwitterを使っています 「もちろん JavaScript は使ってない.なるほど,CSS の content を<del>悪用</del>利用するのか.思いつかなかったなぁ」 / Twitter
- HyperText Markup Language - Wikipedia
- HTML - Wikipedia
- 文字参照 - Wikipedia
- GoogleがHTML5構文解析ライブラリGumboをオープンソース化
- google/gumbo-parser
- kovidgoyal/html5-parser: Fast C based HTML 5 parsing for python
- www.asahi-net.or.jp/~jy3K-sm/i_net/books-good.txt
- のけぞる本・一般編 - 文法の部
- 特殊記号のキャラクタ エンティティとBIDIテキスト
- HyperText Markup Language - Wikipedia
- あやしい本
- Another HTML-lint 5
- zserge/webview: Tiny cross-platform webview library for C/C++/Golang
- HTMLの過去・現在・未来 -- ごく簡単なHTMLの説明
- 新しいHTMLタグportal、Portals機能で変わるWebの遷移体験! CDS2019で紹介されたヤフーの実装例 #UIUX - Yahoo! JAPAN Tech Blog
- BlinkとWebKitの違い(大雑把) - saneyuki_s log
- 低レイヤの知識の重要性は今後も変わらない - 小崎資広に聞くLinuxカーネル開発の裏側 - エンジニアHub|若手Webエンジニアのキャリアを考える!
- 電子情報学特論:Chromiumのアーキテクチャを解き明かす - Google スライド
- 本の虫: 続pre要素の改行
- 普通のHTMLの書き方
- HTMLの歴史
- Semantic HTML - Google 検索
- まずはここから!HTMLの書き方【初心者向け】 | TechAcademyマガジン
- Server Side Renderingについて知るべきこと。Server Side Renderingとは何か? それによって何が改善されるのか?(前編) ng-japan 2017 - Publickey
- どうしてHTML5が廃止されたのか | フューチャー技術ブログ
CSS
その他
- CSS | MDN
- CSSの基本-HTMLクイックリファレンス
- クリック・タッチを無効化するCSS「pointer-events: none;」がお手軽で便利 - Yahoo! JAPAN Tech Blog
- その CSS の word-break: break-all は必要ですか - yanok.net
- 文字詰めできるCSSのfont-feature-settingsが凄い! 日本語フォントこそ指定したい自動カーニング - ICS MEDIA
- -ms-high-contrast を CSS ハックに使ってはいけない、ただひとつの理由 / JeffreyFrancesco.org
- 5年ぶりのメジャーアップデートとなる「Bootstrap 4」リリース | OSDN Magazine
- CSSで縦書きのサイトを表彰、「たてよこWebアワード 2017」の受賞作発表 - INTERNET Watch
- CSS3 で縦書き+四分空け組 - にせねこメモ
- 私のゴールは世界中の言語でCSSを使えるようにすること EPUB3で縦書きを実現した、fantasai(エリカ・エテマッド)に聞く
- S.F. Blog:Cascading Style Sheetの記法はなぜあのような形になったのか。
- S.F. Blog:Cascading Style Sheetの記法はなぜあのような形になったのか。(2)
- CSS フレームワークを使いたくない - ジンジャー研究室
- DITA_Festa_2017_DSSSLprint.pdf
- 君は真に理解しているか?z-indexとスタッキングコンテキストの関係 - ICS MEDIA
- IonicがShadow Partsでカスタマイズを改善
- CSS Layout API で Masonry Layout | blog.jxck.io
- Hugo で SCSS から Inline CSS に変換する | Coelacanth's Dream
- won't fix: CSS疑似クラスの:read-onlyと:read-writeが仕様通りに実装されることになった
- ページを高速に表示するには「CSS in JS」と普通のCSSのどちらを使うべきなのか? - GIGAZINE
Acid1
- Acid1 - Wikipedia
- display/box/float/clear test
- CSS1 Test Suite: 5.5.26 clear
- sec5526c.gif (531×501)
- Shiki’s Weblog: ESウェブブラウザ通信 - Acid1テスト
- CSS1 Test Suite
- CSS1 テストスイート
Twitter
if
- Takeshi Kano 鹿野 壮さんはTwitterを使っています 「いま、CSSでif文の議論がされている。 Sassではなく、CSS。 アツい✨ W3C csswg-drafts https://t.co/anqUMZ8mwC 解説 https://t.co/oS31VQ7qDt #CSS https://t.co/xKaMcHsONy」 / Twitter
- [css-variables?] Higher level custom properties that control multiple declarations · Issue #5624 · w3c/csswg-drafts
- The future of CSS: Higher Level Custom Properties to control multiple declarations – Bram.us
- 渋川よしきさんのツイート: "CSS難しいなぁっていつも思うんだけど、例えば、特定の要素を右寄せにするときに、その親側にも手を加える必要がある、というのに気づくのに時間がかかったり、やりたいことの実現のための影響範囲とかのイメージが直感的につかないのが原因だろうな、というのは想像がついている。"
- shinichiro hamajiさんのツイート: "グラフのマッチ/変換を行なう、スクリプト言語の正規表現に毛が生えたくらいの気持ちで、お手軽に色々試せる、なにかが欲しい。GraphQLはなんか冗長な感がありマッチングだけで、LLVMのバックエンドに使ってる.tdは、うーんあれ意味不明、て印象なんだけど、あのへんが良いスタート地点なのかな"
- shinichiro hamajiさんのツイート: "グラフというかDAGでよくて、そういう意味ではCSS selectorが、木に対する awk の左かわ、みたいな感じでスーパーよくできてると思っている。木とDAGの差分考える方が近道なのかな"
- shinichiro hamajiさんのツイート: "世の中には structured grep なんてのもあるし、ああいうやつとか、PerlとかRubyの状態を持ってる if 文とか、現代的なやつだと monod shell とか… UNIX の誰かが言ってた、成功した抽象化は UNIX の行指向テキストファイルである、みたいなのを噛み締める"
- shinichiro hamajiさんのツイート: "あ、ソフトウェアで成功した "唯一の" 抽象化は、ね"
- ドッグさんのツイート: "Mozilla が Firefox の CSS プロパティ適用部分を Rust で書き直して分かったことの要約.実際のセキュリティバグなどの実例付きで分かりやすい | 'Implications of Rewriting a Browser Component in Rust' https://t.co/lstcxb5nI2"
- Implications of Rewriting a Browser Component in Rust - Mozilla Hacks - the Web developer blog
- ドッグさんのツイート: "Rust の静的なメモリ安全性のチェックや整数オーバーフロー,未初期化変数チェック,標準で提供されるより良いデータ構造などで(by design で)セキュリティリスクは減るのは間違いないけど,やはりロジックによるリグレッションバグは入ってしまうという話で,まあそれはそうだろうなぁ"
- ドッグさんのツイート: "データ競合とか並列処理周りのバグがどうだったのかは気になるけど,Mozilla は以前 CSS プロパティ適用の C++ コードを並列にしようとして失敗してるので,そこは C++ との比較はできないのかな"
- Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「Inactive CSS、「なぜその指定が反映されないのか」を教えてくれるWeb Inspectorの新機能。これにかかると自分がいかにてきとうに「とりあえず全部書いとけ」でプロパティを書き連ねてるかがバレてしまう……」 / Twitter
- Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「Webのレイアウトの歴史、HTMLべた書きからtableを経てCSS float、その先のflexboxまで来たけど、いずれも「そこに置かれる物」が基準のレイアウト手法だった。CSS gridは「入れ物」基準でレイアウトを決める。なるほど、そう考えると理解しやすくなる気がする。」 / Twitter
- Piro@C97 4日目南ソ31b/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています: 「グリッドレイアウトのためだけにdivにphysicalな名前を付けなくてもよくなるの、福音だ……べつにできることは変わらなくても、自分がああいう汚いコード書かなくてよくなるのは嬉しい」 / Twitter
- ICS にしはら🦞@z-index完全に理解したさんはTwitterを使っています 「予期せぬ横スクロールが発生した時は、 * { outline: 2px solid red; } のCSSがオススメ。 どの要素がはみ出ているか、視覚的に分かりやすくなります。 #CSS https://t.co/7tmefEDCvx」 / Twitter
- ICS にしはら🦞@z-index完全に理解したさんはTwitterを使っています 「補足として、わざわざCSSに記述して更新しなくても、デベロッパーツールでCSSを追記すればその場で分かります。」 / Twitter
- ドッグさんはTwitterを使っています 「HTML 内の要素に意図したスタイルがついてるかをある程度静的にチェックする方法無いのかな.JS に対する TS みたいにスタイルの制約を書きたい」 / Twitter
- 渋川よしきさんはTwitterを使っています 「Tailwind CSSの使い所、よくわからんなー、と思っていたけど、デザイナーが絵のみを作る、HTMLとCSSはプログラマー、という役割分担だと便利と聞いてなるほど、と思った。CSSまでやってくれるならCSS in JSが便利と。」 / Twitter
- 渋川よしきさんはTwitterを使っています 「Figma to Reactとかも出てきたし、ZeplinとかもCSS出してくれるし、DCCツール直結な世界が数年後の世界な気はするが。」 / Twitter
- Cascading Style Sheets, level 1
- カスケーディングスタイルシート第1水準
- Cascading Style Sheets, level 1
- CSS1 Table of Contents
- 全文翻訳 Cascading Style Sheets, level 1
- REC-CSS1 邦訳
- REC-CSS1 邦訳
- Cascading Style Sheets, level 1(jp)
- LibCSS | CSS Library
- Katana-parser by hackers-painters
- hackers-painters/katana-parser: A CSS parsing library in pure C99
- Shiki’s Weblog: ESウェブブラウザ通信 - escort バージョン 0.3.1 公開
- Shiki’s Weblog: ESウェブブラウザ通信 - CSSの実装のバグを見つけてから直すまでの手順
- CSSパーサを作ってみた(簡易版) - jsdo.it - Share JavaScript, HTML5 and CSS
- CSS文法の基礎 | CSS入門編
- 少し高度なCSS文法: 子孫セレクタ | CSS中級編
- 構文 - CSS | MDN
- @charset - CSS | MDN
- W3C CSS 検証サービス
- CSS Injection (+ Recursive Import) の原理と攻撃手法およびその実装について - Szarny.io
- Multiple-column Layout and column-span in Firefox 71 - Mozilla Hacks - the Web developer blog
- Microsoft、折りたたみ式・2画面デバイス向けの新しいJavaScript/CSS機能を発表 - 窓の杜
CSS Houdini
CSS Paint API
- Houdini Paint API | blog.jxck.io
- CSS Paint APIでJavaScriptからCSS用のグラフィックを動的に生成する
- どんな背景でも自由に描ける! CSS Paint APIの使い方 - ICS MEDIA
CSS Layout API
- なかのん&マジックさんのツイート: "え、DOMでaccsessibleにしちゃうの? / CSS Layout API Level 1 https://t.co/qnN6yFn8IA"
- CSS Layout API Level 1
スライド
- CSSの嫌なところを解決できる(かも)。そう、CSS Houdiniならね 20170825 we are_javascripters@1…
- Webと出版と、CSSの未来の話
- Houdini: Abracadabra CSS // Speaker Deck
- HoudiniによるCSS錬金術 - Speaker Deck
blog
- CSS Houdiniを味見する | Kabuku Developers Blog
- CSS Houdini をつかってキミだけの最強レイアウトを組み立てよう! - めろたんのアレ
- CSS Houdini / CSS Working Groupミーティングに参加しました
- 未来のCSSを先取るHoudiniとは?それは魔法である! - Mercari Engineering Blog
- Houdini、それはCSSの進化を促すプロジェクト - The future starts today
- Houdini – CSS の秘密を解き明かすもの | Web | Google Developers
GitHub
- Home · w3c/css-houdini-drafts Wiki
- w3c/css-houdini-drafts: Mirror of https://hg.css-houdini.org/drafts
Twitter
- Rockridgeさんのツイート: "Houdiniタスクフォースで検討中のCSS関係の仕様について。Worklets/CSS Painting API/CSS Layout API/CSS Typed OM/CSS Properties and Valuesなど。 https://t.co/iAfHIEU9cW"
- DasSur.ma – New ways to make your web app jank with Houdini – An introduction
- CSS/Houdini - MozillaWiki
- CSS-TAG Houdini Editor Drafts
- Houdini Spellbook
- CSSのHoudiniとは何者か - Qiita
事前レンダリング
- 事前レンダリングでウェブページの表示時間を高速化 | 海外SEO情報ブログ
- 事前レンダリングでページ遷移した時の表示速度を爆速にする | TechMemo
- ワードプレスに prerender を設定して事前レンダリングで高速化 | q-Az
- ウェブサイトで事前レンダリングする方法: 小粋空間
- 事前レンダリング
- Web サイトの事前レンダリング
- キャッシュと事前レンダリングの比較
- IBM Knowledge Center
高速化
Mozilla
Project Fission
- なかのん&マジックさんのツイート: "FirefoxもFissionが入ると「コア数が正義」になるので、今、価格を理由にコア数を諦めるのはおすすめできないですね。デモによるとCNNのトップページのロードでcontent processが14個も作られていた。どんだけ今のWebは汚れているんだ……"
- なかのん&マジックさんのツイート: "もちろんドメインごとにcontent processが分けられるという話なので、ニュースサイトを開く度にそれだけのプロセスが生成されるわけではないですよ。"
- なかのん&マジックさんのツイート: "あと、それぞれがフル稼働するわけでもないです。例えば広告の<iframe>とか。ただ、メモリはどうしても消費量爆上がりでしょうね。content process一個あたりの基本使用量は割とがんばって半減してるとはいえ。"
- なかのん&マジックさんのツイート: "詳しくはこの辺にリストアップされてるbugを参照。 https://t.co/0CHir4KNki"
- Project Fission - MozillaWiki
- Quantum - MozillaWiki
- ドキュメント翻訳 | Mozilla Developer Street (modest)
- Mozilla Flux
- Servo parallelism
- 三世代のFirefox ESRを比較する - Mozilla Flux
- Gecko:DisplayListBasedInvalidation - MozillaWiki
- Windows版Firefox 53でQuantumプロジェクトの成果が初披露 - Mozilla Flux
- Mozilla、「Firefox」向け次世代Webエンジン“Quantum”を発表。2017年中にリリース - 窓の杜
- 「Firefox 53」が安定版に ~Project Quantumの成果を初導入、コンパクトテーマを追加 - 窓の杜
- 「Firefox 53」がリリース、次世代ブラウザエンジンQuantumの成果を導入 | OSDN Magazine
- Firefox 55/56では極端に多くのタブを開いた状態でも高速な起動が可能に | スラド IT
- たった15秒で1600以上のタブを起動可能でメモリ使用も劇的に改善、Firefoxの弱点を解消する「Quantum Flow」の効果が明らかに - GIGAZINE
- Rockridgeさんのツイート: "Mozillaの研究によれば、Webページを表示する際の体感パフォーマンスを改善するためには、DOMContentLoadedにフォーカスするのがよい。 / “Test Pilot graduation report: Puls…” https://t.co/iMa4ogTWGw"
- Rockridgeさんのツイート: "Firefox Nightly 58にRetained Display Listsがデフォルト無効で投入される予定。再計算の対象をディスプレイリスト全体ではなく変更された部分に限定して、描画処理を高速化する。参照:… https://t.co/BdKAvlB2wL"
- Mozilla、「Firefox 58」を正式公開 ~OMTPとJSBCの導入でパフォーマンス向上を図る - 窓の杜
- 間もなくリリースの「Firefox 58」はますます高速化--Mozillaのエンジニアが説明 - CNET Japan
- Makoto Kato ︎︎さんのツイート: "Quantum Renderまだ入ってないんだけど、何言ってるのかな?。OMTPは別のお話 https://t.co/10Cdj1AwbL"
- Rockridgeさんのツイート: "さすがに間違いが多すぎる。OMTPは「画像処理の改善」ではないし、Quantum Renderがリリース版で有効化されたことはない。ブックマーク機能の改善はフォルダの管理機能を追加したことなのに、そこに言及がない。 / “「Fi…” https://t.co/TQnvCbS8av"
- Mozilla、「Firefox 58」を正式公開 ~OMTPとJSBCの導入でパフォーマンス向上を図る - 窓の杜
- 「Firefox 58」公開、WebAssemblyやGecko強化によりさらに高速に | OSDN Magazine
- Firefox QuantumのOff Main Thread Painting(OMTP)とRetained Display Listsについて - Mozilla Flux
- 「Firefox」v58.0.2が公開 ~クラッシュ問題などを修正したメンテナンスリリース - 窓の杜
- Rockridgeさんのツイート: "Fx59:MacOS版でもOMTPが有効化された。 / “1422392 - Implement the first round of OMTP for tiled painted layers” https://t.co/ZJCfjnpP4Z"
- Rockridgeさんのツイート: "Fx59:小さなディスプレイリストの構築処理を最適化。 / “1344971 - Optimize various small display list building tasks” https://t.co/wO7DplGV4b"
- Rockridgeさんのツイート: "Fx59:Off Main Thread Painting(OMTP)が有効の際、Painting処理を並列的に行う仕組みが実装された。 / “1425056 - Implement parallel painting with…” https://t.co/w0R8BkajXS"
- Firefox 61でRetained Display Listsが段階的に有効化 - Mozilla Flux
- 「Firefox 61」正式版リリース、タブウォーミングの導入によりタブ切り替え後の応答速度が高速化 - GIGAZINE
Google
- Google Developers Japan: Chrome のレンダリング パイプラインにおけるパフォーマンス向上について
- Google、「Google Chrome」のレンダリングを改善 ~その手法をブログで解説 - 窓の杜
Apple
- Overview of WebKit’s CSS JIT Compiler | WebKit
- Gave a Talk About CSS JIT - Constellation Scorpius
- CSS JIT: Just-in-Time Compiled CSS Selectors in WebKit // Speaker Deck
- WebKit CSS JIT Internals - Constellation Scorpius
- CSS JIT: Optimizing CSS Selector Matching with Just-in-Time Compilation // Speaker Deck
- melancholic afternoon
- x86/x64最適化勉強会7 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
- この1年、Webのパフォーマンスで変わったことは?──HTML5 Conference 2016 | HTML5Experts.jp
- MIT研究者ら、Webページ読み込み時間を34%削減するアルゴリズム発表 | マイナビニュース
- CSSセレクターマッチングのコスト - Unreviewed
- ブラウザエンジン先端観測会 アウトラインメモ | Web Scratch
- 眼力 玉壱號さんのツイート: "@anatoo #lisp で言う所の intern かな。同一の文字列は実体を1個に縮約すると… #browser_gazer"
- パフォーマンスの最適化 | Web Fundamentals - Google Developers
クリティカル レンダリング パス
- クリティカル レンダリング パス | Web Fundamentals - Google Developers
- オブジェクト モデルの構築 | Web | Google Developers
- レンダリング ツリーの構築、レイアウト、ペイント | Web | Google Developers
- レンダリング ブロック CSS | Web | Google Developers
- JavaScript を使用してインタラクティブにする | Web | Google Developers
- クリティカル レンダリング パスの測定 | Web | Google Developers
- クリティカル レンダリング パスのパフォーマンスを分析する | Web | Google Developers
- クリティカル レンダリング パスの最適化 | Web | Google Developers
- PageSpeed ルールおよび推奨事項 | Web | Google Developers
レンダリング パフォーマンス
- レンダリング パフォーマンス | Web | Google Developers
- JavaScript 実行の最適化 | Web | Google Developers
- スタイル計算のスコープと複雑さの軽減 | Web | Google Developers
- 大きく複雑なレイアウトとレイアウト スラッシングの回避 | Web | Google Developers
- ペイントの複雑さの簡略化とペイントエリアの縮小 | Web | Google Developers
- コンポジタ専用プロパティの優先使用、およびレイヤー数の管理 | Web | Google Developers
- 入力ハンドラのデバウンス | Web | Google Developers
Chrome
- chromium/src - Git at Google
- For Developers - The Chromium Projects
- Issue Tracking - The Chromium Projects
- Site Engagement
- Chrome URLs
- Chromeの閲覧履歴を取得する。 - mirandora.commirandora.com
- 原健太朗のページ : Chromium
- (99+)blink-dev - Google グループ
- (99+)platform-architecture-dev - Google グループ
- (99+)Chromium-dev - Google グループ
- Chrome Releases
- 64.0.3282.100 - chromium/src - Git at Google
- LUCI
- Chromium のソースコードの歩き方
- Googleが「GmailなどのAndroidアプリがクラッシュした問題」の反省からWebViewに「セーフモード」を導入 - GIGAZINE
2D
Web
AVIF
- AV1 Still Image File Format (AVIF)
- AOMediaCodec/av1-avif: AV1 Still Image File Format Specification - proposed ISO-BMFF/HEIF derivative
- fg118942さんのツイート: "あとAVIFを試していて気づいたこと libaomは画像が大きいとメモリの消費量が4、5GBくらいいくこともあるので辛い rav1eはlibaomよりメモリの消費量が少なくて、多いときでも150MBくらいしかいかないが画質はlibaomより少しだけ落ちてBPGと同程度"
- fg118942さんのツイート: "libaomは縦横が2の倍数ならどんな画像も変換できるっぽいけどrav1eは正常にデコード出来ないファイルを出力することがある(一般的ではない解像度に対応してない?) あとはやっぱり変換速度が遅くて画像1枚に1分くらいかかったりするのでハードウェアとかで高速に変換できないと厳しい"
- Addy OsmaniさんはTwitterを使っています 「AVIF is an image format that compresses to a smaller size than WebP or JPEG https://t.co/MDDdL8tw8S It's in Chrome 85, behind a flag in Firefox & can be a progressive enhancement! https://t.co/jqADQK6jTd」 / Twitter
- How to Use AVIF: The New Next-Gen Image Compression Format — Lightspeed
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「JPEGやPNGにかわって次の標準になりつつある画像形式 AVIFフォーマットの技術解説。量子化アルゴリズムから符号化まで詳細に説明している。 https://t.co/Cl8NLPeelO」 / Twitter
- Decoding AVIF: Deep dive with cats and imgproxy — Martian Chronicles, Evil Martians’ team blog
JPEG
ISO
Exif
- Exchangeable image file format - Wikipedia
- Exif - Wikipedia
- JEITA / AV電子機器部門
- CIPA、「Exif 2.3」「DCF 2.0」を公開 - デジカメ Watch Watch
- ディジタルスチルカメラ用
- DC-010-2017_E.pdf
- The libexif C EXIF library
- libexif-0.6.21
- ブラウザーと画像のEXIFのお話 - Pastalablog in はてな
- Google Developers Japan: ExifInterface Support Library が登場
- EXIF仕様 解説
- DSAS開発者の部屋:Exif データにアクセスするコードを自作してみる
- けんしのページ - Exifファイルフォーマット -
- Exif 2.3 タグ - Vieas Web
- EXIFの読み方 - cagylogic
- Exifについて
- Exifの回転情報をピクセル情報に反映する - Qiita
- <img>で貼った画像がブラウザによって90度回転して表示される? - Qiita
- 目次
- マルチピクチャフォーマット
- Microsoft Word - DC-006_J_T1.doc
- 第553回 Ubuntuで写真のメタデータを扱う方法:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 画像認識システムの落とし穴となる「ExifのOrientation属性」とは? - GIGAZINE
libjpeg
- libjpeg - Wikipedia
- libjpeg - Wikipedia, the free encyclopedia
- Independent JPEG Group
- libjpeg-8d
- libjpeg-turbo | Main / libjpeg-turbo
- libjpeg-turbo/libjpeg-turbo: Main libjpeg-turbo repository
- libjpeg-turbo download | SourceForge.net
- libjpeg-turbo-1.4.2
- NASM-2.12.01
Guetzli
- Google、より高画質で小サイズを実現するJPEGエンコーダをオープンソースで公開 - PC Watch
- google/guetzli: Perceptual JPEG encoder
- JPEGを「libjpeg」よりも20~30%小さく ~Google、新エンコーダー「Guetzli」を発表 - 窓の杜
- Google、JPEGを35%縮小する新エンコーダ「Guetzli」発表。画質は同じでファイルサイズ削減 - Engadget 日本版
- JPEG エンコーダ Guetzli 使用上の注意 (前編) - Qiita
- Google、ファイルサイズを35%削減できるという新JPEGエンコーダー「Guetzli」を公開 | OSDN Magazine
- GoogleがJPEGエンコーダー「Guetzli」をオープンソースで公開 - GIGAZINE
Lepton
- DropboxがJPEG画像をロスレス圧縮できるツールを公開、平均22%サイズを縮小できると主張 | スラド オープンソース
- 米Dropbox、JPEGファイルをロスレス圧縮できる画像圧縮アルゴリズム「Lepton」をオープンソースで公開 | OSDN Magazine
- dropbox/lepton: Lepton is a tool and file format for losslessly compressing JPEGs by an average of 22%.
Twitter
- 渋川よしきさんのツイート: "libjpeg-turbo氏〜 実際ベンチマーク取ってみると、画像の読み込みはPNGよりもJPEGの方が圧倒的に早いんだよな。 https://t.co/SgEIKuevyu"
- 渋川よしきさんのツイート: "不可逆ではあるけど、品質100にしたJPEGのほうが、PNGとかよりも読み込み早くてサイズ小さい。"
- 渋川よしきさんのツイート: "libjpeg-turboのハフマン符号量子化部分だけ取り出せば、SSE最適化された復元コードが利用できるのでは。"
- Kazuho Okuさんのツイート: "JPEGファイルを可逆圧縮!モデルをうまく作るようにすればこんなに縮むのか / “Lepton image compression: saving 22% losslessly from images at 15MB/s | D…” https://t.co/OtNsJNUpSE"
- Lepton image compression: saving 22% losslessly from images at 15MB/s | Dropbox Tech Blog
- Kazuho Okuさんのツイート: ".@methane はい。leptonは可逆な画像圧縮アルゴリズムで、JPEGデータに適用した場合、22%ほど小さくなる、と書いてありますね"
- Kazuho Okuさんのツイート: "JPEGのDCT以降みて、計算コストかけていいならもっと高度な圧縮できそうだなって思った人は多いと思う(僕もその一人)けど、22%も縮むと予測してた人は少なそうだと思ってる"
- 七誌さんのツイート: "球面から切り出した平面に球面調和関数を適用すると離散コサイン変換になるんじゃないかと思ったら、そのものズバリの講義資料があった!良い。 【PDF】 https://t.co/OQFCxePwhE"
- Rockridgeさんのツイート: "Fx50:PNG/JPEG画像のデコーダもStreamingLexerベースのものに切り替えられた。参照:https://t.co/3TYhswQ4q1 / “1282566 – Use StreamingLexer in th…” https://t.co/s32hrO6lJF"
- 七誌さんのツイート: "メタデータだけいじって回転させたJPEG画像は、HTMLにimg srcで埋め込まれていてもブラウザが回転して表示してくれないっぽい。画像単独だと回転して表示される。"
- dynamis (でゅなみす@もじら)さんのツイート: "JPEGのデコードをまるっとGPU側に投げることでGPU I/Oを70%削減、CPUデコード処理時間を30%削減させた新しいJPEGデコーダ実装 https://t.co/F7zbShPN1O とそのLinux Confでの講演 https://t.co/b4ZePbvqRS"
- Fadisさんのツイート: "Chromeさん、 V4L2から使えるハードウェアjpegデコーダがある場合はWebページに表示するjpeg画像をハードウェアでデコードするのか…"
- Fadisさんのツイート: "で、今回の変更でjpegのエンコードもハードウェアで出来るようになりました、と https://t.co/axF3BdLNUU"
- Chrome Working On JPEG Encode Accelerator With VA-API/V4L2 Support - Phoronix
- JPEGのプライバシーを守る新規格、その狙いは? ~専門家に聞いてきた~ | コラム | マイナビニュース
- JPEGのプライバシーを守る新規格、その狙いは? ~専門家に聞いてきた~ (11) JPEG新規格の策定、企業の参加は? | マイナビニュース
- 【連載】JPEGはなぜここまで普及したのか? ~専門家に聞いてきた~ | マイナビニュース
- 高速なJPEG圧縮ライブラリ「Libjpeg-Turbo 1.5」リリース | OSDN Magazine
- mozilla/mozjpeg: Improved JPEG encoder.
- 週刊 JPEGデコーダをつくる #2 デジタル画像の基礎 - Qiita
- 画像圧縮でSEO「容量7割減で画質そのまま」 ページスピード向上を実現する「SmartJPEG」とは? - INTERNET Watch
- OPTPiX Cloud SmartJPEG (スマートジェイペグ) | ウェブテクノロジ
- GuetzliとMozjpegは、どっちが高性能か。 - Qiita
- プログレッシブJPEGとHTTP Rangeリクエストで遅延ロードを改善する
- JPEG画像の「中身」は一体どうなっているのか? - GIGAZINE
PNG
APNG
- Animated Portable Network Graphics - Wikipedia
- APNG - Wikipedia
- 「アニメーションPNG(APNG)」がGoogle ChromeのベースであるChromiumでサポート開始 - GIGAZINE
- ChromiumでAPNG(アニメーションPNG)の表示をサポート -INTERNET Watch
- 「Google Chrome 59」が正式版に 〜ヘッドレスモード、APNG、フルページ撮影に対応 - 窓の杜
- Twitterが動画ファイル形式「APNG」のサポートを停止、てんかん患者の発作を引き起こすため - GIGAZINE
- libpng - Wikipedia
- libpng - Wikipedia, the free encyclopedia
- libpng Home Page
- libpng-1.6.21
- Rockridgeさんのツイート: "Fx51:搭載しているlibpngのSSE2命令最適化を有効にし、PNG画像の処理を高速化した。 / “1276127 – Enable SSE optimization in the in-tree libpng” https://t.co/VuueMHhifr"
- OS作れないマンさんのツイート: "Windows 10 のフォトっていう機能がデフォルトの画像ビューアになってるわけだけど、背景色が黒な所為でモノクロで透過背景のPNGが全く見えなくなる。使い悪すぎでは?"
- OS作れないマンさんのツイート: "透過PNGははてなブログでも使い勝手が悪い(画像アップロード後の画像一覧のサムネイル画面で背景が黒くなってしまう)ので、白背景に戻そう。なんか負けた気分。"
- Rockridgeさんのツイート: "Fx55:PNG形式のファイルについて幅チェックを行い、膨大なメモリを確保しようとする問題が起きないようにした。限度に抵触する画像は表示されないようだ。 / “1368407 - Small PNG image hangs br…” https://t.co/IbfU8aSSY2"
GIF
- Graphics Interchange Format - Wikipedia
- GIF - Wikipedia, the free encyclopedia
- GIFアニメーション - Wikipedia
- giflibのインストール: マルチメディアファイルフォーマット
- Introduction to GIFLIB
- The GIFLIB project
- GIFLIB download | SourceForge.net
- giflib-5.1.4
- Rockridgeさんのツイート: "Fx50:GIF画像のデコーダがStreamingLexerベースのものにリファクタリングされた。 / “1204392 – Use StreamingLexer in the GIF decoder” https://t.co/Yy1OD9jBZK"
- Rockridgeさんのツイート: "Fx51:Windows版でアニメーションGIFを対象にコンテキストメニューから「画像をコピー」すると、アニメーション状態を保ったままクリップボードにコピーできるようになった。 / “664717 – "copy image" …” https://t.co/m875T7b64u"
WebP
Twitter
- Intent To Shipさんのツイート: "Gecko: Intent to implement and ship: WebP image support https://t.co/0xnMDKiirW"
- なかのん&マジックさんのツイート: "web-compatでの実装とのことだけど、実際問題、Jpegに比べてなにかうまみはあるんだろうか……"
- Rockridgeさんのツイート: "Fx65:WebP画像フォーマットの表示をサポート。デフォルト無効。 / “1294490 – (WebP) Implement experimental WebP image support” https://t.co/RDRQkbp0J0"
- Makoto Kato ︎︎さんのツイート: "WebPをサポートしないとWebCompat的な問題が発生してるのは、https://t.co/3E3OedCr68 の See Alsoのところに貼られているhttps://t.co/Kw9PJXX0TT の issueリンク集を見ればわかる。H264と一緒でどうにもならないことは多々ある"
- 1294490 - (WebP) Implement WebP image support
- なかのん&マジックさんのツイート: "「Chromeで動けば良いんでしょ?」の実例だ。ってか、Safariすら捨ててるのか? / "WebP 画像しか配信せず正しく表示されないサイトの数が増え続けていることから、Firefox の開発者は態度を変えざるを得ませんでした" https://t.co/yZNj0whV3s"
- WebP 画像対応が追加されました | Firefox サイト互換性情報
- なかのん&マジックさんのツイート: "WebPのサポート表明のメール投稿に対しては、やっぱり、早々に「セキュリティ大丈夫なん?」ってリプライ付いてたなー。"
- エヌユルさんのツイート: "WebPは実際可逆方式においてPNGよりは効率が良いので普及するのは喜ばしいことだとは思う / “webp-image-support-has-been-added” https://t.co/0i5VERUgyz"
- なかのん&マジックさんのツイート: "昨今のWebアプリ事情を考えると個人的には好ましいと思う。でも、それはメンテしていないから言えることかもしれない(実際、よく知らない)。"
- Rockridgeさんのツイート: "Fx65:WebP画像フォーマットの表示がデフォルト有効化。 / “1503653 - Enable WebP image support by default” https://t.co/CpAxnK1muw"
- FadisさんはTwitterを使っています 「Googleが同社の公開gitリポジトリにlibwebp2なるライブラリを上げているという話。置かれた説明によると、WebP2はWebPの後継となる新しい画像フォーマットで、よりロスの少ない圧縮と、HDR10のサポート、アニメーションのサポート等が実験中の新機能として挙げられている https://t.co/Z2N9brff1U」 / Twitter
- Google Is Already Experimenting With WebP2 As Successor To WebP Image Format - Phoronix
- Masaki HaraさんはTwitterを使っています 「WebPには既にアニメーション機能ありますが……」 / Twitter
- Masaki HaraさんはTwitterを使っています 「原文見るとproperly supportとあるから、2ではもっとちゃんとサポートするぞということなのか」 / Twitter
- WebP - Wikipedia
- WebP - Wikipedia
- 本の虫: Dark_Shikari、WebPについて語る
- はじめてのにき(2017-06-19)
- WebP – Webを速くするためにGoogleがやっていること Make the Web Faster 01 – | HTML5Experts.jp
- Googleが画像フォーマット「WebP」向けライブラリ「libwebp 1.0.0」をリリース | OSDN Magazine
- A new image format for the Web | WebP | Google Developers
- webmproject/libwebp: Mirror only. Please do not send pull requests.
- 「Windows 10 RS5」で“WebP”がサポート、「Microsoft Edge」などで表示可能に - 窓の杜
- WindowsでWebP画像を作る - まだ中学生のブログ
- WindowsでアニメーションWebPを作成する - まだ中学生のブログ
- ffmpeg で アニメーションWebP(Animated WebP)を作る | ニコラボ
- WebP Lossless はちゃんと Lossless してます - Qiita
SVG
Twitter
- Rockridgeさんのツイート: "Fx49:display:noneが設定された要素でSVGアニメーションの処理が行われ、CPUリソースを消費する問題が解消された。Kickstarter閲覧時のパフォーマンスなどに影響するという。 / “1209405 – Hi…” https://t.co/hpISOE5lZx"
- Rockridgeさんのツイート: "Fx54:SVGのimage要素内の画像につきデコード処理の同期化を避けることで、Googleスライドのパフォーマンスが改善された。 / “1341881 - Slow synchronous image decoding in…” https://t.co/zE5hAEBzPD"
- Rockridgeさんのツイート: "Fx55:SVG要素のtransform-boxプロパティがデフォルト有効化された。 / “1208550 - Ship support for the 'transform-box' property” https://t.co/ONto407jkh"
- Rockridgeさんのツイート: "Fx55:ツールバーアイコンのSVG形式への移行が完了。アドオンの互換性に少なからず影響が出そうだ。 / “1347543 - Change Toolbar Icons from PNG to SVG” https://t.co/zPb1TJm06B"
- Rockridgeさんのツイート: "Firefoxのツールバーアイコンは全面的にPNG形式からSVG形式に移行する見込み。 / “1347543 - Change Toolbar Icons from PNG to SVG” https://t.co/IBqRTIplCn"
- 渋川よしきさんのツイート: "Angularで特定の画像だけSVG Iconでうまく表示されないな、と思っていろいろ画像ファイルを見ていたのだけど、def/useを使っている画像ファイルはダメだということがわかったので、泣きながら手でpathを展開している。"
- 渋川よしきさんのツイート: "今ウェブのコードを書いているのだけど、SVG画像がファイルによってサイズが違っていて、<g transform>で変換をかけていたのだけど、行列による座標変換とか行列の掛け算とか、勉強しててよかったなって思いました。"
- ドッグさんはTwitterを使っています 「SVG を一旦 SVG のサブセット MicroSVG に変換してから描画することで,描画バックエンドが実装しやすいようになってるのか | 'RazrFalcon/resvg: An SVG rendering library.' https://t.co/e4aB7Zxsxx」 / Twitter
- RazrFalcon/resvg: An SVG rendering library.
- memononen/nanosvg
- Scalable Vector Graphics - Wikipedia
- Scalable Vector Graphics - Wikipedia, the free encyclopedia
- ブラウザに圧縮SVG (.svgz) を表示する | Inkscape@JP
- SVG 1.1 仕様 (第2版) 日本語訳
- Filter Effects Module Level 1(日本語訳)
- Changes from SVG 1.1 — SVG 2 (日本語訳)
- ECMAScript 言語束縛 – SVG 1.1 (第2版)
- user-scalable=noとかSVGのアクセシビリティーとか - 水底の血
- 本の虫: XNGという新しいアニメーション画像フォーマット
- svg要素の基本的な使い方まとめ
- 神奈川工科大学 情報メディア学科のSVG教材に無限にツッコミが入れられそうな件 - 水底の血
- SVGを使用して鮮明なロゴへ変身 | フロントエンドBlog | ミツエーリンクス
- アクセシビリティーサポート — SVG 2(日本語訳)
- Firefox 51・Chrome 56リリース、Safari 10.1発表、Windows 10 Creator’s UpdateのEdge、WebKitほか──2017年1月のブラウザ関連ニュース | HTML5Experts.jp
- 本の虫: SVGの起源
- 2015年のSVGについてと、来年2016年のSVGについて - 週刊SVG
- SVGをcss/jsで操作するときに知っておきたいこと - Qiita
- Inkscape でレイヤーを読み込める SVG をイラレから書き出す - にせねこメモ
- SVGでフレームアニメーション? - にせねこメモ
- SVGでフレームアニメーション w/ Javascript - にせねこメモ
- SVG ファイルを GUI ツールで最適化する - EagleLand
- W3C Strategic Highlights: Strengthening the Core of the Web (SVG) | W3C Blog
- svg要素の基本的な使い方まとめ
- SVG に JavaScript を埋め込む方法 - Qiita
- Inkscapeを使ってSVGからOGPイメージを半自動生成する | κeenのHappy Hacκing Blog
- Inkscapeで生成するOGP画像の禁則処理をちょっとだけ頑張る | κeenのHappy Hacκing Blog
- 絵文字をファビコンとして表示する簡単な方法
Canvas
- canvas要素 - Wikipedia
- Canvas element - Wikipedia, the free encyclopedia
- NanoVG で HTML5 Canvas の力を C/C++ にも - Qiita
- NanoVG を CPU で描画する - Qiita
- NanoVG のソースコードを読んでみた - lriki’s blog
- memononen/nanovg
- HTML5 CanvasとWebGLの高解像度対応はどこまで行うべきか - ICS MEDIA
- canvas要素の基本的な使い方まとめ
- Fadisさんのツイート: "Chrome66がリリースされた。Chrome66で追加されるtransferFromImageBitmapはcanvasの内容を指定したImageBitmapで置き換える。この時画像はcopyではなくmoveされ、不必要なコピーが回避される。他にもClipboardの非同期読み書きのサポート等が追加される https://t.co/l141gC5QDB"
- Googleドキュメントのレンダリング方式が変更へ、どんな影響があるのか? - GIGAZINE
- Kazuho OkuさんはTwitterを使っています 「WYSIWYGな文書作成ツールという点ではCanvasで問題ないと思うけど、他社の検索エンジンにどうやって文書を示すんだろう? そこをやらないと独禁法で刺されそう」 / Twitter
- 高梨陣平さんはTwitterを使っています 「GoogleがDocsのレンダリングをHTMLからCanvasへ移行すると発表。異プラットフォーム間の互換性向上を目的に。 これってHTML5の敗北では?HTML依存の機能拡張が動かなくなるから注意だそうだけど、他にもっと問題がないかな」 / Twitter
- SlashdotさんはTwitterを使っています 「Google Says Docs Will Now Use Canvas Based Rendering, Warns Impact on Some Chrome Extensions https://t.co/5QUW8MJMeg」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「機械可読性含むアクセシビリティの話だな」 / Twitter
- なかざん𝄇さんはTwitterを使っています 「React Native for WebにはReact製SPAであろうとする力学がある程度働くので、どうやってもDOMベースになっちゃうのが痛いところなんだよな。 DOM互換を無視してReact Native for Canvasみたいなやつができると幅が広がりそう。」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@kazuho FlutterがCanvasでの描画とDOMでの描画両方をサポートしているそうなので、検索エンジン向けにはDOMを出力すれば問題ないのではないかと」 / Twitter
Favicon
アイコン
- hiyohiyoさんはTwitterを使っています: 「通知領域用のアイコンを HiDPI 対応に変更したのですが、48x48 フルカラーアイコンが優先的に選択されるようで、16x16 とか 32x32 のアイコンが選択されず、48x48 を縮小表示されることが判明・・・。 DPI 設定に応じて適切なサイズのアイコンが選定されるというのは思い込みでした。」 / Twitter
- hiyohiyoさんはTwitterを使っています: 「となると、1種類の画像しか入っていないアイコンを作ってソフト側から DPI 設定に応じて設定するのが最適なんだなぁ。 昨日の作業は、ほとんど無意味!! 事前確認重要!」 / Twitter
- hiyohiyoさんはTwitterを使っています: 「LoadImageを使えば複数のサイズが入った .ico から指定サイズのアイコンハンドルを取得できることがわかりました。 LoadImageW(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_TEMP_00), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); 上の16の部分を32とか、48にすればOK」 / Twitter
- hiyohiyoさんはTwitterを使っています: 「ただ、動的なDPI変更やDPI設定の異なるディスプレイが複数接続された環境ではどうすることもできない・・・。 現実的には、48x48の高解像度アイコンをOS側で縮小表示してもらうのが良さそう。縮小アルゴリズムがもうちょっといい感じだったらなぁ・・・。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Vista以降のアイコン(複数サイズ同梱)は、256pxだけはpng格納、というハイブリッド形式を必要とするのだが、今だにVisualStudioで作成・編集できない様子。(表示のみ可能)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "2019年にもなって、バージョン定義とリソース分離に手間取ったり。 (1ヵ所のバージョン定義で、ソースコード用バージョンとexeリソース情報の両方に反映する形)"
- Favicon - Wikipedia
- Favicon - Wikipedia
- ICO (ファイルフォーマット) - Wikipedia
- ICO (file format) - Wikipedia
- Rockridgeさんのツイート: "Fx55:ファビコンがfavicons.sqliteという独立したデータベースに保存されるようになった。履歴・ブックマーク絡みのファイルI/Oについて、パフォーマンスが改善されるようだ。 / “977177 - move fav…” https://t.co/ExBWeX7Kmv"
- Rockridgeさんのツイート: "Fx56:Firefox 43以降512x512のサイズのファビコンが表示されなくなっていた後退バグを修正し、さらに768x768のような大きなファビコンもサポート。参照:https://t.co/5hbDBYV5s2 / “1…” https://t.co/3CnrOkx9K8"
- Rockridgeさんのツイート: "Fx60:一部のWebサイトで高DPIファビコンを取得できない問題を修正。 / “1449523 - ContentLinkHandler only picks perfectly sized icons” https://t.co/lor9oON67U"
- Rockridgeさんのツイート: "Fx60:ファビコンデータベースのVACUUM処理を漸進的に行うようにした。 / “1346554 - Use PRAGMA incremental_vacuum on favicons.sqlite” https://t.co/m8eAD78dDI"
- 【レビュー】“Microsoft Azure”などで利用されているシンボルやアイコンを集めたイメージセット - 窓の杜
- Oracle、クラウドのシステム環境図作成などに役立つアイコン素材を無償提供 - 窓の杜
- Rockridgeさんのツイート: "Fx63:ファビコンをchromeプロセスではなくcontentプロセスに読み込むことで、読み込みが二重になるのを防ぐことができるという。参照:https://t.co/uLapuzu4MH / “Favicons are no…” https://t.co/UVl4JwfpTI"
- Rockridgeさんのツイート: "Fx63:ファビコンの最大サイズを256pxから192pxに変更した。データベースの容量が圧縮される。 / “1475500 - Reduce maximum favicon size from 256 to 192px” https://t.co/WwBF3gperx"
- Rockridgeさんのツイート: "Fx62:履歴消去後もファビコン情報が残ってしまう後退バグを修正。 / “1468968 - Firefox retains favicons with their respective urls after supposedl…” https://t.co/spJPfL8cMc"
- ブラウザのタブにある「Favicon(ファビコン)」にウェブカメラの映像を映す - GIGAZINE
- SVGやアイコンフォントが揃ってる!太っ腹なライセンスで無料利用できる高品質なアイコン素材 -Themify Icons | コリス
- 全2,000+種類のアイコン素材、AI, PSD, Sketch, SVGが揃い、商用利用も無料の太っ腹! -Thousands Icons | コリス
- IcoMoonを使ってSVGからアイコンフォントを作る方法 | mediba Creator × Engineer Blog
- 2852 free SVG and PNG icons for your games or apps | Game-icons.net
- 最新の手法でブラウザのタブに表示される「Favicon(ファビコン)」を作成するとこうなる - GIGAZINE
- 画像最適化戦略 PNG/JPEG 編 | blog.jxck.io
- 画像最適化戦略 Picture 編 | blog.jxck.io
- 画像最適化戦略 WebP 編 | blog.jxck.io
- アニメーション画像の歴史 APNG-WebP戦争 | 味わい尽くせ!
- 画像最適化戦略 Lazy Loading 編 | blog.jxck.io
BMP
- Windows bitmap - Wikipedia
- BMP file format - Wikipedia
- なかのん&マジックさんのツイート: "Win + Shift + SをHiDPI環境で使って、メールとかに貼り付けるとでかい画像が貼り付いてしまうの、ちょっと考え物だけど、誰がどうすべき問題なのか全く想像つかん。"
- vyv03354さんのツイート: "すべてのアプリがBMPヘッダーのbiXPelsPerMeterとbiYPelsPerMeterをちゃんと見ていればよかった(完全に手遅れ)… "
- なかのん&マジックさんのツイート: "あー、そんな情報あるんですね。クリップボードからの貼り付けでGeckoに来てるか調べてみないとですね。… "
Motion JPEG
- Motion JPEG - Wikipedia
- Motion JPEG - Wikipedia
JPEG 2000
ISO
OpenJPEG
- OpenJPEG
- uclouvain/openjpeg: Official repository of the OpenJPEG project
- OpenJPEG - Wikipedia
- JPEG 2000 - Wikipedia
- JPEG 2000 - Wikipedia
JPEG XR
- JPEG XR - Wikipedia
- JPEG XR - Wikipedia
JPEG XS
- JPEG XSコーデックメモ - Qiita
BPG
- Better Portable Graphics - Wikipedia
- Better Portable Graphics - Wikipedia
- BPG Image format | Hacker News
HEIF
- High Efficiency Image File Format - Wikipedia
- HEIF Technical Information - High Efficiency Image File Format
- HEIF Comparison - High Efficiency Image File Format
- HEIF - High Efficiency Image File Format
- Appleが新OSで初めてサポートするHEIF、FLAC、Opusなど | スラド アップル
- 【解説】iPhoneのAV機能は「iOS 11」でこう変わる (1/3) - PHILE WEB
- “RS4”の最新プレビュー、画像形式“HEIF”をサポート ~Build 17123が公開 - 窓の杜
- Masaru Iritaniさんのツイート: "#WindowsInsiders に向けフォト アプリに HEIF 形式対応が追加されました。寡聞にして知らず「へいふ」と読んでしまったのですが、どうやら「ひーふ」と読むようで、iOS や macOS で使われる画像形式のようですね。Skip Ahead ビルド 17623 も HEIF 形式に対応しています。 https://t.co/QyhupCbXU9… https://t.co/WOt0AyOW9F"
- Windows 10が「HEIF」フォーマットの画像表示に対応 - PC Watch
DNG
- Digital Negative - Wikipedia
- Digital Negative - Wikipedia
RAW
- RAW現像に対応するオープンソースの写真管理ツール「Darktable 2.6」リリース | OSDN Magazine
- 「digiKam 6.0」リリース、動画ファイルのサポートを強化 | OSDN Magazine
- ゼロから作るRAW現像 - まとめページ - Moiz's journal
ImageMagick
- 渋川よしきさんのツイート: "Goで大量の画像の変換とかサムネイルとか。速度とメモリ厳しくない?"
- さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ
- 「さようなら ImageMagick」の考察 - Qiita
- malaさんのツイート: "https://t.co/oE46g9nsQO コメントした。Pillowは必要に応じて外部コマンドを呼び出すのでフォーマット制限しないとImageMagickと大差ない。Pillow使ってるscipyも影響あり。GS脆弱性が厄介なのは利用ライブラリ側で脆弱性として認知されていない点 https://t.co/9LGa6WR0tn https://t.co/pmny41NJVR"
- Search · check_call OR popen path:src
- usaさんのツイート: "ぼくはポジショントークとして「ImageMagickやめた方が楽だよ?」とは言いますけど、お前らが「あ、これ○○でできるじゃん!」って思って作ったものはだいたいできてない、ということは本音として言っておきます。"
blog
- 画像の価値は上がったのに、技術は10年前から変わっていない ─ ImageFluxで描く画像変換の世界(前編) - pixiv inside
- 5年後には画像フォーマットなんて誰も気にしなくなる ─ ImageFluxで描く画像変換の世界(後編) - pixiv inside
News
- iOS 10ではRAW撮影が可能に | スラド モバイル
- 最も劣化が少なくファイルサイズを小さくできる画像形式が判明 - GIGAZINE
- 第474回 UbuntuとdarktableではじめるRAW現像入門:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- JPEGも型番の時代に突入!?JPEG XTやXRに加え、新規格JPEG XSやJPEG PLENOが標準化に - PC Watch
- 圧縮効率60%向上を目指す新規格「JPEG-XL」策定にむけ技術公募へ - PC Watch
- reg-cli - 二つの画像で異なる部分を抽出 MOONGIFT
- データ圧縮のパイオニアであるジェイコブ・ジヴ氏の功績とその半生とは? - GIGAZINE
POSTD
- 500バイトの画像:Haikuのベクターアイコン形式 – 前編 | コンピュータサイエンス | POSTD
- 500バイトの画像:Haikuのベクターアイコン形式 – 後編 | コンピュータサイエンス | POSTD
- 一から学ぶベジェ曲線 | プログラミング | POSTD
Wikipedia
- Digital Negative - Wikipedia
- FFTPACK - Wikipedia
- ハイダイナミックレンジイメージ - Wikipedia
- ハイダイナミックレンジ合成 - Wikipedia
- OpenEXR - Wikipedia
- フロイド-スタインバーグ・ディザリング - Wikipedia
GitHub
- anypixel.js
- googlecreativelab/anypixel: A web-friendly way for anyone to build unusual displays
- SolidStateGroup/rio: An open source library allowing you to create an internet connected LED wall
- LC's Finder
- lc-soft/LC-Finder: A simple pciture resource manager, support tag search and thumbnail preview.
- RecursiveBF by ufoym
- ufoym/RecursiveBF: A lightweight C++ library for recursive bilateral filtering.
- VipsWiki
- jcupitt/libvips: A fast image processing library with low memory needs.
- miloyip/line: 2D Line Drawing Samples in C
Qiita
- RGB値の合計が一定の画像変換 - Qiita
- グレースケールで消える画像に変換 - Qiita
- 機械学習のためのOpenCV入門 - Qiita
- グレースケール画像のうんちく - Qiita
- RGB ビット深度のうんちく (前編) 〜 前提知識 - Qiita
- RGB ビット深度のうんちく (中編) 〜 実数型と整数型の変換 - Qiita
- Kazuho Okuさんのツイート: "HTML で #ccc と等しいのは #c0c0c0 か、それとも #cccccc か、というのはいい問題なのかも… "
- Takuo Kihiraさんのツイート: "RGBビット深度、HTMLの世界だとカラーコード→浮動小数点の処理で気になることが多いですね。#C8F0E3みたいな奴を、0xC8/256とか雑に書いてあるコード、結構ありますよね。"
Twitter
- Rockridgeさんのツイート: "Fx57:Firefox ScreenshotsでWebページ全体または表示領域全体を撮影した場合、画像の保存形式はPNGではなくJPEGになる。PNGだとサイトによっては画像サイズが大きくなりすぎるのだという。 / “1402…” https://t.co/2dI2Damohp"
- 一ノ瀬 いろはさんのツイート: "Firefox screenshots , HTML要素単位での選択が出来るのかー。気づかなかった。"
- 渋川よしきさんのツイート: "複数のイメージを.icoに書き込めるようにPR出した #golang #windows https://t.co/LVUWVp8JcO"
- 技術書典4 け-51 x86-64-128さんのツイート: "Illustratorのアセットの書き出しを使うと,1枚のページに書いた図を複数に分割して個々の画像ファイルとして書き出せるので捗る.PDFとしても書き出せるからTeXと相性が良い."
- いもすさんのツイート: "超解像技術が理想の形になりつつある。waifu2xは、Photoshopで手で高解像度化したときに輪郭が丸くなる現象からあまり逃れられていなかったけど、A.I.Gigapixelは理想の超解像ができている。写真も二次元絵も問題なく超解像できているあたり汎用的な超解像が可能であることを示していて期待が高まる。… https://t.co/elzWpAVcNq"
- mr-csce(llp_qlv)さんのツイート: "エイリアシング、なんで折り返すとかいうのって思ってたけど、周波数領域で考えたらほんとにまんま、まるで折り返したみたいになってて、めっちゃ直球な表現だったんだなって思った。"
- FadisさんはTwitterを使っています: 「CPUで展開しなければならない画像フォーマットは貴重なCPUを浪費する上にCPU-GPU間をでかいデータが流れる事になるから、大量のテクスチャを読まなければならないなら圧縮率はイマイチでもASTCをそのまま保存しておくのがオススメ」 / Twitter
- Tsukasa #01 [要出典]さんはTwitterを使っています: 「へー、JPEG-XL、JPEG のデータをロスレスどころか byte-to-byte で保ちながら圧縮率を上げる、今でいう Lepton 的な立ち位置の圧縮もできるのか。 https://t.co/Lu2reSpG6f」 / Twitter
- https://google.github.io/brunsli/
- Tsukasa #01 [要出典]さんはTwitterを使っています: 「普通の JPEG に比べて 22% 圧縮、というのも実際 Lepton に近い数値。」 / Twitter
- nikqさんはTwitterを使っています 「つーか今まで、画像codecでまっとうなコードに出会ったことがないんだが、どうしてなんだ?? libtiffはexploit大杉、libjpegは関数ポインタ好きすぎ、libpngはifdef多すぎ、JPEGXRは逆ポーランドすぎ、JPEGXLはGoogle帝国すぎ…」 / Twitter
- nikqさんはTwitterを使っています 「Google帝国の人は、世界には名もなきプラットフォームとか#ifdefで分割しきれない謎のコンフィギュレーションのCPUとかがあるってことをもっと知ってください!」 / Twitter
- ノナプルナイン@デジゲー博未払い落ちさんはTwitterを使っています 「そう。ツイートしようと思って忘れてた。 pngからjpgを保存するときの容量、なんとGIMPの90%よりもフォトショの75%のほうが重いんですよ。 フォトショ使いのほうが画質にうるさいから、フォトショのほうが見かけの数字よりも圧縮率が低いということ? それとも、jpgの圧縮にも技術の差とかあるの?」 / Twitter
- yohさんはTwitterを使っています 「codec != encoder implementation なんだけど そう理解されるのはレアなんだよねぇ そもそもquality(Q)なんてのも メジャー実装では似たような値を用意してるってだけで どこにも(normativeには)規程されないというか」 / Twitter
- 島鉄雄さんはTwitterを使っています 「ベジェとかスプラインの親玉のNURBSには、ノットベクトル(ウェイト)が有るから、正確な円(球)が書けるんだよね。 逆に言うとノットベクトルが無いと、円は近似にしかならない。」 / Twitter
- The FreeImage Project
- YCbCr ‐ 通信用語の基礎知識
- Digital Negative(DNG)、Adobe DNG Converter | Adobe Photoshop CC
- FFTPACK
- Graphviz | Graphviz - Graph Visualization Software
- 画像のノイズを落としたり容量を小さくしたりするにはどのようなコードを書く必要があるのか? - GIGAZINE
- Compressing and enhancing hand-written notes
- 第873回:bokeh とは - ケータイ Watch
- κeenさんはTwitterを使っています 「@ncaq フォトショップのファイルのフォーマットとブラシのファイルフォーマットは別で、ブラシの方は公開されてないようでした。」 / Twitter
- Adobe Photoshop File Formats Specification
フォント
その他
TypeDrawers
- Relationship between left side bearing and contour coordinates (TTX/FontTools) — TypeDrawers
- Problem in Chrome? — TypeDrawers
- Typeface that lets you try different sets — TypeDrawers
- Fontlab 5: How to 'Update [kern] feature' in all open fonts? — TypeDrawers
- Usefulness for the below type of fancy fonts and hybrid glyphs — TypeDrawers
- A rationale for this replacement of /gamma? — TypeDrawers
- How do you test your locl features? — TypeDrawers
- New: DTL OTMaster 7.9 — TypeDrawers
- Any good auto kerning tools? — TypeDrawers
- Understanding the 'name' table. — TypeDrawers
- What determines the character range displayed in Windows' Character Map utility? — TypeDrawers
- Making Windows Fonts Do Something They Shouldn't — TypeDrawers
窓の杜
- 大日本印刷、明治からの歴史がある「秀英体」ライセンスをMonotypeへ提供 - ニュース ―MdN Design Interactive edition― - 窓の杜
- モリサワ、「TypeSquare Desktop Manager」による「BIZ UD」フォントの提供を終了へ - 窓の杜
- 任意の文字列で日本語フリーフォントを比較できるWebサービス「ためしがき」が縦書き表示に対応 - ニュース ―MdN Design Interactive edition― - 窓の杜
- 漢字のスタイルが自由自在? “zi2zi”でニューラルネットワークのスゴさを再認識 - やじうまの杜 - 窓の杜
- スタートメニューのプロセスが独立、信頼性向上へ ~「Windows 10 19H1」Build 18317 - 窓の杜
- 「April 2018 Update」の縦書きフォント問題を回避するパッチ、「一太郎2019」向けに公開 - 窓の杜
- Windowsの標準フォントってどこまで“タダ”なの? ~最新の状況をまとめたブログ記事が人気 - やじうまの杜 - 窓の杜
- アドビ、新元号“令和”の合字を“Adobe Font”へ追加 ~4月中に完了予定 - 窓の杜
- Adobe、新元号“令和”の合字を追加した「源ノ角ゴシック」v2.001をリリース - 窓の杜
- 情報処理推進機構、新元号“令和”の合字に対応した「IPAexフォント」v004.01を公開 - 窓の杜
- 楷書体の“令”を新元号発表時の墨書と同じ字形に ~モトヤが無料フォントを提供 - 窓の杜
- 新元号“令和”の合字に対応した無料の明朝体フォント「IPAmj明朝フォント」v006.01 - 窓の杜
- Microsoft、ターミナル・コードエディター向けの新フォント「Cascadia Code」を発表 - 窓の杜
- IPAが無償で提供している文字の検索システムがなかなかイケていると話題に - やじうまの杜 - 窓の杜
- 「Unicode 14.0」のリリースは6カ月延期 ~新型コロナウイルスの影響がボランティアを直撃 - 窓の杜
- IBMのオープンソースフォント「IBM Plex」がv6.0.0に ~日本語フォントも利用可能 - 窓の杜
にせねこメモ
- フォントのアウトラインを法線方向に太らせたり細らせたりしてみる - にせねこメモ
- UbuntuでFontforgeをコンパイル - にせねこメモ
- CygwinでFontforgeをコンパイル - にせねこメモ
- さくらのサーバに置いたWebフォントをはてなブログから使う - にせねこメモ
- 適当に書いてフォントを作る - にせねこメモ
- フォントいじり用ソフトウェア・技術情報 - にせねこメモ
- 漢索フォント - にせねこメモ
- フォントでTUT-Code - にせねこメモ
- Appleカラーフォントのビットマップの表示位置 - にせねこメモ
- TTXでAppleカラーフォントを作る - にせねこメモ
- FontForge の Python bindings を使えるようにする - にせねこメモ
- サブセットWebフォントを作成する(Font Squirrel Webfont Generator) - にせねこメモ
- Linux版AFDKOのダウンロード - にせねこメモ
借り初めのひみつきち
- 自作フォントエディタの話 - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 4 フォントのはなし - 借り初めのひみつきち
- Rust 自作 OS 日記/Part 4.1 おまけ - 借り初めのひみつきち
- 書体関係 Wiki - unixuser200403-2
- 書体関係 Wiki - freefont
- 世界最速のフォントレンダラ、font-rsの内部に迫る | プログラミング | POSTD
- フリーのフォントエディタ「FontForge October 2016」リリース、Unicode 9.0に対応 | OSDN Magazine
- zi2zi: Master Chinese Calligraphy with Conditional Adversarial Networks
- kaonashi-tyc/zi2zi: Learning Chinese Character style with conditional GAN
- ドバイ政府とMicrosoftが提携して開発したフォント「Dubai Font」 | スラド IT
- Windows版Firefox 57で既定の日本語フォントをメイリオに変更 - Mozilla Flux
- Windows 10プレビュー版にウェイトを自由に変更できるVariable Font実装 - PC Watch
- Windowsで最高のターミナルを構築する方法 - 純粋関数空間
- デスクトップ・カスタマイズ:フォントリンクの方法
- 「大漢和辞典」ついに!デジタル化 「フォントない」問題克服の秘密とは | 共同通信 - This kiji is
- やがてsyuu1228になるさんのツイート: "ClearTypeのパテントは無償でおっけーになったのか:Fedora Enables ClearType Subpixel Font Rendering Thanks To Microsoft https://t.co/B2ypyBwVYL via @phoronix"
- Fedora Enables ClearType Subpixel Font Rendering Thanks To Microsoft - Phoronix
- 「Qt 3D Studio 2.3」公開、新フォントレンダリングエンジンが導入される | OSDN Magazine
- Font Edit '95
- フォントエディタ作った。 - 借り初めのひみつきち
- neri/fedit95: Bitmap Font Editor
- Noto Sans Hinted と font-feature-settings: 'palt' | blog.jxck.io
- HarfBuzz
- Webブラウザにおける文字のアンチエイリアスの現状の最適解 | dwango creators' blog(ドワンゴクリエイターズブログ)
FreeType
- The FreeType Project - バグ: Browse Items [Savannah]
- hp.vector.co.jp/authors/VA028002/ft_height20061029.c
- hp.vector.co.jp/authors/VA028002/winfreetype20061029.c
- 20212 FreeType の CFF ドライバの処理に任意のコードを実行されるなど複数の問題 - SIDfm
- FreeType - Wikipedia
- FreeType - Wikipedia, the free encyclopedia
- 側転幼女おるみんちゃんさんのツイート: "FreeType2 が 2.7 になって ClearType のようなサブピクセルヒンティングが有効になたみたい.Infinalityパッチのとはちょっと違うようだけども >> The FreeType Project https://t.co/JKu8weHERT"
- FadisさんはTwitterを使っています: 「GTK+等の文字のレンダリングを担っているPangoがフォントのロードをFreetypeからHurfbuzzに切り替えたところ、ビットマップフォントが読めなくなり、ビットマップフォントとかいまどき使わないと主張する開発者とビットマップフォント愛好家達が揉めてる https://t.co/trTPv9ryyg」 / Twitter
- Pango Dropping Support For Bitmap Fonts Is Frustrating Some Linux Desktop Users - Phoronix
- svg woff 変換 - Google 検索
- woff freetype - Google 検索
- FreeType 2.10.2 Released With Support For WOFF 2 Fonts - Phoronix
- FadisさんはTwitterを使っています 「FreeTypeにPNGの埋め込みビットマップの取り扱いでヒープバッファオーバーフローを起こす脆弱性が見つかり、修正版2.10.4が出た。この脆弱性の詳細や影響はまだ表に出ていないが、2.6以降のでFT_CONFIG_OPTION_USE_PNGオプションを使用している場合に影響を受けるらしい https://t.co/ULpo4PPiJm」 / Twitter
- FreeType 2.10.4 Rushed Out As Emergency Security Release - Phoronix
- freetypeを使用して文字を描画すると間延びする
Adobe
- Adobe、日中韓の漢字を網羅したオープンソースのフォント「Source Han Sans」を公開 - 窓の杜
- Source Han Sans - Wikipedia
- 米Adobeがフォント開発ツールのAFDKOをオープンソースに | SourceForge.JP Magazine
- ASCII.jp:「源ノ角ゴシック」を実現させたアドビ西塚氏の勘と感覚 (1/5)
- インタビュー&トーク - 15年越しに叶った夢、日中韓対応のフォント開発:ITpro
- 日本語表示も考慮されたコーディング向けのフォント「Source Han Code JP」が公開 - 窓の杜
- Adobe Type Tools
- 源ノ明朝 | Typekit
- Adobe、日中韓をサポートしたSerifフォント「源ノ明朝」をオープンソースで公開 ~Googleと共同開発、6万5千文字以上を収録 - PC Watch
- 貂明朝の漢字6469字の内訳 | yasuokaの日記 | スラド
- “Adobe Typekit”が“Adobe Fonts”へ、複雑な利用制限をすべて撤廃してシンプルに - 窓の杜
- Adobe Fonts on VF at Adobe Max 2018 — TypeDrawers
- 【Adobe MAX】無償でも6,000フォントまで利用可能となったAdobe Fonts - PC Watch
- A Spectre Haunts Photoshop: Adobe Fontphoria — TypeDrawers
- アドビ、可愛く妖しい無料フォント「貂明朝」のv2を公開 ~干支のカラー絵文字を追加 - 窓の杜
- Adobe Fontsに日本一画数の多い漢字。貂明朝の新フォントも ~Photoshop for iPadなど新アプリのQ&Aセッションも - PC Watch
- Adobe、プログラミング向け無料フォント「Source Han Mono(源ノ等幅)」をリリース - 窓の杜
- Adobeの「源ノ角ゴシック」がバリアブルフォントに - PC Watch
- 「Source Han Sans/源ノ角ゴシック」がバリアブルフォントに ~サイズは1/10以下、可能性は無限大 - 窓の杜
- Adobe Fontsの日本語フォントが大幅増 ~191フォントが追加され、計436フォントに - 窓の杜
- 画力・博士号さんはTwitterを使っています 「「てかCompact Font Formatやめね?笑」になってきた,地球外の文明と接触したときに(えっ,君らの文明ではこんな間抜けな規格が最も普及してんの? 草)と笑われる規格として5本の指には入ると思う.」 / Twitter
- Compact Font Format - Google 検索
- 米Adobeがフォント開発ツールのAFDKOをオープンソースに | OSDN Magazine
Google
- Google、オープンソースフォント「Noto」がUnicode標準をフルサポートしたことを明らかに - 窓の杜
- Noto - Wikipedia
- Noto fonts - Wikipedia
- Google Noto Fonts
- Google Developers Japan: 誰でも使えるオープンソース フォント システム
- Google Developers Blog: An open source font system for everyone
- Google Internationalization
- googlei18n/noto-fonts: Noto fonts, except for CJK and emoji
- noto-fonts/FAQ.md at master · googlei18n/noto-fonts
- Noto Sans の Web Font 対応とサブセットによる最適化 | blog.jxck.io
- Google Developers Japan: オープンソースの美しい Noto フォントファミリーに日本語、中国語、韓国語が加わりました。
- Google、日本語・中国語・韓国語をカバーしたオープンソースフォント「Noto Sans CJK」 - 窓の杜
- オープンソースの明朝体フォント、Googleとアドビが無償公開、7ウェイトを用意したセリフ書体「Noto Serif CJK(源ノ明朝)」 -INTERNET Watch
- Noto Color Emoji – Google Noto Fonts
- 日中韓に対応したグーグルの新フォント「Noto Serif CJK」は、なぜ生まれたか|WIRED.jp
- Google、フォントラスタライザ向けセキュリティチェックツール「BrokenType」を公開 | OSDN Magazine
- Noto JP/KR versus Noto — TypeDrawers
- Google Fontsが日本語WEBフォントを正式サポート – Dream Seed
- Makoto Kato ︎︎さんはTwitterを使っています 「ビャンビャン麺のグリフがNoto Font CJKに入ってたようで、昔のツイートがちゃんとレンダリングされてる。やった https://t.co/SNM1TP6KuH」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「𰻞𰻞麺 https://t.co/zHUvPe4p5D」 / Twitter
MS
- 米Microsoft、開発環境向けの等幅フォント「Cascadia Code」をオープンソース化 | OSDN Magazine
- 7594591200220899443さんはTwitterを使っています: 「いや、ターミナルでこの手のprogramming ligaturesを有効にするのは絶対駄目。問題が起きる。 https://t.co/E5qrZxw5DI」 / Twitter
- 7594591200220899443さんはTwitterを使っています: 「問題が起きる例 https://t.co/KJA07cZl0N」 / Twitter
- Deligaturizing "=<" · Issue #751 · tonsky/FiraCode
- 7594591200220899443さんはTwitterを使っています: 「要は=<というのはシェルの中ではless than or equal toのtokenではないのだ。そこでtokenizeしてはならぬ。」 / Twitter
- 7594591200220899443さんはTwitterを使っています: 「VS Codeでprogramming ligaturesがおおむねうまく行くのはVS Codeの場合はLanguage serverと通信してプログラミング言語ごとに正確なtokenizationができているからなのであって、ターミナルとかでそういう期待をしてはならない。」 / Twitter
- Cascadia Code 1910.04 | Windows Command Line
- Makoto Kato ︎︎さんはTwitterを使っています 「Yu GothicはDirect Wirteのパラメーターいじると綺麗にレンダリングされる気がするが。昔Johnさんがいじって、各フォントをFirefoxでバランスよくなるようにしてた」 / Twitter
- Microsoft EdgeでClearTypeフォントが読みやすくなる改善 - PC Watch
フォント情報処理用語
- Terms Used in Font Information Processing
TrueType
- アウトラインがぶれるフォント - にせねこメモ
- TrueType命令でビット演算 - にせねこメモ
- TrueType命令で擬似乱数: 線形合同法 - にせねこメモ
- フォントサイズに合わせて回転するフォントを作る(2) - にせねこメモ
- TrueType命令で三角関数(sin, cos)を計算する - にせねこメモ
- PPEM・ポイントサイズを表示するフォント - にせねこメモ
- フォントサイズに合わせて回転するフォントを作る(1) - にせねこメモ
- 初めてのTrueType命令: Windowsでは見えないフォントをつくる - にせねこメモ
- 逆引きTrueType instruction set - にせねこメモ
OpenType
Variable Fonts
- ウェブ最大の「フォント問題」を巡ってアップル、グーグル、MS、アドビが団結|WIRED.jp
- Variable Fontについて - console.blog(self);
- Introducing OpenType Variable Fonts – John Hudson – Medium
- Rockridgeさんのツイート: "時期未定だがGeckoでもOpenType Variation Fontsをサポートする予定。参照:https://t.co/xNstDMA0W6 / “Intent to implement: OpenType Variati…” https://t.co/Fi9rUDshGc"
- Rockridgeさんのツイート: "Firefox 62では「ひとつのファイルでありながら複数のフォントのように動作する」Variable Fontが使えるようになっている。次のFirefox 63ではウェブ開発ツールのフォントエディタでVariable Fontの… https://t.co/9fPWTzsud8"
- Variable fonts for Adobe After Effects — TypeDrawers
にせねこメモ
- OpenTypeフォントで万年カレンダーをつくる - にせねこメモ
- GPOSのCursive Attachment Positioningについて - にせねこメモ
- フォントの気持ちになる - にせねこメモ
- OpenTypeフォントで分数 - にせねこメモ
- OpenTypeフォントでFizzBuzz(その2) - にせねこメモ
- 単語の最初のみ(最後のみ)に置換を行うOpenType Feature Fileの書き方 - にせねこメモ
- OpenTypeフォントでFizzBuzz - にせねこメモ
- 「、」「。」を「,」「.」で表示するフォントをつくる - にせねこメモ
- OpenType/CFFのフォントを読んでみる - にせねこメモ
- OpenTypeカラーフォントと関連技術の動向
- Creating and supporting OpenType fonts for the Universal Shaping Engine
- OpenType の仕様策定の議論をのぞくには - しろもじメモランダム
- Microsoft Typography - Typography | Microsoft Docs
- OpenType specification - Typography | Microsoft Docs
- OpenType font file - Typography | Microsoft Docs
- OpenType - Wikipedia
- OpenType - Wikipedia
- CID (文字コード) - Wikipedia
- PostScript fonts - Wikipedia
- OpenType Feature File Specification
- true type fonts - Microsoft OpenType specification for cmap - Stack Overflow
- Jolg42/OpenType-Specification: OpenType Specification from Microsoft https://www.microsoft.com/typography/otspec/ & Apple https://developer.apple.com/fonts/TrueType-Reference-Manual/
- adobe-type-tools/aots: Annotated OpenType Specification
- OpenType フォントのカーニング情報をぶっこぬく - Qiita
- Rockridgeさんのツイート: "Fx53:OpenTypeフォントのCMAPテーブル(文字コードからグリフインデックスへのマッピングを定義するテーブル)で、フォーマット13をサポート。参照:https://t.co/hn8hfp37WR / “1320665 …” https://t.co/bsONE8ETOn"
- Archive of OpenType versions - Typography | Microsoft Docs
- OpenType specification change log - Typography | Microsoft Docs
- Script tags - Typography | Microsoft Docs
OpenType Variation Font
- Rockridgeさんのツイート: "Firefox 61でOpenType Variation Fontsがデフォルト有効化される見通し。 / “Intent to ship: OpenType Variation Font support” https://t.co/SoxLue673P"
- Rockridgeさんのツイート: "Fx62:Variable Fontがデフォルト有効化。 / “show_bug.cgi?id=1457266” https://t.co/3dEpnhCfI7"
- Ubuntu 16.04でgooglei18n/fontviewをビルド - にせねこメモ
- googlei18n/fontview: Demo app that displays fonts with a free/libre/open-source text rendering stack: FreeType, HarfBuzz and Raqm
- macOSのダークテーマ、可変フォントなどをサポートするMozilla Firefox 62
OpenType Sanitizer
- khaledhosny/ots: Sanitizer for OpenType
- 一部のウェブフォントがより厳格なバリデーションのため表示されなくなる場合があります (影響あり) | Firefox サイト互換性情報
- 12月のマイクロソフトセキュリティ更新を確認する - INTERNET Watch Watch
- 縦書きにしたときにWebフォントの部分だけ表示されない - Google プロダクト フォーラム
WOFF
- WOFF 2.0, the inside scoop | W3C Blog
- WOFF File Format 2.0
- フォントファイルから使いたい文字を抜き出してコマンドラインでWebフォント化するfontminが便利だった - Qiita
- WOFF (Web Open Font Format) - ウェブデベロッパーガイド | MDN
- フォント素人のWebエンジニアが、「フォントおじさん」に聞いてみた!Webフォントの最近の事情とか | HTML5Experts.jp
- WebFont の WOFF2 対応によるサイズ最適化 | blog.jxck.io
- Makoto Kato ︎︎さんのツイート: "font-display 使えばいいのに https://t.co/UENeh3Mhse"
- ウェブフォントのエモい話 // Speaker Deck
- Rockridgeさんのツイート: "MDN Web Docsでは、Webフォントの利用を見直しつつある。Open Sansを廃してFont Awesomeの使用も止め、Zillaフォントは英語文字に限って利用するようにした。ダウンロードサイズが減ってレンダリング時間… https://t.co/SLbO4rwN0g"
- Web Fonts Working Group Charter
- W3C Strategic Highlights: Strengthening the Core of the Web (Fonts) | W3C Blog
- Puppeteer で静的サイトの Font Subsetting | blog.jxck.io
- Web Font のメトリクス上書きによる CLS の改善 | blog.jxck.io
フォント
絵文字
- won't fix: emoji hell
- won't fix: この文字はカラー絵文字をつかうべきか、モノクロの絵文字をつかうべきか
- ゆきまさかずよしさんのツイート: "GoogleのチーズバーガーのEMOJIにおけるチーズの配置はあり得ないとか指摘があって、CEOが謝罪して訂正を約束したとか https://t.co/9RMQmsgLzk https://t.co/pl9hRjDKLm"
- Makoto Kato ︎︎さんのツイート: "色々あって一年放置したemojiのバグ直そうとしてるけど、本当フォントシステム辛い。ついでにこれ実装しちゃうとCSS Font4のfont-family: emojiも実装可能なんだけど、あれどうしようかな"
- カラー絵文字パッチ制作の経緯 — KaoriYa
- Googleがチーズバーガーの絵文字を修正、ほかにビールやチーズも - GIGAZINE
- Makoto Kato ︎︎さんのツイート: "I have added new font preferences "https://t.co/NO9M7sv5yr-list.emoji" to control emoji font on Firefox 59+"
- Makoto Kato ︎︎さんのツイート: "昔どっかの会社とFirefox OSのデバイス作ってた時に、この設定作らないとと思ってたやつなんだけど、今更入れた"
- 【やじうまPC Watch】Apple、70を超える絵文字を追加 - PC Watch
ビットマップ
- GNU Unifont Glyphs
- Unicode encoded Shinonome font for i18n xterm
- 渡邊フォント問題、非商用限定の無償利用可で解決へ | スラド
- 「渡邊フォント」がパクリと発覚 | スラド
- k14 14-pixel japanese font for xterm
- Various Software written by S. Kono
- Hanazono fonts
窓の杜
- 【レビュー】合字(リガチャ)をうまく活用したソースコード向けの等幅フォント「FiraCode」 - 窓の杜
- 【レビュー】「源ノ明朝」フォントを読めるギリギリにまで“破壊”した「源界明朝」 - 窓の杜
- 【レビュー】「Unicode 10.0」に追加された“変体仮名”を表示できる「Unicode変体仮名フォント」 - 窓の杜
- モリサワ、スタンダード版「BIZ UDゴシック」「BIZ UD明朝」の無償提供を再開 - 窓の杜
- Microsoft、数式フォント「MT Extra」をダウンロードセンターで無償公開 - 窓の杜
- 無償のホラーフォント8作品が一挙公開 ~「怨霊」フォントの暗黒工房が8年ぶりの更新 - 窓の杜
- 55種類の日本語フリーフォントをまとめて試せるWebサービス“ためしがき”がリリース - 窓の杜
- え、ふぉんと? モリサワの“あの”フォントが「Windows 10 October 2018 Update」に標準搭載 - やじうまの杜 - 窓の杜
- フォントワークス、8書体を“Google Fonts”で無償提供 ~GitHubにも公開 - 窓の杜
- Unicodeコンソーシアムが提供する“最後の手段”フォント「Last Resort Font」【レビュー】 - 窓の杜
- Releases · unicode-org/last-resort-font
- Microsoft、コーディング向けフォント「Cascadia Code」にイタリック体を追加 - 窓の杜
- 【レビュー】165カ国170万人から集めた筆跡の平均をもとにしたフォント「Universal Typeface」 - 窓の杜
GIGAZINE
- 古式ゆかしい「変体仮名」が商用・エンベッド含め自由に使えるフォント「Unicode変体仮名フォント」 - GIGAZINE
- 無料&商用利用可能で幾何学的ながら明るく都会的なデザインのフォント「ROLAchan(ローラちゃん)」 - GIGAZINE
INTERNET Watch
- 江戸時代のくずし字1521文字種・8万6176件の字形データセット無償公開、ディープラーニングを用いた文字認識のサンプルプログラムも~NIIと国文研 -INTERNET Watch
- 「源ノ明朝」、デジタル向けだが「手の軌跡から生まれる骨格を探し出した」デザイン -INTERNET Watch
- プログラミングフォント Myrica / Estable | Myrica (ミリカ)は、フリーなプログラミング用 TrueType フォントです。
- 明治時代の活字の味わいたっぷり!無料日本語フォント「Oradano明朝フォント」がステキ – Japaaan 日本文化と今をつなぐ
- KHドットフォントシリーズ | 自家製フォント工房
- Oradano Mincho : non JIS X 0213 public domain TrueType font
- FSP95 comments
- ASCII.jp:西麻布のバーでNTT Comの宮川エバに聞いたテッキーなお話 (1/4)
- ターミナルでアイコンフォントを使う理由 | IIJ Engineers Blog
- 日本語の既定フォントが変更されました | Firefox サイト互換性情報
- モリサワ「Windows 10 Fall Creators Update」での「UDデジタル教科書体」正式採用を発表 | ニュース&プレスリリース | 企業情報 | 株式会社モリサワ
- プログラミング用フォント Ricty
- IPA、あらゆる人名の文字化けがない「IPAmj明朝フォント」 ~約6万漢字を国際標準文字コードに対応 - PC Watch
- MORISAWA BIZ+ | 株式会社モリサワ
- ワープロ専用機の拡大処理を再現したフォント「ワープロ明朝」
- irori/wapuro-mincho: "ワープロ明朝" - 80's Japanese word processor like font
- モリサワ OpenTypeフォントの共同開発で株式会社写研と合意 | ニュース&プレスリリース | 企業情報 | 株式会社モリサワ
- 沈黙の巨人、「写研」が動いた “愛のあるユニークで豊かな書体”がわれらの手に届くまでの100年を考える (1/3) - ITmedia NEWS
- IBMのオープンソースフォント「Plex」が日本語対応 - PC Watch
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Helveticaが可変フォントになった。ウェイト・幅・サイズなどを変えると、全体の字形が変化する。ライブデモあり。 https://t.co/0XQCLGe6Ea」 / Twitter
- Helvetica Now Variable | Monotype.
- More of everything, for everyone. Introducing Helvetica Now Variable. | Monotype.
- Google Fontに日本語フォントなど複数追加 - PC Watch
Android
- 池田 泰延さんのツイート: "先程のXperia (Android 7)のフォントの話をトゥギャりました。 HTML/CSSを書く人にとっては役立つ話かと思います。 /Xperia(Android 7)のフォントがウェブ制作者にとって残念 https://t.co/RG3ShObydP"
- Makoto Kato ︎︎さんのツイート: "XPEDIAにはNoto Sans CJKは入ってるけど、skiaのせい。というか標準フォント変更機能が存在しててXMLファイルでいろいろ入れ替えられる。そのせいだよ。その機能入れたのSHARPだから、SHARPのせいということで"
- Makoto Kato ︎︎さんのツイート: "Noto Sans CJK使いたかったらAndroid版のFirefoxを使えばでるんじゃないですかねー。(細かい調整入れた張本人としての発言)"
- Makoto Kato ︎︎さんのツイート: "昔ICSの頃にGoogleとのミーティングあるからなんかお願いしたいことある?って言われた時、今のAndroidのデザインだとフォント列挙(フォントファイル単位)の方法が存在しなくて、フォントファイルのパスさえもとれないから、ホント困るって話をお願いしてもらったんだけどね。。。"
- Makoto Kato ︎︎さんのツイート: "ブラウザ側からしてみれば、skia経由でしかフォントに触れないのでskiaがフォント選択の仕組みをそのままブラウザ側に実装しないと全くもってブラウザがやりたいこと実装できないんですよねー。skiaやってるのもGoogleなんでGoogleのせいですよ、SONYじゃない"
- Makoto Kato ︎︎さんのツイート: "OEMベンダがカスタムしてるフォント名のアリアスとかもXMLファイルなんで、FirefoxもそのXMLファイルを解析してフォント選択に加えないといけないんですが、個人的には優先度低い。でもChromeとの互換性言われたらやらざるを得ないけど"
- Makoto Kato ︎︎さんのツイート: "全端末が/system/fontsだけにあればよかったんですがねー。しかもフォント名のアリアスなしで"
- Makoto Kato ︎︎さんのツイート: "なお、どの会社もskiaをカスタムしてなければいいですが、自社でコードいじってるとXMLファイルの件も保証できないです。Apacheライセンスだったはずだから、変更した場合でも変更点は闇のなかですねー。GPLとかだったら変更点を出してくれますが"
- Makoto Kato ︎︎さんのツイート: "Android版Chromeで中華フォントが!!って話が昔よくフォーラムにあったんだけど、Androidのフォントを知れば知るほど、ホワイトリストしかない気がするって思うんだよね。Chrome Teamの範疇だと難しいよな、かわいそうにって思う"
- Makoto Kato ︎︎さんのツイート: "(その面倒なところの架け橋をしたって、おそらく社内的にまったく評価されないだろうから、誰もやるはずがないという意味です)"
ものかの
- デジタルフォントの風説 “仮想ボディ” – ものかの
- 日本語の活字はどうして全角なのか – ものかの
- 源ノ明朝/角ゴシック-1 フォントを整理しよう – ものかの
- 源ノ明朝/角ゴシック-2 サブセットとフルセット – ものかの
- 源ノ明朝/角ゴシック-3 デジタルの文字 – ものかの
- 源ノ明朝/角ゴシック-4 Unicodeの漢字統合 – ものかの
- 源ノ明朝/角ゴシック-5 フルセット版 – ものかの
Wikipedia
- Linux Libertine - Wikipedia
- Linux Libertine - Wikipedia
- Junicode - Wikipedia
- Junicode - Wikipedia
- DejaVuフォント - Wikipedia
- DejaVu fonts - Wikipedia
Twitter
macOS
- みーた / UXエンジニアさんはTwitterを使っています: 「macOS Catalinaでヒラギノ角ゴPro/ProNが消えたらしい。 弊社サイトとかでも使ってるのでフォント崩れが起きている。 困る。大迷惑だ。 https://t.co/U6VTP3qSUc」 / Twitter
- みーた / UXエンジニアさんはTwitterを使っています: 「私はアップデートしてないのでソースはこちら。 https://t.co/6rDoWnM7js」 / Twitter
- macOS Catalinaでヒラギノ角ゴPro/ProNが消える - kyoto.nagoya Blog
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「フォントに依存するようなサイト云々ってのもあるけど、generic font-familyを指定してるけど、そのハンドリングが甘いブラウザがあるって感じ?」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「あー、Geckoもそのままではフォールバックしなさそうだな。 https://t.co/z1rtoiBdoo」 / Twitter
- all.js - mozsearch
- 池田 泰延さんはTwitterを使っています: 「macOS CatalinaのChrome 77のフォント問題。 勘違いしている人が多いので説明。 Chromeのデフォルトだった「ヒラギノ角ゴシック ProN」がCatalinaで未バンドルになる ↓ 該当するフォントがなくなったため、Sans Serifが明朝体で表示される ↓ フォント指定の甘いサイトは全部明朝体に! https://t.co/Cil92P8PGO」 / Twitter
- macOS Catalinaでヒラギノ角ゴPro/ProNがなくなって困ってるfont-familyの設定を考える。|榊原昌彦|note
- 四九六々(縦書き用)さんはTwitterを使っています: "フォントのGPUレンダリングの記事読んでた。これいいね。GPUの知識に乏しいので2週間くらいかけて勉強しながら実装してみたい。https://t.co/tgm1tNpGe9"
- Resolution independent GPU text rendering demo
- Rockridgeさんのツイート: "Mozillaの新ロゴに使われているZilla SlabフォントがGoogle Fontsに掲載されている。 / “Google Fonts” https://t.co/YCupNw3Xlj"
- Zilla Slab - Google Fonts
- なかのんクエストさんのツイート: "@azu_re リリース版では57からメイリオですが、当然、インストールされていない環境も考慮して、メイリオ → 游ゴシック → MS Pゴシックとフォールバックするようにしています。 https://t.co/plxRj8pPWE-list.sans-serif.ja 参照。"
- 池田 泰延さんのツイート: "ブラウザのフォントをユーザーが独自に変更している場合に、アイコンフォントが表示されなくなる。 これは盲点でした... #cssnite https://t.co/SAHptJF2o3"
- Rockridgeさんのツイート: "Fx63:Skiaのフォントキャッシュサイズを10MBから5MBに減らした。Mac版やLinux版で消費メモリが減少する。 / “show_bug.cgi?id=1258781” https://t.co/RROLJbRguT"
- Rockridgeさんのツイート: "Fx63:Android版の使用フォントにNoto Serif CJKを追加。Android 9 Pieでは中国語、日本語、韓国語のセリフ体フォントはNoto Serif CJKがデフォルトなんだとか。 / “1481031 -…” https://t.co/YkgoZDkwnt"
- なかのん&マジックさんのツイート: "昔、ちょっとだけGeckoのgfxかじった身からすると実装面でその気持ちは分かる……"
- OE Waku 𛄊𛀬さんのツイート: "げ、これマジだ。ひどい・・・・ > Safari 12ではユーザがインストールしたフォントをfont-familyに指定できない https://t.co/8NVPQgfNFU"
- Safari 12ではユーザがインストールしたフォントをfont-familyに指定できない - Qiita
- なかのん&マジックさんのツイート: "こういう時に、ブラウザエンジンを選択できないプラットフォーム、デバイスってのは困るよなぁ。特にこうやって、ブラウザの違いによって転送容量が大きく変わるってのは、事実上、従量制な回線を使ってると実害あるよね。"
- ドッグさんのツイート: "Linux のフォント描画がどうダメなのか具体的に説明してくれてる | 'The sad state of font rendering on Linux | Infosec scribbles' https://t.co/kKTZMIe7Br"
- The sad state of font rendering on Linux | Infosec scribbles
- vyv03354さんのツイート: "㋿を表示するためだけのフォント https://t.co/jS45Zrl1Yb しかしFirefox以外はフォントを明示的に指定しないと表示できないようだ。"
- グループ:emk_令和明朝 - GlyphWiki
- FadisさんはTwitterを使っています: 「中国語の文字が多すぎてフォント作りが辛すぎて凝ったデザインのフォントが足りない問題、CNNでスタイル転送してフォントを生成することでほぼ克服されてて凄い」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「VisualStudio2019の標準フォントは、昔ながらの「MSゴシック」ということに今頃気付いた。 プログラミング用フォントは、Anti-Alias / ClearType が効かない方が視認性が良くて好き。 (これらが効くフォントは、同じ文字が場所によって、微妙に異なる表示になったりする)」 / Twitter
- Google Fonts
- Google Fonts の日本語フォント - Qiita
- Fonts (日本語) - ArchWiki
PDF
その他
- Online ASCII85 encoder - Online tools
- paperai/pdfanno: Linguistic Annotation Tool for PDF Documents
- Hack Patch!: PDF特殊機能(FormCalc編)
- Hack Patch!: PDF特殊機能(リダイレクト編)
- UsefullCode.net: 2016年04月 記事一覧
- UsefullCode.net: 2016年07月 記事一覧
- PowerPoint for Macが吐くPDFが重いんです - Qiita
- タグ付きPDFとはどんなもの | アンテナハウス PDF資料室
- Arch Linuxで日本語pdfを閲覧したり、辞書を表示する | 3log
- 「LibreOffice 6.3」リリース、UI、性能などにフォーカス | OSDN Magazine
- PDFファイルを開くだけで暗号化された内容が流出する脆弱性「PDFex」が発見される - GIGAZINE
- Windows上でもPDFファイルのパスワードを総当たりで解析できるフリーソフト「PDFCrack」 - GIGAZINE
- iPhoneでJPEG画像やPDFファイルを開くだけでハッキングされる可能性 - GIGAZINE
- PDFから「使える」テキストを取り出す(第1回) - golden-luckyの日記
- PDFから「使える」テキストを取り出す(第2回) - golden-luckyの日記
- CC0ライセンスの空白PDFファイル - Qiita
- PDFから「使える」テキストを取り出す(第3回) - golden-luckyの日記
- PDFから「使える」テキストを取り出す(第4回) - golden-luckyの日記
- PDFから「使える」テキストを取り出す(第5回) - golden-luckyの日記
- PDFから「使える」テキストを取り出す(第6回) - golden-luckyの日記
- Takashi KawasakiさんはTwitterを使っています: 「Unicode→GIDを逆引きして文字コード取得すると、メイリオみたいなフォントだと、杮(こけら)と柿(柿)が区別できなかったりする。つまり同じグリフなのね。 PDFから「使える」テキストを取り出す(第5回) - golden-luckyの日記 https://t.co/bNEVURablY」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「ああ、僕のレビューは確かに良くないかも。日本語のPDFの本の解説本って割と少ないので過度な期待をしちゃっただけなんですよ。 https://t.co/lJsLRPz6Zl」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています: 「今日のブログ書くのにamazonでこの本を見たら、求めるものを勘違いしている方によるレビューばかりでかわいそうになった。ふつうに良い本だと思います "John Whitington『PDF構造解説』 https://t.co/jURHqtACSt」 / Twitter
- 2020年 年賀状 - golden-luckyの日記
- PDFが読めるようになるお話 | 感情的プログラミング伝記 | タウン情報誌 AIR函館 - 北海道函館市の食・呑・遊をご紹介!
- プログラマーから見たPDFファイル | アンテナハウス PDF資料室
- PDFが世界中で広く使われるようになった理由とは? - GIGAZINE
Adobe
- 注目の脆弱性:Adobe Acrobat Reader DC ドキュメント ID に起因する、リモートでコードが実行される脆弱性
- TALOS-2017-0505 - Cisco Talos
- PDF 2.0 でドキュメントを次世代のステージへ - Adobe Blog
- ISO 32000-2:2017(en), Document management — Portable document format — Part 2: PDF 2.0
- ISO 32000に準拠するPDFってどんなもの? | アンテナハウス PDF資料室
- ISO 32000-2:2017 文書管理-ポータブル文書フォーマット-第2部:PDF 2.0 | 日本規格協会 JSA Group Webdesk
OCR
- tesstrain.sh で Tesseract-OCR の言語データをカスタマイズする - Qiita
- Ubuntuにtesseract-ocrをインストール - Qiita
- スキャンしたpdfファイルにOCR処理を行い,テキスト埋め込みpdfを作成する - Qiita
- 日本語OCRライブラリNHocrを利用してみる - Qiita
- Nami Ogawaさんのツイート: "古めの論文でそのままPDF落とすと文字も読みづらくて本文検索もできないようなとき、google検索でキャッシュリクエストすればOCR済みのHTMLバージョン返ってきてめっちゃ便利っての今気づいた https://t.co/2yBG3Cymsr"
長期署名
- PAdES - Wikipedia
- 自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第1回) - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第2回) PDF署名とは - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第3回) PAdES仕様の構成 - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第4回) PAdES Basic - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 連載:PAdES(PDF長期署名)について(第5回) PAdES Basicと署名ポリシ - livedoor Blog(ブログ)
- 自堕落な技術者の日記 : 追悼 Adobe CDS - livedoor Blog(ブログ)
PDF.js
- PDF.js - Wikipedia, the free encyclopedia
- PDF.js
- mozilla/pdf.js: PDF Reader in JavaScript
- PDF.jsを設置する - Qiita
- MozillaのPDF.Jsを利用してJavaScriptでPDFレンダリングをカスタマイズ - WPJ
- PDF.js の導入方法と苦労した話 (フェンリル | デベロッパーズブログ)
- pdf.jsを使いブラウザで見られるPDFスライド表示ツールを作った | Web Scratch
- [pdf.js] テキスト選択出来るスライド表示ライブラリを書いた | Web Scratch
- PDF.jsを使ってみる | Tips Note by TAM
- PDF.js で遊んでみた (ページの描画,テキスト・注釈の表示など) - きちぽよ〜
- mozilla/pdf.js: PDF Reader in JavaScript
- チュートリアル:Aurelia.jsとPDF.jsで実装するPDFビューワーの作り方 - WPJ
- core-jsがメンテされていない理由 - Qiita
libHaru
- LibHaru - Wikipedia, the free encyclopedia
- libHaru
- libharu/libharu
- libHaruの部屋
- PHP::Haruで基本的なPDFを作成する (1/3):CodeZine(コードジン)
PDFium
- Google Chrome PDFエンジンがオープンソース化
- 米Google、ChromeのPDFレンダリングエンジン「PDFium」をオープンソース化 | OSDN Magazine
- Issues - pdfium - PDFium - Monorail
- pdfium Git repositories - Git at Google
- SDK Docs - Foxit Developer Portal | PDF SDK technology
- にっき♪: PDFium
- pvginkel/PdfiumViewer: PDF viewer based on Google's PDFium.
PDFtk
- PDFtk - Wikipedia
- PDFをコマンドラインから編集できるPDFtk使い方メモ - c-bata web
- PDFtk - The PDF Toolkit
SumatraPDF reader
- Free PDF Reader - Sumatra PDF
- sumatrapdfreader/sumatrapdf: SumatraPDF reader
pdfseparate
- Poppler:Pdfseparate の使い方 | PDF
- Ubuntu Manpage: pdfseparate - Portable Document Format (PDF) page extractor
- PDFを各ページに分割(切出)するコマンド pdfseparate - それマグで!
- kmutoさんのツイート: "gs由来のpdfseparateでもboxは全部飛んじゃうんだな"
- Poppler:pdfunite の使い方 | PDF
- Linux とかで PDF を結合とか n-up とかするコマンドたち - polamjaggy
- Ubuntu Manpage: pdfunite - Portable Document Format (PDF) page merger
- wgetコマンドで外部からPDFを取り出してpdftkでPDFを結合しよう - Qiita
yomu
- yomu
- ta2gch/yomu: 英和辞書付きPDF閲覧ソフト
Google
- Google Chromeに脆弱性か、ユーザー追跡の不審なPDF発見 - ITmedia エンタープライズ
- Chrome PDFビューワーの情報漏えいの脆弱性についてまとめてみた - piyolog
- ゆかたゆさんのツイート: "Android版のChromeさんはpdfファイルを落とす前に確認して欲しいのです💢 (これ出来るんですか?私が無知だったらごめんなさいなのです)"
- tkr@合格0,不合格6,発表待ち1さんのツイート: "てかpdfのフォーマット知らないんだけどページごとのストリーミングみたいなことできないのあれ 数十ページあるやつ全部落とすの通信量やばい"
- なぎせ ゆうきさんのツイート: "ページ単位のタグがあったと思うけど、表示に必要な情報が後ろにあったりしたような(うろ覚え… "
- あんどうあんど🔞休職→求職中さんのツイート: "最後のほうに、属性情報とか索引とかある。… "
MS
- 「Edge」のPDF閲覧機能が強化、新しいセキュリティ機能も ~Insider Preview - 窓の杜
PDF/UA
- PDF/UA - Wikipedia
- Tomaz's dev blog: Accessibility checker and support for PDF/UA specs
- PDF/UA-1(ISO 14289-1)について | アンテナハウス PDF資料室
PDF/X
- PDF/X - Wikipedia
- PDF/Xについて (1) PDF/X-1a
- PDF/Xについて (2) PDF/X-3
- PDF/Xについて (3) PDF/X-2
PDF/A
- PDF/A - Wikipedia
- PDF/Aとはなにか | アンテナハウス PDF資料室
- PDFAOutline.pdf
- PDF/A 概要
- LuaLaTeX で pdfx パッケージを使い PDF/A に準拠した PDF を作る - Qiita
- timelerさんはTwitterを使っています 「文書PDFは基本的にPDF/A以外は信用してはならない。」 / Twitter
- tkrさんはTwitterを使っています 「wordでインターネットからDLしたdocxファイルを開くと「保護ビューのままにしておくことを推奨」みたいな警告出てこれはマクロとかあるから分かるんだけど、pdfでも同じ表示出るやん?pdfってそういう悪いこと可能なの?」 / Twitter
- timelerさんはTwitterを使っています 「PDF/Aは大雑把に、フォントとメタデータ以外の埋め込みが禁止されているので安心。 どの環境でも読めることが保証されるのでさらに安心。」 / Twitter
Wikipedia
- Category:Mozilla Firefox - Wikipedia
- Category:FLOSS関連のスタブ項目 - Wikipedia
- Portable Document Format - Wikipedia
- Ascii85 - Wikipedia
- Extensible Metadata Platform - Wikipedia
Twitter
ToUnicode, OpenType
- keiichiro shikano λ♪さんはTwitterを使っています 「今日の学び:PDFの/ToUnicodeは、OpenTypeフォントの中のcmapから得られる情報と食い違う場合がある!(信用できるのはOpenTypeフォントの中の情報)」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「しかしOpenTypeのcmapを読むのはパターンが多すぎてめんどくさいなあ」 / Twitter
- 画力・博士号さんはTwitterを使っています 「OpenTypeの cmap テーブルは一般には単射ではないのでPDF中での逆変換に相当する /ToUnicode CMap で正確に復元できるとは限らないんですよね(どうしてこんな仕様に……)」 / Twitter
- TrueRoadさんはTwitterを使っています 「AJ1フォントなら逆に無い方が都合が良い場合が多いので、原ノ味フォント用にToUnicode CMap削除ツールなんてものを作りました。 https://t.co/Da7Punx9h3」 / Twitter
- trueroad/pdf-rm-tuc: Remove ToUnicode CMap from PDF
- keiichiro shikano λ♪さんはTwitterを使っています 「確かに、フォントが埋め込まれてる場合にはいっそいらないよねこれ…」 / Twitter
- TrueRoadさんはTwitterを使っています 「@golden_lucky 源ノとかAI0フォントの場合はToUnicode CMapが無いとテキスト抽出できなくなってしまいます。PDFにフォントが埋め込まれていても、確かcmapテーブルは入ってなかったと思います。」 / Twitter
tagged PDF
- keiichiro shikano λ♪さんはTwitterを使っています 「タグ付きPDFを「きちんと」出力できて、書籍の組版できるソフトウェア、現状だと何があるだろう。InDesignには「TCreate Tagged PDF」のオプションはあるっぽいが、これはどこまで使いものになるのかにゃあ。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「Chromeがタグ付きPDFがデフォルトなのでVivliostyleはできるのかな。AHFormatterはできそうだけど、これも実際のところはどんな感じなんだろう。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「pdfTeXは「きちんと」はいまだにできてないが、ConTeXtはできるらしい。」 / Twitter
- ひだるま@技術書典9新刊有さんはTwitterを使っています 「タグ付PDF、1.7と2.0でちょこちょこ違うし私用のマシンだと十分な検証環境ないんだよな」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「PDF 2.0、ぜんぜんしらないなー」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「父さんEPUBは捨ててtagged PDFにベットしようと思うんだ」 / Twitter
- Tokushige KobayashiさんはTwitterを使っています 「AH Formatterのタグ付きPDFを使っているのは海外ユーザーだけだと思います。逆に、OSDCはタグ付きPDF出力できないですが、海外から今どき非常識だと叱られたことがあります。非構造化文書からのタグ付きPDF出力は仕様を満たすための無意味なタグ付け~Pタグとspanタグ羅列のような~になるだけですが。」 / Twitter
- 村上真雄 MURAKAMI ShinyuさんはTwitterを使っています 「@golden_lucky AH Formatterはもちろんタグ付きPDF出来ます。 https://t.co/fLS6som2nR だいぶ昔ですが、私がその実装に携わっています。」 / Twitter
- AH Formatter V7.0 - PDF出力
- 村上真雄 MURAKAMI ShinyuさんはTwitterを使っています 「@golden_lucky Chromeのタグ付きPDF出力によりVivliostyleでも出来るようになるはずなのに、タグ付きにならない不具合に気付きました。どうもChromeのタグ付きPDF出力が特定の条件(JSでコンテンツが生成されてる、CSSでページサイズ指定ある)で無効になるChromeのバグのよう。さらに調べてChromeにバグ報告します。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「@MurakamiShinyu なるほど、ブラウザでDOMを作る前にHTMLの構造が手に入っている場合にのみ生成できる、とかだとつらそうですね…」 / Twitter
リーダーモード
- keiichiro shikano λ♪さんはTwitterを使っています 「いまでも普通のPDFをリフローできるんですよ https://t.co/y4wzFrjk9J」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「まあ、これはリーダーに依存した不完全なもので数式とかルビとかページまたぎとかは全然ダメなんだけど、大筋は問題なく読めるし、どうしても読めなかったらふつうのページ表示に戻せば必ず読める。」 / Twitter
- mhidaka@技術書典さんはTwitterを使っています 「@golden_lucky えっ。なにこれ。やば?どうなってるの?とか思ったんですがこれすごいすね」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「@mhidaka ご利用のスマホのAcrobatアプリで「リーダーモード」を選べば誰にでも未来が待っているんですよ!(実はデスクトップのAcrobatですでに十年位前にはあった機能)」 / Twitter
- mhidaka@技術書典さんはTwitterを使っています 「@golden_lucky やべー技術力じゃん…」 / Twitter
サブセット?
- keiichiro shikano λ♪さんはTwitterを使っています 「PDFとPostScript、ページ記述に使っているモデルこそ同じだが事実上は別ものなんだけど、Wikipediaの「PDFはPostScriptのサブセット」という説明はどこ由来なんだろう https://t.co/y9OQ9SSlSp」 / Twitter
- 僕「PDFとは何か知りたい」 - Qiita
- keiichiro shikano λ♪さんはTwitterを使っています 「「ErlangはPrologのサブセット」みたいな違和感がある(わかりにくい)」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「「CDはDVDのサブセット」とかのほうがわかりやすい?(わかりにくい)」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「「Haskellには圏論のサブセットが含まれている」に違和感があるのといちばん近い気がしてきた。Haskellを知りたくて圏論について調べたら迷子になるように、PDFを知りたくてPSについて調べたら迷子になります。」 / Twitter
- keiichiro shikano λ♪さんはTwitterを使っています 「「Haskellには圏論のサブセットが含まれている」も「PDFにはPSのサブセットが含まれる」も、それ自体は偽とは言えないけど「あえて」主張されると「せやな」という気持ちになるという意味で、「偶数全体の集合は素数全体の集合の空でないサブセットを含む」は実に膝を打つたとえ。」 / Twitter
- nishio hirokazuさんはTwitterを使っています 「「空でないサブセットって言えばいいのかな?」「偶数全体の集合は素数全体の集合の空でないサブセットを含みます!」」 / Twitter
Mozilla
- RockridgeさんはTwitterを使っています: "PDF.jsは「Canvasとテキスト、アノテーションの3つのレイヤーを使って描画しています」。「Canvasの描画の上に透明なdivにテキストを流しこんだり、クリック出来るようにリンクを置いたりしています」。 / “[pdf.…” https://t.co/QNrf99J3SA"
- vyv03354さんはTwitterを使っています: "pdf.jsがフォントを埋め込んでいない日本語PDFで文字化けする問題ようやく修正した。自分で本体に投入したTextDecoderが早速役に立った。やはり自分でhackしないと誰も直してくれないことを再確認。#もずでぶ"
- vyv03354さんはTwitterを使っています: "それにしてもフォントを埋め込まないでIdentity CMapを使うのは禁止されているはずなのに https://t.co/91wpwzRd 違反している日本語PDF多すぎ。"
- vyv03354さんのツイート: "pdf.jsで縦書きに対応。本体のwriting-modeサポートに依存しているような気がしていたが別にそんなことはなかったぜ! #もずでぶ"
- vyv03354さんのツイート: "https://t.co/1vtC7zUP2m 現時点の制限事項: フォントが埋め込まれていないと、縦書き用字形は使われず句読点や括弧なども横書き用のままです。"
- vyv03354さんのツイート: "@teramako https://t.co/F1f8jRve と同じ問題ですね。この問題があるのでフォントを埋め込んでいない日本語PDFは高確率で化けます。"
- vyv03354さんのツイート: "pdf.jsは日本語の数学論文がほとんど全滅で、issueも投げたけど無視されてる。https://t.co/F1f8jRve やっぱりハックしてpull requestを送らないとダメか"
- Rockridgeさんのツイート: "Fx48:PDF.jsやGoogleドキュメントなどで、ヘッダ/フッタを印刷すると本文領域を上書きしてしまう場合、ヘッダ/フッタを印刷しないようにした。 / “1250674 – Don't print header/foote…” https://t.co/USoaeYbKB4"
- Rockridgeさんのツイート: "Fx55:MortarプロジェクトのPDFビューワを有効化するための設定が追加された。pdfium.enabledがそれだが、今のところtrueにしても現行ビューワの代わりになるわけではない。 / “1338476 - [jsp…” https://t.co/k0c4dhwqRG"
@espresso3389
- Takashi KawasakiさんはTwitterを使っています: 「PDFの仕様が曖昧過ぎて話にならないのは事実としても、普通は、PDFを作成する側のプログラムにもメジャーなものがいくつかあって、そいつらの癖とかバグを一通り対応すると、まぁ、世の中の99%ぐらいのファイルは処理できちゃんだけども、残りの1%はどこかの誰かさんが作ったであろう、名も知れ(文字数」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「面白いのは、当然ながら、Acrobatでは開けるからこそ流通するわけなんだけど、要はAcrobatのデコーダも相当謎で一体、どんな実装してんだっていうのはある。逆に最近のバージョンで開けなくなったPDFというのも少なからずある。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「テキストの並びを順序通りに切り出す処理、GUIアプリだとユーザーが暗黙のうちに正しい方向に選択してくれるというヒューリスティクスというか人間を使った手法があったりする。というか、僕の書いたアプリではそれを使ってたりする。まぁ、全然完璧じゃないんだけどね。 https://t.co/HJC7lQYqsT」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「Microsoft Print to PDFっていうクソ仮想プリンタが、仕様違反とは言えないまでも、Page contentの q Q の外に CTM いじるような命令ぶっこんで来るせいで、content 追記するととんでもないところに描画されちゃって困ってる。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「PDFをある程度理解できるようになるとわかることは、クソエンコーダが多すぎて、個別のPDFの事情なんてさっぱり分かりません。諦めてくださいってことになるってことです。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「Adobeの実装すら、・・・・ってなることが多いのに、それを他のソフトで再編集でもしようものなら、もうゴミになることは火を見るよりも明らか。 にもかかわらず、Adobeすら再編集機能を持っていたりするので、憎悪しか感じない。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「PDFは一度作ったら編集なんてやるべきじゃない。もっというとデータとしての活用もやるべきじゃない。人間による閲覧用途、印刷用途、あとはクリティカルじゃない検索程度にとどめるべき。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「あと、仮想プリンタ。あいつらも諸悪の根源。基本、印刷側ソフトウェアは、文字コードの羅列から、印刷のためのグリフの配列を生成して、それをプリンタに送信している。そのグリフ配列から、元の文字コードに戻せるか?って言われると、原理的には必ずしも元には戻らない。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「仮想プリンタは無理を承知で頑張ってはいるけど、無理なものは無理。メイリオとか、かなり多くの文字が同じグリフを参照してたりするんだよ。杮と柿とか。あとね、アラビア系の文字に関しては、実のところ並び順すら怪しい。頑張って解析するけどさ。リガチャとか元に戻るわけねーだろっていう。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「この辺は、ドライバ書くのに、各言語に対するかなりの知識が必要になるわけです。僕日本人なので、頑張っても日本語、英語、あと・・・、ドイツ語は怪しい。ポーランド語とか知るわけねーだろみたいな範囲で頑張ってヒューリスティクス含めて実装するのね。」 / Twitter
- Tsukasa #01 [要出典]さんのツイート: "oO( 残念ながら、pdf.js はほぼ使い物にならないという評価をせざるを得ない。 )"
- 勝(まさる)さんのツイート: "PDFはPostScript派生なんだけど、後ろに続くテキストを圧縮してエンコードしてとかできるんで、ファイルを生で開いても読めないことが多いですね。"
- aminophenさんはTwitterを使っています: 「> TeX界隈だと、DVIPS経由で生成されたPDFではType 3フォントが使われることになっているので、この理由で文字が取れないPDFファイルはわりと目にします。 ここで耳寄り情報を1つ:最近,dvips の作者が「Type 3 フォントを使った PDF から文字を取り出す実験」をしている。 https://t.co/khjhSuDwWY https://t.co/BL8MLE0wUn」 / Twitter
- rokicki/type3search: Working on making Type 3 bitmap fonts used in dvips-generated Postscript generate searchable PDF files.
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Acrobatのルート証明書からもチェインしたデジタルID/証明書で、LetsEncrypt的なの出ると良いなぁ。 (AdobeはPDF用ルート証明書を独自にして、家元商売している印象が…) https://t.co/xhoeHR28MP」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「これ1個で済むという PDF viewer が見つからない. 1. 白黒反転できる(夜まぶしいから) 2. メモがつけられる(PDF 書き換えでなく) 3. 1ファイルに複数ウィンドウ(別の場所見たい) 4. 大きな PDF でも負けない強い子 てか,PDF ほびろん!」 / Twitter
- R. ShioyaさんはTwitterを使っています 「パワポやエクセルで作った図をクリップボード経由で PDF に変換できるツールを作りました.MetafileToEPS を使ってた事がある人にはわかると思いますが,要はあれの PDF 版です.Windows 上で TeX で論文を書いている人には便利かもしれません. https://t.co/mq9F7tCsc7 https://t.co/Xb6EOv2j2T」 / Twitter
- shioyadan/kuroko: Kuroko is a simple command line tool to convert EMF to PDF. You can download a pre-compiled binary from https://github.com/shioyadan/kuroko/releases.
- R. ShioyaさんはTwitterを使っています 「@KuniSuzaki 私も、スライドのサイズを図のサイズぴったりにしたパワポを作って PDF に印刷して… みたいな事をしていて毎回あまりに面倒なのでこれを作りました。今のところ API の制限で半透明なオブジェクトが崩れてしまうのですが、それ以外は多分きれいに PDF になってくれると思います。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「たまにある PDF でコピペすると文字が化けるやつ,どうも PDF ではフォントを埋め込むと文字コードが各フォント内固有の ID(グリフID)に変換されて格納される仕様で,その上で処理系がさぼってグリフID→元コードへの逆変換表を一緒に埋め込まなかった場合は復元不能で化ける・・・ ということらしい」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「PDFは表示・印刷用フォーマットなので、元情報が欠落しないはず、という仮定・期待に無理があるような、、、 (再加工用には別フォーマットで)」 / Twitter
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@a4lg えええ…もしかして単純に同一グリフの複数コードのうち小さいのを返しちゃうんですか…それは邪悪な…」 / Twitter
- Tsukasa #01さんはTwitterを使っています 「@tetsutalow 私が実際に遭遇したケースでは間に PDF が挟まったことがきっかけ……というのが大部分ですね (同一グリフ [字形] を康熙部首と CJK 統合漢字とで共有しているフォントの場合、PDF ネイティブのグリフ ID から文字列に戻す場合に混乱するのではないかと)。」 / Twitter
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@shirouzu 正論はそうでも事実としてPDF内のテキストはそれなりに検索性があることが求められているわけで、そこでグリフに引っ張られてコードが変わっちゃうのはやっぱり邪悪だと思っちゃいますね。特にこんな、それで検索することまずないでしょってコードに置き換えちゃうのは特に悪い挙動。」 / Twitter
- 画力・博士号さんはTwitterを使っています 「PDFについて「仕様全てを把握してる人類少なすぎる」のも「仕様自体も割と終わってる」のも正しいと思うけれども全てを把握している必要はあんまりないです(composite fontのfont dictionaryを把握すれば大体全部理解したようなもの.)」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「話は変わるが、TIFF、PostScript、PDFという、アドビ(or その前身)という会社が生み出したそびえ立つ糞の山シリーズ、こいつらを処理するライブラリ群のセキュリティはマジでヤバい。libtiff/GhostScriptは一言で言うと使ってはならない。PDFならpdfium以外は使うな。」 / Twitter
- ワトソンさんはTwitterを使っています 「最近本家 LaTeX の開発が活発で,既に “枯れている” はずの LaTeX2e に多くの破壊的変更が加えられているのは,究極的にはその出力を「タグ付き PDF」に対応させるためである.これはつまり LaTeX ソースに(理想的には)ある構造情報をある程度出力先の PDF にも反映しようという試みである.」 / Twitter
- ワトソンさんはTwitterを使っています 「なぜタグ付き PDF にする必要があるかというと,視覚障害者なども考慮したアクセシビリティのためにはこうした情報が不可欠で,特に西欧諸国の公的文書では必須要件になりつつあるからである.この流れは日本ではまだ小さな潮流かもしれないが,いずれ対応が必須となっていくものと考えられる.」 / Twitter
SWF
- LWF by GREE
- gree/lwf: LWF - Lightweight SWF
- untitled - swf-file-format-spec-v10.pdf
Audio
その他
- 大語彙連続音声認識エンジン Julius
- GNU Compact Disc Input and Control Library (libcdio)
- 本の虫: PulseAudioの問題
- ネットワークオーディオと「OpenHome」 | 言の葉の穴
- ハイレゾ対応の音楽再生ソフト「TuneBrowser」v4、“OpenHome”に対応 ほか - ダイジェストニュース - 窓の杜
- アップル、iOS 11でFLAC形式のオーディオ再生をサポート。ほかにOpusや3Dサウンドにも対応へ - Engadget 日本版
- ドルビーラボラトリーズ - Wikipedia
- Dolby Laboratories - Wikipedia
- 「ハイレゾCD」登場、MQA×UHQCDでユニバーサルから100タイトル - AV Watch
- Google Developers Japan: Resonance Audio がオープンソースに
- オブジェクトベースオーディオのためのE-AC-3拡張の規格書を読む - .mjtの日記復帰計画
- 12-13 mp4sa - Qiita
- 3kbpsという低いビットレートでも高音質を実現するコーデック「Lyra」をGoogleが開発 - GIGAZINE
- Microsoft SatinオーディオコーデックはAIを使用してSkype Silkよりも優れたパフォーマンスを得た
- WFH で Audio Worklets の使用率が増えている話
Web
WAV
- WAV - Wikipedia
- WAV - Wikipedia
- Resource Interchange File Format - Wikipedia
- Resource Interchange File Format - Wikipedia
- Wave File Specifications
- WAVファイルフォーマットの読み込み | NecoTech
- wav ファイルフォーマット
- Waveフォーマット・PCM・サンプリング周波数・ビット数・チャンネル数とは、SoundEngine・RadioLineを例にわかりやすく解説 | 豆知識
- RIFF/WAVE形式
- AVI RIFF ファイルのリファレンス
- ビット毎秒 - Wikipedia
- パルス符号変調 - Wikipedia
Vorbis
- Vorbis - Wikipedia
- Vorbis - Wikipedia
- Ogg - Wikipedia
- Ogg - Wikipedia
- Xiph.org: Downloads
- Xiph.org - vorbis.git/summary
- libvorbis-1.3.5
- Xiph.org - ogg.git/summary
- libogg-1.3.2
Opus
- Opus (音声圧縮) - Wikipedia
- Opus (audio format) - Wikipedia, the free encyclopedia
- Opus Codec
- Development – Opus Codec
- Opus-1.1.2
- 無料で5ミリ秒という超低遅延を実現する非可逆音声圧縮コーデック「Opus」、何がすごいのかまとめ - GIGAZINE
- フリーのオーディオフォーマット「Opus」がIETF標準に、初の正式版実装もリリースされる | OSDN Magazine
- ロイヤリティーフリーのオーディオコーデック「Opus 1.2」リリース | OSDN Magazine
- Rockridgeさんのツイート: "Fx64:Opus 1.3のリリース候補版をサポート。 / “1487049 - Update opus to revision v1.3-rc-15-g38fca4a2” https://t.co/wuJ4GWNiKA"
FLAC
- FLAC - Wikipedia
- FLAC - Wikipedia
- FLAC - download
- Xiph.org - flac.git/summary
- FLAC-1.3.2
- 音質劣化のない可逆エンコーダ「FLAC」で音楽を楽しもう | OSDN Magazine
- 可逆圧縮オーディオコーデック「FLAC 1.3」リリース | OSDN Magazine
- 日記 (2016 年 7 月上旬)
MP3
- MP3 - Wikipedia
- MP3 - Wikipedia
- [日本工業規格(JIS)] |書誌詳細|国立国会図書館サーチ
- Mpeg Audio規格日本語版(JIS X 4323): みやじぃの徒然レコーディング(でないことがほとんど?)日記
- MP3のライセンス問題はその後どうなったのか : Timesteps
- 【藤本健のDigital Audio Laboratory】第553回:iTunesのVBRとCBR、どちらの音が良い? - AV Watch
- CBR,VBR,ABRの違いについて - 目的にあったエンコードモードを選ぶ - 道すがら講堂
- MP3の特許を持つTechnicolorの特許権が消滅 - GIGAZINE
- Fedora、MP3をフルサポートへ | スラド Linux
- 2017年5月9日 Fedora,まもなくMP3をフルサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社
- 「MP3が死んだ」という報道の本当の意味とは? - GIGAZINE
- とみながたけひろさんのツイート: "このツイートをするために久々に"takehiro.c"でぐぐったんですが、衝撃の事実が。LAMEがllvmのテストスートに含まれている関係で、世界中のgitレポジトリにtakehiro.cが含まれている…オープンソースは勝手に増殖するのを実感した。こええwww https://t.co/ScmjG3L19T"
- MP3ファイルを覗いてみる(基本型)
- mp3ファイルの構造
- MP3 ファイルのタグについての解説 (id3v1, id3v2, MPEG フレームヘッダ, XING ヘッダ) - Y-Lab. Electronics
- ID3v2 仕様書日本語訳 | takaaki.info
- デジタルオーディオの仕組み - 音声圧縮の原理 MP3, AAC, ATRAC, etc. - white croquis
- MP3の仕様
- technosaurus/PDMP3: Public domain mp3 decoder
- lieff/minimp3: Minimalistic MP3 decoder single header library
libsndfile
- libsndfile-1.0.28
- The libsndfile API
- 雑メモ: libsndfile を使ってみた | anobota
- [vDSP][信号処理]オーディオ・音声分析への道3 Libsndfile - Qiita
HD Audio
- HD Audioとは|Intel HD Audio|High Definition Audio - 意味/解説/説明/定義 : IT用語辞典
- High Definition Audio - Wikipedia
- Intel High Definition Audio - Wikipedia, the free encyclopedia
- Intel High Definition Audio - OSDev Wiki
- PC Speaker - OSDev Wiki
- High Definition Audio Specification
- Customizing HD Audio Driver Volume Settings (Windows Drivers)
- 藤本健のDigital Audio Laboratory
- https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt
- Advanced Linux Sound Architecture - ArchWiki
- Advanced Linux Sound Architecture/トラブルシューティング - ArchWiki
- Windows-driver-samples/audio/sysvad at master · Microsoft/Windows-driver-samples
- 藤本健のDigital Audio Laboratory
- Intel、次世代PCオーディオ規格「High Definition Audio」
- コグノスケ
- 藤本健のDigital Audio Laboratory
- OSDev.org • View topic - Intel High Definition Audio problem. [SOLVED]
- OSDev.org • View topic - Intel HD Audio - DMA buffers not working
Audio Codec 97
- Audio Codec 97 - Wikipedia
- AC'97 - Wikipedia
Audible
- Audible - Wikipedia
AIFF
- AIFF - Wikipedia
- Audio Interchange File Format - Wikipedia
Hi-Fi
Apple Lossless
- Apple、iPodなどで採用されている音声可逆圧縮コーデック「Apple Lossless」をApache Licenseで公開 | OSDN Magazine
- Apple Lossless - Wikipedia
- Apple Lossless - Wikipedia
- macosforge/alac: The Apple Lossless Audio Codec (ALAC) is a lossless audio codec developed by Apple and deployed on all of its platforms and devices.
- Apple Lossless Audio Codec
- Apple Musicがより高音質なHi-Fiをサポートする可能性 - GIGAZINE
- Spotify HiFiについて知っておくべき5つのこと - Spotify Japan — For the Record
- ドルビーアトモス
- ドルビーオーディオ
- ロスレスとは - コトバンク
AAC
- Via Licensing、High-Efficeincy AACのライセンス料を決定
- Advanced Audio Coding (AAC) - Via Corp
- License Fees - Via Corp
- AAC License Fees – Standard Rate and Alternative Rate Structures - Via Corp
- FAQ - the Alternative Rate Structure - Via Corp
- AAC - Wikipedia
- Advanced Audio Coding - Wikipedia
- HE-AAC - Wikipedia
- High-Efficiency Advanced Audio Coding - Wikipedia
MPEG-4 SP
- MPEG-4 - Wikipedia
- MPEG-4 - Wikipedia
AMR-WB+
- AMR-WB+ - Wikipedia
- Extended Adaptive Multi-Rate – Wideband - Wikipedia
AMR-WB
- AMR-WB - Wikipedia
- Adaptive Multi-Rate Wideband - Wikipedia
AMR
- Adaptive Multi-Rate - Wikipedia
- Adaptive Multi-Rate audio codec - Wikipedia
OpenAL
- OpenAL: Cross Platform 3D Audio
- OpenAL - Wikipedia
- OpenAL - Wikipedia
- openAL入門 - 1.音を鳴らそう! - すこしふしぎ.
- NPE.blog: OpenAL
ドルビーデジタル(AC-3)
- ドルビーデジタル - Wikipedia
- ついにドルビーデジタル(AC-3)の特許権が消滅 - GIGAZINE
- AC-3(ドルビーデジタル)の特許が失効 | スラド YRO
OSDN
- オープンソースのDAWソフトウェア「Ardour 5.9」リリース | OSDN Magazine
- KDEの新プロジェクト「Elisa Music Player」が早期版をリリース | OSDN Magazine
POSTD
- オーディオアプリ開発でありがちな4つの間違い | プログラミング | POSTD
GitHub
- C* Music Player
- cmus/cmus: Small, fast and powerful console music player for Unix-like operating systems.
- pytorch/audio: simple audio I/O for pytorch
- Command-line cloud music player for Linux.
- tizonia/tizonia-openmax-il: Command-line music player for Linux with Spotify, Google Play Music, YouTube, SoundCloud, Dirble and Deezer support.
- zevv/bucklespring: Nostalgia bucklespring keyboard sound
- keijiro/Lasp: Low-latency Audio Signal Processing plugin for Unity
- みむみむ.net - Software
- mimura1133/mm_STEP_M: STEP (タグエディタ) の派生版
Twitter
- 椚座 くにゅくにゅ/// 淳介さんのツイート: "G.729(VoIPなどで使われている音声圧縮アルゴリズム)に関して,関連していた特許のほとんどが存続期間満了となったことにより,2017年1月からロイアリティフリーになったと,パテントプールからの発表が https://t.co/Boly0QfWAL"
- SiproLAB Telecom - patent pool creation and management for standardized telecommunication technologies
- Rockridgeさんのツイート: "Fx54:デスクトップ版でサラウンド音声の再生をサポート。参照:https://t.co/tNwp96No0Z https://t.co/wV46pjQgkU / “1321502 – Support audio 5.1 on …” https://t.co/Qe9p0Z24fa"
- 七誌さんはTwitterを使っています 「高次元では3次元のような回転軸の概念は使えないので、どうしようか考えていた。 擬ベクトルとして表された部分空間を取り出せば次元を1つ落とせるので、n次元は入れ子になったn-2本の擬ベクトルが回転軸になるような気がする。(マトリョーシカというか、ジンバルのようなイメージ)」 / Twitter
Video
その他
- ASCII.jp:まずは動画の構造について教えるぜ!【コーデック編】 (1/4)|エンコードテクニック虎の巻
- Stagefright入門
- VISIO-OpenMAX.vsd
- Intel Quick Sync Video(QSV)を使ってみる ( その他趣味 ) - 音響・映像・電気設備が好き - Yahoo!ブログ
- 日本初となるUltra HD Blu-ray市販ソフトは夜景 | スラド
- ASCII.jp:【動画比較】AMDのFluid Motionならアニメが60fpsでヌルヌル動く!! (1/2)|画面が滑らかになる! AMDの最新技術はココがスゴイ
- 動画の「テレシネ」「逆テレシネ」の意味と違い
- IDTのフレーム速度変換ICは動き検出・補正・フレーム補間のアルゴリズムがカギ - セミコンポータル
- Apple Safari、YouTubeの4K動画再生非対応に。YouTube、4K VP9エンコードのみに切り替え - PRONEWS
- 第700回:タイムラプス とは - ケータイ Watch Watch
- オープンソースのマルチメディアフレームワーク「GStreamer 1.12」が公開 | OSDN Magazine
- Windows 10プレビュー版、HDR映像のキャリブレーション機能を搭載 - PC Watch
- Windows 10 RS5、屋外など非常に明るい場所で動画の明るさを自動調整 - PC Watch
- デジタルでなくフィルムで撮影される『スター・ウォーズ』、その理由とは|WIRED.jp
- 動画エンコーダ屋さんと会話して少しわかった画質の話(PSNR / RD曲線 / BD-rate) - Qiita
- Cinavia - Wikipedia
- Cinavia - Wikipedia
- WebCodecs と WebTransport でビデオチャット | blog.jxck.io
- Intent to Implement WebCodecs - Google グループ
- H.Sup18 : Signalling, backward compatibility and display adaptation for HDR/WCG video coding
- H.Sup19 : Usage of video signal type code points
- デジタル著作権管理の存在がネックとなりインディーウェブブラウザは新規参入の余地がないという指摘 - GIGAZINE
- 高品質な動画のスムーズな配信を実現する技術とは? - GIGAZINE
- AppleがDRM関連の技術特許を侵害しているとして約340億円の支払いを命じられる - GIGAZINE
- FacebookのQUICを活用したライブ動画用プロトコルRUSHについて - ASnoKaze blog
VA-API
ffmpeg
- 今日は遊ぶかーと思って, ffmpeg とか, VAAPI とか H264 とか MPEG2 とか見てた. slices, macroblocks,…
- HWAccelIntro – FFmpeg
- lu-zero/mfx_dispatch: Intel media sdk dispatcher
- qsv 対応の ffmpeg をつくる | ニコラボ
- 俺の日記帳 第二冊目
- LinuxでIntel QSVを使ったH.264ハードウェアエンコード(CentOS7+ffmpeg) | Kung Noi Blog
- how to run ffmpeg qsv decoder?
- 謎のC言語ブログ: FFMPEG/libavcodec のインストール
- 謎のC言語ブログ: libavcodec による動画のサムネイル作成
- ubuntuでessentiaを使う - Qiita
- こたつつきみかん » libavcodec / libavformat を使ってみる 1
- www.lifeaether.com/overtaker/blog/wp-content/uploads/2010/04/main.c
- FFmpeg
- FFmpeg ライブラリーを使った動画のデコード(C++ソースコード) | RVF/RC45 blog
- ffmpegの使い方:tech.ckme.co.jp
- FFmpeg APIで、さまざまな動画を操る - 前編 (1/5):CodeZine(コードジン)
- FFmpeg APIで、さまざまな動画を操る - 後編 (1/5):CodeZine(コードジン)
- FFmpeg: VA API Decoding
- FFmpeg: libavcodec/api-example.c Source File
- FFmpeg: doc/examples/decoding_encoding.c
- Fedora23 : Intel 構成での VDPAU/VA-API による動画再生支援とか なんとか ネット。
libva
- Source Code | 01.org
- VA (Video Acceleration) API
- [Libva] H.264 decoder simple example
- The Libva Archives
- gallium3d-xds2007.pdf
- 01org/libyami: Yet Another Media Infrastructure. it is core part of media codec with hardware acceleration, it is yummy to your video experience on Linux like platform.
- gbeauchesne/hwdecode-demos: Test programs to address various HW video decoding APIs like Broadcom Crystal HD, VA-API, VDPAU and XvBA
- libva-1.3.1
- MesaLib-10.2.7
- mesa3d/mesa: Mesa 3D graphics library (mirror; no pull requests here please)
Mesa
SCons
- SCons 2.3.6
- https://raw.githubusercontent.com/shive/scons-test/master/test001-forwin/Makefile
- Python Extension Packages for Windows - Christoph Gohlke
- SCons - Wikipedia
- SCons - Wikipedia, the free encyclopedia
TGSI
- TGSI — Gallium 0.4 documentation
- A Very Early Gallium3D TGSI Back-End For LLVM - Phoronix
- Gallium3D: TGSI
- Gallium3D: gallium/auxiliary/tgsi/tgsi_parse.h File Reference
- Gallium3D: gallium/auxiliary/tgsi/tgsi_parse.h Source File
- tgsi-specification.pdf
- The Mesa 3D Graphics Library
- Mesa FAQ
- 第51回 X,MesaそしてLLVM[その2]:玩式草子─ソフトウェアとたわむれる日々|gihyo.jp … 技術評論社
- Compiling and Installing
- Mesa 3D - Wikipedia
- Mesa (computer graphics) - Wikipedia, the free encyclopedia
- Off-screen Rendering
- Intel Is Making A High-Performance Software Rasterizer For Mesa - Phoronix
- FadisさんはTwitterを使っています: "Intel、Mesaに新しいソフトウェアラスタライザOpenSWRを実装。GPUの無い環境でCPUを使ってOpenGLを動かすための物で、従来からあったLLVMpipeより格段に速いとのこと https://t.co/JFW2Ldte8j"
- OpenGL 3.1 APIを実装した「Mesa 9.2」リリース | OSDN Magazine
- Mesa3D のレンダラーの切り替え
- Fadisさんのツイート: "Mesaからi915(2004年頃のIntel GPU)とr300g(RADEON9800とか)を外そうぜ、という議論がなされている模様。これらの為に今日ほぼ確実に備わっているGPUの機能の有無を調べて分岐が必要になっているのが理由 https://t.co/Nh4c3yArSI"
- Mesa Developers Discuss Branching Off Old Drivers, Including R300g & i915 - Phoronix
- libva drivers
- libdrm-2.4.91
- Index of /libdrm
- DRM
- すらりん日記 » Blog Archive » DRM/KMS についてメモ|No:4291|すらりん日記
- Xorg Libraries
- Fontconfig-2.13.0
- libxcb-1.13
- libXau-1.0.8
- xorgproto-2018.4
- util-macros-1.19.2
- xcb-proto-1.13
- Introduction to Xorg-7
Wikipedia
- Graphics address remapping table - Wikipedia, the free encyclopedia
- Video Acceleration API - Wikipedia, the free encyclopedia
- Intel Quick Sync Video - Wikipedia, the free encyclopedia
- Intel HD and Iris Graphics - Wikipedia, the free encyclopedia
- ebuild - Wikipedia
- Direct Rendering Infrastructure - Wikipedia
- Direct Rendering Manager - Wikipedia
- Free and open-source graphics device driver - Wikipedia
- Mode setting - Wikipedia
- VDPAU - Wikipedia
- Nvidia PureVideo - Wikipedia
- Nvidia NVENC - Wikipedia
- Video Coding Engine - Wikipedia
- Unified Video Decoder - Wikipedia
BSD
- FreeBSD port overview
- Intel_GPU - FreeBSD Wiki
- Graphics - FreeBSD Wiki
- Use linuxkpi in DRM - FreeBSD Wiki
- freebsd/freebsd-base-graphics at drm-next-3.9
- 「NetBSD 7.0」リリース、Luaカーネルスクリプティングをサポート | OSDN Magazine
- drm(7)
- Linux KPI-Based DRM Modules Now Working On FreeBSD 11 - Phoronix
- freedesktop/mesa-drm: Direct Rendering Manager headers and kernel modules
- Graphics drivers and the BSDs [LWN.net]
- FreeBSD kernel DRM device code: Main Page
- drm(4) - NetBSD Manual Pages
- DragonFly On-Line Manual Pages : drm(4)
- FreeBSD DRI FAQ
- XFree86-4 Direct Rendering on FreeBSD
- Tips: FreeBSD DRI
- LinuxでGPUの動画再生支援を用いる(主にDebian/Ubuntu向け) - kakurasan
- VA-API - ArchWiki
- vaapi
- Index of /software/vaapi
- media-libs/intel-hybrid-driver/intel-hybrid-driver-1.0.1.ebuild - chromiumos/overlays/chromiumos-overlay - Git at Google
- hiro99ma blog: [rpi]画面に何か出してみよう (1)
- 第7章 Linuxカーネル仕様
- ubuntuデスクトップ環境設定
- Libva API Guide (master branch): Video Acceleration (VA) API
- B-2.pdf
- util_vaapi.c - chromiumos/platform/avtest_label_detect - Git at Google
- 【AviUtl】QSVを使用してハードウェアエンコードする方法【QSVEnc】
- rigayaの日記兼メモ帳 実験: QSVでデコードしてみると?
- 「X.Org Server 1.17」リリース、Glamorの強化や汎用ドライバの統合などが行われる | OSDN Magazine
- Nouveau - ArchWiki
- VA-API - Phoronix
- intel/media-driver
- gnif/LookingGlass: An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough.
Web
Theora
- Theora.org :: downloads - Theora, video for everyone
- Xiph.org - theora.git/summary
- Theora - Wikipedia
- Theora - Wikipedia
- libtheora-1.1.1
WebM
Matroska
EBML
- EBML ‐ 通信用語の基礎知識
- Extensible Binary Meta Language - Wikipedia
- libEBML by the Matroska team
- EBML RFC (Draft) | Matroska
- Matroska - Wikipedia
- Matroska - Wikipedia, the free encyclopedia
- Matroska形式ファイルを作成するためのツールセット「MKVToolNix 9.0」リリース | OSDN Magazine
- VさんはTwitterを使っています: "vi/mkvparse: Simple Python matroska (mkv) reading library, also mkv2xml and xml2mkv https://t.co/qLgG57Hr1X MKV を XML にするのこれ便利"
- klaxa/mkvserver_mk2: The streaming solution to end all streaming problems
- 「MKVToolNix v13.0.0」リリース | OSDN Magazine
- The WebM Project | Welcome to the WebM Project
- The WebM Project | Developer Overview
- webmproject/libvpx
- WebM - Wikipedia
- WebM - Wikipedia, the free encyclopedia
- Rockridgeさんのツイート: "Fx48:Cues要素がサポートされていない(規格外の)WebM形式動画でシークができない問題を修正。 / “657791 – Seeking in WebM files with no Cues element is not …” https://t.co/vHRfj2ztx5"
- libvpx - Wikipedia
- libvpx-1.5.0
- yasm-1.3.0
- Which-2.21 and Alternatives
- Rockridgeさんのツイート: "Fx53:アルファチャンネル付きWebM動画をサポート。参照:https://t.co/eVMoQbwb6C / “944117 – Implement support for WebM Alpha” https://t.co/NFYvRKd3tM"
- Windows 10の「Google Chrome」でHDRビデオの再生がサポートされるように - 窓の杜
- Android P DP1: WiFi-RTT、カットアウト、複数のカメラ、アニメーションGIF、NNAPI 1.1
VP8
- VP8 - Wikipedia
- VP8 - Wikipedia
VP9
- Vさんのツイート: ""リアルタイムVP9エンコーディング用のハードウェアプラットフォームとしてFPGAを選択" https://t.co/6Wb1QF2Vqt まじか Twitch 攻めてるな ... 。AWS FPGA サーバとか使ってるんだろうか。"
- How VP9 delivers value for Twitch’s esports live streaming
- fg118942さんのツイート: "VP9のリアルタイム1080p60エンコードとか出来るのか しかもx264より画質良いとか 将来的にはAV1でも出来るようになるのかな"
- fg118942さんのツイート: "NGCodec VP9 Encoder - V01 https://t.co/Kr9JfxliOe これかな?"
- Vさんのツイート: "多分それです。AWS F1 インスタンスにチュートリアルはそれを使うらしいです。… "
- VP9 - Wikipedia
- VP9 - Wikipedia
- Microsoft、ブラウザEdgeでGoogleのWebMをサポート ~VP9とOpusの動画/音声コーデックを利用可能に - PC Watch
- Announcing VP9 support coming to Microsoft Edge - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
AV1
特許問題
- yohさんのツイート: "https://t.co/l3XIGMF2VK https://t.co/n0M2IljRxi "AV1 License Terms" ファー"
- Sisvel | We protect ideas - Sisvel announces the launch of its Video Coding Licensing Platform
- Sisvel | We protect ideas - Wi-Fi - Introduction
- yohさんのツイート: "少なくとも名乗りを上げてきた JVCKENWOOD, NTT, Orange, Philips, Toshiba IPR Solutions についてはAV1 AOM側との戦いが始まりそうだな... (VP9はGoogle単独だから割とどうでも良い)AOM側のライセンス条件に従うと同企業系からはAV1搭載絶望かもしらんな..."
- Vさんのツイート: ""confirming there will be no content royalties but not ruling out royalties on software-based encoding." ソフトウェアエンコーダーからのロイヤリティ回収が目的ってことかな。"
- yohさんのツイート: "字義通り解釈すると、正直もう少し事態は悪い気がしていて https://t.co/n0M2IljRxi コンシューマデバイス=デコード能力機器を対象とするようですね WebRTCのようなEnc/Decを要する通信ではなく、一方向動画配信先のWebブラウザも対象に含まれますね… https://t.co/roq8paoPcp"
- Sisvel | We protect ideas - Wi-Fi - Introduction
- yohさんのツイート: "SISVEL側から公開されているAV1 Licence Termをよむ限りAOM陣営との全面衝突不可避にしか見えないんだけど これまじで正面衝突するつもりなのか..."
- yohさんのツイート: "AOM側の(どっかの)資料には「特許係争を戦っていくだけのカネは積んである」とあったので期待はできると思いますが 正直なところ技術的停滞は避けられない予感がします あとは政治力とか市場要因とかいろいろと...… "
- Vさんのツイート: "そうだ Patent Retaliation (特許報復) だ。まだ訴えられてはいないから関係ないのかな。"
- yohさんのツイート: "https://t.co/URfxPiRuob この時と変わってなければ(そしてたぶん変わってない) AV1利用者の誰かが訴えられた時点で、訴訟側への利用許諾解除を発動することになっていますね。問題があるとすれば、訴訟側が"実際には使っていない"場合はこの枠組みではさほど効力がないということでしょうね。… https://t.co/SUC60Kii1d"
- AOM AV1コーデックと特許管理 - Qiita
- yohさんのツイート: "と思います。戦争までの最短シナリオは「SISVEL側がAV1コーデック利用者の誰かを訴える」→「AOM側がSISVEL側(にいるパテント行使企業)への契約解除かつ対抗訴訟開始」→AOM陣営企業 vs SISVEL陣営企業 なのかなと...… "
- dynamis (でゅなみす)さんのツイート: "Googleが特許ライセンスフリーだと主張してきたVP9とそれをベースにしたAV1について遂に特許プール作ったからみんなランセンス料払えよって言い始めた。 特許フリーでないことを認めるか、該当特許を全て回避するなり買い取るなり無効を訴えるなりの戦いが始まるね https://t.co/T3MqXLMaMR"
- ビデオ符号化特許ライセンスプラットフォームを開始:時事ドットコム
- dynamis (でゅなみす)さんのツイート: "2009年にGoogleがOn2買収してVP7の後継を無償提供する宣言してから10年、H264などより高品質コーデックとして共同開発したAV1の仕様が固まりハードウェア実装も始まったタイミング。 10年間黙ってたけど実はその技術の一部は俺達5社が特許持ってるから使うなら金払えって言い出したところですね。"
- dynamis (でゅなみす)さんのツイート: "10年間黙ってて金になりそうなタイミングを見計らっていた5社はJVC KENWOOD, Philips, NTT, Orange, Toshiba IPR Solutionsと三社が日本企業。因みに日本からもSOCIONEXTなどはAoMに加盟して特許フリー動画コーデック支援側に回っており日本の特許保有者は皆同じというわけではない。"
- dynamis (でゅなみす)さんのツイート: "VP7からVP9はあくまでもGoogleが一社で勝手に作ってるコーデック状態だったしハードウェアサポート等も少なく特許あるよって言えば回避する実装に変更された。 AV1ではIntel, Nvidiaなどハード実装側も加わり仕様確定させて変更しにくくなったタイミングを狙ってきたのは明らかなのよね。"
- dynamis (でゅなみす)さんのツイート: "日本企業が多いのは単に旧来のマルチメディア企業と最近のネット企業という異なる時代の対立の構図になると日本が技術開発に強かった時代があったからとか、Googleなどと争う意志を持てる企業だからとか、主要ビジネスの成長が見込めず既存知財は何としても有効活用したいとかそんなところ?"
- dynamis (でゅなみす)さんのツイート: "一番男前な対応はIntelなどSoCベンダー側がハードにかかる部分は全負担、ソフト側はH264でCiscoがやったようにGoogleなどがダウンロード可能なバイナリーを全CPUとOS向け(多分iOS以外)に配布して肩代わり。 一番乱暴なのは特許無効訴訟で全面戦争しつつ実装側の変更を進めて実質無効化で黙殺。"
- Makoto Kato ︎︎さんのツイート: "ソフトウェア特許は好きではないけど。 AV1の件で脊髄反射のように叩いてる人は、自由だと(提供会社が)言っているものがホントに問題ないと信じてるのかなぁと。個人的には裁判にならないと実際の真実なんてわからないとしか言えないでしょ。お互いに言い分あるだろうし"
- Makoto Kato ︎︎さんのツイート: "言い換えれば、めんどくさいから検索会社がすべての特許買えばいいんじゃないの?お金あるでしょと思ってる"
- 動画圧縮技術「AV1」、知財管理のシズベルが特許リスト公開--オープンな方針に逆行 - CNET Japan
Qiita
- AV1 specification を読む - Qiita
- AOM AV1コーデックと特許管理 - Qiita
- AV1コーデックメモ - Qiita
Wikipedia
- Alliance for Open Media - Wikipedia, the free encyclopedia
- AOMedia Video 1 - Wikipedia
- AOMedia Video 1 - Wikipedia
@rockridge07
- RockridgeさんはTwitterを使っています: "GoogleのVP9、CiscoのThor、MozillaのDaalaの各技術は、Alliance for Open Media(AOM)が開発するAV1コーデックに統合される。今後MozillaはAV1の開発に力を入れていくが、… https://t.co/16124oJfSr"
- Rockridgeさんのツイート: "Mozillaが開発に参加するAV1コーデックは、VP9をベースに他のコーデックの技術を取り入れて改良を重ねたもの。解析ツール(AV1 Bitstream Analyzer)をEmscriptenにより変換して、Webブラウザ上で… https://t.co/etyrceHnDd"
- Rockridgeさんのツイート: "AV1コーデックの解析ツール(AV1 Bitstream Analyzer)は、C言語からJavaScriptに変換されることでパフォーマンスの低下が生じる。だが、WebAssemblyに変換されれば問題はかなり解消されそうだ。 https://t.co/LGNXzzJfZn"
- Rockridgeさんのツイート: "Fx55:AOMedia Video 1(AV1)形式の動画再生をサポート。 / “1314147 - (AV1) Support the AOMedia Video 1 (AV1) codec format” https://t.co/e8t9yVybrn"
- 1314147 - (AV1) Support the AOMedia Video 1 (AV1) codec format
- Rockridgeさんのツイート: "Alliance for Open Media(AOM)に参加するMozillaとBitmovinが、AV1形式の動画とプレイヤーのデモを公開。Firefox Nightlyで閲覧可能。AV1はVP9やH.265/HEVCより25… https://t.co/KXxTpyGlHk"
- AOM Analyzer
- Vさんのツイート: "AV1 ビルドして、変換してみたけど恐ろしく遅い。全然コード読めてないのでなんともだが、リアルタイム向けの仕様とかあるんだろうか。"
- Vさんのツイート: "今のところ AV1 は CPU 変換は現実的ではないというところまで把握した。"
- Vさんのツイート: "WebRTC にのっていくのは早く行けるだろうけど、バッチで変換したりする場合はちょっと考える必要がある。"
- Vさんのツイート: "あと Chrome が AV1 をいつ実装するのか、というのも追いかけられてないな。Firefox は何故か頑張ってる。"
- Rockridgeさんのツイート: "AppleがAlliance for Open Mediaに加入。SafariがAV1をサポートする可能性が高まってきた。 / “Apple joins alliance to shrink your online videos…” https://t.co/QvTG9zNl9X"
- Rockridgeさんのツイート: "AppleがAV1フォーマットをサポートすれば、ロイヤリティフリーな動画コーデックが広く普及することになる。Mozillaは約11年前から特許による負担のないメディアを勝ち取るべく闘ってきており、AV1の普及は勝利を意味する。 https://t.co/G7Gi42rUy3"
- Rockridgeさんのツイート: "AV1は動画だけでなく静止画にも使え、同一サイズであればJPEGよりもかなり高画質となる。JPEGに取って代わるのは無理でも、WebPの後継フォーマットにはなれるかもしれない。 / “Photo format from Goog…” https://t.co/73dkRja6y0"
- Rockridgeさんのツイート: "ISO/IECのワーキンググループであるMPEG、その議長であるLeonardo Chiariglione氏が、このまま手を拱いているとHEVCがAV1に負けてビジネスモデルが崩壊すると危機感をあらわにしている。 / “A cr…” https://t.co/8GITGNF9e7"
- Rockridgeさんのツイート: "FacebookがAV1形式の動画をサポートすると発表。ただし2018年4月24日現在、Chrome Canaryでフラグを有効化しなければならず、Firefox Nightlyも未対応。参照:… https://t.co/Dl2IyXnz31"
- Rockridgeさんのツイート: "AV1動画フォーマットでは、Chroma from Luma(CfL)と呼ばれる技法を導入し、キーフレームの圧縮に成功したという。 / “next generation video: Introducing AV1” https://t.co/NBKVcWHcGK"
- Rockridgeさんのツイート: "AV1動画フォーマットでは、Constrained Directional Enhancement Filterと呼ばれる技法を導入して、ブロックノイズの低減に成功したという。 / “AV1: next generation v…” https://t.co/WCaZVg4Qxj"
- Rockridgeさんのツイート: "MozillaがAV1動画フォーマットを推す理由は2つ。1つはロイヤリティフリーであること、もう1つは競合より約30%も圧縮率が高いことである。 / “Modern codecs like AV1 can bring bette…” https://t.co/MpAeOVLEQa"
- Rockridgeさんのツイート: "Fx63:AV1コーデックのバージョン1.0.0を実装した。media.av1.enabledの設定をtrueにすると有効化される。 / “1445683 - Update aom” https://t.co/zIxTOiStZf"
- Rockridgeさんのツイート: "AV1動画フォーマットの特徴を解説したスライド(PDF)。参照:https://t.co/zAXPAoKuqo / “Into the Depths: The Technical Details Behind AV1” https://t.co/BIcZnD7QKP"
- Into the Depths: The Technical Details Behind AV1 - Mozilla Hacks - the Web developer blog
- 1_02_Egge.pdf
- Rockridgeさんのツイート: "Fx65:Windows版で、AV1形式の動画再生がデフォルト有効化。 / “1452146 - Flip AV1 pref (media.av1.enabled) for Windows to true” https://t.co/boBODEvo7e"
@fg118942
- fg118942さんのツイート: "これ注目されてるから速度も書いとく Ryzen 2400Gでhttps://t.co/OXfUoKhqhT のChimera-AV1-8bit-1920x1080-6736kbps.ivfのデコードで131fps出る libaomは66fpsなので倍近く早い… https://t.co/QsWUpPWIpo"
- S3 Bucket Listing Generator
- fg118942さんのツイート: "dav1dにAVX2の最適化がいくつか入ったらあっという間にlibaomよりデコード速度が速くなった。 シングルスレッドでもマルチスレッドでも。"
- fg118942さんのツイート: "Video kodek AV1 nahradí nová nekompatibilní verze AV1.1.0 - https://t.co/jJnLNjQPSS https://t.co/V2XzRFPUrz AV1また仕様変わるのか グダグダやな"
- fg118942さんのツイート: "6月に仕様が決まったあとに改善点が指摘されてたけど既に企業が運用を開始してるから変更を受け入れられないと突っぱねてたのに今になって改善を取り入れる感じか?"
- OpenVisualCloud/SVT-AV1: Welcome to the GitHub repo for the SVT-AV1 encoder! To see a list of feature request and view what is planned for the SVT-AV1 encoder, visit our Trello page: http://bit.ly/SVT-AV1 Help us grow the community by subscribing to our SVT-AV1 mailing list! http://bit.ly/svt-av1-mailing
- Vさんのツイート: "H.264 vs H.265 vs VP8 vs VP9 vs AV1 – Chienomi https://t.co/JnENcRU9OG 2018 年 8 月の記事 VP9/AV1 が酷評されてた。結局設定次第なんだろうな、自分の印象だと実時間エンコードで VP9 はとてもキレイという印象だし。"
- H.264 vs H.265 vs VP8 vs VP9 vs AV1 – Chienomi
- fg118942さんのツイート: "VP9はマルチスレッドでCPUあんまり使ってくれないから個人ユーザーには使い勝手が悪いなとは確かに思う YouTubeは動画を細かく分割して並列でエンコードしてるみたいだから問題ないんだろうけど https://t.co/MBYkP3KJ9w"
- fg118942さんのツイート: "あとVP9にしろAV1にしろ心理的画質の調整はx264やx265ほど熱心にされてない印象だからベンチマークのスコアでは上回っていても目視だと負けることもあるかもしれないなあ"
- fg118942さんのツイート: "自分は視力あんまり良くないし真面目に画質確認すると疲れるので最近はVMAFに頼りっきりですが"
- fg118942さんのツイート: "AV1の特許で揉めてる問題、英語力がないので結局の所どういうことなのかよくわからない。"
- Alliance for Open Media
- Amazon、Netflix、Google、Microsoft、Mozillaなど大手7社が次世代のビデオフォーマットでオープンソース連盟を結成 | TechCrunch Japan
- aomedia Git repositories - Git at Google
- AOM-AV1-Video-Tech-meet-up.pdf
- DASH playback of AV1 video in Firefox – Mozilla Hacks – the Web developer blog
- Apple の AOM 加盟と AV1 への期待 | blog.jxck.io
- GoogleやNetflixが主導するビデオコーデック「AV1」が正式リリース、4Kストリーミングの普及に期待 - GIGAZINE
- The Alliance for Open Media Kickstarts Video Innovation Era with “AV1” Release – Alliance for Open Media
- Get Started – Alliance for Open Media
- HEVC/H.265対抗の動画コーデック「AV1」が正式リリース ~ロイヤリティフリーで利用可能、HEIF対抗も登場か - PC Watch
- 株式会社ソシオネクストさんのツイート: "【プレスリリース】クラウド上のFPGAを利⽤するAV1エンコーダーを実装 https://t.co/oqWIG8AUR3… "
- sn_pr20180606_01j
- yohさんのツイート: "10秒でわかるAV1エンコード:フレーム全体をばーっと再帰分割してIntra/Inter混合予測画像との差分値を量子化でざくざく切り捨てて複数シンボル算術符号化でぎゅぎゅーっと縮めて次フレーム予測のためにノイズ除去&エッジ復元して取っておくサイクルを繰り返します。"
- Chromium Blog: Chrome 69 Beta: AV1 video decoder, CSS tricks, and more
- FFmpeg 4.1 Brings AV1 Parser & Support For AV1 In MP4 - Phoronix
- Microsoft、H.265より高画質な「AV1」コーデックのベータ提供開始 - PC Watch
- dynamis (でゅなみす)さんのツイート: "気付いたらFirefoxのAV1対応がデフォルト音に切り替わってた。何故Chromeより有効化が遅くなったのかは知らないけど、2015年にAoMedia立ち上げたときからの取り組みだから4年越しの取り組みが適った感じですね https://t.co/SUnTVkPz7r"
- Better web video with AV1 codec — Martian Chronicles, Evil Martians’ team blog
- Firefox 67には次世代コーデック「AV1」の世界最速デコーダーが採用されている - GIGAZINE
- Netflixが高性能&ロイヤリティフリーなコーデック「AV1」をAndroid向けアプリに採用 - GIGAZINE
- Makoto Kato ︎︎さんはTwitterを使っています 「AV1のハードウェアデコードはこのバグを見ると、Chromiumの話やLinuxのVAAPIの話も含めて詳しい https://t.co/rmDC3ulEsO」 / Twitter
- 1652945 - Add AV1 hardware decoding support
- Google Chrome 90安定版リリース、AV1エンコーダー搭載で細い回線でのビデオ会議の品質が向上 - GIGAZINE
AV2
- AV1 Roadmap - Alliance for Open Media
- AOMedia Research Symposium 2019 - Alliance for Open Media
- AOMedia looks ahead to AV2 as AV1 picks up momentum - Rethink
- AV2 - YoyaWiki Plus!
- テスト用にHLSライブストリーミング配信データおいときます|suo-takefumi|note
H.264
- H.264の秘密 | コンピュータサイエンス | POSTD
- Cisco の H.264 コーデックにより Web 上でのビデオの相互運用性が向上 | Mozilla Japan ブログ
- MPEG LA、H.264の共同ライセンス体系を発表
- US NEWSの裏を読む - ライセンス料を巡って揺れる次世代の動画標準「MPEG-4」:ITpro
- CODECのライセンス料について - プロセッサ(DSP / ARM / MCU) - Japanese E2E (日本語コミュニティ) - TI E2E Community
- 本の虫: H.264の特許利用料、緩和さる
- OpenH264
- 幅広く利用される動画圧縮コーデック「H.264/MPEG-4 AVC」はどうやって巨大なサイズのムービーを劇的に圧縮するのか? - GIGAZINE
HEVC
- H.265 - Wikipedia
- High Efficiency Video Coding - Wikipedia
- ストリーミングやTV放送で動画圧縮技術「HEVC」の特許使用料が廃止 - PC Watch
- Rockridgeさんのツイート: "「HEVC Advanceの特許ライセンス対象から『サブスクリプション』と『タイトルごと』のコンテンツ配信を除外することにより、HEVCの普及を更に加速」させるとの発表。AV1のプレッシャーが効いている。 / “HEVC Adv…” https://t.co/mKQxi5AWaf"
- ハイフレームレート4Kライブ伝送を実現するHEVCコーデック。NTTが開発 - AV Watch
- VさんはTwitterを使っています 「H.265 対応のハードウェアとそれを利用するソフトウェアの両方提供している NVIDIA に確認したら「ロイヤリティーは含まれていないので自分で解決してください」という回答だった。」 / Twitter
- H.265/HEVC特許暗黒時代 - Qiita
- 10bit 精度で 1bit のズレも発生しないテストパターン動画(H.265)を作成する - toruのブログ
VVC
- Versatile Video Coding (VVC) | JVET
- FadisさんはTwitterを使っています 「H.265/HEVCの後継となる動画圧縮標準規格、H.266/VVCの規格が完成したらしい。H.266はH.265と比較して顕著な品質低下を伴わずにビットレートを半分に抑える事ができるとされている。また8Kの映像やHDR、全方位映像等をサポートする」 / Twitter
- FadisさんはTwitterを使っています 「https://t.co/6Fab8kFoN0」 / Twitter
- H.266/VVC Standard Finalized With ~50% Lower Size Compared To H.265 - Phoronix
- 「H.265/HEVC」と同じ画質でファイルサイズを50%削減できる次世代動画圧縮規格「H.266/VVC」が登場 - GIGAZINE
- 新ビデオコーディング標準H.266、H.265に対して50パーセントの効率向上を可能に
- Catching Up with VVC - Streaming Learning Center
- https://jvet-experts.org/doc_end_user/current_document.php?id=10541
Widevine
- デジタル著作権管理の存在がネックとなりインディーウェブブラウザは新規参入の余地がないという指摘 - GIGAZINE
- Googleがオープンソースブラウザ「Metastream」でのDRMコンポーネント利用を拒否 - GIGAZINE
- Googleはデジタル著作権管理を用いてどのようにオープンソースのブラウザ開発を独占的な管理下に置いているのか? - GIGAZINE
- Google Chromeのデジタルコンテンツ保護機能に「保護されたコンテンツ」を保存可能なバグ - GIGAZINE
- 「Firefox 47」正式版がリリース、Widevine CDMやVP9コーデックをサポート - GIGAZINE
- Disney+の映像はLinux搭載PCでは再生できない可能性がある - GIGAZINE
- MicrosoftのEdgeは4大ブラウザの中で唯一Netflixを1080pで再生できることが判明 - GIGAZINE
ProRes RAW
- Final Cut Pro Xがアップデート、ProRes RAWと高度なクローズドキャプションが可能に - Apple (日本)
- アップル、新フォーマット「ProRes RAW」採用のFinal Cut Pro X 10.4.1提供 - AV Watch
- 米アップル、ProRes RAWの搭載とクローズドキャプション機能を強化したFinal Cut Pro Xをアップデート - PRONEWS
- Final Cut Pro X、新ビデオ形式「ProRes RAW」、高度な字幕ツールも | マイナビニュース
- DJI ZENMUSE X7がApple ProRes RAWに対応|DJI JAPAN株式会社のプレスリリース
- DJIのSuper35mm空撮カメラ「X7」がProRes RAWや14bit CinemaDNG対応。exFATも - AV Watch
- DJI、Zenmuse X7のApple ProRes RAW対応を発表 - DRONE | ドローン専門メディア
- ATOMOS、ProRes RAWに対応するSHOGUN INFERNOやSUMO 19のアップデートを発表 - PRONEWS
CinemaDNG
- CinemaDNG - Wikipedia
- CinemaDNG File Format
- アドビ、高画質RAWビデオ規格「CinemaDNG」のベータ版を公開 - CNET Japan
- アドビ,高画質RAWビデオ規格「CinemaDNG」のベータ版を公開 | 日経 xTECH(クロステック)
- AtomosがCinemaDNG RAW記録を無償アップデート | cinema5D
- Vol.081 開花の時を迎えたCinemaDNG | VIDEOJOURnAL on the web|ビデオジャーナル
- DJI、高性能飛行モードを備える空撮用ドローン - CinemaDNG撮影も可能 | マイナビニュース
- ユーザーはBMCCをどう評価しているか | Blackmagic Cinema Camera | Shuffle by COMMERCIAL PHOTO
- Inspire 2 License Key —DJI
SRT
- SRT Alliance - Open-source SRT - Secure Reliable Transport
- Haivision/srt: Secure, Reliable, Transport
- ffmpeg 4.0 に入った新しい映像伝送プロトコルSRTを試す - Qiita
- 緻密u 💮さんのツイート: "UDPを拡張したUDTを採用。ほう。UDPを通せれば通過できるんかな / “SRT Secure Reliable Transport とは何か? – meteor – Medium” https://t.co/B1RZmVlEXP"
- SRT Secure Reliable Transport とは何か? – meteor – Medium
FFmpeg
- FFmpeg
- FFmpeg/FFmpeg: mirror of git://source.ffmpeg.org/ffmpeg.git
- mabeijianxi/small-video-record: 利用FFmpeg视频录制微信小视频与其压缩处理
- 「FFmpeg 4.0」が公開 ~Windows XPのサポートは終了 - 窓の杜
- 「FFmpeg 4.0(Wu)」リリース | OSDN Magazine
- 「FFmpeg 4.1」が公開 ~“AV1”のパーサー、“ATRAC9”・“AVS2”デコーダーを追加 - 窓の杜
- FFAStransというトランスコードソフトについて
- FFmpeg API の使い方(1): デコードしてみる - Fixstars Tech Blog /proc/cpuinfo
- FFmpeg APIの使い方(2): シークやAVFrameなど - Fixstars Tech Blog /proc/cpuinfo
- FFmpeg APIの使い方(3): エンコードしてみる - Fixstars Tech Blog /proc/cpuinfo
- FFmpeg APIの使い方(4): エンコード他 - Fixstars Tech Blog /proc/cpuinfo
HandBrake
- HandBrake: Open Source Video Transcoder
- HandBrake/HandBrake: HandBrake's main development repository
- 【やじうまPC Watch】エンコードツール「Handbrake」公式サイトでマルウェアと置換される 〜2日から6日にかけダウンロードしたユーザーに対して開発者が注意喚起 - PC Watch
- 動画トランスコーダー「HandBrake 1.1」リリース | OSDN Magazine
VLC
- Sending Patches VLC - VideoLAN Wiki
- videolan/vlc: VLC media player - All pull requests are ignored, please follow https://wiki.videolan.org/Sending_Patches_VLC/
mpv
- mpv.io
- mpv-player/mpv: 🎥 Video player based on MPlayer/mplayer2
MPC-HC
- Media Player Classic - Home Cinema
- Home · MPC-HC
- mpc-hc/mpc-hc: MPC-HC's main repository. For support use our Trac: https://trac.mpc-hc.org/
- 定番プレーヤー「Media Player Classic Home Cinema(MPC-HC)」がついにv1.7.13で更新終了の見込み、原因は開発者不足 - GIGAZINE
- MPC-BE download | SourceForge.net
DVD・Bluray
- libbluray - VideoLAN
- libdvdnav - VideoLAN
- DVD Resources for Open Source Development
字幕
- libass/libass: libass is a portable subtitle renderer for the ASS/SSA (Advanced Substation Alpha/Substation Alpha) subtitle format.
- xbmc/libass: libass for XBMC (win32 special)
- SSA/ASS Subtitles | Matroska
- SubStation Alpha - Wikipedia
- ASS/SSA - 字幕制作
- ASS 仕組みと書き方
- SSA字幕作成リファレンス - faireal.net
- a3r (ASS_Help3r) – ASS字幕タイミング・タイプセッティング支援
- テキスト字幕ファイル(SRT, SSA, ASS)の利用方法 - 動画投稿Tips - アットウィキ
SmoothVideo Project
- SmoothVideo Project (SVP) - motion estimated frame interpolation with any video player and frame doubling in real-time
- GPU Compatibility - SmoothVideo Project (SVP) - frame doubling interpolation
- SVP3:User manual - SmoothVideo Project (SVP) - frame doubling interpolation
- 【GPU】 Fluid MotionとSVP : ニッチなPCゲーマーの環境構築
- 便利ツール:SVP4(SmoothVideo Project):さんさんのブロマガ - ブロマガ
- 是々録画: SVP (SmoothVideo Project) で60fpsなヌルヌル体験
- 動画再生用にSVP4を導入。 - WebLog
- 動画がヌルヌルに!! 60fpsの倍速補完で滑らか再生してくれるフリーソフト 『Smooth Video Project』 | PCあれこれ探索
- YouTubeも60fpsでヌルヌル動画視聴できるSVPの次期Verが来る! - 週刊アスキー
- これがヲタクの生きる道! 動画のフレームレート補完
- 手持ちの動画を全部見返したくなるヌルヌル高画質化無料ソフトがヤバイ! - 週刊アスキー
- 備忘録:ソフトウェアで倍速補完ヌルヌル動画再生:気が向いたら何か書くtetのブロマガ - ブロマガ
Vulkan
- FadisさんはTwitterを使っています 「Vulkan 1.2.175で動画拡張が取り込まれた話。GPUはしばしば動画のエンコードやデコードを行うハードウェアを備えているが、この拡張に対応している場合そうしたハードウェアを使ってVkBufferに入った動画の断片をVkImageの列にデコードしたり、逆にエンコードしたりできる https://t.co/WYxlnjeh0T」 / Twitter
- Vulkan Video Arrives For New Industry-Standard Video Encode/Decode - Phoronix
- FadisさんはTwitterを使っています 「動画のデコードは変換の状態を持つVkVideoSessionKHRを作り、バッファを用意して、動画に対応したキューに対してvkCmdDecodeVideoKHRを積むことによって行われる。Vulkanの他のコマンド同様処理は非同期で行われる」 / Twitter
- FadisさんはTwitterを使っています 「対応する動画の形式は形式毎に拡張が定義され、さしあたってはh264によるデコード、エンコードとh265によるデコードが定義されている。h265エンコードは準備中で、将来的にAV1、VP9のための拡張も用意するつもりらしい」 / Twitter
- FadisさんはTwitterを使っています 「エンコーダを本当にプロセッサと独立したハードウェアとして積んでいる場合は動画専用キューが生えて、GPUでソフトウェアで動画をエンコード、デコードしてる場合はグラフィックのキューと同じやつに動画対応フラグが立つ感じになるのかな」 / Twitter
GitHub
- Bilibili/ijkplayer: Android/iOS video player based on FFmpeg n3.2, with MediaCodec, VideoToolbox support.
- My View - MantisBT
- jp9000/obs-studio: OBS - Free and open source software for live streaming and screen recording
- rexbu/VisioninSDK: 类似faceu的移动端视频美颜、视频滤镜、人脸实时关键点追踪、实时整形(瘦脸大眼睛等)、动态贴纸
- xl-player-developers/xl_player: A high performance Android media player, base on ffmpeg and MediaCodec, support VR video.
- begeekmyfriend/yasea: RTMP live streaming client for Android
- PipeWire
- PipeWire/pipewire: Multimedia processing graphs
- gopro/cineform-sdk: The CineForm video codec SDK.
- tophf/parsemkv: Matroska .mkv file parser in PowerShell, doesn't require external tools, produces a hierarchical object tree, optionally pretty-prints to console
- digital_video_introduction/README-ja.md at master · leandromoreira/digital_video_introduction
Twitter
- vyv03354さんのツイート: "@d_toybox OpenH264はvideo要素で使うには機能不足らしく、WebRTCでしか使いません。AdobeのDRMプラグインを非DRM動画でも使おうという案もありましたが、Facebookで問題が起きて頓挫したようです。"
- 「Firefox 33」リリース、OpenH264をサポート | OSDN Magazine
- Rockridgeさんのツイート: "動画コーデックのDaalaは改良が続けられており、過去18か月の間に、同一品質の動画のファイルサイズが50%減少した(2016年5月時点)。 / “Revisiting Daala Technology Demos” https://t.co/sWjpsN0dw1"
- Rockridgeさんのツイート: "Fx49:動画再生時にSSSE3命令セットを使用してパフォーマンスを向上。SSSE3はIntel Core 2以降のCPUでサポートされているようだ。 / “1266491 – Use an ssse3 scaler for v…” https://t.co/WxN116hQBb"
- Rockridgeさんのツイート: "Fx51:MP4メディアコンテナにVP9コーデックを格納した新規格をサポート。Netflixが提案し、Vimeoも関心を示している規格だとか。 / “1240412 – (vp9-in-mp4) Add VP9-in-MP4 s…” https://t.co/jev55QQrDY"
- Kentaro Ebisawaさんのツイート: "コンシューマ機器と自動車に搭載するH.264の要件の違い。H.264は標準規約だが、共通する標準実装があるわけじゃないよ、と。 ... why supporting H.264 isn’t enough for automotive https://t.co/Qx5xkaGHGK"
- videantis » 10 reasons why supporting H.264 isn’t enough for automotive Ethernet
- Shirouzu Hiroaki(白水啓章)さんのツイート: "はい。私もデジタル信号処理の専門家ではないですが。 離散コサイン変換すると、元データが復元可能な全ての全周波数成分が得られるので、低周波成分だけ取り出すと低解像度用に使い回せます。 (まあ使い回さずとも、画素数が1/4なら負荷は25%ですが)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「全ての全周波数」って、、、どうも「馬から落ちて落馬して」的な文章に気付かずに送ってしまうことが多い。… "
- yohさんのツイート: "マルチメディア処理の{En,De,Trans}coderのソースコードがカオスで汚ったないのは それが現実世界を反映しているからです 100%仕様準拠したデータなんてお花畑だし 対向装置も100%どこか間違ってるし その一方で動作性能要望と互換性サポート要望は無限にくるんですよ"
- Rockridgeさんのツイート: "特許で保護されたコーデックが私企業に独占された場合の危険性を訴えるSFというか寓話。独占が起きる前に声を上げ、行動を起こすべきだとする。MozillaはVR/ARを中心にWeb上で動画の役割が大きくなると見ているのだろう。 https://t.co/m6mZdF6y1i"
- くいなちゃんさんのツイート: "Radar(レーダー) って略語だったのですね。 RAdio Detection And Ranging だそうです。 Codec(コーデック) も COder/DECoder の略語ですし、略語と知らずに使っている単語は結構ありそうですね。"
- ゆきさんのツイート: "CORB shouldn't block application/dash+xml videos. https://t.co/5AZp6ox1m6"
- 2dae0c6dd178d1b0255a87164300a5d90f1bc033 - chromium/src - Git at Google
GPU
NVIDIA
- Fadisさんのツイート: "GPUは複数のスレッドを束ねたSM単位で動いている為、Draw時にメッシュは1つのSMで処理できる塊(Meshlet)に分割してから空いているSMに割り当てられる。プリミティブが増減しない限りMeshletを毎回求めるのは無駄なので、静的に分割したMeshletをGPUに与えて性能向上を図ろう、というアイデアが出てくる"
- Fadisさんのツイート: "NVIDIAが提案するメッシュシェーダは、任意のデータを読んで処理するMeshletを決定するタスクシェーダと任意のデータを読んでMeshlet毎にプリミティブを生成するメッシュシェーダの2つのシェーダからなり、頂点、テセレーション、ジオメトリシェーダと固定機能の頂点フェッチとカリングを置き換える"
- Fadisさんのツイート: "NVIDIAによるメッシュシェーダの解説 https://t.co/c1su8LOMF3"
- Introduction to Turing Mesh Shaders | NVIDIA Developer Blog
- Fadisさんのツイート: "割といつもの事だけど、NVIDIAさんカジュアルに巨大な変更を拡張で突っ込んでくるなぁ"
- Fadisさんのツイート: "NVIDIAさんの拡張が豪快すぎる事例としては、グラフィックパイプラインとは別に新しいパイプラインを追加してキューとメモリとシェーダのフォーマットだけVulkanと共有した物をVulkanの拡張と言い切ったレイトレーシング拡張なんてのもある https://t.co/jkWFTL0IMO"
- VK_NV_ray_tracing(3)
- GPUはいつ描画するのか? | ひにけにGD
- OpenGLでの描画のタイミング 【OKWave】
- OpenGLで描いて画像ファイル出力 【OKWave】
- 第三回_プレゼン資料(なるほど3Dグラフィック描画の仕組み).pdf
- DrawCall (ドローコール) って何? 描画パフォーマンスを考える一つの指標を見る - Tech Inside Drecom
- Fadisさんのツイート: "モバイルでなくても「プロセッサよりメモリが辛いからでっかいテクスチャを貼るな生成しろ」はイマドキのGPUだとよく言われるな"
- Fadisさんのツイート: "とはいえ、デザインするマンにシェーダの知識がない体制で開発する場合、丹精込めて人間が描いた絵を貼るしかなくて、結果驚きのもっさりゲーム誕生する"
- 本の虫: ブラウザーのCanvas/WebGLのブラックリスト
- 本の虫: OpenGLドライバー品質の実情
- 本の虫: DolphinエミュレーターとOpenGLドライバー、栄光と恥
- KaiGai Kohei 🌻さんのツイート: "write combined modeでGPU device memoryをマップしたら、memcpy()によるRAM2GPU転送でもソコソコの転送速度が出るという学びを得た。"
- KaiGai Kohei 🌻さんのツイート: "しかも仮想アドレスを持っているという事は、NVME READコマンドをセットアップするのにScatter Gather Listを使えるという事になるのかな。 (今までは PRP List を使っていた)"
- GPUドライバのテストフレームワーク「GraphicsFuzz 1.2」リリース | OSDN Magazine
- CUDAでカーネル関数がスキップされる(ように見えた) - in neuro
- Fadisさんのツイート: "PS4をエミュレートする猛者現る。OrbitalはCPUにx86の仮想化支援を使い、GPUに対する操作を全てVulkanの操作に変換してホストのGPUで実行するPS4エミュレータ。この為にAMD GPUのネイティブバイナリを入力としてSPIR-Vを出力するコンパイラを実装してしまったらしい https://t.co/K4eIs2r9CK"
- Orbital: A PlayStation 4 Emulator That Is Emulating The PS4's AMD GPU Using Vulkan - Phoronix
- 島鉄雄さんのツイート: "ゲームはフレームバッファがトリプルで GPU のコマンドバッファもダブルバッファだから、入力した結果を見てるのは最低でも3~4フレームずれてる。 テレビ側は速い物でも遅延は1フレーム程度あるから、ゲーム機で遊んでても入力から4~5フレームの遅延がある。 ネットで数フレーム遅れても気にならない… https://t.co/LB2SEP3BPQ"
- 島鉄雄さんのツイート: "ちなみに、GPU のコマンドバッファをダブルにするのは CPU → プレイヤーの入力に応じて描画コマンド作成 GPU → 前のフレームの描画コマンドを実行 とする事で、CPU と GPU をフレームの頭から同時にスタート出来るから。"
- 島鉄雄さんのツイート: "ただ OpenGL ES 使うとコマンドバッファという概念がないから、みんな CPU で処理中に残り時間が無い所で Draw コールして処理落ちしまくってるかもしれない そうならないように、自前でコマンドバッファを作成して、フレームの頭から高速に Draw コールに変換して、CPU の処理は別スレッドでやるべし"
- はじめてのにき(2019-04-10)
- Intel HD Graphics - OSDev Wiki
- Web High Level Shading Language | WebKit
- 「WSL 2」に「DirectX」が追加 ~将来的にはLinux GUIアプリへの対応も - 窓の杜
スライド
- Next Gen Rendering Engine (BlinkOn 8) - Google スライド
- 今、我々は、 GUI の設計について 何を考えるべきか // Speaker Deck
- Servo parallelism
- Kentaro Haraさんのツイート: "「Blinkレンダリングエンジンって何やってるの?」という話をとてもわかりやすく解説したスライドがこちら(https://t.co/QFrSQLvgG0)。HTMLが届いてからそれがピクセルとして描画されるまでに舞台裏で何が起きてるのかがよくわかる。Blinkのレンダリングパイプラインはよくできてると思うのです。"
- Life of a Pixel 2018 - Google スライド
- Rockridgeさんのツイート: "WebRenderの特徴、長所と短所、従来のグラフィックスパイプラインとの違い、Pathfinderとの関係などについて述べたスライド。 / “201808-webrender” https://t.co/V5K6PkSyDv"
- pcwalton.github.io/slides/201808-webrender/
- ベジエ曲線のなめらかさの話 / Bézier Smoothness - Speaker Deck
- グラフィックデザイナーやディレクターがhtmlコーディングの指示に関して注意すべきこと / Shiro Kuro Inc. // Speaker Deck
- ふんいきがわかるCSSレイアウトの知識 | Money Forward Engineers' Blog
- ふんいきがわかるCSSレイアウトのちしき // Speaker Deck
- HTML6 でも CSS4 でもない Web 技術のゆくえ // Speaker Deck
外国語-1
Wikipedia
- Keyboard layout - Wikipedia
- AltGr key - Wikipedia
- QWERTZ配列 - Wikipedia
- Technical standards in Hong Kong - Wikipedia
- British and American keyboards - Wikipedia
- アラビア語キー配列 - Wikipedia
- Arabic keyboard - Wikipedia
- Dzongkha keyboard layout - Wikipedia
- Hebrew keyboard - Wikipedia
- InScript keyboard - Wikipedia
- Urdu keyboard - Wikipedia
- デッドキー - Wikipedia
- Dead key - Wikipedia
Twitter
- Mantarohさんのツイート: "1590円で改善。 やはり、英語圏(特にUS圏)に合わせた仕様が多いなとキーボード変えてから気が付く…… "
- Urabe, Shyouheiさんのツイート: "英語キーボードの人気が根強いという言い方には違和感しかない。日本みたいな縮小する市場で独自規格を使い続けてる方が「根強い人気」という表現でしかるべきだろう。長期的にはJISキーボードが淘汰されていく流れは不可避だよ。製造コストが回収できなくなる日が来るもん。 https://t.co/nEbt598Is6"
- 「英語キーボード」の根強い人気が続く理由 - ITmedia NEWS
- Urabe, Shyouheiさんのツイート: "日本の市場が縮小するのはつまるところ日本の人口が減るからなのであってこればかりは今から急に仕込んでも何十年単位でどうにもならん。キーボードなんてどんなマニアでも100枚200枚買うようなものでもない。人が減りゃそれだけ市場が縮むというだけの話だ。"
- なかのん&マジックさんのツイート: "そーいや昔、USのAmazonでブラジルのポルトガル語キーボードって書いてるのを発見したんで取り寄せたら、ポルトガルのポルトガル語キーボード届きやがったことが。半分返すから勘弁して的なメールで折れたけど。面倒だったんで。"
- なかのん&マジックさんのツイート: "ABNTじゃないキーボードなんて表面の刻印の問題だけで価値ねーよ……"
- なかのん&マジックさんのツイート: "ちなみに、商品画像は超低解像度で見にくかったけど、左Shiftの横にABNT固有のキーがあるのは分かってたんで単純にその業者が悪い。"
- なかのん&マジックさんのツイート: "Macに純正じゃないキーボード接続した時に左Shiftキーの横のキーを押ささせれるのはそういう訳です。"
- なかのん&マジックさんのツイート: "左Shiftと右Shiftの横にABNTかJISの拡張キーが存在してるので、あの判定方法考えたヤツは頭良い。"
- KIMATA RobertHisasiさんのツイート: "数字の種類、ラテン文字やキリル文字などと共に使われるアラビア数字とは別にアラビア文字と共にで使われるインド数字があり、さらにアラビア文字で数を表すアラビア文字記数法があるので素で混乱する"
- なかのん&マジックさんのツイート: "アラビア語のキーボード見た時に最初に違和感あったのは、アラビア数字じゃないってことでした……"
- なかのん&マジックさんのツイート: "タイ語レイアウトなんかもそうだけど、ASCIIの数字が常に入力されるとは限らないので、i18nなキー処理では入力される文字を見ておけば処理できるわけでもなく。"
- なかのん&マジックさんのツイート: "FirefoxのCtrl+1とかは物理的に数字キーなので別条件も追加確認してユーザの意思をくみ取ろうとしてたりします。まだバグあるけど。"
- なかのん&マジックさんのツイート: "あとはスペースキーですな、物理的にスペースキーかどうかを特別に確認してるのは。どのスペース文字か忘れたけど、ちょいちょいとASCIIの空白以外がデフォルトなレイアウトあります。"
- 外国語キーボード(ドイツ/スペイン/イギリス/イタリア/フランス/中国/韓国等) | 海外ハードウェアの購入なら「ユニポス」
- Happy Hacking Keyboard | 特定の製品に関わらない問合せ | PFU
- 「chinese USB simplify」に該当する海外通販 - セカイモン
- 「chinese USB Traditional」に該当する海外通販 - セカイモン
- 「Inscript USB」に該当する海外通販 - セカイモン
- 「Urdu USB」に該当する海外通販 - セカイモン
- 「Arabic USB」に該当する海外通販 - セカイモン
- 「Persian USB」に該当する海外通販 - セカイモン
外国語-2
Wikipedia
- 列強 - Wikipedia
- ネイティブスピーカーの数が多い言語の一覧 - Wikipedia
- List of languages by number of native speakers - Wikipedia
- InScript - Wikipedia
- Help:特殊文字 - Wikipedia
中国語
- 中国語入力方法 - Wikipedia
- Chinese input methods for computers - Wikipedia
- 簡体字 - Wikipedia
- 繁体字 - Wikipedia
- 英語 - Wikipedia
- Help:多言語対応 (インド系文字) - Wikipedia
ヒンディー語
- ヒンディー語 - Wikipedia
- Hindi - Wikipedia
- デーヴァナーガリー - Wikipedia
- Devanagari - Wikipedia
- Help:多言語対応 (インド系文字) - Wikipedia
- スペイン語 - Wikipedia
アラビア語
- アラビア語 - Wikipedia
- Arabic - Wikipedia
- アラビア文字 - Wikipedia
- Arabic alphabet - Wikipedia
- アラビア文字化 - Wikipedia
- ポルトガル語 - Wikipedia
ロシア語
- ロシア語 - Wikipedia
- Russian language - Wikipedia
- キリル文字 - Wikipedia
- Cyrillic script - Wikipedia
- ドイツ語 - Wikipedia
- フランス語 - Wikipedia
韓国語
- 朝鮮語 - Wikipedia
- Korean language - Wikipedia
- ハングル - Wikipedia
- Hangul - Wikipedia
- Korean language and computers - Wikipedia
ペルシア語
- ペルシア語 - Wikipedia
- Persian language - Wikipedia
- ペルシア文字 - Wikipedia
- Persian alphabet - Wikipedia
- ペルシア語のラテン文字表記法 - Wikipedia
- Romanization of Persian - Wikipedia
ウルドゥー語
- ウルドゥー語 - Wikipedia
- Urdu - Wikipedia
- ウルドゥー文字 - Wikipedia
- Urdu alphabet - Wikipedia
- イタリア語 - Wikipedia
中国語
- Nakamura Masatoさんのツイート: "https://t.co/YjcO62WMny 中国語のセパレーター教えてもらった。こういうの聞けてよかった"
- fxsjy/jieba: 结巴中文分词
- kayaさんのツイート: "ITfReadingInformationUIElementって中国語のIMEで使われているReading Windowの為にあるっぽい。 https://t.co/uC7w9MwtGf https://t.co/12xcs2Wugv"
- なかのんクエストさんのツイート: "最近、Reading windowを使う中国語のIME減りましたね。インライン表示の方がモダンなもの、という流れがあるのかな?と。候補ウインドウ(candidate window)はどうしようもないのでそのままだけど。"
- パソコンで中国語を入力する方法 | どんと来い、中国語
- 中国語入力は「GOキーボード」が便利 - ケータイ Watch
- 中国語キーボードはどうやって漢字を打つのか 日本語なら「平仮名で入力 → 漢字変換」だけど……? - ねとらぼ
- Qin★确认过眼神,都是干货★さんのツイート: "最近中国では、単語の漢字のあとにピンインを入れるのが流行ってる、これは決して発音がわからない人用ではなく、建前と本音を同時に表現する書き方で、よくsnsで使われる。例えば「不(gu)小(yi)心(de)」、建前は不小心(わざとじゃない)だけど,本音は故意的(わざと)。"
- Qin★确认过眼神,都是干货★さんのツイート: "中国の入力アプリもキャッチアップが速くて、 太贵了(たかすぎ)と入力したら、建前提案してくれた。 用(tai)不(gui)惯(le) (使い慣れないなあ) といかにも1万元もするダブルsimのiphoneが買えるかもしれない口調で。wwww https://t.co/NfLivycZkp… https://t.co/zsw7wCD99n"
- Qin★确认过眼神,都是干货★さんのツイート: "たしかにこの本音&建前、日本語でめっちゃ使えるじゃん。 例えば: 退(じ)勤(ゆう)時間 仕(かん)事(きん)中 とかかなあ ٩(๑❛ᴗ❛๑)۶ #本音と建前同時表示を使ってみよう"
- Qin★确认过眼神,都是干货★さんのツイート: "多くの方々から、これは日本でもあるルビ遊びだと教えてくださって、 日本のルビもめっちゃ面白いじゃないですか。 キラキラネームもこちらの類に入りますかね。 なんか、SNSでの日中共通のなにかを発見した。^^"
- Qin★确认过眼神,都是干货★さんのツイート: "日本語でも、ルビ遊びを提案してくれるような入力アプリとかないかなあ🤔"
- ランダムな文字列っぽい「ji32k7au4a83」というパスワードが大量のユーザーに使われていた理由とは? - GIGAZINE
- ドイツ語キーボードの設定と配列(Windows7) | ドイツ便利帳
- ドイツ語のウムラウトやエスツェットを入力する方法 | ドイツ便利帳
- 海外「あれ?日本人や中国人はどうやってキーボードで文字入力してるんだ…?」 【海外の反応】 : 海外の万国反応記
- Mac で ハングルを入力する方法 | Mac | 情報航海術 - Office-TAKU.com -
- 韓国語IME操作法 - かじりたてのハングル
- ヒンディー語入力の方法
- 東外大言語モジュール
- 世界の国々で「2番目に最も使われている言語」は何なのか? - GIGAZINE
- ハングル入力からの漢字入力の方法(Mac OS X) : みかんたろうのなまけたろ
- なかのん&マジックさんのツイート: "SinharaのキーボードレイアウトはWindowsに標準で入ってるのに、バグ報告して来た人は、keyboard-driver (と言ってたけど実体はTIPだった)を入れないと、Sinharaは入力できないんだよって言ってて、混乱してる。"
- なかのん&マジックさんのツイート: "Sinhalaだったか。"
- なかのん&マジックさんのツイート: "インドもそうだったし、南アジアの文字入力周り、日中ほどのややこしさはなんだけど、とにかくサードパーティーの入力ソフト(IMEとかキーメッセージをフックしてどうこうしてたり)のデキが悪い感じ。"
- UniversalDependencies/UD_English-EWT: English data
- なかのん&マジックさんのツイート: "韓国語キーボードのスペースの両側にある特殊キーがかるけど、日本でハングルキーボードを入手するのが難しくてあきらめてる人も多いかもしれない。でもあのキーはMac JISキーボードの英数とかなキーと同じキーなのでMac用のキーボード買えば幸せになる人も居るのでは。 https://t.co/QLu2lPPXAo"
- なかのん&マジックさんのツイート: "あと、ハングルのIMEの豆知識として、未確定文字列がある状態で矢印キーやEnter、スペースを押すと、未確定文字列の確定と押されたキー本来の処理と両方が必要になる。特にmacOSでテキストエディタ作ってるとハマりやすい。"
- なかのん&マジックさんのツイート: "日本語IMEは基本的には確定だけ発生して、何も起きないとき多いからね。例えばEnterで確定するけど改行は入らない。"
- なかのん&マジックさんのツイート: "Sinhala、Gujarati、VietnameseあたりもWindowsでIME使うのね。"
Per monitor DPI Aware
MS
- アプリの高DPI(High DPI)対応について 第1回 ~ 高DPIとは ~ – 田中達彦のブログ
- アプリの高DPI(High DPI)対応について 第2回 ~ アプリケーションの高DPIへの対応レベル ~ – 田中達彦のブログ
- アプリの高DPI(High DPI)対応について 第3回 ~ マニフェストでアプリのDPI対応レベルを変更する ~ – 田中達彦のブログ
- DPI に関連する API およびレジストリ設定
- High DPI Desktop Application Development on Windows (Windows)
- High DPI Scaling Improvements for Desktop Applications and “Mixed Mode” DPI Scaling in the Windows 10 Anniversary Update - Building Apps for WindowsBuilding Apps for Windows
- SetProcessDpiAwareness function (Windows)
- SetProcessDPIAware function (Windows)
- High DPI Desktop Application Development on Windows (Windows)
- DPI_AWARENESS enumeration (Windows)
- DPI_AWARENESS_CONTEXT handle (Windows)
- High DPI Reference (Windows)
- DPI_AWARENESS_CONTEXT handle (Windows)
- DPI_AWARENESS enumeration (Windows)
- 高 DPI ディスプレイでアプリケーションが正しく表示されるようにする方法 (Windows)
Adobe
- HiDPI/Retina ディスプレイへのアドビ製品の対応状況
- Hi DPI/Retina ディスプレイのサポートについて(Acrobat/Adobe Reader)
- Windows 用 HiDPI サポート
ASCII.jp
- ASCII.jp:Windowsと高DPIディスプレイ【その2】 8.1では異なるDPIを設定可 (1/2)|Windows Info
- ASCII.jp:Windowsと高DPIディスプレイ【その1】 8までのDPIスケーリング (1/2)|Windows Info
- ASCII.jp:Windowsと高DPIディスプレイ【その2】 8.1では異なるDPIを設定可 (1/2)|Windows Info
- ASCII.jp:Windows 10+高解像度ディスプレイでのアプリのボケはRS2で解消される|Windows Info
Twitter
- Rockridgeさんのツイート: "「Chomeはダメだが、FirefoxはPer Monitor DPI Awareで動作している」。Fx47で対応した。参照:https://t.co/iRImEajgkm / “【4K修行僧】Anniversary Updat…” https://t.co/K7QAEvo62O"
- Rockridgeさんのツイート: "Fx55:Windows 10 Creators Update以降の環境ではPer-monitor v2を使用するようになった。参照:https://t.co/G95AH5RfFJ / “1354020 - Use per-mo…” https://t.co/yoP6qGItDI"
- ぬるぽへさんのツイート: "windowsのフォントレンダリング、hiDPIなら気にならないみたいな論調あるけど1.5倍表示の4Kでも普通にかすんでるところがあるような"
- なかのん&マジックさんのツイート: "Per-monitor DPI環境になると、ウインドウのリサイズが遅いアプリって本当に使いにくくなるな。"
- Windows 8.1 で加わった Per-Monitor DPI と WPF での対応方法 | grabacr.nét
- WPFにおけるPer-Monitor DPI対応の実装
- Per-Monitor DPIに備える
- WPFのPer-Monitor DPIサポート(その4)
- 高解像度厨が Windows 8.1 のスケーリングについてのお話を書いてみる。(3) ~ WPF で無理やりスケーリング対応する - モノトーンの伝説日記
- Windows8/8.1時代のWin32プログラミング #sapporocpp
- Windowsの画面スケーリングをきちんと理解しよう
- Windows 8は、Win32 APIを置き換える
- 「秀丸エディタ」v8.69が正式公開、HD/4K混在マルチモニター環境での使い勝手が向上 - 窓の杜
- 【4K修行僧】Windowsの4Kスケーリング環境を検証する ~文字表示は美麗。ただし、非対応アプリも多数存在 - PC Watch
- 【4K修行僧】Anniversary Updateで4Kに優しくなったWindows 10 ~デスクトップアプリのダイナミックスケーリングにメス - PC Watch
- Windowsの表示サイズ変更設定(HiDPI表示) | EIZO株式会社
- 本の虫: 高PPIディスプレイへの対応の難しさについて
- Coding for High-DPI Displays in Windows | Dr Dobb's
- GUI総合 - ソフトウェアエンジニアリング - Torutk
- Creators Updateの不具合: T.Ishiiのソフト開発記
- Tungsten開発者ブログ: Tungsten 2.04 リリース
- kondoumh のブログ
- Visual StudioでWindowsアプリケーションマニフェストのdpiAwareプロパティを「モニタごと」に設定するにはどうすればよいですか? [visual-studio-2013] | CODE Q&A [日本語]
- 高DPIのサポート
- 高 DPI のサポート - Windows Forms | Microsoft Docs
- 構成要素の追加 Windows フォーム | Microsoft Docs
- .Net Framework 4.6 の高DPI対応でPer MonitorとPer Monitor V2を同時に設定する:るなおーびっと! - ブロマガ
- AC01_PDF_TS18 - AC01_PDF_TS18.pdf
- Per-Monitor DPI
- Application manifest for Per Monitor V2
- WPFのPer-Monitor DPIサポート(その4)
- デスクトップアプリの高DPI対応 #2 – アプリ側の高DPI対応の概要 – nishy software (ja)
Direct2D
COM
C
- C による COM オブジェクトへのアクセス
- マクロによる DirectX COM メソッドの呼び出し
- C 言語で IUnknown を実装します。
- インターフェイスを使用したコードでコンパイルエラーがでる-VC++-水無瀬の部屋
- MyComputer
- ショートカットファイルの情報を読みとる
- D3D9プロキシDLLの作り方 · GitHub
- [連載! とことん VC++] 第 1 回 COM 再入門 ~ COM オブジェクトの基本的利用 (COM クライアントの実装) ~ 言語: C++
- [連載! とことん VC++] 第 2 回 COM 再入門 ~ COM オブジェクトの基本的実装 ~ 言語: C++
- [連載! とことん VC++] 第 10 回 ネイティブ VC++ におけるグラフィックス オーバービュー、および Direct2D の基本的な利用方法 言語: C++
- COM(Component Object Model)についてふわっと学習していく その1 導入編 - Qiita
- COM(Component Object Model)についてふわっと学習していく その2 本当に言語非依存なのか? - Qiita
- COM プログラミング入門 - Web/DB プログラミング徹底解説
- COM総合研究所 - COM研究室
- C++ の仮想関数と VTable について - Qiita
- 仮想関数テーブル - Wikipedia
- Component Object Model - Wikipedia
- Component Object Model - Wikipedia
- IUnknown - Wikipedia
- IUnknown - Wikipedia
blog
UWP等
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う): biac の それさえもおそらくは幸せな日々@nifty
- WPFデスクトップアプリでDirect2Dを使う - Qiita
- チーズバーガー中毒: SlimDXでDirect2DのWPF連携
- Bitmap for WinForms
- Shinichi Aoyagiさんのツイート: "こんなん見つけました。C++/CX+Direct2DをC#から呼び出してるみたい http://t.co/JlWz67mX RT @LeonAkasaka @ch3cooh 原因わかりました。C++/CX コンポーネント側で d2d1.lib にリンクしていると失敗します。"
- Direct2D のDIP とやらがイマイチ判らない件 – Na___'s Diary?
- Direct3DとDirect2D/DirectWriteの連携 | shobomalog
- Direct2D/Direct2D とは - WisdomSoft
- ぶびびんぶろぐ: Direct2Dの初期化と単純な描画コード
- Direct2DでPDFを描画するAPIを使ってみた - イグトランスの頭の中
- Direct2Dで線の描画を行う - わびさびサンプルソース
- ホイール欲しい ハンドル欲しい » Direct2D と Direct3D10.1 の下位互換
- Direct2Dのお話。 古いブログ - ぐうたらずのーと (コンピュータ編)
- DirectX - Windows10でDirect2Dのサンプルを動作させるには(39165)|teratail
- Direct2D と Direct3D 11 の共有方法 | Mitsunagi Studio
- Direct2DとWindows Imaging Component(WIC)で透過PNGを表示 - Gobble up pudding
- [ 194_線の端点形状の変更と Direct2D ] - Mr.XRAY
- Direct2Dが有効化されているWindowsでのフィルター
- DirectX Graphics に関するメモ (Direct3D,Direct2D,DXGI ほか)
- S.F. Blog:Direct2Dの紹介
- Direct2DとGDIとDX10。 – ひねもす庵
- JWWのDirect2DのON・OFF | なまあず日記style
- デザイン至上主義プログラマー: Direct2Dを使った実用的アプリケーションサンプル
- やはり、Direct2Dを使う: T.Ishiiのソフト開発記
- LOHACO by ASKUL - 個人向け通販
- 本の虫: Direct2DがVistaにきたらしい
- Direct2D 最強伝説!! | Crystal Dew Blog
- Direct2DでPDFを描画するAPIを使ってみた - イグトランスの頭の中
- Direct2D API の概要 (Windows)
- Direct2D (Windows)
- Direct2D について (Windows)
- Direct2D - Wikipedia
- Direct2D - Wikipedia
- ASCII.jp:Windowsの画面表示を変えるDirect2DとDirectWrite (1/3)|あなたの知らないWindows
- 2次元汎用CADソフト「Jw_cad」が約3年ぶりのアップデート - 窓の杜
- Wine 1.8公開 - Direct2D/DirectWriteをサポート | マイナビニュース
- [C++] MFC アプリケーションのビューの中で、Direct2D を使用する 言語: C++
- チュートリアル: MFC プロジェクトへの D2D オブジェクトの追加
- Windows-universal-samples/Samples/D2DPhotoAdjustment at master · Microsoft/Windows-universal-samples
- Direct2D キャンバスの使用 - RAD Studio
- Source Tree: /Core/Direct2D/ (master) - FooEditEngine (git) - FooEditEngine - OSDN
- Direct2DとDirectWriteハードウェアアクセラレーションを有効にしてFirefoxのグラフィックパフォーマンスを向上させてみよう | ライフハッカー[日本版]
DirectWrite
MacType
- 【DirectWrite】MacType v1.2016.830.0リリースと検証 - Segmentation fault
- 【DirectWrite】MacTypeまとめ(2016/11/17更新)【Window10】 - Segmentation fault
- MacType非公式パッチ (MacType Unofficial Patch) - しらいとブログ
- MacTypeが3年越しのアップデート – DirectWriteフック機能追加など – ミルログ
- MacType非公式パッチが公開され、DirectWriteの設定変更が可能に - AndroPlus
- DirectWrite のフォント レンダリングを改善する MacTypePatch | caretの日記 | スラド
Mozilla
- WindowsのFirefoxのフォントレンダリングをきれいにする - Qiita
- Makoto Kato ︎︎さんのツイート: "https://t.co/z90KTFvPe5 そもそもFirefoxのDirectWriteバックエンドはデフォルトの濃さで表示してないよ。これはJohnさんがMozillaにいたときにいろいろ拘って実装いれたやつだし"
- グーグル、「Chrome 69」安定版に不鮮明なフォントの問題--原因を調査中 - CNET Japan
Google
- 「Google Chrome」DirectWriteを無効にする
- DirectWrite Font Cache (obsolete) - The Chromium Projects
- DirectWriteに対応しフォントレンダリングを強化した「Google Chrome 37」安定版がリリース - GIGAZINE
- Windows版ChromeでDirectWriteを有効にしたところ日本語の文字が崩れた話 - 酢ろぐ!
エディタ
- 無償テキストエディター「Mery」v2.4.0のβ版、DirectWriteやPer-Monitor DPIに対応 - 窓の杜
- Mery が DirectWrite に対応した - MoonNote
- 秀まるおのホームページ(サイトー企画)-秀丸エディタ Ver8.10 新機能の紹介(DirectWrite対応)
- Sakura Editor / PatchUnicode / #482 DirectWrite
- VimのDirectWriteの設定方法 — KaoriYa
- DirectWriteで描画したい · Issue #262 · vim-jp/issues
- DirectWrite の概要 (Windows)
- DirectWrite (Windows)
- DirectWrite のレンダリング (Windows)
- DirectWrite の "Hello World" サンプル (Windows)
- DirectWrite - Wikipedia
- DirectWrite - Wikipedia
- 第113話:DirectWriteとフォントの固定化 - #モリトーク - 窓の杜
- 何故WindowsのフォントレンダリングがGDIからDirectWriteになろうとしているのか - Wicachi~Windows好きなmicachiの日記~
- 【私的】Windows フォントのテストだYO!【DirectWrite】 - CSSめも@Palm84
- ぶびびんぶろぐ: 大まかな概念:DirectWriteを使った文字列描画
- [要望] DirectWriteが有効な状態でのカスタムフォントの利用
- ディオルティスタ: 【C++】 DirectX11 - Direct2D,DirectWriteによるテキストの描画
- iceiv+putty
- 「WinFont+」開発記録 Part 6 - しらいとブログ
- 「WinFont+」開発記録 Part 7 - しらいとブログ
Vue.js
- Vue.jsの仮想DOMと差分レンダリングの仕組み① - Adwaysエンジニアブログ
- Vue.jsの仮想DOMと差分レンダリングの仕組み② - Adwaysエンジニアブログ
- Vue.jsの仮想DOMと差分レンダリングの仕組み③ - Adwaysエンジニアブログ
- Vonageにおけるマイクロフロントエンド - Yoav Yanovski氏のVue.JS Amsterdamでの講演より
GIGAZINE
- ブラウザはどのようにコンテンツをレンダリングしているのか? - GIGAZINE
- オンラインゲームはレイテンシを感じさせないゲームプレイをどのように実現しているのか? - GIGAZINE
- Google ChromeにPCのバッテリー駆動時間を3割増やす「バッテリー節約機能」が実装される予定 - GIGAZINE
- スマートフォンのバッテリーをより急速に消費させるのはどのようなウェブサイトなのか - GIGAZINE
- macOS版Firefox 70は6割以上も電力消費量を削減することに成功している - GIGAZINE
- GPUの脆弱性を利用すればブラウザ上に表示されたウェブページの内容を丸ごと盗むことが可能 - GIGAZINE
- Google Chrome 78安定版リリース、CSS変数へのフォールバック機能や新たな実験の仕組みなどを搭載 - GIGAZINE
- 「Bootstrap 5」のアルファ版がリリース、脱jQueryやCSSカスタムプロパティの強化など - GIGAZINE
infoQ
- Facebook、入力イベント処理を高速化するIsInputHandling APIを新たに提案
- WorkerDOMはJavaScriptプログラミングにDOM並行処理を加える
- Google ChromeのNever-Slow Mode
- GitKraken開発者のHamid Shojaee氏に、Git GUI開発時の経験について聞く
- CSS Grid Level 2, Subgridを採用
- CSS ContainmentがWeb標準に
- FacebookのCSS-in-JSアプローチ - Frank Yan氏のReact Conf 2019での講演より
- なぜ私たちはCSSフレームワークを使わないのか - Scott Tolinksi氏、Reactive Conf
- CSS Writing Modesが公式のWeb標準に
- Recoil - Reactの新しい状態管理ライブラリ
- Vue 3 Reactivity Internals - Vue.JS AmsterdamでのSarah Drasner氏の講演より
- より速く、より小さなVue3が間もなく登場 - State of the Vuenion 2020でのEvan You氏の講演より
- JotaiはReactの新しい小粒な状態管理ライブラリ
- Cypress 5.xがテストの再試行とシャドウDOMサポートを追加
- JAMstackの紹介
- AirbnbがVisxをリリース:Reactを使ったインタラクティブな視覚化のための低レベルでプリミティブなコンポーネントの集合
- Haskell Web Framework IHPは、型安全と簡易なWeb開発を目指す
- single-spa によるマイクロフロントエンド
- Qt 6がQMLを改善し、C++17を採用
- Angular v12がリリースされ、Ivyレンダリングエンジンに移行
- GitHubのWeb標準とWeb Componentsジャーニー
- Compat2021でブラウザベンダが互換性問題解決に手を結ぶ
- Quarkus 1.11の開発モードに新機能 "State Preserving Reload” が追加
- ピュアCSSチャートライブラリのCharts.CSS
Zenn
- Makoto Kato ︎︎さんはTwitterを使っています 「細かいところ、ツッコミどころ満載なんだけど、こういうのでみんな理解しちゃうのかなぁ https://t.co/etvpxAnzm8」 / Twitter
- ブラウザレンダリングの仕組み
- Makoto Kato ︎︎さんはTwitterを使っています 「馬鹿な。そんなエンジンあるの? "avaScriptの場合、ASTはJavaScriptオブジェクト ( JSON ) として表現されます。"」 / Twitter
POSTD
- 恐竜に教える現代のCSS – Part 1 | POSTD
- CSS Grid: One Layout, Multiple Ways | CSS-Tricks
- 恐竜に教える現代のCSS – Part 2 | POSTD
- 恐竜に教える現代のCSS – Part 3 | POSTD
- 私がscriptタグについて知っていること全て : 知られていない属性や実行順序など | プログラミング | POSTD
- パフォーマンスの文化を創る | POSTD
- フォント読み込みの影響を軽減するための新しい方法:CSSフォントディスクリプタ | POSTD
- アクセシブルなフロントエンドコンポーネントの完全ガイド - 後編 | POSTD
- アクセシブルなフロントエンドコンポーネントの完全ガイド - 前編 | POSTD
Qiita
- yobata / ピクポン pickupon CEOさんはTwitterを使っています: 「宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita現代のGUI開発において、必須となった宣言的UIというパラダイムシフトがあります。宣言的UIは、Facebook社が開発したReactに… https://t.co/PjuXBcC8FH https://t.co/i6DOEjSUTL」 / Twitter
- 宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita
- めくるめく粗挽きWebブラウザエンジンの世界 - Qiita
- CSSセレクタの優先順位の計算方法 - Qiita
- パフォーマンス計測に困らない!tracing活用術100 - Qiita
- Chrome の隠し機能 chrome://tracing (about:tracing) の使い方
Twitter
リフロー
- リフロー レンダリング - Google 検索
- 小説 リフロー - Google 検索
- Takashi KawasakiさんはTwitterを使っています 「小説すらリフローできるのに、ソースコードなんて言う論理の塊であるはずのものがリフローできないのは冷静に考えておかしい。ソースコードの管理に行番号なんていう昔ながらの方法しかないのが問題な気はするが・・・。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「コードの特定の部位を参照するのにxpath的な文法で・・・難しすぎて誰もついてこなさそう。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「内部的には、AST的なものがあればいいわけで、表向きには、IDE/エディタ上で、特定のソースの位置をクリックすると、そこに対応するASTの位置が提示されて、それをコピペして、場所を共有するみたいな・・・。」 / Twitter
間違い
- Makoto Kato ︎︎さんはTwitterを使っています 「細かいところをいろいろ突っ込みたくなるような内容だなぁ。微妙になんか間違ってることとか、触れなくてもいい話ふまれていることもある。なんかびみょー https://t.co/NJrPddYnzK」 / Twitter
- Webページがブラウザに表示されるまでに何が起こるのか?
- Makoto Kato ︎︎さんはTwitterを使っています 「hostsファイルのparserなんてWebブラウザが確実に行っているか?って話をまず言いたい。実際DoHのためにparserを持ってはいるが、hostsを見てってのは必ず言える話でもないと思うが。Optionalな話を書くのはどうかなぁと思う」 / Twitter
histric-1
- mattnさんはTwitterを使っています: 「Electron の省リソースな代替。Chromium を使わない Ultralight というクロスプラットフォーム WebKit を使うことで軽く高速なデスクトップアプリケーションを作れるらしい。 / “GitHub - ImVexed/muon: GPU based Electron on a diet” https://t.co/ClsxXfNiEU」 / Twitter
- ImVexed/muon: GPU based Electron on a diet
- ryoheyさんはTwitterを使っています: 「SPA作るの好きだけど、ブラウザの再発明じゃんっていうのめちゃごもっともだし、かなり頑張って作らないとリクエスト多すぎてずっとグルグルしててつらいやつになるから、もっとブラウザでよしなにできればなぁ」 / Twitter
- The Firefox UI is now built with Web Components - Brian Grinstead
- seya ʕ•ᴥ•ʔさんはTwitterを使っています: 「ついにデザインにもlintな時代か https://t.co/oEtMzjRcDR」 / Twitter
- Design Lint – Figma
- なかのん&マジックさんのツイート: "Geckoはパフォーマンスに直結する、グラフィックのレンダリング部分とUIに関する部分はプラットフォーム依存なものの、レンダリングエンジンそのものにはほとんどifdefが入ってないので、プラットフォーム変わってもレイアウトは基本、変化しない。"
- Fadisさんのツイート: "ゲームのプレイヤーが直接動かせる物が60fpsで応答していないとゲーマーさんはもっさりとした感触にすぐ気づいてしまうんだけど、背景でモクモクしてる煙とかが15fpsくらいで描かれてても案外バレないから、今時のゲームは画面内の物によってバラバラな頻度で描画を行うことがよくある"
- Fadisさんのツイート: "問題は、低い頻度で描画されている物に高い頻度で描画されている物がぶつかってしまって、高い頻度で描画しなければならないものに格上げされる事がある点で、ある程度衝突を予測して格上げをしておかないとぶつかった瞬間からの数フレームの応答が悪くなる"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ブラウザの逐次レンダリングで、タップ押下位置のDOM要素が変化してから0.5秒くらいは、タップを無視する機能をつけてほしい。」 / Twitter
- ドッグさんはTwitterを使っています 「SkRasterPipeline の最適化が Skia の描画の速さの理由らしい https://t.co/rwmNeGXdke」 / Twitter
- skia/SkRasterPipeline_opts.h at master · google/skia
- uint256_tさんはTwitterを使っています 「TeXのコンパイルが遅いのって、何が理由なのですか」 / Twitter
- 画力・博士号さんはTwitterを使っています 「@uint256_t プロファイリングして調べたわけではないですが,組版処理アルゴリズム上段落を組み上げるときに行を分ける箇所を選択する処理で少なくとも O(n²) 以上の計算量を要し,典型的なケースでも線型ほどには良くならないので,そこがボトルネックになりそうには思います」 / Twitter
- uint256_tさんはTwitterを使っています 「@bd_gfngfn なるほど. (そういえばブラウザを作っていたときに同じようなことで悩んでいた気がします)」 / Twitter
- ヨコヤマ(横山哲也)さんはTwitterを使っています 「むかしのモニターが黒背景なのは、ベクタースキャンの名残。でも、VT-100の時点で白背景も設定できた。ウィンドウが白背景なのはPARCの人たちが「紙は白い」と主張したから。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「黒背景白文字 vs. 白背景黒文字、歴史的背景が気になるというか。 昔のモニタが黒背景なのは、滲み等考えるとそのほうが読みやすいから? ウィンドウ環境で白背景黒文字へ移行したのには、PCの場合(DTP前提の)WYSIWYGもあるだろうけど、Mac以前からあるワークステーションもそういう理由だったの?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「1964年に System/360 とともに発表されたビデオターミナルを見ると、2250 はベクタースキャンで 2260 はラスタースキャンだったのか。後者は音響遅延回路(管?)を使って描画内容を記憶していたと https://t.co/8Q5ZhnYHRP」 / Twitter
- IBM 2260 - Wikipedia
- ShigeyaさんはTwitterを使っています 「@n_soda @yume_piece1010 @kazuho black on white は Xerox Alto (1973)とかあの筋のものとP ERQ(1980年頃)とか、Symoblics(これも1980年頃)ぐらいしかなかったと思います。Altoが圧倒的に先 https://t.co/AqZT1SLhkS」 / Twitter
- PERQ - Wikipedia
- sumimさんはTwitterを使っています 「@shigeyas @n_soda @yume_piece1010 @kazuho Altoも1968年のNLSの模倣なので、これが今のblack-on-whiteの元ですね。NLSでは通常のwhite-on-blackの画面をビデオカメラで撮影し、それを反転出力していました(参考→https://t.co/6PdauZLfIr ) 切り替え可でblack-on-whiteの方が好まれたらしいですが肝心の何故そうしたかは分かりませんでした^^;」 / Twitter
- The Mother of All Demos, presented by Douglas Engelbart (1968) - YouTube
- 7594591200220899443さんはTwitterを使っています 「WDR is a format to separate the website's information and design そう、それこそがまさに古代、Websiteと呼ばれていた概念…セマンティックウェブ…XSLT… https://t.co/6PHEBNA09M」 / Twitter
- WDR
- 7594591200220899443さんはTwitterを使っています 「昔の人の失敗したアイディアを少しは研究してからじゃないと結局失敗するアイディアを再発見してもしゃあないで。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「「自分はデザインが苦手だからデザインの事は他人に押し付けたいです」っていうソリューションは結局うまくいかない。ユーザーが求めているのはむしろデザインの方なのであって情報なんてさして必要とされていない。分離すれば苦しむのはデザインできない奴の方。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「Electronって、まぁメモリ食いまくるとかいろいろ問題もあるけど、Windows GDIでどうやっても解決できなかったウィンドウのスケーリングの問題とかをビルトインの仕組みで解決できてるとか、プレゼン時に好きなズーム率を簡単に設定出来るとか、その辺は極めて優秀なんだよなぁ。」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「KOBA789さん:Immediate mode GUI: ・ステートレスで、毎フレーム全部描き直す →ビットマップを差分で使いまわしたりしない ・ゲームエンジンなどと相性のいいGUIアーキテクチャ ・今回のCADでもこれを採用 #kernelvm #kernelvm_tw」 / Twitter
- FadisさんはTwitterを使っています 「GPUの計算は速い が GPUへのコマンドの発行は遅い ので GPUへのDrawコールの頻度を減らす。やってることがゲーム屋の定番の最適化話になってきた #kernelvm」 / Twitter
- ドッグさんはTwitterを使っています 「DOM の変更にブレークポイント張れるの知らなかった.めっちゃ便利そうだ…」 / Twitter
- Minko GechevさんはTwitterを使っています 「DOM breakpoints allow you to find what code modifies your page 🤯 In @ChromeDevTools: ‣ Right click on an element ‣ Break on ‣ Select: subtree/attribute modification, or node deletion ⚡️ https://t.co/1BU42eS141」 / Twitter
- Nao_uさんはTwitterを使っています 「80〜90年代の日本のいろんなゲーム会社で使われたドット絵エディタや描画手法の資料。それぞれ個性があって面白い。すごい分量 https://t.co/lwx2AavhUc」 / Twitter
- VGDensetsu: Designing 2D graphics in the Japanese industry
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「お絵描きのマーカー処理。 ・マスク(画素とマーカー色をAND処理) ・半透過(画素とマーカー色をαブレンド) とあり、WindowsのSnipping Toolは前者、他のお絵描きソフトでは後者もある。 で白背景なら前者が文字がクッキリ、後者はぼんやり(最上段参照)。 だが黒背景だと前者はダメダメに。 https://t.co/bltgzh2c52」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、IP Messenger のキャプチャ用お絵描き機能は、無駄に頑張っていて、どちらでも選べる(笑) https://t.co/6fmy9vV8ae」 / Twitter
- なかざんさんはTwitterを使っています 「Reactを知らないでフロントエンドのプロジェクトに入ってきたおじさんと仕事をしたとき、侮りはせずに淡々とVDOMの差分管理の説明をしていたら、「あ、それMosaic時代に表示用と検証用のDOMツリーを生やして自作したことがある仕組みかも」と言われて、椅子から転げ落ちました」 / Twitter
nuklear
Desktop Engine
- Arcan | IRC: #arcan @ chat.freenode.net
- letoram/arcan: Arcan - [Display Server, Multimedia Framework, Game Engine] -> "Desktop Engine"
- Home · letoram/arcan Wiki
- vurtun/nuklear: A single-header ANSI C gui library
- P/ECE研究室
- P/ECE研究室さんのツイート: "P/ECEで、オープンソースのGUIライブラリ「Nuklear」を使ってみました。 https://t.co/mUz8lBmah9 Nuklearは、少しマイナーみたい(?)ですが、とても使いやすいと思います。気に入りました。 https://t.co/uf1L6thBjn https://t.co/Bm8yINtVRX"
- SL-RU/MakiseGUI: Graphics and GUI library for embed systems.
- LCUI - Build simple desktop apps with C, XML and CSS
- lc-soft/LCUI: A simple GUI library, it is written in C, support XML and CSS.
- xamarin/flex: Flex is a flexible box layout system written in C, designed to be easy to consume from other languages
- LittlevGL - free embedded graphics library
- littlevgl/lvgl: Embedded graphics library with transparency, animations and anti-aliasing with NO Double buffering.
- andlabs/libui: Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
- 渋川よしきさんのツイート: "libuiが沈黙してしまったの悲しい"
- 渋川よしきさんのツイート: "libui、リスト対応の方針決めました!で時間が止まっているけど、ガリガリ使える感じなのか・・・"
- OpenGL な UI を作るライブラリ一覧 - Qiita
- OpenGLやDirectXなGUIにimguiが最強すぎる - Qiita
- ocornut/imgui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
- ocornut/imgui_club: Nice things to use along with dear imgui
- 本の虫: KMSCON
- 本の虫: KMSCONがだいぶ実用的になってきたようだ
- りやさんさんのツイート: "Nuklear、本質的には内部のコンテキストから頂点、インデックスリストと、テキストの場合はアトラステクスチャのUVを吐き出すだけのシステムなので、めっちゃ取り回し良くて軽量。なんで日本で流行ってないんだ?"
- OpenSiv3D+nuklearでGUIを実現する - Qiita
- DXライブラリ+nuklearでGUIを実現する - Qiita
- VisualStudioとC++だけでAndroidアプリをつくる - NuklearによるGUIの表示 - √g
ncurses
Wikipedia
- ncurses - Wikipedia
- ncurses - Wikipedia
- curses - Wikipedia
- curses (programming library) - Wikipedia
- 端末 - Wikipedia
- Computer terminal - Wikipedia
- Terminfo - Wikipedia
- Terminfo - Wikipedia
- Termcap - Wikipedia
- Termcap - Wikipedia
- ncurses関連manエントリ/関数一覧 - Qiita
- ncurses 3x 非公式日本語訳
- ncurses入門してみた – Linux Training X
- ソフトウェアインストールメモ
- curses
- ncurses(3) manページ
- ncurses(3)
- ncurses(3) - Linux man page
- Curses Programming with Python — Python 3.7.0 documentation
- ncurses
- Man page of curs_window
- Ncurses programming guide
- Linux Manpages Online - man.cx manual pages
- NCURSESライブラリ - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- NCURSES雑多な自分メモ01 - Dr.Deamon64 Wiki - Dr.Deamon64 - OSDN
- ANSI Escape Codes
- TUIツール「Notcurses 2.4」公開、WindowsとmacOSもサポート | OSDN Magazine
Desktop Entry Specification
- Desktop Entry Specification
- 本の虫: Desktop Entry Specification
HiDPI
- HiDPI - ArchWiki
- 「Ubuntu 14.04 LTS」レビュー--高解像度化対応やLinuxカーネル3.13採用など - CNET Japan
- ほげめも: Linux HDMI で WQHD まとめ
- won't fix: Gnome 3.10 / GTK3.10 でのHiDPI
- EIZOの27インチ4K液晶ディスプレイEV2785-BK購入後のレビュー USB Type Cケーブル1本で映像出力・給電に対応 | ITハンドブック
- 研究千年牛酪情報保管庫菩薩さんのツイート: "HidpiマルチモニタはWindowsでもおもしろ挙動するしそういうものなのかなという思いがある…"
- まさみさんは語りたいさんのツイート: "マルチモニタ時のHidpiは2年以上前から苦しめられていて、常時2画面を諦めた主な理由だったりする。"
- Takashi Kawasakiさんのツイート: "僕はWindowsで4K液晶とかを150%設定で使ってるけど、古いアプリのスケーリングは、「システム(拡張)」という謎テクノロジーで「割と」綺麗になるのであんまり困ってない。 というか、ほとんどの古いアプリは既に捨てた。… "
- タスクマ ネージャーでアプリのDPI対応を確認可能 ~「Windows 10 19H1」Build 18252 - 窓の杜
- 次期Windows 10のタスクマネージャーでDPIスケーリング対応アプリが確認可能に - PC Watch
- なかのん&マジックさんのツイート: "予想したけど、それ以上に200%表示はフォントがWindowsでも綺麗だ。これが標準的な環境になっていかなあかんな。"
- なかのん&マジックさんのツイート: "これ、HiDPI対応のアプリで、200%表示だと、MS Pゴシック等々もベクターフォントとしてのレンダリングになるのか?"
- なかのん&マジックさんのツイート: "そうか、200%表示のWindowsって見た目の印象がmacOSと変わらんのか。"
- なかのん&マジックさんのツイート: "そういえば、Visual StudioってPer Monitor DPI対応してないのね……これってそんなにハードル高い実装なの?" (1)
- なかのん&マジックさんのツイート: "そういえば、Visual StudioってPer Monitor DPI対応してないのね……これってそんなにハードル高い実装なの?"
- Masaru Iritaniさんのツイート: "ビルド 18298 でポインターのサイズを最大にすると面白いぐらい大きくなりますね。これなら 4K ディスプレイでもすぐに見つけられます。スクリーンショットでお見せしたいところですが、どうやらポインターは映り込まない模様です。 #WindowsInsiders"
- 渋川よしきさんのツイート: "HiDPIがまともにサポートされていて(外部ディスプレイと内部ディスプレイで個別にDPI設定できる)、ピクセル単位スクロールができるタッチパネルがきちんと動くLinux機が出たらメイン機にしたいとは思っているけど、すこーしだけ足りない。"
- Bug-org 1557587 When I open 2 or more windows in different DPI monitors, window size in non-primary monitors are not restored correctly - WebStudio
UI デザイン
- 水原滝さんのツイート: "「SwitchのUIにははい、いいえがない」っていうのは言われて初めて気づいたな。「はいかいいえかを判断するには文章を読まなければならない」から、「ボタンを読めば本文を読まなくてもいい」って発想なのか。 https://t.co/8RKAEJpAYi… https://t.co/DQwjFiop6d"
- 【CEDEC 2018】明快で軽快! Nintendo SwitchのUIを触るだけで楽しい理由 - GAME Watch
- 「OKボタンは右か左か」問題から始まったゲーム「Factorio」のGUIデザインの工夫 - GIGAZINE
- メールアドレスの確認フィールドをなくすべき理由 | UX MILK
- IIMURA Takujiさんのツイート: "例えばこんな感じ。 ・見えない物は気づかれないので使わない ・目的の機能へ1タップで行ける(機能が見えている)ようにする ・ファイルやフォルダの概念は理解されないので使わない ・動作を変更する設定等は解ってる奴しか弄らないので標準設定でも問題ないように ・ユーザID等の文字列を覚えさせない"
- 「Amazonのプライムビデオが難しい」というおかんの言い分を聴いてみた|Tsutomu Sogitani|note
- スマホUI考(番外編) UIやUXを劇的に改善する、『ビッグオー駆動型開発』とは | fladdict
- Manabu Uenoさんのツイート: "一般的なフォームで、名前や電話番号の入力欄の分割をやめるよう指摘すると、DBの都合でできないと言われることがある。なぜDBのフィールドを分けるのか聞くと、「できるだけ細かく情報を取った方がいい気がするから」という運営者の曖昧な管理欲しかなく、入力コストとのバランスが考慮されていない。… https://t.co/oJixrHiUi3"
- Manabu Uenoさんのツイート: "例えば電話番号の入力操作について分割式と単一式を GOMS-KLM で試算すると、分割式は約70%も多く時間がかかることがわかる。また、入力欄を必要以上に分割することはUIの国際化でもよく問題になる。名前、電話番号、住所などは文化圏によって書式上の区切りの数や順序が異なるから。… https://t.co/FXaegHiByQ"
- Manabu Uenoさんのツイート: "もちろん書式を分割することに正当性がある場合もあるだろう。しかし多くの場合、運営者が正当だと判断する根拠はユーザーが素朴に期待するサービス内容とは関係がない。もし本当に必要性があり、それがユーザーのメンタルモデルと乖離しているようなら、運営者はそれを真摯に伝えなければならない。"
- Manabu Uenoさんのツイート: "運営者は、どんな入力もユーザーにとっては少なからぬコストでありリスクであると考える必要がある。例えユーザー自身がそれを認識していなかったとしても。特に個人情報とのトレードで無償サービスを提供する場合など、その「意味」をユーザーから隠すことはサービス倫理として看過できない。"
- 日本企業のアプリには「おもてなし」の心が足りない | 及川卓也のプロダクト視点 | ダイヤモンド・オンライン
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「サビタイジング(数えずに把握できる数)の上限が3である人が多いためと思う。 UI設計だと、アイテムを並べるとき、なるべく3つ以内、多くて4つという指針がある。 ---- 「線4本は何か嫌だな」という万国共通の心理 https://t.co/k7dln3DUR5」 / Twitter
- 漢字の「一」「二」「三」の次がいきなり「四」になるのはなぜなのか?【漫画版】 (3/3) - ねとらぼ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「サビタイジングは4が一般的だった。 むしろ、MIND HACKSに載っていた、密集度による分解把握力低下が主因かも。 https://t.co/KEr3syDoZ3」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ようやくバリア感が強かったフラットデザインが終わるか。抽象化すればするほど、記号が分かる人にしか使えないUIを作るものなのになんで流行ったのかよくわからんかった。 / OS標準アプリがカラフルアイコンへ回帰 ~「Windows 10」Build 19569が“Fast”リングに - 窓の杜 https://t.co/ItV72Gn9Dp」 / Twitter
- OS標準アプリがカラフルアイコンへ回帰 ~「Windows 10」Build 19569が“Fast”リングに - 窓の杜
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「特にフラットな"ボタン"。なぜそこがクリックできると思えるのかと考えると、色々なデザインを見た経験に依存して分かった気になってるだけだよなと。」 / Twitter
- 棚旗 織さんはTwitterを使っています 「@d_toybox 広告やグラフィックデザインの潮流が PC や web に波及した結果だったと思っています。Helvetica Ultra Light を使うような、軽くて薄いデザインが10年くらい前から流行っていましたので。」 / Twitter
ミニアプリ
- Eiji Kitamura / えーじさんはTwitterを使っています 「iOSのApp ClipsもOSレベルのミニアプリという見方をして比較すると面白い。」 / Twitter
- 西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「iOS14の新機能App Clipsって地味に見えるもののミニアプリ時代の到来を予感させるな、と。日本でいち早く対応した東京・麻布のTAILORED CAFEで実際に「ダウンロード不要のネイティブアプリ」を体験した様子を、海外のミニアプリ動向と合わせて紹介する記事を書きました↓ ☕ https://t.co/uiXC9K7XUu」 / Twitter
- ミニアプリ時代が日本にも到来? 「App Clips」を東京のカフェで使ってみた | Coral Capital
- 西村 賢🐠Coral Capital / Ken NishimuraさんはTwitterを使っています 「@agektmr App Clipsは、すごくInstant Apps的に見えます。でも当初、Instant Appsは決済非対応だったので、だいぶUX的には違う受け止められ方をしている気もします」 / Twitter
- Eiji Kitamura / えーじさんはTwitterを使っています 「@knsmr インストール不要なアプリという点で結果的に似た立ち位置になりましたが、App Clipsの方が(意図していたかはともかく)ミニアプリに近い扱いですよね。さっきシェアした資料を見る限り、中国のミニアプリはウェブ標準どころか全部バラバラな仕様なので、今後広がっていくと開発者は大変そう…」 / Twitter
- Eiji Kitamura / えーじさんはTwitterを使っています 「中国のミニアプリの技術仕様まとめ。超絶面白い。 // Learning from Mini Apps https://t.co/yxmkZwYyUA」 / Twitter
- Learning from Mini Apps - Google スライド
- 成瀬さんはTwitterを使っています 「この「中国のミニアプリ」は古代からある”Web Wideget”ってやつだな」 / Twitter
- 大規模なiOSアプリの画面開発を効率化するために動作確認用ミニアプリを構築する - クックパッド開発者ブログ
Web-Spec
その他
- ネット「兵器化」の恐れ、ソーシャル規制をWWW設計者が訴え
- www.webapi.link
- RFC8174「RFC 2119のキーワードにおける大文字と小文字の曖昧性」 - ASnoKaze blog
- 今すぐ知っておくべき!モダンな10のWeb技術 | ガジェット通信
- 連載 | WEB標準化動向 | HTML5Experts.jp
- Web標準化という仕事、そしてWebの今後について、W3Cの中の人に聞いてきた | HTML5Experts.jp
- Web 標準化のフィードバックサイクルを円滑にする Origin Trials について | blog.jxck.io
- Webシステムにおけるオートファジー構想 - 人間とウェブの未来
- Web Platform ... What is it ? (Webプラットフォームのつくり方) // Speaker Deck
- won't fix: オープンソースな製品でどうセキュリティバグをハンドルするか?
- Monthly Web の作り方 2018 年版 | blog.jxck.io
- Webの健全性を守る主役は果たして誰なのか - WebStudio
IETF
- IETF Documents
- RFC INDEX
- https://www.ietf.org/download/rfc-index.txt
- https://www.ietf.org/rfc/std-index.txt
IANA
- IANA — Protocol Registries
- IANA — Status of IETF Internet Drafts
WHATWG
Developer Edition
- WHATWG HTML Standard Developer Editionの話 - 水底の血
- HTML Standard
- HTML Standard 日本語訳
- Web Hypertext Application Technology Working Group
- Web Hypertext Application Technology Working Group Specifications
- HTML Standard
- The WHATWG Blog — Further working mode changes
- WHATWG Working Mode Changes | W3C Blog
- WHATWG の IPR Policy と Governance Structure | blog.jxck.io
- Rockridgeさんのツイート: "WHATWGが「運営グループ」と称するいわば舵取りの機関を設置。Apple/Google/Microsoft/Mozillaから1名ずつ代表者が参加する。参照:https://t.co/TNOkM6NmRu / “The WHA…” https://t.co/uLzomrlWqK"
- W3CからのWHATWGに関するアナウンスメントについてのメモ - 水底の血
- The WHATWG Blog — Changing the copyright license for Living Standards
- Makoto Kato ︎︎さんのツイート: "WHATWGのコントリビュータをどう増やすかみたいな議論になって、good first bugについての話になったらしい。そのgood first bugは仕様に明記られてないけど大概こんな動作だからそれをドキュメントに落とすだけらしいけど、ハードル高いよね"
- DOM Standard
水底の血
- Infra Living Standardという話 - 水底の血
- W3C文書を読むときに気をつけたい7つのポイント(超簡易版) - 水底の血
- Obsolete Recommendationという話 - 水底の血
- ウェブ標準仕様の翻訳についてつらつらと書いてみた。 - 水底の血
HTML5日本コミュニティグループ
- HTML5 Japanese Community Group
- W3C User Account Management
- public-html5jp@w3.org Mail Archives
- public-html-ig-jp@w3.org Mail Archives
- HTML5日本コミュニティグループ(HTML5 Japanese Community Group)について from Shinyu Murakami on 2015-01-19 (public-html5jp@w3.org from January 2015)
- Re: HTML5日本コミュニティグループ(HTML5 Japanese Community Group)について from Shinyu Murakami on 2015-02-02 (public-html5jp@w3.org from February 2015)
- 「HTML5日本コミュニティグループ」をW3Cが設立。参加者募集中! - Publickey
Web Platform Incubator Community Group
- Web Platform Incubator Community Group
Web Education Community Group
- Web Education Community Group
- Web標準カリキュラムがW3Cに移動 | Web標準Blog | ミツエーリンクス
Dataset Exchange Working Group
- Dataset Exchange Working Group Is Making Progress | W3C Blog
- Dataset Exchange WG Charter
- Data Catalog Vocabulary (DCAT) - Version 2
PING
- Privacy Anti-Patterns in Standards | W3C Blog
- W3C Privacy Activity
- w3cping/administrivia: repository to track meta-work. PING webpages are maintained at https://github.com/w3c/ping
- DRAFT Privacy Interest Group Charter
- w3c/ping: Privacy Interest Group webpages (only) - working docs are in https://github.com/w3cping
W3C
- All Standards and Drafts - W3C
- Celebrating the anniversary of the Web | W3C Blog
- World Wide Web Consortium (W3C)
- Web Publications
- Packaged Web Publications
- Web Annotation Extensions for Web Publications
- World Wide Web Consortium Process Document
- W3C Strategic Highlights: Strengthening the Core of the Web (Web Performance) | W3C Blog
- Hadley Beemanさんのツイート: "We just finished discussing the evolution of #featurepolicy with @triblondon. Should it split into 3? • sandboxing behaviours within an iframe • imposing conditions on the document itself, and • dealing with permission-requiring features @w3ctag https://t.co/42z4jvgINJ"
- Feature policy evolution · Issue #341 · w3ctag/design-reviews
- W3C Technical Architecture Group
- W3C and WHATWG to work together to advance the open Web platform | W3C Blog
- W3C and the WHATWG signed an agreement to collaborate on a single version of HTML and DOM | W3C News
- HTML標準仕様の策定についてW3CとWHATWGが合意発表。今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に - Publickey
- W3CとWHATWGが共同でHTMLの仕様を策定するようです🤝🎉 | フロントエンドBlog | ミツエーリンクス
- HTML標準仕様の策定についてW3CとWHATWGが合意 今後はWHATWGのリビングスタンダードが唯一のHTML標準仕様に - ITmedia NEWS
MDN Web Docs
- 開発者向けのWeb技術 | MDN
- Web technology for developers | MDN
- Rockridgeさんのツイート: "MozillaがMicrosoft/Google/W3C/Samsung Internetと合意し、Web開発者向けのドキュメントを将来的にMDN Web Docsに集約させることになった。 / “Mozilla brings …” https://t.co/uZJ6lLi65U"
- Web開発に関するドキュメントがMDN Web Docsへ集約されることが発表になりました | フロントエンドBlog | ミツエーリンクス
- Tracking documentation issues | MDN
- Microsoft、Google、MozillaがWebドキュメントで提携へ
- Rockridgeさんのツイート: "MDN Web Docsには毎月延べ780万人の訪問者がいて、この訪問者数は年率51%の成長を見せているという。 / “WeeklyUpdates/EmergingTechnology - MozillaWiki” https://t.co/TkrPigKuJj"
- Google Developers Japan: ウェブ標準のドキュメント統合に向けて
- Rockridgeさんのツイート: "MDN Web Docs内の記事に掲載されているブラウザ互換性テーブルのうち、Microsoft Edgeに関する部分は、現在、Microsoftのスタッフが直接確認して編集しているらしい。 / “Documenting the…” https://t.co/Lssjh6WrAx"
- mdn/browser-compat-data: This repository contains compatibility data for Web technologies as displayed on MDN
- Rockridgeさんのツイート: "MDN Web Docsで、特定の仕様やAPIのブラウザ実装状況を示す表(ブラウザ互換性テーブル)のデザインが、まもなく新しいものに変わる。 / “MDN Web Docsさんのツイート: "🎉 New compatibilit…” https://t.co/w04i0ceVLZ"
- MDN Web Docsさんのツイート: "🎉 New compatibility tables are coming to MDN TOMORROW! 🎉 After several months of beta testing our new, clearer (more colorful) browser compat tables, we're pushing them live for all tomorrow! What do you think of them? https://t.co/7ES9kZ0fwE… https://t.co/Yf5njTa5cu"
- Rockridgeさんのツイート: "2018年のMDN Web Docsでは、ブラウザ互換性テーブルのデータをJSONに移す作業を完成させ、インタラクティブなサンプルも対象と数を増やす。なお、互換性テーブルの編集にはMicrosoft/Google/Samsungの… https://t.co/XTW7px4Gpe"
- Rockridgeさんのツイート: "2017年10月に実施されたMDN Web DocsのAWS移行に伴い、コンテンツ配信ネットワーク(CDN)サービスであるAmazon CloudFrontも利用するようになった。現在では大半のコンテンツがCloudFront経由… https://t.co/4FPDHDNDS2"
- Rockridgeさんのツイート: "2017年11月、MDN Web DocsのAWS移行時にいったん失われたgzip圧縮が復活し、ページの読込時間が6%短縮されたという。 / “Kuma Report, November 2017 · Mozilla Marke…” https://t.co/ZEQiipC4mf"
- Rockridgeさんのツイート: "MDN Web Docsのブラウザ互換性テーブルの基になっているデータは、npmパッケージの形式でも公開されるため、ユーザーが再利用・加工することが可能だ。参照:https://t.co/oDcsJTEevj / “MDN br…” https://t.co/I60YNPvfmY"
- MDN Web Docs日本語版と英語版の日付を比較するブックマークレット - 水底の血
- <blink>: 点滅文字列要素 (廃止) - HTML | MDN
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「MDNはWikiの開発やメンテが全く追いついてなかったけど、DevRelチームもいなくなり関係者の縮小を受けてどうするのかと思っていたら、Wiki止めてGithubでコンテンツ管理する方向に変わるらしい。 世界最大規模のWikiが無くなる。 https://t.co/Zj2HVyspqs」 / Twitter
- MDN Web Docs: Editorial strategy and community participation - Mozilla Hacks - the Web developer blog
- dynamis (でゅなみす/レッサーパンダの人)さんはTwitterを使っています 「翻訳周りの環境には(翻訳サポートの為の機能が詰め込まれていたので)かなり影響がありそうな気がするけどどうなるんだろう。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「MDNの新しいサーバーってこのコードか https://t.co/hGFS5WJ3TK」 / Twitter
- mdn/yari: Next-gen MDN platform
Mozilla
Twitter
- なかのん&マジックさんのツイート: "結局、仕様として汚くてもブラウザ間でうまく動くものが良いってのをブラウザ開発者はみんな、肌で感じてるからであって。たとえば、DOM Event周りだとChrome/Blinkに多々文句言いたいことはあるんだけど、世のWeb開発者はそれを望んでいないというつらすぎる現実。"
- なかのん&マジックさんのツイート: "対抗ブラウザの開発者として「つらい」のではなく、仕様書に多少なりとも関わってる人間として「つらい」現実。はっきり言うと罵倒するような言葉になるので控えておく。"
- なかのん&マジックさんのツイート: "Webの仕様って結局、ある一定の母数のダメな開発者が勘違いしてたことを仕様としてどうにかまとめてしまうなりなんなりしないといけないんだよな。悪貨が良貨を駆逐するを地でいってる世界。ただ、良貨をぶっ壊さないようにしなければいけないというオマケもついてる。"
- なかのん&マジックさんのツイート: "とりあえず、忘れてたIssueをひとつ登録しておいた。予想はしてたけど、本当に救いがたいWeb開発者が世界には居てるわけで…… / Needs alternative WheelEvent.deltaMode, WheelEvent.delat(X|Y|Z) · Issue #181 · w3c/uievents https://t.co/UVBYf0M8Md"
- なかのん&マジックさんのツイート: "普通は仕様書じゃなくてもhttps://t.co/YcIWwdP3JL(X|Y|Z)の値はWheelEvent.deltaModeの値によって意味が変わると書いてあるはずで、一切説明文を読まずにコード書かない限り、そしてそれをmacOSだけか、Firefox以外のみでテストしない限りはこれらの属性がピクセル値だなんて思うわけもないんだよなぁ"
- なかのん&マジックさんのツイート: "記憶が曖昧だけど、ChromeもWindows版で、ページ単位でのスクロールに設定してると、WheelEvent.deltaModeがWheelEvent.DOM_DELTA_PAGEになるんだよ。"
- なかのん&マジックさんのツイート: "とりあえず、このレベルの開発者にはさすがにWeb界隈から退場していただきたい……"
- なかのん&マジックさんのツイート: "とりあえず、ヤバい臭いは実装時からしてたんで、あらかじめMDNで詳しいドキュメントを用意しててもこれなので、バカの先回りは不可能という結論。"
- Andreas Bovensさんのツイート: "Starting with Firefox 61, touchstart and touchmove event listeners are passive by default, making touch scrolling faster on Firefox for Android. https://t.co/h8iYMK5bAV"
- Touch event listeners are now passive by default, making scrolling faster on mobile | Firefox Site Compatibility
- なかのん&マジックさんのツイート: "ん?マジで?そんなこと許されるのか?"
- なかのん&マジックさんのツイート: "Event.preventDefault()を呼ばないのに、EventTarget.addEventListener()でpassiveにしてないWebアプリは多そう。 https://t.co/PSd80k3sCf"
- EventTarget.addEventListener() - Web APIs | MDN
- なかのん&マジックさんのツイート: "そう考えると、フレームワークはブラウザの動作速度の最適化は難しいな。どういう風に今の所やってんだろ。"
- なかのん&マジックさんのツイート: "いやー、本当にまとめてくれててありがたい。 #もずでぶ https://t.co/HsoHIPFoOJ"
- 近いうちに非表示キーが keypress イベントを発生させなくなります (影響あり) | Firefox サイト互換性情報
- なかのん&マジックさんのツイート: "non-printable keyを非表示キーと訳したのか。使ってて思うけど適当な訳語がなさ過ぎ。"
- モバイル上のスクロールを高速化するため、タッチイベントリスナーが標準で passive となりました | Firefox サイト互換性情報
- ウェブの知識をスマートオン! — Mozilla
- ドキュメント | Firefox サイト互換性情報
- トップレベルウィンドウ上のデータ URL 遷移はブロックされるようになります | Firefox サイト互換性情報
- 安全なサイトに埋め込まれたプラグイン内部での安全でないコンテンツの読み込みが廃止予定となりました | Firefox サイト互換性情報
- mozilla-japan/translation: Mozilla 関連のドキュメント翻訳リクエストとステータス管理
- バージョン別にドキュメントを参照 | Firefox サイト互換性情報
- Rockridgeさんのツイート: "Mozillaが考えるWeb互換性問題の発生原因について。W3Cが仕様化したAPIすべてを実装したブラウザが存在しない中、Web開発者の平均経験年数は低下し、開発に使用するブラウザもChromeに偏っている。 / “Make t…” https://t.co/lTA1qIzoWO"
- Make the Web Work For Everyone – Mozilla Hacks – the Web developer blog
- Compatibility/Unshippables - MozillaWiki
- ウェブページ内での FTP リソースの読み込みが許容されなくなりました | Firefox サイト互換性情報
- 近いうちに非表示キーが keypress イベントを発生させなくなります (影響あり) | Firefox サイト互換性情報
- ::selection 疑似要素の接頭辞が外れました | Firefox サイト互換性情報
- 今後 IME 変換中にも keydown、keyup イベントが発生するようになります | Firefox サイト互換性情報
- Application Cache が安全でないサイトでは使用できなくなりました | Firefox サイト互換性情報
- Firefox 60 ESR では Service Worker とプッシュ通知が無効化されます | Firefox サイト互換性情報
- 環境光・近接センサー API が無効化されました | Firefox サイト互換性情報
- ほとんどの非標準 CSS display 値が廃止されました | Firefox サイト互換性情報
- <meta http-equiv> による Cookie の設定が許可されなくなります | Firefox サイト互換性情報
- Symantec、GeoTrust、RapidSSL、Thawte、Verisign 証明書への信頼が 2018 年 10 月にすべて失われます (影響あり) | Firefox サイト互換性情報
- getComputedStyle() がスタイルを取得できない場合に null を返さないようになりました | Firefox サイト互換性情報
- display:-moz-box と display:-moz-inline-box が廃止予定となりました | Firefox サイト互換性情報
- navigator.platform が 64 ビット版 Firefox 上でも "Win32" を返すようになりました | Firefox サイト互換性情報
- window.event が互換性のため追加されましたが、一部のブラウザー判別に影響があります (影響あり) | Firefox サイト互換性情報
- window.open の noopener オプションが他のウィンドウ特性に影響しなくなりました | Firefox サイト互換性情報
- window.event、Event.returnValue への対応が追加されました (影響あり) | Firefox サイト互換性情報
- <table> のサイズと位置が <caption> を計算に入れるようになりました | Firefox サイト互換性情報
- Fullscreen API の接頭辞が外れました | Firefox サイト互換性情報
- window.open() がイベントごとに一度しか呼び出せなくなりました | Firefox サイト互換性情報
- サードパーティトラッキング Cookie が初期設定でブロックされるようになりました (影響あり) | Firefox サイト互換性情報
和訳
- ウェブ関連仕様 日本語訳
- triple-underscore/triple-underscore.github.io: Japanese translations of various web spec.
- RFC日本語版リスト
- Web関連技術の仕様書邦訳
- W3C仕様書などのまとめ【保存版】 | W3C仕様書関連の文書や日本語訳をまとめてみた。
Twitter
- Jxckさんのツイート: "ようするに WICG ってのは W3C の敷居が高すぎるけど、 Web 標準に対して物申したい人は、ここ https://t.co/rT2sMRVIwM に雑に投げてくれれば、中の人がうまいことハンドリングしてくれるよっていうこと。 #w3ctagdevmeetup"
- WICG
- vyv03354さんのツイート: "@piro_or @momdo_ webkitMatchesSelectorに至ってはDOM Standardで規定されています。 https://t.co/GVLjPUccxO 今ではwebkitプレフィックス付き==非標準とは限りません。"
- vyv03354さんのツイート: "@piro_or @momdo_ 経緯はこちらをご覧ください。 https://t.co/lMO8Pq4YJj DOM Specへの追加を推したのはbzですね。"
- vyv03354さんのツイート: "@piro_or @momdo_ navaigator.appNameは固定文字列"Netscape"を返せとか。 https://t.co/D0cY5F5sgR 自分より年下の人に自虐的に老人とか自称されると何とも言えない複雑な気分になりますね。"
- Rockridgeさんのツイート: "2017年11月、W3Cの"Improving Web Advertising Business Group"が結成された。オンライン広告のユーザー体験を改善し、有用性とプライバシー・安全性とのバランスを取る方法を模索していくとい… https://t.co/jVUW29c7VW"
- vyv03354さんのツイート: "https://t.co/J7klkTDNAG たぶん @momdo_ 氏あたりには今さらの話だと思うけど、W3CとWHATWGの協調する気のなさほんとひどい"
- もんどさんのツイート: "協調のなさが酷いというより、W3C/WHATWGでまだ一緒に作ってたころ(HTML 5.0 CR)に決まってたものを後からW3Cがひっくり返したという感じで、W3Cの挙動が解せないというのが個人的な印象ですね…… "
- もんどさんのツイート: "まあその意味ではlongdescとかおそらくブラウザーではこれ以上実装されなさそうなものをひっくり返すみたいなのは、ちょっと理想に走りすぎでは、という気がしなくもなく。"
- もんどさんのツイート: "ただその一方でmain要素はHixieのこだわってた(と個人的には思ってる)複数要素を許容みたいな話は葬り去られて、A11y寄りのSteve Faulknerの主張が通って統一できたのは、これはこれで歩みよりがあるのかなと。"
- Rockridgeさんのツイート: "Googleが自社サービスをChromeに最適化し、それ以外のブラウザを事実上排除したうえ、高いシェアを背景に仕様標準化の際にもChromeの実装がそのまま通るように力を振るうとすれば、IE6の独占時代と何が違うのか。 / “C…” https://t.co/zHYKnESPnT"
- なかのん&マジックさんのツイート: "ブラウザなんて、まさに、実装依存のWebアプリ達との闘いですな。Firefoxのシェアが下がったとはいえ、(Firefox側がバグってる場合を除けば)対応する価値は十分にある。実装依存な場所を洗い出してくれるから、他のブラウザの将来のバージョンとの互換性も高くなる。"
- なかのん&マジックさんのツイート: "Firefox側で、仕様にない挙動を、互換問題からChromeの動作にあわせようとしていたら、Googleのエンジニアさんがたまたま同じタイミングで、Firefoxのシンプルな挙動にしようとしていた、という笑えない事が去年あって、止めた。タイミング違ってたら、Chrome依存なサイトがChromeでも壊れてた事案。"
- Ryou Ezoeさんのツイート: "W3CがWHATWGのHTML DOM 4.1をforkして、forkであることも明記せず、コミュニティになんの説明もなく改変してリリースしようとしたので至るところからFormal Objectionが飛ばされている https://t.co/FFn7DCUxRF"
- Microsoft, Google, Mozilla, and Apple Object to W3C Fork of DOM Spec | Hacker News
- なかのん&マジックさんのツイート: "Chromeの動きが理にかなってたら互換性のために修正入れるのはそう難しくないんですよ(ソースコードのデザイン上大変なことはあっても)。でも、理にかなってない場合や単純にバグってるよなって場合にはそれが難しいんですよ。IE一強の時代と全く同じで。"
- なかのん&マジックさんのツイート: "同じ設計じゃ無いのにバグをエミュレートするってのは難しいんですよ。何しろ意図して条件分岐した結果、動作が変わってるとかではないんで。"
HTML
Mozilla
その他
- Firefoxに「パフォーマンス」関連設定が実装される予定 | スラド IT
- 本の虫: Firefox 23では、デフォルトでSSLページ内で非SSLコンテンツの読み込みをブロックする
- Firefoxの先読み機能の無効化とその確認手順 - ククログ(2017-06-16)
- MozillaがFirefoxの拡張機能で難読化コードの使用禁止を発表した2日後、全拡張機能が動作しなくなるトラブルが発生 | スラド デベロッパー
- Makoto Kato ︎︎さんのツイート: "いつも思うんだけど、GeckoをServoに置換するなんて言ってないのに、みんな勘違いするのはなんなんだろう https://t.co/5PwG6uh0LS"
- IT エンジニアのための 流し読み Windows 10 - 新しい Microsoft Edge - from Build 2019
- won't fix: New Firefox Preview for Android
Firefox
Mozilla
Bugzilla
- Home :: Bugzilla :: bugzilla.org
- なかのん&マジックさんのツイート: "bugzillaのREOPENってもうFIXEDからは禁止で良いと思うんだけどな。パッチの投入があると、そのステータス管理にそのバグは使わないといけないから、REOPENされるとそれができなくなるんだよな。"
- なかのん&マジックさんのツイート: "それか、REOPENはFIXEDにした人とAssigneeにのみ可能な特権にしても良いんでは。"
Extension Compatibility Tester
- Rockridgeさんのツイート: "Mozillaが、Chromeの拡張機能ファイルをアップロードするとWebExtensionsとの互換性を診断してくれるツール「Extension Compatibility Tester」を公開した。別途コマンドラインツールも提… https://t.co/idngQYPFip"
- Introducing the Extension Compatibility Tester ★ Mozilla Hacks – the Web developer blog
- Extension Compatibility Tester
MDN
- Mozilla Developer Network
- Mozilla Developer Network
- Mozilla のソースコードに貢献する - Mozilla | MDN
- Working with Mozilla source code - Mozilla | MDN
- WebExtensions - Mozilla | MDN
- Google Chrome からの移行 - Mozilla | MDN
Mozilla Flux
- Firefox Developer Editionは早期Beta版として存続 未署名のアドオンも引き続き利用可能 - Mozilla Flux
- ワンクリックで以前のセッションを復元する(Firefox 56以降) - Mozilla Flux
WebDINO Japan
- WebDINO Japan (旧・一般社団法人 Mozilla Japan)
- Mozilla JapanはなぜWebDINOに?瀧田佐登子さんに聞くMozilla・オープンソースコミュニティ、そしてWebの未来 | HTML5Experts.jp
- Mozilla Japanが組織名を“WebDINO Japan”へ変更 ~7月3日より活動を開始 - 窓の杜
SecureDrop
- Rockridgeさんのツイート: "MozillaがSecureDropというオープンソースソフトウェアに対し過去最高の25万ドルを授与。匿名の内部通報者が安全にメディア組織と文書のやりとりなどができるシステムを構築するもの。参照:… https://t.co/fVe5XGpspY"
- SecureDrop | The open-source whistleblower submission system managed by Freedom of the Press Foundation.
- freedomofpress/securedrop: GitHub repository for the SecureDrop whistleblower platform. Do not submit tips here!
- 文書を安全に匿名の情報筋から得ることを可能にするオープンソースシステム「SecureDrop」 - GIGAZINE
- SecureDrop - Wikipedia
窓の杜
- Mozillaなどが支援するRust製新ブラウザー「Servo」にWindows向けナイトリー版が登場 - 窓の杜
- 【レビュー】簡単ファイル共有サービス“Firefox Send” ~リンクが24時間経過で自動消滅 - 窓の杜
- 1,691個のタブを開いたセッションをわずか8秒で復元 ~「Firefox 55」が正式版に - 窓の杜
- 「Firefox Quantum」が正式公開 ~6カ月前と比べて2倍以上に高速化、新UIも導入 - 窓の杜
Twitter
histric-1
- Rockridgeさんのツイート: "Firefox NightlyのリリースノートがAtomフィードに対応する模様。参照:https://t.co/JVw2bIikP6 情報提供感謝:@koyoskeh / “1359037 - Provide some synd…” https://t.co/UDSr8RkXce"
- Rockridgeさんのツイート: "Mozilla関連の商標はWebDINO JapanからMozilla Corp.に移管されたらしい。1月にエンジニアとそれ以外でオフィスを分けたのも、エンジニアはMozilla Corp.と直接雇用契約を結ぶことになるから? https://t.co/QWVfZrl6K4"
- Rockridgeさんのツイート: "Test Pilotの実験にSend(オンライン上のファイル共有)、Voice Fill(音声による文字入力)、Notes(サイドバーの簡易メモ帳)の3つが追加された。 / “New Test Pilot Experiments…” https://t.co/nX5evt73Bn"
- Rockridgeさんのツイート: "Sendは「大きなファイル (最大 1 GB) をアップロード、暗号化し、オンラインで共有でき」「生成したリンクは 1 回のダウンロードあるいは 24 時間後に期限切れとなり、Send サーバーに保存されたファイルは自動的に削除」。 https://t.co/G7YeRCET3f"
- Rockridgeさんのツイート: "Mozilla Information Trust Initiative (MITI)はインターネットの信用性・健全性を損なうフェイクニュースの排除を目指す活動だ。調査・研究やリテラシー教育のほか、誤情報に対処する技術の開発にも取… https://t.co/6RdAcdJXRb"
- The Mozilla Information Trust Initiative: Building a movement to fight misinformation online - The Mozilla Blog
- Rockridgeさんのツイート: "Mozillaは将来的にWindows版FirefoxのビルドツールをMSVCからclang-clへと移行させるつもりらしい。現時点では多数の課題を抱えており、すぐにどうこうできる話ではないようだが。 / “Firefox an…” https://t.co/ArzhX4DczO"
- Rockridgeさんのツイート: "Windows版Firefoxのビルドツールがclang-clに移行する場合、リンカはLLDになる模様。参照:https://t.co/cKO2SGhBMC / “1384434 - (linker-lld) [meta] Li…” https://t.co/HPNBmn88kC"
- Rockridgeさんのツイート: "Firefoxアカウントのシステムが外部のセキュリティ監査を受けており、安全であることをアピールした記事。 / “A Security Audit of Firefox Accounts | Mozilla Security B…” https://t.co/SwshVq6XbQ"
- A Security Audit of Firefox Accounts | Mozilla Security Blog
- Rockridgeさんのツイート: "Mozillaは音声認識システムをオープン化することで、大手企業による囲い込みを防ぎ、イノベーションを促進させる考えだ。 / “How Could You Use a Speech Interface? - The Mozill…” https://t.co/1y3pQ3JK6l"
- How Could You Use a Speech Interface? - The Mozilla Blog
- Rockridgeさんのツイート: "about:mozillaの文章がすべて掲載されている。背景の解説つき。 / “The Book of Mozilla - Wikipedia” https://t.co/Wimu01x8iS"
- The Book of Mozilla - Wikipedia
- Rockridgeさんのツイート: "「Mozilla 製品の日本語を統一感のある高品位なものとするため、用語の対訳表などと合わせて日本語化のガイドラインを作成・公開しています。」 / “styleguides/l10nguideline.md at master …” https://t.co/38KaSc853N"
- Rockridgeさんのツイート: "Mozillaはすべてのビルド・テスト環境をクラウドに移行するのかと思いきや、そうでもないらしい。クラウドに適さない部分は新設のデータセンターに残すという。 / “IT/WeeklyMinIT - MozillaWiki” https://t.co/r0wItU30Xx"
- Rockridgeさんのツイート: "Mozillaは各種オープンソースプロジェクトに寄付を行っており、その総額は2017年4月以降に限っても53万9000ドルに達する。たとえばwebpackプロジェクトは12万5000ドルを受け取った。 / “Mozilla Aw…” https://t.co/VhTXxYejZC"
- Rockridgeさんのツイート: "Mozilla Corp.のDenelle Dixon氏が米TechCrunchの取材に回答したところによれば、Mozilla側が契約上の権利を行使して、Yahoo!(の承継会社)との契約を終了させたそうだ。 / “Mozill…” https://t.co/7u61MKvcXT"
- Rockridgeさんのツイート: "Bloombergの報道によれば、Yahoo!の承継会社とみられるVerizon傘下のOath社は、「Mozillaの決定に驚いている。契約条件に関し同社と協議中である。」という趣旨のコメントを出した。すんなり終われないかも。 https://t.co/lbHYZbqeeR"
- Rockridgeさんのツイート: "Mozilla Corp.の従業員数が1000人余り(おそらくRead It Later,Inc.を除く数字)、Mozilla Foundationの従業員数が80人と記載されている。 / “The State of Mozil…” https://t.co/xfNINXHbkX"
- Rockridgeさんのツイート: "Mozilla Foundation及びその子会社における2016年版監査済財務諸表。検索エンジンとの提携契約収入がロイヤリティの94%、債権残高の79%を占める(注8)一方、ロイヤリティ収入中のYahoo!依存率は75%程度に低… https://t.co/surxlnii5A"
- Rockridgeさんのツイート: "ブラウザエンジンを維持し続けるには多大なコストを要するが、Mozillaのミッションがそれを正当化する、との議論。あえて今この話題を持ち出してきた理由が気になる。 / “Eyes Above The Waves: Maintai…” https://t.co/12qge95fUZ"
- Rockridgeさんのツイート: "Firefoxアカウントの予備アドレスをメインアドレスに切り替える方法について(未訳)。情報提供感謝:https://t.co/UmSaGf51MO / “Change primary email address on Fire…” https://t.co/obz8qd8rmZ"
- Rockridgeさんのツイート: "Mozilla IRC Networkのログが集積されている。 / “LogBot” https://t.co/relGYU650A"
- LogBot
- Rockridgeさんのツイート: "Mozillaの開発者とMicrosoftの(おそらくEdgeの)開発者が議論するための、プライベートなオンラインフォーラムが存在するようだ。 / “1423550 - A load with an assigned appli…” https://t.co/P8AdYk7KlA"
- Rockridgeさんのツイート: "Firefoxの次世代パスワードマネージャであるLockboxは、まずiOS向けの独立したアプリという形で試験的に提供される。参照:https://t.co/mes2CPqjlC / “QA/Mobile/LockboxiOST…” https://t.co/goYYMWMwgH"
- Rockridgeさんのツイート: "Firefoxアカウントが二段階認証をサポート。対象ユーザーは順次拡大される。TOTPの採用によりGoogle認証システムなどのアプリを用いた認証が可能。参照:https://t.co/94h4ILkyyC / “Two-ste…” https://t.co/nZ8NQVYGgw"
- なかのん&マジックさんのツイート: "Googleアカウントは複数使い分けが困難なサイトの作りしてくれてるんで、コンテナ使い出してるけど、これ基本的には必須の機能って感じだけど、イマイチ使い勝手が……"
- なかのん&マジックさんのツイート: "Firefoxのコンテナ、ブックマークとの相性が本当に悪い……"
- なかのん&マジックさんのツイート: "ブックマークとコンテナの組み合わせを限定できないんでpin止めしたタブが増えてる気もする。"
- Firefox Hardware Report
- Mozilla
- donate.mozilla.org | Mozilla への寄付をお願いします
- 利益ではなく、人々のためのインターネット — Mozilla
- より優れた、高速でプライベートな最新ブラウザー | Firefox
- Mozilla サポート
- Servo Developer Preview Downloads
- プレリリース版でブラウザーの新機能を試そう | Firefox
- Mozilla Firefoxのバージョンの変遷 - Wikipedia
- Mozilla Japan コミュニティポータル
- Mozilla Japan コミュニティ(@mozillajp)さん | Twitter
- mozilla-japan – Medium
- MozillaZine.jp
- オフィス管理や雑務に時間をとられず、本来の仕事にだけ集中して取り組める環境 | サーブコープブログ
- What is “chrome://FirefoxAccounts (Firefox Accounts credentials)” under “Saved Logins” section in Firefox? Can I delete it? : firefox
- Thunderbird — メールをもっと簡単に。 — Mozilla
- 最新 Thunderbird トピック - Mozilla Discourse
- Windows ビルド環境の準備 - Mozilla | MDN
- ウェブサイトのセキュリティを自動判定する「Observatory by Mozilla」 -INTERNET Watch
- 【翻訳】ZAP を用いた Web セキュリティのベースライン運用 - Mozilla Security Blog 日本語版
- hashedhyphen/mozsec-jp: Mozilla Security Blog 日本語版 (http://mozsec-jp.hatenablog.jp)
- Observatory by Mozilla
- mozilla/http-observatory: HTTP Observatory
- Security/Guidelines/Web Security - MozillaWiki
- Security/Server Side TLS - MozillaWiki
- インターネットの安全を守る上での Mozilla の役割: 皆さんのご協力も必要です | Mozilla Japan ブログ
- Analysis of the Alexa Top 1M Sites | Mozilla Security Blog
- Mozilla、“Firefox アカウント”のセキュリティ監査を実施 ~15の問題を悪用前に対策 - 窓の杜
- Firefox Release Calendar - MozillaWiki
- 「Firefox」をもっと安全に! “Firefox アカウント”を2段階認証で武装してみる - やじうまの杜 - 窓の杜
- もはやマイナーブラウザの域に? Firefoxのシェアがついに10%を切り一桁台に突入へ【やじうまWatch】 - INTERNET Watch
- IdM実験室: [FIDO]Firefox 60の正式版がリリースされたのでWebAuthnを試してみる
- IdM実験室: FirefoxにSAML Tracerが復活
- Firefoxへのフィードバックの仕方:Windows編 - ククログ(2018-07-03)
- 一ノ瀬 いろはさんのツイート: "FIrefox 版β も作ってるみたいなんでどうでしょ。 https://t.co/pZlW0Uw5T3 基本的には BOOTH で売ってる英辞郎使うことを念頭に置いてます。… "
- Chrome拡張の高速な英語辞書ツールをつくりました - Qiita
- Firefox Monitor
- モジラ、「Firefoxアカウント」のリカバリキー生成機能を公開 - CNET Japan
- Reset your Firefox Account password with Recovery Keys | Mozilla Support
- 「Firefox 67」正式版リリース、マイニングスクリプトのブロックや追跡防止機能の強化、ページロードの高速化など - GIGAZINE
窓の杜
- Mozilla、「Firefox 59」を正式公開 ~新しいキャッシュ技術でパフォーマンス向上 - 窓の杜
- HTTPサイトに“Not Secure”ラベルを表示、「Google Chrome」に続き「Firefox」でも - やじうまの杜 - 窓の杜
- Mozilla、「Firefox 61」を正式公開 - 窓の杜
- Mozilla、情報漏洩の被害に遭ってないかをチェックする“Firefox Monitor”をリリース - 窓の杜
OSDN
- 性能強化を継続、プライベートモードでのプライバシー保護も改善した「Firefox 59」 | OSDN Magazine
- Quantum CSSを強化した「Firefox 61」が公開 | OSDN Magazine
- 「Firefox 64」リリース、タブの強化や新しいタスクマネージャ表示を導入 | OSDN Magazine
- 「Firefox 66」リリース、自動再生の音声がデフォルトでオフに | OSDN Magazine
- 「Firefox 67.0」リリース、仮想通貨のマイニングやフィンガープリントによる追跡をブロックする機能が実装される | OSDN Magazine
Mozilla Flux
- Firefoxのパスワードマネージャーを刷新するLockboxプロジェクトが本格始動中 - Mozilla Flux
- マウスホイールでページをスクロールする際の小技(Firefox 58以降) - Mozilla Flux
- タブのダブルクリックで現在表示させているタブを閉じる小技(Firefox 61以降) - Mozilla Flux
- タブの切り替えをスムーズにするTab Warming機能について(Firefox 61以降) - Mozilla Flux
- Firefox 63に複数タブの選択・操作機能が実装される見込み - Mozilla Flux
- ブラウザの「更新の確認は行わない」設定をFirefox 63で削除 - Mozilla Flux
Mozilla Security Blog
- dynamis (でゅなみす)さんのツイート: "Mozillaが遂にすべての新機能はSecure Contextに限って実装していくと宣言。 Service Workerみたいな粒度ではなくCSSプロパティレベルでもHTTP環境には新機能を原則提供しない方針でかなりアグレッシブ https://t.co/dlTJEPeM2D"
- Secure Contexts Everywhere | Mozilla Security Blog
- Rockridgeさんのツイート: "Android版Firefox Nightlyにおいて、Google検索とFacebookを対象に、UA文字列をモバイル版Chromeに偽装するシステムアドオンが実験的に有効化されている。参照:… https://t.co/XgazSmUMDA"
- When does Firefox alert for breached sites? | Mozilla Security Blog
Firefox サイト互換性情報
- 今後予定されている変更 | Firefox サイト互換性情報
- カテゴリ別にドキュメントを参照 | Firefox サイト互換性情報
- HTML コンテキストメニュー対応が廃止されます | Firefox サイト互換性情報
- Basic 認証情報が ISO-8859-1 から UTF-8 によるエンコードに変わりました (影響あり) | Firefox サイト互換性情報
4x
- Rockridgeさんのツイート: "Fx42:Android版で日本の一部Webサイトにおいてユーザーエージェント文字列の偽装を行い、モバイル版が正しく提供されるようにした。Yahoo!関連、mixi、LOHACO、ユニクロ、楽天、NHKが対象。 / “11772…” https://t.co/Oo11q5gtrL"
- Firefox 44 は type="password" が暗号化されていないページで使われていると警告を表示 | フロントエンドBlog | ミツエーリンクス
- RockridgeさんはTwitterを使っています: "Fx47:JavaScriptによって追加されたHTMLの要素にリンクのプリフェッチの指定が含まれていた場合も、プリフェッチが行われるようになった。 / “580313 – prefetch links not followed…” https://t.co/hOUAhPBbYN"
- Rockridgeさんのツイート: "Fx47:CRX形式のアーカイブからファイルを抽出する機能をサポート。 / “1260836 – Add support for CRX file extraction” https://t.co/E9YT5ZpRoq"
- Rockridgeさんのツイート: "Fx49:トラッキング防止機能が有効な場合は、Do Not Track(DNT)の設定が無効でも、DNTシグナルを送信するようにした(コメント2)。 / “1258033 – Fix the DNT loophole for t…” https://t.co/NwhRLwZFcK"
- Rockridgeさんのツイート: "Fx48:読み込みが許可されていないファイル(Webページ)を読み込んだ際にエラーページが表示されるようになった。 / “682294 – Opening a page which we can't read should di…” https://t.co/VXVdPcfMqk"
- Rockridgeさんのツイート: "Fx49:HTML5のdetails要素とsummary要素がリリースチャンネルでもデフォルト有効化。 / “1226455 – (ship-details-summary) ship support for <details>…” https://t.co/gXJtEpBsnG"
- Rockridgeさんのツイート: "Fx49:a要素のreferrerpolicy属性にno-referrer-when-downgradeとorigin-when-cross-originの値を指定できるようになった。 / “1178337 – Valid re…” https://t.co/aj8IEovDCH"
- Rockridgeさんのツイート: "Firefox 49で起動時に未送信のクラッシュレポートの送信を促すようにした理由は、Firefoxのシャットダウン時のクラッシュが、まさにシャットダウン中であるがゆえにこれまで送信されてこなかったら。 / “Fwd: [des…” https://t.co/xnwwG3qk36"
- details要素がサポート追加となったFirefox 49リリース、Safari 10リリースやベンチマークのMotionMarkなど──2016年9月のブラウザ関連ニュース | HTML5Experts.jp
- Rockridgeさんのツイート: "Fx49:マルウェアなどのダウンロードを防止する機能について、対象となるファイル拡張子の種類が増えた。 / “1291472 – Add more application reputation extensions” https://t.co/hKXAqLifkb"
- Rockridgeさんのツイート: "Fx49:HTTPで接続したWebサイトに関し保存したパスワードが、HTTPS接続した同一ドメインにおいても自動補完されるようになった。 / “667233 – HTTP passwords should be used on …” https://t.co/5mj1yuHjpC"
- Rockridgeさんのツイート: "Firefoxの製品内部で、ブラックリスト・ホワイトリストの呼び方をやめて、ブロックリスト・許容リストに置き換える作業が進んでいる。 / “1149485 - Rename 'blacklist' to 'blocklist' …” https://t.co/iQIdtcIkUh"
- Rockridgeさんのツイート: "Firefoxのチャンネルを問わず、インストールするたびに別プロファイルを作成・使用する機能が実現に向けて動き出した。ダウングレードからプロファイルを守る機能と併せてFirefox 66以降に実装される。 / “Coming i…” https://t.co/4aSf8Hzk5c"
5x
50
- Rockridgeさんのツイート: "Fx50:起動時に読み込みを保留しているタブがある中で「すべてのタブをブックマーク」すると、保存されたブックマークの名前欄に空欄が生じる問題を修正。 / “754623 – Name field of bookmarks sav…” https://t.co/sGM6GGyMfh"
- Rockridgeさんのツイート: "Fx50:履歴とブックマークのデータベースにおいて、URLの同一性を判定するためのインデックスとしてURLの複製ではなくそのハッシュ値を用いるようにした。データベースサイズを圧縮できる。 / “889561 – moz_plac…” https://t.co/1nsi7JbFBb"
- Rockridgeさんのツイート: "Fx50:各種パーミッションに関する通知アイコンは、ロケーションバーの「i」アイコンと南京錠アイコンの間(アイデンティティブロック)に表示される。 / “1267617 – Move notification anchors t…” https://t.co/MGSQcNJ6Rc"
- Rockridgeさんのツイート: "Fx50:PointerLock APIのパーミッション要求が不要となった。 / “1273351 – Get rid of permission requirement for PointerLock API” https://t.co/HYigR20hla"
- Rockridgeさんのツイート: "Fx50:ローテーションセンサーを備えていないPC(タッチスクリーン機能付きデスクトップなど)でもスクリーンキーボードが表示されるようになった。 / “1226522 – On-screen keyboard not displ…” https://t.co/z2T2De5o3w"
- Firefox 50でページ内検索結果の表示方法が変更 - Mozilla Flux
- Rockridgeさんのツイート: "Fx50:認証が必要なネットワークを検出したときは自動的にログインページを開く仕組みが実装された。当面はNightlyチャンネルでのみ有効。参照:https://t.co/OXgTMzHwCK / “989193 – Open …” https://t.co/mtjEnUqwSw"
- Rockridgeさんのツイート: "Fx50:何らかのパーミッションを許可しているサイトでは、ロケーションバーの「i」マーク右上に印が付く。 / “1206246 – Show indication when some permissions have been …” https://t.co/Ykrty1fuI5"
51
- Rockridgeさんのツイート: "Fx51:特定のサイトでパスワードを記憶しないという情報は、パーミッションの一部として扱われる。 / “1058438 – Password manager should use the permission manager t…” https://t.co/r6wcftGceQ"
- Rockridgeさんのツイート: "Fx51:Yahoo!オークションやYahoo!ニュース、mixiなどについて、ユーザーエージェント文字列の偽装を解除した。 / “1301619 – Update Firefox Android User Agent over…” https://t.co/VydIn8OCRa"
- Rockridgeさんのツイート: "Fx51:本体起動時、認証が必要なネットワークを検出したときは自動的にログインページを開く。 / “1282611 – Captive portal not detected at Firefox startup” https://t.co/5lJ56oXyUR"
- Rockridgeさんのツイート: "Fx51:ログイン情報の送信にJavaScriptを用いているWebページにおいても、パスワードの保存とオートフィルが行えるようになった。 / “1166947 – Run login capture code upon pag…” https://t.co/MNuJVRw223"
52
- Rockridgeさんのツイート: "Fx52:<input type="time">が指定されている場合の入力UIが実装された。参照:https://t.co/W0aCu9JqFX / “1283384 – Implement UI for <input type…” https://t.co/L2zWUtBSo9"
- Rockridgeさんのツイート: "Fx52:Yahoo!関連はYahoo!天気・災害を除きユーザーエージェント文字列の偽装を解除した。 / “1314214 – Remove User Agent override for Yahoo! Japan” https://t.co/uI0o8XxJit"
- Rockridgeさんのツイート: "Fx52:開発ツールのレスポンシブデザインモードで、低速回線(2G/3Gなど)による接続をシミュレートする機能が実装された。参照:https://t.co/yOZB4sWi9E / “Simulate slow connecti…” https://t.co/Y64SEgEyby"
- Rockridgeさんのツイート: "Fx52:Windows版NightlyでQuantum Compositor(旧GPUプロセス)が有効化。 / “1314133 – Enable the GPU process in nightly, on Windows” https://t.co/PpVSi5pEQM"
- Rockridgeさんのツイート: "Fx52:リーダーモードにおいても、base要素で指定された基点URLの指定が反映されるようになった。 / “1173823 – Reader View ignores <base href="...">” https://t.co/wTH6BbCnTl"
- Rockridgeさんのツイート: "Fx52:Webサイト側で取得できるユーザー側のシステムフォントが、ホワイトリストに掲載されたものに限定された。フィンガープリンティングを防止する。参照:https://t.co/8yVqP7dDVp / “Firefox 52…” https://t.co/OeOFRQ1yX7"
- Rockridgeさんのツイート: "Fx52:悪意のあるサイトが認証画面を繰り返し表示してブラウザを操作できなくすることを防止する措置を講じた。 / “1312243 – Trap site uses repeated http auth prompts to k…” https://t.co/IqXucQDfXt"
- Rockridgeさんのツイート: "Fx52:リーダーモードのNarrate(音声読み上げ機能)で、現在読み上げられている単語に下線が表示されるようになった。 / “1290173 – Introduce word (and sentence?) tracking…” https://t.co/4MGV5GbYlF"
- Rockridgeさんのツイート: "Fx52:巨大なサイズの画像が正しく表示されない場合がある問題を修正。なお、問題となるサイズはDPI環境により変動する。 / “591822 – Images taller or wider than 32767 (signed…” https://t.co/Qc8PW6NV6X"
- Rockridgeさんのツイート: "Fx52:Webページ中のパスワードのフィールドでも、自動補完のUIが表示されるようになった。ユーザー名のフィールドが存在しない場合でも自動補完が使える。参照:https://t.co/PoAIjHw4XQ / “1289913…” https://t.co/IY9939kSnF"
- Snappy by google
- google/snappy: A fast compressor/decompressor
- andikleen/snappy-c: C port of the snappy compressor
- Rockridgeさんのツイート: "SnappyはGoogleが開発する圧縮・解凍ライブラリ。圧縮率よりも圧縮・解凍の速度を重視しているという。 / “Snappy by google” https://t.co/KpXFudSTEr"
- Rockridgeさんのツイート: "Fx52:搭載するSnappyライブラリを最新版にアップデート。IndexedDBやDOMキャッシュなどで用いられているが、更新はFirefox 12以来だとか。参照:https://t.co/GdaSPottr2 / “Hea…” https://t.co/J7LNj4KMYX"
53
- Rockridgeさんのツイート: "Firefox 53でapplet要素のサポートを廃止予定。参照:https://t.co/gOKCU0nPe0 / “1279218 – Remove <applet> element” https://t.co/v8xrxhSTk4"
- Rockridgeさんのツイート: "Firefox 53ではネットワークライブラリ(Necko)にセキュリティチェック機能を実装し、チェックを必須化する。従来はGeckoの各コンポーネントがリクエストの前にその都度セキュリティチェック処理を行っていた。 / “En…” https://t.co/GgLzOpIErc"
- Rockridgeさんのツイート: "Fx53:ページタイトルがタブの幅に収まらない場合、末尾に省略記号を入れずに文字列が薄れて消えるようにした。タイトルが多く表示されたほうがよいだろうとの判断に基づく。 / “658467 – Fade out tab label…” https://t.co/PwRhmpjWZ2"
- Rockridgeさんのツイート: "Fx53:Web互換性上の問題を修正するシステムアドオンを導入(Fx49時点では実体がなかったらしい)。特定のサイト向けにユーザーエージェント(UA)文字列を修正する。参照:https://t.co/HZJzqo5ZpF https://t.co/vO76fptP8E"
- Rockridgeさんのツイート: "Fx53:リンクをドラッグした際、ページの端にかかると、ページがスクロールするようになった。 / “41708 – Should be able to scroll in the viewport while dragging” https://t.co/sr76LoQkLc"
- Rockridgeさんのツイート: "Fx53:<input type="date">が指定されている場合の入力UIが実装された。デフォルト無効でありdom.forms.datetimeをtrueにすると有効化される。 / “1283385 – Implement …” https://t.co/LylhN1wmNK"
- Rockridgeさんのツイート: "HTMLフォームで日付・時刻を入力するUIのFirefoxへの実装状況について説明したスライド。参照:https://t.co/CHK2leXhDa / “Date/Time Input Types by Jessica Jong” https://t.co/lZtm7fh2bH"
- TPE DOM/Date time input types - MozillaWiki
- Rockridgeさんのツイート: "Fx53:Webページのプリレンダリング機能の実装を開始。link要素のrel属性でprerenderの指定がされているURLが対象。browser.groupedhistory.enabledとdom.linkPrerender… https://t.co/tgSs1nsCrx"
- Rockridgeさんのツイート: "Fx53:フォームのドロップダウンメニューに40を超える項目が含まれるときは、項目の絞り込み検索が可能になった。 / “1309935 – Add ability to find within select dropdown w…” https://t.co/RWRs2bCLKT"
- Rockridgeさんのツイート: "Fx53:他のブラウザからブックマークをインポートする際、処理をまとめて行うことで大幅な高速化を実現した。 / “1344759 - Use insertTree API to import bookmarks from oth…” https://t.co/BUx6WTS9u6"
- Rockridgeさんのツイート: "Fx53:同一サイトに複数のアカウントを保有し、それらがパスワードマネージャに登録されている場合、ユーザー名またはパスワードのフィールドにフォーカスが当たった時点で、自動補完候補が表示される。 / “376668 – Impro…” https://t.co/UD4z2vKCBT"
54
- Rockridgeさんのツイート: "Firefox 54でHTML5のdialog要素がサポートされる見込み。参照:https://t.co/LstQ4paiuJ / “Intent to implement: HTML5 <dialog> element - G…” https://t.co/O7MlfBikgB"
- Rockridgeさんのツイート: "Fx54:Firefox Sync動作時、あるクライアントのブックマークの項目に欠損があると判断したときは、他のクライアントに対し、該当する項目をアップロードするよう求める(そしてこれに応答する)仕組みが実装された。 / “13…” https://t.co/A5DMPOFQRg"
- Rockridgeさんのツイート: "Fx54:Firefox Syncがブックマークの欠けた項目を補うのは、他に未処理の項目がない場合に限られる。 / “1345754 - Only validate when there are no pending chang…” https://t.co/3v4mUsRS5J"
- Rockridgeさんのツイート: "Fx54:layers.gpu-process.allow-softwareをtrueに変更するとGPUプロセスがソフトウェアcompositorを使用するようになる。そのほうがパフォーマンスや安定性が改善する環境もあるようだ。 https://t.co/6bpXWGo1s0"
55
- Rockridgeさんのツイート: "Fx55:<script nomodule>を実装した。参照:https://t.co/CoF7seXJye / “1330900 - Implement <script nomodule>” https://t.co/Yy9cMrG2Do"
- Rockridgeさんのツイート: "Fx55:mimeTypes.rdfの内容をhandlers.jsonに移行させ、今後は後者を使用するようにした。 / “1287658 - Migrate from "mimeTypes.rdf" to "handlers.j…” https://t.co/fy5RjLOG8W"
- Rockridgeさんのツイート: "Fx55:新しい設定画面では〔アップデート〕のカテゴリーにFirefoxのバージョンが表示され、最新版かどうかも確認できる。アップデート履歴を表示するボタンもある。 / “1356507 - The Updates pane s…” https://t.co/yuWRfFt3AL"
- Rockridgeさんのツイート: "Fx55:image.mem.animated.discardableの設定をtrueに変更すると、アニメーションGIFなど動的に変更される画像について、アクティブでなくなったものはデコード済みのデータがメモリから追い出されるよう… https://t.co/55CoESgyrg"
- Rockridgeさんのツイート: "Fx55:ヘッドレスブラウジングモードをサポート。GUIのない状態で動作し、自動化テストなどに向く。なお、Chrome 59も同様のモードをサポートする。参照:https://t.co/qNrbFSRZkA / “1338004…” https://t.co/zE2yyvMeFe"
- Rockridgeさんのツイート: "Fx55:アニメーション画像が非アクティブの場合にデコード済みのデータをメモリから追い出す機能が、デフォルト有効化された。省メモリ化に効果がある。 / “686905 - Discard animated images to s…” https://t.co/60lN1DASra"
- Rockridgeさんのツイート: "Fx55:キャッシュ上のデータを使うか、新たにデータを取得するかを決める新しいアルゴリズムが実装された。network.http.rcwn.enabledの設定をtrueに変更すると有効化される。 / “show_bug.cgi…” https://t.co/NtFSyzMlRI"
- Rockridgeさんのツイート: "Fx55:新規タブ内のサムネイルの生成処理が高コストであることから、再計算は1分間以上空けてから行うようにした。 / “1350781 - gBrowserThumbnails._topSiteURLs is super ine…” https://t.co/EWv2g59IhX"
- Rockridgeさんのツイート: "Fx55:toolkit.cosmeticAnimations.enabledの設定が追加された。これをfalseにすることでタブやフルスクリーンなど複数のアニメーションを一括してオフにできる。新しい設定画面にはこの設定を操作する… https://t.co/zfLuzF2Esh"
- Rockridgeさんのツイート: "Fx55:クリップボードにコピーされた画像を、テキストエリアに貼り付けることができるようになった。 / “1317322 - Pasting image from clipboard fails in some cases” https://t.co/8l4grl9sLf"
- Rockridgeさんのツイート: "Fx55:GPUプロセスがクラッシュし、またはキルされた場合も、3回まではプロセスが再起動するようになった。 / “1337131 - Enable restarting the GPU process when it dies” https://t.co/JEdhKtMffq"
- Rockridgeさんのツイート: "Fx55:初期状態でスマートロケーションバーにサジェストされる対象を、Alexaのトップ20サイトにまで拡大。 / “1344276 - Make sample list of top 20 websites (of …” https://t.co/8WGrhkdk8Q"
- Rockridgeさんのツイート: "Fx55:大量のタブを含むセッションを復元する際、UIが応答可能になるまでの時間を大幅に短縮した。たとえば、330タブの復元だと従来の11秒が1.5秒になるという(コメント11)。 / “1345090 - Modify Ses…” https://t.co/6HeS9UqW4T"
- Rockridgeさんのツイート: "Fx55:ブックマークの作成日時も同期されるようになった。 / “676563 - Bookmarks sync does not sync bookmark timestamps” https://t.co/otLpLpgQeN"
- Rockridgeさんのツイート: "Fx55:マルチプロセス機能(e10s)有効時、beforeunloadイベントの作動記録を保持することでタブを閉じる際に毎回イベントの有無を確認する必要をなくし、処理を高速化した。参照:… https://t.co/94cHP0qIOj"
- Rockridgeさんのツイート: "Fx55:キャッシュサイズの上限値を5%上回った時点でキャッシュの追加を停止するようにした。キャッシュの排出処理が追いつかず、総サイズが増え続ける問題に対処するための措置。 / “1342722 - Firefox cache …” https://t.co/g1klaSwQ3P"
- Rockridgeさんのツイート: "Fx55:リンクに対するmousedownイベントを検知した時点で、mouseupイベントの検知を待たずに投機的に接続処理を行うようにした。読み込みの開始が50 - 300ミリ秒早くなるという。 / “1348278 - Spe…” https://t.co/YrWRcEcJiU"
- Rockridgeさんのツイート: "現在の計画では、Android版Firefox 55でCustom TabsとスタンドアロンモードのプログレッシブWebアプリを、56でWebExtensionsとブックマークフォルダの操作を、57で新UI(Photon)をそれぞ… https://t.co/2QOm0ICp55"
- Rockridgeさんのツイート: "Fx55:サイトがHTTPからHTTPSへリダイレクトされる場合、スマートロケーションバーにはHTTPSのものが表示される。 / “1341350 - Visiting an insecure (http://) site th…” https://t.co/OBetdfKaT6"
- Rockridgeさんのツイート: "Fx55:セッションに保存されるDOMストレージのデータを2Kに制限し、I/O処理の低減を図った。 / “1362058 - Further limit the amount of sessionStorage data we …” https://t.co/EG44tHDpeL"
- Rockridgeさんのツイート: "Fx55:Display Listの構築処理を改善。Wikipediaの"JavaScript"の項目で、5.5ミリ秒が4.3ミリ秒に。 / “1342009 - A fast path for BuildDisplayList…” https://t.co/uUx7SyzukK"
- Rockridgeさんのツイート: "Fx55:font-size: larger/smallerの指定がある際のフォントサイズ計算を、競合ブラウザの処理を参照しつつ単純化した。具体的には、1.2倍ずつ変化する形となる。 / “1361550 - Make font…” https://t.co/8mykLnB03l"
- 1361550 - Make font-size: larger/smaller a simple ratio
- Rockridgeさんのツイート: "Fx55:Firefox Syncの同期処理中にブックマークに変更が加えられた場合、追加で同期処理を行うことでブックマーク間の不整合を低減させた。 / “1335891 - Immediately trigger another…” https://t.co/sD6dBiR6M7"
- Rockridgeさんのツイート: "Fx55:Firefoxがデフォルトのブラウザに設定されているかどうかのチェックは、2回目の起動から行うようにした。インストールから初回起動までの流れをスムーズに進ませる措置の一環。 / “1367073 - Ship move…” https://t.co/IyHBdk2HWQ"
- Rockridgeさんのツイート: "Fx55:Windows向け軽量インストーラが64bit版をインストールする際に2GB以上のメモリを搭載しているかチェックする。 / “1366860 - Add 64-bit minimum memory requiremen…” https://t.co/0LOGMKjLhz"
- Rockridgeさんのツイート: "Fx55:本体起動時のメインスレッドI/Oを減らして起動を高速化。 / “1363398 - GetShellFolderPath is expensive during startup” https://t.co/pYvNqNQwxM"
- 1363398 - GetShellFolderPath is expensive during startup
- Rockridgeさんのツイート: "Fx55:バックグラウンドで動作するトラッキング用スクリプトについては、処理を反復する間隔を強制的に10秒に延ばすということらしい。参照:https://t.co/dUoAeG0Bbr https://t.co/tEUs2wcUhO https://t.co/2zyZyd1hZ4"
- Rockridgeさんのツイート: "Fx55:起動時に複数のスクリプトのデコードをまとめて非同期に処理することで、起動完了までの時間を短縮した。 / “1364974 - Allow off-thread decoding multiple scripts for…” https://t.co/iWdwiFQQdv"
- Rockridgeさんのツイート: "Fx55:Nightlyチャンネルで、フォームにカレンダーから日付入力する機能が有効化された。参照:https://t.co/bttKiU6dWs / “1366188 - Enable dom.forms.datetime b…” https://t.co/OTMFEXS59a"
- Rockridgeさんのツイート: "Fx55:input要素のtype属性がdateのときはカレンダーからの入力が可能である一方、同属性がtimeのときはそうしたUIが用意されない。この差は、時刻についてはキーボードで直接入力したほうが早いとの考慮によるという。 https://t.co/GlfgrqUdsj"
- Rockridgeさんのツイート: "Fx55:Linux版でヘッドレスブラウジングモードがデフォルト有効化。ただしSlimerJSまたはMarionetteとの組み合わせが前提となる。参照:https://t.co/isO8OeR6tf / “Shipping H…” https://t.co/JNrBMBiUL0"
- Rockridgeさんのツイート: "Fx55:Cookie用データベースを閉じる処理を非同期で行うようにした。 / “867798 - Cookie Service closes DB on main thread” https://t.co/Zde7cppxfF"
- Rockridgeさんのツイート: "Fx55:Windows版で、システムフォントの探索結果をキャッシュして再利用するようにした。開発者いわく150ミリ秒以上の処理短縮になる。 / “1371157 - cache results of system font l…” https://t.co/NJNlJyUnar"
- Rockridgeさんのツイート: "Firefox 55.0.1以降、再びNetwork Predictorのプリフェッチ機能が無効化されている。 / “1388160 - Disable predictor prefetch (again!)” https://t.co/Fqac8Xv8LE"
- Rockridgeさんのツイート: "Fx55:Firefox Syncのネットワーク処理を完全非同期化。 / “1355677 - Make all Sync network requests promise/async based” https://t.co/QPIeHGkkwb"
- Rockridgeさんのツイート: "Fx55:タブIDの割当て処理を非同期化。 / “1337064 - Make tab ID allocation asynchronous” https://t.co/GMuOX7Jawb"
- Rockridgeさんのツイート: "Fx55:ユーザーがアドレスバーにhttp、httpsやftpなどの文字を入力したときは、検索サジェストを行わないようにした。 / “show_bug.cgi?id=1280441” https://t.co/aafBIuqjir"
- Rockridgeさんのツイート: "Fx55:colSpan/rowSpanの取扱いを最新の仕様に合わせた。 / “1359822 - Match standard for colSpan/rowSpan” https://t.co/gtLQfYZeFJ"
- Rockridgeさんのツイート: "Fx55:スクロールバーをドラッグする場合もスクロールが非同期化されるようになった。 / “1211610 - (async-scrollbar-drag) [Meta] Enable async scrolling via s…” https://t.co/8w2DbITfY8"
- Rockridgeさんのツイート: "Fx55:Windows版で、ダウンロードパネルに表示されたファイルを開く際、EXE以外のファイル形式(JARなど)であっても、起動の確認が行われるようにした。 / “1369771 - Confirm launching ex…” https://t.co/02WwQoJ9Sg"
56
- Rockridgeさんのツイート: "Fx56:設定の保存処理を非同期化した。 / “789945 - Save preferences asynchronously” https://t.co/8urOjUThma"
- Rockridgeさんのツイート: "Fx56:rel=noopenerが付与されたリンクを開くときは、新しいプロセスを使うようにした。 / “1370971 - Open `noopener` links in a new process” https://t.co/pHzxYbiKwi"
- Rockridgeさんのツイート: "Fx56:style要素のscoped属性のサポートが廃止される見通し。Fx21からデフォルト有効化されていたもの。Chromeは37で削除済みだという。参照:https://t.co/ICNZ85S7gM / “Intent …” https://t.co/FZkQMqEM7O"
- Rockridgeさんのツイート: "Fx56:Windows版でもヘッドレスモードをサポート。 / “1355150 - Support headless mode on Windows” https://t.co/Q7x1TkqIbQ"
- Rockridgeさんのツイート: "Fx56:ブックマークをJSON形式でバックアップする処理を非同期化した。 / “1095426 - Convert JSON backups code to the new Bookmarks.jsm API” https://t.co/36RZufIan9"
- Rockridgeさんのツイート: "Fx56:SQLiteのストレージが使用するメモリについて、圧縮処理をできる限り非同期で行うようにした。 / “1166166 - Shrink Sqlite memory on the async thread when po…” https://t.co/agQaOsszCe"
- Rockridgeさんのツイート: "Fx56:Mozillaは以前からHTML Importsをサポートしないと宣言していたが、ついに実装部分を削除するに至った。参照:https://t.co/rBj4JXZcpy / “1197401 - Remove our …” https://t.co/SHEAAve24l"
- Rockridgeさんのツイート: "Fx56:フォームコントロールに用いられる要素についてlabelsプロパティをサポート。 / “556743 - Implement the labels attribute” https://t.co/mt2Jmd4Te5"
- Rockridgeさんのツイート: "Fx56:スペルチェッカーの動作が文字列の処理速度を著しく低下させないように調整を加えた、ということらしい。 / “1370754 - Setting innerHTML to editor is slower than Chr…” https://t.co/Fr4iOddIZT"
- Rockridgeさんのツイート: "Fx56:セッション情報を保存したファイルをLZ4形式で圧縮するようにした。 / “934967 - [Session Restore] Read/write data with lz4” https://t.co/t4BJneL4ru"
- Rockridgeさんのツイート: "Fx56:Nightlyチャンネルで行われているトラッキング用スクリプトの動作抑制について、フォアグラウンドタブの処理が重いときはバックグラウンドタブの抑制を強化するといった、きめ細かな制御を行うらしい。 / “1362322 …” https://t.co/4mvEylQkk6"
- Rockridgeさんのツイート: "Fx56:ICU(International Components for Unicode)ライブラリが59へとアップデートされた。参照:https://t.co/DvjSCGgiJD / “1353650 - Update o…” https://t.co/am39SqxIR7"
- Rockridgeさんのツイート: "Fx56:link要素の"rel=preload"をサポート。参照:https://t.co/wQPIUWPpyR / “1222633 - Add support for <link rel=preload>” https://t.co/4iX9imSbzj"
- Preload を用いたリソースプリローディングの最適化 | blog.jxck.io
- Rockridgeさんのツイート: "Fx56:Windows版/Linux版NightlyにQuantum CSSがデフォルト無効で投入された。layout.css.servo.enabledをtrueにすると有効化される。参照:… https://t.co/pYPZWUHOpK"
- <isindex> 対応が廃止されました | Firefox サイト互換性情報
- <applet> 対応が廃止されました | Firefox サイト互換性情報
- Rockridgeさんのツイート: "Fx56:フレームが子要素のリフローを複数回発生させる場合の処理を高速化した(コメント62)。AmazonやNew York Timesなど実環境のWebサイトでも効果があるらしい。 / “1308876 - Nested in…” https://t.co/H4hu4ecm12"
- Rockridgeさんのツイート: "Fx56:バックグラウンドのタブにおけるHTMLのパースをアイドル時に行うようにし、プチフリを低減。 / “1355746 - Parser should use idle dispatch and not a timer fo…” https://t.co/yDEI7x5yVk"
- Rockridgeさんのツイート: "米国のen-US版ユーザーに限定して、Firefox 56でForm Autofill機能が有効化されるかもしれない。クリスマス商戦に間に合わせるべくFx57では全面的な有効化を行う見通し。参照:… https://t.co/FVbaLa8q3k"
- Rockridgeさんのツイート: "Firefox 56では、Windows/macOS/Linuxのどのプラットフォームにおいても、Node.jsのselenium-webdriverパッケージを使用することで、ヘッドレスモードを制御できる。 / “Headle…” https://t.co/fUiobSP3sZ"
- Rockridgeさんのツイート: "Fx56:フォームにカレンダーから日付入力する際、一定の間隔を空けた日付のみ選択できるUIが実装された。また、現在日を強調表示するようにもなっている。参照:https://t.co/MuMB1KHS64 / “1363672 -…” https://t.co/6UcbOBujVO"
- Rockridgeさんのツイート: "Fx56:セッション復元時、復元されるのを待っているタブにおいて投機的なコネクションを実行するようにした。複数のウィンドウを復元する際の待ち時間が減るとみられる。 / “874533 - Use speculative conn…” https://t.co/f2BOWCRRWu"
- Rockridgeさんのツイート: "Fx56:「最近の履歴を消去」でIndexedDB、Service WorkerとDOMキャッシュのデータも削除するようにした。参照:https://t.co/97uwog6f8N / “1047098 - 'Clear Rec…” https://t.co/uIN4WyqV4W"
- Rockridgeさんのツイート: "Fx56:window.showModalDialogが常時無効化(有効化できない)。Fx57ではこのAPIに関するコードも削除された。参照:https://t.co/CD0DKO3GCa / “981796 - Remove …” https://t.co/e594Nn5s2M"
- Rockridgeさんのツイート: "Fx56:アップデータがLZMA形式のデータ圧縮をサポート。従来のbzip2形式と比較して、20%近くデータサイズを削減できた。 / “641212 - LZMA support for updater” https://t.co/uyYV1niBly"
57
- Rockridgeさんのツイート: "Fx57:ページの読み込みが150ミリ秒以内に終わるときは、停止・再読込ボタンのアニメーションを行わないようにした。 / “1384180 - Don't animate the stop->reload if the page…” https://t.co/ReVNI1QiQL"
- Rockridgeさんのツイート: "Fx57:タブを閉じる際、閉じる処理が終わる前に隣のタブのフォアグラウンド化を先行させることで、体感上の速度を向上させた。 / “1355426 - When closing tabs, select the next tab …” https://t.co/Sa2AR1Oey4"
- Rockridgeさんのツイート: "Fx57:Placesデータベースの期限切れ処理について、5分間アイドル状態が続いた場合に大きな処理を行うようにすることで、パフォーマンスの低下を抑えた。 / “1376533 - Use idleDispatch for Pl…” https://t.co/7FPF5o21QS"
- Rockridgeさんのツイート: "Fx57:Nightlyチャンネルで、オートスクロールにもAsync Pan/Zoom(APZ)が適用されるようになった。参照:https://t.co/sWDHJLVj0V / “APZ autoscrolling enabl…” https://t.co/HdXj2v28It"
- Rockridgeさんのツイート: "Fx57:Lazy Frame Constructionを編集可能領域にも適用。Webメールの入力やブログ記事の編集などの場面でパフォーマンスが向上する。参照:https://t.co/pnk51XaKNm / “1348073…” https://t.co/cB2gw5C4Bb"
- Rockridgeさんのツイート: "Fx57:バックグランドのタブへのマウスオーバーがあった時点でタブ切り替え後の処理の一部を投機的に開始しておくことにより、体感上の速度を向上させた。 / “1385453 - Make it possible for async…” https://t.co/yZJkSpDAov"
- Rockridgeさんのツイート: "Fx57:browser.tabs.loadBookmarksInTabsの設定をtrueに変更することで、ブックマークを開く際、新しいタブにコンテンツが表示されるようになる。 / “658245 - Open bookmark…” https://t.co/vgoyLKH1fi"
- Rockridgeさんのツイート: "ディスプレイのリフレッシュのタイミングに合わせてmousemoveイベントをまとめて処理する仕組みがFirefox Nightly 57に実装されるらしい。イベントの実行コストを削減することが目的。 / “Enable coal…” https://t.co/WEgb5BNc1G"
- Rockridgeさんのツイート: "Fx57:browser.xulからスクリプトをロードする際、サブスクリプトローダーを使用することで、プリローダーキャッシュから別スレッドの単一のゾーンに読み込むなどの処理が可能となり、本体の起動が高速化された。 / “1384…” https://t.co/B753EwzC2n"
- Rockridgeさんのツイート: "Fx57:アクセシビリティ機能が有効の場合(高DPI環境でディスプレイ設定が拡大表示のときを含む)、タブバー上にインジケータが表示されるようになった。accessibility.indicator.enabledをfalseにする… https://t.co/WJ1RddRVJa"
- Rockridgeさんのツイート: "Fx57:タブのコンテキストメニューに「タブを複製」が追加された。 / “455722 - Add context menu item to duplicate (clone) tab” https://t.co/qskO1EL3GD"
- Rockridgeさんのツイート: "Fx57:本体起動時に各種設定ファイルやシステムスタイルシートなどを別スレッドで非同期に読み込むようにし、パフォーマンスを向上させた。 / “1363482 - Pre-load files needed during star…” https://t.co/rnjiiJuUcX"
- Rockridgeさんのツイート: "Fx57:新規タブのサムネイル生成処理はアイドル時に行うようにした。 / “1348280 - Thumbnail causes jank on sites with a requestAnimationFrame” https://t.co/fhaGFRH9C2"
- Rockridgeさんのツイート: "すべてのXPConnect JSモジュールを単一のコンパートメントに読み込む仕組みは、Firefox Nightly 57にデフォルト無効で投入された。この仕組みが有効化された場合のパフォーマンス向上の度合いは大きいようだ。 https://t.co/zPw8mwlmhk"
- Rockridgeさんのツイート: "Fx57:ヘッドレスモードのコマンドラインからスクリーンショットを撮影できるようになった。--screenshot=/path/to/fileというコマンドを使用する。 / “1378010 - Take a screensho…” https://t.co/GKweM0uzUW"
- Rockridgeさんのツイート: "Firefox 57の起動速度はFirefox 55と比較して約50%も高速化したという。 / “Photon Engineering Newsletter #16 | Dolske's blog” https://t.co/x26ABPpaCW"
- Rockridgeさんのツイート: "Fx57:Fluentをベースにした新しいローカライズ用フレームワークを導入。参照:https://t.co/wRK9Vxc6R5 https://t.co/v2sqxF4SSl / “1333980 - Land L10nRe…” https://t.co/DJ8xOstoX2"
- Rockridgeさんのツイート: "Fx57:eTLD(effective TLD)のルックアップ機構を改良し、省メモリ化とパフォーマンス向上を同時に実現した。Chromeの技法を採り入れたという。 / “1380154 - Improve Effective T…” https://t.co/BrRY7DEuob"
- Rockridgeさんのツイート: "Fx57:Async Iterationをデフォルト有効化。 / “1352312 - Update Async Iteration to follow the proposal change and let it ride t…” https://t.co/qfcsqSTqJS"
- Rockridgeさんのツイート: "Fx57:入力イベントの処理の優先順位を高めることで、応答性を向上させたらしい。 / “1351148 - Add an event queue to nsThread for input events and annotate…” https://t.co/VkAm8javR3"
- Rockridgeさんのツイート: "Fx57:戻るボタンで履歴を遡る際、新規タブページに戻ることができるようになった。 / “776167 - can't go back to the new tab page” https://t.co/xiwLGviB3B"
- Rockridgeさんのツイート: "最小タブサイズを従来の半分にする新仕様に対しては賛同者が多く、Firefox 57にも投入されそうな雰囲気だ。 / “Changes to tab min-width” https://t.co/IfnDzXtZsz"
- Rockridgeさんのツイート: "Fx57:ブックマークをHTMLからインポートした場合、Firefox Syncの処理としては新しいブックマーク項目の追加として扱うようにした。これまではリストアの扱いになっていた。 / “1353217 - importing…” https://t.co/FDzZCuVtR4"
- Rockridgeさんのツイート: "Fx57:iframe内に読み込まれたデータURLはクロスオリジンとして扱われるようになった。クロスサイトスクリプティング(XSS)の危険を軽減するための措置。 / “Treating data URLs as unique o…” https://t.co/CIAosZzaxO"
- Rockridgeさんのツイート: "Fx57:アドレスバーの検索サジェストの候補に、過去の検索履歴の項目が含まれるようになった。 / “1181644 - search suggestions in the awesome bar should include l…” https://t.co/YTT5oiMBWP"
- Rockridgeさんのツイート: "Fx57:MS-IMEやGoogle日本語入力を使用しつつアドレスバーにフォーカスを当てると入力モードがオフになるというIME側の仕様に、対策を施した。 / “show_bug.cgi?id=1404206” https://t.co/2lX511vr3T"
- Rockridgeさんのツイート: "タブの最小サイズを76にするのは最終決定のようだ。Firefox 57もこれでいく。参照:https://t.co/tsIVZifLOs / “Changes to tab min-width” https://t.co/hxCxWq71om"
- Rockridgeさんのツイート: "Fx57:ツールバー上に「伸縮自在のスペース」を配置した場合、それによってできる空白領域をドラッグして、ウィンドウを移動させることができるようになった。 / “1387415 - Use flexible spaces (and…” https://t.co/rZtK0IqiuD"
- Rockridgeさんのツイート: "Fx57:設定画面でフォントを列挙する処理を非同期化した。 / “1375978 - Enumerating fonts should not block about:preferences from being display…” https://t.co/B75IaWWwOJ"
- Rockridgeさんのツイート: "Fx57:Web版Twitter上で既に多数のツイートを表示している場合などに、タイムラインにおける新規ツイートの表示に時間がかかる問題を修正。 / “1368852 - twitter's load "new results"…” https://t.co/coNg3CdeDr"
- Rockridgeさんのツイート: "Fx57:日本語版に初期登録されるフィードリーダーがFeedly/Inoreader/AOL Readerの3つに決まった。Feed Watcherはフィード登録用のURLが存在しないため今回は採用が見送られた。 / “1383…” https://t.co/6oa5Hkp0XQ"
- Rockridgeさんのツイート: "Feed Watcherの開発会社がフィード追加用URLを公開し、急遽Firefox 57にも追加されることが決まった。 / “1413155 - [ja] Add Feed Watcher as feed handler” https://t.co/Yk2l9M0YTs"
- Rockridgeさんのツイート: "Fx57:フォームにカレンダーから日付入力する機能がデフォルト有効化された。 / “1399036 - Enable date/time input by default on all builds” https://t.co/gSVuvpDgKH"
- Rockridgeさんのツイート: "Fx57:設定画面の〔プライバシーとセキュリティ〕にサイトデータのディスク使用量が表示され、ユーザーがサイトデータを個別に・まとめて削除できるようになった。 / “1399398 - Turn on the Storage Ma…” https://t.co/2UF2a7XLCh"
- Rockridgeさんのツイート: "Fx57:ウェブ開発メニューのWebIDEで、シミュレーター機能が削除された。 / “1398061 - Remove simulators from WebIDE” https://t.co/EEAd8BPE3G"
- Rockridgeさんのツイート: "Akamaiが大規模なデータを基に調査したところによると、Firefox 57はFirefox 52との比較でDOM Content Loadedの時間が24%改善したという。 / “measuring-performance-…” https://t.co/9jfkJeNknt"
- Rockridgeさんのツイート: "Fx57:ホームタブ・新規タブのセクションごとに、「?」マークのアイコンを置き、設定画面へのショートカットが表示されるようにした。セクションをオフにする方法がわかりにくいという声に配慮したもの。 / “1404345 - Use…” https://t.co/Za2EigAEVs"
- Rockridgeさんのツイート: "Fx57:仕様上、Firefox Screenshotsはプライベートブラウジングモードでは使用不可。 / “1403661 - Stop Screenshots from activating in private brows…” https://t.co/mlvaQpBby1"
- Rockridgeさんのツイート: "Firefox 57で発生していた、スクリーンリーダー使用時に本体のパフォーマンスが低下する問題は、Firefox 58でおおむね解消されたとのこと。 / “NVDA and Firefox 58 - The team is r…” https://t.co/1uclU9zVpi"
- Rockridgeさんのツイート: "Fx57:検索プラグインにeBayを追加。Fx50で外れていたが、eBayと再契約したことにより戻ってきた。 / “1406164 - Bring eBay back” https://t.co/DYoo3zIDrB"
- Rockridgeさんのツイート: "Fx57:Windows版インストーラが使用する画像ファイルが高DPIに対応した。 / “1337856 - Installation assets in Windows are low dpi” https://t.co/DyuRIkoe82"
58
- 日本語版Firefox 58では初期登録のフィードリーダーが3つに - Mozilla Flux
- Rockridgeさんのツイート: "リリース版でPointer Events(マウス・タッチ・ペン入力)がデフォルト有効化されるのは、Firefox 58になる見通し。 / “Firefox/Channels/Meetings/2017-07-06 - Mozil…” https://t.co/ttXU9hB2WU"
- Rockridgeさんのツイート: "Fx58:一定の条件を満たす場合にgetComputedStyleがリスタイリングをスキップするようにして処理を高速化。参照:https://t.co/QsQ3FjtetY / “getComputedStyle now ski…” https://t.co/mMrL6L1DFg"
- Rockridgeさんのツイート: "Fx58:Windows版Nightlyで、描画処理の非同期化(OMTP:Off Main Thread Painting)が有効になった。 / “1403935 - Enable OMTP by Default on Wind…” https://t.co/7oVJrPLJYk"
- Rockridgeさんのツイート: "Fx58:browser.tabs.tabMinWidthの設定を復活させ、その初期設定値を100から50に下げた。Chromeのようにタブバー上に大量のタブが並ぶことになる。 / “1404465 - Add back `br…” https://t.co/TJd9x74IV4"
- Rockridgeさんのツイート: "Firefox 58で<a ping>のサポートを検討中。リンクが押された際にリンク先とは別にログ用のURLにリクエストを投げることが可能になる。参照:https://t.co/eGE9yxM3MT … https://t.co/q8zvG775fA"
- Rockridgeさんのツイート: "link要素の"rel=preload"はWeb互換性の問題が生じているため、Firefox 57でいったん無効化し、Firefox 58での再有効化を目指すという。 / “Intent to unship: rel=prelo…” https://t.co/NwBqqAD8kD"
- Rockridgeさんのツイート: "Async Places TransactionsはFirefox 58でデフォルト有効化の見込み。 / “Firefox/Meeting/10-Oct-2017 - MozillaWiki” https://t.co/WuQJbntFRW"
- Rockridgeさんのツイート: "複数のタブを選択する機能は、Firefox本体に実装の予定があるらしい。Firefox 58に入るかも。参照:https://t.co/yrd8Scdooj / “Firefox/Meeting/10-Oct-2017 - Mo…” https://t.co/JzKaLEVRCb"
- Rockridgeさんのツイート: "Fx58:general.smoothScroll.msdPhysics.enabledをtrueにすると、スムーズスクロールの挙動が変更される。新しいアルゴリズムを採用したらしい。変更後の挙動のほうが加速が大きくなる印象だ。 https://t.co/Fp4qts3l2d"
- Rockridgeさんのツイート: "Fx58:軽量インストーラがレジューム機能を備えた。ダウンロード中にネットワーク接続が途切れた場合、接続再開後はダウンロードの途中から復帰する。 / “798005 - Add resume support to the stu…” https://t.co/9bm9CnpE46"
- Rockridgeさんのツイート: "Fx58:Shiftキー + ホイールの縦スクロールでコンテンツの横スクロールが可能に。16年前に登録されたバグの修正となる。参照:https://t.co/W9z5tNaCz1 / “Intent to ship: New d…” https://t.co/AtTWu05dEi"
- Rockridgeさんのツイート: "Fx58:Pointer Events(マウス・タッチ・ペン入力)がデフォルト有効化へ。参照:https://t.co/PT8iVENNx4 / “Intent to ship: Pointer Events (Desktop)” https://t.co/0iJTd4ZGcb"
- Rockridgeさんのツイート: "Fx58:パスワードやセキュリティ証明書を保存するデータベースが、SQLiteを用いた新しいファイルフォーマット(cert9+key4)に移行した。 / “783994 - switch Mozilla to use the c…” https://t.co/iunqpvVTvk"
- Rockridgeさんのツイート: "Android版Firefox 58でWebアプリマニフェストをサポート。HTTPS接続したサイトが正統なマニフェストを持つ場合、ホームスクリーンに追加するとアプリ的に振る舞う。 / “Add Progressive Web A…” https://t.co/7yPKale3Rg"
- Rockridgeさんのツイート: "Async Places TransactionsはFirefox 58リリース版に投入される見通し。 / “These Weeks in Firefox: Issue 26 – Firefox Nightly News” https://t.co/YcDbKagjZT"
- Rockridgeさんのツイート: "Fx58:ポップアップブロックのアイコンが、アドレスバーの右端ではなく、左端の情報領域に置かれるようになった。 / “1331931 - Move the popup blocked icon into the identity…” https://t.co/KgxlTIkYGu"
- Rockridgeさんのツイート: "Fx58:Android版Firefoxのビルド環境がGCCからClangに移行した。参照:https://t.co/jNmNvXnqrm / “Fennec now builds with clang instead of g…” https://t.co/guOap9dZxr"
- Rockridgeさんのツイート: "Fx58:Android版FirefoxのビルドにGradle Build Toolが用いられるようになる。参照:https://t.co/BdAhqay5zS / “[ann] Default Fennec build con…” https://t.co/FK5aUptWTk"
- Rockridgeさんのツイート: "Fx58:Webサイトがcanvas要素のImageDataを使用する際、ユーザーに許可を求めるようになった。ユーザーの識別に利用されるおそれがあるため。 / “Firefox 58 warns you if sites use…” https://t.co/KPOTyvt6YX"
- Rockridgeさんのツイート: "Fx58:ユーザーが追加する検索エンジンのアイコンについて、サイズの上限が10KBから20KBに引き上げられた。アイコンが表示されない問題が起きにくくなる。 / “361923 - Can't use remote search…” https://t.co/QHTU72eXw7"
- Rockridgeさんのツイート: "Fx58:バックアップしておいたブックマークを復元する際、エラーが出た項目をスキップして処理を行うようになった。一部が原因で全く復元できないという事態を避けられる。 / “1404631 - Firefox 56: "Unabl…” https://t.co/aCzwQknT2z"
- Rockridgeさんのツイート: "Fx58:YouTubeのように複数のファビコンが設定されている場合、適切なものを取得してタブに表示するようにした。これまでは最後に記述されたファビコンを取得しているだけだった。 / “1403829 - YouTube ico…” https://t.co/yg8blFHbvP"
- Rockridgeさんのツイート: "Fx58:Async Places Transactionsが有効の場合に、フォルダをまたいで大量のブックマークをコピー・移動する際のパフォーマンスが改善された。 / “1413843 - Cut/Copy/Move opera…” https://t.co/Vfi0G8A5Rf"
- Rockridgeさんのツイート: "Firefox 58では、WebページがデータURLドキュメントを開くことやデータURLドキュメントに遷移することがブロックされるという。 / “Blocking Top-Level Navigations to data UR…” https://t.co/nRc41rjpEK"
- Rockridgeさんのツイート: "Fx58:ページ内検索で、不可視のテキストまでヒットしてしまう後退バグを修正。 / “1302470 - Find in page should only find visible text” https://t.co/o5Qp14cE9m"
- Rockridgeさんのツイート: "Firefox 58にデフォルト無効で実装された、Webサイトがcanvas要素のImageDataを使用する際にユーザーに許可を求める機能は、もう少しきめの細かい制御を可能にしつつ、サンドボックス化されたiframeで有効化する… https://t.co/hFoVooV2hn"
- Rockridgeさんのツイート: "Fx58:マウスでスクロールバーを操作してスクロールする際、一部のページでバーのつまみ部分が追随しない後退バグを修正。 / “1402995 - Scroll thumb not synchronized with mouse” https://t.co/nem7u17IgR"
- Rockridgeさんのツイート: "Fx58:about:profilesで、プロファイルの削除処理を非同期化し、サイズの大きなプロファイルを削除しても本体の応答性に支障が出ないようにした。 / “1406818 - Firefox hangs when dele…” https://t.co/Waj7LdxOJq"
- Rockridgeさんのツイート: "Fx58:アドレスバーのメニューから〔リンクをコピー〕した際、「コピーしました」とのメッセージが表示される。 / “1408135 - Copy URL confirmation message should appear wh…” https://t.co/p2vVgWMlqW"
- Rockridgeさんのツイート: "Fx58:大きなデータURIが開かれているタブの切り替えを高速化。 / “1408854 - Very slow tab-switching when a tab with a large data URI is open” https://t.co/3HPbCce4Dd"
- Rockridgeさんのツイート: "Firefox 58の主な改良点について。Firefox Quantumの前では霞んでしまうが、通常であれば新機能が多数実装された、大きめのリリースと言えるだろう。 / “Firefox/Roadmap/Updates - Mo…” https://t.co/oVJkmx70Y1"
- Rockridgeさんのツイート: "Fx58:ショートカットキーを用いてブックマークを登録する場合も、デフォルトのフォルダが「他のブックマーク」となり、挙動が統一された。 / “1120110 - Standardize default output folder…” https://t.co/3fU22oBPBo"
- Rockridgeさんのツイート: "Fx58:常に適切なサイズのファビコンが取得されるよう調整を加えた。 / “1347532 - The page-icon protocol should default to the best size for most UI…” https://t.co/mVwLfuyYkm"
- Rockridgeさんのツイート: "Fx58:Cookieデータベースの起動処理を非同期化した。 / “870460 - Lazy load of cookie service blocks main thread while cookie database lo…” https://t.co/bkrPRgpn9P"
- Rockridgeさんのツイート: "Fx58:プライベートブラウジングモードにおいても、ブラウジングライブラリーで「このサイトの履歴を消去」が使えるようになった。 / “1394824 - "Forget About This Site" is missing i…” https://t.co/WOmj0B1LaK"
- Rockridgeさんのツイート: "Fx58:トラブルシューティング情報(about:support)のページに「国際化とローカライズ」のセクションが加わり、ロケール関連の情報が表示されるようになった。 / “1414975 - Add locale inform…” https://t.co/9HzZircWJ9"
- Rockridgeさんのツイート: "Fx58:Firefoxをリフレッシュした際、ブックマークツールバーにデフォルト以外のブックマークが4つ以上あるときは、ツールバーを隠さないようにした。 / “1415692 - New/Reset profiles shoul…” https://t.co/ncvaBujGCR"
- Rockridgeさんのツイート: "Firefox 58のFirefox Screenshotsはプライベートブラウジングモードに対応しており、スクショのクラウド保存はできないがダウンロードは可能。モード終了時に削除される。参照:… https://t.co/xswmfdeMjW"
- Rockridgeさんのツイート: "Firefox 58の紹介記事だが、CSS Font DisplayやPromiseの新機能にスペースを割くあたりがMozilla Hacksらしさか。 / “Firefox 58: The Quantum Era Contin…” https://t.co/cVFKD47t7o"
59
- Rockridgeさんのツイート: "Fx59:textarea要素のautocomplete属性をサポート。参照:https://t.co/axCbzT9I7r https://t.co/EFTGGMOuXr / “Intent to Implement and …” https://t.co/JBhwK3kGI5"
- Rockridgeさんのツイート: "Fx59:スリープ時におけるFirefox Syncの動作を抑えるべく、スリープ前に簡易同期を、スリープ復帰後に完全同期を行う。参照:https://t.co/ckTeDo2zD1 / “1416322 - Schedule a…” https://t.co/Am50jLUyM2"
- Rockridgeさんのツイート: "Firefox Nightly 59でCustom Elementsがデフォルト有効化される見込み。 / “Intent to implement: Custom Elements” https://t.co/B4DkLHshgW"
- Rockridgeさんのツイート: "Fx59:@-moz-documentルールがWebコンテンツから使用できなくなる。参照:https://t.co/hlLgfrJHdP / “Intent to unship: @-moz-document from cont…” https://t.co/XbWA54HUWY"
- Rockridgeさんのツイート: "Fx59:ページのメタデータは変更があるときのみPlacesデータベースに書き込まれるようになった。無駄な書き込み処理が減ることに。 / “1420571 - Reduce I/O caused by storing page …” https://t.co/t08UABotdy"
- Rockridgeさんのツイート: "Fx59:Race Cache With Network(RCWN)がデフォルト有効化。ディスクI/Oが遅い場合に、キャッシュされたコンテンツについてもネットワーク要求を送り、応答が早ければそちらを利用する。 / “139284…” https://t.co/NKFFK3xWoD"
- Rockridgeさんのツイート: "Fx59:古く、標準化もされなかったpcast/feedプロトコルを削除。フィードの購読機能には影響しない。参照:https://t.co/fDsD8FYi5X / “Intent to remove pcast and fee…” https://t.co/4JJ0i6IFKB"
- Rockridgeさんのツイート: "Fx59:オプション画面の「保存されたログイン情報」において、コンテキストメニューからURLをコピーしたり、タブに開いたりすることができるようになった。 / “1334663 - Allow users to copy save…” https://t.co/1AKnxeRATp"
- Rockridgeさんのツイート: "Fx59:最近の履歴を削除するなどして、フォーム履歴をまとめて削除した場合、Firefox Syncの同期処理にそれが反映されるようになった。 / “1404427 - Sync mass Form History deleti…” https://t.co/8RzyvKuAij"
- Rockridgeさんのツイート: "Fx59:Firefox Screenshotsに、スクリーンショットをクリップボードに追加する機能が実装された。 / “1419148 - Export Screenshots 25.0.0” https://t.co/p5KTIXXrky"
- Rockridgeさんのツイート: "Fx59:ピン留めしたタブのコンテキストメニューにも、「右側のタブをすべて閉じる」「他のタブをすべて閉じる」の項目が出るようになった。ただし閉じられるのはピン留めされていないタブに限られる。 / “1419537 - Unabl…” https://t.co/pgriZiNVXX"
- Rockridgeさんのツイート: "Fx59:文字列の選択時、アンダースコアを文字列の一部として扱うようにした。従来は文字列の区切りとして扱われていた。 / “196175 - underscore should be part of word, not punc…” https://t.co/gnVqfOedtJ"
- Rockridgeさんのツイート: "Fx59:オプションの〔プライバシーとセキュリティ〕内の「許可設定」欄で、通知の許可設定のUIに、すべての通知を拒否する設定が追加された。 / “1368744 - Provide a way for users to deny…” https://t.co/NKtKw6MKQp"
- Rockridgeさんのツイート: "Fx59:Activity Stream導入後のホームタブ・新規タブにおいて、トップサイトの項目をドラッグ&ドロップで並び替えられるようになった。 / “1402192 - Top Sites drag and drop” https://t.co/Fz9UukKKZA"
- Rockridgeさんのツイート: "Fx59:JAR形式のファイルに対する読み書きが非同期化され、本体の起動が高速化された。 / “1373708 - Convert Jar channels to stop using main thread I/O” https://t.co/vqj2t1HpqT"
- Rockridgeさんのツイート: "Fx59:Nightlyチャンネルで、Web Authenticationがデフォルト有効化。参照:https://t.co/wfLGpyeoKL / “1428918 - Web Authentication - Enable…” https://t.co/to6Sb30OBf"
- Rockridgeさんのツイート: "2017年12月19日時点のFirefox Nightly 59に約8万6000項目のブックマークをインポートしたテスト結果。Async Places Transactionsが無効だと処理終了までに優に3時間以上を要するが、有効… https://t.co/V3bXMtG39D"
- Rockridgeさんのツイート: "Fx59:Placesデータベースの破損を検知した場合、データベースを新規作成して、元のデータベースから可能な限りテーブルを移し、当該新データベースで置き換える処理が、自動的に実行される。 / “1411538 - Add a …” https://t.co/kLYg40TPRH"
- Rockridgeさんのツイート: "Fx59:オプション画面の〔検索〕に、アドレスバーにおいて履歴からのサジェストよりも検索結果からのサジェストを優先する設定が追加された。 / “1426216 - Allow users to choose whether se…” https://t.co/wOVt0TmuWV"
- Rockridgeさんのツイート: "Fx59:プライベートブラウジングモードでは、リファラーポリシーがデフォルトでstrict-origin-when-cross-originに設定されるようになった。参照:https://t.co/V0ucWrNl6v / “5…” https://t.co/72lIIfzNf4"
- Rockridgeさんのツイート: "Fx59:Windows以外のプラットフォームでは、プロファイルのパスが正規のUTF-8でない場合、本体が起動しないようにした。 / “1423855 - Refuse to run on non-Windows platfor…” https://t.co/1RpOPtdKXS"
- Rockridgeさんのツイート: "Fx59:ディスプレイリストに変更がない場合もRetained Display Listsが機能するようになった。 / “1419021 - Retain display list when there are no chang…” https://t.co/KLrCoR0XW2"
- Rockridgeさんのツイート: "Fx59:ピン留めされたタブ上でCtrl(Command)+ Wキーを押した場合、ピン留めされていない最初のタブがアクティブになるようにした。 / “1420601 - Let Accel+W in a pinned tab s…” https://t.co/oa40Tb6TuX"
- Rockridgeさんのツイート: "Fx59:ロケールのリストは、新たに設けられたintl.locale.requestedの設定内に記述されることになった。 / “1414390 - Introduce a pref to store BCP47 locale …” https://t.co/xw6xs76gzU"
- Rockridgeさんのツイート: "Fx59:fileプロトコルのURIについては、同期対象から外されることになった。 / “664590 - History sync: ignore file:/// URIs” https://t.co/g9Wj0glJW0"
- Rockridgeさんのツイート: "Fx59:table要素内でもposition: stickyが有効となった。 / “975644 - Make position: sticky work on table parts” https://t.co/FGGUilMpMH"
- Rockridgeさんのツイート: "Fx59:dom.webcomponents.enabledの設定名をdom.webcomponents.shadowdom.enabledへと変更した。 / “1428685 - Consider renaming pref …” https://t.co/LDyy1rKxdl"
- Rockridgeさんのツイート: "Fx59:tab warming機能が有効の場合、タブの閉じるボタンにカーソルをホバーさせた時点で、そのタブを閉じた際にアクティブになるタブのwarming処理が始まる。 / “1430292 - Warm up tab we'…” https://t.co/3UTy7j4YWX"
6x
60
- Rockridgeさんのツイート: "Firefox 60リリース版において、USB接続されたFIDO U2Fデバイスがサポートされる見通し。その後もFIDO 2.0デバイスのサポートが拡充されていくという。 / “Intent to Ship: Web Authe…” https://t.co/jYn7i7b5b6"
- Rockridgeさんのツイート: "Firefox 60で、Webコンテンツから使用されるjarプロコトルのサポートが廃止される見込み。参照:https://t.co/SwIrq4Fecp / “Intent to unship: remote jar: prot…” https://t.co/Q8mvHfpqXZ"
- Rockridgeさんのツイート: "Firefox 60ではNightly/Developer Editionにおいてアプリケーションキャッシュ(AppCache)の利用が安全なコンテキストに限定される見通し。Firefox 62リリース版でも同様の措置へ。参照:… https://t.co/l58xbEEYLd"
- Rockridgeさんのツイート: "Firefox 60でPolicy Engineが実装されるのに伴い、AutoConfig機能は廃止予定となる見込み。 / “1434655 - Make AutoConfig ESR only starting with Fi…” https://t.co/gIefqhB6OI"
- Rockridgeさんのツイート: "Fx60:Rust言語製の新しい設定パーサが実装された。従来よりも高速かつ安全で、エラーメッセージがわかりやすく正確になり、メンテナンスもかなりしやすくなったという。参照:https://t.co/YlVSP1Gep3 / “N…” https://t.co/DY50wXxS0L"
- Rockridgeさんのツイート: "Fx60:設定画面の〔プライバシーとセキュリティ〕の「サイトデータ」で、"すべてのデータを消去"を選択すると確認画面が表示され、キャッシュも削除できるようになった。 / “1422163 - Make a new confirm…” https://t.co/tfEBO7oghi"
- Rockridgeさんのツイート: "Firefox 60に実装されたStructured Bookmark Applicationを取り上げている。ブックマークの同期時、サーバから読み込まれた内容をそのままデータベースに書き込むのではなく、中間的なツリーを構築するの… https://t.co/UhQfOqbHmj"
- Rockridgeさんのツイート: "Fx60:スクリーンの横幅が十分にある場合、新規タブに表示されるトップサイトを1列あたり8つに増やすとともに、ハイライトのカードサイズを大きくするようにした。 / “1385944 - Support wider layout …” https://t.co/KctiojbENY"
- Rockridgeさんのツイート: "Fx60:軽量インストーラがダウンロードを行う際、HTTPS接続を用いるようにした。 / “1246387 - Use https for stub installer requests” https://t.co/rPdBG5f2OZ"
- Rockridgeさんのツイート: "Fx60:browser.urlbar.openintabの設定をtrueに変更すると、アドレスバーに入力された内容(URLまたは検索クエリ)は、常に新規タブで表示される。 / “1394304 - Support always…” https://t.co/oyF3ZqvmCv"
- Rockridgeさんのツイート: "Fx60:security.insecure_connection_text.enabledの設定をtrueに変更すると、HTTP接続のページでは、アドレスバーに"Not Secure"つまり「安全でない接続」と表示されるようにな… https://t.co/sDMQzLG4ey"
- Rockridgeさんのツイート: "Fx60:network.ftp.enabledの設定をfalseに変更すると、FTPプロトコルを無効にできる。 / “1374114 - Add a pref to disable ftp://” https://t.co/2DX18Pxfyo"
- Firefox ESR60以降でのPolicy Engineによるポリシー定義の手順 - ククログ(2018-02-19)
- Rockridgeさんのツイート: "Fx60:security.mixed_content.upgrade_display_contentの設定をtrueにすると、静的混在コンテンツにおいてHTTP接続が指定されたリソースを、HTTPS接続によって取得するという。 https://t.co/hCExsfu3kB"
- Rockridgeさんのツイート: "Fx60:Cookie関連の設定がサイトデータのセクションに移された。Cookieはサイトデータの一部として扱われ、Cookieのみを一覧から削除することはできなくなった。 / “1432743 - Move cookie se…” https://t.co/onK6zsWjpt"
- Rockridgeさんのツイート: "Policy EngineはFirefox 60で、ESRに限らず通常版でも利用可能になるようだ。ただし、一部の重要なポリシーはESRでのみ有効となる。 / “Intent to Ship: Enterprise Policies” https://t.co/2vf50eZCg8"
- Rockridgeさんのツイート: "Fx60:新規タブ内のセクションごとにコンテキストメニューが設けられた。セクションを閉じたり削除したりできるほか、新規タブの設定を呼び出すことも可能。 / “1422079 - Add section context menu …” https://t.co/nikNbXfr8k"
- Rockridgeさんのツイート: "Fx60:「ページのソースを表示」する際、新規ウィンドウに表示させる設定が廃止された。常に新規タブに表示されることになる。参照:https://t.co/JETAsOLAq1 / “Feature Removed: View S…” https://t.co/n6NebKKPCp"
- Rockridgeさんのツイート: "Fx60:フレーム数の多いアニメーションGIF画像やAPNG画像を表示させた際、大量のメモリを消費する問題を修正。 / “523950 - Long animated images (GIF, APNG) makes Firef…” https://t.co/iWzpUYTCWc"
- Rockridgeさんのツイート: "Fx60:長大なテキストファイルを表示する際、パフォーマンスが著しく低下する問題を修正。 / “1427625 - Performance cliff loading a Taskcluster log” https://t.co/IN56Y6rovT"
- Rockridgeさんのツイート: "Fx60:Windows向け64bit版で、プラグインプロセスによるプロセス間通信がSSLによって保護されるようになったらしい。 / “1429643 - Restrict SSL brokering in NPAPI proc…” https://t.co/z7HFh3ohMq"
- Rockridgeさんのツイート: "Fx60:Web Authentication利用時のパーミッションUIが実装された。 / “1430150 - Web Authentication - Prompt for permission before permitt…” https://t.co/oNqyW3BPZV"
- Rockridgeさんのツイート: "Fx60:フォーム履歴の処理を非同期化。 / “888784 - FormHistory.jsm migration and DB creation should be off the main thread” https://t.co/uJ3qhQQ1rt"
- Rockridgeさんのツイート: "Fx60:他のブラウザからブックマークや履歴などをインポートする際の処理について、非同期化を進めた。参照:https://t.co/j4gd1MhPeH / “862127 - profile migrators do all …” https://t.co/SV3KzEXyE0"
- Rockridgeさんのツイート: "Fx60:workerが常時有効化。 / “1434934 - Get rid of dom.workers.enabled pref” https://t.co/n5Puw0CfqV"
- Rockridgeさんのツイート: "Fx60:HTMLテキストでもCSSのpaint-orderプロパティがデフォルト有効化された。参照:https://t.co/ygLlo9FN8w / “Firefox 60 – Modules and More – Mozi…” https://t.co/ScyIRlmQG1"
- Rockridgeさんのツイート: "MozillaがFirefox 60以上を使用するen-USロケールユーザーの1%を対象に、ファイルのダウンロード先としてクラウドストレージを指定可能にする機能の実験を行った。実験は今後も形を変えて継続される見込み。 / “Un…” https://t.co/ebDLXgiJfH"
61
- Rockridgeさんのツイート: "Firefox 61以降、ビルドの際にNode.jsが必須となる模様。参照:https://t.co/rKdElYR1j2 / “Intent to require Node to build Firefox 61 and la…” https://t.co/pTb3yIO7k4"
- Rockridgeさんのツイート: "Fx61:contentプロセスの生成時、メインスレッドをブロックしないようにした。パフォーマンスの改善が期待できる。 / “1348361 - Remove sync IPC when launching a child pr…” https://t.co/ZNOhFaKKPr"
- Rockridgeさんのツイート: "Fx61:Windows版で、Async Pan/ZoomのコントロールをGPUプロセスのメインスレッドが担当するようになった。ユーザー入力時の応答性が向上するという。 / “1441324 - Make the APZ con…” https://t.co/DYPO4Hqtu0"
- Rockridgeさんのツイート: "Fx61:browser.tabs.closeTabByDblclickの設定をtrueに変更すると、選択したタブをダブルクリックするだけで、そのタブを閉じることができる。 / “1435142 - Pref to enable…” https://t.co/SpyVyNcaBy"
- Rockridgeさんのツイート: "Fx61:最終同期時間の表示が、日時ではなく、相対的にどれくらい前か(例:4時間前)を示すものになった。 / “1184265 - Make last sync date be relative” https://t.co/J1f2flpJ9Q"
- Rockridgeさんのツイート: "Fx61:mousewheel.autodir.enabledをtrueに変更すると、縦書きのサイトでふつうにマウスホイールを回転させるだけで横スクロールが行われる。 / “1358017 - (autodir) autodir…” https://t.co/kwYm4EiRBk"
- Rockridgeさんのツイート: "Fx61:「ページ情報」ウィンドウのセキュリティ欄からCookie以外のサイトデータも消去できるようになった。 / “1348223 - Organize site data (persistent storage) bette…” https://t.co/IHe1sqedfA"
- Rockridgeさんのツイート: "Fx61:新規タブがページのサムネイルを取得する際、トラッキング防止機能が常に働くようになった。データ漏洩を予防するだけでなく、コネクションが減るのでスピードアップも実現できるという。 / “1449294 - Capture …” https://t.co/hXV9luZJqD"
- Rockridgeさんのツイート: "Fx61:セッション復元の際、常に、前回終了時にアクティブだったウィンドウがアクティブになる形で、復元が行われるようになった。 / “1034036 - [Session Restore] Load windows by des…” https://t.co/1lD4vhya1W"
- Rockridgeさんのツイート: "Fx61:Web互換性上の問題を修正するシステムアドオンがバージョン2にアップデートされた。特定のプラットフォームでUA文字列を上書きする機能や、特定のサイトを対象にJavaScript/CSSを挿入する機能が実装されている。 https://t.co/byIYxS2vKa"
- Rockridgeさんのツイート: "Fx61:HTTP(S)ページによるFTPサーバーからのリソース読み込みをブロックする理由について。FTPは古いプロトコルであり、暗号化がされずセキュリティに問題があるので、少しずつ利用可能な範囲を狭めていくようだ。 / “Bl…” https://t.co/NRpjVzzRId"
- なかのん&マジックさんのツイート: "自分で書いてたけど却下されてUIチームが引き取ってくれてた"browser.tabs.insertAfterCurrent"という設定、Firefox 61から入ってたことに今気付いた。"
- なかのん&マジックさんのツイート: "これで仕事がはかどる。"
- なかのん&マジックさんのツイート: "イライラしてカッとなって書いたパッチだったのに投入されてるのに9ヵ月も気付いて無いとか("
62
- Rockridgeさんのツイート: "Variable Fontのデフォルト有効化はFirefox 62に延期された。 / “1455785 - Pref off OpenType Font Variations (Variable Font) support” https://t.co/h5EwnqNk2L"
- Rockridgeさんのツイート: "Fx61:ブロックリスト関係のAPIを非同期化し、本体のパフォーマンスを改善した。 / “1447680 - Make blocklist APIs asynchronous” https://t.co/rgaLEgUpyw"
- Rockridgeさんのツイート: "Fx62:RDF形式のファイルのサポートを廃止した。 / “833098 - Kick RDF out of Firefox and Gecko” https://t.co/6JqJiY55Tz"
- Rockridgeさんのツイート: "Fx62:browser.tabs.loadBookmarksInTabsの設定がtrueの場合であっても、現在のタブが空白のときは、現在のタブにブックマークされたページを読み込むようにした。 / “1417133 - When…” https://t.co/VanNJcR53v"
- Rockridgeさんのツイート: "Fx62:アドレスバーの自動補完機能のアルゴリズムが改善された。 / “1239708 - Improve the autofill decisions algorithms” https://t.co/vzGQvo57YJ"
- Rockridgeさんのツイート: "Fx62:アドレスバーからポップアップされるコントロールセンターに、「Cookieとサイトデータを消去する」ボタンが付いた。ページを閲覧しながら、そのサイトのプライバシー情報を消せるので便利だ。 / “1462469 - Add…” https://t.co/6bPEwgkE8Z"
- Rockridgeさんのツイート: "Fx62:browser.tabs.multiselectを有効化し、複数のタブを選択した状態で、うち1つのタブを閉じると、選択したタブすべてを閉じることができる。 / “1458022 - Implement ability …” https://t.co/yZSEZKmkp9"
- Rockridgeさんのツイート: "Fx62:Firefox Syncの接続を切断した際、ローカルに保存されたSyncのデータを削除するかどうか尋ねるようにした。 / “1409208 - Provide users on disconnect an option…” https://t.co/ZiYSWtgbDs"
- Rockridgeさんのツイート: "Fx62:メニューパネルに、トラッキング防止機能のオン・オフを切り替える項目を追加。Fx63では設定画面から防止対象を細かく制御できるようにする計画がある。参照:https://t.co/63RFOfeJ5U / “146246…” https://t.co/N3yU88pu4d"
- Rockridgeさんのツイート: "Fx62:Android版FirefoxでもRace Cache With Network(RCWN)がデフォルト有効化。 / “1377570 - Enable RCWN on mobile” https://t.co/zZZTJdIx69"
- Rockridgeさんのツイート: "Fx62:新規タブ・ホームタブ内で使用されるPNG画像について、データURIではなくBlobとすることで、省メモリ化を実現した。 / “1436615 - Lots of memory used for activity str…” https://t.co/CJ7xGZGO62"
- Rockridgeさんのツイート: "Fx62:個別のブックマークのプロパティやブラウジングライブラリーから、「説明」欄が省かれた。データ自体は保持されているが、将来のバージョンで自動的に削除される模様。 / “1463738 - Remove the Bookma…” https://t.co/FHJtD297LU"
- Rockridgeさんのツイート: "Fx62:アドレスバーの候補表示において、古すぎる履歴がヒットしないよう調整した。 / “1464454 - Consider an higher use_count limit for adaptive history” https://t.co/xMCLbDB1xv"
- Rockridgeさんのツイート: "Fx62:storage.localのIndexedDBバックエンドはデフォルト無効化されており、extensions.webextensions.ExtensionStorageIDB.enabledをtrueにする必要がある。… https://t.co/57Ph71fK0T"
- Rockridgeさんのツイート: "Fx62:デフォルト有効化予定であるシェイプパスエディタについて。文章が図形を回り込む際の位置関係を直感的に調節できる。 / “Jen Simmonsさんのツイート: "I’m proud to show you the nex…” https://t.co/Q2dCa1OkQK"
- Rockridgeさんのツイート: "Fx62:開いているタブを異なるコンテナで開き直すことが可能に。 / “1376119 - containers: "reopen in .." option” https://t.co/fkXyyiqunr"
- Rockridgeさんのツイート: "Fx62:アイデンティティパネル中のトラッキング防止機能のUIが改善された。サイト単位のオン・オフを切り替えることができるほか、設定画面にも飛ぶことができる。 / “1462470 - Update Tracking Prote…” https://t.co/WfFojmZvdj"
- Rockridgeさんのツイート: "Fx62:複数タブの選択機能を有効化し、現に複数のタブを選択した状態でCtrl+wキーを押すと、選択したタブをすべて閉じることが可能に。 / “1467340 - Ctrl+w/Ctrl+f4 should close all …” https://t.co/bfjzrOVyr4"
- Rockridgeさんのツイート: "Fx62:ブックマークの追加時などに表示されるダイアログで、そのページのサムネイルが表示されるようになった。 / “1460248 - Display preview image and favicon in the New B…” https://t.co/et1l8rrw8v"
- Rockridgeさんのツイート: "Fx62:ブックマーク追加時、ブラウジングライブラリーに保存した旨のメッセージが表示されるようになった。 / “1459907 - Implement new bookmark confirmation” https://t.co/CPWRvwWxmv"
- Rockridgeさんのツイート: "Fx62:アドレスバーにURLを貼り付けた際、URL末尾に空白が含まれている場合はそれを除去するようにした。 / “1460097 - Hidden character in pasted url gets wrongly in…” https://t.co/ZjA6h9rAMR"
- Rockridgeさんのツイート: "Fx62:リリースチャンネルで、AutoConfig機能の利用はオリジナルAPIの範囲に限定されることになった。もっとも、general.config.sandbox_enabledの設定を追加してfalseに変更すれば回避できる… https://t.co/wMnyXXYL2o"
- Rockridgeさんのツイート: "MozillaはFirefox 62のリリース後、en-US版のユーザーを対象として順次、Firefox Monitor(情報流出判別ツール)を利用可能にしていく模様。参照:https://t.co/zMMiYeTnWV https://t.co/qxmUsBhwEG"
- Rockridgeさんのツイート: "Fx62:1つのホストにおけるCookieの上限数を150から180に引き上げた。 / “1460251 - Up limit to 180 cookies and expose limit prefs” https://t.co/2grfhLUH2Q"
- Rockridgeさんのツイート: "Fx62:Windows版ではbrowser.startup.blankWindowの設定がデフォルト有効化されているので、起動開始後すぐに空白のウィンドウが表示される。 / “show_bug.cgi?id=1473142” https://t.co/93GQXVmjNI"
- Rockridgeさんのツイート: "Firefox 62においてLayout関連で修正されたバグ一覧。CSS Parsing and Computation、DOM: CSS Object Model、Layout、Layout: Block and Inline、… https://t.co/mLXBE7FZaj"
63
- Rockridgeさんのツイート: "Fx63:複数タブの選択機能を有効化し、現に複数のタブを選択した際、現在のタブが選択対象となっているかどうかが判別しやすくなった。 / “1468705 - Cannot tell that a tab is multisele…” https://t.co/Mg3Ug7b9tA"
- Rockridgeさんのツイート: "Fx63:複数タブの選択機能を有効化した場合、複数選択したタブをまとめてピン留めし、あるいはそのピン留めを解除することができるようになった。 / “1458060 - Implement ability to pin/unpin…” https://t.co/v6iTAfTnkn"
- Rockridgeさんのツイート: "Fx63:ブックマークの追加時などに表示される編集パネルにおいて、ブックマーク追加時に同パネルを表示するかどうかを選択するチェックボックスが付いた。チェックを外すと直ちにブックマークの追加処理が行われる。 / “1459878 …” https://t.co/zQMGvABZhN"
- Rockridgeさんのツイート: "Fx63:オプションの〔ホーム〕欄で、「既定値に戻す」ボタンは設定の変更があった場合にだけ表示するようにした。 / “1434751 - Add Restore Defaults button to Home” https://t.co/zpd78Itbs1"
- Rockridgeさんのツイート: "Fx63:検索結果を新規タブで表示する設定(https://t.co/cuNRKYzzc7.openintabがtrue)にしている場合でも、現在のタブが空白のときは、そのタブに検索結果が表示される。 / “1455326 - When brow…” https://t.co/yS9ifouIZ9"
- Rockridgeさんのツイート: "Fx63:ブックマークに付随する「説明」欄のデータが、Placesデータベースから削除された。 / “1402890 - Stop supporting and remove the description annotation” https://t.co/5VOvnk5HVy"
- Rockridgeさんのツイート: "Fx63:Placesデータベースのnotificationsシステムに大きな改修が加えられた。今後、ブックマークや履歴に適用されて本体のパフォーマンスが向上する見通し。 / “1340498 - Redesign the Pl…” https://t.co/3z5tSfmEJT"
- Rockridgeさんのツイート: "Fx63:ブロックリストの読み込み時にプチフリが起きないようにした。 / “1454378 - Loading the blocklist is janky” https://t.co/wFVB3iaOMf"
- Rockridgeさんのツイート: "Fx63:複数タブの選択機能を有効にし、現に複数のタブを選択した状態で、Shift+Ctrl/Cmdキーを押したまま他のタブを選択すると、選択範囲を拡張できる。 / “1473187 - Add ability to selec…” https://t.co/I6xxhK6iqB"
- Rockridgeさんのツイート: "複数タブの選択機能は、将来的にデフォルト有効化される見通し。 / “1474938 - Enable the multiselect tabs feature by default for release and beta bu…” https://t.co/qWCCOUZFFT"
- Rockridgeさんのツイート: "Fx63:about:performanceから"Memory usage of Subprocesses"欄が削除された。利用率の低さなどが理由だが、開発者の中にも代替機能の実装を望む声がある。参照:… https://t.co/BKyAU4YHKQ"
- Rockridgeさんのツイート: "Fx63:Nightlyチャンネルで、複数タブの選択機能がデフォルト有効化された。具体的な機能は今後も随時実装されていく。複数タブのブックマークや別ウィンドウへの移動が実現されてからが本番だろう。 / “1474704 - En…” https://t.co/qI8YeVjoQP"
- Rockridgeさんのツイート: "Fx63:Windows版で、ジャンプリストの生成処理を非同期化し、パフォーマンスを向上させた。 / “1425144 - 0.34 severe hangs / khr in CreateFileW while creatin…” https://t.co/yHjVRWsvwz"
- Rockridgeさんのツイート: "Fx63:contentプロセス間で本体の設定データを可能な限り共有する仕組みとし、省メモリ化を図るとともにプロセスの起動を高速化した。参照:https://t.co/90Ad0YVcBF / “1471025 - Use sh…” https://t.co/8d8nfxMIb8"
- Rockridgeさんのツイート: "Fx63:ショートカットに"-no-remote"を指定していない場合であっても、about:profilesの「プロファイルを別のプロセスで起動」が正しく動作するようになった。 / “1367743 - About:profi…” https://t.co/6wtZJsWw1x"
- Rockridgeさんのツイート: "Fx63:about:policiesのページにアクティブなグループポリシーが列挙されるようになった。参照:https://t.co/Uy7ILTieUf / “show_bug.cgi?id=1472528” https://t.co/Myzr4906xT"
- Rockridgeさんのツイート: "Firefox Nightly 63で、Content Blocking(旧トラッキング防止)を有効化し、"Slow Tracking Elements"を"Always block"に設定すると、Webページの読み込みが高速化す… https://t.co/TKwSTe48KR"
- Rockridgeさんのツイート: "Fx63:オプションの〔プライバシーとセキュリティ〕の「トラッキング防止」は、妨害コンテンツのブロックへと名称が改められ、読み込みに5秒以上かかるサードパーティのコンテンツをブロックする機能が加わった。 / “1476217 -…” https://t.co/urzksJTKME"
- Rockridgeさんのツイート: "Fx63:Content Blocking(妨害コンテンツのブロック)に関する設定UIを常時有効化。 / “1476879 - Remove the privacy.trackingprotection.ui.enabled p…” https://t.co/MUfScrRH69"
- Rockridgeさんのツイート: "Fx63:FastBlockでサードパーティのコンテンツを何でもかんでもブロックしてしまうとWebページの表示が崩れるため、スタイルシート、フォントおよび画像はブロックの対象から除かれている。 / “1482129 - Exem…” https://t.co/7xjFgY408E"
- Rockridgeさんのツイート: "Fx63:Windows版Firefoxを規定の「メール」アプリに設定できるようにした。 / “675428 - register firefox as default mail client” https://t.co/5G8E7sNAJM"
- Rockridgeさんのツイート: "Fx63:browser.newtabpage.activity-stream.asrouterExperimentEnabledの設定をtrueに変更すると、Contextual Feature Recommender(CFR)… https://t.co/sQKhaLdD2F"
- Rockridgeさんのツイート: "Fx63:1つのホストにおけるCookieの上限数が180を超えた場合、期限切れのものや古いものから優先的に削除して、150まで減らすようにする。 / “1357676 - Implement batch eviction fo…” https://t.co/C94v54mshX"
- Rockridgeさんのツイート: "Fx63:ページ内翻訳機能にGoogle Translation APIのサポートを追加。有料のAPIキーが備わっていないので一般ユーザーが恩恵を受けるには至らない。参照:https://t.co/vK1tCTzXSK / “1…” https://t.co/jDjrmQmzni"
- Rockridgeさんのツイート: "Firefox 63においてLayout関連で修正されたバグ一覧。14項目に分かれる。 / “Platform/Layout/ReleaseNotes/63 - MozillaWiki” https://t.co/pvOdGutBbI"
- Rockridgeさんのツイート: "Fx63:Windows版で、プロセスの優先度を調節する仕組みが実装された。 / “1394710 - Changing priority on Window processes” https://t.co/Dq8cFgmY0k"
- Rockridgeさんのツイート: "Fx63:Policy Engineのポリシーがアクティブになるまで関連するコードを読み込まないようにし、消費メモリを削減した。 / “1470324 - Don't load EnterprisePoliciesContent…” https://t.co/r7gs2jwE8l"
- Rockridgeさんのツイート: "Fx63:サイクルコレクションの処理が長引いてプチフリが発生するのを防止。 / “1397297 - nsCycleCollector::FreeSnowWhite() could be more incremental” https://t.co/p6t3FhUgUE"
- Rockridgeさんのツイート: "Fx63:Windows版で、firefox.exeが直接メインプロセスを起動させるのではなく、まず起動プロセスを開始し、それがメインプロセスを生成するという仕組みが実装された。Firefox 64で有効化を目指す。 / “14…” https://t.co/WlBue8VCCm"
- Rockridgeさんのツイート: "Fx63:contentプロセスに読み込まれるコンテンツ内検索バーのコードを最小化し、消費メモリを削減した。 / “1479318 - Minimize the amount of content Findbar code lo…” https://t.co/ESwy49pzly"
- Rockridgeさんのツイート: "Fx63:タブの複数選択時には、コンテキストメニューに「タブを複製」の項目が表示されないようにした。 / “1481473 - Hide the "Duplicate Tab" menuitem when there is a …” https://t.co/1isv7c9cT2"
- Rockridgeさんのツイート: "Firefox 63 Beta 5でタブの複数選択機能が有効化された。early betaにおけるテストとのことで、Beta 6でも有効のままだが、通常Beta 5はearly betaの期間外とされていることから、いつまで続くか… https://t.co/yhRsno0R3R"
64
- Rockridgeさんのツイート: "Fx64:選択した複数のタブを端末に送信する機能が実装された。 / “1470555 - Implement ability to send a selection of tabs” https://t.co/JnAuJNffCk"
- Rockridgeさんのツイート: "タブの複数選択機能のデフォルト有効化はFirefox 64に延期。一部機能の実装が間に合わなかったため。 / “1488904 - Enable multiselect tabs feature on early beta bu…” https://t.co/WTElNXtsLj"
- Rockridgeさんのツイート: "Fx64:複数選択したタブをドラッグ&ドロップによってまとめてブックマークに追加できるようになった。 / “1480907 - Implement ability to bookmark a selection of tabs …” https://t.co/jzsdOrqW6T"
- Rockridgeさんのツイート: "Fx64:about:crashesのUIが変更され、すっきりした感じになった。 / “1476062 - about:crashes user interface update” https://t.co/oZh6jWUvlm"
- Rockridgeさんのツイート: "Fx64:キャッシュの利用によりサイクルコレクションの処理を改善。 / “1488413 - Investigate if CycleCollector could use a cache on top of the graph…” https://t.co/Kebcd4bmRJ"
- Rockridgeさんのツイート: "Fx64:ブックマークをエクスポートする際、browser.bookmarks.max_backupsの設定値が正しく反映されるようにした。 / “show_bug.cgi?id=1066992” https://t.co/gebonavwQN"
- Rockridgeさんのツイート: "Fx64:Mac版でも、Windows版のグループポリシーに相当するEnterprise Policyをサポートした。 / “1445943 - Enterprise Policy support for macOS” https://t.co/6RT0khRCZe"
- Rockridgeさんのツイート: "Fx64:ホームタブ・新規タブで、検索フィールド以外のセクションの表示をすべて無効にした場合、検索フィールドの上部にFirefoxのロゴが表示されるようになった。Activity Stream以前に近い印象となる。 / “148…” https://t.co/PB1A71tQhW"
- Rockridgeさんのツイート: "Fx64:タブの複数選択機能がデフォルト有効化された。 / “1474938 - Enable the multiselect tabs feature by default for release and beta builds” https://t.co/okhLNYE9J1"
- Rockridgeさんのツイート: "Fx64:ハンバーガーメニューの「その他」にある"Task Manager"から、about:performanceのページを呼び出せるようになった。 / “1498186 - Add a 'Task Manager' item…” https://t.co/iv89VC5iKk"
- Rockridgeさんのツイート: "Fx64:当初導入予定だった仕様を撤回し、「右側のタブをすべて閉じる」「他のタブをすべて閉じる」の項目はサブメニューに回らず、従前どおり独立した項目として表示される。 / “show_bug.cgi?id=1502083” https://t.co/xOZh27FAY1"
- Rockridgeさんのツイート: "Fx64:選択した複数のタブは別のコンテナに送ることもできる。 / “1500098 - The user is unable to open multiple tabs in Container” https://t.co/sCoXmFwGf6"
65
- Rockridgeさんのツイート: "Firefox Nightly 64にFeaturePolicyが実装される。Fx65でデフォルト有効化の見通し。参照:https://t.co/L9pPbp4DPZ / “Intent to implement: Featur…” https://t.co/Qu5vDDWIjd"
- Rockridgeさんのツイート: "Fx65:macOS版で、WebブラウジングのHandoffをサポート。参照:https://t.co/89Uhx7z3dH / “1085391 - Support Yosemite Handoff "web browsing…” https://t.co/HITp4eaEPm"
- Rockridgeさんのツイート: "Fx65:img要素にalt属性がない場合、src属性の指定の有無にかかわらず、置換要素が生成されるようになった。参照:https://t.co/5uSnkStghd / “show_bug.cgi?id=1196668” https://t.co/t1071LtPz2"
- Rockridgeさんのツイート: "Fx65:従前の仕様を撤回し、タブの複数選択時においても「タブを複製」の項目が表示されるようになった。 / “show_bug.cgi?id=1497980” https://t.co/puMGrTPyrp"
- Rockridgeさんのツイート: "Fx65:起動時に前回のセッションを復元する設定になっている場合であっても、ブラウザ終了時に警告を出す設定が無効化されなくなった。 / “550559 - Decouple Session Restore from Quit w…” https://t.co/DnuOkkuwaE"
- Rockridgeさんのツイート: "Fx65:Nightlyチャンネルで、a要素などにtarget=_blankの設定がされているときは自動的にrel=noopenerが付与されるようにした。 / “1503681 - Make target=_blank on …” https://t.co/Vh5Im3UDfd"
- Rockridgeさんのツイート: "Fx65:Async Pan/Zoom(APZ)のrelative scroll offset updatesという機能がデフォルト有効化された。 / “1507356 - Let apz.relative-update.ena…” https://t.co/6DBDWQp08q"
66
- Rockridgeさんのツイート: "Fx66:すべてのタブを表示するドロップダウンメニューに「タブを検索する」という項目が追加された。アドレスバーにジャンプして検索が行える。参照:https://t.co/BCAVvM0glv / “1516083 - Add "…” https://t.co/W5LtD6dNiH"
- Rockridgeさんのツイート: "Fx66:Scroll Anchoring機能をサポート。Nightlyチャンネルでのみ有効。設定はlayout.css.scroll-anchoring.enabled。参照:https://t.co/eZ2oRu6g5w https://t.co/28QHprCtlm"
67
- Rockridgeさんのツイート: "Fx67:タブの複数選択時、選択されたアクティブでないタブについてタブ全体の色が変わるようになった。選択範囲がわかりやすくなる。 / “1515686 - Update multi-selected tab colour so it's more visible in default theme” https://t.co/Pi8vXfzJJH"
- Rockridgeさんのツイート: "Fx67:Windows版Nightlyチャンネルで、Process Priority Managerがデフォルト有効化。バックグラウンドのタブのみを含むcontentプロセスについて処理の優先度を下げる。参照:https://t.co/jI2liaOBEW / “1476981 - Turn on dom.ipc.processPriorityManager.enabled in Nig…” https://t.co/WWMu9QGHVB"
Twitter
@rockridge07
histric-1
- Rockridgeさんのツイート: "Firefoxのプロファイルフォルダ内に保存されている各種データファイルについて。 / “Profiles - Where Firefox stores your bookmarks, passwords and other u…” https://t.co/uKWJS6uRDn"
- Profiles - Where Firefox stores your bookmarks, passwords and other user data | Firefox Help
- Rockridgeさんのツイート: "Webブラウザの各種パーミッション機能の動作を試すことができる。 / “https://t.co/oZaDDgu7Vz” https://t.co/EdhybgqFmx"
- Rockridgeさんのツイート: "Firefoxのセッション保存機能がSSDに対する大量の書き込みの原因になっているという記事。筆者の環境では1日12GBに達するそうだが、追記によればChromeだと1日24GBになったらしい。参照:… https://t.co/M6i353iuGJ"
- Rockridgeさんのツイート: "Race Cache With Network(RCWN)は、ディスクI/Oが遅い場合に、キャッシュされたコンテンツについてもネットワークリクエストを送り、応答が早かったデータを利用する新機能。Firefox Nightly 55… https://t.co/oHyzlzgz0J"
- Rockridgeさんのツイート: "Firefoxは2017年末までにCustom Elementsをサポートする見通し。Shadow DOMについては未定。 / “1367205 - (QF-Polymer) Very poor Polymer performa…” https://t.co/Ar1HgAJlP3"
- Rockridgeさんのツイート: "link要素のrel属性でprerenderの指定がされているURLを対象にWebページのプリレンダリングを行う機能をFirefox 53に実装したものの、先行するChromeが廃止の方針を示したので、有効化されないまま機能が削除… https://t.co/37U7zd8c30"
- Rockridgeさんのツイート: "Firefoxは他のブラウザと異なりbutton要素内にリンクを置けない実装となっているが、仕様に適合しているのはFirefoxのほうであるらしい。 / “hyperlinks in buttons are probably n…” https://t.co/DrwqdTohEK"
- Rockridgeさんのツイート: "Test PilotのSendで、ファイルのダウンロードに必要なパスワードを設定できるようになった。 / “Firefox Test Pilotさんのツイート: "We added password support to …” https://t.co/p2PPXtww89"
- Rockridgeさんのツイート: "Bugzilla@MozillaでもGoogleアナリティクスが有効化される模様。ただしDo Not Trackをオンにしているユーザーは適用対象外となる。 / “208002.html” https://t.co/kZ736XHk9t"
- Rockridgeさんのツイート: "MozillaのDoryプロジェクトはFirefoxの既存の設定をドキュメント化し、不要な設定を整理することを目指す。また、パフォーマンスが最適化される設定値の調査も行うようだ。 / “Project Dory - Mozill…” https://t.co/IDyL10TzOm"
- Rockridgeさんのツイート: "Mozillaは2018年第3四半期ころまでに、ストレージ/データベース/同期にまたがる新システムを開発する計画だ。デスクトップ版・モバイル版双方で使う。参照:https://t.co/n0Uv6DYQFb / “0008-sy…” https://t.co/eK90st9S4Q"
- Rockridgeさんのツイート: "Firefoxのヘッドレスモードにおいてできることの概略を述べた記事。 / “Using Headless Mode in Firefox – Mozilla Hacks – the Web developer blog” https://t.co/1VlvMDSVI4"
- Rockridgeさんのツイート: "Firefoxに現存する3000以上の設定を整理したうえ、今後はガイドラインを設けて設定追加の要否をチェックしていく。参照:https://t.co/ojz5nNguyj / “All about Prefs” https://t.co/9X9fcpKE9a"
- Rockridgeさんのツイート: "Firefox Nightlyで近々デフォルト有効化される見込みのtab warming機能について解説した記事。タブにカーソルをホバーさせた時点で予めレイヤーのレンダリング等を開始しておくことにより、タブの切り替えをスムーズにす… https://t.co/Cu5obZSjAw"
- Rockridgeさんのツイート: "Firefoxの次世代パスワードマネージャでは、最新の暗号化技術によってパスワード等が保護される一方、Firefoxアカウントによるログインが必須になるかもしれない。 / “Firefox Lockbox alpha by Mo…” https://t.co/gZ81L14Enj"
- Rockridgeさんのツイート: "Firefoxの次世代パスワードマネージャは、パスワードの生成機能を備えるほか、Firefoxアカウントでのサインインを前提に、クラウドへのバックアップも行えるようになりそうだ。 / “FAQs - Lockbox Extens…” https://t.co/QSxqSkLkgk"
- Rockridgeさんのツイート: "2018年1月15日以降にGeckoに実装される、Webページ/サーバーからアクセス可能な新機能は、安全なコンテクスト(HTTPSなど)にあることが求められる。Distinguished Engineerが是認しない限り例外は認め… https://t.co/qlK5bwI4FM"
- Rockridgeさんのツイート: "今後、Firefoxにはアドレスバーの入力・検索結果を新規タブに常時表示するための設定(browser.urlbar.openintab)が改めて追加される模様。また、将来的にはオプション画面からこの設定を制御できるようにする。 https://t.co/XEBRZtXZG2"
- Rockridgeさんのツイート: "Geckoに新しくAnimationモジュールが設けられ、Brian Birtles氏がモジュールオーナーに就任した。 / “New module proposal: Animation” https://t.co/3Ed1ZHcip3"
- Rockridgeさんのツイート: "将来的にFirefoxの軽量インストーラには、Mozillaの公式アドオンをダウンロードしてインストールする機能が実装されるようだ。 / “1414268 - Stub installer allows installing a…” https://t.co/W3mMrCoDhs"
- Rockridgeさんのツイート: "Mozillaが2017年12月にアンケートを実施し、11.5万人以上のFirefoxユーザーから回答を得た。それによると、アンケートの際、76%のユーザーは5つ以下のタブしか開いていなかった。 / “The First Ina…” https://t.co/GIn1bO2cgU"
- Rockridgeさんのツイート: "Mozillaは、いわゆるLooking Glass問題の再発防止策として、Shieldの実験において遵守すべき原則を公表した。参照:https://t.co/vv30EN0QqP / “Retrospective: Looki…” https://t.co/iMtmQLs8C2"
- Rockridgeさんのツイート: "既にバックグラウンドで動作するスクリプト全般を抑制する仕組みが実装されているので、トラッキング用スクリプトだけを強く抑制する措置は執らないようにする模様。 / “Intent to remove: Throttling of t…” https://t.co/cIq9vTYGfS"
- Rockridgeさんのツイート: "最小タブサイズを従来の半分(100 -> 50)にする新仕様に対し、Nightlyテスター等から異論が多く出された結果、サイズは70に引き上げられることに。 / “1404465 - Add back `browser.tabs…” https://t.co/b5fdmvDg9A"
- Rockridgeさんのツイート: "Firefoxの設定関連のバックエンドにおける改修状況がまとめられている。 / “Platform/PrefsOverhaul - MozillaWiki” https://t.co/Jf9TYfiojH"
- Platform/PrefsOverhaul - MozillaWiki
- Rockridgeさんのツイート: "Firefox開発版のインストール時、独立したプロファイルを割り当てる機能の開発が進められている。割り当てられるプロファイルは新規のものではなく、リリース版のプロファイルのクローンになるようだ。 / “1419505 - All…” https://t.co/d5t4DrKXZO"
- Rockridgeさんのツイート: "Firefoxアカウントにおいて、予備のメールアドレスを追加し、メインのメールアドレスに切り替える機能が、正式に公開された。 / “Changing your primary email in Firefox Accounts …” https://t.co/ogRBlMvo4p"
- Rockridgeさんのツイート: "Firefox QuantumでFirefox Screenshotsがツールバーから消え、撮影数が一時減少したものの、概ね回復した。新UIで撮影完了までいく率は高まった。スクショはダウンロードする人が多く、最近はクリップボードへ… https://t.co/EiGzExOzZD"
- So, How’s Screenshots Doing? – Firefox Test Pilot – Medium
- Rockridgeさんのツイート: "Firefox/Thunderbird搭載のパスワードマネージャーについて、現在の水準からすると暗号化強度が低いのではとの指摘。コメント2では、Mozillaの開発者が、だからLockboxプロジェクトが進行中なのだと述べている。 https://t.co/VmKwBBrASb"
- Wladimir Palant's notes: Master password in Firefox or Thunderbird? Do not bother!
- Rockridgeさんのツイート: "MozillaはFirefoxのポップアップブロッカーの強化を検討中。必要なデータを収集するため、本拡張機能を通じて、ユーザーにページ内ポップアップが存在するURLを報告してほしいようだ。 / “In-Page Pop-up R…” https://t.co/lm1GM0VYOR"
- In-Page Pop-up Reporter – Firefox 向けアドオン
- Rockridgeさんのツイート: "tab warming機能は、タブ切り替え時の応答性向上に大きく貢献しているという。また、新規プロファイルでスマートブックマーク機能をなくす計画がある。 / “These Weeks in Firefox: Issue 35 –…” https://t.co/1HpOftnWbb"
- Rockridgeさんのツイート: "Firefoxの複数タブ選択時におけるコンテキストメニューの案が掲載されている。また、従来、タブバーにタブが収まりきらない場合にメニューが表示される仕様だったが、このメニューを常時表示させる方針らしい。 / “Firefox b…” https://t.co/Nl7YRmGw4K"
- Rockridgeさんのツイート: "MozillaがFirefoxユーザーを対象に調査したところ、Nehalem/Silvermont/Bulldozer以前のCPUを使用する割合が約20%だったという。 / “How much do we care about …” https://t.co/2wJylv0cnR"
- Rockridgeさんのツイート: "Firefoxの複数タブ選択機能の実装状況について。モックアップもある。参照:https://t.co/khhPAfyMCX / “Email update for "Multi-Select tab in Firefox" p…” https://t.co/CViHzswxc5"
- Rockridgeさんのツイート: "Firefoxのアドレスバー上のアイコンやページ操作メニューの項目を右クリックして表示されるコンテキストメニューから、アドレスバー上のアイコンの追加・削除が可能という小技を紹介。 / “How to add the share …” https://t.co/sCof4BPPn9"
- Rockridgeさんのツイート: "Mozillaは、読み込みに5秒以上かかるサードパーティのコンテンツをブロックする機能のことをFastBlockと呼ぶ。Nightlyチャンネルでは今後この機能をデフォルト有効化する見通し。参照:… https://t.co/vuUIZBM4FW"
- Rockridgeさんのツイート: "Firefox 62でFirefox Monitor(情報流出判別ツール)を展開していく計画だったが、延期に。 / “1483430 - Backout fxmonitor system add-on from central …” https://t.co/yEFy0eLaB7"
- Rockridgeさんのツイート: "Placesデータベースの新バックエンドとなることを目指したデータストレージシステムのMentatが開発中止に。プロダクトの投入に間に合うように開発することが難しく、採用先がなくなってしまった模様。 / “Pausing wor…” https://t.co/f3RuQkFnCr"
- Rockridgeさんのツイート: "デスクトップ版Firefoxのプレリリース時におけるユーザーエージェント文字列について、その変遷を簡潔に記載した記事。 / “notable-moments-in-firefox-desktop-ua-string-histor…” https://t.co/QxHkh1jfZl"
- Rockridgeさんのツイート: "Android版Firefoxのプレリリース時におけるユーザーエージェント文字列について、その変遷を簡潔に記載した記事。 / “Notable moments in Firefox for Android UA string h…” https://t.co/7ntQPN84Ul"
- Rockridgeさんのツイート: "about:performanceの新UIに関するモックアップ。今後は、コントロールセンターに、閲覧中のサイトに関する消費電力への影響やメモリ使用量を表示するようにしていく模様。 / “Loading...” https://t.co/PjMbbb5dTz"
@d_toybox
サイト分離機能
- なかのん&マジックさんのツイート: "意外なことにFissionにはAPZ必須になりそうなので"layers.async-pan-zoom.enabled"はabout:configから削除されるのかな? それとも無効な場合に現在のe10sモードとして動くようにするのかな? / 「Firefox」にサイト分離機能の計画--「Chrome」に続き - ZDNet Japan https://t.co/h5Ww2THbIQ"
- 「Firefox」にサイト分離機能の計画--「Chrome」に続き - ZDNet Japan
- なかのん&マジックさんのツイート: "APZCは真剣に何をやってるのかまったく理解できないんだよな。もはや綺麗なのか汚いのかも分からんレベルで本当に難しい。"
- なかのん&マジックさんのツイート: "もし担当辞めたら、まったく引き取れる気しないけど、こっちに来そうで怖い。"
- なかのんクエストさんのツイート: "<meta property="og:url" content="http://" /> これで指定されてるURLになるのか、FirefoxのTwitterでの共有。"
- なかのんクエストさんのツイート: "ワードラップとかネストとかもありますよ。Firefoxの実装が遅れてるの批判してた人の9割は何も考えてなかった印象。 https://t.co/WD8sWPOVdQ"
- なかのんクエストさんのツイート: "日本で昔から見かける、パッチすら書かずに同じような事言ってる場合もアイデアそのものが全然イマイチなパターンの方が多い。逆に共感できたアイデアだと実際にパッチ書いたりしたことある。大きいのだと、マウスホイールにトランザクションの概念追加とか。"
- なかのんクエストさんのツイート: "最近はあんまし一般のバグ報告者と直接やりとりすること無くなってるけど、それでも時々、バグである根拠を他のブラウザと違うこと、とする残念な人とのやり取りがつらい時ある。標準仕様に入らないグレーゾーンでなおかつ他のブラウザの動作がベターなら普通に同意するんだけどね。"
- なかのんクエストさんのツイート: "グレーゾーンかつレガシーな部分って、今さら動作を変えると、Firefoxをちゃんとサポートしてるサイトが今度は壊れるんだよってパターンも多いんだよね。この場合、新しいAPI使ってくれるようにサイト側にお願いするしかない。"
- なかのんクエストさんのツイート: "サブドキュメントがスクロール可能だった場合の処理がChromeとちょっと違うんだけど、Firefox 57の動作の方が何が起きてるか分からない感じは無いと思う。visibility:hiddenにはまだ非対応。ひとまず、よく使われるdisplay:noneだけ。 #もずでぶ"
- いざてんさんのツイート: "Chromeは font-family: monospace; するとフォントサイズが一段小さくなるのをまず何とかしてくれませんかねぇ?"
- なかのんクエストさんのツイート: "Firefoxも言語が日本語以外だとそうなる。各国の印刷での慣習とかもあるのかもしれないけど、この差異の直接の原因は、漢字のビットマップグリフが綺麗に見えるサイズをデフォルトにする必要があったので、同じフォントサイズを日本語には設定したんだと思う。"
- なかのんクエストさんのツイート: "Netscape Navigatorや、初期のGeckoで、MacOSでのみ、日本語のデフォルトフォントサイズが小さかったのは、やはりビットマップグリフの問題で、他と同じ16pxでは綺麗じゃなかったと聞いてる。"
- なかのん DAYS''さんはTwitterを使っています: ".@cobodo 最初はchrome 1プロセス、content 1プロセス、plugin 1プロセス。windowed pluginを除けば全てのユーザの入力はchromeプロセスでハンドリングされて、非同期通信で他のプロセスに送信される。"
- なかのん&マジックさんのツイート: "ユーザがサイトごとに、Webアプリによる、ブラウザのショートカットキーの横取りを許可・不許可に出来るようになりました。 https://t.co/FbqIuRqSPG #もずでぶ"
- なかのん&マジックさんのツイート: "Firefoxのmiddlemouse.pasteってデフォルトtrueで良くない? Ctrl + 中クリックで引用貼り付けという、メニューに無い貼り付けが利用できるんだし。"
- なかのん&マジックさんのツイート: ""一番困ったのが Cmd+W に対する反応が遅くて(処理落ちしてる感じ)" https://t.co/Mdu91Cl5fl 体感速度でまだまだってのは分かってるし、感想とかはまあ良いんだけど、この点が私も絡んでるんで気になる。"
- Firefox やめた - @kyanny's blog
- なかのん&マジックさんのツイート: "Cmd+Wは数少ない、Webアプリに押した通知すら行かないreserved shortcutキーなんだけど、 https://t.co/S8WMeklEFQ つまり、そもそもリモートプロセス(タブの中身を表示してるプロセス)に送信していないので、全てがメインプロセスのメインスレッド内で完結している。"
- browser-sets.inc - mozsearch
- なかのん&マジックさんのツイート: "ということは、メインプロセスのメインスレッドがbusyということで、これと通信を行う必要のあるリモートプロセスもそもそも高速な動作は期待できない(入力に至っては、全てメインプロセスのメインスレッド経由なので、モロに影響ある)。"
- なかのん&マジックさんのツイート: "なので、そもそも、こちら(開発者側)が想定していない何かがこの人の環境で起きてる感じある。それが環境によるものなのか、なんらかのパフォーマンスバグなのかは分からんけど。キー押してからタブが閉じられるまでのprofileをむっちゃ見てみたい。"
- なかのん&マジックさんのツイート: "ちなみに、普通は、keydown/keypressイベントがreservedか検査され、すぐにリモートプロセスに非同期で送信される。で、リモートプロセス内でイベントが発火された後、非同期でその結果をメインプロセスに通知、preventDefaultされてなかったらショートカットキーとして実行という流れ。"
- なかのん&マジックさんのツイート: "なので、ショートカットキーはどうしても超高速にユーザの入力に対して反応するというのが今のAPIでは無理。Webアプリ独自のショートカットキーを登録するAPIってのがあれば良いんだけど、そういうの要るよねってW3Cで提案したらGoogleとか一部の企業以外には要らんやろっていう理由で却下に。"
- なかのん&マジックさんのツイート: "Webアプリを最小限のコードで、あらゆるキーボードレイアウト対応にするには、そういうAPIが無いと困ると思うんだけどな。特にユーザ数の少ない、発展途上国のキーボードレイアウト使っているユーザさんに。例えば、USキーボードレイアウト前提でコーディングすると、だいたい動かない。"
- なかのん&マジックさんのツイート: "ただ、この人の書いてる内容で思うのは、そうそう連打する訳ではないショートカットキーって、処理落ち時に過剰に処理されちゃわないように、timestamp見て、ある程度捨てた方が良いんだろうかってのは思う。それはそれで慎重にやらないと処理落ちしてても承知で、先行入力していく人も居てるはず。"
- なかのん&マジックさんのツイート: "Ubuntu Weekly Recipe:第540回 Firefoxをあらためて見つめ直す #gihyojp https://t.co/oBwH3WvtF2"
- 第540回 Firefoxをあらためて見つめ直す:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- なかのん&マジックさんのツイート: "Containerは本当にまだ使いにくい。開発止まってるのかな……これが無いと仕事にならないんだけど、今のところ。"
- おこめ/つなもりさんのツイート: "それは…content-typeの設定問題 IEは見てなかったらしいけど… "
- アイヴァーンさんのツイート: "なんかアーカイブのダウンロードで、Chromium が勝手に HTML コンテンツそのもののと解釈して展開されてしまい、適切にダウンロードできない、とかいう局所的な問題が生じたことがあった記憶もあるので、Web 側だけでなくブラウザ側の視野狭窄も問題につながりかねない懸念しかない…… https://t.co/3r35zPjQZZ"
- 池田 泰延 / ICSさんのツイート: "作る人が、目の前の手元のツールで動くことばかりにしか意識しない。 ちらほら増えてきた「Chromeでしか動きません」というやつ。 作ってるのは標準仕様のウェブコンテンツでなく、Chromeという一つのツールでのみ動くコンテンツ。"
- なかのん&マジックさんのツイート: "あったなぁ、そんな話。Mozillaも途中から折れて、ASCIIの制御文字にぶち当たったらダウンロードに切り替えるとかそんな感じで対応したんだったか。"
@xharaken
- Kentaro Haraさんのツイート: "Firefoxがframe間での協調的スケジューリングを実装したというプレスリリースを見て、どうやったらそんなものを(セキュアに)作れるのか考えてもわからなかったので、Firefoxの中の人に聞いてみたら教えてもらえた。こういうのがオープンソースの良いところ^^"
- Kentaro Haraさんのツイート: "最近のWebページは、「本体のコンテンツ+大量の広告」という構造になっている場合が多くて、広告のせいで本体のコンテンツが遅くなるのをいかに防ぐか(=どうやってframe間で性能を独立させてスケジューリングするか)というのが大きな問題になっている。"
- Kentaro Haraさんのツイート: "frameごとにユーザレベルスレッドを作って協調的スケジューリング、frameごとにOSスレッドを分離、frameごとにOSプロセスを分離など、いくつか解決法はあるけど、いろんな事情でどれもものすごく大変。"
Form Autofill・Web Payments
5x
- Rockridgeさんのツイート: "Fx56:Firefox SyncがForm Autofillの住所情報とクレジットカード情報に対応。同期の有効・無効はUIから制御できる。参照:https://t.co/fHJARwCEBR / “1374500 - New …” https://t.co/lN12ormhK1"
- Rockridgeさんのツイート: "Fx56:米国のen-US版ユーザーに限定してForm Autofill機能が有効化された。 / “1385196 - [Form Autofill] Enable the feature based on locale and…” https://t.co/LOlkqS8bWk"
- Rockridgeさんのツイート: "Fx57:Form Autofillにおいて、ユーザーがどの程度まで入力すれば次回の入力補完に使うかは難しい問題だ。FirefoxではChromeの挙動を参照しながら調整している。 / “1401411 - Autofill i…” https://t.co/iBdk1Std8Z"
- Rockridgeさんのツイート: "Fx57:Form Autofillがクレジットカード情報に対応。参照:https://t.co/L4K0QlRR1n / “1390757 - [Form Autofill] Enable credit card featur…” https://t.co/6fOTBybzLP"
- Rockridgeさんのツイート: "Fx58:Form Autofillでクレジットカードの自動補完機能がデフォルト有効化。 / “1417336 - [Form Autofill] Enable credit card autofill by default o…” https://t.co/ZgOP2bCq7I"
- Rockridgeさんのツイート: "Fx58:米国のen-US版ユーザー限定という状況に変わりはないものの、Form Autofillの基本機能が、段階的なロールアウトのフェーズからデフォルト有効化のフェーズへと移行した。 / “1430522 - [Form A…” https://t.co/jYxFrKlG9u"
- Rockridgeさんのツイート: "Fx58:Form Autofillが有効な環境では、自動補完に用いられるクレジットカード番号もデフォルトで同期されるようになった。 / “1395123 - Unhide credit cards sync engine by…” https://t.co/5C0JZsvHQB"
- Rockridgeさんのツイート: "Fx59:Form Autofillにおいて、ハイフン付きのクレジットカード番号をサポート。 / “1413120 - [Form Autofill] Accept credit card numbers with hyphens” https://t.co/RWIkOMAiqn"
- Rockridgeさんのツイート: "Form Autofill機能の先にあるのがWeb Paymentsの実装である。カード型の基本的なUIを2017年後半のうちに実装する計画であり、2018年第1四半期にリリース版に投入か。参照:… https://t.co/ZP2cwSD9kP"
- Rockridgeさんのツイート: "Form Autofill機能の先にあるのがWeb Paymentsの実装である。カード型の基本的なUIを2017年後半のうちに実装する計画であり、2018年第1四半期にリリース版に投入か。参照:… https://t.co/sCmgTxV73M"
- Rockridgeさんのツイート: "Form Autofill v2ではローカライズに対応するほか、マルチセクションの概念が導入され、個別の欄に消去ボタンが付く。 / “Firefox/Features/Form Autofill - MozillaWiki” https://t.co/ol53lYB1Vd"
- Rockridgeさんのツイート: "検討が開始されたForm Autofillプロジェクトでは、ユーザーがフォーム送信時に許可を与えると、Firefoxが名前や住所などのプロファイルを保持し、別のフォームで自動的に補完するという機能の開発を目指す。 / “Thes…” https://t.co/R9W9LRdHXF"
- Rockridgeさんのツイート: "Nightlyチャンネルで有効化されているForm Autofill機能について、フォームに入力した住所を自動的に保存して再利用するようになった。保存時にドアハンガーの通知が出るので、そのときオプトアウトすることも可能。 https://t.co/llIPbB20Qj"
- Rockridgeさんのツイート: "FirefoxのForm Autofill機能は、クレジットカードのセキュリティコードを保存しない仕様となっている。 / “Online shopping: Autofill your credit card info safe…” https://t.co/iL5OOCepqg"
- Makoto Kato ︎︎さんのツイート: "FirefoxのWeb Payments APIのUX実装って、custom element使ってるんだ"
- Rockridgeさんのツイート: "2018年5月末時点でも、Form Autofillはen-US版ユーザーの20%しか有効化されていない。 / “1449055 - Convert formautofill to a webextension” https://t.co/Dd2vXTAihL"
- Makoto Kato ︎︎さんのツイート: "AndroidのAutofill Framework使ったアプリ、パッケージ名見てるの多くて、新しいブラウザ作っても動かないパターン多い"
- dynamis (でゅなみす@もじら)さんのツイート: "新しいFirefoxではWebフォントブロックできるようになったよ。Androidで通信量削減したい人にお勧め https://t.co/nG6VNCv92J"
- Intent To Shipさんのツイート: "Gecko: Intent to implement and ship: HTMLMarqueeElement https://t.co/4SOMK9yEfI"
- dynamis (でゅなみす)さんのツイート: "Firefoxがインストール後にUI言語の追加を公式にサポートし始めたので他の言語でのUI確認が楽になった。 https://t.co/XQMRWutqom… "
- Changing the Language of Firefox Directly From the Browser | Mozilla L10N
- Mozilla Developer Street (modest)
- Firefox マルチプロセス化の今後 | Mozilla Developer Street (modest)
- local MDC: Downloading Source Archives (/ja/developer_guide/source_code/downloading_source_archives)
Google
その他
- Google Chromeに受信データ量を大幅に節約する「データセーバー」モード追加へ - GIGAZINE
- Chromeブラウザ、「Script streaming」と「Code caching」の2つのテクニックで、さらにWebページ読み込み時間を短縮へ - Publickey
- WebAssembly、CPU Throttling、Custom Elementsの最新情報を解説──2016年10月のブラウザ関連ニュース | HTML5Experts.jp
- Google Chrome、ページロード途中のレイアウト変動を抑える技術を導入 | スラド IT
- 「Google Chrome 58」はIndexedDB 2.0やフルスクリーン版プログレッシブウェブアプリに対応 - GIGAZINE
- Intent to unship: HTML scoped style sheets (<style scoped>) - Google グループ
- Official Google Webmaster Central Blog: The new evergreen Googlebot
- Web上でお絵描きしやすくなるキャンパスの改善や数字の可読性を向上させるセパレーターなどが含まれるGoogle Chrome 75安定版リリース - GIGAZINE
- Chromium ソースコード珍百景
本の虫
- 本の虫: Chromeがいつのまにかruby要素をサポートしている件について
- 本の虫: Chromeがいつの間にか縦書きを実装し始めていた
フロントエンドBlog
- Google Chrome 58安定板リリースと59の搭載予定機能 | フロントエンドBlog | ミツエーリンクス
- Headless Chromeでのスクリーンショット取得とGoogle Chrome 60の搭載予定機能 | フロントエンドBlog | ミツエーリンクス
- 遂に来る! Chrome 75にてLazyLoadが正式に実装されるようです🎉 | フロントエンドBlog | ミツエーリンクス
Google Developers Japan
- Google Developers Japan: ページリロードの高速化および軽量化について
- Google Developers Japan: Chrome 59 ベータ版: Headless Chromium、macOS のネイティブ通知、Service Worker のナビゲーション プリロードなど
- Google Developers Japan: Chrome 61 ベータ版:JavaScript モジュール、デスクトップ版 Payment Request API、Web Share API、WebUSB
- Google Developers Japan: Chrome 68 ベータ版: ホーム画面に追加、Payment Handler、Page Lifecycle
Chromium Blog
- Chromium Blog: A secure web is here to stay
- Chromium Blog: Chrome 66 Beta: CSS Typed Object Model, Async Clipboard API, AudioWorklet
- Chromium Blog: Evolving Chrome's security indicators
- Chromium Blog: How we designed Chrome 10 years ago
- Chromium Blog: 10 years of Speed in Chrome
- Chromium Blog: Chrome 70 beta: shape detection, web authentication, and more
- Chromium Blog: Trustworthy Chrome Extensions, by default
- Chromium Blog: Notifying users of unclear subscription pages
- Chromium Blog: Chrome Dev Summit 2018 Day 2: Ready for the next movement
- Chromium Blog: Data Saver is now Lite mode
- Chromium Blog: Chrome 75 Beta: low latency canvas contexts, sharing files, and numeric separators
- Chromium Blog: Improving privacy and security on the web
- Chromium Blog: Google I/O 2019: What's new with Chrome and the Web
- Chromium Blog: Taking Action on Deceptive Installation Tactics
- Chromium Blog: Chrome 76 Beta: dark mode, payments, new PWA features and more
- Chromium Blog: New Chrome Protections from Deception
- Chromium Blog: Easier Payments with Chrome
INTERNET Watch
- Google、2017年1月提供予定の「Chrome 56」で、一部のHTTPサイトに警告を表示へ -INTERNET Watch
- Google、10月提供のChrome 62以降で、入力欄のあるすべてのHTTP接続ページで警告を表示 -INTERNET Watch
窓の杜
- 「Google Chrome 58」が正式版に ~“Indexed DB 2.0”対応と29件の脆弱性修正 - 窓の杜
- 「Google Chrome 59」は“ヘッドレス”モードをサポート ~ベータ版でテスト中 - 窓の杜
- 最新版「Google Chrome」では再読み込み処理が大幅に高速化 - 窓の杜
- 「Google Chrome 62」が正式版に ~HTTP接続のフォームはすべて“非セキュア”扱いへ - 窓の杜
- 「Google Chrome 63」ベータ版では開発者向け機能が充実 ~非同期イテレーターなど - 窓の杜
- Google、不正なリダイレクトやナビゲーションを「Google Chrome」から排除 - 窓の杜
- 「Google Chrome」の“監視対象ユーザー”機能が廃止、12日以降新規作成は不能に - 窓の杜
- 「Google Chrome 68」ではすべてのHTTP接続サイトが“安全でない”サイト扱いに - 窓の杜
- 「Google Chrome 66」では“CSS Typed OM”や“AudioWorklet”などが利用可能に - 窓の杜
- 「Google Chrome 67」はデスクトップ“PWA”をサポート!……で、“PWA”って何? - やじうまの杜 - 窓の杜
- 「Google Chrome 70」のベータ版、顔・バーコード・テキストを識別するAPIを搭載 - 窓の杜
- Chromeには3種類の“再読み込み”があるって知ってた? Webページ上の画像などを最新の状態にするテク - 窓の杜
- 「Google Chrome 69」からはHTTPSが“当たり前”に ~“保護された通信”ラベルを除去 - 窓の杜
- TLS 1.0/1.1対応などが終了 ~Google、「Chrome 72」の新機能と廃止機能を明らかに - 窓の杜
- Chromeで3つ前に見ていたページへ一気に戻りたい! [戻る]ボタンの便利な小技 - 窓の杜
- 「Google Chrome 77」は新たなパフォーマンス測定の仕組み“LCP”を搭載 ~ベータ版でテスト中 - 窓の杜
TechCrunch Japan
- ChromeはHTTPの死を早めている…1月からHTTPSでないページに警告を表示 | TechCrunch Japan
- Chromeがモバイルでの不快なページジャンプを追放―スクロール・アンカリングを追加 | TechCrunch Japan
スライド
- Future of Blink-in-JS - Google スライド
- Chrome の marquee 要素が 優秀だった話 // Speaker Deck
- State of Chrome's Memory - Google スライド
OSDN
- ページ読み込み時間が5%高速化、「Google Chrome 27」が登場 | OSDN Magazine
- 新たに「Blink」エンジンを搭載した「Google Chrome 28」リリース | OSDN Magazine
- 画像検索機能が安定版に登場、米Googleが「Chrome 30」安定版リリース | OSDN Magazine
- プッシュ通知にカスタムボタンが加わった「Google Chrome 48」が公開 | OSDN Magazine
- 開発者向けの機能を強化した「Google Chrome 51」が公開 | OSDN Magazine
- IndexedDB 2.0をサポートした「Chrome 58」がリリース | OSDN Magazine
- 「Google Chrome 72」リリース、TLS 1.0/1.1が非推奨に | OSDN Magazine
- 「Google Chrome 73」リリース、macOSのダークモードに対応 | OSDN Magazine
- 「Chrome 74」リリース、Windows向けにダークモードを導入 | OSDN Magazine
Twitter
Chrome loading 下周りの実装
- Kinuko Yasudaさんのツイート: "少し前から Chrome loading 下周りの実装の速度・安定性・安全性を高めるためにいろいろ大きめの改良を(ものによっては数年かけて)やってたんですが、それが最近ぼちぼち ship されてるので少しまとめてみました。→… "
- Kinuko Yasudaさんのツイート: "It’s a rainy Friday in Tokyo, thought that tweeting about some cool✨ re-architecturing projects Chrome has done around loading could be good😀☕️, because there're many and they're shipping! Network Service, Service Workers, OOR-CORS, infra change for Script Streaming, etc... →"
- Kinuko Yasudaさんのツイート: "1) Network Service👾! Chrome has been experimenting moving its network stack into its own service process, and it's now shipped on most platforms! This required massive work🔧 but has also significantly improved stability + security🔒👌"
- Kinuko Yasudaさんのツイート: "2) Service Workers⚙ Did you know that Chrome's SW implementation has been completely renewed since around M72? For this @FalkenMatto and the team have done massive redesign, which has reduced per-fetch process-hops, resulted in perf win🚅, correct behavior and healthier code!"
- Kinuko Yasudaさんのツイート: "3) OOR-CORS🔐 @toyoshim and @hirano_y_aa have been working on a project to move the CORS implementation out-of-renderer process. This makes cross-origin loading more spec conformant & securer, and CORB behavior more complete. We're *about to* enable it (i.e. fixing bugs)! 🤞🙏"
- Kinuko Yasudaさんのツイート: "4) Script Streaming🚀 @hirano_y_aa and @MakotoShimazu have done great loading "data pipe" plumbing🔧 work, which enabled V8's direct script streaming from network to the parser. You can read more about this change in V8 release v7.5 blog: https://t.co/p6rpEe0QhE"
- V8 release v7.5 · V8
- Kinuko Yasudaさんのツイート: "5) Off-main-thread script fetch✈! @bashik7, @nhiroki_ and the team have been moving top-level worker script loading off-main-thread, which is enabled on ToT (https://t.co/pyWgoGVf6I). This is a part of efforts to make Service Workers startup faster. Let's hope this sticks😀"
- service worker: 2nd attempt to enable OTMT service worker script fetch (I774e39d3) · Gerrit Code Review
- nhirokiさんのツイート: "最近 off-the-main-thread worker script fetch を頑張っていて、shared worker / service worker 向けには Chrome 76 で有効にしました。今は dedicated worker 向けに実装中です。細かい話は以前記事に書きました (記事書いたのちょうど一年前だ!) https://t.co/iX0emUcuBx… https://t.co/wzRbWQS2nv"
- ネットワーク API のメインスレッド依存をなくす話
- Rockridgeさんのツイート: "Chrome 51は、Credential Management APIをサポートしたほか、スクリーン外のクロスオリジンなフレームにつきレンダリング処理を行わないことで、消費電力を最大30%削減した。 / “Chromium B…” https://t.co/NW9wOIzPbe"
- なかのん DAYS''さんのツイート: "<isindex>って残ってるけど何もできない使えない要素だと思い込んでたけど、動作してたのね……(Blinkはすでにドロップ済みで、Geckoも https://t.co/FoNouOsBwT で作業中) #もずでぶ"
- Yosuke FURUKAWAさんのツイート: "パスワードフォームを http で作ろうとすると警告ラベルが出るように / “Google Online Security Blog: Moving towards a more secure web” https://t.co/x1UxdV691D"
- Rockridgeさんのツイート: "ChromeとSafariでは、「オートフィル可能なフォームが表示された場合、住所やクレジットカード情報をブラウザがサジェストしてくれ」るうえ、「オートフィルの情報はデバイス間で同期可能」である。 / “モバイルウェブのコンバー…” https://t.co/PPi2H2MxuO"
- Kentaro Haraさんのツイート: "Blinkカンファレンスで、「Chromeのメモリ使用量を分解してみた」話をしました。 スライド:https://t.co/KdWXsI05PE"
- Rockridgeさんのツイート: "Chrome 56以降で有効化されているスクロールアンカー機能は、Webページ閲覧中に画像が読み込まれるなどしてページの長さが変わっても、スクロール位置が動かず、閲覧を邪魔されないというもの。 / “Chromium Blog:…” https://t.co/wNcJFNA9BQ"
- Kentaro Haraさんのツイート: "Blinkに協調的スケジューリングを入れてみようという話を書いてみた。単刀直入に言ってしまえば、Web広告が重たいJavaScriptを実行中に(もっと重要な)メインコンテンツの処理を割り込ませるにはどうすればよいか、という話。 https://t.co/xrBVpNtbIn"
- Rockridgeさんのツイート: "ブラウザにいったん機能を追加すると廃止するのがたいへんなので、追加するときに必要性をよく考えるべき、とChrome開発者が実感を込めて語るスライド。 / “Deprecating features (is hard) - Goo…” https://t.co/8guV1SxJrD"
- なかのん&マジックさんのツイート: "Mozillaのmarqueeの実装って、たぶん、Netscape 6 (Mozilla M18) よりも前に、中国語圏のマーケット事情で渋々実装したという感じで、それ以降、いじられてないだろうなぁ。 / Chrome の marquee 要素が 優秀だった話 // Speaker Dec https://t.co/4KqG0SAkak"
- なかのん&マジックさんのツイート: "<blink>要素の削除の時に、CSS Animationsで<marquee>をもっと軽くできないかなとか思って、ちょっと調べてみたけど、一部属性の実装は(JSでごにょごにょしないと)無理って思って無かったことにした。"
- Shigeki Ohtsuさんのツイート: "Chrome69の新UI「Material Refresh」で鍵アイコン等が灰色に変わりました。ChromeでHTTPS通信を緑色で判別する時代は9月に終わりますのでご注意ください。「保護された通信(Secure)」の文字も削除される予定です。https://t.co/jbKxqS4AjG… https://t.co/gIOh4Ra18E"
- Rockridgeさんのツイート: "Chromeは2006年に開発が開始された。ユーザーがコンテンツに集中できるようにUIを簡素化し、スピード・応答性・安定性を高め、セキュリティも強化。当初はWindows版のみで後にクロスプラットフォーム化に苦労したという。 https://t.co/PsMVrqClWT"
- Rockridgeさんのツイート: "ChromeのOmniboxのデザインを変更するにあたって考慮した事情など。 / “f6af7b8161a2” https://t.co/OmE0RIfFXE"
- Makoto Kato ︎︎さんのツイート: "これ、実装したharakenさんがいかにスムーズにしたかっていうプレゼンかブログ見たことあるんだけど、多分発表者は知らないんだろうな。。。 https://t.co/tuZLygLqFc"
- Shigeki Ohtsuさんのツイート: "既に Canary で HTTPが not secure になっている。この後に続く最終段階は、赤字に変わるやつ(actively dangerous)です。 https://t.co/XYKSuz1cKB… "
- なかのん&マジックさんのツイート: ""Google previously recommended the superior practice for website creators of checking which features are present rather than browser name/version, but has since weakened this stance with their browser's growing market share. " https://t.co/VabMOtGR4R HAHAHA!"
- なかのん&マジックさんのツイート: ""Scroll Anchoring"とか、これとか、UX周りは良い仕事してるよな。 / Google Chromeは「戻る」ボタンで戻れない悪質なウェブサイトを駆逐する予定 - GIGAZINE https://t.co/8xvmMdPz9L"
- Google Chromeは「戻る」ボタンで戻れない悪質なウェブサイトを駆逐する予定 - GIGAZINE
- なつきさんのツイート: "Chrome、新技術「bfcache」によってさらに爆速化へ | ソフトアンテナブログ https://t.co/THQKTglTjc Chromeのキャッシュをメモリに保存すれば高速になるのではと思ってはいたけど、ようやくサポートされるのか。"
- Chrome、新技術「bfcache」によってさらに爆速化へ | ソフトアンテナブログ
- なかのん&マジックさんのツイート: "Firefoxがめっちゃ昔から搭載してるヤツだ。むしろ無しで今までやってたんだな。Firefox for Androidでは多めに設定して使ってるけど、デスクトップのブラウジングではあまり恩恵を感じなくなった。たぶん、タブをフル活用できるから、戻る、進むを使わなくなってるんだと思う。"
- Chromeの戻る/進むを高速化する技術 - PC Watch
- Addy Osmaniさんのツイート: "Native <img> lazy-loading is coming to the web! https://t.co/LgF7F1iMgR <img loading=lazy> defers offscreen images until the user scrolls near them. Shipping in Chrome ~75 https://t.co/4gR7lvx4zx… https://t.co/MVhFCLPqR6"
- ゆきさんのツイート: "Blocking high-risk non-secure downloads https://t.co/MymT5sBRr7 Chromeの中のひとが、非セキュアなダウンロードについて対策を考えたいとのこと"
- Blocking high-risk non-secure downloads from Emily Stark on 2019-04-09 (public-webappsec@w3.org from April 2019)
- KIMATA RobertHisasiさんのツイート: "https://t.co/x0szHUQ54V https://t.co/qFSHLHDesn Mobile版のGoogle Chromeで、body要素配下のtext nodeの合計文字数が244と245でfont sizeが変わり、`position: absolute;`が指定されたcontentの文字のサイズは更に別計算? 何を言っているのか自分でもよく分からない。なんなんだ、これは"
- KIMATA RobertHisasiさんのツイート: "はい。あとデスクトップ版でもデベロッパーツール開いて、Android版にしたら発生しました… "
- なかのん&マジックさんのツイート: "ASCII文字だけのテキストノードなので、245文字未満だとUTF-16じゃなく、ASCIIでストアしてるとか、そういう感じでの条件分岐だと思います。Geckoも内部でやってます。キリが悪いのは、その差分の部分に何かの内部処理用のフラグを持ってるんじゃないかと。… https://t.co/X08Uu9VGC0"
- Makoto Kato ︎︎さんのツイート: "preventScroll、Chrome/Androidで動いてないよねというか誰もテストしてない系ぽいな。Geckoも人のこと言えないが。software keyboardが表示されたというlistenerがAndroidに存在しないからhackなコード入れざるをえないし"
- なかのん&マジックさんのツイート: "web-compatとしてChromeの動作に寄せていくのは基本的には誰にとっても良いことになると思ってやってるんだけど、最大の問題はChrome側のバグだった時なんだよなぁ。そしてこの場合にChrome開発者が動いてくれないというのが問題で……"
- mattnさんのツイート: "僕「Accept-Language は ja_JP じゃなく ja になるよ」 某「どのブラウザ使ってるの、Accept-Language は - か _ で区切られた ja_JP の様な物を返すんだよ。もしそんなブラウザがあるならそのブラウザだけ特例で回避すべきだ」 僕「Google Chrome だよ」 と返信したらレスが返って来なくなりました。"
- なかのん&マジックさんのツイート: "いやその通りにシェアに関係無く、間違ってる実装に対するハックをブラックリスト形式で(かつ、可能なら修正されても壊れないように)やっておかないと、その実装側の修正時に壊れてしまう。Firefox/Geckoの長らく存在するバグを互換性のために修正すると、世界のどこかから壊れた報告が毎度毎度……"
- Chrome Developersさんのツイート: "🖼 Image Lazy Loading on the web is happening! and it's as easy as adding `loading="lazy"`. It is available behind flags on Chrome Canary! Go try it out 🙌… https://t.co/fViARDbuSB"
- ゆきさんのツイート: "[Chrome] Q1 Summary from Chrome Security https://t.co/TeW7aghynu Chromeのセキュリティについてのまとめ。よい。"
- Q1 Summary from Chrome Security - Google グループ
- Out-of-Process iframes (OOPIFs) - The Chromium Projects
- Experiment Time: Scroll Anchoring | Web | Google Developers
- Simple way to download Google Chrome/Chromium source code - Stack Overflow
Apple
- iOS10.changesets · uupaa/WebKitChangeLog Wiki
- uupaa/LatestLog
- 開発者のための WebKit (“WebKit for Developers” 日本語訳)
- Rockridgeさんのツイート: "WebKitの新しいポリシーによれば、実験的な機能にベンダープレフィックスを付けず、ランタイムのフラグで管理する。既存のプレフィックス付き機能についてもケースバイケースで見直していく。 / “Updating Our Prefi…” https://t.co/InqdWd6vp8"
- WebAssembly(wast)を書こう! - Qiita
- Rockridgeさんのツイート: "次期Safariではフォームのバリデーション機能が強化される模様。たとえば空欄のフィールドには入力を促すポップアップメッセージが出る。 / “HTML Interactive Form Validation | WebKit” https://t.co/PDbwXx2EIi"
- Rockridgeさんのツイート: "Safari 10.1は高速かつ標準適合度の強化された新URLパーザを搭載。また、CSSパーザもBlinkから移植されたものが有効化され、パフォーマンス、仕様適合度および他のブラウザとの互換性が改善された。参照:… https://t.co/7QZ6izyhoY"
- Rockridgeさんのツイート: "次期Safariでは投機的なリソースの読み込みをサポートする。また、バックグラウンドタブの動作を抑制して消費電力を低下させる。参照:https://t.co/hOBf5Ht3pJ / “Release Notes for Saf…” https://t.co/owAS63uTJ6"
- Safari 11に新機能追加、プライバシー改善
- azuさんのツイート: "iPhone Xなど四角でない画面にフィットさせるための`viewport-fit=cover`やセーフエリアの概念を扱うための`constant()`(`env()`)についての解説 "Designing Websit…" https://t.co/SwRxRllQv4"
- なかのんクエストさんのツイート: "えー、プレゼンテーションの指定にmeta要素使わせるの……なんでroot要素にのみ指定可能なプロパティを提案しないんだ。"
- Rockridgeさんのツイート: "MozillaがNightlyを強化しているのとは対照的に、WebKitはNightlyのアップデートを止めてビルドのアーカイブを公開する形式に移行した。日常的に使うならSafari Technology Previewをどうぞ、… https://t.co/ESnWxbVcDp"
- Eiji Kitamuraさんのツイート: "AppleがWeb App Manifestの実装を開始! https://t.co/ySCc3LlctY"
- Safari による User-Agent 固定化と Web における Feature Detection | blog.jxck.io
- SafariのUA文字列が固定されて固定されなくなったおはなし - fragmentary
- Makoto Kato ︎︎さんのツイート: "https://t.co/XWuOl8QPpa を見てて、Firefox AndroidでUAにAndroidのバージョンを入れる入れないでWeb Compatibilityが向上する話を思い出した。バージョン入ってないとAndroidとして認識してくれないサイトがあるとか"
- Web Inspector Styles Sidebar Improvements | WebKit
- Apple、「Safari 12」を「macOS Sierra」「macOS High Sierra」向けに一般公開 - 窓の杜
- Link Click Analytics and Privacy | WebKit
- Intelligent Tracking Prevention 2.2 | WebKit
- Dark Mode Support in WebKit | WebKit
MS
Google
- 高梨陣平さんのツイート: "名前出しての告発。JoshuaJB曰く、Edgeチームで働いていたけどEdgeを止めた理由の一つはGoogleが自社のサイトに他者ブラウザを遅くする変更を加え、我々はそれに追従できなかったから。例としてYoutubeは隠された空のdivを追加してEdgeのハードウェアアクセラレーションを効かなくした。… https://t.co/YNkOvrOcRp"
- comexさんのツイート: "“I very recently worked on the Edge team, and one of the reasons we decided to end EdgeHTML was because Google kept making changes to its sites…” https://t.co/BQKYNUlXAm"
- "For example, they may start integrating technologies for which they have exclus... | Hacker News
- dynamis (でゅなみす)さんのツイート: "YouTubeってブラウザがハードルアクセラレーションのレイヤー境界を判断するコードも標準機能が出来て久しいのにBlink用ハックだけ入れ続けてGecko搭載機器で困ってたし(簡単なCSS追加を指示して解決してもらった)、悪意があるかどうかはともかく他ブラウザへの無配慮は常態化してたと思ってる。"
- なかのん&マジックさんのツイート: "この手の話、多分ほじくればなんぼでもbugzilla上にあるんじゃないかな。私のweb-compatは大物がほとんどで件数少ないけどそれでもあるんだから。"
- dynamis (でゅなみす)さんのツイート: "MozillaがWebPサポートしないと言ってたのを方針転換したのもYouTubeがWebPサポートしないと表示されない画像を入れ続けてたからだし、Google検索はFirefoxに劣化版出してくるし、あれだけエンジニアと利用者のいるGoogleの主要サービスがChrome以外に配慮しないのはWebの方向性に影響大きいよね"
- なかのん&マジックさんのツイート: "自分達が欲しいAPIは迅速に実装、仕様案出して来て、他のブラウザベンダの状況関係なく自分たちで使い出す、逆に興味ないAPIや自分達が困ってないバグ修正は放置してるよね。ビジネスとしては、実験段階のものを実際に使うの以外は普通なんだけど立場を考えて欲しい。"
- はじめてのにき(2018-12-17)
- KIMATA RobertHisasiさんのツイート: "Chromiumが独占的な地位を得てしまっているので、例えばJavaScriptを独自拡張して「この拡張に対応していないとGoogle DocやYoutubeが使えません(or 激重になります)」みたいになると結果としてFirefoxのSpiderMonkeyエンジンが市場から排除される恐れがあるんだよなあ"
- なかのん&マジックさんのツイート: "既にそういうサービスちょいちょい作ってなかったっけ。"
- dynamis (でゅなみす)さんのツイート: "Chrome以外のブラウザ無視についてはGoogleなどより中国と日本のサイトが圧倒的に酷くてMozillaが苦渋の思いでwebkit接頭辞サポートをしたのはそれが原因。 修正コードや自動変換ツールまで持って行ったMozillaの修正依頼を、エンジニアに教育するコストが出せないと断った日本の大手IT企業が典型例"
- dynamis (でゅなみす)さんのツイート: "明らかにビジネス判断遅かったし他にも都合があるが、Mozillaがモバイルでシェアを獲得できる機会を繰り返し失った主要因はサイト側が修正する気が無かった(サイトに影響力のある企業もそれを推進する気が無かった)ことがあったし、ブラウザ動向を決めるのは結局サイト制作側なんですよね。"
- dynamis (でゅなみす)さんのツイート: "ブラウザシェアを大きく左右するのはサイト制作側よりもOSであったり検索サービスなどでの圧倒的な広告であったりするけど、Webの進化の方向を決める最後の鍵を握るのはサイト制作側なんだと理論でなく体感した15年だったなと思う年末です。"
- dynamis (でゅなみす)さんのツイート: "即座に修正対応してくれたり、内製から外注に変えて仕様調整が難しいと告白しつつ努力してくれたり、マネージャが断っても現場から変えて数年後に対応してくれたり、無駄ではなかったです。 ただ業界を変えるには人手と時間が足りないし、大手IT企業ほどお断りされたのは事実であり限界はあったなと… https://t.co/izJCLzlCSD"
- dynamis (でゅなみす)さんのツイート: "念のため書き足すと簡単なCSS追加をしたのはYouTube再生機能を持った機器側。メーカーからのYouTubeへの修正要望は受け付けられていなかったためブラウザ側にサイト固有ハックを入れるのがYouTubeのプレイヤーとしての性能要件を定めた認証を通す唯一の手段だったケース。"
- SKSの申し子さんのツイート: "Edgeの開発をしていたという人がHNで「Googleはyoutubeとかでわざと他のブラウザを遅くしている」みたいなコメントして注目を浴びてるけど,「MSはサービスのクライアントをLinuxで遅くするのやめろ」みたいな突っ込みが入っていて,憎しみが連鎖している"
- KIMATA RobertHisasiさんのツイート: "https://t.co/4jMT2MZdq2 https://t.co/t4lhNM483w この話「Web標準に沿ったコードを書いても、それ自体は会社の利益を生まないし、作業者の給料や評価が上がりもしない」のが辛い。だからアクセシビリティなどが優れるサイトは褒め称えるなどして社会的な評価上げないといけないのだろうなあ"
- なかのん&マジックさんのツイート: "実際問題、今みたいにブラウザ屋さんになる前からWeb標準化の活動とかし始めたあたりから、この会社は信用できないなとかってのをWebサイトの出来から考えるようになったな。"
- なかのん&マジックさんのツイート: "あ、この会社ヤバそうだからお近づきになるのやめとこう、みたいなの。"
- なかのん&マジックさんのツイート: "なんでこの人達は全てのブラウザが同じHTML/CSS/Javascriptを受け取ると思い込んだ上でしたり顔トークしてるだろう…… https://t.co/nqAvMlrYsx"
- なかのん&マジックさんのツイート: "転送容量の膨大さから、あえてinvalidなHTMLにして容量削減したりしてたぐらいの企業ですよ?"
- Makoto Kato ︎︎さんのツイート: "YouTubeの話はpolymerがたまたま変なHTML生成しただけじゃないの?だし、彼らはなんも考えてないだけとしか思わないけどね。Blinkに対して最適化入れてるだけで"
- Makoto Kato ︎︎さんのツイート: "自分たちはちゃんとGoogleへレポートしてるけど、彼らはちゃんとバグ登録してくれてる。問題は同じ会社なのにChromeチームと話があってないことだけ。大きい会社なんだ感あるだけだよ。それはMSもそうだけど、大きい会社の宿命だよ。いろいろ難しいよね"
- Googleが「Microsoft Edge対策にYouTubeのコードを変更した」という指摘を否定 - GIGAZINE
- - Microsoft Edge Development
- Microsoft Edge、レスポンシブイメージ対応の「srcset」に対応。夏以降は主要ブラウザすべてでsrcsetサポート - Publickey
- 新しくなったMicrosoft Edgeを試してみよう!ーWindows 10 Creators Updateで入ったEdgeの新機能一挙解説 | HTML5Experts.jp
- Chrome/Firefoxよりも断然エコ ~「Creators Update」における「Edge」の消費電力削減 - 窓の杜
- Rockridgeさんのツイート: "Anniversary Update後のMicrosoft Edgeは、マウスホイールによるスクロールだけでなく、タッチ操作によるスクロールやサイドバーのスクロールについても処理の非同期化を達成している。 / “Scrollin…” https://t.co/2epkgtBAih"
- Rockridgeさんのツイート: "Microsoft EdgeはIE時代のDOMツリーを、3フェーズに分けて次第に新しいアーキテクチャに移行させた。Creators Update後のEdge 15では処理高速化の成果が出ているという。今後はDOM周辺のサブシステム… https://t.co/nIPjowqY4i"
- Modernizing the DOM tree in Microsoft Edge - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
- 最新バージョン「Edge 15」が大進化、応答速度3倍、高い電力効率を実現 - INTERNET Watch
- Windows Creators Update,Firefox 53,Chrome 58リリース──2017年4月のブラウザ関連ニュース | HTML5Experts.jp
- Rockridgeさんのツイート: "Windows 10 Fall Creators Update後のMicrosoft Edgeには、お気に入りのURL編集とタスクバーピン留め、音声読み上げ、パーミッション設定、CSS GridとPayment Request A… https://t.co/B3RKz3QkI9"
- Windows 10 Fall Creators Updateに搭載されるMicrosoft Edgeの新機能 | HTML5Experts.jp
- なかのん&マジックさんのツイート: "Edgeさん、そろそろ、KeyboardEvent.keyの値を仕様にあわせて変更してくれませんかね。あと、KeyboardEvent.codeの実装も。"
- パルポーさんのツイート: "Windows 10 Insider Preview Build 17063 の Microsoft Edge でフルスクリーン時に画面上部にマウスを持ってくることでタブやアドレスバー, お気に入りなどにもアクセスできるようになってた #WindowsInsiders #win10jp… https://t.co/PZMUVhPM3n"
- Internet Explorer および Microsoft Edge での Flash の今後の対応予定について – Japan IE Support Team Blog
- なかのん&マジックさんのツイート: ""Recent Microsoft Edge tabs now show in Alt + Tab" https://t.co/ItBwlQD3Kd これうざいだけでは……"
- なかのん&マジックさんのツイート: "タブをそんなに開くユーザは少数派という、テレメトリの情報からの判断なのかなぁ。"
- KIMATA RobertHisasiさんのツイート: "RS5で使い始めていますが、(Edgeをメインで使っていない自分としては)あまり問題になってないのですが、タブを数十開く人の場合うざそうだなあ、などと。あと、Setsで「+」おして必ずEdgeが開くのもうざいです。普通同じアプリの新しいタブが開くことを期待するのではと思うの次第… https://t.co/GdQgS4XebV"
- Microsoft Edge: Making the web better through more open source collaboration - Windows Experience BlogWindows Experience Blog
- Rockridgeさんのツイート: "Mozilla Blogに掲載された「Goodbye, EdgeHTML」の和訳。他にも和訳はいくつか存在しているが、これが一番読みやすい。 / “「さよならEdgeHTML」――Goolgeへの対抗をあらためて誓うMozill…” https://t.co/OZ5vLalGzS"
- 「さよならEdgeHTML」――Goolgeへの対抗をあらためて誓うMozilla – P2Pとかその辺のお話R
- won't fix: RIP EdgeHTML. Software lifecycle is difficult
- Edge 終了に寄せて - mizchi's blog
- 米Microsoft、Chromiumベースの「Microsoft Edge」プレビュー版を公開 | OSDN Magazine
- dynamis (でゅなみす)さんのツイート: "新しいEdgeのUA文字列は Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.48 Safari/537.36 Edg/74.1.96.24 注意すべきはEdgeなのにEdgeではなくEdgでありEdgiOSやEdgAと微妙なそろえ方をしてきてること https://t.co/hUsJ8AO7rh"
- Fadisさんのツイート: "UserAgent、読んでも何もわからん情報っぷりに磨きがかかってるなぁ。イマドキのWebでUserAgentを見て何かの機能が利用可能かどうか判断しているJavaScriptが居たら流石に直した方が良い案件ではあるわけだけど"
- 7594591200220899443さんのツイート: "今時UAの文字列にどんだけ意味あんのかね、サーバサイドは今更QUICで接続してきておきながらlike Geckoとか言われても死ねよという感想しかないわけだしJSは所詮ローカルプロセス内でもっとgranularな情報取れるし意味なくねえか… https://t.co/hLn9k1zm7U"
- なかのん&マジックさんのツイート: "え、UA文字列、普通に使われてるよ? なんでもかんでもfeature detection可能じゃないし、下手に関連性のないブラウザ間の非互換部分でブラウザ判定するほうが害悪。"
- なかのん&マジックさんのツイート: "ここ半年ぐらい、そういうWebアプリとの互換問題やりまくっててウンザリしてる。"
- Makoto Kato ︎︎さんのツイート: "ブラウザ作ってる会社のWebサービスがUA文字列見てるくらいだから、現状ではFeature Detectionでまかなえると思ってない"
- なかのん&マジックさんのツイート: "Feature Detectionで何でもWebアプリを適当に書けると思ってる人は間違い無く素人さんです。"
- なかのん&マジックさんのツイート: "特定のUAであるかどうかを判定するのにUA名のチェック以外により良いものなんてないんだと思うんだけどな。もし、全ブラウザがバグ無く未実装があるだけ、かつ、標準仕様が存在しない世界なんだったらブラウザ自体を判定しようっていう行為が愚行なことには同意できるけど。"
- Microsoft、音声認識とAIを組み合わせたインテリジェントエージェントのビジョンをBuildで公開 ~ChromiumなMicrosoft EdgeにはIE互換のタブを実現するIEモードを追加 - PC Watch
- [速報]次期Micrsoft Edgeに「Internet Explorer mode」搭載。企業向けにIE11のレンダリングも提供。Microsoft Build 2019 - Publickey
- MicrosoftがEdgeのmacOS版やIEモードの搭載を発表 - GIGAZINE
- ユーザー エージェント文字列の変更 (Windows)
- ドキュメント『モダンブラウザーの今と、Web標準に対応したWebコンテンツの作り方』公開! | Microsoft Edge Japan
- 2016 年の展望: Microsoft Edge の開発者向け情報 | Microsoft Edge Japan
headless
Qiita
- WindowsでPuppeteerを使ってヘッドレスChromeを操作するための環境構築手順 - Qiita
- 動的に生成されたページをpuppeteerでスクレイピングする - Qiita
- --headless時代の本命? Chrome を Node.jsから操作するライブラリ puppeteer について - Qiita
- ヘッドレスブラウザ(Chrome)を使ってSPAをスクレイピングする - Qiita
- PuppeteerでヘッドレスChromeを操ってみる - Qiita
- puppeteerでスクレイピング - Qiita
- Docker で Puppeteer 動かして Slack にスクショを通知してみた · tail -f /var/log/ryysud.log
- Headless Chrome をさわってみた | CYOKODOG
- ヘッドレス Chrome ことはじめ | Web | Google Developers
- Webブラウザの操作をJavaScriptで自動化。Headless Chromeのフレームワーク「Puppeteer」がバージョン1.0に到達。ChromeのDevToolsチームが開発 - Publickey
- Headless Chromeでデザイン変更履歴を追える魚拓を作ってみた - pixiv inside
- PuppeteerによるヘッドレスChromeの使い方 evaluate | iwb.jp
- [puppeteer] ヘッドレスブラウザの操作でスクレイピング、クローリング │ Web備忘録
- Puppeteerでできることまとめ | GMOアドパートナーズグループ TECH BLOG byGMO
- Puppeteer | Tools for Web Developers | Google Developers
- Puppeteer でのヘッドレス Chrome の使用 | Node.js 用 App Engine スタンダード環境に関するドキュメント | Google Cloud
- E2EテストをPhantomJSから、Puppeteer + Headless Chromeへ移行しました - LCL Engineers' Blog
- [Node.js] puppeteerでスクレイピングしてみる - 筋肉エンジニアの備忘録
- Dockerコンテナ内でpuppeteerを使うとChromeゾンビプロセスがたまる問題 - その手の平は尻もつかめるさ
自動入力
- 【やじうまPC Watch】ChromeやSafariの自動入力でクレジットカードなどの個人情報が盗まれる危険性 - PC Watch
- 暮らしに役立つITコラム ChromeやSafariの自動入力機能が、なぜ「悪いデザイン」なのか
- Rockridgeさんのツイート: "Fx55:NightlyチャンネルでForm Autofill機能がデフォルト有効化。名前や住所などの入力フォームを自動的に補完する。ただし、当初はinput要素のautocomplete属性が指定されたフィールドに限られる。 https://t.co/plmEjkWchV"
- Rockridgeさんのツイート: "Fx55:Form Autofill機能の対象にクレジットカード情報が追加された。 / “1359978 - [Form Autofill] Implement the credit-card storage” https://t.co/PahNcUMXig"
- Rockridgeさんのツイート: "Fx55:Form Autofill機能に関し自動補完の対象となる入力フィールドを選別する機能が実装・有効化された。処理のパフォーマンスにも影響。参照:https://t.co/jFgqkhWj9g … https://t.co/1uZGKszQ2e"
- Rockridgeさんのツイート: "入力済みの名前や住所などのプロファイルをFirefoxが保持し、フォームを自動的に補完するForm Autofill機能は、Firefox 57(2017年11月14日リリース予定)でシステムアドオンとして提供される見通し。 https://t.co/gFN21vBl9J"
- Rockridgeさんのツイート: "Form Autofill機能で利用されるプロファイルは、将来的にFirefox Syncの同期対象となる。 / “Firefox/Features/Form Autofill - MozillaWiki” https://t.co/tqas9XAnfg"
- Rockridgeさんのツイート: "Form Autofill機能は今後、autocomplete属性以外のフィールドも対象に含めていく。補完される情報の追加・編集機能も実装される見込みだ。 / “Preview Form Autofill in Firefox …” https://t.co/ICdJwGTefX"
OGP
- OGPを設定しよう!SNSでシェアされやすい設定方法とは?
- meta 要素 OGPの基本的な設定方法 - by Takumi Hirashima
- OGP画像を設定してみよう! - Qiita
- OGP設定の正しい方法とは?確認の仕方と注意するポイント | Marketing Native(マーケティング ネイティブ)
Internet Message Format
- Kazuho Okuさんのツイート: "別の言い方をすると、ウェブのフォームバリデーションむけに作られた業界標準の正規表現なので、その目的で使うなら最強に近い https://t.co/QrgpKm8K5d"
- Kazuho Okuさんのツイート: "living standardを定めている団体がwillful violationだと言っているものを、さもformalであるかのように(つまり「きちんと定義されている」と)言及したら反発くうのはしょうがないよね"
- Dai MIKURUBEさんのツイート: "念のため言っておくとHTML(5)仕様中の<input type="email">のための正規表現は、本文中に"willful violation of RFC 5322"だって明確に書かれてるので、それはそれでいちおう要注意。まあそれなりにauthorizeされているしだいたい… https://t.co/wsVFCfkKnX"
- RFC 5322 - Internet Message Format
- RFC5322(Internet Message Format)
- メールアドレス - Wikipedia
- Email address - Wikipedia
- RFC 5322のメッセージ書式
- RFC 5322
- SMTP の新しい RFC が公開
- Outlook から RFC で認められていない形式のメール アドレスにメールを送信すると、配信不能メールが返され送信できない
HTML 3.2
- HTML 3.2 Reference Specification
- HTML 3.2 仕様書
HTML4
- HTML 4.0 Specification
- Index of the HTML 4.0 Elements
- Index of the HTML 4.0 Attributes
- Index
- HTML 4 Changes
- HTML 4.0 解説
- HTML 4.01 Specification (ja)
- HTML 4.01の正しい記述方法、最小構成編 | マイナビニュース
- なかのん&マジックさんのツイート: "cite要素の定義、変わりすぎではって思ったけど、HTML4.01の仕様を確認すると、思いのほか何も定義してなかった。"
HTML5
W3C
- HTML5
- HTML 5.1
- HTML 5.2
- HTML 5.2 is done, HTML 5.3 is coming | W3C Blog
水底の血
- 2016年5月のdl要素にまつわるエトセトラ - 水底の血
- HTML 5.1仕様とその日本語訳についてちょっと一言 - 水底の血
- 2016年下半期のw3c/wcag GitHubメモ - 水底の血
- ITS 2.0の日本語訳を公開した - 水底の血
- 「縦書き」に関する総務省の行政事業についての報告書の感想のようなもの - 水底の血
- HTMLのコメント中に余分なハイフンが出現してもよくなった - 水底の血
- HTMLチェッカーはchecker.html5.orgを推してみたい - 水底の血
- Re: コンテンツのデザインとウェブデザイナーにできること - 水底の血
- W3C HTML 5.0仕様とそれ以前の(X)HTML仕様に対する廃止勧告の提案 - 水底の血
contenteditable 属性
Twitter
histric-1
- なかのんクエストさんのツイート: "なんか、ちょっと詳しく書きたくなる内容なんだけど、ブラウザの実装調べて無いでしょ、この人…… / LINE BLOGアプリ開発で contenteditable と戦った話 : LINE Engineering Blog https://t.co/boJRmratd2"
- なかのんクエストさんのツイート: "というか、多分、関連仕様書も読んでないのでは。"
- なかのんクエストさんのツイート: "まあ、かと言って、私も、私基準では語れるほど詳しくはない。"
- なかのんクエストさんのツイート: "Geckoは基本的にはChromiumの動作に合わせて修正していくんで、やりたい企業は基本的にはブラウザベンダと緊密に連絡とった方が良い。Microsoftさんはかなり頑張ってる。"
- なかのんクエストさんのツイート: "何て言うか、Webで真剣にサービスやるなら、フルタイムで各ブラウザのバグを修正する部隊を社内で編成した方が良いですよ。このレベルのことやりたいなら。"
- なかのんクエストさんのツイート: "とりあえず、一言だけ言っとくと、仕様が未熟な時期に実装するとブラウザ側や仕様側の変更で凄いコストかかるし、そういう実装が先にメジャーになってしまうと、ブラウザも仕様も合理的な方向に変更できなくなって新規の開発に悪影響出まくりなんで、その辺の覚悟と責任は知ってて欲しい。"
- なかのんクエストさんのツイート: "DOMイベント周りは私も頑張って、地獄感がかなり減ったけど、contenteditableはかなりの地獄よ? (現Gecko Editorモジュールオーナー談"
- もんどさんのツイート: "HTMLの本でcontenteditableを取り上げる可能性は限りなく低いと思っている"
- さねさねさんのツイート: "userland側から見てもcontenteditableからむコードできれば書きたくない"
- なかのんクエストさんのツイート: "多分無い。相当な資金力無いなら少なくともあと5年は手を出してはいけない。"
- もんどさんのツイート: "ここはじーごーくーじーごーくー(ry"
- Rockridgeさんのツイート: "contenteditableは仕様が未熟なのでアプリに実装するならブラウザベンダと緊密に連絡をとる方がよく、覚悟が必要で責任も伴うという。参照:https://t.co/UwqbkjQyT6 … https://t.co/GogPxoW2qq"
- なかのんクエストさんのツイート: "なんか、contenteditableのネタが未だにちょいちょい、RTとかFav延びてるけど、みなさん、ご存知なくての話なのか、だよねーー的な感じなのか……"
- なかのんクエストさんのツイート: "contenteditable="plaintext"なんて案もあって、bugzillaにも実装要望報告来てたんだけど、汎用性無さすぎな仕様で、速攻で仕様案からlegacy扱いになってたのはなかなかのギャグ。"
- なかのんクエストさんのツイート: "現在の仕様案は悪くないと思うんで、Chromiumが先行するなら追随したいとこらではある。"
- なかのんクエストさんのツイート: "実際に私が実装する事は無いと思うけど、テキストエディタの使い勝手って、IME並みに重要だと思うので、上手く抽象化してから、vimやemacsのキーバインドをGeckoで実装したいって人が来るならwelcome。個人的には。"
- なかのんクエストさんのツイート: "まあ、まずは抽象化するっていう作業が必要ですけどね。今はキーの組み合わせをハードコーディングで確認したり、XULであらかじめ決定してるキーバインディングでコマンド実行したりしてる。これを全部、キーイベント発火タイミングでコマンドを関連付けるようにしないといけない。"
- なかのんクエストさんのツイート: "Quantum Flowがらみでその辺は今、ぼんやりと考えてる段階。"
- なかのんクエストさんのツイート: "これのHTMLエディタへの対応を、どうするのか、物凄く悩ましい。"
histric-2
- LINE BLOGアプリ開発で contenteditable と戦った話 : LINE Engineering Blog
- Rockridgeさんのツイート: "Fx55:Windows版で、テキストエリア内においてATOKの定型文章入力を行った際、改行が無視される後退バグを修正。 / “1339331 - [TSF] new line is ignored when use ATOK'…” https://t.co/T6qhU8hzEk"
- なかのんクエストさんのツイート: "これのHTMLエディタへの対応を、どうするのか、物凄く悩ましい。"
- なかのんクエストさんのツイート: "常に<br>置換でも良いような気もするものの、ハングルのIMEの挙動を考えると、普通にEnter押したときの動作でないとまずいし、でも、ATOKだとそれじゃ、変な結果になるよな、という……"
- なかのんクエストさんのツイート: "プレーンテキスト脳なATOKのhacky動作を無視するのが一番なのかなぁ。"
- Rockridgeさんのツイート: "Fx60:contenteditable/designModeの編集領域において、ユーザーがEnterキーを入力した場合、他のブラウザと同様にdiv要素が挿入されるようになる。従来はbr要素が挿入されていた。 / “Intent…” https://t.co/eHZAPYMIbO"
- なかのん&マジックさんのツイート: "あー、やっと、Chromeの微妙に納得いかない動作に合わせる方法思いついた。contenteditable="false"絡みはどこのブラウザベンダもちゃんとテストしてないから、実装の癖がそのまま出ちゃうんだよな。"
- なかのん&マジックさんのツイート: "なので、最大シェアのChromeが、理屈的に微妙な動きをしてるときにどうすべきか、ケースバイケースで難しい。"
- なかのん&マジックさんのツイート: "本当にこの辺は標準化しないと使い物にならないよな。穴埋めみたいな入力画面をcontenteditable="false"を活用して作ると、undo/redoが全編集可能エリアで統合されるんで、場合によっては便利そうなんだけど、いかんせん、互換性とか以前のレベル。"
- なかのん&マジックさんのツイート: "contenteditableの実装、invalidなHTML内での編集も処理しないといけないの、複雑さを悪化させてたり。<div><li></li></div>で、<li>内でEnter押した時とか。"
- なかのん&マジックさんのツイート: "そーいや、EdgeもBlinkも、contenteditableでの編集中に、平然とHTML的にInvalidなDOMツリーを作るんだけど、どうなってんだ……"
- なかのん&マジックさんのツイート: "孫以降にInvalidな要素を作ってしまうのであれば、パフォーマンス的に分からなくもないんどけど、流石に子供として挿入しちゃうのは……"
- Pascal Chevrelさんのツイート: "My Firefox Dev Tools tip of the day, live edit your Web content by setting contenteditable=true to the body tag ;) #FirefoxHowTo… https://t.co/TCxpCtk49C"
- なかのん&マジックさんのツイート: "うおおおお。バグ報告一杯来そうで嬉しいやら悲しいやら。"
- なかのん&マジックさんのツイート: "正直、contenteditableで生成されるツリーは綺麗ではない。"
- なかのん&マジックさんのツイート: "Edgeなんか、Enterキー押した時に、親が<span>とか<p>でも、<div>を突っ込んで来たりするしね。"
- なかのん&マジックさんのツイート: "日本人ではゼロかもしれないですけど、FirefoxのcontenteditableやdesignModeで表示される固有UIの、画像等のリサイザや、絶対配置要素の位置変更、テーブルのセルの追加、削除のUI、これらを日常的に(頻度は問いませんが)使っている人居ますか? #もずでぶ"
- なかのん&マジックさんのツイート: "全世界のNightlyとBetaユーザの利用率を調べると、削除するには無視できないぐらいには、割合は少ないものの明らかに意図的に操作している人が居るのが分かって、驚いています。"
- なかのん&マジックさんのツイート: "今のところ、トラブルが無ければ、Firefox 64 (2018年12月リリース)で、標準では無効化(非表示)にして、execCommand経由でWebアプリが有効化したり、あるいはユーザが強引にabout:configから有効にできるようにする予定です。"
- なかのん&マジックさんのツイート: "ちなみに、Chrome、Safari、Edgeはこれらのビルトインな特殊要素の編集UIを持っていませんので、デフォルトで非表示にすることでブラウザ間の互換性が向上します。"
- なかのん&マジックさんのツイート: "<blockquote>の挙動が分からないって言ってるの、HTML4(.01)を知らないからか。明日か明後日、体調戻ってたら解説記事書くのも面白いか。 / noteと"contenteditable"|ct8ker|note https://t.co/6vcjcqDAw2"
- noteと"contenteditable"|ct8ker|note
- なかのん&マジックさんのツイート: "HTML 4.01の<blockquote>の仕様はこちら: https://t.co/VSx974gYKp"
- Paragraphs, Lines, and Phrases
- なかのん&マジックさんのツイート: "というかこの人、専門でやってるという割には仕様を調べたことなさそうな感じだし、まあ、そもそも仕様書もどきに辿りつくのも大変だと思うんでやっぱりなんか書きます。"
- なかのん&マジックさんのツイート: "Firefoxのcontenteditableの動作、超複雑怪奇になる条件が重なったケースというのを除けば、だいたい理解はできる感じなんだよな。"
- なかのん&マジックさんのツイート: "Geckoのエディタモジュールのオーナーであるにも関わらず知らなかったんですが、contenteditable内に可視化されたstyle要素を置いて、そのCSSのルールをいじると、ちゃんとその結果がページ全体に反映されるんですね…… https://t.co/aZk1TwaLAr"
- A Pen by Masayuki Nakano
- KIMATA RobertHisasiさんのツイート: "HTMLの仕様を読むと最初の方で「この仕様はHTMLを知らない人向けじゃないよ。そういう人は先に別に用意されたチュートリアルを読んでね」的な事が書いてあるのだが、そのチュートリアルはどこで見つければ、と言う気持ち。正直HTML4.01を勉強したころに比べて今は難しいと感じる"
- なかのん&マジックさんのツイート: "contenteditable周りを開発する人は今からでもHTML 4.01は読んでおいた方が良い。なんでかっていうと、HTML5以降廃止されたブロックレベル要素、インラインレベル要素っていう概念を元にブラウザが実装してるし、そこの互換性がまだまだ低くて、"
- なかのん&マジックさんのツイート: "なおかつ、それぞれがバグ持ちで標準化不能になってるから、HTML 4.01での概念を分かってないと意味不明な挙動に見えるんだってのをこないだ学んだ。"
- かさんのツイート: "Twitterの新しいWeb版がやらかしてくれました…日本語入力が狂うなと思ったら案の定textareaを使わずに謎の編集可能なdivとspan… これやられるとマジで入力がおかしくなる環境の人がいるから全Web技術者は真似しないで欲しい… https://t.co/U3p4QcsB6s"
- なかのん&マジックさんのツイート: "特にFirefox Nightlyでは問題無いなぁ。なんかのブラウザのバグを踏んでる?"
- Makoto Kato ︎︎さんのツイート: "Twitterがやりたいことをやるためには、<textarea>じゃ実現できなくて、contentedtiable使うしかないってわかってない多そう。例えばURLを入力すると色が変わるとかはtextareaとかじゃ実現できない"
- Makoto Kato ︎︎さんのツイート: "Twitterがほしいのはcontentediable=plaintext-onlyなんだろうけどさ。入力とかペーストはhtmlのエレメント欲しくなくて、プレーンテキストだけを許可したいとか"
- Makoto Kato ︎︎さんのツイート: "contenteditableで日本語入力がおかしくなるのは、ブラウザかスペックのバグなのでブラウザ作ってる人たちが直すしかないので。無理難題多いけど自分も含めてどうにかするしかない。"
- なかのん&マジックさんのツイート: "あれ結局、実装してるブラウザもやっつけ実装だし、細かい仕様出せってなった後反応無くなったしで黒歴史。"
- Makoto Kato ︎︎さんのツイート: "Linuxでの日本語入力がChromeで問題あるのは、まぁリソースの問題じゃないのかなぁ。彼らにとってプライオリティ高くないし。Firefoxで問題があるのであれば、すみませんというしかないけど。(あのim moduleの仕組みはバグ増やすだけだからよくないとは思ってる)"
- なかのん&マジックさんのツイート: "contenteditable=plaintext-onlyの一番分かりやすい疑問点はEnterキーを押した時に、<br>を入れるのか\nを入れるのかってところ。<p>に\n入れてもスペースだし、かといって<pre>に<br>入れるのも変。"
- なかのん&マジックさんのツイート: "ようするに雑やねん、あれ……"
- 君はHTML5の contentEditable 属性を知っているか | Tips Note by TAM
- contenteditable 属性 - グローバル属性 - HTML5 タグリファレンス - HTML5.JP
- HTML5/グローバル属性/contenteditable属性 要素内容が編集可能かどうかを指定する - TAG index
- 【HTML5】contenteditable属性 - Qiita
- [HTML5API] contentEditable 属性を使用したリッチテキストエディタの実現 – monoe's blog
- contenteditable=contenteditable - コンテンツの編集許可
- HTMLのcontenteditable属性 - 備忘帳 - オレンジ工房
- contenteditable 属性 | HTML5 タグリファレンス | W3 Watch Reference
- Re: noteと"contenteditable"|ct8ker|note - WebStudio
Publickey
- 「HTML5 Rocks」だけじゃない、ブラウザ各社のHTML5チュートリアルを集めました - Publickey
- WebIntentsとSocket APIでブラウザから家電が操作できる。HTML5 Conference 2012 - Publickey
- まだぼやけているHTML5の将来、WHATWGとの二重管理のジレンマ。W3C TPAC 2015 - Publickey
- W3C、「HTML5.1」を今年9月に勧告とする計画。仕様はGitHubで公開 - Publickey
- W3Cが「HTML 5.1」を勧告、レスポンシブイメージへの対応など。次のHTML 5.2は2017年末頃を目指す - Publickey
- HTML 5.2の勧告を2017年11月とする工程表が提案される - Publickey
- W3C、「HTML 5.2」勧告。同時にHTML 5.3のファーストドラフトを公開 - Publickey
Qiita
- <a href="#top">がHTML5で正式仕様になってた件 - Qiita
- サイトに埋め込まれたHTMLのmeta(メタタグ)あれこれまとめ - Qiita
- なつき@コーディングスクール開催さんのツイート: "Googleは以前head, body省略を推奨するような記事書いてましたよね…私はおすすめしませんが。p要素も条件次第で省略可能です。 "HTML5 で省略できるタグ - Qiita" https://t.co/4kqHmgDz82"
- HTML5 で省略できるタグ - Qiita
- なかのん&マジックさんのツイート: "公開する分だけ機械的に抜くのはともかく、基本的には書いた方がミスがなくて良いと思うけどな。C++でもたまに、{}を付けてなかった1行のブロックに機械的に行を追加しちゃったけど、当然ブロックスコープが意図せず違っててクラッシュバグになったりとかあってるし。"
Twitter
- vyv03354さんのツイート: "WHATWGのHTMLも最新とは限らないとか勘弁して…。 https://t.co/zySMIUvL #もずでぶ"
- KANZAKI, Masahideさんのツイート: "HTML 5.2 https://t.co/LRz4sAfmvD 更新されたWDを久々に見たら:main複数可(ただし表示は1つのみ、WHATWGと違)、styleはbody内も可(4月WD、WHA.は不採用)、dlの子にdiv可(2月、WHA.は昨年末)などなかなか斬新"
- Rockridgeさんのツイート: "2017年12月14日、HTML 5.2の仕様がW3C勧告となった。 / “HTML 5.2 is now a W3C Recommendation | W3C News” https://t.co/D13rRxxZM6"
- Rockridgeさんのツイート: "HTML 5.2において、プラグインシステムはobsolete(旧式)なものとして扱われるようになった。 / “HTML 5.2 is done, HTML 5.3 is coming | W3C Blog” https://t.co/XPnb10LxWQ"
- なかのん&マジックさんのツイート: "そういえば、HTML5で実際にアプリに使われていたことのある、<link rel="top">とか、<link rel="up">が仕様にない上にvalidatorでerrorになるというのには驚いたなぁ。"
- もんどさんのツイート: ">アウトライン周りはなかなかに人によって意見が分かれそうな雑な定義で実に悩まされましたね……ググっても、どれを参考にすれば良いのかと思えるぐらい、検索結果が玉石混交っぽくて、今でもまだ正解が分かってません。 どうせブラウザーが実装してないから気にしない派です。"
- なかのん&マジックさんのツイート: "そこはそれ、妄想の中にある理想のブラウザで読み込まれることを前提としてですね("
- W3Cのは『欠陥フォーク』!? HTMLスナップショット2016 ── HTML5 Conference 2016セッションレポート | HTML5Experts.jp
- HTML関連英文書の日本語訳 - HTML5.JP
- Top | Diff of HTMLs
- W3C - 『HTML 5 differences from HTML 4』日本語訳 - HTML5.JP
- HTML5日本語訳
- HTML Standard 日本語訳
- HTML5の最小構成サンプルとその説明 | マイナビニュース
- すべての人が使えるウェブを開発しよう | Mozilla Japan ブログ
- JenkinsとHTMLHintを使用して潜在的な構文エラーに気づいていく | フロントエンドBlog | ミツエーリンクス
- picture要素やsrcset属性による画像のレスポンシブ、高解像度対応 | フロントエンドBlog | ミツエーリンクス
- HTML の q タグが日本語のサイトではカギ括弧を出すようになってた - 頭ん中
- 本の虫: W3CとHTML5のruby要素の違い。
- A Study in HTML5 — Baldanders.info
- W3CはHTML 5.2を公式勧告としてリリースした
- WebStudioともずはっく日記のHTML5化とその他もろもろ - WebStudio
- img要素とiframe要素のlazyload属性 - EagleLand
- Chrome 74が遅延ローディングをネイティブにサポート
XML
- XML 1.0第五版登場、一部規制を緩和 | マイナビニュース
- RFCの正規文書がXMLに:Geekなぺーじ
- The XML C parser and toolkit of Gnome
- Downloads
- Welcome to Expat! · Expat XML parser
XHTML
- なかのん DAYS''さんのツイート: "なんかそのうちドキュメントにまとめたいと思うけど、長年、私のサイトでapplication/xhtml+xmlを運用してきたけど、その結果からするとこの仕様はdeprecatedにして、廃止した方が良い。"
- なかのん DAYS''さんのツイート: "まず第1の問題はGoogleを始め、知る限りほとんどのエンジンが対応していないというか、acceptableなMIMEタイプに含めていないぐらいにブラウザベンダ以外はサポートする気が無い。"
- なかのん DAYS''さんのツイート: "第2の問題は不安定な通信状況等で1バイトでもデータが欠けると、ページ全体がレンダリングされない。これは非常に大きな問題。"
- なかのん DAYS''さんのツイート: "第3の問題はうちの日記システムのように生のHTMLを書き込めるようなシステムの場合、プレビューの仕方を工夫しないとエラーが出て書き込んだ情報のdatalossにつながりかねない。"
- なかのん DAYS''さんのツイート: "最後の問題として、lang属性 vs. xml:lang属性の問題や<pre>要素の問題等、text/htmlと動作が違い過ぎる点がある。このため、テストが二重に必要になるのでこんなコストを良しとする作成者は普通は居ない。"
- なかのん DAYS''さんのツイート: "あんまし記憶にないんだけど、CSSのセレクタの動作がXMLかHTMLかで変わるってのもあった気がする。"
- なかのん DAYS''さんのツイート: "あ、application/xhtml+xmlだと、利用できる実体参照の数がすごい少ないんだっけか。"
- なかのん DAYS''さんのツイート: "あー、クローラーと書くつもりがエンジンって書いちゃってたのか。 https://t.co/9NBeWL7IgH"
- XHTML 1.1 解説
ISO-HTML
- ISO-HTML (JIS-HTML, ISO/IEC 15445:2000)について - HTML リファレンス
- <style>要素(スタイルシート言語に依るスタイル定義) - HTML リファレンス
- ISO-HTML に於ける Pre-HTML について - HTML リファレンス
JIS
- ISO-HTML (JIS-HTML, ISO/IEC 15445:2000)について - HTML リファレンス
MDN
- HTML | MDN
- HTML 要素リファレンス - HTML | MDN
- 属性 (HTML) - HTML | MDN
- Microdata - HTML | MDN
- div 要素 - HTML | MDN
- span 要素 - HTML | MDN
- Global attributes - HTML | MDN
水底の血
- W3CがHTMLとDOMを(再)勧告する理由 - 水底の血
- W3C HTML 5.0仕様とそれ以前の(X)HTML仕様に対する廃止勧告の提案 - 水底の血
- さようなら W3C HTML5.0仕様 - 水底の血
- さよならアウトラインアルゴリズム? - 水底の血
- (メモ)W3C、HTMLとDOM仕様の並立状態が有害であることを認めていた - 水底の血
- W3Cで現在公開されているHTMLとDOM仕様は将来廃止されます - 水底の血
- Web における技術の解釈とエコシステムによる合意形成プロセスについて | blog.jxck.io
- (メモ)DOCTYPEスイッチあるいはウェブ標準としてのQuirks Modeの覚え書き - 水底の血
- (メモ)令和初のHTML Working Groupが始動した - 水底の血
- HTML4/5の知識の断絶みたいなものを感じた件。 - 水底の血
- 高校の「情報」の教科書にあるHTML断片が酷いらしい - 水底の血
- メモ:両HTMLにおけるmain要素の説明、ついに一定の収束の気配か。 - 水底の血
- 本家Stack OverflowでHTMLの質問をしたら、仕様が変わったという話 - 水底の血
GitHub
- html · momdo/momdo.github.io Wiki
- talk/webtalk_2016-09-03.pdf at master · momdo/talk
- Jxckさんのツイート: "[html][header] HTML の HEAD に書けるメタ情報のまとめ / “GitHub - joshbuchea/HEAD: A list of everything that goes in the <head>…” https://t.co/3cFiiIGEqR"
- joshbuchea/HEAD: A list of everything that could go in the <head> of your document
- Home · momdo/momdo.github.io Wiki
Wikipedia
- HyperText Markup Language - Wikipedia
- マイクロフォーマット - Wikipedia
- Microformat - Wikipedia
- Geo (マイクロフォーマット) - Wikipedia
- Geo (microformat) - Wikipedia
- hCalendar - Wikipedia
- hCalendar - Wikipedia
- hCard - Wikipedia
- hCard - Wikipedia
Qiita
- ヒトでもわかるWebブラウザ自作入門 - Qiita
- Webブラウザの作り方 - Qiita
Twitter
その他
- Jxckさんのツイート: "@Jxck_ つまり <input type=email> で大丈夫って言われたメアドが Rails 側の保存時にダメって言われることがあるのか。つまり、フロントを自前 pattern でやるか、 Rails を CustomValidator にするか寄せる必要が。"
- Kazuho Okuさんのツイート: "「link rel=preload には crossorigin と as attribute つけろよな!絶対だぞ!」"
- Jxckさんのツイート: "「alt に代替テキストを付ける」のは「読み上げブラウザのため」って考えるから、「読み上げた時にどうだから alt はどうあるべき」って話をするのなら、それは根本的な勘違い。 alt はスクリーンリーダのため「だけ」ではない。Web を取り巻く全てのエコシステムのためのもの。"
- Jxckさんのツイート: "<fieldset>, <legend> タグってほんと全然使われてないんだな、スタイルのバグのせいなのかと思ったけど、そもそも知られてないとかなのなかな。"
- llamaさんのツイート: "もうWebブラウザに内蔵しといてもらえないかなHTMLバリデータ。コンソールに結果出してよ。"
- にゃおきゃっとさんのツイート: "小学生の頃、html文書というのは table table table table でした。あれから十数年経過した今は、 div div div div に変化していました。"
- ともい(Tomoi,S.)さんのツイート: "Twitterのように縦に長くなるWebサイトを横画面で見る場合、同じ情報を共有した分割画面で、今読んでいる箇所と最新を同時に見たい。"
- ともい(Tomoi,S.)さんのツイート: "一見2枚開けば同じことができるように見えますが、「論理的に1枚の画面で、読んでいる位置だけが違う」状況が必要なので、これができるブラウザがあれば乗り換えたいところ。"
- 一ノ瀬 いろはさんのツイート: "ルートパスって何。"
- もんどさんのツイート: "みてる:divでdtとddをグルーピングできる - Qiita https://t.co/OlYW79cqIh こう、W3C仕様の勧告というステータスへの信仰みたいなもの、どうすればいいんでしょうね。"
- divでdtとddをグルーピングできる - Qiita
- 道化師さんのツイート: "昨今の HTML の類いのファイル、サーバー上 or クライアント上でレンダリングする templete まみれで素の HTML を前提としてるエディタ、非常に残念なことになるよなぁ。"
- dynamis (でゅなみす)さんのツイート: "Web業界にやっとブラウザ標準のコンポーネント化技術がHTML/JS双方で揃い、AndroidだけでなくiOSやデスクトップでのアプリサポート、課金システム対応、Wasm強化にAV1の導入、これらを背景としてHTTPの本格的なdepricationが始まるのが今年のブラウザトレンドになりそうかな。"
- uint256_tさんのツイート: "#Naglfar - 閉じられていないHTMLのコメントに対応 https://t.co/vOgoxtLNeG"
- KIMATA RobertHisasiさんのツイート: "あと、time要素の「datetime属性の値になりえるテキストノードがこようその場合のみdatetime属性を省略できる」のに <time>2018年9月26日</time> みたいな記述を散見する。まあ、これもやりがちなのだが、駄目な奴。結論としては「チェッカー使いましょう」だろうか"
- スドー🌻さんはTwitterを使っています: 「もともとHTMLのリンク文字列は「青文字で下線表示」というスタイルで「ここはクリックできますよ」と明示していたのだが,CSSの普及とともに色分けも下線もなくしてどこがクリックできるのかわからないようにするのが流行りはじめ,デザイナの考えるかっこよさとユーザビリティの乖離を考えさせられた」 / Twitter
- なかのん&マジックさんのツイート: ""Geckoをユーザーエージェントにしたブラウザを優遇したウェブページが登場するようになりました" / 世界中を巻き込んだブラウザ戦争と「ユーザーエージェント文字列」をめぐる複雑怪奇な変遷とは? - GIGAZINE https://t.co/qDtUPZnO6F いや、そんなタイミングは全く無かったと思うが……"
- いざてんさんのツイート: "正確にはMozillaですかね?(… "
- なかのん&マジックさんのツイート: "IEとGeckoの違いが大きかったので、見分けるために使ってたかもですが、優遇っていうより、IE以外を見分けるのになんでか"Gecko"とか見てるサイトがあったとかそんな感じ? ピーク時でもシェアは今より良かったってだけで、めちゃくちゃシェアが大きかったことなんて無いですし。… https://t.co/TmqsvRAcY6"
- いざてんさんのツイート: "原文を読んでみましたけど、「KHTML, like Gecko」が入っていたという話らしいのでGeckoを見てるサイトがあった、という訳文に間違いはなさそうですね。そんなサイトあんまり覚えがないですけど……。… "
- もんどさんのツイート: "これ見て気づいたんですけど、User agents must support [...] UTF-8, [...] ISO-2022-JP, Shift_JIS ってあって、EUC-JPが見当たらないんですけどどういうことなんですかね…"
robots.txt
- 電波の妖精さんのツイート: "げぇっ、総務省のWebサイトってrobots.txtでInternet Archiveのクローラだけ狙い撃ちで弾いてるのか……これなら確かに国会図書館法には違反しないけど…… https://t.co/ttYlY0LQVd"
- 電波の妖精さんのツイート: "User-agent: ia_archiver Disallow: /"
- 電波の妖精さんのツイート: "このrobots.txtは2012年12月頃に置かれたようだ https://t.co/vqFPd3AuOp それでもHTTPSページとトップページだけは収集するのな。"
- 電波の妖精さんのツイート: "海外だとHTMLドキュメントなどを含む行政文書はパブリックドメインに属すると思うんですけど、日本だと法の建て付けが弱いというか、行政文書は行政機関が著作権を持つという前提で進んでいる気がして、そういう意識の現れなのかなぁと思いました(小並)"
- Tsukasa #01 [要出典]さんのツイート: "IA は robots.txt を無視する方向に持っていきたいみたい (当該ブログ記事では米国の政府・軍事機関のウェブサイトでは既に無視しているとのこと)。 | Robots.txt meant for search engines don’t work well for web archives https://t.co/gHrKPcu65J"
Super Reload
- べるさんのツイート: "うたプリファンミ通販のためにムービックで戦っている方、4:14現在全てまだ在庫あります。 スマホとPCで試した結果、firefox(PC)でアクセスしてCtrl+Shift+Rを繰り返していたところ、10分とせず繋がりました…!! ご飯お風呂睡眠を挟んで16時半からの戦いがやっと…幕を閉じました…(˘ω˘)"
- なかのん&マジックさんのツイート: "あまり有名じゃないSuper Reload……"
- おじゅんぬさんのツイート: "うたぷり ムービック戦争ですが PCのFirefoxで マイページより「うたの」で検索→落ちると思うのでctrl+Shif+Rで連打 であっさり行けます"
- にんさんのツイート: "ムービック燃やす勢いのうたプリファンの皆さん pcからfirefox落として「ムービック うたプリ 通販」で検索、お客様各位になったもshift.ctrl.rの3つ同時押しで更新してたらぽろっといけます!!!その後も度々お客様各位にされるけど同じやり方で更新!!"
- なかのん&マジックさんのツイート: "なんでSuper Reloadがこの界隈では有名なの……?"
タブ数
- Rockridgeさんのツイート: "Firefox Nightlyユーザーの75%は、同時に9タブ未満しか開いていない。もっとも、上位5%に限ると40タブ以上開いているほか、中には3300タブという猛者もいるらしい。 / “dietrich ayalaさんのツイー…” https://t.co/Jx2RQkqBOT"
- dietrich ayalaさんのツイート: "Ok, which one of you has 3.3k tabs open on @FirefoxNightly… https://t.co/yK7JYyMpzt… "
- Measurement Dashboard
エンコーディング
- KIMATA RobertHisasiさんのツイート: "まず、W3Cの最新のHTMLであるHTML5.1 2ndでは(HTML5の頃から引き続き)”Authors should use UTF-8.”。この should はRFC 2119が定めたshouldなので「理由を完全に理解した上で敢えて従わないこともできる」"
- KIMATA RobertHisasiさんのツイート: "一方、Living Standardの現時点の表記は ”the actual character encoding used to encode the document must be UTF-8.” である。Must なので理由があってもUTF-8でなければいけない"
- KIMATA RobertHisasiさんのツイート: "肝心のUTF-8でなければならない理由は潜在的なセキュリティ上の脆弱性があるからとされている。具体的には(日本人に馴染みあるコードとしては)ISO-2022などが名指しで使うなとある。また、UTF-16とエンコーディングアルゴリズムが区別つかないUTF-32も使うなとある"
- なかのん&マジックさんのツイート: "UTF-16は、ASCII非互換ってところだけで、文字コード不明な段階でのHTMLのパースに色々と面倒な事が容易に想像してもらえると思うし、NULL文字にあたる0が多々含まれるのがやっぱ怖い。というか気持ち悪い。"
- なかのん&マジックさんのツイート: "@robert_KIMATA BOMが無いケースが普通にあります。UTF-16BEとUTF-16LEと。"
ブラウザの挙動と仕様
- なかのん&マジックさんのツイート: "仕様をきちんと理解してる開発者が、仕様とは異なる挙動をブラウザがしている場合や、仕様を実装していない事に対して言うなら正しいよ。でも、そうじゃないケースを多々見てきてるから、うなずけない。こういう考え方がIE6一強時代みたいなのを繰り返すやろうね。 https://t.co/6BvsqjJEfJ"
- なかのん&マジックさんのツイート: "真面目に勉強されてる人がこういう事言うと、そうじゃない人は都合よく解釈するのがオチ。"
- なかのん&マジックさんのツイート: "ブラウザ側のバグで動かない場合、そのままってのはブラウザベンダからすると意外と有り難い面もある。バグを修正して他のブラウザと同じ挙動になったら壊れるアプリってのが一番困る。大抵、UA文字列等の関係ない情報でブラウザを特定して動作を変えるという、やっちゃいけない判定やってる。"
- なかのん&マジックさんのツイート: "例えば、特定のイベントの結果がブラウザによって異なるからハックを入れる場合、特定ブラウザを確認してコードを書くのではなく、得られた結果を確認して書かないといけない。前者はブラウザ側の挙動変更で壊れるが、後者は壊れにくい。"
- なかのん&マジックさんのツイート: "@okomeki バグ報告してから修正されないならベンダの責任やけど、だいたい、報告されないから、他の開発者も同じ所で同じようなハック入れたりする地獄が想像できる……"
- なかのん&マジックさんのツイート: "@okomeki あの手のヤツ、うまいこと作ってるらしく、ブラウザ側の挙動変更に強くて助かる。でも、使うのがこれだけ一般的になってても、やはり挙動変更で壊れるサイトがあって、UA文字列偽装で動くとか未だに普通にある。"
- なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeみたいにブラウザの判定じゃないとどうしようも無い場合ももちろんあるんだけど、こういうケースはブラウザ側は修正できないし、あまりしない。標準化においても、レガシーなものと定義して、代わりのものを用意して、過去との互換性に配慮する。"
- なかのん&マジックさんのツイート: "@t_daicho あの辺はグレーゾーンも多そうですね。あと、小数点の丸め誤差とか。デバイスピクセルに沿わせないとボケて見えるので。"
互換性
- dynamis (でゅなみす)さんのツイート: "Googleさんの、社内の他のサービスが壊れるのを気にせずにChromeの挙動変更を入れていく姿勢、Firefoxなど他のブラウザへの挙動変更をリクエストしていく姿勢、大好きです。 社内配慮でサービス側を直さずプラットフォーム側の改善禁止やハックを求めて何も進まない日本の大企業とは違う。"
- なかのん&マジックさんのツイート: "激しく巻き込まれてる最中でもにょる……"
- なかのん&マジックさんのツイート: "Googleさんの各種アプリのアップデートが大変ということで、古い挙動をブラックリスト形式で許可していってるところだけど、なかなかに作りが悪くない感じで、JSのコンテキストは比較的、素直なサブドメイン上で動いてて助かる。"
- なかのん&マジックさんのツイート: "これ、ユーザによってサブドメイン違うとかだと、もう無理ゲーになってくるんで。"
- なかのん&マジックさんのツイート: "XHRのアクセス先なんかは、ドメイン上に数字が含まれててスゴく怖いんだけど、まあ、そっちは今回は関係ない。"
- なかのん&マジックさんのツイート: "*.google.comとかすると、新しい挙動にしてくれと言ってきた部署のアプリがテストできないんで、個別指定ができないと困る訳ですわ。"
- Mantarohさんのツイート: "IE さえなければこれを使いたいってあるよね(遠い目) https://t.co/Z8t4RgCbXb"
- HTMLSelectElement.selectedOptions | MDN
target="_blank"
- Manabu Uenoさんのツイート: "Mac の Safari は、target="_blank" のリンクから新規タブで開いたページで「戻る」ボタンを押すとタブが閉じて元のページに戻れるのがいい。iOS の Safari もそうなってほしい。"
- llamaさんのツイート: "知らなかった。世のブラウザがみなそういう実装になったら、target=“_blank” やめましょうと説く必要はなくなるかな。他に理由があるか今ちょっと思いつかないけど。"
- なかのん&マジックさんのツイート: "きちんと調べたことないんだけど、Firefox for Androidも概ねそんな動作な感じ。Backボタンを押したときに履歴が無かったら、タブを閉じて、openerなのか単に左にあるタブなのか直前のタブなのかはっきりしないけど、何しか、割と直感的に動いてくれる。"
- なかのん&マジックさんのツイート: "Firefox for Desktopでも履歴が無い場合のタブでの戻るボタンについて似たような動作にしろっていうバグを昔見たけど、ユーザに混乱与えずに実装する「正解」が見つけられずに止まってたな。誤って戻るボタンで閉じたタブを進むボタンで開けない以上、どうしたもんかっていう感じだったと思う。"
- なかのん&マジックさんのツイート: "18808 - New windows/tabs should inherit current page, back button/go menu history https://t.co/fUL9KtHLki"
@d_toybox
- なかのんクエストさんのツイート: "個人的には、Web (public) と相容れない形式のファイルをインライン表示する手段としてのプラグインは永遠に必要だと思うんだけど、Flashみたいに「悪用」してそれに乗っかる「クリエイター」が出続けてた状況を見ると、一般ユーザーの利益になるのはプラグイン廃止よねぇ。"
- なかのんクエストさんのツイート: "Webを酷いものにしたのはFlashとそのクリエイターだし、ブラウザのプラットホームとしての可能性を結果として潰したのもFlashとそのクリエイター達という認識。"
- なかのんクエストさんのツイート: "DOMがあるからすっきりと体系化できるんだし、セマンティクス中心にスタイル指定できるようにclassが有るのに。"
- なかのんクエストさんのツイート: "Chromeのようにシェアが有るところが、強攻手段で存続させるメリットが互換性以外に無い、非標準な動作を変えるってのは、Webを健全なプラットホームとして保つのに必要なので、ガンガンやっていただきたい。"
- なかのんクエストさんのツイート: "「Firefoxだけ値や動作が違うから修正すべき」って、問題が発生してるひとつのサイトだけ見て言う人が多いんだけど、他の問題ない多数のサイトはその値前提で動いてるんですよ。プラットフォームの動作を変えるってのはそれほどにリスキーで難しい。 #もずでぶ"
- なかのんクエストさんのツイート: "比較的変更しやすい例は、値が文字列等でそれまでの値と新しい(他のブラウザと同じ)値をorで検査しているような場合や、Firefoxでのみ追加のAPI呼び出しが必要だったケースで他のブラウザに合わせる場合。ただ、これらでもUA文字列確認してて壊れるサイトが出てくる。#もずでぶ"
- なかのんクエストさんのツイート: "KeybordEvent.keyCodeの検査のように、UA名を確認しないといけない場合を除き、UA名を見て動作を変えるサイトは悪だと言うことがよくわかってもらえると思う。動作の違いやAPIの有無を確認して処理を行うのが正しいアプローチ。 #もずでぶ"
- なつき@コーディングスクール開催さんのツイート: "「WinとMacの見た目を統一したい」というのは制作者やクライアントの要望でよく聞くけど、ユーザーはそんなこと求めてないんじゃないかなぁというのが私の意見なので、単に sans-serif だけ指定してブラウザやOSに任せることが多いですね。"
- なかのんクエストさんのツイート: "なんでかGeckoがネイティブのL&Fを一番大切にするブラウザになってしまった。普通はOS付属のやつだと思うんだが……"
- なかのんクエストさんのツイート: "<input type=radio>と<input type=checkbox>はサイズ指定されてる場合はどうにかならんもんかなぁとは思うけど。"
- 九波ヒメヒコさんのツイート: "周知の機能かも知れませんが… クリスタで「フォントどうしようかな~」と一つ一つ選んで試すのが面倒!って方は、変更したいテキストを選択してから[ツールプロパティ]の[フォント]にカーソルを乗せマウスのホイールをクルクルさせてみてください。 幸せになれます。 https://t.co/GNokXKEsy5"
- なかのん&マジックさんのツイート: "マウスホイールでドロップダウンリストの選択項目が順に変わるのを有りがたいと思うケースって本当にあるのか……"
- なかのん&マジックさんのツイート: "あれは意図しない編集が発生したままで、フォームを送信する可能性があるんで、ブラウザは絶対にやるべきじゃないと思ってる。例えネイティブの動作と異なってたとしても。"
- なかのん&マジックさんのツイート: "え、HTMLのid属性ってこんだけしか定義ないの……? https://t.co/cF7I2KDDx8"
- HTML Standard
- なかのん&マジックさんのツイート: "let e = document.createElement("span"); e.setAttribute("id", "foo"); document.body.setAttribute("id", "foo"); document.body.insertBefore(e, document.body.firstChild); ってやった時に、どっちかのid属性が削除されるべきなのかどうなのか気になったんだけど……"
- なかのん&マジックさんのツイート: "altに求めてる事が属性値としては不適切になってきてるよな。後方互換性を捨てまくってるんだから、内容を持てる様にしても良かったんではって最近思える。"
- なかのん&マジックさんのツイート: "今日も一つ、HTML4時代にはそう解釈するのが普通よねって動作が、WebKit/Blinkでは違ってて、さらにHTMLの仕様で現在のWebKit/Blinkの動作に近い内容にいつの間にか変わってるし、モバイルなページでそれに依存してるところあるぞってバグに巻き込まれた。"
- なかのん&マジックさんのツイート: "<blink>要素にとどめを刺したのは私だけど、別に広告が原因じゃないよ。 https://t.co/AbDf7LNcJU"
- 広告によって滅ぼされる技術 (#3505579) | 2018年中にサードパーティCookieが無効でもWebサービスが正常に動作するか確認を | スラド
- なかのん&マジックさんのツイート: "スラドのフェイクニュースを訂正する気は無いという強い意志を感じる("
- なかのん&マジックさんのツイート: "<input type="password">を含むformはGETでは送信しないとか今のHTML仕様で縛られても良い気がする。… "
- malaさんのツイート: "パスワード入力フォームにmethod=POSTの指定がなくてJavaScriptエラーでGETメソッドで送ってしまったのではないかと推察。あくまでURLにパスワードが露出するバグとして報道されている(この規模のサービスでパスワードが平文保存なわけがないです) https://t.co/afmJz0Q1PB"
- InstagramがユーザーのパスワードをURL内で公開するミス、なぜかFacebookにもパスワードが保存されていたと判明 - GIGAZINE
- なかのん&マジックさんのツイート: "それで互換問題出るWebアプリはさすがに修正に追い込まれた方が良いだろうし。"
- しめじさんのツイート: "ブラウザのタブなんて整理つかなくなるんだから、アドレスバーで検索しようとしたタイミングで「お前それもう別のタブにあるぞ」って出してこいよ"
- なかのん&マジックさんのツイート: "Firefoxはそうしてるし、Enterキーだけでそのタブにスイッチするけど、Chromeだとボタンに「このタブに切り替え」ってボタンにフォーカスあわせないとできないのか。"
- なかのん&マジックさんのツイート: "どういう理屈で、新しいタブを作りまくることを誘導する今のUIにしたんだろう、Chromeは。"
- なかのん&マジックさんのツイート: "それにしてもドロップダウン内でボタンというウイジットにフォーカスを移動させるという行為、なんか気持ち悪いな。"
- なかのん&マジックさんのツイート: "<keygen>要素、完全になくなるのか。あれとcontenteditable絡みで一杯クラッシュバグを見つけられてたけど、ひとまずその辺は落ち着くのか。"
- HTML Standard
CSS
単位
- hsjoihs (2回+2週済)さんはTwitterを使っています 「CSS を自分で書いている方は、px や pt ではなくて mm や Q (0.25mm) などを使うことでヤードポンド法の削減に繋がります。ヤードポンド法の削減を唱えていらっしゃる方は是非どうぞ」 / Twitter
- hsjoihs (2回+2週済)さんはTwitterを使っています 「「ところでヤードポンド法は滅ぼさねばならない」とか言ってる人も、文字のサイズ指定にポイント(72分の1インチ)は使ってたりしますよね、みたいな話がありますね」 / Twitter
- hsjoihs (2回+2週済)さんはTwitterを使っています 「https://t.co/eHI4dVi8he https://t.co/utT2k9EwYM」 / Twitter
- CSS Values and Units Module Level 3
- hsjoihs (2回+2週済)さんはTwitterを使っています 「なお、これらの「インチ」があなたの画面上でヤードポンド法のインチになっているかは場合によるというのがあって……(紙に刷ったときは基本的にヤードポンド法のインチになるようになってるっぽいですね) https://t.co/BRCl2PfPwL」 / Twitter
- hsjoihs (2回+2週済)さんはTwitterを使っています 「@0x19f いやまあ、そうとも言えないのが面倒なところで…… https://t.co/QigB0voC5Z」 / Twitter
- CSS Length Explained - Mozilla Hacks - the Web developer blog
和訳
- CSS3の日本語訳集 - 血統の森 web実験小屋
- Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification 日本語訳
- CSS Basic User Interface Module Level 3 (CSS3 UI) 日本語訳
- CSS Values and Units Module Level 3 日本語訳
- CSS Text Decoration Module Level 3 日本語訳
- CSS Device Adaptation Module Level 1 (日本語訳)
- CSS Snapshot 2015 日本語訳
- CSS Snapshot 2017 日本語訳
- CSS Snapshot 2018 (日本語訳)
Mozilla
4x
- Rockridgeさんのツイート: "Fx49:CSSの色指定で、RGBA値(4桁または8桁)を指定する場合でも16進表記が可能になった。WebKitでは実装済みで、Chromeも実装予定。参照:https://t.co/aXse15IScD … https://t.co/EnboG25nyv"
- Rockridgeさんのツイート: "Fx47:CSS Scroll Snap Pointsの処理が別スレッドで非同期に行われるようになった。 / “1219296 – Ship snap points to the compositor so that we ca…” https://t.co/u9mqpFnIou"
- Rockridgeさんのツイート: "Fx49:絵文字の文字列にline-breakプロパティが正しく適用されるようになった。 / “1265631 – Supplementary-plane Unicode characters (including Emoji)…” https://t.co/TEvC0rcWaK"
- Rockridgeさんのツイート: "Fx49:CSSのbackground-position-x/background-position-yプロパティをサポート。 / “550426 – Add background-position-x and backgrou…” https://t.co/nwWRK8u59v"
- Rockridgeさんのツイート: "Fx49:ベンダープレフィックスなしのtext-align-lastプロパティをサポート。 / “1039541 – Unprefix -moz-text-align-last” https://t.co/u8iLn7d72N"
- Rockridgeさんのツイート: "Firefox 49において-webkit-のベンダープレフィックスがついたCSSプロパティや属性を多数サポートしたことで、互換性が向上した実例が画像で示されている。 / “Firefox 49 fixes sites desi…” https://t.co/Sq4QVf6w32"
- Firefox 48 は CSS calc() 関数の入れ子に対応、CSS カスタムプロパティとの併用がより便利に | WWW WATCH
- Firefox 49でChrome・Safariを基準に作成されたコンテンツの表示精度が向上 - Mozilla Flux
- Rockridgeさんのツイート: "Firefox 49において-webkit-のベンダープレフィックスがついたCSSプロパティや属性を多数サポートした背景には、日本と中国のトップ1000のWebサイトのうち、およそ20%がAndroid版Firefoxで正しく表示… https://t.co/uYOpbR0old"
5x
50
- Rockridgeさんのツイート: "Fx50:CSSのMask Imageプロパティがデフォルト有効化の予定。実装はFirefox 47から。参照:https://t.co/AzLSK26Eee / “Intent to ship: CSS Mask Image” https://t.co/UvnPjs0QDz"
- Rockridgeさんのツイート: "Fx50:Pointer Events API関係のtouch-action CSSプロパティをサポート。参照:https://t.co/ByxmjKhqYV / “Intent to enable: touch-action …” https://t.co/82VAnlvyrr"
- Rockridgeさんのツイート: "Fx50:border-image-repeatプロパティのspaceキーワード(枠線用の画像間の余白を均一にするもの)をサポート。 / “720531 – Implement border-image-repeat space…” https://t.co/is3VkL4NF7"
51
- Rockridgeさんのツイート: "Fx51:ベンダープレフィックスなしの::placeholder疑似要素をサポート。参照:https://t.co/Lhofrgdq9E / “Intent to ship: CSS placeholder pseudo-ele…” https://t.co/un6XzSEMvO"
- Rockridgeさんのツイート: "Fx51:onanimation*やontransitionendなど、CSSアニメーション関係のイベントハンドラのサポートを拡充し、WebKitと同等となった。 / “911987 – Add onanimation* eve…” https://t.co/jbyH818uNn"
- Rockridgeさんのツイート: "Firefox 51でCSSのProperties/Values API Level 1を実装予定。デフォルト無効とのこと。参照:https://t.co/ASJFWNGvPl https://t.co/oIUpVqQjZy https://t.co/wv4H8qdGgu"
52
- Rockridgeさんのツイート: "Fx52:CSS Inline Layout Module Level 3のinitial-letterプロパティが実装予定。参照:https://t.co/vBVvC7GCoL https://t.co/vG8WlvEEaj https://t.co/8TE91JAMe5"
- Rockridgeさんのツイート: "Fx52:CSS Multi-column Layout関係のプロパティをベンダープレフィックスなしでサポート。参照:https://t.co/pTT4Gjxh3j / “Intent to ship: css multi-co…” https://t.co/sodonlx7mc"
- Rockridgeさんのツイート: "Fx52:CSSのshape-outsideプロパティをサポート。参照:https://t.co/FtjLZ5EBXo / “Intent to implement: CSS shape-outside property” https://t.co/2bwRANEYkD"
- Rockridgeさんのツイート: "Fx52:Beta/リリースチャンネルでもCSS Gridがデフォルト有効化の見込み。参照:https://t.co/6BskxHvwDv / “Intent to ship: CSS Grid - Google Groups” https://t.co/UWpkArdohD"
- Rockridgeさんのツイート: "Fx52:予定通りBeta/リリースチャンネルでもCSS Gridがデフォルト有効化。 / “1217086 – [css-grid] Enable CSS Grid by default” https://t.co/yqIgcccYQc"
- Rockridgeさんのツイート: "Fx52:CSSの関数記法による色指定について、新しい構文を実装。たとえば"rgb(0 0 0 / 100%) "といった記述が可能になる。参照:https://t.co/K7UCH7raOM / “Intent to ship…” https://t.co/qL7e3cAOCA"
- Rockridgeさんのツイート: "Firefox 52/Chrome 57でサポートされるCSS Gridは、ビューポートを格子状に切り分け、行と列でボックスをコントロールする仕組み。Flexboxよりもきめ細かなレイアウトの制御が可能に。 / “CSS Gri…” https://t.co/f2iS2Ijsbv"
53
- Rockridgeさんのツイート: "Fx53:チェックボックスやラジオボタンに対し、スタイルシートで背景色やボーダーなどを指定できるようになった。 / “418833 – can't define the style of input when the type …” https://t.co/Epi4fq5unm"
- Rockridgeさんのツイート: "Fx53:CSSのMask Imageプロパティがデフォルト有効化。 / “1251161 – (mask-ship) Ship CSS positioned mask support on beta & release cha…” https://t.co/sXkFPaLC2U"
- Rockridgeさんのツイート: "Fx53:ベンダープレフィックスありのtext-align-lastプロパティを削除。プレフィックスなしの同プロパティはFx49でサポート済み。参照:https://t.co/i2aPJfYRoP / “1276808 – Re…” https://t.co/6GayvnZDsn"
- Rockridgeさんのツイート: "Fx53:キャレットの色を変更するCSSのcaret-colorプロパティをサポート予定。参照:https://t.co/CDCuV6IdZP / “Intent to implement and ship: CSS caret…” https://t.co/pCo1F85bll"
- Rockridgeさんのツイート: "Fx53:CSSのdisplayプロパティでflow-rootの値をサポート。floatの解除に使える。 / “1322191 – Implement CSS `display: flow-root` (modern clear…” https://t.co/FLXEwcIOco"
54
- Rockridgeさんのツイート: "Firefox 54にCSSのtext-justifyプロパティが実装される予定。テキストの均等割り付けが指定できる。参照:https://t.co/h3lxcUTEL8 / “Intent to implement: CSS …” https://t.co/cKZB0RpCC6"
- Rockridgeさんのツイート: "Fx54:CSSのappearance:autoとappearance:noneのプロパティをサポート。-webkit-appearanceもエイリアスとして使用可能。参照:https://t.co/EaLwvF2nRE https://t.co/uTCySTdtBy"
- Rockridgeさんのツイート: "Fx54:Facebook使用時、CSSアニメーションの非同期処理が行われない場合がある問題を修正。 / “1339578 - OMTA doesn't trigger for 4x4 layers leading to CPU…” https://t.co/olYbboRjDW"
- Rockridgeさんのツイート: "Fx54:clip-pathがCSS Shapesの基本シェイプ(basic shape)に対応。参照:https://t.co/Lonr4Gv3B5 / “1247229 - (basic-shape-ship) Ship b…” https://t.co/YyG6Z1RM5A"
- CSS Shapes の新しい文法 | Adobe Creative Station
55
- Rockridgeさんのツイート: "Fx55:CSSのtext-justifyプロパティがデフォルト有効化。参照:https://t.co/15ge7l04dl / “Intent to ship: CSS text-justify property” https://t.co/DuVp3M8ex2"
- Rockridgeさんのツイート: "Fx55:ページ読み込み時に表示されるスロバーがCSSアニメーションを用いることにより別スレッドで処理されるようになった。 / “759252 - Use CSS animations for the loading and c…” https://t.co/6d7Sf4FyQS"
- Rockridgeさんのツイート: "Fx55:CSS Variables(CSSカスタムプロパティ)を無効にするための設定が削除された結果、常時有効化された。 / “1312328 - Remove CSS pref "layout.css.variables.e…” https://t.co/ECXb0hrRaG"
- Rockridgeさんのツイート: "Quantum CSS(Stylo)はFirefox Nightly 55に投入され、Firefox 57でデフォルト有効化となる見通し。 / “TPE-Layout/Dashboard - MozillaWiki” https://t.co/EYNMjZjLL0"
- Rockridgeさんのツイート: "Fx55:"display: flow-root"のサポートを設定から無効にできないようにした。 / “1365163 - Remove the layout.css.display-flow-root.enabled pref…” https://t.co/unD5kcmZNJ"
56
- Rockridgeさんのツイート: "Firefox Nightly 56に搭載されているCSS Gridインスペクタの改善点を紹介した記事(動画あり)。レイアウトパネル、ボックスモデルパネルともに直感的な操作を実現した。 / “Powerful New Addit…” https://t.co/GpGO5Ad5ov"
- 特定のマルチカラムレイアウトで、バランスが崩れたり、ランダムに要素が欠落する場合があります (リグレッション) | Firefox サイト互換性情報
57
- Rockridgeさんのツイート: "Fx57:タブの切り替えにCSSのsmooth-scrollを使用し、パフォーマンスを向上させた。 / “1356705 - 28ms uninterruptible reflow at set_scrollPosition@c…” https://t.co/cfBET6gzul"
- Rockridgeさんのツイート: "Firefox 57でCSSのfont-displayプロパティがデフォルト有効化へ。Quantum CSSでもfont-displayプロパティは使える(むしろ無効化する設定がない)らしい。参照:… https://t.co/WvgaAElbjI"
58
- Rockridgeさんのツイート: "Firefox 58でMedia Queries Level 4のInteraction Media Featuresをサポートする予定。参照:https://t.co/csJc8naMKv / “Intent to imple…” https://t.co/O1WgOBHzri"
59
- Rockridgeさんのツイート: "Fx59:CSSのoverscroll-behaviorプロパティをサポート。参照:https://t.co/IBSIGPNiYh / “951793 - Add support for 'overscroll-behavior'” https://t.co/4tqc2LDwZf"
- Rockridgeさんのツイート: "Fx59:CSS Shapes Module Level 1の仕様の一部をデフォルト有効化。 / “Intent to ship: CSS Shapes Module Level 1 (partial)” https://t.co/LsAxDiycqd"
- Rockridgeさんのツイート: "Fx59:メディアクエリ内でcalc()をサポート。 / “1396057 - stylo: Bring back calc support inside media queries” https://t.co/mwNLdCOmow"
- Rockridgeさんのツイート: "Fx59:CSS Gridが常時有効化。 / “1398492 - Remove the "layout.css.grid.enabled" preference” https://t.co/9E9xzYkiE9"
6x
60
- Rockridgeさんのツイート: "Firefox 60で、CSS Transform Module Level 2のtransform/rotate/scaleプロパティが実装される見込み。参照:https://t.co/4JIQzJACte … https://t.co/gSjMIshNDI"
- Rockridgeさんのツイート: "Fx60:-moz接頭辞付きのtransformプロパティが削除される見込み。 / “Intent to unship: Legacy -moz-transform syntax.” https://t.co/f4cY5j6Xqb"
61
- Rockridgeさんのツイート: "::-moz-selection疑似要素のベンダープレフィックスがFirefox 61で外れる模様。参照:https://t.co/3F9Hb7XdKg / “Intent to unprefix: ::-moz-selecti…” https://t.co/kzHjXENxzT"
62
- Rockridgeさんのツイート: "Fx62:CSSのshape-outsideプロパティがデフォルト有効化。 / “Intent to ship: shape-outside” https://t.co/9o62gL7bjO"
- Rockridgeさんのツイート: "Firefox 62はCSS Shapesをサポートしているので、Web開発者はページ内の画像や文章を複雑な形に配置できる。ウェブ開発ツールのインスペクターにCSS Shapesの編集機能が付いており、直感的な操作が可能。 https://t.co/iFdlODvEXX"
63
- Rockridgeさんのツイート: "Fx63:疑似要素だけでなく、通常の要素においても、contentでurlを指定すると画像等を表示できるようになった。WebKit/Blinkとの互換性が向上する。 / “215083 - (content-url-elemen…” https://t.co/Czkndktzpl"
- Rockridgeさんのツイート: "Fx63:Windows版で、CSS Media Queries Level 5のprefers-reduced-motionをサポートした。Mac版はFx64がターゲット。参照:https://t.co/Yro7Sk5i2s … https://t.co/LzEKwdlkhy"
- Rockridgeさんのツイート: "Fx63:巨大なテーブル要素内に多数の項目があり、display:noneも適用されるという状況において、テキストの動的処理を高速化。 / “1330375 - interleaved innerText calls and d…” https://t.co/asITEbVrBp"
- Rockridgeさんのツイート: "Fx63:"white-space: nowrap;"の指定がされていてもfloatとの組み合わせで改行が発生する問題を修正。 / “488725 - float pushed down one line with white-…” https://t.co/1yFTHTce1W"
64
- Rockridgeさんのツイート: "Firefox 64では、"-webkit"のベンダープレフィックス付きCSSセレクタが、未サポートのものでもCSSの適用対象となる。参照:https://t.co/Dqlyqvg9cf … https://t.co/ykcLxbsZfj"
- Rockridgeさんのツイート: "Fx64:CSSのscrollbar-colorプロパティとscrollbar-widthプロパティをデフォルト有効化。スクロールバーの色や幅を調整可能に。 / “1492012 - Enable scrollbar prope…” https://t.co/4lxs1vMtSx"
65
- Rockridgeさんのツイート: "Fx65:CSSアニメーションとCSSトランジションの各処理を非同期化することでパフォーマンスを改善した。 / “1502026 - Buy iPhone page animation seems janky” https://t.co/bl2JCqcGyc"
- Rockridgeさんのツイート: "Fx65:border-image-repeat/background-sizeの処理結果について他のブラウザとの互換性を向上させた。 / “1501261 - serialization of border-image-rep…” https://t.co/5LuaicF7sQ"
- Rockridgeさんのツイート: "Fx65:-webkit-appearanceプロパティの値としてmeter、progress-barおよびtextareaをサポート。 / “Firefox 65 for developers | MDN” https://t.co/jbtmpUUqhJ"
Twitter
@rockridge07
- Rockridgeさんのツイート: "Geckoは1pxを60として整数値でCSSを処理する(浮動小数点を用いない)。計算の途中で小数点の切捨てが入ると、WebKit/Blink/EdgeHTMLとは結果が違ってくる場合がある。 / “How CSS width i…” https://t.co/0e2ZSydzms"
- Rockridgeさんのツイート: "FirefoxにCSS Typed OM Level 1を実装することが検討されている。参照:https://t.co/DeMTXH7cPe / “1278697 – Implement CSS Typed OM Level 1…” https://t.co/iknGkA2aoK"
- Rockridgeさんのツイート: "ServoがCSSのキーフレームアニメーションをサポート。参照:https://t.co/43IaS3EKtr / “These Weeks In Servo 71” https://t.co/KA3F1pUTdt"
- Rockridgeさんのツイート: "Houdiniタスクフォースで検討中のCSS関係の仕様について、ブラウザごとの実装状況を示す。2016年8月9日現在、Chromeが先行し、Firefoxが追う状況。それ以外のブラウザは、走り出してもいない。 / “Is Hou…” https://t.co/LmXAUhGvRU"
- Rockridgeさんのツイート: "Stylo/Servo/Firefox/ChromeがサポートするCSSプロパティを一覧にまとめて比較できるようにしたもの。StyloはGeckoに実装中のServoのスタイルシステムのこと。参照:… https://t.co/xsIsgOE6f3"
- CSS properties list
- Rockridgeさんのツイート: "ServoがCSS Gradientsをサポート。Styloを通じてGeckoと処理を比較できるようになった。 / “twis-81” https://t.co/CgDYtxJrop"
- Rockridgeさんのツイート: "今後、Geckoに実装される新しいCSS機能は、Servoにも同時に実装される見込み。Quantum CSSへの移行時に機能の減退が起きないようにするための措置だ。 / “Ensuring new CSS features ar…” https://t.co/MnOqG7yqqc"
- Rockridgeさんのツイート: "Firefoxでブロックコンテナ一般においてBox Alignmentプロパティ群をサポートする予定。参照:https://t.co/IgjA7cuoW7 https://t.co/vFI22Lz9dF / “Intent to…” https://t.co/gza9TxODbT"
- Rockridgeさんのツイート: "GeckoのHoudiniサポートが具体化しつつある。CSS Painting API Level 1を実験的に実装し、利用例やレンダリングパフォーマンスなどを見ていくという。参照:https://t.co/91M9OYIoAS https://t.co/pM0YNq2JTx"
- Rockridgeさんのツイート: "-webkit-line-clampプロパティはmax-linesプロパティとして標準化される模様。Mozillaが実装するのもmax-linesプロパティとなる。参照:https://t.co/b8wJQ1O36t 情報提供感謝… https://t.co/P5LnrsQG7R"
- CSS Writing Modes ◆ 24 ways
- Rockridgeさんのツイート: "clip-pathとCSS Shapesの基本シェイプ(basic shape)を組み合わせることで可能になる様々な表現のデモ。HTML/CSSの内容もCodePen上で確認できる。 / “CSS Shapes, clippin…” https://t.co/zD9YksHWx3"
- CSS Shapes, clipping and masking – and how to use them ★ Mozilla Hacks – the Web developer blog
- Rockridgeさんのツイート: "MDN Web DocsにFlexboxの紹介記事が追加された。CSS Gridとの連携・役割分担を意識したものらしい。 / “New flexbox guides on MDN – Mozilla Hacks – the We…” https://t.co/utXJs2Prav"
- New flexbox guides on MDN – Mozilla Hacks – the Web developer blog
- Rockridgeさんのツイート: "CSS Box Alignmentのチートシート。解説はこちら。https://t.co/tnqYqdwKFI / “CSS Alignment Cheatsheet” https://t.co/9QHqvRj5qo"
- Demystifying CSS alignment – Patrick Brosset – Medium
- CSS Alignment Cheatsheet
- Rockridgeさんのツイート: "CSS GridとCSS Multi-Columnsを組み合わせると、ユーザーのディスプレイサイズに応じた柔軟なデザインが可能になるという話。 / “CSS Grid + CSS Multi-Columns = ♥ – Patr…” https://t.co/lkgJNfvBZq"
- Rockridgeさんのツイート: "Mozillaが2018年にCSS関連で注力する分野。Fonts Level 4/Motion Path/Sizing/Shapes/Scroll Snap update/Containment/Values and Units … https://t.co/X33BKsMzfE"
- Rockridgeさんのツイート: "FirefoxがサポートするCSSプロパティの数について。2004年のFirefox 1.0当時は100に満たなかったが、13年を経た現在、300近くになっている。 / “Florian Scholzさんのツイート: "CSS …” https://t.co/Lk8dLVcMUf"
- Rockridgeさんのツイート: "CSS GridをWebアプリのUI構築に使えば、Flexboxよりも簡潔なコードで済むという話。 / “CSS Grid for UI Layouts – Mozilla Hacks – the Web developer b…” https://t.co/OKk1OMmK5K"
- Rockridgeさんのツイート: "FirefoxでCSS subgridの実装を開始。グリッド内に子グリッドを設定可能になるらしい。 / “Intent to implement: CSS subgrid” https://t.co/yNqUTod369"
- chikoskiさんのツイート: "Firefoxの新しいCSS処理系(stylo)の話。@linclark の記事はいつも素晴らしい。簡潔で、わかりやすくて、ユーモラス。https://t.co/sXkeAgoE6O"
- Inside a super fast CSS engine: Quantum CSS (aka Stylo) ★ Mozilla Hacks – the Web developer blog
- Mantaroh@media=printさんのツイート: "私も先ほどソースを見て初めて知った。edge と unwriteable は 1/00 インチで指定されてるんだ・・・一方 margin は普通にインチ指定・・・謎だろ"
- mozmm CSS 単位への対応が打ち切られました | Firefox サイト互換性情報
- Mantaray@Devさんのツイート: "Jen Simmons 氏による CSS Grid の御法度。 https://t.co/qdtv4Sj8cd"
- 9 Biggest Mistakes with CSS Grid – Mozilla Hacks – the Web developer blog
- Makoto Kato ︎︎さんのツイート: "最近聞いたものの中で最も...なやつがautolandに入った https://t.co/rlIKrMdUaI overflow:hidden;はviewportの存在次第で無視されるというWebKitとBlinkの変な動作に合わせる話。それどうかと思うけどこの変な動作に依存するサイトが多すぎるからその動作にせざるを得なくなった"
- 1423013 - Content that overflows the ICB on an overflow:hidden page is "out of reach"
- Šime Vidasさんのツイート: "Do you find scroll chaining annoying? There’s a simple way to prevent it. Apply this CSS to the nested scroll container (or <body> of iframed document): { overscroll-behavior: contain; } More info: https://t.co/GcQPXcysqe… https://t.co/DmFSu45RRx"
- なかのん&マジックさんのツイート: "Firefoxはかなり昔からスクロールターゲットをタイムアウトするまで変更しないようにしてこの不快な動作にならないようにしてる。カーソルがドラッグ開始するだけの距離動くとキャンセルされるけど。"
- なかのん&マジックさんのツイート: "それにしても、スタイルシートにしちゃうの違和感あるな。ime-modeと一緒で。ユーザースタイルシートでコントロールできるのは理にかなってるけど。"
- CSS で計算(四則計算)が行える calc() 関数を使ってみよう | WWW WATCH
- CSS - MozillaWiki
- won't fix: Quantum CSS (Stylo)
- CSS Grid and Grid Inspector in Firefox — Mozilla
- 区分分断の変換規則(2017/4/25 追記アリ) - おいしい
- Supporting Referrer Policy for CSS in Firefox 64 | Mozilla Security Blog
Google
- Rockridgeさんのツイート: "Chrome 52がサポートするCSS Containmentは、ブラウザによるスタイル/レイアウト/描画の処理が行われる範囲を開発者が限定できるようにするもの。適切に使えばWebページの表示速度が大きく改善される。 / “CS…” https://t.co/bE2A13RlP3"
- Google Chrome、ウェブページを高速表示する新機能などを実装へ -INTERNET Watch
- WebAssembly実装プレビュー、Chrome 49新機能など─2016年3月のブラウザ関連ニュース振り返り | HTML5Experts.jp
- Google Chrome 34リリース、レスポンシブイメージのサポートなどが追加される | OSDN Magazine
- “CSS Motion Path”が初期状態で有効化された「Google Chrome 46」がベータ版に - 窓の杜
- [Backspace]キーで前のページへ戻る機能を削除した「Google Chrome 52」が正式版に - 窓の杜
- Rockridgeさんのツイート: "Chrome 56でposition:stickyを改めてサポート。なお、Firefox 32でサポート済み。 / “position:sticky is back in Chrome | Web | Google De…” https://t.co/dlIczTg4kb"
- Google Developers Japan: Chrome 52 ベータ版: CSS Containment、よりシンプルなパフォーマンス評価、Service Worker からのレスポンスのストリーミング、豊富な Web Push オプション
- Google Chrome 56 から、position: sticky;のフラグなしサポート開始 | フロントエンドBlog | ミツエーリンクス
- 「Google Chrome 57」ベータ版が公開、“CSS Grid Layout”をサポート - 窓の杜
- “CSS Grid Layout”をサポートした「Google Chrome 57」が正式版に ~脆弱性も修正 - 窓の杜
- 本の虫: Blink、新機能に対して新たなベンダープレフィクスを追加しない決定
- “マテリアル”になった「Google Chrome 69」がベータ版に ~「AV1」動画もサポート - 窓の杜
- なかのん&マジックさんのツイート: "たまにChromeで表示確認しようとすると、CSSのキャッシュ捨てなさすぎやろって思うんやけど、常用してて、更新されたサイトのレイアウト崩れるとかないんかな??"
- 白鷹(しろたか)🦅さんのツイート: "devツールを開いて更新ボタンを長押ししてキャッシュを除くが開発のときは面倒でなくて、一般にリリース時は適当なリクエストパラメータを与えてそれを更新することで対処するんです… "
- なかのん&マジックさんのツイート: "リクエストパラメーターとは?… "
- 白鷹(しろたか)🦅さんのツイート: "こんな感じで .css?XXXX 他にもwebpackでビルドすると生成されるファイルがランダムなハッシュっぽいファイル名になるので全く考えなくてよかったり… "
- なかのん&マジックさんのツイート: "あーなるほど。… "
Apple
- Rockridgeさんのツイート: "次期Safari 10.0がCSS Font Loading API/WOFF 2フォント/CSSのunicode-rangeデスクリプタをサポート。Firefoxでは全てデフォルト有効化済み。 / “Improved Font…” https://t.co/0EMSLAoG5R"
- Rockridgeさんのツイート: "次期Safari 10.0がCSS Color Level 4のcolor-gamutメディアクエリをサポート。sRGBを超えた色空間を生かせるらしい。 / “Improving Color on the Web | WebKit” https://t.co/ykHUviojgZ"
MS
- Rockridgeさんのツイート: "Windows 10 Creators Update後のMicrosoft EdgeはCSSカスタムプロパティをサポートしている。 / “CSS Custom Properties in Microsoft Edge - Mic…” https://t.co/YJDjAHBBdG"
- Rockridgeさんのツイート: "Microsoft Edgeのバージョンアップにより主要なブラウザすべてがCSS Gridをサポートするようになった。約20年前からグリッドレイアウトの構想はあったが、現在の仕様の始まりは、IE10に実装されたGrid Layou… https://t.co/erbLdAXv3O"
- TOYAMA Naoさんのツイート: "Edge 15 から CSS の text-combine-upright プロパティに対応したそうだけど、(IE 時代からの -ms-text-combine-horizontal 含めて) 1em より幅の狭い文字を 1em まで引き伸ばしちゃうのはなんなの? https://t.co/HNu0Xkfxwc の「4」とか Edge だと引き伸ばされて不格好に見えるんだけど。"
- TOYAMA Naoさんのツイート: "とりあえず Microsoft に報告した。 https://t.co/9qlLAYHQ9p"
W3C
- Cascading Style Sheets
- CSS current work & how to participate
- CSS Grid Layout Module Level 1
- CSS Text Module Level 4
- CSS Text Decoration Module Level 4
- CSS Color Module Level 3
- Exploring CSS property definitions | W3C Blog
- CSS Fonts 3 is a W3C Recommendation | W3C Blog
- W3C Strategic Highlights: Strengthening the Core of the Web (CSS) | W3C Blog
CSS Object Model (CSSOM)
- CSS Object Model (CSSOM) (日本語訳)
- オブジェクト モデルの構築 | Web | Google Developers
- CSS Object Model - Web API インターフェイス | MDN
- CSSOM
- CSS Object Model (CSSOM)
- CSSOMとパフォーマンス - Qiita
HTML4・CSS2
- CSS 2.1仕様 日本語訳 EPUB版 - 達人出版会
- CSS2 の CSS1 からの変更点 - CSS Dencitie
- Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification
- (メモ)CSS 2.1の更新版のなまえ - 水底の血
HTML5・CSS
- ここ数年のブラウザのデフォルトスタイルシート。縦書きとかHTML5とか。|Web Design KOJIKA17
- HTML Standard
- HTML Standard — Rendering(日本語訳)
CSS Fonts Module Level 4
- 謎のCSS総称フォントファミリーfangsongについて - 水底の血
- 日本語向けフォントスタックの現状 - yuhei blog
- CSS Fonts Module Level 4
- 宋朝体 - Wikipedia
CSS in JS
- Webサイト開発にCSS in JavaScriptを使うのはやめよう | POSTD
- Reactと一緒に使う時のCSS in JSのライブラリ選定とか所感とか - Qiita
- CSS in JS(Elm)したら想像以上に良かった - ジンジャー研究室
- JSS
- All You Need To Know About CSS-in-JS – Hacker Noon
- CSSinJS
- MicheleBertoli/css-in-js: React: CSS in JS techniques comparison
- CSS in JS - Material-UI
- SPAにおけるCSSについて、ひとつの解 - エンジニアをリングする
- Comparing CSS in JS Libraries
Tailwind CSS
- 渋川よしきさんはTwitterを使っています 「Tailwind CSS、今まで「えー、そんなのいらないでしょ」と思っていたが、技術ブログのネタでちょびっとついでに使ってみたら、これはとても良いものだった。人類にはCascadingは不要だったのでは」 / Twitter
- 渋川よしきさんはTwitterを使っています 「・・・というのは極端だとして、コンポーネントで作っていく今の時代だとこれがクラス同等であるのでクラス名をつけるという行為がそもそも「ムダ」だったんだなって。あと、ドキュメントの検索が良すぎる。検索がAPIの一部という感じ。」 / Twitter
- 💉*2+⏱=8/7さんはTwitterを使っています 「@shibu_jp 分かる。最初はclass=red はやめろって言われて育った世代なのでコレは……って思ってたんだけど、今までクラス単位で纏めていたコンポーネントの属性が reactやvue のお陰でdom 構造まで含めた纏めが出来るようになったから必要なくなった。なのでどちらかと言うとモダンcssなんだなぁと感じた」 / Twitter
Source Map
- SassのデバッグにSource Mapsを使うべきたくさんの理由 - ROCHAS
- CSSのSource Map - ウェブログ - Hail2u.net
- sourcemap: 圧縮されたJSやCSSと圧縮前のコードの対応関係情報を持ったファイル - general
- gulp で、CoffeeScript をコンパイルして concat して SourceMap 出力して SCSS もコンパイルして
- sourcemap を使いたい - Qiita
- Introduction to JavaScript Source Maps - HTML5 Rocks
- 多段SourceMapの対応方法とライブラリ | Web Scratch
- 多段SourceMapとASTの現状について話してきた | Web Scratch
Normalize.css
- Normalize.css: Make browsers render all elements more consistently.
- [CSS]CSSリセットとは異なる、Normalize.cssの特徴や使い方などの解説 -About normalize.css | コリス
- normalize.cssで使用されている各スタイルがどのように機能しているか解説 | コリス
- Normalize.cssを使ったコーディングの注意点とリセットCSSとの違い | Cappee Design
- なぜリセットではなく Normalize.css を使うのか
- Normalize.css v4.0.0 変更点まとめ - Qiita
- 【CSS】Reset CSSやNormalize.css…。CSSリセットは何を使うべきか比較してみた | unitopi - ユニトピ -
- Bootstrap v4で追加されたRebootというスタイルシートを見てみる | フロントエンドBlog | ミツエーリンクス
Sass
- Sass - Wikipedia
- Sass (stylesheet language) - Wikipedia
- 爆捗! WordPressテーマ作成ショートカット(3):CSSコーディングで泣かないためのSassの基礎知識と10の利点 (1/3) - @IT
- これからSassを始めたい人へ!導入手順をまとめてみた(Dreamweaver対応) | 株式会社LIG
- CSSのメタ言語Sass(SCSS)、LESSの完全入門 - Qiita
- CSSを超効率化する!SASSの基本と導入方法まとめ | Tech2GO
- サンプルソース | Web制作者のためのSassの教科書 - 公式サポートサイト
- Sass(SCSS)は難しくないよ!私なりの使い方をご紹介! | Tips Note by TAM
- とほほのSass入門
Compass
- CSS書くならCompass使った方がいいよ。SASS使ってる人なら特に。
Enduring CSS
- さねさねさんのツイート: "僕はCSS全く得意ではないんですが、CSS設計は色々あった結果、Enduring CSSみたいな思考法でBEMしてblockとReact類のcomponentを1対1させるのが、勝ちもしないけど負けもしなくていいのではないかと思うようになって来ました"
- さねさねさんのツイート: "BEMで概ね完成系に至っていると思うので、CSS in JSは好きではない"
- さねさねさんのツイート: "FLOCSSみたいな分け方してBEMっぽいことしてEnduring CSSですよ!"
- さねさねさんのツイート: "勝つためのベストプラクティスよりも負けないためのアンチパターン避け技能ですよ"
- Enduring CSSの設計思想 | CodeGrid
- 連載 | Enduring CSS | HTML5Experts.jp
- 最強のCSS設計()のヒントになりそうな考え方いろいろ - Qiita
- ECSSの概要と考え方のまとめ - Qiita
- 【CSS】ECSSまとめ
- Enduring CSS
- Enduring CSS - by Takazudo
cssdb
- cssdb
- csstools/cssdb: A database of staged CSS features
- PostcssとCSS Level 4の現状と今後のCSSプリプロセッサとの付き合い方を考える - Qiita
POSTD
- CSS Variables(カスタムプロパティ): なぜ、関心を持つべきか? | プログラミング | POSTD
- CSSコーディングテクニック : 詳細度、単位、flexbox、mixin | プログラミング | POSTD
- あなたはCSSプロパティ”display”をどのぐらい知っているだろうか? | デザイン | POSTD
- CSSになり損ねた言語たち | デザイン | POSTD
Qiita
- 最低限知っておくべきCSSの基礎 - Qiita
- CSS設計の基礎概念 - Qiita
- html floatの基本 高さを認識させる - Qiita
- QiitaのCSS構成2016 - Qiita
- 新しめのCSS設計まとめ 〜2016年冬〜 - Qiita
- 2018年のfont-family指定 - Qiita
- CSS界隈は今どうなっているのか、そこで素人な私が思ったこと - Qiita
- ページ表示を速くするCSSの記述方法 - Qiita
- CSSアーキテクチャについて軽くまとめてみた - Qiita
- ぼくの辿り着いた濃いめのtext-shadow - Qiita
Wikipedia
- Cascading Style Sheets - Wikipedia
Twitter
その他
- Kazuho Okuさんのツイート: "<link rel=preload as=style href=foo.css onload="this.rel='stylesheet'"> で優先度の低いCSSを遅延適用できるのか。なるほどー"
- 積炭酸さんはTwitterを使っています: "なので例えば10ptと指定しても、画面上のサイズが10pt≒3.5mmで表示されるわけではなく10ptを96dpi換算して13.3ピクセルが適用される。1ピクセルがどのくら
- 魔法の蒸留水さんのツイート: "ここにサンプルがあるから勉強できそう https://t.co/0X1EVnTUbS #html5jplat"
- いいかんじ💯さんのツイート: "もうSafariとChromeはCSS的には全く別物と割り切って書いた方が良い、という事を再確認した夜であった (initial キーワードの解釈が違うとかそんな…)"
- Teppei Satoさんのツイート: "またApple独自仕様!IEか!と言われてるけど viewport-fit=coverは元々LG陣営がCSS Round Displayとして標準化を進めてたのね https://t.co/9wbX69p7tM constantは提案中"
- CSS Round Display Level 1
- 鹿野壮@CSSNite・frokan登壇さんのツイート: "Edge 15まではGridの古い仕様のみ対応し、ベンダープレフィックスも必要だった。 16ではChrome等他ブラウザと同じGridの仕様に準拠、プレフィックスも不要に。 Gridが全モダンブラウザで使える時代に。 https://t.co/eNiEk1zVqx #css https://t.co/t3Ao8dkHaV"
- Tsukasa #01 [要出典]さんのツイート: "ふむ。等幅フォントの幅を CSS で指定する場合には、ch 単位 ("0" の横幅) が有用そう。"
- Tsukasa #01 [要出典]さんのツイート: "ちなみに、全角幅については CSS4 のモジュールでは "水" 字の幅を示す "ic" 単位が追加予定らしい。"
- Jen Simmonsさんのツイート: "According to Can I Use (and Stats Counter), global support for CSS Grid (unprefixed) now at 84%. Support for Flexbox at 94%. 84% to 94% #timetolearncssgrid… https://t.co/Kw0UdsVXzA"
- Fadisさんのツイート: "画面の端の方が削れていて見えない機器が増えてきた事を受けて、CSSに「この画面四角い?」「見えないかもしれない領域も表示に使って」「見える領域に沿ってコンテンツを配置しろ」「枠線を画面の形に合わせろ」をやるための仕組みが提案されているらしい https://t.co/mBCqyjUrQt"
- CSS Round Display Level 1
- 渡久地 信之さんのツイート: "flex,CSS3から使えるけどバグも多いのでアレ(主にIE11)"
- MDN Web Docsさんのツイート: "break-before, break-after, and break-inside are implemented in Firefox 65, and the legacy page-break-* properties now alias to them. For example, see: https://t.co/c5w6HzjP3X"
- break-before - CSS: Cascading Style Sheets | MDN
- 池田 泰延 / JSコードレシピ集を書きましたさんのツイート: "CSSのFlexbox使いがfloatを老害とdisって話題になってますが、CSS Gridの便利さはもっと知られていいと思う。 display: gridだとメディアクエリーすら書かずに4行でレスポンシブ対応できて超便利。… "
- Ryosuke IWANAGA 🇨🇦さんはTwitterを使っています: 「Tailwind CSS 本当に最高。今までWebのデザインがまるでできなかったのは、Bootstrap みたいなフレームワークはカスタマイズしようとするとフレームワークの知識が不可欠だけど汎用性なくてやる気出ないし、生でCSS書けるほど要素に詳しくなれない。そのちょうど間。」 / Twitter
- Ryosuke IWANAGA 🇨🇦さんはTwitterを使っています: 「程よく生のCSSだけど、あれを変えるのにどの要素だっけ?って考えなくてもクラスから探せばいい。色やサイズも荒い粒度でデフォルト提供されてるので、ちょこちょこいじるのも簡単。」 / Twitter
文字列選択ブロック
- tkr@受験なので低浮上さんのツイート: "文字列選択出来ないサイトあったからJSブロックしたのに選択出来ないんだけどどういう仕組みだ"
- tkr@受験なので低浮上さんのツイート: "これ入れたら出来た… "
- user-select - CSS: カスケーディングスタイルシート | MDN
縦書き
- TOYAMA Naoさんのツイート: "Edge で文書全体を縦書き表示にすると、JS で取得するスクロール位置の方向も入れ替わってしまう。pageXOffset プロパティなのに y 軸方向の長さが返ってくるとはいったい……。 https://t.co/obhVdpshIU"
- TOYAMA Naoさんのツイート: "とりあえず Microsoft に報告した。 https://t.co/t93Ey12WKj"
- TOYAMA Naoさんのツイート: "CSS で縦書きの機運が高まっているそうだけど、ちょっと触るだけでぽろぽろとブラウザ間の挙動の違いが見つかる (実装のバグも、仕様に明記されていない点も)。そういうのを片っ端からブラウザベンダに報告していけば、2 年後くらいにはだいぶ相互運用性を保てるようになっているのでは。"
- なかのん&マジックさんのツイート: "だいたい、私の関わった仕様、実装し出すと、これどーすんの?みたいなのを大量に見つけてやりとりすることになってる。実際に複雑なケースを書く、Web開発者さんならなおさら見つけるだろうなと。本当にバグ報告しないと、仕様も実装も前進できないので損するのはWeb開発者さん自身ですよ、と。"
- TOYAMA Naoさんのツイート: "CSS での縦書き表示、Edge は IE 時代からの縦書き最古参だけあってかつて検討された挙動 (logical value と physical value の読み替えや orthogonal flows の扱いなど) をいくらか残している、Chrome は描画が乱れることがあるが LayoutNG の導入に従い Canary ではかなり改善、"
- TOYAMA Naoさんのツイート: "Firefox は最後発だけあって安定した挙動、あとは principal writing mode を body 要素から取れるようになれば ( https://t.co/6N1lWeRIQq ) ほぼ問題なしではといった印象。"
- TOYAMA Naoさんのツイート: "……と言ったけど、Chrome はフォームコントロールの扱いや、orthogonal flows と絶対配置の組み合わせでの位置のずれ、Firefox は flexbox との組み合わせ (Nightly では修正済み) など、穴はいくらでもありそう。"
- なかのん&マジックさんのツイート: "そこまでやってる人は皆無だろうけど、ブラウザにバグられてては困るケースは、web platform testを書いて、いずれかのブラウザベンダ経由で登録するってのはかなり有効かつ、みんなが幸せになれる方法。ブラウザの開発時に自動テストで走らせるからね。"
text-decoration-skip
- ながしまきょうさんのツイート: "Chrome 57でtext-decoration-skip: ink実装、フラグなしになったけど、まだダメそうw https://t.co/2I8owNAYqc https://t.co/6H5Rk7F1m7"
- なかのん&マジックさんのツイート: "Chromeはこれ、改善してからデフォルト有効にしたのかな?"
- なかのん&マジックさんのツイート: "Canaryでうちの日記を表示してみたけど、下線の表示、微妙だな……あんまし綺麗に見えない……"
- なかのん&マジックさんのツイート: "なんか、下線がちぎれてるっていう印象で綺麗に見えない…… Google Chromeの新しい下線表示 (text-decoration: underline; text-decoration-skip: auto;)。 https://t.co/UDKf7vOEKX"
- なかのん&マジックさんのツイート: "Chromeの新しい下線表示のサンプルで見ると綺麗なんだけど、フォントや文字列によっては綺麗には見えないっぽいので、なんか微妙だなぁ。サンプルだけ見ると、Geckoもやらないとって思えるけど(私はやる時間全くとれないけど)。"
@chikoski
- chikoskiさんのツイート: "CSSにはwriting-modeという属性があります。これを使うと文字の方向をコントロールして、雑誌のような文字組みができます。雑誌記事を例に、文字組みを解説した@jensimmons による記事が公開されました:https://t.co/8AUMzTe0El"
- chikoskiさんのツイート: "属性ではなく、プロパティというのが正しい言葉でした。訂正させていただきます https://t.co/nKtFJOEZFX"
- chikoskiさんのツイート: "CSSGridでは列や行、セルに名前をつけて、その名前を使ってレイアウトできるのか。便利 #html5jplat"
- chikoskiさんのツイート: "たて、よこが混じる写真リストの実装も簡単にできるのはよいなー #html5jplat"
- chikoskiさんのツイート: "GridとFlexboxとの関係について。Flexboxは1次元のレイアウトに関する仕様で、Gridは2次元。 #html5jplat"
- chikoskiさんのツイート: "Gridもアニメーションと組み合わせてつかえるのか。おもしろいことできそう感 #html5jplat"
- chikoskiさんのツイート: "Gridはほとんどのブラウザでサポートされてるけど、サポートしてるかどうかはCSS feature query使えばできる。 #html5jplat"
- Kinuko Yasudaさんのツイート: "Chrome Canary から <body> 以降にロードされる stylesheets はそこまでのレンダリングをブロックしなくなります。critical じゃない CSS はそうするべし thanks to @patmeenan!… https://t.co/S8UdQOv55B"
- Yoav Weissさんのツイート: "Yay! @patmeenan landed sane CSS loading behavior in Chrome Canary. Now you can load non-critical CSS in the <body> and it won't block rendering of everything above it!!… https://t.co/i5TXiwTKkD"
- Patrick Meenanさんのツイート: "FYI, as of today's canary it is enabled by default and should ship in 69.… "
- chikoskiさんのツイート: "ということは、特定のビューコンポーネントにのみ効くスタイルシートは、bodyタグの中でリンクすると全体のレンダリングスピードを上げやすくなる、ということかしら。… "
- chikoskiさんのツイート: "むしろページ全体のレイアウト、例えばグリッドレイアウトの場合だと、グリッドの設定とハイレベルな要素のグリッドへの割付に関するcssだけをheadタグの中でリンクするようにした方がいい、ということになったりしないかな。https://t.co/NHt3SHVwcA"
- The future of loading CSS - JakeArchibald.com
- chikoskiさんのツイート: "そのページで使われているコンポーネントを調べ上げて、それぞれで必要なCSSをまとめ、linkタグを適切に生成するようなツールがあるとうれしかったりするかもなー。link要素のDOMへの追加をアプリの状態遷移に合わせて行いつつ、SWつかってキャッシュしたりするとさらに嬉しいかもしれない。"
- chikoskiさんのツイート: "以上、妄想終わり。"
@rockridge07
- Rockridgeさんのツイート: "CSSが統一的な仕様を提供したのは2.1までで、それ以降はモジュール化の方向に舵を切ったので、CSS3という呼称はLevel 3モジュールの総称にすぎない。なので将来的に規格としてのCSS4が出ることもない。 / “Why th…” https://t.co/kmwXvTZ0Rl"
- Rockridgeさんのツイート: "CSSの-webkit-line-clampプロパティは、複数行でも3点リーダーを聞かせることができるが、現状および今後のWebブラウザでのサポートが望めないため、使わないほうがよいとのこと。 / “CSS の -webkit-…” https://t.co/35EFOz9ZO0"
- Rockridgeさんのツイート: "CSS Gridを学ぶのに適したWebサイトなどを列挙している記事。 / “Learn CSS Grid | Jen Simmons” https://t.co/Cs3dfjZQ9B"
- Rockridgeさんのツイート: "Webドキュメントにスタイルルールを適用する方法を巡る議論について。CSSは「壊れ」てはおらず、 CSS Object Model(CSSOM)のようにJavaScriptで制御するやり方は、Flashやフレームに対するのと同じ違… https://t.co/Et93e8Gq2o"
- Our (css) discussion is broken - otsukare
- Rockridgeさんのツイート: "CSS Gridレイアウトのチュートリアル。豊富な使用例が掲載されている。 / “Grid by Example” https://t.co/nOYAQjQGy2"
- Grid by Example
- Rockridgeさんのツイート: "CSS Gridを段階を追って解説。申し訳程度にFirefoxの開発ツールの利用をアピールしているが、利用していなくても問題なく読み進められるようになっている。 / “CSS Grid PlayGround | Terminol…” https://t.co/QXFvy7Mv4I"
- Rockridgeさんのツイート: "ベンダープレフィックスのないborder-imageプロパティを指定するときは、末尾に「fill」のキーワードを指定することが、Web互換性の観点から重要とのこと。 / “How To Fix border-image in y…” https://t.co/5pVSvjV700"
@shibu_jp
- 渋川よしきさんのツイート: "resizeってのをCSSで指定したら、flexbox使ってCSSだけ使ってリサイズ可能パネル作れるの・・・CSS複雑すぎでは・・・CSSエンジンのプログラマーみんなストレスで禿げてるでしょ。絶対。"
- 渋川よしきさんのツイート: "うーむ。resize + flexbox、うまくいかんな。専有可能な幅100%をA/Bのパネルでわけあって、AとBの間をドラッグでリサイズできるようにしたいけど、広げちゃうとドラッグできない。"
- 渋川よしきさんのツイート: "CSS Houdiniでページネーションの実装ができて、それがいろんなepubリーダーで使われるようになって品質が安定化したら世の中平和になる"
- 渋川よしきさんのツイート: "flexbox使ってヘッダー固定で中部分だけスクロールとかしているページ、そのまま印刷してもページの一部しか出力されないのか。@media printの時は全部伸ばす、みたいなスタイルあてないといかんのかな・・・"
- どのCSSプロパティが世の中のWebサイトでよく使われているのか? マイクロソフトがクローラーから得た統計を「Global CSS Property Usage」として公開 - Publickey
- CSS usage on the web platform - Microsoft Edge Development
- コンポーネントベースのアプリケーションのためのCSSアーキテクチャ
- CSSの進化がすごすぎる!新しいレスポンシブデザインの実装方法を解説 | コリス
WM
- ドッグさんはTwitterを使っています 「ウィンドウマネージャ実装したこと無いから一度やってみたい気もするな.タイル型は木なんだと思うけど,レイアウト情報をどう持つんだろう」 / Twitter
- こんにちは、日本目光協会のほうからやってきましたさんはTwitterを使っています 「@Linda_pp XMonad は位置とサイズのリストを返す関数を保持してる感じ https://t.co/U7T5ITGd5w `a` は Window ID」 / Twitter
- anekos / xmonad-conf / src / XMonad / Layout / Harakiri.hs — Bitbucket
- ドッグさんはTwitterを使っています 「@anekos ありがとうございます.やっぱ任意のレイアウトに対応するにはウィンドウとそのレイアウト情報の組をリストに平坦に持つべきな感じしますね」 / Twitter
- こんにちは、日本目光協会のほうからやってきましたさんはTwitterを使っています 「@Linda_pp この場合、持っているのはあくまでも関数だと思います。(都度計算する) また、レイアウト関数を二つとって新しいレイアウト関数を返す LayoutModifier みたいなのもあったり。」 / Twitter
- こんにちは、日本目光協会のほうからやってきましたさんはTwitterを使っています 「@Linda_pp すみません、Window (ID?) のリストも持ってないとですね。」 / Twitter
- ドッグさんはTwitterを使っています 「@anekos 関数を返すのは計算を遅延する目的なんだと思っていたので,あまりそこに焦点を当ててませんでした.レイアウトが分割統治でやれるのかが気になっていました」 / Twitter
- ドッグさんはTwitterを使っています 「パネルを分割するのって素朴に考えると二分木なので親は自分のレイアウトだけ持って,その中のレイアウトは子に再帰的にやらせれば良いかなと思ったけど,それだとできないレイアウトが出てきそう」 / Twitter
- (っ=﹏=c) .。o○さんはTwitterを使っています 「@Linda_pp 四畳半問題ですね https://t.co/vmXNHuOcxR」 / Twitter
- 四畳半問題 - Humanity
- ドッグさんはTwitterを使っています 「@itchyny おお,まさしく似たようなことを考えてました.読んでみます.ありがとうございます!」 / Twitter
アクセシビリティ
その他
- A11yとは - Weblio辞書
- WebSchemas/Accessibility 日本語訳
- アクセシビリティの祭典/トップページ
- WindowsでaViewerを使う | アクセシビリティBlog | ミツエーリンクス
- 今すぐ使えるアクセシビリティチェックツール13選! | フロントエンドBlog | ミツエーリンクス
- 少しずつアクセシビリティ意識する - Hatena Developer Blog
- アクセシビリティに関する各種リンク - EagleLand
- アクセシビリティの専門家の言うことは唯一の正解ではない | 水無月ばけらのえび日記
- Webアプリのアクセシビリティを追求せよ!「インクルーシブ」なマークアップを議論しながら学んでみた | HTML5Experts.jp
- 視覚障碍者プログラマのためのツール | キャリア・働き方 | POSTD
- New Site-wide WAVE Tools (WebAIM)|AccSellクリッピング|AccSell
- むらログ: 実用レベルに達している日本語音声入力
- アクセシビリティ機能はありますか (Acrobat DC)
- アクセシビリティを確保するなら、ファインダビリティも大事。国税庁Webサイトリニューアルでリダイレクトなし | Web担当者Forum
- 今更だけど、ウェブアクセシビリティについてまとめてみた(概要と手法) - Qiita
- パワポやExcelのグラフを色弱者にも分かりやすくするセットを有志が無料配布 作者「将来は標準設定に」 - ねとらぼ
- やさしいウェブのためにすべきこと。英国のウェブアクセシビリティ啓蒙ポスターの日本語版が公開 | UNLEASH
- posters/accessibility/dos-donts/posters_ja at master · UKHomeOffice/posters
- アクセシビリティガイドライン > 45. 色だけに依存した表現によって… : 三井住友銀行
音声ブラウザ
- 音声ブラウザ - Google 検索
- 水無月ばけらさんのツイート: "「メディアクエリや音声向けのCSSがあまり期待通り動いてくれない」というのは、スクリーンリーダーが「音声ブラウザ」ではなく、普通のブラウザの表示結果を読み上げているだけだからですね。… "
- どうけ 🍣さんのツイート: "とりあえず発表したことを書きました。懇親会で話したことはまた別途書きます。 #gaad2019_tokyo 「アクセシビリティわかってるつもりでわかってなかった」を共有した話|道家 陽介 @doke|note(ノート) https://t.co/9if35W1gbz"
- 「アクセシビリティわかってるつもりでわかってなかった」を共有した話|道家 陽介|note
水底の血
- 句読点とか小数点とかのメモ - 水底の血
- Re: 頭字語に空白文字を挿入することの是非とWebアクセシビリティ - 水底の血
- 電子書籍版デザイニングWebアクセシビリティの献本をいただいた - 水底の血
- 色覚異常という言葉に関するメモ - 水底の血
- AccSell Podcast Vol.128に出演しました - 水底の血
- アクセシビリティの祭典 2018 感想戦のようなもの - 水底の血
- アクセシビリティチェッカーA11ycのChrome拡張機能をローカルで作成してみた話 - 水底の血
- 君はISOの代替テキストのガイダンスを知っているか? - 水底の血
- いわく、ハザードマップにウェブアクセシビリティな問題があるとのことだけれども。 - 水底の血
- みんなの公共サイト運用ガイドライン(2016年版)で参照する法律の謎 - 水底の血
- 世界最先端デジタル国家創造宣言・官民データ活用推進基本計画とウェブアクセシビリティ - 水底の血
- 障害者基本計画(第4次)とアクセシビリティ - 水底の血
- 都立中央図書館でアクセシビリティ方面の書籍をあさった話 - 水底の血
- 都立中央図書館でアクセシビリティ方面の書籍をあさった話 - 水底の血
- 障害者の権利委員会 一般的意見第2号を読む - 水底の血
- ISOの代替テキストガイダンスの続編(ものすごい雑なメモ) - 水底の血
- 手話の話を枕に、例の国交省検討会の議事概要から - 水底の血
- このごろのWAIC WG4(2020年3月版) - 水底の血
- (メモ)デジタル社会形成基本法案と情報アクセシビリティ - 水底の血
- (メモ)障害を理由とする差別の解消の推進に関する法律の一部を改正する法律案 - 水底の血
- (メモ) 障害者差別解消法/デジタル社会形成基本法案の審議状況と3月の会議録 - 水底の血
- デジタル庁関連法案審議つまみ食い(4、5月の参議院内閣委員会より) - 水底の血
- 「デジタル社会の実現に向けた重点計画」メモ書き - 水底の血
- (メモ)バリアフリーが和製英語かどうかを少し調べてみた話。 - 水底の血
- (メモ)くだんのアクセシビリティアナリストは伊敷氏が勤めるということに - 水底の血
- WCAG 2.1解説書の2020年12月版への更新進捗とACT Rules Format 1.0日本語訳 - 水底の血
- アクセシビリティのわかってる人を育てるにはどうすればよいのか的な、とっちらかったやつ - 水底の血
W3C
- Accessible Platform Architectures (APA) Working Group | Web Accessibility Initiative (WAI) | W3C
- Inaccessibility of CAPTCHA
- Research Questions Accessibility Task Force
- Video: Web Accessibility Standards and Benefits | W3C Blog
- W3C Strategic Highlights: Web for All (Web Accessibility) | W3C Blog
WAI-ARIA
W3C
- WAI-ARIA Authoring Practices 1.1 Note helps authors make content accessible | W3C Blog
- Digital Publishing WAI-ARIA Module 1.0
- Accessible Rich Internet Applications (WAI-ARIA) 1.2
- Core Accessibility API Mappings 1.2
- WAI-ARIA Authoring Practices 1.1
- HTML Accessibility API Mappings 1.0
水底の血
- 2015年末におけるWAI-ARIAの今をものすごくざっくりと - 水底の血
- 某プログラミング知識共有サービスっぽい古いエントリーへの注意書きを付けてみた - 水底の血
- WAI-ARIA 1.1、DPUB-ARIA 1.0、HTML 5.2ほかが勧告案になっていた - 水底の血
- WAI-ARIA 1.2の草案が発行されてた - 水底の血
- (メモ)WAI-ARIAのロードマップ - 水底の血
フロントエンドBlog
- Webコンテンツの推奨実装方法集「WAI-ARIA Authoring Practices 1.1」 | フロントエンドBlog | ミツエーリンクス
- あのWAI-ARIAがIDL属性として実装される!? | フロントエンドBlog | ミツエーリンクス
- Accessible Rich Internet Applications (WAI-ARIA) 1.1 日本語訳
- Accessible Rich Internet Applications (WAI-ARIA) 1.0 日本語訳
- ARIA Techniques | Techniques for WCAG 2.0 日本語訳
- WAI-ARIAを活用したフロントエンド実装 | CodeGrid
- WAI-ARIA の基礎知識 — Website Usability Info
- HTML講座 - WAI-ARIA
- WAI-ARIA をマークアップに取り入れたシンプルなタブ - CSS HappyLife
- WAI-ARIAを活用したJavaScriptによるDOM操作 // Speaker Deck
- WAI-ARIA Authoring Practice Dialog(Modal)のフォーカス管理 - /var/log/sukoyakarizumu
- Introduction - webcomponents.org
- The Accessibility Object Model (AOM) | aom
WCAG
W3C
- WAI-Tools Project Launched | W3C Blog
- WCAG 2.1 is a Candidate Recommendation | W3C Blog
- Web Content Accessibility Guidelines (WCAG) 2.1
- Understanding WCAG 2.1
- Techniques for WCAG 2.1
- Understanding Success Criterion 2.1.4: Character Key Shortcuts
水底の血
- WCAG 2.0ノートの本体更新予告やら日本語訳やら - 水底の血
- 新しいWCAG 2.0解説書がWAICサイトで公開されました - 水底の血
- WCAG 2.0 解説書
- WCAG 2.1 FPWDがもうすぐ出そう(提案間にあわない) - 水底の血
- 2016年版のWCAG 2.0達成方法集がWAICサイトで公開されました - 水底の血
- HTMLラジオボタンを大きくする方法について - 水底の血
- Japan Accessibility Conferenceに登壇します - 水底の血
- WCAG 2.0解説書の更新版と、How to meet WCAG 2.0の日本語訳が公開されました - 水底の血
- PDF版 JIS X 8341-3:2016, WCAG 2.0早見表/逆引き表作成裏話 (Web Accessibility Advent Calendar 2017) (有限会社時代工房)|AccSellクリッピング|AccSell
- WCAG 2.0クイックリファレンスが更新されました - 水底の血
- WCAG 2.0 クイックリファレンス (WAIC)|AccSellクリッピング|AccSell
- このごろのWAIC WG4の活動について - 水底の血
- WCAG 2.0関連文書レビューのご案内(6/14〆) - 水底の血
- WAICサイトのWCAG 2.0関連文書が更新と、WCAG 2.1訳の話題 - 水底の血
- WCAG 2.1の「次」について - 水底の血
- WCAG 2.2の策定作業が始まっていた - 水底の血
- なかのんクエストさんのツイート: "GeckoはネイティブのTheme API使ってレンダリングするんで、サイズ固定なWinやCocoaだとscale以外はどうしようもない気が。 / HTMLラジオボタンを大きくする方法について - 水底の血 https://t.co/3AAIc3dtGj"
- レシピを見ながら楽しく実装、フォームのアクセシビリティ!その1 | フロントエンドBlog | ミツエーリンクス
- レシピを見ながら楽しく実装、フォームのアクセシビリティ!その2 | フロントエンドBlog | ミツエーリンクス
- レシピを見ながら楽しく実装、フォームのアクセシビリティ!その3 | フロントエンドBlog | ミツエーリンクス
- WCAG 2.0 達成方法集
- 柴田宣史さんのツイート: "Twitterのキーボードショットカット。必ずしも視覚障害者でなくっても、ずいぶん便利だと思います。… "
- うおさんのツイート: "誤爆する話、ちょっと前に見て気になっていたところです。 WCAG2.1でみんな幸せになれる感じでしょうか。 https://t.co/3ACIT6JRry… "
- 柴田宣史さんのツイート: "なるほど。 2.1.4: Character Key Shortcuts (Level A) If a keyboard shortcut is implemented in content using only letter, punctuation, number, or symbol characters, then at least one of the following is true: - Turn off - Remap - Active only on focus… https://t.co/3hJ0s2eb3G"
- もんどさんのツイート: "なるほど。 2.1.4 文字キーのショートカット (レベル A) コンテンツに文字 (大文字と小文字を含む)、句読点、数字、又は記号のみを使用したキーボードショートカットが実装されている場合、少なくとも次のいずれかを満たしている: 解除 再割り当て フォーカス中にのみ有効化 https://t.co/vUE60Z8t6f… https://t.co/uaIYg5cJT3"
- Web Content Accessibility Guidelines (WCAG) 2.1 (日本語訳)
JIS
- JIS X 8341-3:2016の公示 | コラム | ミツエーリンクス
- JIS X 8341-3が改正・公示された - 水底の血
- JIS X 8341-3:2016は誰が作ったのか - 水底の血
- chikoskiさんのツイート: "JISにもWeb Accessibilityに対するガイドラインがあります。JIS X 8341-3 https://t.co/VPlNH7J87W WCAG2.0とほぼ内容は同一ですが… #WeJS"
- JIS X 8341-3:2016 解説
- chikoskiさんのツイート: "はい… https://t.co/nVuf54CTjB"
Mozilla
- アクセシビリティサービスインジケーターとは? | Firefox ヘルプ
- タブバー上の人型アイコンを消す(追記あり) - Mozilla Flux
- Rockridgeさんのツイート: "Fx59:TBNotifier.exeがアクセシビリティサービスとしてFirefoxにアクセスできないようブロックした。Ask Toolbarの一部とのこと。 / “1421018 - Block TBNotifier.exe …” https://t.co/PwKO5f1cpI"
- 1421018 - Block TBNotifier.exe from accessing accessible services
- Makoto Kato ︎︎さんのツイート: "アクセシビリティが有効になってるとChromiumのバグを開く際にクラッシュする話に今日何度も引っかかってる https://t.co/Nv5zZ2fxxI"
- アクセシビリティのためのメディアクエリの使用 - CSS: カスケーディングスタイルシート | MDN
MS
- アクセシビリティ: Microsoft Edge と Windows 10 でさらに多くの人が Web を利用できるように | Microsoft Edge Japan
- EdgeHTML15 のアクセシビリティの向上 | Microsoft Edge Japan
- Windows 10 October 2018 Update のアクセシビリティについて - Windows Blog for JapanWindows Blog for Japan
- Masaru Iritaniさんのツイート: "Windows アプリケーションとウェブページのアクセシビリティ対応を簡単に確認できるツールが公開されました。オープンソースです。… "
- Microsoft Developerさんのツイート: "#A11y is important to us and we want to ensure it is easy for you to foster inclusion in your own apps. Announcing Accessibility Insights for Windows and Accessibility Insights for Web: https://t.co/JeIFc9gKJl… https://t.co/c2yGGgTziY"
- Microsoft open sources Accessibility Insights - Open Source blog
- Accessibility Insights
- Microsoft/accessibility-insights-web: Accessibility Insights for Web
20??年のWebアクセシビリティ
- 2014年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
- 2015年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
- 2016年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
- 2017年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
- 2018年のWebアクセシビリティ:新春特別企画|gihyo.jp … 技術評論社
infoQ
- Visual Studio 2017 15.3 がリリース。 Adds .NET Core 2 がサポートされた。
- Appleはどのようにして手書きの漢字をリアルタイム認識しているか
- MicrosoftはAzure Bot ServiceとLanguage Understandingの一般提供を発表した
- HTMLコントロールの残されたアクセシビリティの問題
スライド
- アクセシビリティとこれからのWebデザイン
- Japan Accessibility Conference vol.1 アクセシビリティ・ガイドラインの歩き方(初心者編) - Google スライド
- 創業期の医療スタートアップに立ちはだかった3つの壁 / Three challenges of medical startup - Speaker Deck
Twitter
- Rockridgeさんのツイート: "Fx51:リーダーモードのNarrate(音声読み上げ機能)で、読み上げの速度を5%刻みで細かく調整できるようになった。これまでは25%刻みだった。 / “1316828 – Allow finer control over n…” https://t.co/Hg5ZaJFCQB"
- 犬洋さんのツイート: "色盲の人にも分かりやすい信号機これすごいなぁ https://t.co/z1nGgdCKXo"
- Rockridgeさんのツイート: "Fx59:アクセシビリティサービスが、テキスト/ハイパーリンク/属性の情報を一挙に取得できるようになった。プロセス間通信が減少するのでパフォーマンスの向上につながる。 / “1419362 - [e10s a11y] Handl…” https://t.co/522i1Qx39E"
- もんどさんのツイート: "https://t.co/ENVZw1R9XK この辺からコーポレートサイトだけでなく、ne¥.jpもどうにかしてと言うとか。… "
- ryomatsuさんのツイート: "アクセシビリティ… "
- JIS X 8341-3:2016に基づく試験結果表示(ウェブページ単位:2016年3月31日公開) | ウェブアクセシビリティ方針 | サイトご利用にあたって | NTTドコモ
- 柴田宣史さんのツイート: "また、サイトに埋め込むGoogleのサイト内検索のキーワードの自動補完も、スクリーリーダだと気がつかないうちに補完されているケース(自分はキーワードを入力し終わったので、つぎのユーザインタフェースコンポーネントに移動するためにTABキーを押す)があるので、なかなか悩ましい。"
- なかのん&マジックさんのツイート: "個人的にはTabキーのイベントはWebアプリで発火すべきではなかったと思ってます。今更なのでそれはできないけど。"
- なかのん&マジックさんのツイート: "ブラウザのa11y上の問題で、どのブラウザも一部のキーコンビネーションはWebアプリで発火しないようになっているものの、やはり「バグ報告」はやってきますね、いつまでも。"
- なかのん&マジックさんのツイート: "Webアプリは読み込んだだけで利用者の同意なく動き出すものなので、ネイティブアプリ同様の何でもアリ感はさすがに認められないわけです。"
- ゆうてん🥶さんのツイート: "del要素のアクセシビリティ対応例 https://t.co/vNTt5Y7NtF 疑似要素を読み上げさせるのトリッキーだな"
- <del>: 削除文字列要素 - HTML: HyperText Markup Language | MDN
- 未識魚 /中川譲@3/21~キャラクターで描く千住展2019さんのツイート: "普通の人でもディスレクシア(読字障害)の気分が味わえそうな事例を作ってみた。 左:UDデジタル教科書体、右:VDRロゴJrブラック (芥川龍之介「愛読書の印象」より) 右でも確かに1文字ずつ追えば「読める」けどものすごく辛い。… "
色
その他
- Redshift
- jonls/redshift: Redshift adjusts the color temperature of your screen according to your surroundings. This may help your eyes hurt less if you are working in front of the screen at night.
- EIZO、モニター色校正のための最新認証を世界で初めて取得 - デジカメ Watch
- カラーマネジメントモニター 基本的なキャリブレーション作業の手順の一例 | カラーマネジメント実践ブログ 〜フォトレタッチの現場から〜
- ディスプレイキャリブレーション 色温度の決め方 5000Kか6500Kか | カラーマネジメント実践ブログ 〜フォトレタッチの現場から〜
- Color Management Handbook ver.5
- 【カラマネ極意17】印刷の標準規格がなぜ求められるのか - JAGAT
- デジタル写真の必修科目・カラーマネージメント講座 連載 第1回 | GANREF
- カラーマネジメント | 能登印刷株式会社 – 石川県金沢市・白山市の総合印刷・出版|商業印刷・美術印刷・カタログ印刷・商業出版・自費出版・オンデマンド印刷・Webサイト制作
- カラーマネジメントの解説
- トラブルを未然に防ぐ!カラー設定10選 | psgips
- ソフトウェア・キャリブレーションとハードウェア・キャリブレーションの違い | EIZO株式会社
- パワポやExcelのグラフを色弱者にも分かりやすくするセットを有志が無料配布 作者「将来は標準設定に」 - ねとらぼ
- 新ドライバでGeForceもOpenGLの10億色出力対応に - PC Watch
- Adobeのオープンソースのアダプティブでアクセス可能なカラーパレットジェネレーター
- HDRモードでも正確な色表現 ~プレビュー版Windows 10+ICCプロファイルを利用するクリエイティブアプリでテスト中 - 窓の杜
- 【ニュース・フラッシュ】Windows 10プレビュー版、HDR環境でアプリごとにICCプロファイルを適用可能に - PC Watch
Google ブックス
- 背景イラストメイキング講座 - 草壁 - Google ブックス
- カラーマネジメント技術: 拡張色空間とカラーアピアランス - Google ブックス
blog
- まだCMYKで消耗してるの?〜大幅な色補正をCMYKで行ってはいけない理由〜 – やもめも
- コンポジターに必要なアルファチャンネルの知識(前編) - コンポジゴク
- コンポジターに必要なアルファチャンネルの知識(後編) - コンポジゴク
- 続・Webブラウザのカラーマネジメント対応まとめ : やんま まのblog(仮)
- 機械の目と人間の目の類似点|Rui Ueyama|note
- 日記 (2017 年 10 月中旬)
- 第27回:カラーマネジメントの疑問 色はどこで管理されてるの? | PERCH長尾の知っ得!デザインビズ必読ポイント! | AREA JAPAN
- YUVをちゃんと理解してからRGBにコンバートしましょうね : KLabGames Tech Blog
- YCbCr変換による色数の減少 - toruのブログ
- RGB等色関数で現れる負の値の正体 | tech - 氾濫原
- 色を科学する その① 感覚なのに科学できる理由|[色彩工学/カラーサイエンス]YoshiColor|note
- [色彩工学/カラーサイエンス]YoshiColorの月別一覧|note
- 色を科学する その⑦ XYZのトリセツ|[色彩工学/カラーサイエンス]YoshiColor|note
- YCbCr変換による画質劣化の可能性について - toruのブログ
- 「色覚」をめぐる知識のアップグレード――『「色のふしぎ」と不思議な社会』読了感想 - 水底の血
- 広色域とハイダイナミックレンジに関するW3Cのワークショップ | フロントエンドBlog | ミツエーリンクス
GIGAZINE
- Googleが提唱する「マテリアルデザイン」の普及をフォローするカラーツールが登場 - GIGAZINE
- なぜ画像に「ぼかし」を入れると色の境界部分がつぶれてしまうのか? - GIGAZINE
- 色覚異常の人がより多くの色を見分けられるようになるコンタクトレンズが開発される - GIGAZINE
- ブラウザによって色が異なる「色空間」の不思議な世界 - GIGAZINE
POSTD
- 色弱のユーザーにもやさしいランディングページのデザイン | デザイン | POSTD
- 色:ヘキサコードから眼球まで – Part 1. | POSTD
- 色:ヘキサコードから眼球まで – Part 2. | POSTD
- 色:ヘキサコードから眼球まで – Part 3. | POSTD
Qiita
- XYZ色空間に迫る(1) - Qiita
- XYZ色空間に迫る(2) - Qiita
- プログラマが知っているとよい色使い(安全色) - Qiita
Wikipedia
- ICCプロファイル - Wikipedia
- ICC profile - Wikipedia, the free encyclopedia
- YUV - Wikipedia
Twitter
histric-1
- Rockridgeさんのツイート: "BlinkにCanvasでのカラーマネージメント機能が実装される見込み。HDRディスプレイの普及を踏まえたもので、WebGLとの併用が想定されている。Khronosで議論がされてきたといい、将来的にGeckoでもサポートされそうだ。 https://t.co/3mKPtzn2x5"
- Rockridgeさんのツイート: "Fx54:プリマルチプライ処理とアンプリマルチプライ処理を高速化。参照:https://t.co/ARm3QakXMg / “738343 - Use a central library for pixel format con…” https://t.co/KP6tDbkVFC"
- 738343 - Use a central library for pixel format conversion and alpha-(un)premultiplication
- Rockridgeさんのツイート: "主要ブラウザのカラーマネジメント対応状況が詳細にまとめられた記事。Firefox 8でLUTをサポートしたというのはこのバグだろう。参照:https://t.co/xHinFtLlih / “続・Webブラウザのカラーマネジメン…” https://t.co/eSTzYqe8mg"
- Rockridgeさんのツイート: "Fx57:DCI-P3ベースの広色域プロファイルをサポート。近年のMac環境で色の表示に違いが出るようだ。 / “1250461 - ICC profile (Late 2015 iMac with P3 Retina disp…” https://t.co/mpx3lAgVHF"
- 渋川よしきさんのツイート: "今日は、会社の若者に @m_seki さんから教わった秘伝の技を教えた。とりあえずデータ種類ごとにカラフルにしたいときに、カテゴリ名のハッシュ値を計算して、それを元に色が決まるようにすればいいよ、というやつ。HLS色空間使えば、明るさのばらつきも抑えられてお得。"
- Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "色覚異常な人に一部の機能が使えない家電製品ばかりになり、その状況が年々悪化しているということは、普通に色覚バリアフリーな家電製品を作ってそれを宣伝するだけで、日本国内だけでいきなり300万人をつかめるおいしい状況でもあるはずなのに、家電メーカーは何をやっているんだろう?"
- Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "色覚バリアフリーが当たり前で売りにはならない文具業界や什器業界よりむちゃくちゃおいしい状況なのに。"
- Hiroyasu Kamo ((φ→ψ)→φ)→φさんのツイート: "半世紀前の世界には色覚異常な人に一部の機能が使えない家電は存在しなくて、色覚異常な人に一部の機能が使えない文具で満ちていたのに、なんで逆転したのだろう?"
- Rockridgeさんのツイート: "Firefox開発者いわく、カラーマネージメント機能の強化は開発の優先順位が低い。 / “Can we focus more on color management support?” https://t.co/i9XTuh5JNY"
- Fadisさんのツイート: "HTML5のCanvasにfloat16の線形色空間で描けるようにしよう、という提案がなされている。色を正確に再現する必要があるコンテンツの表示や、物理的に正しい色の合成、ハイダイナミックレンジディスプレイの活用等に利用できる https://t.co/4iKE2mUNkd"
- canvas-color-space/CanvasColorSpaceProposal.md at master · WICG/canvas-color-space
- Fadisさんのツイート: "Web屋さんがついに色はRGB各8bitでは全く足りない事に気付いてしまったらしい"
- Fadisさんのツイート: "このproposalはクロノスのWebGLワーキンググループでApple Google Microsoft Mozilla Nvidia他のエンジニアを交えて議論された、って書かれてて「なるほど」ってなった https://t.co/4iKE2mUNkd"
- Fadisさんのツイート: "WebGLからHDRディスプレイに対してHDRレンダリング結果を吐くための下準備か"
- 👻 道化師 🃏さんのツイート: "自分用に作ったモノなんですが、色々なカラーテーブルを作成できるしたツールを作ってみました。各パラメーターは弄る度に URL も更新されるので、その URL をコピーしておけばいつでも同じカラーテーブルを参照できます。配色の参考やディスプレイの色味比較などにどうぞ。 https://t.co/OYONZG9JcA… https://t.co/0quJ8onRdo"
- phi ratio coloring
- 👻 道化師 🃏さんのツイート: "https://t.co/PHf9AMzL3Q このツールとしての肝は hue step を phi ratio にした時のカラーリングで、 saturation, lightness の場合とは適用のされ方が大きく異なり、これは植物の葉(枝)の生え方を上から見たのと同じで、同じ場所(色)が出にくく、いい感じに離れた場所(色)になってくれます。"
- 👻 道化師 🃏さんのツイート: "https://t.co/dgfKQpNF9z lightness を人間の眼で感じる明るさ(luma)で補正(align)する機能を付けては見たものの有効に機能する範囲がかなり厳しいよなぁ。… "
- Fadisさんのツイート: "緑を#00FF00と書くとまず人間が識別できる輝度の幅に対して256階調が荒過ぎる問題に直面し、次に人間が見ることが出来る色の範囲に対してsRGB色空間が狭過ぎる問題に直面し、とどめに高速で遠ざかる#00FF00が赤方偏移して黄色っぽくなる問題に直面する"
- 狐代@冬コミ全日(お燐/玉藻)さんのツイート: "ディスプレイの表示できる色域の問題も… "
- Fadisさんのツイート: "広い色空間と高い輝度の表示が出来るディスプレイも少しづつ出てきてはいるものの、信号として送れる色に対してディスプレイが正しく表示出来る範囲がマチマチで、この辺活かしてリニア空間でのレンダリング結果を出来るだけ潰さずに表示したいゲーム屋さんは工夫を求められる状況になってるっぽい… https://t.co/wYFERdcAKm"
- OS自作したい。技術書典6・う38さんのツイート: "CMYKだと再現できない色があるんだなあ,というのが体感的に分かった."
- nikqさんのツイート: "これ色域マッピングとかRRTとかの効果をアーティストさんが体感で再現してるんだなあ。すごいなあ… "
- のうめん🏗️👺デザイン産業バーチャル機械さんのツイート: "さっきいつきちゃんところで話してたシャドウとハイライトの色ずらしの件は図示するとこんな感じですぞ 基準色からただ明るく、ただ暗くしただけの色を乗せるより、少し色相をズラしてあげることでより鮮やかな色変化になるんよ… "
- FadisさんはTwitterを使っています: 「人間が目を通して知覚する明るさと実際の光のエネルギーは非線形の関係にある。8bitで表現された256色段階のグレースケールが線形に変化して見える時、ピクセルの値と光のエネルギーの関係は線形ではない。近代的な3Dグラフィクスは物理モデルから光のエネルギーを求めるため、最後に変換が必要になる」 / Twitter
- FadisさんはTwitterを使っています: 「RGBAのAの厳密な定義が無くて3Dプリンタで透明を扱う際に機器間で互換がとれないから、観測可能な物理量に基づくAの厳密な定義を作ったという論文。同じ材料でも大きさを変えると透過する光の量は変わるが、Aはサイズによらず同じ値が同じ見た目になるように定義される https://t.co/lXxoabovRx」 / Twitter
- [1710.00546] Redefining A in RGBA: Towards a Standard for Graphical 3D Printing
- FadisさんはTwitterを使っています 「HDRで吐くと色が薄くなって見えるっていうのは「私はゲーム開発者ですがコンテンツを正しい色で見て作っていません」と言っているのと同義なんだよ」 / Twitter
- FadisさんはTwitterを使っています 「DirectXがRGBA各4bitで1ピクセル16bitのサーフェスという物をサポートしていて、Vulkanでも同等の物があったらVulkan上にDirectXを実装するのが捗るってことで、そういうVkFormatを追加する拡張が出来たらしいんだけど、拡張の名前VK_EXT_4444_formatsて… https://t.co/kAQAkoe2ZU」 / Twitter
- Vulkan 1.2.149 Released With Another Extension For Helping The Likes Of DXVK - Phoronix
- 7594591200220899443さんはTwitterを使っています 「著者の誠実な態度は買うが、本来こういう事をちゃんとちゃんとしていく事こそ出版社の仕事である。出版社が仕事しないならわざわざ商業出版する意義に乏しい。」 / Twitter
- 解答略さんはTwitterを使っています 「拙著「作ろう!CPU」について、重刷が決定したようです。 あちこちから指摘をいただいておりますが、私の無知のせいで、本書の第1刷は色弱の方に全く読めないものを出版してしまいました。本当に心よりお詫び申し上げます。私としては色を置換して第2刷にしたいと考えて、現在出版社と交渉しています」 / Twitter
- 解答略さんはTwitterを使っています 「ペアの配色を、こんな感じに変更しようと考えています。今回の版では間に合わないかもしれませんが、いずれ必ず変更しますので、色弱の方はもうしばらく購入をお待ち下さい。 https://t.co/39cXiME47K」 / Twitter
- きしだൠ(K8S(Kishidades))さんはTwitterを使っています 「@kaitou_ryaku そもそも色分けで線の違いを表現するというのがあまりよくないです。色よりも、形で表現したほうがいいと思います。この場合であれば白抜きにするか点線にするかなどです。 もしくは明暗差で。」 / Twitter
- ǝunsʇo ıɯnɟɐsɐɯさんはTwitterを使っています 「「色覚異常の人に合わせて赤と緑で判別してる図表を変えないといけないの? めんどくさい」と思った人。 多分「日本語に合わせて多言語化対応しないといけないの? 英語のままでいいじゃん。めんどくさい」と虐げられた悔しい体験がほとんどない幸せなIT生活が若い頃から当たり前だった世代では?」 / Twitter
- ふれーむさんはTwitterを使っています 「@otsune っていうか別に色弱者のユニバーサルカラーデザインだけでもないですよね。あの領域って。みんな老いたらレンズ体濁るし。」 / Twitter
- FadisさんはTwitterを使っています 「glTF、構造自体は近代的なGPUで読みやすい良い3Dシーンのフォーマットなんだけど、「色は全てsRGB色空間の値だ。画像ファイルに色空間の指定があっても無視しろ」のところで、ウッってなるゲーム屋さん多そう」 / Twitter
- FadisさんはTwitterを使っています 「色、「FF0000が赤です」みたいなのWeb屋の色の理解を見ると「色、なんて簡単なんだ」ってなるし、CIE XYZ色空間の少しでも大きな範囲を埋める為にここ10年くらいディスプレイ屋がやってる努力を見ると「色、なんて難しいんだ」ってなる」 / Twitter
- FadisさんはTwitterを使っています 「すごく見たくない色の表し方になるけど、Webにwide color gamutがやってきたとき、既存のスタイルシートの意味を壊さずに拡張するとなると本当にこういうアレになるのかもしれない…」 / Twitter
- nikqさんはTwitterを使っています 「scRGBに拡張して#-FE+FF-4Cみたいな表記を許せばXYZすべて表記できるようになる…!」 / Twitter
- nikqさんはTwitterを使っています 「ただこれだと高輝度が表現できなくてさみしい」 / Twitter
- 福嶋 美絵子(はらぺこ翻訳者)さんはTwitterを使っています 「@ishiimark_sign @yoh7686 そういえばゲームパブリッシャー大手のElectronic Artsには色覚問題を含めアクセシビリティを扱う役職があるようで、へえと思った記憶があります https://t.co/LRprJrMMbe」 / Twitter
- 福嶋 美絵子(はらぺこ翻訳者)さんはTwitterを使っています 「EA Sportsのアクセシビリティ・リードの人が、PowerPointプレゼンを視力の悪い人や色覚異常のある人にも見やすくするための配色やフォント設定をまとめたカードを公開しています。https://t.co/V6rD3s7STO RGB値はスレッドの先でテキストでも書き起こしてくれてる」 / Twitter
- Karen StevensさんはTwitterを使っています 「I'm currently having these cards delivered to everyone in the studio. It took many iterations of colors before those in the studio with Protanopia, Deuteranopia, and even the rare Tritanopia, could see all colors distinctly, yet keeping the shades close to colors already favored. https://t.co/KeNFojOeNo」 / Twitter
- Little CMS – Great color at small footprint
- Color Tool - Material Design
Project Zero
- Project Zero: Drawing Outside the Box: Precision Issues in Graphic Libraries
- Project Zero: Heap Feng Shader: Exploiting SwiftShader in Chrome
- Project Zero: The Curious Case of Convexity Confusion
- Project Zero: The Great DOM Fuzz-off of 2017
- Project Zero: 365 Days Later: Finding and Exploiting Safari Bugs using Publicly Available Tools
- Project Zero: Notes on Windows Uniscribe Fuzzing
- Project Zero: One font vulnerability to rule them all #1: Introducing the BLEND vulnerability
- Project Zero: One font vulnerability to rule them all #4: Windows 8.1 64-bit sandbox escape exploitation
- Project Zero: One font vulnerability to rule them all #3: Windows 8.1 32-bit sandbox escape exploitation
- Project Zero: A year of Windows kernel font fuzzing #1: the results
- Project Zero: A year of Windows kernel font fuzzing #2: the techniques
- Project Zero: Enabling QR codes in Internet Explorer, or a story of a cross-platform memory disclosure
- Project Zero: In-the-Wild Series: Windows Exploits
blog
- UINavigationController - iPhoneアプリ開発の虎の巻
- オブジェクト指向の呪いと、その避け方 - mizchi's blog
- qune: 「コードを共通化するために継承しよう」なんて寝言は寝て言えとゆ話
- S.F. Blog:ブレゼンハム・アルゴリズムの原典を読み、理解する - WebGLでレトロPCグラフィックスを楽しむ(23)
- Apple、新フレームワーク「Swift UI」発表。簡潔なコードとドラッグ&ドロップでUIを構築、デバイスでの即時プレビュー。WWDC19 - Publickey
- ソシオメディア | OOUI – オブジェクトベースのUIモデリング
- Storybookでモジュール一覧を作る | フロントエンドBlog | ミツエーリンクス
- OLE Drag & Dropを実装する - yohhoyの日記(別館)
- Evolution of the Scrollbar
- drawthe.net - Visioに頼らず綺麗なネットワーク構成図を手に入れる MOONGIFT
- 話題のGUIツールキットOrbtkを読む | κeenのHappy Hacκing Blog
- 消えゆくスクロールバー|3inowayosuke|note
- ✕はなぜ閉じるのシンボルなのか歴史を読み解く|みーた|note
- UI開発の要素 — Overreacted
- JSXが実はベターな解だったのではないか?|erukiti|note
- 今週の MYOS - 借り初めのひみつきち
GIGAZINE
- QRコードを生成できるだけでなく「作り方」まで理解できる「Creating a QR Code step by step」 - GIGAZINE
- 元Appleの重鎮が指摘する「Apple製品から失われてしまったもの」とは? - GIGAZINE
- 世界中を巻き込んだブラウザ戦争と「ユーザーエージェント文字列」をめぐる複雑怪奇な変遷とは? - GIGAZINE
- 「ChromeはmacOS上でSafariの10倍もメモリを食う」という実験結果 - GIGAZINE
- 無料でウェブデザインの背景と文字の色を微調整しながら確認できるアプリ「Kontrast」 - GIGAZINE
- Firefoxは過去6カ月間でどのようなパフォーマンス改善に取り組んできたのか? - GIGAZINE
infoQ
- Vanilla JSの108の一般的なDOMタスク:HTML DOMプロジェクト
- Crank: レンダリングを備えた新しいフロントエンドフレームワーク - 作者のBrian Kim氏に聞く
- Brahmos -- コンカレントレンダリングを備えた、コンパクトなReact風UIフレームワーク
- 開発者向けの強力なブラウザであるPolypaneの作成者へのインタビュー
- Flutter 2はWeb向けに本番環境対応しており、新しいプラットフォームを追加している
- 新しいSvelte NodeGuiでQtとSvelteを使用したネイティブデスクトップアプリケーションを作成できる
- SpotifyのWebとデスクトップクライアントのコードベース統合への道のり
- GoogleがAndroidマテリアルデザインを刷新し、UI Toolkit とAndroid Studioを改善
- SwiftUI 3の新機能
- GoogleがGoogle I/Oで新しいFirebase機能を発表
- Airbnbのサーバ駆動UIプラットフォーム
- Google Jetpack Composeが1.0に到達、JetBrainsはCompose Multiplatformのアルファ版をローンチ
Wikipedia
- Xerox Alto - Wikipedia
Qiita
- Reflowを制するものはDOMを制す - Qiita
- Webフロントエンドに従事するお前らはいい加減高頻度イベントとレイアウトとスタイリングの付き合い方を考えろ - Qiita
- シングルファイル C/C++ ライブラリが便利すぎてやばい - Qiita
- the Nothing itself nothings
- nothings/stb: stb single-file public domain libraries for C/C++
- nothings/single_file_libs: List of single-file C/C++ libraries.
- MSE/PSNR vs SSIM の図解紹介 - Qiita
- UX最強のベジェ曲線「κ-Curves」を完全に理解する - Qiita
- Sixel Graphicsを活用したアプリケーションの御紹介 - Qiita
- Flutter 1 → Flutter 2 で変わったことと今後【概要】 - Qiita
- CanvasKit - (Skia + WebAssembly)を使ってみる - Qiita
Twitter
その他
histric-1
- 品川 高廣さんのツイート: "個人的には(よく出来た)Webフォームが一番ラクですね。Excelだとフォーマットが崩れたり、元からある文字が消えたり、入力内容がはみ出たり、TABキーで入力すべき所だけに移動出来なかったりする。プレーンテキストだと結局フォーマットを自分で作ったり余計な文章が必要だったりする。 https://t.co/dP4aE0CPZx"
- いざてんさんのツイート: "まぁFirefoxが潰れてChromeだけになったらそれこそIE6の悪夢再来みたいなもんだしな……。(´・ω・`) / Latest topics > Firefox 57とかWebExtensions移行後のツリー型タブとかがクソとかゴミとか言われているのを見て思う事 - ou… https://t.co/WudNidXsXt"
- Fadisさんのツイート: "いまどきのブラウザ、デバイスの加速度センサーの値をJavaScriptから読めて、加速度取れると正しく物理したくなるんだけど、JavaScriptでインタラクティブに物理はあまり現実的でなくて、シェーダで物理はWebGL2にならないと出力を浮動小数で取れなくてきびしい"
- dynamis (でゅなみす)さんのツイート: "OSの通知で標準ブラウザの切り替えを求めてくるのが常識のようになってるのって変ですよね。 WindowsもMacもOS標準のブラウザに戻せと薦めてくるけど、非標準ブラウザもやり始めるとルール無用感が漂う。 WebにおけるOSのような検索エンジンでも切り替え薦めてくるしなー。 https://t.co/0Ox0Gr5SzD"
- Brian Birtlesさんのツイート: "Now even Chrome is doing Windows notification spam 😕 https://t.co/oNl4aqo6DG"
- Rockridgeさんのツイート: "「Chromeが登場した2008年にはブラウザの進化が止まっていて、イノベーションの阻害要因となっていたが、GoogleがChromeを世に投入してブラウザ技術が息を吹き返した」とする。先行するFirefoxがなかったことに……。 https://t.co/ckWda0sS7t"
- すべてのウェブ・ネット関係者に読んでほしい! 及川卓也が解説する「ウェブの進化が支えるデータ社会」全文公開【iNTERNET magazine Reboot】 - INTERNET Watch
- るくすさんのツイート: "バイナリアンたる者、任意のHTML5/ES6のコードを見たら瞬時にWebKit内部で使用されるC++クラス、メソッド郡を含めた動作説明ができねばならない。"
- Rockridgeさんのツイート: "Pwn2Ownで脆弱性が発見されてから22時間未満でFirefox 59.0.1をリリースできた背景事情を説明した記事。複数のOSと90言語をサポートし、1800万行を超えるソフトウェアでこれを実現したところに意味がある。 https://t.co/l2J3r1xdI9"
- 愉快な生活送り太郎さんのツイート: "EPUBの標準化団体(IDPF)がEPUBのリファレンス実装として公開していたReadium-SDKがGPLからBSDライセンスになってた!!!!!!!!! ■BSD化のアナウンス https://t.co/NjlOQTKmzh ■github https://t.co/bj1AOe5J0E"
- BSD Licensing for SDK
- readium/readium-sdk: A C++ ePub renderer SDK
- Rockridgeさんのツイート: "MicrosoftがWindows 10 April 2018 Update(build 17134)上でJetstream 1.1ベンチマークを用いて計測したところ、スコアが良いほうから順にEdge 17、Firefox 59、… https://t.co/P11N9CTWkf"
- Hideyuki Tanakaさんのツイート: "みんな当たり前すぎて忘れてるかもしれないんだけど、ブラウザってURL入れてEnterを押すのは、プログラムをリモートサーバーから取ってきてサンドボックス上で実行する、というコマンドに他ならないわけなんだけども、案外そういう認識なかったりするのかなあ(´・_・`)"
- K.Namba/ご注文は910ですか?さんのツイート: "HTML に従って描画されていく… "
- Hideyuki Tanakaさんのツイート: "UI定義DSL… "
- くいなちゃんさんのツイート: "「HTMLは構造を決め、CSSは見た目を決める」という原則がありますが、現代の多様な環境で凝った表現をすると無理があり、結局HTMLで見た目を作る黒魔術を使わざるを得ません。そんなときJavaScriptが「どうせ自分がHTMLもCSSも好き勝手に書き換えるから気にしないで!」と言ってくれるのが心強いです。"
- Dai MIKURUBEさんのツイート: "ブラウザを立ち上げてアドレスバーにURL打ち込んでEnter押してからページが表示されるまでに (裏側で) 何が起こっているかわかる限り説明してみてください、前職の面接で何度か聞いたけど、やー、なかなか。そこからわかってそうなところを深掘りしたりするんだけど、全く掘れないことも割と"
- Mikio Kiuraさんのツイート: "この質問面白そう!しかしエンター押したあと、キーボードがUSB接続だと仮定すると、エンターキーにつながるキーボード基盤の2つのポートが電圧Hになって、キーボードの中のUSBドライバを介してPC側にenterのキーコード13keypressイベントが送られます。そして…みたいに説明すると結構長くなりそう…… https://t.co/4Vhy0sr5Pj"
- Kazuho Okuさんのツイート: "キー入力イベントがフォーカスのあたっているGUIオブジェクトに送られるにあたってどういうデータ構造通ってくるかとか、全く理解してないわー"
- keiichiro shikano λ♪さんのツイート: "DNSとか経路探索は『プロフェッショナルIPv6』でいけるし、現代のWebに欠かせないSSL/TLSについても『プロフェッショナルSSL/TLS』があるので、ラムダノートの本でだいたいカバーできるのでは?(うそです。ブラウザのレンダリングに関するところは別の本でお願いします)… https://t.co/mfMjAYUePG"
- 渋川よしきさんのツイート: "ブラウザがつながるまでのやつ。ウェブ系の会社で期待されるであろう内容はReal World HTTPとかGoならわかるシステムプログラミングには書いたからな!よろしくな!DNSとか経路探索は書いてないからな!そこは別の本を読んでくれよな!"
- Mantarohさんのツイート: "この間の Digital Publication Layout and Presentation のレポート。 https://t.co/j0CxtMNDpO Vivliostyle の村上さんのスライドが Vivliostyle を使った物だと言うのが感慨深い。 Pagination という痛いところを突かれて心苦しいけども…"
- W3C Workshop on Digital Publication Layout and Presentation (from Manga to Magazines)
- Kazuho Okuさんのツイート: "本当ならウェブブラウザのエコシステムにとって悲しいニュースだな。実質、市場にWebKit (Chromium) 系とMozilla系のたった2種類のレンダリングエンジンしか存在しないことになる… "
histric-2
- Windows Centralさんのツイート: "Microsoft is building a Chromium-powered web browser for Windows 10 https://t.co/CloX43qdAc"
- Microsoft is building a Chromium-powered web browser that will replace Edge on Windows 10 | Windows Central
- Rockridgeさんのツイート: "Braveブラウザは一部のWebサイトでリーダーモードをデフォルト有効化することにより、高速化とプライバシー保護を実現できると主張。この機能をSpeedReaderと読んでいる。 / “SpeedReader: Fast and…” https://t.co/JpLjA0ysHp"
- int $0x03@SNS部さんのツイート: "gnome3に地味な便利機能あったんだ。10進数でも16進数でも文字列選択して右クリックすると10進数と16進数での値とIEC 60027-2での表記が出る https://t.co/6MOfMRDVBP"
- 七誌さんのツイート: "VSCodeで全置換したとき、キャレットが動かないのが地味に便利だということに気付いた。"
- アプリマーケティング研究所さんのツイート: "待ち時間が3倍になったのに、評価があがったエクセルマクロ。 A:処理中に砂時計を表示(2分)😟 B:処理を早回しでみせる(6分)😂 裏側で「何が起きているか?」を早回しでみせたら社内で絶賛された。体感時間が短くなったことと、プロセスの可視化による効果。 アリエリー教授の人生… https://t.co/7RfAB4vSLS"
- KURODA, Michihiroさんのツイート: "@tanakh はじめまして。 3DCGIのOpenEXRファイルフォーマットが16bitFPが主流なのでそうなっています。 CGIのレンダリング時の演算自体は32bitFPのものがほとんどです。合成ソフトに限っては16bitFPのものがあったりします。"
- Tsukasa #01 [要出典]さんのツイート: "@tanakh オフラインレンダリングでも出力で 32-bit float はあまり無かった気が。リアルタイムレンダリングだと最近主流の 16-bit float とか Xbox 360 なら 10-bit float というのも。ディスプレイの出力側は最近 10-bit 整数に基づく HDR… https://t.co/bOkmhjTMHV"
- ドッグさんのツイート: "テキストベースの Linux デスクトップ環境すごい… テキストなので SSH でリモートから描画できる | ‘tombh/texttop: A fully interactive X Linux desktop rendered in TTY and streamable ov… https://t.co/aQJeubNwUS"
- tombh/texttop: A fully interactive X Linux desktop rendered in TTY and streamable over SSH
- Makoto Kato ︎︎さんのツイート: "IE6開発終わった時に、みんなAvalonやるから!ってことで開発チーム解散になったし、FlutterももともとChromeのメンバー多いし、なぜブラウザに飽きるとGUIフレームワーク作り出すのか"
- Kunihiko Imaiさんのツイート: "UNIX の場合,改行コードとか行編集とかの typewriter 端末相当の機能はカーネル側で処理するけど,カーソル移動とか色とかの制御は curses ライブラリとか使ってユーザプロセス側で処理する. 歴史的理由なんだろうけど,今見るとキリが悪いよな."
- Mantaray@Devさんのツイート: "RTLでもX軸方向は変わらないので、マウスイベント関連の実装がとても面倒なことに"
- Kazuho Okuさんのツイート: "シェルのタブ補完、先頭一致だけじゃなくて中間一致も試すモードがほしい。git branch ... とか中間しか覚えてなかったりする"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyを初めて見た人から、「沢山のボタンやチェックボックスがあって、何をして良いのか分からない」と言われた。 そうかも。慣れきっていると気づかない視点は大事だ。 一方で現状UIに慣れた人にも違和感少な目で、エレガントに解決するのは、なかなか難しい。"
- Nerry@さんのツイート: "実機でキー入力の反応が悪い。描画ロックのせいかな?"
- Nerry@さんのツイート: "マウスは普通に動いてるしnoiz2bgがそれほど負荷高いわけでもないからキー入力だけレスポンス悪いのは不自然ϵ( 'Θ' )϶"
- Nerry@さんのツイート: "ロックが中途半端だったからspinlockに変えたら早くなったϵ( 'Θ' )϶"
- Nerry@さんのツイート: "ロック方法も悪かったけど1文字入力するごとに再描画必要な現在のコンソールの構造がそもそも悪い気がする"
- mer2さんのツイート: "なにがどうやばいって、BlenderでモデリングしながらLooking Glassでモデリング中オブジェクトをリアルタイムに立体視で表示できちゃうんだよ。これはやばいやばいやばい。 #b3d… "
- Manabu Uenoさんのツイート: "UIデザイン原則とUIデザインパターンを使えば、自然に高品質のUIを作ることができる。しかし次の事項にはデザイナーの創造力が必要で、これらがアプリの独自性となる。 ・オブジェクトをどのようなアレゴリーで概念づけるか ・オブジェクト一覧をどのような形式で示すか ・デフォルトをどうするか"
- Manabu Uenoさんのツイート: "入力欄のラベルに「お名前」とか「ご住所」のように御の字をつけるのはおかしい。ソシオメディアでは、 UIはユーザーに帰属するものと考える。ユーザーが自分の意思を示すものだから御の字は不要、とクライアントに指摘している。しかしこの感覚を持たない人にわかってもらうのは難しい。"
- Manabu Uenoさんのツイート: "多くの事業者は自分たちのシステムを自分たちに帰属するものとしてデザインしようとする。それをユーザーに使ってもらう姿勢だから、UIラベルに「へりくだり」を持たせようとしてしまう。その結果UIの主体が曖昧になる。ひいてはインタラクション全体がタスク指向になり、むしろ傲慢になっていく。"
- Kazuho Okuさんのツイート: "ウェブブラウザがどのようにリソースをダウンロードするか(そしてどう最適化すべきか)、詳細な解説 / “Resource (pre)loading” https://t.co/1I5H6mfYu0"
- Resource (pre)loading
histric-3
- 渋川よしきさんのツイート: "描画エンジン(Skia)が即時モード、レンダーツリーは保持モード、DOMは保持モード、仮想DOMの生APIは即時モード、仮想DOMのコンポーネントは保持モード。最近、こういう多層構造がコーディングのシンプルさと性能の両立に重要なんだろうなって気がしてる。"
- ゆるsyuu1228△さんのツイート: "ブラウザのタブ大量に開いとくとなんとなく24CPU消費してくれんかね"
- Makoto Kato ︎︎さんのツイート: "Gecko (w/ Stylo)だとrestyleでもう使ってる。"
- Mantaray@Devさんのツイート: "left / right 多用しているアプリは RTL 環境だと致命傷ということがよくわかった。"
- ぽんこつ@本骨システムさんのツイート: "Single Page Applicationだとありがちだとおもうんですが、ブラウザで開いて、ブラウザ側は読み込みが完了している表示になっているにもかかわらず、別リソースの読み込み待ちで一瞬白くなることがあって、あれ良くないんじゃないかとか"
- tkrさんのツイート: "そのうちhtmlレイアウトエンジンをwasmにコンパイルしてcanvasに描画する人とか登場しそう"
- tkrさんのツイート: "html in html"
- tkrさんのツイート: "s/レイアウト/レンダリング"
- 品川 高廣さんのツイート: "ブラウザ標準の「戻る」「閉じる」操作で対処可能な「ブラクラもどき」より、「右クリックは禁止です」というポップアップを出すサイトや、「戻る」「進む」操作で正常な画面遷移ができなくなる等冪性のないサイトなど、ブラウザ標準の操作を妨害するサイトの方が遥かに有害。"
- dynamis (でゅなみす)さんのツイート: "EdgeがまともなUIを備えるようになったらWindowsではEdgeからChromiumに乗り換える意味って何になるんだろう。"
- 弩.net@Coqやっていきさんのツイート: "そのOSの標準的なダイアログの出し方・UIガイドライン・認証・バックグランドタスクの投げ方を踏襲しているアプリは信頼感が高い。逆に謎カスタマイズしているアプリは不審。そして行政や日本の大企業が出して来るアプリはだいたい後者。"
- 弩.net@Coqやっていきさんのツイート: "明らかにOSやネットワークプロトコルやその他各レイヤーの機能を活かさず筋の悪い提案を出してきた人を見たら「ああ、この人は何にも知らずに喋ってるんだな」って判断するよね。普通。"
- 弩.net@Coqやっていきさんのツイート: "典型的な例が、行政や大企業が出してくるスマホアプリは絶対OSの標準UIコントローラを使ってないんだよ。標準UIが完璧とは言わないけど、その辺の素人の考えよりかはよっぽと、タップ・フォーカス・キャンセル・disableの視覚効果が練られてるんだよ。特に理由がないならそのまま使うべきなんだよ。"
- Masaru Iritaniさんのツイート: "Outlook で電子メールをカレンダーにドラッグ アンド ドロップすると簡単に予定を作れることを知ってから、作業依頼の電子メールはすぐ予定にして時間を確保するようにしています。"
- Fadisさんのツイート: "Wio: Plan9のウィンドウシステムRioをWaylandで再現したものらしい。Rioは個々のウィンドウを分離された名前空間で処理するが、WioはWaylandのCageを使ってこれを再現。Rioはウィンドウに対する操作をファイル操作で行えるが、WioはFUSEでこれを再現 https://t.co/QhCoedseWi"
- Wio: Plan 9's Rio Windowing System Re-Implemented As A Wayland Compositor - Phoronix
- 島鉄雄さんのツイート: "GTK4 で GSK(GTK Scene Graph Kit)が導入されたけど、どの程度のものか分かってなかったけど、スクショを見たら本当にシーングラフになってたw GTK Node Editor とかたまらん! 今までも階層構造にはなってたけど、より明確に分離されたって事だね。 https://t.co/kmfSky3OvN"
- GTK 3.96.0 – GTK Development Blog
- chikoskiさんのツイート: "WebAssemblyコンパイラの作り方。オレオレ言語を処理して、WASMを出力するコンパイラを作っている。一般的なコンパイラの作り方の説明になっているので、そっち方面の勉強に良さそう。https://t.co/nEJFyiZOTz"
- Build your own WebAssembly Compiler
- chikoskiさんのツイート: "興味深かったのはグラフィックスの扱い。JSで実装された描画用の関数群でグラフィックスの操作をするのが、よくある手法なのに対して、このコンパイラでは線形メモリの一部をVRAMとして扱うことで描画する。もしかしたら一括転送できて、パフォーマンス的にもいい手法なのかもしれない"
- 島鉄雄さんのツイート: "最近のLinux用GUIアプリはWayland上で動くように作られている(GTK+3とか) 古いX11アプリもWayland Clientとして実装されているXWaylandを通して動かす事が出来る 要するに描画を担当しているWayland Compositorの Windows版があればWSL上で動く全てのGUIアプリを動かす事が出来る。 誰か実装してくれ!… https://t.co/oK1IzFAU8z"
- 島鉄雄さんのツイート: "その図を見ると分かるように、Wayland CompositorがLinuxに激しく依存してるように見える。 実際はWayland Protocolとして分離されててUnix domain socketで転送してるだけだから、Compositorはプラットフォームに関係無く実装出来るはず。"
- 島鉄雄さんのツイート: "Linux上で動くWayland Compositor自体はマイナーなものまで含めると山ほどあるけど、Windows版が無いのは、それらがWayland Compositorのリファレンス実装を元に作ってて、それが激しくLinuxに依存してるからだろうと思われる。 細部までちゃんと理解してフルスクラッチから作る必要があるんだよね。"
- 島鉄雄さんのツイート: "emacs-develで--with-cairoはもうexperimentalじゃないっていうのがあったけど、WaylandにはXにはあったライン等の描画APIが一切無いので、自前で描画する必要があるけど、それをcairoに投げる事で相当楽が出来る。 後はウィンドウ周りのコードをWaylandのAPIを使う事でWaylandで動くようになるはず。"
histric-4
- Taku KudoさんはTwitterを使っています: 「chromebook + remotedesktop が快適すぎてもうこれでいいんじゃないかと。ローカルにログインすると同時にほぼ透過的にリモートにつながるし、セッションが保持されているので作業が途切れない。」 / Twitter
- FadisさんはTwitterを使っています: 「Vulkanの実装がVK_EXT_direct_mode_displayをサポートしている場合、ウィンドウシステム上でVulkanのレンダリング結果を表示するのではなく「ディスプレイ丸ごとよこせ」が出来る。奪い取ったディスプレイはウィンドウシステムの管理から外れてどんなフォーマットで通信するか自由に選べるようになる」 / Twitter
- ゆきさんはTwitterを使っています: 「W3CにDanmakuってドキュメントがあったけど、「弾幕のユースケースと要件について」ってマジ? https://t.co/67BJ2s1Iqk https://t.co/5gUlIONRqc」 / Twitter
- 弹幕规范
- 島鉄雄さんはTwitterを使っています: 「GUI は好きだが、マウスは嫌いだ。 コマンドラインじゃなくて GUI で出来るならそっちの方が絶対良いけど、イコール、マウスを使うではない事だけはアプリ制作者に言いたい。 要するにリッチな GUI をキーボードだけでサクサク動かせれば最高。」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「Firefox も Vimium (Vim キーバインドで Web ページが読める)を使って、ほぼキーボードだけで操作してる。 Editor は Emacs だけど、ブラウザのキーバインドは Vim で快適。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「BTRONの実身/仮身モデルとWindowsのOLEって似てるんじゃないかと思って検索したらこんな記事があった。 "TRON Project と BTRON の概要" https://t.co/l3CGMOBCO6」 / Twitter
- TRON Project と BTRON の概要
- 社会人でもOSを作りたいさんはTwitterを使っています: 「いやー,先行研究の調査って大事だなあ。OLEが結構やりたかったことに近いぽい。BTRONの実身/仮身モデルを借用したようなアーキテクチャ。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「昨晩、渡辺さんとのんで、この図の左がPOA、右がDOAなんです、という話をしました。 POA:プロセス中心アプローチ DOA:データ中心アプローチ 設計を真剣に考える人々は、COBOLでコードを書きながら、今の大多数のエンジニアより洗練された設計観を築いていたんですね。 https://t.co/FBRkCJezTK」 / Twitter
- Manabu UenoさんはTwitterを使っています: 「ユースケースにただ対処するだけだと、全体の情報量はデザインの分だけむしろ増えてしまう。顕在化した問題を縦に貫くことで、潜在的な要求への準備ができる。 https://t.co/WhhLr7Nwo9」 / Twitter
- Manabu UenoさんはTwitterを使っています: 「これはりんご皮むき機と果物ナイフの話と同じ。 https://t.co/PYyI6hXfvr」 / Twitter
- 杉本啓さんはTwitterを使っています: 「DOAの人々が、設計に関する経験・知識が継承されなかったと嘆くのは、ある意味、もっともな嘆きではあるんです。言葉が違うから伝わらないのが惜しい。POAは今の言葉で言うならユースケース中心、DOAはアーキテクチャ中心なんですね。」 / Twitter
- 杉本啓さんはTwitterを使っています: 「渡辺さんはじめDOAの人がOOを批判するのは、OOでの設計が、ともすればユースケース中心になってしまっていることに起因する面が強いと思っています。OO全体への批判としては、それはあたらないと思いますが、OO支持者によって現に実践されている設計の多くに対しては妥当な批判でしょうね。」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「あー、ソースコードもこういう事やな。悪い意味でハッキーな人は左側のアプローチしかやらない。」 / Twitter
- しめじさんはTwitterを使っています 「Firefoxのアドオン「ツリー型タブ」の良さ① タブをブラウザの上下ではなく左右に置ける(横長ディスプレイを有効活用&タブが増えても幅が変わらずタイトルが読みやすい)」 / Twitter
- しめじさんはTwitterを使っています 「Firefoxのアドオン「ツリー型タブ」の良さ② タブグループをツリー構造で管理できる(調べものした時に検索結果の各ページをホイールクリックでツリーにぶら下げたり、派生した調べ物でツリーを分けられる。ツリーはまとめて閉じたりブックマークも可能)」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「OCaml 用並行 GUI ツールキットを作った.各 UI 部品は自律したプロセスとして実現されていて,チャネルを経由して通信しあうことで協調し全体として UI を構成する.通信部分は ocaml-csp を使用.バックエンドは GTK+ または Direct 2D. https://t.co/l2oNniLM7K」 / Twitter
- hatsugai/Guedra: Concurrent GUI toolkit for OCaml
- hatsugai@PRINCIPIAさんはTwitterを使っています 「図面を作る基礎にできる汎用の Draw widget を作った.ドメイン特化図形言語を定義し描いた図面をデータ構造化して処理するというよくある用途向け.UI から処理まで OCaml で統一できる. 図形オブジェクトは関数で表現しており draw widget とは CPS で通信する. https://t.co/csJj3PC6s1」 / Twitter
- hatsugai/Guedra-draw: Draw widget for Guedra
- hatsugai@PRINCIPIAさんはTwitterを使っています 「というわけで,1つはプロセスでチャネル通信,もう1つは関数で CPS です.楽しそうに遊んでいるグループから少し離れたところで,ちょっと変わった一人遊びをしてる子供みたいなものです.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「Scheme 版では R6RS record の継承を使ってオブジェクト指向システムを作って,その上で図形を表現してた.図形オブジェクトの実現と継承は相性がいいので,その点ではそちらの方がよかったけど,CPS にはしなかったので呼び返し問題には気を使わなければならなかった.」 / Twitter
- 島鉄雄さんはTwitterを使っています 「lsp-mode が重い原因は、単純にありとあらゆる処理が非同期になってないから、どこかで UI をブロックしてしまうからなんだよね。 取り敢えず結論としては、UI に絡むプログラム(含むテキストエディタ)を作る場合、libuv かそれに類する処理を実装して、あらゆる API を非同期処理にしないと駄目だ。」 / Twitter
- 島鉄雄さんはTwitterを使っています 「・コードの重複を避ける(ただし過度な統合は悪) ・if 文を極力書かない ・実行タイミングが違う関連処理は状態遷移で纏める という感じで咀嚼した。 しかし、React のフックは Emacs に昔からあるフックとほぼ同じもんだな。(GUI ライブラリの signal とかと一緒) (続く) https://t.co/btcb0DlTQH」 / Twitter
- inductorさんはTwitterを使っています 「神資料だ https://t.co/HQ6gQ9NkkW」 / Twitter
- オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling - Speaker Deck
- 島鉄雄さんはTwitterを使っています 「更に Emacs には advice という強力な機能があって、これで全く関連が無い他人の書いたコードを、システムの奥深くの機能に追加や変更が出来る。 (ちなみに CLOS ではメソッド結合で同じ事が出来る) advice が有ればコンポーネントとか高尚な概念が無くても、ゆるーい結合で何でも出来るって事だな。」 / Twitter
- お気楽 CLOS プログラミング入門
- Common Lisp Object System - Wikipedia
- 島鉄雄さんはTwitterを使っています 「この場合は、ライブラリのレベルでボタン押下を trigger と press に分けて保存するようにすれば、それほど難しい問題ではなくなる。 trigger → 前のフレームに離されていて現フレームで押された(次のフレームも押されてたら press へ移行) press → 前のフレームから押されっぱなし https://t.co/TxGNxAEEXw」 / Twitter
- Kumagai, MさんはTwitterを使っています 「組込プログラミングの課題として、 「上上下下左右左右BA」の判定 というのは、わりとよい題材だと思う。 ビットの入出力くらいあれば(ミリ秒時刻変数もほしい)、あとは言語固有の知識をあまり必要としない、現実を見据えたアルゴリズム、の話になるから。」 / Twitter
- FadisさんはTwitterを使っています 「The Qt Companyが、短期的なキャッシュが必要になった為Qtの将来のバージョンではオープンソース版を廃止するかもしれない、とした事をうけて、KDE及びQtを利用するオープンソースソフトウェアの開発者達がQtをforkする方法について議論を始めている、という話 https://t.co/z1KWjdC8HK」 / Twitter
- More Open-Source Participants Are Backing A Possible Fork Of Qt - Phoronix
- FadisさんはTwitterを使っています 「尚Qtが過去にforkした事例としては、KDE3をforkして現代のLinux環境でも使えるように保守し続けているTDEの人達が、KDE3が依存しているQt3を使い続けられるように独自に開発を続けているTQtが存在する」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「@hanabimusi 英語がわからなくても、オフィシャルのこの辺の情報はハンズオン的に追っかけていくだけでも基本はわかるんじゃないかと思います。次のステップは、とりあえず入門書系ですかね。2019年後半以降に出てる日本語の本ならとりあえず最新の情報にはキャッチアップできるかと。 https://t.co/I7y6GzQN5Y」 / Twitter
- Write your first Flutter app, part 1 - Flutter
- Takashi KawasakiさんはTwitterを使っています 「@hanabimusi 英語でよければ、最初のチュートリアルの続編みたいな感じで、こういうのもあります。カッコいいレイアウトをガシガシ作っていける楽しさがわかるとモチベーションになると思います。 https://t.co/ut7etEzK99」 / Twitter
- Building layouts - Flutter
- FadisさんはTwitterを使っています 「ソニーが組込機器にリッチなGUIを乗せる為に、Flutter(Google製のGUIツールキットで、主にスマートフォンやFuchsiaで使われる)をWayland上で動くようにした、という話。Qt、GTK、Webkit等いろいろな選択肢を試したが、これが丁度いい綺麗さ、開発の容易さ、軽さだったらしい https://t.co/3uIQ0hJwb6」 / Twitter
- Sony Engineer Talks Up Using Flutter + Wayland For Their Embedded Interfaces - Phoronix
- クチコミのない大陸さんはTwitterを使っています 「マウスポインタとかいう思考停止と妥協の産物が高精細なディスプレイで見つけにくくなって廃れるの、技術の勝利なので無駄な機能で延命を図るのをやめ、素直に新しいパラダイムを作って普及させて欲しい」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Javaや.netのようなクソデカランタイムもつらければ、dockerやsnapやflatpakのような全部入り環境も辛いし、Electronみたいなブラウザー組み込みもつらいし、本当に世の中は根本的な問題解決を取らずに場当たり的な対処出回っている。」 / Twitter
- kuremaさんはTwitterを使っています 「@masayuki_koba それはXamarinの標準的な仕様のはずです。 dotnetで動いている都合上ランタイムを全部同梱していて、拡張子はdllです。 容量がでかいってのはXamarinのいくつかある欠点の一つですね。 Blazorとかだとブラウザにも大量のdllが落ちてきます。 別にWindows用のバイナリが添付されてる訳ではありません。 https://t.co/aczzSXrTsw」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「根本的な問題解決とは、ランタイムはシステムが管理する。わざわざ依存全部zipにまとめて依存問題解決とはしない、ブラウザーは組み込まない。」 / Twitter
- FadisさんはTwitterを使っています 「多くのソフトウェアがQt6に移行していない中でQt5のオープンソース版の開発が終了した事を受けて、Qt5を恐らく最も使い込んでいるKDEプロジェクトが「Qt5のオープンソース版の最後のバージョンに対するセキュリティフィックスとバグフィックスの提供」を開始したらしい https://t.co/TmYIxQrhRq」 / Twitter
- KDE Now Maintaining Their Own Set of Patches For Qt 5 - Phoronix
- Yao Tadahito(八尾 唯仁)さんはTwitterを使っています 「QtはAndroid対応がやばい。Qt6は未実装モジュールが多くて移行できないしQt5はこのままほっとくとSDK30への対応期限迎えてアプリがリリースできなくなる。この辺は多分KDEでもメンテできない。」 / Twitter
JStar
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「こんなすごい動画があったとは。長生きはするものです。 JStar's debut in 1981 - The Mother of All Demos of Personal Computers in Japan」 / Twitter
- Taro TeraoさんはTwitterを使っています 「40年前に発表されたんですね 1981-04-27 https://t.co/tlakCxFfXQ」 / Twitter
- JStar debut 1981-The Mother of All Demos of Personal Computers in Japan https://youtu.be/GdQzSt_X8f4 - YouTube
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「当時このデモを見ていた人たちにこのすごさがどのくらい伝わったのだろう。逆に、いまの人がこれを見ても当たり前すぎて伝わらない気がする。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「JStarはすごくよく出来ているのだけど、厳密にWYSIWYGで画面の拡大ができないから、老眼にはとても辛い」 / Twitter
レガシー
- Masaki OhashiさんはTwitterを使っています 「SIerとかの「画面とDB直結おじさん」はいつまで存在するのだろうか…」 / Twitter
- Masaki OhashiさんはTwitterを使っています 「こういうおじさんが決定権を持ってると、あらゆるOOPもフレームワークもMVCもDDDも崩壊してしまう」 / Twitter
- Masaki OhashiさんはTwitterを使っています 「画面→SQL→DBみたいなおじさん。」 / Twitter
- Masaki OhashiさんはTwitterを使っています 「直結なので抽象化やモデリングがまったくできない…」 / Twitter
- Masaki OhashiさんはTwitterを使っています 「コントローラからいきなり生えてるSQL」 / Twitter
- Masaki OhashiさんはTwitterを使っています 「「クラサバ系MVC」」 / Twitter
クエリー
- κeenさんはTwitterを使っています 「このクエリいいな。ASTに対して同じようにクエリ投げたい。 使いやすさを重視したHTMLスクレイピングライブラリを作った - 純粋関数型雑記帳 https://t.co/gmVijUiQqI」 / Twitter
- 使いやすさを重視したHTMLスクレイピングライブラリを作った - 純粋関数型雑記帳
- わさびずさんはTwitterを使っています 「Egisonじゃん https://t.co/XljT4RUGou」 / Twitter
- κeenさんはTwitterを使っています 「なるほど?つまりEgisonでコンパイラを書けば良い?」 / Twitter
- わさびずさんはTwitterを使っています 「@blackenedgold 実際かなり書きやすいと思います 特にpeephole的な処理は瞬殺できます」 / Twitter
- EgisonさんはTwitterを使っています 「最新の論文の3.4.1節にツリーに対するパターンマッチについて書いています.少ないパターンコンストラクタを組み合わせていろいろなパターンが書けるようになっています.ぜひみてみてください! https://t.co/CWqBL3zik5 https://t.co/FFSTkkkX5I」 / Twitter
- Functional Programming in Pattern-Match-Oriented Programming Style
API
- Manabu UenoさんはTwitterを使っています: 「Apple, Google, MS, Amazon, Facebook, Twitter 等々、いろんなベンダーの API を触っていると、それぞれの企業の本当のデザインセンスが見えてくる。サービスの中の「インターフェース」がどのようにデザインされているか。その組織のエンジニアがどれぐらい「道具づくり」に長けているか。」 / Twitter
- Manabu UenoさんはTwitterを使っています: 「よくできた API は、サービスの無為な道具的存在性がちょうど良い粒度で抽象化され、サードパーティに自己拡張イリュージョンを与える。悪い API は、技術者の自意識がコンプレックス(複雑性)としてそのまま露出していて、何をするにも使役感が伴う。」 / Twitter
- Manabu UenoさんはTwitterを使っています: 「UI(ユーザー向け)にしろ API(プログラマー向け)にしろ、I(インターフェース)の在り方が製品そのものなのである。そして良いインターフェースは、何かを「させる」ものではなく、何かが「できる」ようにデザインされているのである。」 / Twitter
Mozilla
Quantumプロジェクト
Quantum CSS
5x
- Rockridgeさんのツイート: "Quantum CSSはFirefox Nightly 56でデフォルト有効化される見通し。 / “2017-Q2-Goals#Astley_Chen” https://t.co/fy6DWNZ3OP"
- Rockridgeさんのツイート: "Quantum CSS(Stylo)がFirefox Nightly 56にデフォルト無効で投入される日は近い。まずはLinux向け64bit版とWindows向け64bit版がターゲットになるという。 / “Stylo bit…” https://t.co/1oVpBX6GZi"
- Rockridgeさんのツイート: "デスクトップ版Firefox Nightly 56においてQuantum CSSがデフォルト無効で投入されたことを踏まえ、コミュニティにテストを呼びかけている。Firefox 57リリース版でデフォルト有効化する予定である旨も公式… https://t.co/ibTPG1M84i"
- Rockridgeさんのツイート: "Fx56:macOS版NightlyにQuantum CSSがデフォルト無効で投入されたのは、このバグの修正による。 / “1379339 - Enable stylo on macOS automation builds” https://t.co/RL6ko4h7xY"
- Rockridgeさんのツイート: "Firefox Nightly 56ユーザーの20%を対象にQuantum CSSをデフォルト有効化する実験が進行中。参照:https://t.co/UpEheT0DiS / “Firefox/Channels/Meetings…” https://t.co/F7P61nUy5R"
- Rockridgeさんのツイート: "Firefox Nightly 57ユーザーの80%を対象にQuantum CSSをデフォルト有効化する実験が進行中。参照:https://t.co/uQOn5H5ASH / “Chris Petersonさんのツイート: "@…” https://t.co/81uTquiudR"
- Rockridgeさんのツイート: "Quantum CSSはRust言語製の新CSSエンジンを開発するプロジェクトであり、その成果はFirefox 57に投入される。エンジンはServoの並列処理とGeckoのルールツリーを採用し、WebKit/Blinkから着想を… https://t.co/CFvG9OZQ6O"
- Rockridgeさんのツイート: "Fx57:NightlyチャンネルでQuantum CSSがデフォルト有効化。これまではNightlyユーザーの80%で有効化するテストが行われていたが、以後は100%有効化される。参照:… https://t.co/lehGXM9JXn"
- Rockridgeさんのツイート: "Quantum CSS(Stylo)がAndroid版Nightly 58にデフォルト無効で投入予定。Nightly 59でデフォルト有効化の見通し。apkサイズが1.6MB増える問題があり、Beta版以降への投入についてはスケジ… https://t.co/JwBmoDT9nT"
- Rockridgeさんのツイート: "Quantum RenderはFirefox 59に間に合うように、当初の段階で実装される機能を限定するらしい。 / “WebRender Project Status Update - Friday October 27th” https://t.co/nhSPqbN9Ba"
6x
- Rockridgeさんのツイート: "Fx60:リーダーモードでもQuantum CSSが効くようになった。 / “1406274 - stylo: Enable stylo for about:reader” https://t.co/POKcSz8OXm"
- Rockridgeさんのツイート: "Fx60:Quantum CSSをドメイン単位で無効にする機能を削除。Fx57のリリース後、無効にしたドメインはなかったとのこと。 / “1426223 - stylo: Remove Stylo domain blocklis…” https://t.co/j5ZtHHcvQh"
- Rockridgeさんのツイート: "Fx60:Quantum CSSがFirefoxの親プロセス(chromeプロセス)にも適用されるようになった。 / “1417138 - stylo: Enable stylo-chrome by default” https://t.co/l7qkt6cSVI"
- Rockridgeさんのツイート: "Fx60:このバグが修正されたことで、Quantum CSSがFirefoxの親プロセス(chromeプロセス)に適用される際に本来の効果を発揮できるという。 / “1375913 - stylo: re-enable the …” https://t.co/aU6zDiHovv"
- Rockridgeさんのツイート: "Fx61:Quantum CSS(Stylo)による置き換えが完成したため、Geckoの旧スタイルシステムは削除された。参照:https://t.co/qa6SYLQJ5Q / “1447358 - Unifdef the ol…” https://t.co/IviwpSKNYo"
- Rockridgeさんのツイート: "Quantum CSSがFirefoxのすべてのプロパティをサポートした。Nightlyチャンネルにデフォルトオフで投入される日も近い。参照:https://t.co/zq2Z5xQDum / “All properties i…” https://t.co/Abn2BR5N5o"
- Rockridgeさんのツイート: "Quantum CSSの開発においてfont-sizeの実装に苦労した話。いろんな単位をサポートしなければならないうえ、たとえばmediumが何を指すかはフォントの系統ごとに変わってくる。ルビやMathMLでの調整も必要だ。 https://t.co/2Tb21cStTy"
- Font-size: An Unexpectedly Complex CSS Property - In Pursuit of Laziness
- Rockridgeさんのツイート: "Quantum CSSのCSS解釈などがGeckoと違う点を列挙。 / “Firefox Quantum 57 for developers - Mozilla | MDN” https://t.co/jxRGHYurWB"
- Firefox Quantum雑感 - Mozilla Flux
- Firefox QuantumでThe Book of Mozillaも新章へ - Mozilla Flux
- Rockridgeさんのツイート: "Quantum CSS(Stylo)は8.5万行のRustコードで構成される。Geckoの同等システムは16万行のC++なのでコンパクトに。Firefox搭載への取り組みは2015年に開始された。並列処理によるパフォーマンス向上を… https://t.co/3gjQxjNrbL"
- Firefox Quantum高速化の一翼を担うQuantum CSS - Mozilla Flux
- Rockridgeさんのツイート: "Firefox Quantumのリリース時に達成できたのは粒度の粗い並列処理のみ。今後はQuantum CSSのような粒度の細かい並列処理をFirefox全体が行えるようにし、CPU・GPUのマルチコアをより生かしていく。Quan… https://t.co/UsFu70H2KP"
- Rockridgeさんのツイート: "Quantum CSSにRayonと呼ばれるRust言語製のデータ並列性ライブラリが使用されている。また、フォントレンダリングシステムのPathfinderが将来のFirefoxに統合される旨が明言された。 / “Fearles…” https://t.co/InWBJXwuJj"
- Rockridgeさんのツイート: "少数のチームでQuantum CSS(Stylo)を開発した際の苦労話。StyloはGeckoを段階的にRust化していくプロセスの中で、マイルストーンとなる。 / “::bholley - Boiling the Ocean,…” https://t.co/oNZAWrOkfc"
- 超高速エンジンの内部:Quantum CSS(別名Stylo)- 前編 | プログラミング | POSTD
- 超高速エンジンの内部:Quantum CSS(別名Stylo)- 後編 | プログラミング | POSTD
- azuさんのツイート: "Firefox CSSのパースが並列化されたのか "1346988 - stylo: Consider parallelizing CSS parsing" https://t.co/1i0XqJvW9Q"
Quantum Flow
- Rockridgeさんのツイート: "Quantum Flowの各チームが力を入れている分野について。DOMではタスクのスケジューリング、JavaScriptではCacheIRとGCのスケジューリング、Layoutではリフローのパフォーマンス、Graphicsではディ… https://t.co/xVghGZrUz1"
- Rockridgeさんのツイート: "Quantum Flowの成果が出始めている。Firefox Nightly 55では起動速度が改善され、セッション復元に要する時間が約5分の1になったという。 / “Quantum Flow Engineering Newsl…” https://t.co/fVE0Sw4FS6"
- Rockridgeさんのツイート: "Quantum Flowプロジェクトの成果に関するスライド。2017年8月15日時点のFirefox Nightly 57は、Speedometer v2のスコアがFx54の倍近くまで上昇している(9枚目)。同スコアをChrome… https://t.co/M4gfB6w2Yx"
- Quantum Flow - Status 2017 08 28 - Google スライド
- Rockridgeさんのツイート: "Quantum Flowプロジェクトの中でプロセス間通信(IPC)の非同期化が進められたことによって、Firefox Quantumでは、フレームレートの制約が通常よりも厳しいWebVRにおいて、Fx55との比較でも処理が滑らかに… https://t.co/ve9hxFLGTj"
- なかのん&マジックさんのツイート: "Quantum Flowのための最適化で設計が綺麗じゃなくなっていくのはなんかモヤモヤするものがある。"
- なかのん&マジックさんのツイート: "そーいや去年から対策やってるQuantum Flowのテストケース<https://t.co/WGZwbbDB44>、Firefox NightlyのWindows版では20msだけど、Android版をZenPad S3 10 Z500KLで走らせたら200msもかかってた。やっぱり、モバイルって遅いな。Chromeに圧倒的に負けてるケースなんだけど、Chromeでも10倍以上遅い。"
- なかのん&マジックさんのツイート: "エディタ周りはもうこれ以上削れるところ無いかなって感じにはなってきた。まだ、Selectionの方は改善できそうだけど。"
- なかのん&マジックさんのツイート: "ただ、私のカバー範囲だと、どうやってもChromeの速度には到達できないんだよな。"
- なかのん&マジックさんのツイート: "今日のNightlyでprofileとるとこんな感じ: https://t.co/Vw6Z7IBjq1"
- perf.html
- なかのん&マジックさんのツイート: "あー、でも、Surface Book 2でも70msぐらいかかった。Browadwell-Eなんでシングルスレッドの動作速度はそこまで高速じゃないんだけど、単純にデスクトップ機のCPUは高速だったか。 https://t.co/AXrX73dvyQ"
- perf.html
- Rockridgeさんのツイート: ""Quantum Flow 2018"というプロジェクトが始動する模様。 / “WeeklyUpdates/2018-04-09 - MozillaWiki” https://t.co/mBbCMFPa8I"
- なかのん&マジックさんのツイート: "Quantum Flowはむしろ、低スペックな方が恩恵受けやすいと思うんだけど、レス付けてる人は何のことを言ってるんだろう(実測でどうかは知らない。例えば極端にメモリがない環境とか)。 https://t.co/LANQiIt2ID"
- なかのん&マジックさんのツイート: "Quantum Flowの一番のポイントはやらなくて良い処理はやらないようにしようってことなんで。あと、バージョンアップに伴い、ビルド環境もアップデートされていくんで、コンパイラの最適化の違いもあると思う。"
- なかのん&マジックさんのツイート: "やらなくて良い処理を何でやってたのか、あるあるなのは、 nsAutoTArray<RefPtr<nsIFoo>> temp(original); for (auto& item : temp) { item->DoSomething(); } ってのがあったら、original.IsEmpty()を先にチェックするようにしてnsAutoTArrayの生成を回避したりとか。"
- なかのん&マジックさんのツイート: "久々にQuantum Flowな修正を年末のレビューリクエスト飛んでこない時にやってみた。Selectionの変更時や、エディタでの編集時にヒープに確保してたContentIteratorをスタックに置けるようになったんで、特にmacOSで地味な速度アップしてるはず(実験はしてない)。"
- なかのん&マジックさんのツイート: "TextEditRules/HTMLEditRulesって、ヒープに常に確保されてる必要があるんだろうか。例外を除けばそのメンバはEditActionをハンドリング中にスタックにだけで居れば良いような気がする。 #もずでぶ"
- なかのん&マジックさんのツイート: "GeckoはSelectionとnsRangeの速度を改善すると効果が大きいというのが経験的にある。なにしろ、選択範囲(キャレット含む)が変わる操作を何かするたびに処理が1回から多いときは3-4回も走るから。 #もずでぶ"
- なかのん&マジックさんのツイート: "Webアプリ書いてる人も、Selectionが変化する処理を無駄に行わないようにすると結構アプリのパフォーマンス変わってくると思う。どうしてもSelection/Rangeのパフォーマンス向上には限界がある。"
- なかのん&マジックさんのツイート: "DOMのRangeってどのブラウザ発祥なんだろ。ちょっと親切すぎるせいでパフォーマンスが出ない仕様なんで、なかなかちょっと今のWeb向きでは無いように思う。"
Quantum Render(WebRender)
WebRender
- dynamis (でゅなみす)さんのツイート: "servoとして実験していたレンダリングエンジンの成果の本命であり、Firefoxレンダリングエンジン最大のアーキテクチャ変更であるWebRenderが遂にリリース。 まずはNVIDIA GPU搭載のWindows PCユーザ(4%)がターゲットでデフォルト有効に。 https://t.co/YRcljA9wwU"
- Graphics Team ships WebRender MVP! – Mozilla Gfx Team Blog
- dynamis (でゅなみす)さんのツイート: "最近のIntelかAMD GPUを搭載したデスクトップWindows 10やLinuxではIntel統合GPUs with Mesa 18.2以降を4K未満の解像度で使ってる場合もテストしてるから、設定で有効化してみるのも良いかも。"
- dynamis (でゅなみす)さんのツイート: "WebRenderなにそれ美味しいの?的な人向けの長大なイラスト付き解説はこちら https://t.co/vImsoma2oT"
- The whole web at maximum FPS: How WebRender gets rid of jank - Mozilla Hacks - the Web developer blog
- dynamis (でゅなみす)さんのツイート: "どちらかというとパフォーマンス向上はこれからで、まずは落とさずにジャンク(描画の問題)を減らしたりOS依存性の低く最適化もして行きやすいアーキテクチャへの変更が最初の目標設定かな"
- dynamis (でゅなみす)さんのツイート: "GPUによる分割並列処理が得意で極端なケースでは他のブラウザの4~10倍以上高速、スムーズに描画可能にはなるけどより一般的なケースにおいての評価は未発表かな https://t.co/9l6d27gZdZ"
ANGLE
- Rockridgeさんのツイート: "Fx55:Windows上のQuantum RenderではANGLE(Almost Native Graphics Layer Engine)が用いられる。参照:https://t.co/zdxyYLozNa / “13233…” https://t.co/DzrEfiMDi8"
- ANGLE - Almost Native Graphics Layer Engine
- google/angle: A conformant OpenGL ES implementation for Windows, Mac and Linux.
- Rockridgeさんのツイート: "Quantum Renderでは、従来のClientLayerManagerインスタンスに代えて、WebRenderLayerManagerインスタンスを作成・使用する。 / “Platform/GFX/Quantum Rend…” https://t.co/DKhkMFwjcf"
- Rockridgeさんのツイート: "Quantum RenderがFirefoxのリリース版で有効化されても、少なくとも当初はWebコンテンツの表示速度に与えるインパクトは大きくないようで、開発者いわくUI描画のGPU支援に使えるとよかったのだが、と。 / “Qu…” https://t.co/WtiCniHJ5C"
- Rockridgeさんのツイート: "QuantumRenderがTier-1に昇格。有効化へと一歩近づいた。 / “Making QuantumRender tier-1” https://t.co/xJnCqjqDRu"
- Rockridgeさんのツイート: "Fx55:Android版にもNightlyチャンネルにQuantum Renderがデフォルト無効で投入された。 / “1323612 - Build webrender on android” https://t.co/JSPCafNMH4"
- Rockridgeさんのツイート: "Fx57:Quantum Renderの動作にHWアクセラレーションの有効化が必須となった。主にLinux版に影響する措置。参照:https://t.co/ig0hDpsxSE / “Heads-up: WebRender no…” https://t.co/zc4EmG1D1X"
- Heads-up: WebRender now requires HWA enabled - Google グループ
- Rockridgeさんのツイート: "Firefox NightlyでQuantum Renderをフルに試す際に有効化すべき設定について。gfx.webrender.enabled/gfx.webrendest.enabled/gfx.webrender.layer… https://t.co/TmoRzQA0kv"
- Rockridgeさんのツイート: "Quantum Renderのリリース時期がFx59から未定へと変更された。時期優先で機能を絞るという話だったはずだが、それも難しかったのか。 / “WebRender Project Status Update - Frida…” https://t.co/jupMZ6NdCN"
- Rockridgeさんのツイート: "意味を読み取りづらいが、Quantum RenderはFirefox Nightly 60の開発サイクル初期にデフォルト有効化か。 / “WebRender Project Status Update - Friday Nove…” https://t.co/IX5BXIGtYY"
- Rockridgeさんのツイート: "Firefox Nightly 59のQuantum Renderは多くのWebページで正常に動作するようになってきているが、GPUやグラフィックスドライバーごとの挙動のばらつきを抑えるのが今後の課題だという。 / “WebRe…” https://t.co/JgzPMwn5g9"
- Firefox 58以降も続く高速化と応答性向上 2018年もパフォーマンス2倍が目標 - Mozilla Flux
- Rockridgeさんのツイート: "Quantum Renderがリリース版に投入されるまでの間に解決すべき問題が列挙されている。その数は多く、Firefox 60の段階で解決できているか疑問だ。 / “Notes from last Wednesday...” https://t.co/HZM3hmhokD"
- Rockridgeさんのツイート: "近々Firefox Nightly 55にQuantum Renderが投入される模様。デフォルト無効だが、gfx.webrender.enabledをtrueに変更して再起動すると使えるようになるそうだ。参照:… https://t.co/SBNOA2cMmX"
- Rockridgeさんのツイート: "Quantum Renderの投入時期が大幅に延期された。Nightlyチャンネルの有効化がFx63、Betaチャンネルの有効化がFx64となっており、このスケジュール通りに進んでも、2018年11月にならないとリリース版に入らな… https://t.co/gJbHyZ1Vu7"
- Rockridgeさんのツイート: "Fx59:gfx.webrender.allの設定をtrueにすることで、Quantum Render関連の設定を一挙に有効化することができる。 / “1425260 - Bring back webrendest functi…” https://t.co/xZCKQKJsrQ"
- Rockridgeさんのツイート: "Fx60:Quantum RenderではDirect2Dバックエンドを使用しない。 / “1421818 - Stop using Direct2D with WebRender” https://t.co/3nmrH5hm3A"
- Rockridgeさんのツイート: "Firefox 64をターゲットにしているQuantum Renderだが、その時点でデフォルト有効化されるのは、NVIDIAのディスクリートGPU+Windows 10の環境だけらしい。Mozillaの試算ではリリース版ユーザー… https://t.co/L3neo6aTCq"
- Rockridgeさんのツイート: "Fx61:Quantum Renderの有効化は段階的に行われる見通しであり、その際、gfx.webrender.all.qualifiedの設定が用いられる。 / “1455696 - Pref for qualified W…” https://t.co/CB0ABKyyyg"
- Rockridgeさんのツイート: "Fx62:Quantum Renderを有効化した際、無駄なRendererスレッドが発生しないようにした。 / “1469028 - Too many "Renderer" threads” https://t.co/LZgdvKqP1a"
- Rockridgeさんのツイート: "Fx63:Quantum Renderが有効化されるGPU環境を、おおむねNVIDIA Tesla以降に限定した。 / “1478150 - Restrict webrender qualified to modern nvid…” https://t.co/i8Rml3jRpm"
- Rockridgeさんのツイート: "将来的にFirefoxのグラフィックスエンジンとなるWebRenderのアーキテクチャを解説した記事。WebRenderはDisplay Itemと1:1で対応するPrimitiveを生成してレイヤーに割り当てるが、レイヤーのコン… https://t.co/mKVGtkWJZG"
- Rockridgeさんのツイート: "WebRenderでは従来のレンダリングエンジンが行っていたlayout/invalidation/painting/compositingの処理のうち、painting/compositingの区別をなくし、すべてをウィンドウに… https://t.co/TFk8Y76rSo"
- Rockridgeさんのツイート: "WebRenderの解説の前段階として、Geckoのグラフィックスパイプラインを紹介している。DOMツリー -> フレームツリー -> ディスプレイリスト -> レイヤーツリーの流れで処理されていき、compositorがレイヤー… https://t.co/i9ZT4IUgcB"
- Introduction to WebRender – Part 1 – Browsers today – Mozilla Gfx Team Blog
- Rockridgeさんのツイート: "WebRender(Quantum Render)について詳細に解説した記事。従来のpainting/compositingの区別を取り払い、GPUを活用してスクリーン全体を描画することで常時60fpsを実現する。無駄な描画処理を… https://t.co/0PNod5UgwI"
- Makoto Kato ︎︎さんのツイート: "webrenderのいろいろ話を聞いてるけど、rustcのhack必要な話多すぎて、LLVM万能じゃないって感じしてる"
- Rockridgeさんのツイート: "WebRenderのドローコール(画面に描画を行う際に呼び出すGPUに対する命令)が1か月前と比べて2分の1から3分の1に減少し、パフォーマンスが大幅に向上したそうだ。 / “WebRender newsletter #20 –…” https://t.co/y3RwSwW7ox"
- Rockridgeさんのツイート: "Fx64:Nightlyチャンネルで、NVIDIA Tesla以降のGPUを搭載したWindows 10環境(バッテリー非搭載)においてQuantum Render(WebRender)がデフォルト有効化された。参照:… https://t.co/A71dX96TwI"
- Rockridgeさんのツイート: "Firefox Nightly 64のユーザーのうち約17%がQuantum Render(WebRender)有効化の対象になっているという。 / “WebRender newsletter #22 – Mozilla Gfx…” https://t.co/NUll274gfB"
- Rockridgeさんのツイート: "Firefox 64リリース版の一部環境でQuantum Render(WebRender)をデフォルト有効化する計画は、ブロッカーバグが多いため、実施できるか不透明な状況になってきた。 / “WebRender on in F…” https://t.co/28nJhr9a6g"
- Rockridgeさんのツイート: "WebRenderはフレームごとにすべてを再レンダリングするが、paintingとcompositingを分離しないので動的ページでは高速になる。ただ、複雑な静的ページもあるので、描画命令の束をキャッシュしておき再利用する。 https://t.co/gZeeclLnbq"
- Rockridgeさんのツイート: "WebRenderは、今のところ、Webページのレンダリングに求められるグラフィックスプリミティブを全面的にサポートするには至っていない。そこでフォールバックの仕組みとして"blob images"がある。 / “WebRend…” https://t.co/Q7EAtVSDtr"
- Rockridgeさんのツイート: "WebRenderではプリミティブを2グループに分け、処理をまとめやすいグループでは積極的にプリミティブをまとめてGPUの活用を図っているとか。 / “WebRender newsletter #31 – Mozilla Gfx…” https://t.co/5wJmgxDyEW"
- Rockridgeさんのツイート: "2018年11月17日時点で、WebRenderはFirefox 67リリース版でのデフォルト有効化を目標としていた。もっとも、ブロッカーバグが多く、間に合うかどうか微妙な様子。 / “Google グループ” https://t.co/ABlWYQpHR5"
- Rockridgeさんのツイート: "Windows 10上のNightlyチャンネルで、一部のAMD GPUもWebRenderデフォルト有効化の対象に含まれるようになった。Graphics Core Next第2世代以降であればOKな模様。 / “1523823 - Enable WebRender by default on modern (CIK, VI, GFX9) desktop AMD hardware on nightly” https://t.co/WGKsTyULXt"
Quantum DOM
- Rockridgeさんのツイート: "Quantum DOMの一環として、イベントキューを処理の優先度(High/Normal/Low)に応じて3つに分割する。これによりページの描画やユーザー入力の処理をネットワーク処理に優先させるといったことが可能になる。 https://t.co/ejpbe9tH3z"
- Rockridgeさんのツイート: "Quantum DOMはcontentプロセス内のメインスレッドが処理するタスクについて、3段階の優先順位を付ける。また、タブグループごとにタスクをまとめて独立したスレッドを割り当て、フォアグラウンドタブの処理を優先する。 https://t.co/ZLKNOFf3LA"
- Rockridgeさんのツイート: "Fx57:NightlyチャンネルにQuantum DOMの初期実装がデフォルト無効で投入された。参照:https://t.co/nEDt4NSRAz / “Quantum Flow Engineering Newsletter…” https://t.co/SJq9f8wlCB"
- Rockridgeさんのツイート: "Fx61:Quantum DOMのスケジューラシステムは、Fx57においてデフォルト無効で投入されたものの、結局お蔵入りに。参照:https://t.co/nEDt4Oass7 https://t.co/mY8GXkdWwi https://t.co/f9rInjSRGU"
- なかのん&マジックさんのツイート: "Firefox Quantumのパフォーマンスチューニング、普通に、メソッドのインライン化とかvirtual callの削減もやって向上させてます。 https://t.co/cXOAUDrjQj"
- なかのん&マジックさんのツイート: "意外とref-countableなポインタのaddref/releaseもprofileに引っかかってた。"
- Rockridgeさんのツイート: "Quantumプロジェクトにおいて想定されているローエンドのハードウェアは、Acer Aspire Eだという。15.6インチのフルHDノートブックで、Core i3-7100U(Intel HD Graphics 620)・4G… https://t.co/B14CZfoab5"
- Rockridgeさんのツイート: "Mozilla HacksでQuantumプロジェクトを解説する連載が始まった。第1弾となる本記事は、ブラウザのレンダリングエンジンの処理について述べ、CPUのシングルコア性能が停滞する中、マルチコアの活用が重要と説く。 https://t.co/2Tugflzd9h"
- Rockridgeさんのツイート: "MozillaはQuantumプロジェクトの成果を測るための手法についても研究中だ。ユーザーの体感を重視し、利用頻度の高い分野におけるWebページを閲覧する際の、読込速度、動きのスムーズさ、応答性を柱に据える。 / “Desig…” https://t.co/EvBDfMTf3d"
- Rockridgeさんのツイート: "Firefox Quantumではすべての入力処理でAsync Pan/Zoom(APZ)が有効化されており、スクロールがJavaScriptスレッドによってブロックされない。ただし、キーボード入力に関してはAPZが無効になる場面… https://t.co/gkSmNVHaNV"
- Rockridgeさんのツイート: "Firefox QuantumのプライベートブラウジングとChrome v61のシークレットモードを比較したところ、200サイトのページ読み込みテストでFirefoxが2.4倍高速との結果になった(Disconnect調べ)として… https://t.co/VX57HyrPkr"
- Rockridgeさんのツイート: "Fx59:Nightlyチャンネルで、gfx.webrender.allの設定をtrueにすればQuantum Renderが有効化されるようになった。 / “Update your prefs to get WebRender…” https://t.co/4D4kZ2Fe60"
- dynamis (でゅなみす@もじら)さんのツイート: "Firefoxの次世代ブラウザエンジン開発Quantum周りを見ていると顕著だけど、イマドキもうアルゴリズムを変えるとかSIMD命令を使うとかじゃ無くてGPUのシェーダなどに従来CPUで処理していたものを丸投げする実装への切替で圧倒的な性能向上を果たすのがトレンドですかね"
DOM
- Mantaroh@r?さんのツイート: "DOMの世界において、1つのDOMが常に1つの矩形フレームで描画できるというわけではないので、Mozilla では continuation frame という機能を使ってる。例えば幅で改行された要素などは1つの矩形フレームで表現できない。 AAAAABBBBBB BBBCCCC… https://t.co/fMiDGyjku2"
- Mantaroh@r?さんのツイート: "改ページの時も同じ。Gecko では複数フレームに分割される際、先頭のフレームを primary frame、それ以降に続くフレームを continuation frames と呼んでる。"
- Mantaroh@r?さんのツイート: "この primary frame は DOM(nsIContent)が挿入された通知を受けて、フレームコンストラクタ(nsCSSFrameConstructor)が作成する。一方 continuation frames は主にリフロー中、リフロー時に要素がレイアウト制限いっ… https://t.co/ECspqcT1ef"
- Mantaroh@r?さんのツイート: "Pagination の仕組みを理解しようとしたら、ここから入れと書いてあったもので。ドキュメントが古いからコードとにらめっこしながらだけど・・ 元ネタ:https://t.co/H0CJ69akNs"
- Gecko:Continuation Model - MozillaWiki
- Mantaroh@r?さんのツイート: "リフロー中に作成された continuation frames を特に fluid continuations と呼ぶ。1つの要素の continuation frames は2重連結リストで作られているので nsIFrame::GetNextContinuation/nsIFr… https://t.co/2ngca6W0aB"
- nsFrame.cpp - mozsearch
- Mantaroh@media=printさんのツイート: "分割されるフレームは要素による。page break によって分割されるドキュメントは nsSimplePageSequence。line break によって分割されるインライン要素は nsBlockFrame 等。"
- Mantaroh@media=printさんのツイート: "overflow が指定されページに収まらない要素などは例えそのフレームが完成したとしても、フレーム分割が必要になってくる時がある。このフレームは overflow incomplete と呼ばれ特別な continuous frame を保持する。"
- Mantaroh@media=printさんのツイート: "overflow incomplete は、非表示で親内部に特別なリストとして保持される。(詳細は nsContainerFrame.h 参照)"
4x
- Rockridgeさんのツイート: "Fx49:inner documentのリフロー処理を非同期化することでパフォーマンスの向上を図った。 / “881832 – Make inner document reflow asynchronous to improve…” https://t.co/MsYxTgCMaf"
5x
- Rockridgeさんのツイート: "Fx55:Windows 8以降でダブルバッファリングの技法を用いて描画処理のパフォーマンスを向上させた。 / “1352163 - Use double buffering for D3D11 window backbuffe…” https://t.co/guc3hPpFzu"
- Rockridgeさんのツイート: "Fx55:table要素のフレームごとにディスプレイリストのアイテムを生成することで、処理のパフォーマンスを改善した。 / “929484 - Make HTML table frames (including row/cell…” https://t.co/ahqUjpQBQQ"
- Rockridgeさんのツイート: "Fx55:border-radiusの有無についての情報をキャッシュしておき、これを参照することで、display listの構築処理を高速化した。 / “1367906 - Avoid some overhead for ba…” https://t.co/ri56HSMOzk"
- Rockridgeさんのツイート: "Fx58:ターゲットとなる要素が表示領域外にある場合、Transformのアニメーションを抑制することで、消費電力を低減。 / “1190721 - Throttle transform animations that the …” https://t.co/KrrM7F6ZkQ"
- Rockridgeさんのツイート: "Fx59:Advanced Layersの機能が拡張され、1つのレイヤー内に複数のテクスチャがある場合も処理が可能になった模様。 / “1420674 - Support tiling in Advanced Layers” https://t.co/nqiMBfMnCv"
- Rockridgeさんのツイート: "Firefox 58で導入されるOff Main Thread Painting(OMTP)の解説記事。別スレッド化されるのはRasterizationの部分で、当該処理の時間を短縮し、FPSを向上させる効果があるそうだ。 https://t.co/CXNirEQq9Y"
6x
- Rockridgeさんのツイート: "Fx60:Mac版で、Off Main Thread Painting(OMTP)が有効の際、Painting処理を並列的に行う仕組みがデフォルト有効化。 / “1430793 - Enable parallel paintin…” https://t.co/uhiWyO0p2N"
- Rockridgeさんのツイート: "Fx61:Webページが複数のスタイルシートを利用している場合、それぞれのCSSのパース処理を並列的に行うようになった。 / “1346988 - stylo: Consider parallelizing CSS parsing” https://t.co/2fkIC27bAb"
- Rockridgeさんのツイート: "Fx62:Nightlyチャンネルで、直近の5つのタブを対象としてレイヤーツリーのキャッシュを保持するようにした。キャッシュがヒットした場合、タブの切り替え表示がスムーズに行われる。 / “1176019 - [e10s] Ke…” https://t.co/WpcwrSAKGx"
- Rockridgeさんのツイート: "Fx62:ペイントスレッドがDisplay ListやFrame Layerの構築をブロックしなくなったことで、パフォーマンスが改善された。 / “1462411 - Try to FlushAsyncPaints in Cli…” https://t.co/jUQUAZYMM9"
- Rockridgeさんのツイート: "Fx62:Nightlyチャンネルでテストされていたレイヤーツリーのキャッシュ機能は、いったん無効化された。見つかった問題を修正して、再度の有効化を目指す。 / “1465106 - Disable tab layer cach…” https://t.co/K0nRjGfl2C"
- Rockridgeさんのツイート: "Fx62:フレームの再描画が必要な場合にだけレイヤーを生成するようにし、処理速度を改善するとともに電力効率も高めた。 / “1467619 - Fix our motionmark_animometer Design score” https://t.co/6Yfu5l39WY"
- Rockridgeさんのツイート: "Firefox 62以降、Zone/Compartment/Realmの3分類が用いられるようになった。1つのZoneはおおむね1つのタブに対応し、複数のCompartmentを持つ。1つのCompartmentは複数のRealm… https://t.co/kdPLEEyRd9"
- Rockridgeさんのツイート: "Fx61:リリース版のユーザーを対象にRetained Display Listsが順次有効化されていく。リリースから2日後に25%を対象に提供を開始。さらに1週間後に50%に引き上げ、最後に100%となる。参照:… https://t.co/rqu68Peuie"
- Rockridgeさんのツイート: "Fx63:NightlyチャンネルでQuantum Renderのテストが開始された。NVIDIA製GPUを搭載したWindows 10環境(バッテリー非搭載)の50%が対象となる。参照:… https://t.co/2ycd4spXTf"
- Rockridgeさんのツイート: "Fx63:JavaScriptによってWebページ内に入力フィールドが次々に挿入される場合、レイアウト処理を遅らせることでハングが生じるの防ぐ。 / “1456843 - HTML loading hangs for minut…” https://t.co/70dKN4NfJH"
@rockridge07
- Rockridgeさんのツイート: "GeckoのLayout EngineモジュールからWeb Paintingモジュールを分離した。Web Paintingのモジュールオーナーは Matt Woodrow氏。 / “splitting painting cod…” https://t.co/8womLPPkFI"
- Rockridgeさんのツイート: "2017年5月18日時点のFirefox Nightlyを同年4月1日時点と比較すると、ブラウザウィンドウの最初のフレームの描画までが1232.84ミリ秒から849.66ミリ秒に、about:homeの検索ボックスの描画までが18… https://t.co/uTATjBS2yr"
- Rockridgeさんのツイート: "MozillaはOff Main Thread Paintingと呼ばれる非同期描画機能を開発する模様。スレッドに挙げられている文書はパーミッションがないと閲覧できない。 / “Off Main Thread Painting …” https://t.co/2ob443qNPE"
- Off Main Thread Painting Design Doc - Google グループ
- Rockridgeさんのツイート: "HTML文書に指定された外部リソースを読み込むにあたって、処理のブロックが起きないことが重要。本記事では投機的パース、defer、async、プリロードとそれらの差異について説明が行われている。 / “Building the …” https://t.co/tINgrwcr8V"
- Building the DOM faster: speculative parsing, async, defer and preload ★ Mozilla Hacks – the Web developer blog
- Rockridgeさんのツイート: "実装は完成していないものの、ServoのHTMLパーサであるhtml5everのパース処理が非同期化され、投機的なパースも行えるようになりつつある。 / “Off main thread HTML parsing in Servo” https://t.co/HafjYjhuAz"
- Rockridgeさんのツイート: "Geckoのグラフィックス処理部分では共有メモリの仕組みが頻繁に利用されているが、compositorが独立したGPUプロセスに分離されることに対応すべく処理に変更が加えられたらしい。 / “An Introduction to…” https://t.co/hwSonjETno"
- Rockridgeさんのツイート: "Servoはレイアウト処理の並列化を行うようになっているが、この機能は将来的にGeckoにも取り込まれる模様。 / “Oxidation2 - MozillaWiki” https://t.co/UoEOxoFSbZ"
- Rockridgeさんのツイート: "Retained Display Listsはディスプレイリストを必要な箇所のみアップデートすれば足りるようにする。Firefox 58 BetaでのA/Bテストの結果によれば、16ミリ秒を超える「遅い」Painting処理を30… https://t.co/a2SXIVhmLd"
- Retained Display Lists – Mozilla Gfx Team Blog
- Rockridgeさんのツイート: "Firefoxのグラフィックス関係で用いられる略語や専門用語について。 / “Platform/GFX/Jargon - MozillaWiki” https://t.co/RfRsyHMFek"
- Platform/GFX/Jargon - MozillaWiki
- Rockridgeさんのツイート: "Mozillaは、Windows版の一部環境でQuantum Renderをデフォルト有効化した後、対象となるWindows版の環境を拡大するとともに、Android版とMac版でもデフォルト有効化を目指す。 / “Platfo…” https://t.co/cO0gYZ7MfD"
@d_toybox
- なかのんクエストさんのツイート: "nsRangeのプロファイルへの出現具合を見てると、nsRangeというか、DOM Rangeを内部処理で使うのはそもそもアカンっていう結論しかなくなってくるぞ。"
- なかのんクエストさんのツイート: "ただ、nsRangeはmutation observerで常にvalidなレンジを保証してるんで、使い勝手は良いし、変なバグは発生しにくいんだよな。単純にシンプルなクラスや構造体と置き換えられる場所とそうじゃない場所がある。"
- なかのん&マジックさんのツイート: "StaticRangeが実装できたら、Selectionの全rangeをStaticRangeとしてedit actionの開始時に保存しておいてselectionは削除してしまうと全体的に高速化できそうな?"
- なかのん&マジックさんのツイート: "nsRangeがvalidな位置を維持するコストが思ってたより悪そう。"
- なかのん&マジックさんのツイート: "お、<input>.valueのセット、急に高速化してる。何が効いてるんだろう。"
- なかのん&マジックさんのツイート: "最近私の入れたパッチ群はデスクトップマシンだと、せいぜい合計で1ms速くやるかなって程度だったけど、2msぐらい一気に速くなってる感じある。"
- なかのん&マジックさんのツイート: "XPCOMでひたすら抽象的な構造にして柔軟性もたせようとされていたMozillaのコードがパフォーマンスの追求でどんどん依存度を高めて行くの、時代の移り変わりを感じる。"
- なかのん&マジックさんのツイート: "Firefox Nightlyで"Slow Tracking Elements"を"Always"にすると笑えるぐらいにページの読み込みが高速化するな。Geckoの速度自体よりも、アクセス解析のGecko利用時のパスの遅さに問題があるのかよく分かる。"
- Macheriさんのツイート: "Illustratorの「文字に下線設定」で見慣れてたからAdobe XDで同じように文字に下線設定つけた時、「g」とか「y」とか下にはみ出るアルファベットのところ線きれて気持ち悪かったんだけど、webで下線指定した時も線切れるんだね。Illustratorがおかしかったのか。どうなのか🤔… https://t.co/9Zp0MOhbTF"
- なつき@コーディングスクール体験開催さんのツイート: "| x・) oO(ここ数年のモダンブラウザーで下線が切れるのは、アルファベットのディセンダ部分が見づらくならないようにという配慮だそうです。Illustratorはここ数年下線機能に手が入っていないためそのような機能がなくただの直線なのだと思います)… "
- なかのん&マジックさんのツイート: "あれなぁ、フォントに依存するんだと思うけど、Windowsで見やすいと思えないんだよなぁ……"
- なかのん&マジックさんのツイート: "下線の1px上がグリフの横線の場合、下線は消えずに線が太く見えるBlinkの実装も意図的なのかしゃーなしなのか、バグなのか。"
- なかのん&マジックさんのツイート: "文字が大きめかつ、ベクターフォントで、文字がアルファベットなら確実に綺麗だとは思うんだけど、やっぱり日本語のリンク見てると、これ、綺麗って思えないなぁ。"
- なかのん&マジックさんのツイート: "ASCII文字でもアンダースコアの視認性が皆無になるのか……"
- Yosuke HASEGAWAさんのツイート: "ブラウザーの脆弱性探すなら、エンジン載せ替えて実装が枯れてない今がチャンスですよ。"
- なかのん&マジックさんのツイート: "refcountに頼らないといけない時点で色々と人類は敗北してるんですよ。"
- なかのん&マジックさんのツイート: "正直、アプリを開発するのを生業とした時に、やらなくて良い`foo++`がパフォーマンス的に問題になる日が来ると思ってなかったし、必要なそれをし忘れてるのがセキュリティホールになる仕事になるとは思ってもなかったです、はい。"
- なかのん&マジックさんのツイート: "ブラウザ開発ってそれぐらいピーキーなことやってるので実に楽しい。"
- なかのん&マジックさんのツイート: "なんでもかんでも、ライフタイムを保証しておけば良いってのはダメってのは昔のFirefoxとChromeのベンチマークの結果の差が語っているという(それだけでもないけど、もちろん)。"
- Mantarohさんのツイート: "Gecko へ screenLeft / screenTop の実装が入ったというお話。 https://t.co/eMX6dWaDOR"
- [cssom-view] Window#screenLeft/screenTop · Issue #1091 · w3c/csswg-drafts
fuzzing
- ドッグさんはTwitterを使っています 「Mozzila による Firefox の fuzzing 運用の解説 | 'Browser fuzzing at Mozilla - Mozilla Hacks' https://t.co/1un9aR1KAZ」 / Twitter
- Browser fuzzing at Mozilla - Mozilla Hacks - the Web developer blog
- ドッグさんはTwitterを使っています 「やっぱ HTML 生成して食わせるのか.トータル1100件以上の問題を見つけてて成果を出してる」 / Twitter
Google
- さねさねさんのツイート: "Blinkのprerender機構ってIntent to depracate出てたのか https://t.co/jdvOZQY0W8"
- Rockridgeさんのツイート: "Chromeのレンダリング処理の概要が書かれている。Quantum Renderの設計にあたり、Chromeをよく研究していることがうかがえる。 / “A Quick Overview of Chrome's Rendering…” https://t.co/UAiLGa8nkx"
- Rockridgeさんのツイート: "将来のBlinkではスタイルの再計算とレイアウトツリーの構築をそれぞれ独立したステージに分け、前者は要素のスタイルがアニメーションなどでダイナミックに変更される場合でも効率よく処理できるものにしていく。 / “Next Gene…” https://t.co/RiR6ZFcCTd"
- hadakadenkyuさんのツイート: "chromeでflexで画面を2分割するとブラウザ幅が奇数の時に真ん中に1px間が開く。Firefoxだと大丈夫。小数点の関係だろうけど。バグだろこれ。"
- Rui Ueyamaさんのツイート: "最新のChromeのレンダラ、微妙だけどかなり見た目の印象が変わる変更が加わってる気がする。下線、前はこういうふうに途切れずに、文字にかぶって表示されていたはず。… "
- Kentaro Haraさんのツイート: "Blinkのドキュメントが少なすぎる・・・というご要望にお答えして、Blinkアーキテクチャが全体としてどう動いてるかを(Blink開発者向けに)解説してみました。 https://t.co/xojjmLjfqa"
- How Blink works - Google ドキュメント
DOMJIT
- webkit/Source/WebCore/domjit at master · WebKit/webkit
- webkit/Source/WebCore/ForwardingHeaders/domjit at master · WebKit/webkit
- Filip Jerzy Pizloさんのツイート: "DOMJIT is a thing! @Constellation https://t.co/MhrVnCa7yb"
- 172098 – [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
- 162916 – [DOMJIT] Introduce DOMJIT::GetterSetter to tell JIT information
- 164006 – [DOMJIT][CSSJIT] Share code with DOMJIT
- 小倉唯さんのツイート: "これだいぶ完了まで近づいてきた. https://t.co/QplPWtdBd8 DOMJIT やっててよかった..."
- 171637 – Hoist DOM binding attribute getter/setter prologue into JavaScriptCore taking advantage of DOMJIT / CheckDOM
- 小倉唯さんのツイート: "DOM getter, 最初に type check するけど, その check, getter lookup の段階で大体 IC がもうやってる. type checking 部分を JSC にわかるように切り出すと, 大抵さっくり削除できる"
- 小倉唯さんのツイート: "massive code reduction と optimization のチャンスだ"
feDropShadow
- 渋川よしきさんのツイート: "最近、CSSとかでドロップシャドウとか簡単に出せるけど、ピクセル単位で自分で計算して出すときの良いアルゴリズムとかどこかにあるのかな"
@d_toybox
フレームワーク
- なかのん&マジックさんのツイート: "ブラウザ開発者としては、フレームワーク使って開発しておきながら、テストのコストとかなんだろうけど、それをアップグレードしていかないWebサービス提供者には破滅して欲しい。"
- なかのん&マジックさんのツイート: "フレームワークにバグがあるパターン、一番有害。"
- なかのん&マジックさんのツイート: "良いフレームワークはUAの判定を最小限にしてるはず。そうじゃないと、ブラウザ側のバグ修正や、標準仕様の変更で簡単にバグる。"
- なかのん&マジックさんのツイート: "基本的にはfeature detectionかデフォルトアクションの結果を検査しての動作切り分けになるので、Webアプリのフレームワーク作りは相当にプログラミングのセンスを要求されそう。ちょっと、やれる自信無い。"
- なかのん&マジックさんのツイート: "そーいや、日本人でフレームワーク書いてる人って知らないな。居たら是非しゃべってみたい。酒でも飲みながら。"
- なかのん&マジックさんのツイート: "ブラウザは、エンジン部分の競合は標準仕様が特定のOSや特定の実装者の優先順位に左右されないように複数存在することは絶対必要なんだけど、より互換性を高めて、ユーザーレベルでは、好きなUIで選ぶ事ができる状況にならないとなー。"
- なかのん&マジックさんのツイート: "とりあえず、Chromeのシェアがもっと下がらないと、不健全ってところまでは来たな。Chromeのバグや、仕様では定義されていない部分の動作に依存してるサイトの互換性問題の報告が無視できないレベル。"
- なかのん&マジックさんのツイート: "結局、IEの時代と同じ事を繰り返してる。"
- なかのん&マジックさんのツイート: "しかも、今はフレームワークがあって、それが依存してる場合の影響がデカすぎて、より難しくなってる。"
- なかのん&マジックさんのツイート: "Google Closure、feature detectionとUA名チェックが混在しまくってるのか……"
- なかのん&マジックさんのツイート: "ブラウザの動作変更して仕様も変えてフレームワーク開発者にも対応してもらって、ようやく何が起きるかというと、大量のバグってるデキの悪いサイトが動くようになるっていうの、色々と間違ってる感あるね……"
histric
histric-1
- なかのん&マジックさんのツイート: "@izaten あの頃と違うのは、もはや新しいエンジンの登場は、新規開発にかかる金額考えるとあり得ない。開発停滞したら最後。"
- なかのん&マジックさんのツイート: "ブラウザは、非互換が分かった場合に、仕様が有る場合は仕様通りに動いていない方が、仕様が無い場合はベターな方か、単にシェアの大きな方に合わせた挙動を仕様書に明記しつつ統一したりするんで、なんか判断するなら仕様を確認しつつ、仕様と違う動作のブラウザにハックを用意しないとワヤですね。 https://t.co/JeiQejIf6H"
- なかのん&マジックさんのツイート: "仕様の方が技術的に良くなくて、仕様が更新されるたち悪いケースも無くはないけど。"
- なかのん&マジックさんのツイート: "@momdo_ 仕様が無い所をよしなにやっていくつらみ……"
- なかのん&マジックさんのツイート: "@momdo_ CSS仕様書を書く人達の語彙力すごい("
- なかのん&マジックさんのツイート: "Firefoxのマスターパスワードが未だにモーダルダイアログなのは最悪なUIだけど、これ、どうしようもないよなー。タブモーダルなもの作ってもWebサイトの作った偽物との見分けが完全につかなくなるし。"
- なかのん&マジックさんのツイート: "開発手法はどうか知らないけど、うちのライバル製品の実装に関しては正攻法じゃなくて「うぬぬ」ってなることがあるなぁ。"
- なかのん&マジックさんのツイート: "今どき、モバイル版とデスクトップ版でURLが違うWikipediaはどうにかならんの?"
- なかのん&マジックさんのツイート: "wheelDeltaを未だに使ってるクソなサイトがまだ大量にあるのか…… / Chrome Platform Status https://t.co/XKoQpA0Xyp"
- Chrome Platform Status
histric-2
- なかのん&マジックさんのツイート: "Googleからのリクエストで伝統的な挙動を捨てて、後付け標準仕様にあわせた動作に変更する作業やってると、Chromeのバグ見つけて報告する事多いんで、本当に多様性って大切だと思わされる。"
- なかのん&マジックさんのツイート: "というか、世界中のWebアプリ開発者の多くが、このChromeのバグ知ってるやろっていうのを見つけても、報告が見当たらなくて新規に報告することになったりしてて、本当に絶望感漂う。"
- なかのん&マジックさんのツイート: "よし、やっと、WheelEvent.deltaModeの闇、Googleの仕様の編集者にキャッチしてもらえた。"
- なかのん&マジックさんのツイート: "なんかこう、スクロール量をより精度高くとれるようにブラウザ各社が仕様を策定したのに、多くのケースでChromeがpixel値で返すってだけで、値をピクセル値と仮定して処理するWebアプリ開発者が多すぎるの、本当にtry & errorでやってるアレな開発者だらけなんだなぁと思わされた。"
- なかのん&マジックさんのツイート: "この件、Safariは、macOSで動いてる場合、macOSのネイティブイベントがピクセル値でスクロール量を知らせてくるのでどうしようもないのよね。この件は本当にChromeのWindows版でのいい加減な実装が招いちゃった悲劇。"
- なかのん&マジックさんのツイート: "GeckoはWheelEventの実装のときに、全部の処理を書き直して、各OSのネイティブイベントの情報をほぼロスレスでWebアプリに伝えるようにしたんだけど、Chromeの開発者は既存のパスに最小の変更で、見た目、WheelEventに対応したように見せたことでこんなことになってしまった。"
- なかのん&マジックさんのツイート: "なので、Windowsのシステム設定で、ホイールのスクロール量をページ単位にすると、Chromeでもそういったいい加減なWebアプリはバグる。なにしろ、Windows版Chromeは、ページ単位のスクロール設定の場合にはWheelEvent.deltaModeでDOM_DELTA_PAGEを返してて、正しく実装してるから。"
- なかのん&マジックさんのツイート: "念のために解説しておくと、Windowsは、行単位でのスクロール量か、ページ単位でのスクロール量がネイティブイベントを通知してくる。macOSでは高解像度のホイール搭載マウスや、トラックパッドからはピクセル単位、古いノッチ単位で回転するホイール搭載のマウスなら行単位を通知してくる。"
- なかのん&マジックさんのツイート: "Geckoはこの辺、完璧に近い形でロスレスでWebアプリに伝えるようにがんばった。本当にがんばったのよ?"
- なかのん&マジックさんのツイート: "ロスレスで伝わらないケースは、主に小数点の丸め誤差の問題なので、普通のアプリでは問題にならないレベルです。"
- なかのん&マジックさんのツイート: "興味ある人は、大昔に書いた、こちらのスライドも参照してみてください。 https://t.co/dZYIwH8Rt6"
- マウスホイールイベント処理マニアックス
- 一ノ瀬 いろはさんのツイート: "Qiita とかにバグの内容と再現方法と回避方法まで書いて有っても報告がされてないケースの悲しみは大きい。… "
- なかのん&マジックさんのツイート: "誤解なきように書いておくと、特定の開発者がバグ報告してなかったとかいう話ではなく、世界中の様々なレベルの開発者が最多シェアを持つChromeにバグ報告していないって点ですわ。つまり、そういう流れが業界全体に出来上がっていないと言えるかと。"
- Makoto Kato ︎︎さんのツイート: "qiitaでなんとかの闇って書かれてるの、大概バグ報告してないよね"
- なかのん&マジックさんのツイート: "Qiita、調べ物で引っかかって来た時以外には読んで無いけど、良くも悪くも殴り書きって感じはある。"
- 渋川よしきさんのツイート: "タイムマシーンがあったら、Windows APIのスクロールイベント、行単位じゃなくてピクセル単位にしてくれってビル・ゲイツを説得しに行きたい。"
histric-3
- なかのん&マジックさんのツイート: "HTML直書きなんてするもんじゃねえという意見が多々あるけど、静的なページ公開したいときに手書きは全然有りでは?と思っちゃう。CMSの見た目をいじる方が難度高くない?"
- なかのん&マジックさんのツイート: "今、仕事で関わってる所だと、フレームワークがバグってるから自分達では修正できないとか、どんな(自主規制)なんだよとか思ってしまう。他人の作った物を使ってそれなりのもの作っても、トラブルへの対応能力も無いとね。"
- なかのん&マジックさんのツイート: "WindowsのAltGr周りのイベントを、Googleのエンジニアさんが提案してきた新しい挙動にするの、WindowsのAPIでは気軽に実装できるものではあるし、なんか条件文書いてて嫌になってくる。歴史的な事情ってつらい。"
- なかのん&マジックさんのツイート: "結果論だけど、今のVirtual Keycode見ると、AltGrに1bit割り当てるのが正解だっただろうなと。"
- なかのん&マジックさんのツイート: "ヨーロッパのWeb開発者さんは、やっぱり、AltGrの挙動についてバグ報告してくれるんで、裏を返せば、苦しめられてるんだろうなぁ。"
- なかのん&マジックさんのツイート: "私がKeyboardEvent等でmodifier周りの進化した仕様を実装・検証するまでは、WebアプリがAltGrの状態を取得不能だったんで、色々と無理ゲーな要求もあったんだろうなぁ。"
- なかのん&マジックさんのツイート: "ChromeもSafariもこの辺は無事、追随してくれたので、まあ、みんなが幸せになれた感じ(互換性問題はありそうだけど、Firefox/Geckoが先行した部分を後からシェアの大きいブラウザのいい加減な実装で台無しになることは無いと信じたい)。"
- なかのん&マジックさんのツイート: "WheelEventなんかは、常にdeltaModeがDOM_DELTA_PIXEL前提のクソすぎるアプリを作った一部クソ開発者のせいで、仕様自体を修正しようという話になってて本当にクソ。"
- なかのん&マジックさんのツイート: "しっかりテスト出来ないクソがChromeでもDOM_DELTA_PAGEのケースがあることに気付いてれば問題なかったんだけど、そもそも、それが分かる人ならやらかさないレベルで低レベルな話なんだよな。"
- なかのん&マジックさんのツイート: "そもそも、まともなリファレンスならWheelEvent.deltaYの値が何かとか、ちゃんとWheelEvent.deltaModeと共に説明してるはずで、それが出来ていないクソリファレンスが存在したのか、文書読めないクソのせいなのか、原因が知りたくはある事案。"
- なかのん&マジックさんのツイート: "いやほんと、この件ほど、Web開発者に失望したたことは未だかつて無いよ。あれだけ用意周到に色々とやったのに。"
- なかのん&マジックさんのツイート: "WheelEventでのChromeの問題を見るに、また、今までの私の経験からしても、「生データ」へのアクセシビリティは非常に重要で、ロスレスではない抽象化はアプリ開発においてやってはいけないミスだと確信した。"
- なかのん&マジックさんのツイート: "「これだけしか必要無いから、これだけの情報でいいでしょ?」ってやると、だいたい、何年後かにその削られたデータが必要になる。長いことメンテするアプリを書いてる人は要注意。特に、メンテを評価しない現場では、ロスレスで抽象化しとかないと危険。"
- なかのん&マジックさんのツイート: "長いことブラウザ屋さんやってるけど、未だにアクセシビリティツールがどうやってコンテンツを取得してるのかは知らない……"
- なかのん&マジックさんのツイート: "なんとなく、各OSのa11y APIと、DOMへのアクセスの両方だと思ってたけど、前者だけなのかな?"
- hadakadenkyuさんのツイート: "ページ右下の「トップへ戻るボタン」はマジでユーザを誰も幸せにしてない例だと思う。効果確かめたことあんの?アレがあることでユーザの離脱率落ちるの?CTR上がるの?継続率UPする?売り上げ上がる?"
- なかのん&マジックさんのツイート: "一応、ブラウザベンダに在籍してるものとして、タッチスクリーンデバイスのスクロールに、もっと良い方法が無いか考えてみたけど、あんまり思いつかないんだよな。OSレベルでどうにかこうにかして欲しい問題。"
histric-4
- なかのん&マジックさんのツイート: "スマートポインタのrefcountのコストが気になるって、ブラウザのピーキーさ凄いと思いません?"
- なかのん&マジックさんのツイート: "ちなみに、管理をミスると即座にセキュリティバグにつながるので、Quantum Flowの前は安全のために掴んどけっていう流れでしたね。割とブラウザの速度のチューニングって、セキュリティに関して無保険車爆走みたいなところあります。"
- なかのん&マジックさんのツイート: "私がDOMイベントをやりだしたのって、イベントドリブンなWebアプリにとって、この入り口の互換性の低さはシェアの低いGeckoにとってヤバいって思ったからなんだけど、いざやりだすと、BlinkとWebKitではもだいぶ違うんんだよね(そもそもBlinkでもプラットフォーム変わると結構違うけど)。"
- なかのん&マジックさんのツイート: "ネイティブの入力イベントを抽象化したDOMイベントの場合、Webアプリ開発者さんは少なくともデスクトップではWindowsとmacOSの両方でテストすべき状況は続いてるし、もっというと、例えばWheelEventだと、Windowsはページ単位のスクロールかどうかのシステム設定で変わるし、macOSだとデバイスで変わる"
- なかのん&マジックさんのツイート: "後者は未だに条件がよく分からない。"
- なかのん&マジックさんのツイート: "USBの仕様に全然詳しくないのでなんとも言えないけど、Appleは自社のデバイスは認識時に特別扱いするようになってるのかなってのは思うなぁ。キーボードやマウスのテストしてると。"
- なかのん&マジックさんのツイート: "Macユーザは同等なハードで、Apple純正か、サードパーティー製か悩んだ時はApple製の方が間違いは無いってのは感じるな。そんな市場は嫌なので個人の金を投げ入れたいとは思わないけど。"
- なかのん&マジックさんのツイート: "XULアドオンって色んなタイミングを捕まえられるように、さまざまなobserverになり得たんだけど、これってmutation event listenerが大量にあるイメージで、呼び出し時にセキュリティを確保しつつ安全に全obseverに通知するってのがコスト高だったのには削除時にパフォーマンス調べてびっくりした。"
- なかのん&マジックさんのツイート: "特にメモリのアロケーションが遅いmacOS版が深刻だった記憶。"
- なかのん&マジックさんのツイート: "XULアドオンが無くなってどうしたかというと、そういうobserverをC++なら個別のクラスのnon-virtualなメソッドを直接呼び出すようにして大幅にランタイムコストを削減してる。綺麗なコードなのは前の抽象化されたobserverなんだけど。"
- なかのん&マジックさんのツイート: "私のやってるeditorだと、検索バーが未だにobserverをJSで実装しちゃってて、これをどうにかすればもっとスッキリするんだけどな(ランタイムコストは検索バーが表示されてなかったらほぼゼロになるようにはしてる)。"
- なかのん&マジックさんのツイート: "前にも書いたけど、場所によってはスマートポインタのrefcountの上げ下げすら問題になるのがブラウザっていうアプリなんで、observerって本当に厄介。"
- なかのん&マジックさんのツイート: "nsCOMPtrとRefPtrと二種類あるの、いい加減にどうにかならないかな。Foo(RefPtr<Bar>& aBar)みたいにすると、nsCOMPtrで掴んでる場合にあかんし、こういうのをいちいちtemplateにしてると今度はバイナリサイズが悪化するし。"
- なかのん&マジックさんのツイート: "まあ、 class Foo { RefPtr<Bar> mBar; void DoIt() { DoSomething(mBar); } void DoSomething(RefPtr<Bar>& aBar) { aBar->Boom(); } }; とかメンバを渡されたらあかんのでどっちみちセキュリティは保証されへんか。"
- なかのん&マジックさんのツイート: "Rustってこういう所有権の問題、どうしてるのかよく知らない。"
- なかのん&マジックさんのツイート: "ブラウザって要するに、このメソッド呼び出したらJS走る可能性があるから、なんでも起こりえるよっていうのが随所にあるので楽しい。"
- なかのん&マジックさんのツイート: "Webアプリのパフォーマンスチューニングって当然ブラウザ毎に「このブラウザはこれが遅い」とかあるだろうから、本当に徹底してるWebアプリはブラウザ毎にパス変えてたりとかあるんだろうか。"
- なかのん&マジックさんのツイート: "autocompleteの時にchromeがどう動いてるんだろうかと気になってテストしてみたら、InputEventではないinputイベントが発生してる疑惑だこれ……… "
- なかのん&マジックさんのツイート: "マイナーブラウザのバグにまで対応しなくても良いんですよ。マイナーブラウザでもテストしておくと、開発者が自覚していない仕様のグレーゾーンがあぶり出される事が多いという点が重要。それを経てリリースされたWebアプリ側にマイナーブラウザ側がバグ修正して対応するのが理想的で誰も損しない。"
- いざてんさんのツイート: "実装依存なコードはやめろっていうのは、別にWEBだけじゃなくてコーディングすべてに言えることだと思うの。よく知ってる例ではデータベースとか。"
histric-5
- 🐾わおん🐾さんのツイート: "ブラウザにベンチマーク機能内蔵してスペックの判定と負荷の許容度の設定を用意してWebサイトと連携しようなどと大変そうな妄想を広げている"
- なかのん&マジックさんのツイート: "手遅れ感は強いけど、fingerpintingが……"
- なかのん&マジックさんのツイート: "Firefox とChrome のマルチプロセス見てると、GUI アプリのマルチプロセス化は無理矢理感が強くて。かといってIE 方式なのはさらにどうなのかって感じだし。"
- CORSAIR JAPANさんのツイート: "PCのメモリをいくら増やしても、あればあるだけメモリを使おうとするアプリありますよね (;_;)… "
- なかのん&マジックさんのツイート: "使わんのも変やけどな。使いすぎてもアロケーションの速度落ちるから使い切るのがええわけでもないけど。"
- Hideyuki Tanakaさんのツイート: "ブラウザのタブに、負荷が高いやつを色付けするとかあれば、重いやつ閉じればいいやんとかそういう風には言いやすくなる(´・_・`)"
- なかのん&マジックさんのツイート: "タブの色が変わったりするの、動画広告と同じ理由でものすごく鬱陶しく感じると思う。"
- ゆういちろうさんのツイート: "「わずか0.2秒という高速な処理」 って言うと早そうだけど 「処理に200ms掛かります。」 って言うと遅い気がする…"
- なかのん&マジックさんのツイート: "入力イベントまわりやり出してから、人間にとっても1秒ってめっちゃ長いことを知った。"
- いざてんさんのツイート: "数十~数百ms読み込みを早くするためにWEBサイトの作りをあれこれ考えるも、お偉いさんの「あれおいてよ、共有のためのボタン」という一言によりソーシャルウィジェットが設置され"
- なかのん&マジックさんのツイート: "あれ、asyncにすれば大丈夫。… "
- なかのん&マジックさんのツイート: "まあ、アカウント作らないと何もできないように思えるシステムってのは良くないと思ってて、アカウント作らないと駄目なシステムであったとしても、作成前に必要情報を入力させていって、じゃあ、今回の情報でアカウント登録しておく?って聞いてくる楽天みたいな方式が正しいんだろうなって思う。"
- なかのん&マジックさんのツイート: "毎回入力すればアカウントを作らなくてもOKにできるなら、それが一番ストレス無いんだろうなと。"
- なかのん&マジックさんのツイート: "アカウントを先に作らせるというのは、今、入力したいことを後に回させられるということで、システムやその運営者が強権的に思えてよくないんだよな。"
- なかのん&マジックさんのツイート: "XUL のボックスレイアウトとflexbox は何が違うんだろう。flexbox にしろWeb components にそろ、Mozilla 内部では慣れ親しんだものなだけに、標準との違いがよくわからん。"
- なかのん&マジックさんのツイート: "HTML の通常のフローはUI には遅すぎるので、まだ、XUL は捨てられないって言ってたときはあったけど、flexbox で完全に置き換えられるのかな?"
- uint256_tさんのツイート: "ますますJavaScriptが広く使われてるのが意味わからなくなってきたし 今からでもいいから、Lispでもなんでもいいからまともな言語にしてほしい"
- なかのん&マジックさんのツイート: "HTMLにしろ、CSSにしろ、かちっと仕様の方を定義しても斜め上の事するWeb開発者が出てきて仕様の方が折れるという歴史の繰り返しなので絶対無理。"
- いざてんさんのツイート: "開発側の視点としては、Dartはよくできてるなって思ったんだけど、あんまり流行らないまま廃れたね。"
- なかのん&マジックさんのツイート: "IE一強時代も、Chrome一強の今も、互換問題が報告された時にブラウザ側のバグが原因ってのは少ないという現実がある。"
- なかのん&マジックさんのツイート: "Web開発者が ・仕様と違う事をやりつつ、一強のブラウザがバグってる ・仕様で定義されていない一強ブラウザの動作に依存している ということをやっていると、Webブラウザの多様性が失われていって、最終的には誰も幸せじゃない未来になる。"
histric-6
- なかのん&マジックさんのツイート: "えー…… Googleさん、ちょっと、Webをコントロールしようとしすぎでは。 / remove document.designMode · Issue #177 · w3c/editing https://t.co/9wA3y1lm6t"
- remove document.designMode · Issue #177 · w3c/editing
- なかのん&マジックさんのツイート: "Webはメンテされなくなったドキュメントやらアプリやらがやたらと存在し続ける場所だから、APIの削除って基本的にはやるべきじゃないよなぁ。"
- なかのん&マジックさんのツイート: "ChromeやFirefoxみたいな設計のマルチプロセスだとどうしようも無い気がするけど、どうなの…… / https://t.co/vCWlS0Z06m - On GNU+Linux switching tabs with alt+1 etc passes the hit of 1 to the page #もずでぶ"
- なかのん&マジックさんのツイート: "特に不便なスマホやタブレットでアクセスしている時に、ページ内の一部に読み込んだデータを追加していってくれるUIは便利なんだけど、各状態にURIを別途割り当ててくれていないと情報のシェアには不便なので、そういうところは意識して欲しい。"
- なかのん&マジックさんのツイート: "オーソドックスなページだとUXは落ちるものの、逆に致命的な問題は起きようがない。オレオレUIでUXを向上させると、ぱっと見では便利になってても、開発者が想定していない不便が発生してる。フィードバックを受け付けて順次改善していくようなものじゃなければ、有り物を使ったりすべきなんだろうな。"
- なかのん&マジックさんのツイート: "特定のURLを特定のウインドウで常に開くようなアドオン無いかな……bugzilla専用のウインドウ作ってタブまとめないとあかん感じになってきた。"
- なかのん&マジックさんのツイート: "最近のGoogleは本当におかしな方向に行ってるとしか思えない。実験実装にしても発想が非常識過ぎる。例えユーザーがそれを求めたとしても、その内容というか発想は非常識過ぎる。 https://t.co/HG0xzE6eUx"
- Chrome Canary、Web検索時に検索語句だけをOmniboxに表示する機能をテスト中 | スラド IT
- なかのん&マジックさんのツイート: "Google Chromeのトップに居てるDarin FisherとはMozillaで彼がやってた時期に面識あるんだけど、こういうのを是とする人と思えんので凄く不思議なんだが。"
- なかのん&マジックさんのツイート: "プロジェクト細部までトップが決定できるとか、そんな幻想の話ではないというぐらいに、割と根幹に関わる話よね、特にChromeのシェアを考えると、Webの未来に直結しかねない。"
- KIMATA RobertHisasiさんのツイート: "(続き)UAの挙動を指定するdownload属性の利用は target="_blank" 同様に別途検討が必要なのではと思いますが、どうでしょうか。pdfへのリンクなら、ユーザーによってダウンロード、そのままブラウザで読む、ダウンロードを経ずにPDFのリーダーで読むなど期待する挙動が違うのではと思いますので"
- なかのん&マジックさんのツイート: "ダウンロードするという予告のもと、確実にブラウザにダウンロードを促すには必要不可欠なので必要だと思うんだよな。昔だと、MIME設定がひどくて、ダウンロードリンクをクリックしたはずが、膨大な容量のバイナリファイルをプレーンテキストとして表示しようとして「攻撃」を食らったりしたし。"
- なかのん&マジックさんのツイート: "PDFを普段はブラウザで開きたいけど、PDFをダウンロードしたい場合もある時に、サイト側が通常のリンクとダウンロード用のリンクと別途用意してくれてるケースは正直、便利で助かってる。"
- なかのん&マジックさんのツイート: "サイト側が使い方間違うと被害ありそうではあるんだけど、まあそれはたいがいの機能がそうな気もする。"
- なかのん&マジックさんのツイート: "普通の人がメリットそうそう無いと思うけど、HTMLファイルをダウンロードさせようとすると、やっぱしそういう機能しかないかなーとも。"
- なかのん&マジックさんのツイート: "最近、ひとつのアカウントでしかログインできないアプリの設計ってクソだなって思うようになってきた。"
- なかのん&マジックさんのツイート: "全然関係無いけど、ふつうのサイトの開発に必要ないけど、ブラウザの開発には超便利な機能が無いと、仕事柄非常に困るので、HTML4の後、<base>が消えたりしないかと冷や冷やしてた。あれ、バグってるサイトをダウンロードしてテストする時にむっちゃ便利なのよね。"
- なかのん&マジックさんのツイート: "あとEdgeよ、いい加減にdata URIをフルサポートしてくれ……"
- なかのん&マジックさんのツイート: "んー、Nightlyのslow-loading trackersをブロックする機能、他のアプリにLANの帯域を食い潰されてると画像の読み込みとかに悪影響出てる気がする……"
- なかのん&マジックさんのツイート: "auxclickイベントの再実装、どうしたもんかなぁ。いつやろう。どうにかねじ込まないとこれマズすぎる。"
- なかのん&マジックさんのツイート: "ダウンロードしたブツの正当性を確認するためにハッシュ値を確認させようとするの最悪極まりないUIなのになんでか非難されない……"
- なかのん&マジックさんのツイート: "これ読んでると、"OSSだから誰でも好きな機能を"とか、現実を知らない人居るようで、現実ではなく、妄想ベースの結論は「今の自分に都合の良いところに落ち着くだけ」なんだなと。 https://t.co/IApZpstnEi"
- Mozilla、EdgeがChromiumベースになることに対しGoogleの独占を危惧 | スラド IT
- なかのん&マジックさんのツイート: "こんなこと言えちゃう人は、だれでも無断で好きなパッチをツリーにコミットできると思ってるんだろうか……"
- なかのん&マジックさんのツイート: "実装が一つの場合、使いやすいAPIのために元の設計を大きく書き直すということはコスト面を考えると無いのは明白ですな。今回、Geckoが65でkeypressイベントを(事実上)Blink/WebKitに合わせて標準化された動作に半年以上かけて修正したのも異なる実装だったからこその話なので。"
- なかのん&マジックさんのツイート: "こういう大きな書き直しが無いとどういう実装になっていくのか、コードを長期間にわたってメンテしたことある人なら分かるんだけど、ハッキーなパッチでどんどんバグだらけの無理矢理な修正が積み重なっていき、袋小路に。その状況は短期的にはユーザーにとって好ましく見えるのがたちわるいところ。"
- なかのん&マジックさんのツイート: "何しろそれなりに動いてるものが即座に追加され、簡単に治りそうに見えるバグが残ってるだけに見えるからね。そして、Blinkの挙動やテストをGeckoでの実装時に確認すると、Blinkはだいたいそうやってるんだなというのが見えてくるのでつらい。"
- なかのん&マジックさんのツイート: "とりあえず、最近ますます速度が上がって、Webの進化に自分が関わってる所以外はついていけないんだけど、なんで「落ち着いてる」って言ってる人を結構見かけるのか不思議だ。"
- なかのん&マジックさんのツイート: "Geckoの場合、開発者やプロジェクト全体にとって興味の無かったモジュールはNetscape時代からほとんど大きな変更無く放置され、それがさらに誰も触りたくない魔窟になっていってた。その内のひとつ、editorを引き取ったのは、書き直さないとこれから増えてくるAPIを実装でき無くなると思ったからで。"
- なかのん&マジックさんのツイート: "実装が一つしか無かったら、変わり者が出現して、それを容認してくれるマネージャーがいないと、そういう場所はどんどん進化から取り残されていくだろうね。特にWeb開発者がそこに熱烈な仕様案を書いても誰も実装しない未来が待ってるのは確実。"
- なかのん&マジックさんのツイート: "大きく書き変えての実装には、既存サイトがつぶれたり、regression報告をトリアージするコストも当然含まれるので、外部から来た大きすぎるパッチを無条件に取り込むなんてことも期待できない。"
- なかのん&マジックさんのツイート: "Webブラウザの開発でつらいのは、既存の実装がある所にその設計をまったく考慮しない仕様案がしょっちゅう出てくるところ。なので、案の段階で、自分の所に不都合な形のAPIにならないように代替案をなんか考えないといけない。実装がひとつしかなかったら、その設計に依存したAPIしか通らなくなる。"
- なかのん&マジックさんのツイート: "まあ、どのブラウザでも実装が難しすぎて消えていった仕様もあるけど、そういうのがより極端になっていくやろね。"
- なかのん&マジックさんのツイート: "極端な話、実装書いて仕様案だけWICGに投げて、オープンを装ったり出来るんだよな。"
- なかのん&マジックさんのツイート: "仕様策定で、その現場に居てる人の顔を立てて妥協したら、その人の所属する企業の他の部署の調子に乗った奴からの恫喝に仕事増やされ、それを対応したら、さらにその企業の他の部署がてんやわんやの大騒動になったというのが2018年の私のメインの仕事の顛末でして。"
- なかのん&マジックさんのツイート: "自社製品が後出しジャンケンでinvalidとされるような仕様には二度と合意しないという気にしかならないよ、そんなことされちゃ。"
- なかのん&マジックさんのツイート: "は??? Firefoxのタブバーの"+"ボタン、マウスで長押ししたらcontainerを選べるとか知らなかったんですけど……"
- なかのん&マジックさんのツイート: "regression報告で初めて知った、なかなか衝撃のUI。デスクトップで長押しの発想はなかった。(まあ、戻るボタンとかは長押しあるけれども。)"
- なかのん&マジックさんのツイート: "普通に考えたら、昔の戻るボタンのデザインみたいに、"+"の脇に小さくでも、下向きの▼とか必要だよな。"
- なかのん&マジックさんのツイート: "Netscapeはブラウザをメインの事業のひとつとして、パッケージを売ることでも収益を上げていたので、アップグレードは当然金のかかる行為となってた。ここをMicrosoftは突いてきて、Windowsのプラットフォーム戦略の一環としてIEを無料で使えるブラウザとしてNetscapeの事業の資金源を潰しにかかった。"
- なかのん&マジックさんのツイート: "もちろん、汚いビジネス手法だと今でも思うんだけど、無料でもアップグレードを渋る人達すら居てる現在の現実を見ると、もし、ブラウザのアップグレードが有料のままだったとしたら、世の中、最新じゃないブラウザを使い続ける人が大量に居た(むしろ主流派になってた)であろうことは確実に思える。"
- なかのん&マジックさんのツイート: "そこを当時のMicrosoftが狙っていたとも思えないんだけど、結果的にブラウザのように更新頻度が高くて、常に最新版にしておかないといけないものが無料で手に入るのが当たり前になった現状を作ったMicrosoftの歴史的な決定は今のWebのセキュリティに無茶苦茶貢献したと言えると思う。"
- なかのん&マジックさんのツイート: "もし今でもWebブラウザが有料のソフトウェアで、バージョンアップに金がかかるのであったなら、ブラウザのバージョンの断片化は昔のそれよりはるかに酷くなってて、Web自体がここまで使いやすいプラットフォームになってなかったんではないかな。"
- なかのん&マジックさんのツイート: "こんだけブラウザが多機能になってる時代に、Ctrl + Uがソース表示に使われてるの、むっちゃ勿体ないように思う。開発者用は全部Shift付きで良いような(開発者的に不便ならShiftLockみたいなのキーボードレイアウト関わらずできるようにするとか)。"
- なかのんクエストさんのツイート: "@momdo_ ああ、マウスジェスチャーは冬の時代かもですね……あれってアプリが実装するのも変なようには思いますが(OSから結果だけAPPCOMMANDとかのイベントで来いよって感じが)。"
- マウスジェスチャー - Wikipedia
- マルチタッチ - Wikipedia
- なかのん DAYS''さんはTwitterを使っています: "思った以上にキャレットが多かったですね。ちなみに、用語的にはカーソルは、マウスカーソルを指すことが多く、キャレットを使った方が誤解が無くなります。"
- なかのんクエストさんのツイート: "というか、Windowsってなんで未だにデスクトップアプリのセッション復元に関するAPI整備を未だに行わないんだろうかと不思議。OS側で仕組みを用意してやれば、開発が活発なアプリは追従してくると思うんだけど。"
- なかのん&マジックさんのツイート: "なんだかんだで、メニューって便利よね。モダンなアプリのデザインではどんどん廃止・オプション扱いにされてるけど。最短でのアクセスはできないけど(最低でも2クリック)、整理されてるのでアクセスしにくいメニューってのはそうそう無い。"
- なかのん&マジックさんのツイート: "ネイティブのタイトルバーはWindowsの場合、アプリのプロセスがハングアップしてても操作可能なので、GPUドライバのバグとかで固まりやすいメディアプレーヤー系では使えるようにしておいて欲しい。自前のモーダルダイアログ出すアプリとかだと詰むんだよなぁ。"
- なかのん&マジックさんのツイート: "observer (listener)って綺麗にデザインできるけど、runtimeコスト高いなーと思う今日この頃。"
- なかのん&マジックさんのツイート: "ところでドロップダウンリストの「選択」って用語、一般的には開かれてるリストをハイライトしてることを言うのか、それを選んで閉じた状態を言うのか、いまだによくわかっていない。"
- なかのん&マジックさんのツイート: "説明文書いてると後者を「選択」というのが自然な気もするけど、じゃあ、前者をどう呼ぶ? って感じが。"
- なかのん&マジックさんのツイート: "Ctrl+ZXCVみたいに、Ctrl+Shift+CXVあたりもリッチテキストを扱えるアプリ間で暗黙の共通のショートカットキーとならないんだろうか。 / 【レビュー】[Windows]+[V]キーでテキストから書式を取り除いて貼り付け「PureText」 - 窓の杜 https://t.co/TQjnNbHQ5l @madonomoriさんから"
- なかのん&マジックさんのツイート: "OSに標準搭載されてるアプリがショボくて、なんでこんなのあるんだって思う人も多いかと思いますが、サードパーティーのアプリはあれを参考にすることでOS上でアプリ間共通の用語、メニュー構成、ショートカットキー、その他使い勝手を実現できるので、無いとえらいことになるんです。"
- いけち@狐耳さんのツイート: "弊社のITスキルは偏差値3くらいしかないので、Outlookが最新版に更新されてアイコンが変わった日の朝、「メール開くやつがなくなった。直して欲しい」という電話で情シスのヘルプデスクがパンクした。"
- なかのん&マジックさんのツイート: "いやほんとに、PC 等に苦手意識のある人は理解せずに使い方を覚えてるだけなので色々と難しい。"
- なかのん&マジックさんのツイート: "アプリの操作方法を驚きの固定手順で覚えてる人ってライトユーザにはたぶん多くて、「これぐらい分かるやろ」っていう変更がかなりあかんパターンは多いと思う。かといっていつまでもUIデザインを変更しないわけにもいかなく…… https://t.co/9StksFHaL0"
- 最近気になったアプリケーションの操作方法の変更について | アクセシビリティBlog | ミツエーリンクス
- なかのん&マジックさんのツイート: "変更回数が少ない方が良いのは間違いないけど、じゃあ、溜め込んでおいて、一回のアップデートで大変更が良いのか、ちょっとずつ変化していく方が変更に追随しやすいのか、その辺はデータ見たことないのでプロダクトとしてどちらが好ましいのかよく分からない。"
- なかのん&マジックさんのツイート: "ふと、MozillaのCSSのbindingによってショートカットキーが特定の要素に付加された時にどこからその処理が来てるのか気になったのでデバッグビルドでスタック見てみたら、非同期で投げられててどっから来たのか分からないという……"
- なかのん&マジックさんのツイート: "そら、ソースコードを読んでてもたどり着けませんわ……"
- なかのん&マジックさんのツイート: "今、ショートカットキーはキーイベントがある度に、連結リストを辿って、マッチするかどうか確認するようになってて、メモリ削減には貢献してるんだけど、その代わりにオーバーライドするのがちょっと無理って感じになってしまってる。"
- 小池宏幸@Piascoreさんのツイート: "トグルボタン問題、こういうのやね。… "
- なかのん&マジックさんのツイート: "あの分かりにくいウイジットを使い出したAppleのデザインセンスわけわからん。"
- Takashi Kawasakiさんのツイート: "この前のトグル問題の本質だと思うけど、説明に動詞がほしいし、日本語がそもそもおかしい。「起動時またはバックグラウンドで起動」って、何が「または」なんだよ。… "
- Takashi Kawasakiさんのツイート: "HUAWEIのこの辺の設定、全体的に意味がわからん。「消費電力の高いアプリ」っていうのはユーザーが表明するという意味なのか、それとも他の意味があるのか。英語か、中国語で語彙を調べた方がよさげではある。… "
- なかのん&マジックさんのツイート: "GPUのドライバがクラッシュしたっぽいけど、この場合、NightlyのUIは完全にお亡くなりになるのか。メニューとかすら自前レンダリングのアプリはこういう時は弱い。"
- なかのん&マジックさんのツイート: "本格的にContainer Tabを使い出して思うけど、ウインドウ単位でContainerになって欲しい。せめてデフォルトで利用されるContainerがそうであって欲しい……"
- なかのん&マジックさんのツイート: "もう、本当にWin10に「ディスプレイのタッチ機能」を一時的に無効化するUIつけて欲しい。子供がさわりに来ると使えなくなる。"
- なかのん&マジックさんのツイート: "でも、2018年にもなってって感じだけど、自分専用のファイラは作った方が仕事がはかどるのではって思うこと多いな、最近。"
- なかのん&マジックさんのツイート: "Mozillaのソースコードとか読んでみると良いよ。ネイティブUIとできるだけ同じルック・アンド・フィールを実現するために、どれだけのコードが必要になってて、どれだけメンテナンスコストかかるかなんとなく想像できると思う。それでも全然完璧からはほど遠いんだし。"
- なかのん&マジックさんのツイート: "ウイジットを全て自前で実装して、本当にその価値があるのってブラウザみたいに自前でレンダリングするしかやりようが無いような特殊なアプリか、クロスプラットフォームでUI部分のコードを完璧にシェアしつつ、自分達でその仕様をコントロールする必要がある場合だけだよな。どちらにしろ特殊。"
- なかのん&マジックさんのツイート: "ホイールとかタッチとか、あの辺はGUIアプリでも入力が来すぎてどうなのってところあるし、今、Mozillaでもcoalescingしようかみたいな話は出てるけど、それぐらいかなぁ。"
- なかのん&マジックさんのツイート: "macOSが特に顕著なんだけど、ホイール操作で1px単位のスクロールのイベントが飛んでくるの、本当にやりすぎでは。"
- なかのん&マジックさんのツイート: "passiveじゃないホイールイベントやタッチイベントのリスナが居てると非同期スクロールも使えないんで、細かすぎるスクロールを示唆するイベントはパフォーマンスの低下につながってる。"
- ɔさんのツイート: "3/19にリリース予定のFirefox 66から、疑似カーソルが正確に座標を追尾するようになります。普段使っているブラウザが対応するのは本当に嬉しいので 確かみてみろ! 完"
- なかのん&マジックさんのツイート: "その節は本当に勉強になりました。"
- なかのん&マジックさんのツイート: "個人的にはUIにアニメーションは派手さ以外の面では要らないって思ってます。あれがあることで変化が分かりやすいってのはユーザテストしてない結論だと思ってる。大概の人はそんなに視界の変化について注意してないと思ってる。"
- なかのん&マジックさんのツイート: "みんなそんなに視界の変化に注意を払ってるなら交通事故なんて起きないんですよ……"
- なかのん&マジックさんのツイート: "人は見ようとしているもの以外は視界にあっても認識していないと思う。"
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「確かに白い背景のUIが多い昨今、白いマウスカーソル使うのは理にかなってないな。」 / Twitter
- Asa DotzlerさんはTwitterを使っています: 「Did you know you can easily change your pointer color and size in Windows? I didn't until last week but I've been running with a yellow pointer for several days now and it's SOOO nice to be able to find the thing without all that jiggling and circling. https://t.co/Rmglg0a304」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「未だにフォーカスが移動しちゃいけない時や、フォーカス移動がからむデバッグと、DnDのデバッグは面倒くさい。」 / Twitter
- Manabu UenoさんはTwitterを使っています 「マウスオーバーすると色が薄くなるボタンとか、下線が消えるリンク文字とか、何を考えてるんだろう。そのオブジェクトが視覚的に体現していた意味性を手放すということは、操作を拒否してることではないか。そもそもマウスオーバーによる変化は全て不要だと思う。UIを複雑にするだけ。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「私はマウスホバーという、「状態の変化」が正常に処理されたか見えないと困ることがあるので変わって欲しいと思う。みなさんは、アプリのフリーズ(一時的なものも含め)にどうやって気付いてるでしょうか? マウスカーソルが期待通りの変化をしなかったことから気付くこと、多くありません?」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Firefox for Androidでは長押しでmousemoveイベントと、その副産物のhover状態の変更が起きなかったんですが、わざわざ去年か一昨年に入れましたよ? そうじゃないと困るサイトがあったので。 https://t.co/J8oklxOvav」 / Twitter
- なつき@Webデザイン体験レッスンさんはTwitterを使っています 「マウスオーバーによる表現、PCユーザーが中心だった時台は必要でしたがスマフォ・タブレットユーザーが中心だとわざわざ付ける必要がない気もしますね。 皆さん今でもマウスオーバーで見た目を変えているのでしょうか…?」 / Twitter
- なつき@Webデザイン体験レッスンさんはTwitterを使っています 「@d_toybox 確かに長押しで変化しますね。スマフォでリンクなどを長押しするユーザーがどれだけいるのか気になります…」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「@Stocker_jp これがないとメニューバー内のメニューがリンクになってるのに、そこにhoverして開かれるポップアップメニューを使うことを期待してるサイトが全滅なのですよ。」 / Twitter
- なつき@Webデザイン体験レッスンさんはTwitterを使っています 「@d_toybox スマフォでそういう表示が出るサイトはそろそろ改善して欲しいですね…」 / Twitter
@makoto_kato
- Makoto Kato ︎︎さんのツイート: "Bug 1472618 - navigator.platform returns "Win64" in Firefox but "Win32" in Chrome and Edge on Win64 OS https://t.co/2WTuOEB0S0 というか、Win64なIEはWin64と返してたのに、EdgeになるとWin32になるってなんだそれ"
- Makoto Kato ︎︎さんのツイート: "Win64なFirefoxでWin64と返すようにしたのはずっと昔の自分ではあるが"
- Makoto Kato ︎︎さんのツイート: "Got win64/arm64 laptop!!… "
- Makoto Kato ︎︎さんのツイート: "重いんだけど、これ。しかも電源がType Cじゃないんだ"
- Makoto Kato ︎︎さんのツイート: "syswow64ある意味わからない"
- Makoto Kato ︎︎さんのツイート: "… "
- Makoto Kato ︎︎さんのツイート: "No arm64 string in Edge Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299"
- Makoto Kato ︎︎さんのツイート: "SunSpider on Edge + Windows 10 / arm64 https://t.co/CRR3TsS1gw… "
- Makoto Kato ︎︎さんのツイート: "Emulation mode of Windows 10 / arm64 is slow... (this result is Firefox x86 on emulation mode) https://t.co/51OzDrjkUb… https://t.co/P8SJVFhMqR"
- Makoto Kato ︎︎さんのツイート: "もしかして、sysarm32がthumb2でsyswow64がx86のバイナリってことか"
- Makoto Kato ︎︎さんのツイート: "notepad.exeがx86とthumb2とarm64の3バージョン含まれてるとか、誰得だよ"
- Makoto Kato ︎︎さんのツイート: "SONYはWebKitにコミットしてる (WebKit reviewerも社員にいる) ので、次もWebKitだと思いますよ。任天堂はACCESS次第 (これ https://t.co/TbaGqgBZsa)… "
- WebKitブラウザ「NetFront® Browser NX」|ブラウザ|製品情報 | 株式会社ACCESS
- Makoto Kato ︎︎さんはTwitterを使っています 「GNOME/Waylandで整数じゃないDPIスケールを有効にすると、整数倍のDPIでも非常にぼやける。使えなすぎた」 / Twitter
@rockridge07
- Rockridgeさんのツイート: "Fx55:Windows版で、描画関係の処理において常に垂直同期(vsync)タイマーが使用されていることから、ソフトウェアタイマーを使用するモードを削除した。 / “1352074 - Firefox fixes Window…” https://t.co/cHdNp6G3Vl"
- Rockridgeさんのツイート: "FirefoxにPolicy Engineと呼ばれるコンポーネントが追加される見込み。システム管理者が作成したJSONベースのカスタマイズ設定を読み込み、本体に反映させる。また、"ESR 60"という表記にも注目すべきだろう。 https://t.co/VZpDE6sj2H"
- Rockridgeさんのツイート: "FirefoxのUIアニメーションがPCにかける負荷は軽微なものではない。Mozillaはマシンパワーに乏しい環境ではフレームレートを下げ、負荷を減らそうとしている。参照:https://t.co/t2qYcmhKaR / “T…” https://t.co/VxPpYlM7XB"
@shibu_jp
- 渋川よしきさんのツイート: "動的ウェブの高速化、そろそろ、データ変更時にそれを表現するhtml片を生成まで事前にやっておく、みたいになって、エンタープライズなバッチシステムに回帰していくのでは。"
- 渋川よしきさんのツイート: "What's 3 Words、すでにあるマップコードの仕組みを単語の空間にマッピングしたものという理解でいいのかな?というか、これもベースはデンソーなのか。すごいな、デンソー 。 https://t.co/UzIgpTfiyr"
- Mapcode - Wikipedia
- 渋川よしきさんのツイート: "ガントチャートは依存関係を持ったタスク情報をコンパイルしたら出力されるべきものであって、ガントチャートを入力するものではないよね。"
- 渋川よしきさんのツイート: "QML向けのReact Nativeが出れば、クライアント開発の一発逆転はあり得る気がしてる"
- 渋川よしきさんのツイート: "アイディアを書き留めたり、一次入力としてよく使ってます。編集は提案を自動で作って選択肢から選ぶぐらいのUIが実現したらできそう。構成は複雑なカードゲームのユニット編成とかゲームでやってるからできそう。 https://t.co/12OA5XZecV"
- 渋川よしきさんのツイート: "僕の中でmacOS機が良いのはディスプレイが綺麗で、フォントが綺麗で、スクロールがなめらかで、SSDがそこそこ高速なコンピュータという位置づけなので、他のOSはまだいまいち。特にスクロール。最近の普段使いはLinux機だけど。"
- 渋川よしきさんのツイート: "Windowsってスクロールイベントが行単位なんだよな。Xもそう。Waylandはwheelは「ボタンクリック」って書かれているので期待薄だけど、fingerでのスクロールはkineticって書いてあるので、WindowsよりはLinuxとかの未来に期待してる。"
- 渋川よしきさんのツイート: "macとiOSは常にデバイスのdevice pixel ratioが一定で、macはretina機種だと2。2880x1800の物理解像度でも、文字一番小さい設定にすると、論理的な作業スペースは1920x1200。標準で1440x900。内部では2倍の3840x2400でレンダリングしてスケーリングしている。"
- 渋川よしきさんのツイート: "これ、すごく無駄に見えるようだけど、画面描画はアンチエイリアスが効いて悪くない。あと、スクリーンショット撮ると、常に2倍のサイズで取得される。RPAでオートメーションするときにDPI変えても動作に影響ない。macはこの画面の描画とピクセル単位スクロールイベントの2つは尊い。"
- 渋川よしきさんのツイート: "MacBook Proは高い、○○なら/自作したらもっと安い、と言っている人よく見かけるけど、System 76ならたしかに半額ぐらいで32G/1TBマシンが選べる。なんだけど、ユーザーランドの部分はともかく、電源管理だったり、スクロールだったり、Retina対応だったりの部分は圧倒的にmacがいいのだよな。"
- 渋川よしきさんのツイート: "Surface Proも身近で買った人は多いけど、もろもろ電源の問題だったりとかトラブル抱えていたりするし、いろいろ厳しさがある(し、Surface 2とWindows Phone 7でハードの寿命とサポートされなさが異常だったのでMS製ハードはしばらく近寄りたくない)"
- 渋川よしきさんのツイート: "Macがダメになっているといっても、他のダメさがまだ勝っているので、しばらくはmacかなぁって。Linuxが8th Genの電源管理完全にサポートしてWaylandでピクセル単位スクロールが実現したらLinuxメインにしたさはある。"
- 渋川よしきさんのツイート: "UI部品。今までもX, Yと重なりのZの3次元であったけど、最近はZ軸でフォーカスアウト(ぼかし)や、アニメーションという時間軸tが入ってきた。その次は回転でも入るのかな。"
@uint256_t
- uint256_tさんのツイート: "#Naglfar - クラッシュしたら、Issueで報告してねって表示がでるようにした"
- uint256_tさんのツイート: "#Naglfar これ、Naglfarはすぐにクラッシュするからその都度報告してもらってたら大変なことになりそう()… "
- yumetodo-鳥の氷河から逃げるさんのツイート: "違法なHTMLに対して「あきらめましょう」と出す機能はありますか?… "
- uint256_tさんのツイート: "これが許されるなら、HTML はもっと健全な方向へ進化していったんだろうなあ (今のところそういう機能はなくて、おかしなHTMLでも無理やり解釈するようになっています… "
- なかのん&マジックさんのツイート: "なんかこう、MS vs. Netscapeな頃を彷彿とさせてくれてて、良い。"
- uint256_tさんのツイート: "ブラウザは一人の人間が作るものじゃないよ。"
@yugui
- Yuki Yugui Sonodaさんのツイート: "だからIMEの状態を見ずにエンターキーイベントだけ拾って検索を開始するのはやめろと何度言ったら"
- Yuki Yugui Sonodaさんのツイート: "Googleは正攻法と正論を突き詰めて成立してる会社って印象があって。品質を保ちたい→テストを書く。テストしづらい→テストしやすい設計をする。テストを浸透させたい→浸透させる職種を作って全チームに配置。テンソル計算が遅い→速いプロセッサを作る。時刻ズレで整合性が辛い→原子時計を設置"
@shirouzu
ダブルバッファリング
- Shirouzu Hiroaki(白水啓章)さんのツイート: "描画のちらつき抑止用ダブルバッファリング、OS側がそれ的な動作をサポートしてくれないものかしらん?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: ".NET には存在しているようだ。 https://t.co/SjjgMV7Dco"
- ダブル バッファリングされたグラフィックス | Microsoft Docs
- Ryota Shioyaさんのツイート: "いまどきの Windows でデスクトップ・コンポジションが有効な状態だと実質的に常にダブル・バッファしてるようなもんだと思うんですけど,どうでしょう?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "その意味ではその通りです。 ただWindowDCにGDIで直接お絵かきすると、その過程がすべてリアルタイム更新されるので、ちらつくんですよね。(手動ダブルバッファなしに)BeginPaint~EndPaintをまとめて最終結果だけ表示するモードも欲しいなぁ、と。… https://t.co/sH84BFwODx"
- Ryota Shioyaさんのツイート: "マシンパワーゴリ押しで十分速く更新されるので運悪く DWM の更新タイミングにぶつからないぎりは平気かなとか思ってたんですが,ネットみてるとそんな簡単にはいかないみたいですね・・・ ところで,BeginBufferedPaint という API もあるようですけど,こちらで解決されたりしませんか?… https://t.co/lk6Pkbv9Y2"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "おぉ、いつの間にかこんなAPI(Vistaで増設)が…これを使えば大丈夫そうですね。 ありがとうございます! (Vista以降のAPI増えたし、そろそろ「XPでは起動もしません」にするかな)… "
- Ryota Shioyaさんのツイート: "Vista で導入されたコンポジションのバッファリング関係の API を眺めていたら、「あれ?これは名前からして目的そのものなのでは? 」という感じでした! 頑張れば動的ロードで XP でも最低限動くように出来るとも思いますけど、流石にもう打ち切っても良いのではないかなと言う気がします… https://t.co/TvPHzgaPHD"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸、DirectWrite(Win7以降)やカラー絵文字(Win8.1以降)対応しつつ、未だにWin98サポートのすごさ。 OS毎の分岐で悪夢なコードになっていないか、気になる。 https://t.co/kIhkQPQp9D… "
- 秀まるおのホームページ(サイトー企画)-秀丸エディタ
- Shirouzu Hiroaki(白水啓章)さんのツイート: "例外ハンドラ内でMessageBoxを生成すると、メッセージループが回る=同一スレッドのタイマー処理が動くスキを与えてしまう問題。 MessageBox専用スレッドを別途生成すれば一応解決するが、やや牛刀感。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "IP Messengerでも(昔から)非アクティブでも選択が見える形にしている。 ただしオーナードローではなく、WM_KILLFOCUSをブロックというhack的な実装。… "
- やねうら王さんのツイート: "『将棋神やねうら王』は、ListViewが複数配置されていて、そのすべてがアクティブという特殊なUIデザインになっています。この理由について記事にしてみました。 ListViewが複数あるこの世界で世界最強 https://t.co/bDNHg2i7Jr"
- システムのフォントサイズを大きくする機能が追加 ~「Windows 10 RS5」Build 17692 - 窓の杜
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ユーザには良い機能だが、開発側はダイアログで表示が切れる等に気をつけないと。(以前、IEEEでも有名な年配の米女性から、丁寧な指摘メールが届いた経験が、、、)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ユーレカ! ent->TimerProcの中で(レア設定の場合に)MessageBoxを通っていた。 MessageBoxは内部メッセージループを持つ=パケット処理やタイマー処理などが再入的に発生する。 msgActイテレーション中のMsgBoxでパケット受信が発生、別関数でのmsgActイテレーション再発生が原因。(再現も完了)… https://t.co/0G9RELEoD0"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WM_INITDIALOGのコンテキスト内だと、MessageBox等のModalDialogを作っても、Modalにならない不思議(まるでオーバーラップ的な挙動)。 (さらに、PostMessageでわずかにDelayさせても回避できない様子)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "GetForegoundWindow API、Edge(UWP)内部での発行 と、一般プロセス発行で違う値が返るなぁ…Edge側Containerが余計なことをしているように見える。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「これとは違うかもだけど、開発流行に追随だけで(著しい外部メリット出せてないのに)「俺ってイケてる開発者」と自意識だけ拗らせてる人、稀にいたっけ。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「学生さんが React で課題作ってて,「やたら色々ややこしいし何が良いのかわからない.jQuery ならもっと簡単なのに」みたいなこと言ってて,何年か前にこの記事みて笑ってたときと状況が同じだった.https://t.co/ug89AonP0U」 / Twitter
- 2016年にJavaScriptを学ぶとこんな感じ. このストーリーは、Circle CIに投稿された”It’s the… | by Hiroshi Takeuchi | Medium Japan | Medium
- R. ShioyaさんはTwitterを使っています 「個人的にはべつに React とかを否定したい訳ではなくて,どこでもきちんと動く複雑大規模なものを作ろうとしたらああいうのが必要なのはわかるのだけど,それはそれとして学習の初期コストはかなりでかいよなぁと思う」 / Twitter
- すらーぷの妖精#フォロバ100さんはTwitterを使っています 「React死ね。サイトのUI戻すのにReactじゃあマジで難しい」 / Twitter
- KOBA789さんはTwitterを使っています 「WASM 使って好きな言語でフロントエンド開発みたいな話、夢はあるけど乗り越えなきゃいけないハードルはまだまだ無限にあるぞ! おもしろいのは確かだからみんなも試してみてくれよな!!」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「まぁ、無限とはいうけどWasm Interface TypesとWasm GCが普及したら大分いけるんじゃないかと思いますよ >RT」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「あとは... スレッドとかWASIの諸々と(そのブラウザー上での実装)があると大きいかなぁ。」 / Twitter
- 第682回 GNOMEのオンラインアカウント機能を極める:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- Kouji MatsuiさんはTwitterを使っています 「いや、WPFのようなXAMLベースのフレームワークだと、コレクションの表示とか極端に実装しにくいからMVVM使うわけで、ボタンとテキストボックス一個と言うのは、趣味の開発でも想定外なのではという...」 / Twitter
エディタ
その他
その他
- ed(1) is Turing-Complete – *nix Windows
- 最初のアウトライナー
- Outliners & Programming
- 技術文書
- What I learnt from coding a text editor in C
- 「Skype」のメッセージからタスクを生成、“Microsoft To-Do”へ直接登録可能に - 窓の杜
- ClangdでC++ソースコードを補完する際にコンパイルオプションを指定する方法 - uchan note
- 世界を劇的に変えた大発明の1つ「スプレッドシート」誕生秘話 - GIGAZINE
- 「CKEditor 5 v16」リリース、コードブロックのサポートや制限モードの導入が行われる | OSDN Magazine
- Pandocで索引をどう作るか - golden-luckyの日記
- 抽象データ型を自作する - golden-luckyの日記
- matsumoto19.pdf
- 2020年6月30日 Fedora,デフォルトエディタに「nano」を採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
- 全能テキストエディタ「Vim」の歴史と開発者に広く普及した理由 - GIGAZINE
- TwitterがiOSアプリ向けに新しいオープンソースのテキストエディタAPI「Twitter Text Editor」を発表 - GIGAZINE
- iOS版「Twitter」アプリのテキスト編集コントロールがオープンソース化、“GitHub”で公開 - やじうまの杜 - 窓の杜
- 「記事中の誤字を教えてくれるエディタ」をイギリスの新聞社が開発 - GIGAZINE
- vi.1
- CodeMirror - Google 検索
KeyboardEvent
MS
- なかのん&マジックさんのツイート: "そうだ、 https://t.co/xaBjzAiLxI を一度、アップデートしておかないとな。"
- KeyboardEvent.key mapping of each browser - Google スプレッドシート
- なかのん&マジックさんのツイート: "ラフに調べて見ても、Edge、今回の大型アップデートでKeyboardEvent.keyの値が改善してるものの、まだいくつかアレやわ……バグ報告しとかんと。"
- なかのん&マジックさんのツイート: "というか、なんで、Travisが居てるのにこんなことになるんだよ。"
- なかのん&マジックさんのツイート: "UWPのイベントモデルを全く知らんけど、デスクトップアプリで受け取れてた仮想キーコードが受け取れなくなってるとも思えんしなぁ。"
- なかのん&マジックさんのツイート: "それにしてもまだ、EdgeはKeyboardEvent.codeに対応してないのか。これ、かなり簡単なんだけどなぁ。"
- なかのん&マジックさんのツイート: "それともUWPでscancodeが取れなかったりすんのかな?"
- なかのん&マジックさんのツイート: "よくよく調べてみたら、Safariも既にKeyboardEvent.keyとKeyboardEvent.codeをサポートしてるやん。なんで、未だにKeyboardEvent.keyCode使ってるサイトが多々あるんだ?"
- なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeで、記号の入力キーを見るのだけは本当に頭おかしいのでやめていただきたい。真面目に対応しようとすると、各ブラウザの各OS版で、しかも各キーボードレイアウト毎に対応しないといけないのが昔から分かってる。"
- なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeの値に意味がそもそも無いので、各ブラウザが各OSで都合の良いようにマッピングしてるだけなので、UA文字列なりを確認してブラウザごと、OSごとに処理を分岐させるしかない。なので、ブラウザ側で他のブラウザにあわせた値に今更変更すると、既に存在してるアプリを壊してしまう"
- なかのん&マジックさんのツイート: "というわけで、こいつの互換性に問題ありまくりなのはブラウザ開発者側も分かってるから、標準仕様ではkeyCodeはちゃんと定義されず、keyとcodeという新しい属性が、その値のリストも含めて新たに標準仕様としてまとめられてる。"
- なかのん&マジックさんのツイート: "よく誤解されてるけど、勧告に至ってるKeyboardEventの仕様って2018年2月になっていも未だに存在しないからね。DOM Level 2 Eventsでも未定義: https://t.co/RnXVtM1buh"
- Document Object Model Events
- KeyboardEvent.keyCodeとは何か - WebStudio
- KeyboardEvent.keyCodeとは何か - WebStudio
- vyv03354さんのツイート: "> Mozillaのソースコードを公開した当時の履歴は既に残っていませんでした。 https://t.co/sPQl5E0cai… "
- mozilla-central-cvs: dom/public/idl/events/nsIDOMKeyEvent.idl@2df74fb33691 (annotated)
- なかのん&マジックさんのツイート: "おお、ありがとうございます。cvsのリポジトリのコピーあったんですね。助かりました。… "
- UI Events KeyboardEvent key Implementation Report
- UI Events KeyboardEvent code Implementation Report
- なかのん&マジックさんのツイート: "Firefox本体内で、たまに、 if (event.key === " ") { // something for spacebar } ってコードを見かけるけど、これたぶん間違ってて、 if (event.code == "Space") { // } じゃないといけない。確かASCIIの空白以外を入力するレイアウトがあったはず。"
- なかのん&マジックさんのツイート: "スペースキーをショートカットキーとして処理する場合、普通の文字キーと違って、物理位置の確認で普通は問題無いはず。(AltGr+?)スペースキーをTabとして使うという、超変態レイアウトもあったように思うけど、あのレベルは無視しても良いと思う、さすがに。"
- なかのん&マジックさんのツイート: "今やってる事: ・keypressイベントをnon-printableキーや、キーコンビネーションでは発火しないようにする ・keydownとkeyupイベントを、IMEの未確定文字列があっても発火するようにする Web開発者さんの負担を減らすために同時投入が望ましいと考えてます。 #もずでぶ"
- なかのん&マジックさんのツイート: "ようやくここまで来た。 / Intent to stop dispatching "keypress" event for non-printable keys and key combinations in Nightly and early Beta - Google グループ https://t.co/oYfGCNQBBb #もずでぶ"
- なかのん&マジックさんのツイート: "間もなく、Nightlyとearly Betaのデフォルト設定を変更して、keypressイベントの発火を止めますが、"dom.keyboardevent.keypress.dispatch_non_printable_keys_only_system_group_in_content"をtrueに変更すれば今すぐテストできますので、それで問題のあるUIやサイトを報告してください。 #もずでぶ"
- なかのん&マジックさんのツイート: ""keydown"と"keyup"イベントを未確定文字列がある場合にも発火するように(リリース版では)同時にやるんだけど、こっちはたぶん、そんなにバグが無いと思うんだよな。たぶん、あっても、イベントリスナ内で、KeyboardEvent.isComposingをチェックするだけで済む。 #もずでぶ"
- なかのん&マジックさんのツイート: ""keypress"イベントの発火中止は、Netscape時代からの(Geckoの最初期からの)実装仕様を変更しちゃうんで、影響範囲が大きい。また、chrome documentとか、system event groupでは引き続き発火してるんで、ソースコードから単純に検索してバグる場所を探し出せなくて厳しい。 #もずでぶ"
- なかのん&マジックさんのツイート: "ちなみに、keypressの発火を止める件って、keypressイベントの動作をUI Eventsの仕様策定中に、WGの編集者が、Firefoxの動作だけ違うから、それ以外を標準ってことにしてしまおうっていうひどく乱暴な話だったのに、それを盾にしてくるとはなぁ。"
- なかのん&マジックさんのツイート: "私は、もう歴史的な問題が積み上がりすぎだから、定義せずに、MAYで参考情報入れとけば良いやんってスタンスやったんやけど。そもそもFirefox以外のブラウザの動作も完全に同じじゃないし、Chromeもプラットフォームによって動作違うし。"
- なかのん&マジックさんのツイート: "本当にUI文字列見ないとクロスブラウザなコードを書けないパターンって、KeyboardEvent.keyCodeぐらいのものだと思うんだけど、他でもあるのかなぁ。keydownでハンドリングすべきイベントを、わざわざFirefoxの場合にだけkeypressでハンドリングしてるという理由が想像つかない。"
- Non-printable keys will soon stop firing keypress event (Affecting) | Firefox Site Compatibility
- なかのん&マジックさんのツイート: "未だにOSの違いを見てるクソサイトあるのか。KeyboardEventでよほどセンシティブなことやるとき以外は、PCかモバイルかぐらいしか見分ける意味が無いはずなんだけど。"
- KeyboardEvent.keyCodeとは何か - WebStudio
- JSer.infoさんのツイート: ""KeyboardEvent.keyCodeとは何か - WebStudio" https://t.co/MdNT9glaPb => https://t.co/QkP7hNkIJj KeyboardEvent.keyCodeの歴史や実装について。 keyCodeはOSやブラウザ間で問題があり標準化もされていないため、keyやcodeを代わりに使うべきという話。"
- uehajさんのツイート: "KeyboardEvent.keyとKeyboardEvent.codeは、 KeyboardEvent.keyCodeと違って、数値ではなく、文字列である / “KeyboardEvent.keyCodeとは何か - WebS…” https://t.co/xUIVeyCVQf"
- なかのん&マジックさんのツイート: "KeyboardEvent.keyCodeでググったりすると、KeyboardEvent.keyと、KeyboardEvent.codeの解説も書かなきゃいけないなって気がしてきてる。Reactのissueなんか読んでも、不信感しか湧いてこない。"
Range
- azuさんのツイート: "見てる: "range - Web API インターフェイス | MDN" https://t.co/1T4tv5Eq6t"
- range - Web API インターフェイス | MDN
- なかのん&マジックさんのツイート: "@azu_re DOM Rangeの生成・初期化コストの高さは各所で問題になってるので、速度には注意が必要です。"
- なかのん&マジックさんのツイート: "DOM Rangeの生成・初期化、あとは、大量にインスタンスが存在する時のDOMツリーの変更速度の低下は深刻。Quantum Flowでは、ここの速度の多少の最適化と、変更回数自体を減らしたりというのを、エディタ周りでは行ってる。"
- なかのん&マジックさんのツイート: "提案されてるStaticRangeで多くの場合は事足りるハズなんだよな。"
Web Components
Custom Elements
- Firefox Nightlyさんのツイート: "Custom Elements v1 are enabled in Nightly! https://t.co/wccEYEExji - MDN documentation and demo: https://t.co/K17kLhmV2f"
- Custom Elements - Web Components | MDN
- Rockridgeさんのツイート: "Fx59:予定通りNightlyチャンネルでCustom Elements v1がデフォルト有効化された。脱XBLに向けても前進となる。 / “1406825 - [meta] Enable Custom elements v1…” https://t.co/CzPOswCEDP"
- W3C HTML 5.3にCustom Elementsが統合された - 水底の血
- Using custom elements - Web Components | MDN
microformats2
- Rockridgeさんのツイート: "Fx50:microformats2対応の新パーザに一本化するため、旧パーザを削除。 / “1254367 – Remove old microformats parser now that we have the new mi…” https://t.co/1VgbEQWChZ"
JSON-LD
- schema.org 日本語訳 - ホーム
- schema.org構造化データマークアップのシンタックスにJSON-LDという選択 | HTML5Experts.jp
- Home - schema.org
- Silo Buster
- JSON-LD と Open Graph で構造化メタデータ対応 | blog.jxck.io
- ついに始まった、Google AMP(Accelerated Mobile Pages)を試してみよう! (1/2):CodeZine(コードジン)
- やっぱりWebComponents+JSON-LDがこれから熱くなるわけです | WP-kyoto
- JSON for Linking Data Community Group
- JSON-LD Guiding Principles, First Public Working Draft | W3C Blog
- First Public Working Drafts: JSON-LD 1.1 Syntax, JSON-LD 1.1 Processing Algorithms and API, and JSON-LD 1.1 Framing | W3C News
- JSON-LD 1.1
- JSON-LD 1.1 Processing Algorithms and API
Polymer
- Web Componentsを簡単・便利にするライブラリ「Polymer」を使いこなそう | HTML5Experts.jp
- Web ComponentsはじめるならPolymerで | apps-gcp.com
- Welcome - Polymer Project
- いまさら聞けない Polymer 入門 - Polyfills は Web Components の夢をみるか - Librabuch
- Polymer と Web Components の違い9選(もとい Polymer の便利機能) ::ハブろぐ
- Web ComponentsとPolymer【解説編】 - Qiita
- WebComponentsとPolymerコード比較 - Qiita
- Polymer を導入して Web Components による革命に参加する
- Web ComponentsやPolymerについてまとめる – Simple IT Life
- Polymer Japan Meetupに出演しました - EagleLand
- webcomponents.org
- VirtualDOM Advent Calendar 2014 - Qiita
- リアルな DOM はなぜ遅いのか - steps to phantasien
- JavaScriptでのDOM操作は重いのかという話とForced Synchronous Layoutについて - id:anatooのブログ
- Web Components | HTML5Experts.jp
- X-Tag ★ Web Components
- web.mit.edu/freebsd/head/sys/contrib/dev/acpica/components/namespace/nsinit.c
- skatejs/skatejs: SkateJS is a library built on top of the W3C web component specs that enables you to write functional and performant web components with a very small footprint. It focuses on size, performance and is built around a functional rendering pipeline.
- riot - デザイナはWeb Componentsに夢を見るのか - Qiita
- Shadow DOM 101 - HTML5 Rocks
- 2017年のWeb Components:新春特別企画|gihyo.jp … 技術評論社
- コンポーネント化: Web のために生まれ変わった従来の設計プラクティス | Microsoft Edge Japan
- Microsoft Edge と Web コンポーネント | Microsoft Edge Japan
- Web Components 周辺の仕様とか 2017年秋 - EagleLand
- 連載 | 基礎からわかる Web Components 徹底解説 〜仕様から実装まで理解する〜 | HTML5Experts.jp
- Web ComponentsベースのUIライブラリ「Brick」をMozillaが公開 | HTML5Experts.jp
- Web Componentsが変えるWeb開発の未来 | HTML5Experts.jp
- Web Componentsについて気になること、泉水さんに全部聞いてきました! | HTML5Experts.jp
- 渋川よしきさんのツイート: "WebComponentはそのままでいいから、InnerHTMLみたいな感じで、内部状態を含めたそのままJS無しで再現可能なDOM/CSS片を取り出す、みたいなものが作られないとつらそうだなぁ、というお気持ち。"
- Web Components を本番投入する(2018年春) - EagleLand
- R.I.P. Web Components v0 - EagleLand
- 渋川よしきさんのツイート: "Shadow DOMのPolyfillのShadyDOMを使ってSSRというのはどこかで見た。ただ、Polyfillと仮想DOM同時に使うと更新うまく行かないのは確認済み。なので、ブラウザ固定できる環境以外はまだ無理かなって。 : え、まだWeb Componentsを未来の技術だと思ってるの? https://t.co/yns14WSEYV"
- え、まだWeb Componentsを未来の技術だと思ってるの? - Speaker Deck
- Rockridgeさんのツイート: "最近のWeb ComponentsはCustom ElementsとShadow DOMにES Modulesが加わったものが主流であり、HTML Templatesは直接使わず、HTML Importsは非推奨になっているとのこ… https://t.co/8m0tDBvTTr"
- Web Components のリアル/ Realistic Web Components - Speaker Deck
- lit-html 入門と lit-html だけで作る Todo アプリ - Qiita
Extensible Web
- The Extensible Web Manifesto | Extensible Web Community Group
- extensibleweb/manifesto: The Extensible Web Manifesto
- manifesto/README.ja.md at master · extensibleweb/manifesto
- Extensible Web Manifesto
- Extensible web
- 【エキスパートガチトーク】Web技術の未来を「Extensible Web」から探る! (前編)─HTML5は問題だらけ? | HTML5Experts.jp
- 【エキスパートガチトーク】Web技術の未来を「Extensible Web」から探る!(後編)─技術の進化は必要か? | HTML5Experts.jp
- Webの未来を議論!「Extensible Web Summit Berlin」イベントレポート | HTML5Experts.jp
- 開発者によるWeb標準化を可能とする「Extensible Web」とは? | HTML5Experts.jp
- Extensible Web、WebAssembly、ORTCなど、なぜいまWeb標準は低レイヤへ向かうのか - Publickey
- Extensible Web の夜明けと開発者が得た可能性の話 - Block Rockin’ Codes
- Extensible Web を支える低レベル API 群 - Block Rockin’ Codes
- [フロントエンド] The Extensible Webという考え方 - YoheiM .NET
- Webエンジニアはどれだけ「Extensible Web」に興味あるか - albatrosary's blog
DOM
W3C
- Language Bindings for DOM Specifications
- ECMAScript Language Binding
- ECMAScript Language Binding
- ECMAScript Language Binding
- ECMAScript Language Binding
- Document Object Model (DOM) Specifications
- IDL Definitions
- IDL Definitions
- IDL Definitions
- Document Object Model (DOM) Level 2 Core Specification
- Document Object Model (DOM) Level 3 Core Specification
- (メモ)W3C DOM 4.1、勧告候補への移行のコンセンサスが取れず遅延する - 水底の血
本の虫
- 本の虫: DOM mouse eventの座標がカオスだ
- 本の虫: DOM level 3のマウスイベントにおけるカーソル位置の詳細
- 本の虫: ブラウザの座標再び
Twitter
- Rockridgeさんのツイート: "Shadow DOM v0の知識がある人向けに、v1がどのような点で違うのかを実例付きで示したガイド。 / “What's New in Shadow DOM v1 (by examples) — [Dev] hayato.io” https://t.co/KBZff1EHnG"
- Jxckさんのツイート: "ShadowDOM の v0 も OriginTrials だったらよかったのかなと一瞬思ったけど、そしたら使われず v1 への改善も無かった可能性があるかな。 OriginTrials は RC 的な位置付けで、 v0 を出し update/deprecate してくべきか。"
- なかのん&マジックさんのツイート: "WHATWGのDOM Standardsの仕様書、読んでてまったく意味分からないんで書いてある通りにコーディングしてみたらなんとなく分かってきた。もうPascalかなんかで書いたらよくない? この仕様書。"
- なかのん&マジックさんのツイート: "初めて、自信が全く持てないレビューしてる。ShadowDOM + DOM Eventsムズい……"
- DOM Standard 日本語訳
- DOM1仕様書
- ECMAScript Language Binding
- ECMAScript Language Binding
- Document Object Model - Wikipedia
- IDL35
- IDL 4.0
- Shadow DOM v1でHTMLの内容と構造を分離する
- GeckoのDOMイベント処理の実装 (Gecko Inside ver.)
- DOM リファレンス - DOM | MDN
- DOMのまとめ - Qiita
- JAVAスクリプトが書き出すHTMLにスタイルを当てる際の注意 - CSS小技集
- DOM操作の最適化によるJavaScriptチューニング(前編) | HTML5Experts.jp
- DOM操作の最適化によるJavaScriptチューニング(後編) | HTML5Experts.jp
DOM Parsing and Serialization
- DOMParser - Web API インターフェイス | MDN
- DOM Parsing and Serialization
- DOM Parsing and Serialization (日本語訳)
ODF
組版
JLREQ
- 日本語組版処理の要件(日本語版)
- 日本語組版処理の要件(日本語版)
- html5j 電子出版部 勉強会「JLREQとCSS」参加レポート — Python製ドキュメンテーションビルダー、Sphinxの日本ユーザ会
- 村田 真さんのツイート: "#html5jpub EPUBではむりやりページを作り出しているし、見開きもやっている。しかし、袋小路だと思う。電子書籍リーダの相互運用性という一点をとっても、CSSでページや見開きをやってほしい。"
- maihaさんのツイート: "ジャスティファイしない場合は、文節など意味のある単位で自動改行されたほうがいい。左揃えで行末を揃えない場合にももっとよみやすくなるといい。 #html5jpub"
- Satoshi Kojimaさんのツイート: "日本語のJustifyには行長計算が必要。行長可変なWebブラウザだと無理(ものかのさん) 確かにその通り。だが普通の人にはそれなりに読みやすいはず。さらに改善する仕様のドラフトは存在している。 (村上さん) #html5jpub"
- 渋川よしきさんのツイート: " ってのはノンブレークで改行しないスペースだけど、問題なければスペースを表示しないんだけど、ここで改行してもいいよっていう真逆の文字ってあったりするのかな?"
- 渋川よしきさんのツイート: "お、ゼロ幅スペースあるじゃん。 https://t.co/wKfUDSLBjN"
- JIS X 4051からJLREQへ - JAGAT
- 渋川よしきさんのツイート: "文字をWebGLで描画とか死亡フラグ。JLREQを読んでみよう。日本語を表現するってめちゃ難しいよ。ましてや自分がしらない言語とかね。僕はWebAsmが普及してもDOMを置き換えることは絶対ないって思ってる。"
- JLREQの今日と明日、そしてCSS日本語組版 | ICT CONNECT 21
- html5j電子出版部 勉強会「JLREQとCSS」まとめ - Togetterまとめ
- W3C「日本語組版処理の要件(JLReq)」の改訂作業がGitHubで from Shinyu Murakami on 2016-12-23 (public-html5jp@w3.org from December 2016)
ALREQ
- W3C I18n Activityさんのツイート: "Text Layout Requirements for the Arabic Script just published as First Public Working Draft. https://t.co/gAPaALZyzz Still plenty to do! Looking for comments and contributors. https://t.co/vg9IIU7D0F (Or help with other languages: https://t.co/wAVGziqMox)… https://t.co/YhzpsCOQxR"
- Text Layout Requirements for the Arabic Script
- Issues · w3c/alreq
- Language matrix
TeX
任意コマンド実行
- そくらてす@F欄大学の大学院生さんはTwitterを使っています 「よく考えたら、LaTeX コードから任意のコマンドを呼び出せるはずなので、どこの誰が書いたのかわかんない LaTeX コードをタイプセットするの怖くないか……?」 / Twitter
- ワトソンさんはTwitterを使っています 「LuaLaTeX じゃないし -shell-escape じゃないから,まあ大丈夫だろ.ヨシ👉」 / Twitter
- mod_poppoさんはTwitterを使っています 「-shell-escapeをつけてなければそこまで「任意」にはならないんじゃなかったっけ(前に-shell-escapeなしで任意コマンド実行ができる脆弱性があって騒ぎになった)。LuaTeXもos.executeとかはコマンド実行の制限の対象になる」 / Twitter
- mod_poppoさんはTwitterを使っています 「まあ「信頼できないTeX文書は不用意に実行しない方がいい」のはそう」 / Twitter
- 某ZR(ざんねん🙃)さんはTwitterを使っています 「LuaTeX以外でも、Latexmkやllmkやmakeなどのビルドツールを使う場合には、多くの場合は結局 「任意のコマンドが実行可能になってしまう」 ことにも注意。 #TeX」 / Twitter
- ワトソンさんはTwitterを使っています 「restricted shell escape に起動した LaTeX で処理する分にはネットで入手した LaTeX ソースを何の確認せずにタイプセットして平気ということになっているけれど,llmk で処理する場合は余裕で任意コードを実行できるのでまったく安全とはいえない(ちゃんと何が実行されるか確認してください)」 / Twitter
- ワトソンさんはTwitterを使っています 「だけど,たぶんこの種のセキュリティ的な問題は latexmk や make などのもっと一般的なビルドツールでも同様に存在するはず(だよね?)」 / Twitter
- Apache FOPを使ってみる~Knuthの分割アルゴリズム - X-plus
- Wayback Machine
- TeX 以外の組版・レイアウトシステム - TeX Wiki
- 日本語組版あれこれ - おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか
- TeXのアルゴリズムの再実装 - プログラミングの30年間を振り返る
- monge.dvi
- Line breaking — Xxyxyz
- The Tectonic Typesetting System
- tectonic-typesetting/tectonic: A modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive.
- TeXやLaTeXで図の挿入に時間がかかるときに挿入を省略する方法 - Qiita
- TeXの脚注をなんとかする - golden-luckyの日記
- 日本語化プロジェクト 〜TeX Live と learnlatex.org〜 / localize - Speaker Deck
- keiichiro shikano λ♪さんはTwitterを使っています 「PostScriptを知っていると.bstが読めて便利」 / Twitter
- .bst file - Google 検索
- 日本語 LaTeX の新常識 2021 - Qiita
- 某ZR流パラメタトークン思考法 - マクロツイーター
- TeX tuneup 2021: 7年ぶりの TeX アップデート | ラング・ラグー
- ワトソンさんはTwitterを使っています 「最近本家 LaTeX の開発が活発で,既に “枯れている” はずの LaTeX2e に多くの破壊的変更が加えられているのは,究極的にはその出力を「タグ付き PDF」に対応させるためである.これはつまり LaTeX ソースに(理想的には)ある構造情報をある程度出力先の PDF にも反映しようという試みである.」 / Twitter
- ワトソンさんはTwitterを使っています 「なぜタグ付き PDF にする必要があるかというと,視覚障害者なども考慮したアクセシビリティのためにはこうした情報が不可欠で,特に西欧諸国の公的文書では必須要件になりつつあるからである.この流れは日本ではまだ小さな潮流かもしれないが,いずれ対応が必須となっていくものと考えられる.」 / Twitter
MathML
KaTeX
- KaTeX – The fastest math typesetting library for the web
- Khan/KaTeX: Fast math typesetting for the web.
- mizchiの叫び「MathJaxはやめろ」
- 信頼できる情報筋によるとさんのツイート: "mathjax というやつは世の中に現存するJSの中でも最も行儀が悪い振る舞いをするものの一つです。気軽に導入していいものではない。というか積極的に避けねばならない。あいつはXML的木構造を破壊しながら自身の特殊構文に継ぎ直してる。"
- Ryou Ezoeさんのツイート: "例の@mizchi の連投、本人はKaTeX使ったことがないだろ。KaTeXはCJK文字への対応が悲惨すぎて使い物にならない。あとエラー通知に例外を使うし完全に無効化できない。"
- Ryou Ezoeさんのツイート: "KaTeXは自分だけが数式を記述する限定的な用途で使うもの。大勢のどこの馬の骨かもわからないユーザーが数式を記述する場合にKaTeXなど実績の違いで到底使い物にならない。"
- Ryou Ezoeさんのツイート: "ちなみにユーザーに自由にtexを書かせると何が起きるかと言うと、お絵描きしだすし日本語も当然使い出す。KaTexでは無理。"
- Ryou Ezoeさんのツイート: "私は$力=質量 \times 加速度$とか書きたいし$\text{力}=\text{質量} \times \text{加速度}$とは書きたくない。だいいちこれでは意味が違ってしまう。"
- 本の虫: KaTeXを使ってみた感想
- 七誌さんはTwitterを使っています: 「KaTeXですが、REPL云々は関係なくて、単にHTMLの先頭に <!DOCTYPE html> を書くだけでいけました。 KaTeXはコードがシンプルで良いですね。 MathJaxでは動的生成したTeXでunderbraceに日本語を使うと "t is null" という謎のTypeErrorになりましたが、KaTeXではそういう問題はありません。 https://t.co/rS39gQW43y」 / Twitter
MathJax
AsciiMath
- piqcyさんのツイート: "LaTeXより簡単に数式が書ける記法のAsciiMathが登場。MathJaxと連携してレンダリングを行う。 プログラムで数式を書く感じでかける。行列が[[a,b],[c,d]]みたいな感じで書けるのはよい。 https://t.co/MdDncvRLRc"
- hardmaruさんのツイート: "AsciiMath is a simple markup language for math. Easier to use than LaTeX. https://t.co/T2ONWTDxPY https://t.co/VjuJGfn9ol"
- AsciiMath
- asciimath/asciimathml: A new home for asciimathml
- 七誌さんのツイート: "MathJaxで表示させると右クリックでMathMLとTeXの両方のコードが表示できるので、MathJaxに全部任せるのが無難っぽい。まあ、変換だけが目的ではないので、ある程度は中身を知っておかないといけなかったから、自作は無駄ではなかったんだけど。"
- 七誌さんのツイート: "少し前までMathJaxとWYSIWYG入力の折り合いをどう付けるのか困っていた。Idrooの数式入力はかなり頑張っているけど、同じようなものを再実装するのは回り道過ぎる。しかし最近はプログラムで数式を生成してMathJaxで表示するだけで、当面の用は足りる気がして来た。"
- 七誌さんのツイート: "数式処理とコンパイラはASTをこねくり回すのが似ているので、どうにかうまく両立させられないものかと思っている。"
- LaTeX入門 - TeX Wiki
- MathJax
- MathJaxによる数式表示
- MathJaxの使い方
- MathJax - Wikipedia
- Easy Copy MathJax
- 黒木玄 Gen Kurokiさんのツイート: "#MathJax MathJaxのCDNサーバーが4月30日に止まるらしい! 一つの対処法はhttps://t.co/T9iVtP1wEMの代わりにhttps://t.co/qtQEQneRDsを使うように変更すること。詳しくは→ https://t.co/2yV0j7zSGs"
- MathJax CDN shutting down on April 30, 2017
- cdnjs.com - The best FOSS CDN for web related libraries to speed up your websites!
- 蘇摩さんのツイート: "slackで数式表示するための拡張,math-with-slackを入れてみたのですが,かなり良いです. https://t.co/jEH8Fk0L0G https://t.co/UVDVbEuKYm"
- fsavje/math-with-slack: Rendered math (MathJax) with Slack's desktop client
- だめぽラボ@技術書典9さんはTwitterを使っています 「MathJaxは昔から\newcommand使えなかったっけ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「10年前のMathJaxでの\newcommandの実装です https://t.co/4M6tjsb03A」 / Twitter
- MathJax/newcommand.js at v1.1-latest · mathjax/MathJax
- だめぽラボ@技術書典9さんはTwitterを使っています 「MathJaxと(本物の)LaTeXの違いの一つに、「(MathJaxでは)\newcommandのスコープが数式環境を貫通する」というのがあるんだよね。一方KaTeXは\gdefを実装した」 / Twitter
- ワトソンさんはTwitterを使っています 「MathJax は昔から \newcommand が使えて,しかもそのスコープ(有効範囲)がアレなせいで,Mathtodon ができた頃に迷惑 definition を含む投稿で他者のツイートの見た目を好きなようにいじって遊ぶやつ(通称 \newcommand テロ)ができたんじゃなかったっけ.」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「そんなこともあった……かもしれない……(かなり忘却している)」 / Twitter
- Mathematical Markup Language - Wikipedia
- MathML - Wikipedia, the free encyclopedia
- MathML 日本語情報
- W3C Math Home
- MathML | MDN
- MathML 要素リファレンス - MathML | MDN
- MathML 耐久テスト - Mozilla | MDN
- MathMLマニュアル
- WebKitの数式(MathML)でSafariはボランティアの努力を採用し、数式を表示できる。Chromeは同じものを不採用として批判を浴びる。 | 電子書籍、電子出版のCAS-UBブログ
- Rockridgeさんのツイート: "次期Safari 10.0ではMathMLの表示品質を改善したほか、数式にハイパーリンクを埋め込めるようになった。 / “Improvements in MathML Rendering | WebKit” https://t.co/YcLOYp5YxX"
- Rockridgeさんのツイート: "Fx51:mathml.disabledの設定をtrueにすることで、MathMLを無効化できる。 / “1173199 – Add a pref to allow disabling MathML (Tor 13548)” https://t.co/yHRWPH4614"
- 「One Note for Windows 10」で文字列を数式に変換可能に - PC Watch
- Rockridgeさんのツイート: "Chromeの次世代レイアウトエンジンでは、MathMLのサポートが復活するようだ。 / “Review of Igalia's Web Platform activities (H1 2017) - Frédéric Wang” https://t.co/LZvEj1sAVA"
- MathMLの未来を考える―(1)現状の整理 | 電子書籍、電子出版のCAS-UBブログ
- MathMLの未来を考える―(2)『MathML数式組版入門』の大学図書館への寄贈活動について | 電子書籍、電子出版のCAS-UBブログ
- ここ最近のMathMLについてのメモ - 水底の血
- Ziphil/ZenithalMathWeb: Web rendering engine for mathematical formulae
- KindleでMathMLの現実
- 第3期のMath Working Groupが始動した話 | フロントエンドBlog | ミツエーリンクス
- ウイドウとオーファンって、なかなか深い | 電子書籍、電子出版のCAS-UBブログ
- 䭄さんのツイート: "多言語組版処理システムは一人の人間がつくるものじゃないよ。"
- SATySFi - Google 検索
- 『数式組版』を組む技術:基本版面(1)|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:基本版面(2)|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:基本版面(3)|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:脚注|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:柱とノンブル|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:出力ルーティーン(1)|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:出力ルーティーン(2)|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術:PDFの生成(1)|きえだゆうすけ(p_typo)|note
- 『数式組版』を組む技術 Advent Calendar 2019 - Adventar
- 七誌さんはTwitterを使っています: 「アラビア文字の組版についての資料を見付けた。 https://t.co/W6JDp7Rhlw アラビア語だけでなくペルシア語、ウルドゥー語、現代ウイグル語についての記載もある。 「筆者は専門家ではありません」とのことだけど、詳細にまとめられていて凄い。 多言語組版研究会というのがあったのですね。」 / Twitter
- moji >> アラビア系文字 > 「アラビア系文字の基礎知識」
- Arabic.pdf
- 日本語組版に関連するCSS規格の策定状況について - Speaker Deck
MS
- Excelの奇妙なパスワードとマクロウイルス - Cybozu Inside Out | サイボウズエンジニアのブログ
- Hack Patch!: CEMIについて
- ExcelのセルがAI対応へ進化 - PC Watch
- Office 2013でODF 1.2/PDF 1.7がサポート | マイナビニュース
- Microsoft、Excelカスタム関数としてJavaScriptのサポートを発表
- Office 2013でODF 1.2/PDF 1.7がサポート | マイナビニュース
- Shirouzu Hiroaki(白水啓章)さんのツイート: ".xlsファイルは開くだけで、開いた日付がNTFSタイムスタンプ形式で格納されるようだ。(末尾-404~-396の8byte) ちなみに、ファイルの更新日付は変更されない。 このパターンだとアーカイブビットでも見ない限り、変更を検出できない。 (mmap系のファイルだと良くある話だが)"
- 拡張子「.iqy」の添付ファイルに注意! ウイルス感染狙うメールが1日だけで29万件も拡散 - INTERNET Watch
- Satoshi NakagawaさんはTwitterを使っています 「Joel on Software に Joel が Excel チームにいたときに Bill Gates に直接レビューを受けて 1900年の日付について質問されるエピソードがあって、Lotus 123 との互換性問題まで完全に答えてたけど、ああいう感じで完全に事実を把握してるエンジニアがいいエンジニア。 https://t.co/FvGm5fARLe」 / Twitter
- My First BillG Review – Joel on Software
窓の杜
- 【Excel】他人から受け取った表の構造がわからない!エクセルで数式やデータの入力規則が設定されたセルを特定するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
- 【Excel】「ME1234」のような商品コードを「ME」と「1234」に分けたい!エクセルで区切り文字がないデータを分解するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
- 「Excel」にセルの選択を一部解除する機能が導入 ~「Office Insider」2018年1月版 - 窓の杜
- 【Excel】クリック操作だけで簡単に売上の前月比計算ができる!エクセルのピボットテーブルで効率よくデータを分析するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
- 【特別企画】Excelのお株を奪う? 「EmEditor」は連番入力や氏名の分割・結合も自動化できる! - 窓の杜
- エクセルで表を印刷する際にミスを減らせる3つのステップに注目(3月第4週) - 窓の杜
- “SUM()”関数を独語版「Excel」で使うには……行き過ぎたローカライズの悲劇に終止符を打つアドインが“Microsoft Garage”から登場 - やじうまの杜 - 窓の杜
- 【Excel】表を再利用するため数値を削除したら数式まで消してしまった!エクセルで簡単に数式以外のデータだけを削除するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
- エクセルで数式が入力されているセルだけを見つける方法に注目(5月第4週) - 窓の杜
- 「LibreOffice」に1件の脆弱性、ODF文書に埋め込まれたSMBリンクを介して情報が漏洩 - 窓の杜
- 【Excel】「㈱」「㍿」「株式会社」などの表記がバラバラ!エクセルの名簿で会社名の表記を統一するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
- エクセルで普通では検索できない“?”などの文字を検索する方法に注目(7月第2週) - 窓の杜
- 【Excel効率化】作業フローなどに使う図形をすばやく書きたい!手書きで書いた図をエクセルで使える図形に変換するテク - いまさら聞けないExcelの使い方講座 - 窓の杜
- Excelの結合セルもまるごと移動! 「RelaxTools Addin」に選択セルの移動コマンドが追加 - 窓の杜
- Microsoft、新しいExcel関数「XLOOKUP」を発表 ~「VLOOKUP」や「HLOOKUP」の後継 - 窓の杜
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「golangの正規表現は NFA のため、重い表現の時に線形増加で済む、と。 (重くない場合は差が無い) 一般的に多い DFAだと(組み合わせ爆発しやすいため?)指数増加と。 https://t.co/rpgljTgixm」 / Twitter
できるネット
- 【エクセル時短】関数よりも便利!? 知る人ぞ知る「フラッシュフィル」はこんなときに威力を発揮する | Excel | できるネット
- 【エクセル時短】大きな表を会議で見るなら必須! ムダにスクロールしないウィンドウ操作の鉄板ワザ3選 | Excel | できるネット
- 【エクセル時短】VLOOKUPの応用ワザ。2つの条件で値を検索するために組み合わせる関数とは? | Excel | できるネット
Wikipedia
- OpenDocument - Wikipedia
- OpenDocument - Wikipedia
- Extensible Markup Language - Wikipedia
- XML - Wikipedia
Qiita
- Pythonでパワポの説明資料(報告書)を生成する - Qiita
- パワーポイント内のテキストをgrepする - Qiita
Twitter
- Yuki Yugui Sonodaさんのツイート: "割と良くできたExcel文書を見て、文書作成にExcelを使う人の気持ちが初めて分かってしまった。Wordと違って出力用紙設定の幅に依存してないから、主に画面で見る目的の割と幅の広い画像・表入り文書に便利なんだな。 で、その文書は初めから社内Wikiに書きゃ良かったと思うんだけど"
- SODA Noriyukiさんのツイート: "「メモリーダンプみたいなものをそのまま保存」って、Smalltalkのプログラムの保存(システムイメージのスナップショット)もそんな感じだし、Xerox文化~って感じがする>RT"
- 渋川よしきさんのツイート: "ほんこれ。Excel嫌いすぎる人は、ウェブですぐに超えるものを作れると思ってる。数式使いたい、ドラッグでまとめて入力、コピペとか言われた瞬間に死ぬ。… "
- qsonaさんのツイート: "社内で表計算ソフトウェアを利用したマスタデータ管理の仕組みを作ったときに「なんで表計算ソフトなの?管理画面つくればいいのでは?」と聞かれることが数回あったが、「表計算ソフトは100点だとは思っていないが80点以上ある、80点を超えるソフトウェアを作るのはとてもむずかしい」と説明している"
- Teppei Satoさんのツイート: "まさにその通りで、80点の管理画面付きデータ管理を量産できるのがkintoneです。… "
- qsonaさんのツイート: "80点で良いし80点のものを自分で作るのってすごい大変なんですよね。。 社内でヘボいツールが出来るたびに、kintoneを適用すべき場面なんだろうなあって思っているんですが、次に見かけたらちょっとpushしてきますw… "
- 楠 正憲さんのツイート: "ほぼほぼOffice Suiteがブラウザで動くようになって、印刷の問題が解決し、ドライバの問題もなくなって、台数ならPCよりもスマホのエコシステムが大きくて、ようやっとデスクトップLinuxの障壁がほぼほぼ霧散したのに、デスクトップUX自体が陳腐化してしまって誰も自由化することに興味を持たない時代"
- 勝(まさる)さんのツイート: "Office OnlineのPowerPointで図を描いてみると、幻想だとわかる。"
- 勝(まさる)さんのツイート: "出張先のホテルで、パワポ修正しようとOffice Onlineに食わせた後、図を調整しようとしてもまともに線すら引けなくてどうにもできず、修正前のままプレゼンしたのは懐かしくも苦い思い出。"
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「google spreadsheetでΣはsum()だがΠは何だ、とぐぐったところproduct()だった。なるほど」 / Twitter
- Announcements and Press Releases - Open Document Format (ODF) 1.2がISO/IEC(国際標準化機構/国際電気標準会議)によって国際標準26300:2015として発行されました
- オフィス文書のためのオープンな文書形式(Open Document) v1.0改正原案作成委員会 | IPSJ/ITSCJ
- [mixi]ODFのJIS化 - ODF (OpenDocument Format) | mixiコミュニティ
- [mixi]ODF V1.2 が OASIS 標準になりました。 - ODF (OpenDocument Format) | mixiコミュニティ
- 村田真のXMLブログ
- 村田真のXMLブログ
- Extensible Markup Language (XML) 1.0 (Fifth Edition)
- Extensible Markup Language (XML) 1.0 (第五版)
- クラウド会計ソフト「freee」のExcel用アドイン提供開始、独自のfreee関数で勘定データを自動で取り込み - INTERNET Watch
- 「LibreOffice 6.2」リリース、NotebookBar UIが正式機能に | OSDN Magazine
- Tableauの関数を全て試してみる〜表計算関数編その1〜 #tableau | DevelopersIO
- ドキュメント技術とプログラミング言語の相似について - golden-luckyの日記
- なんでドキュメントといったらXMLが出てくるのか - golden-luckyの日記
- SXML
- XMLをLisp評価器で実行する - golden-luckyの日記
- XMLをつぶす機械を作る機械を作る - golden-luckyの日記
- XMLのつぶし方 - golden-luckyの日記
- Index of /office/OpenDocument/
- Googleスプレッドシートに数式や関数の推測/提案機能 - PC Watch
- Miura HidekiさんはTwitterを使っています 「ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました💡 https://t.co/L0y1ZrvmoU この手の話は仕事で使うためにいろいろ検討したが、結局元となる帳票をスキャナーで取り込んで、必要な記入事項をテキストボックスを張り付けて対処するってのが一番いいことに気づいた」 / Twitter
- ついに、Webアプリでの帳票印刷のベストプラクティスを編み出しました💡 - Speaker Deck
EditorConfig
- EditorConfig
- EditorConfig
- EditorConfigで文字コード設定を共有して喧嘩しなくなる話。(Frontrend Advent Calendar 2014 – 14日目) | Ginpen.com
- EditorConfig でエディタの設定も共有しよう - デブハゲ
- .editorconfigが便利すぎて失禁した - mon_sat at Co-Edo(半年前の自分への教科書 / 別院)
- ぶんちょうさんはTwitterを使っています 「editorconfig大混沌時代 これで信用できるのタブ・スペースの数くらいしかなくない?」 / Twitter
- Gada / ymtszwさんはTwitterを使っています 「@yutopp 何だったら今どきの言語だと公式orコミュニティスタンダードで決まってることが多いので、hard/softもスペース幅もeditorconfigをみる余地があんまりない気がします。 trailing space消すとかファイル末尾にtrailing newlineつけるとかはもう殆どの言語共通だから言うまでもないし」 / Twitter
- ぶんちょうさんはTwitterを使っています 「@gada_twt その言語の標準をeditorconfigの記述に相乗りするのが今どきっぽいのですが、同じ言語のツールでもサポートの度合いが違い、厳しい…」 / Twitter
- ぶんちょうさんはTwitterを使っています 「なにがeditorconfigや!今日からきみはtabspaceconfigや」 / Twitter
GNU Poke
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「GNU Poke 1.0がリリース。インタラクティブにバイナリデータを扱うためのエディター。バイナリエディターとプログラミング言語の中間的な存在。 https://t.co/s7A8Kjw7xS」 / Twitter
- GNU poke - Release notes for poke 1.0
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「バイナリデータを取り扱うための言語を持っている。」 / Twitter
LSP
- ドッグさんはTwitterを使っています 「LSP サーバからワークスペースの情報をダンプして,サーバ起動してなくてもクエリかけられるようにするためのインデックスフォーマットの仕様.LSP サーバのリクエスト/レスポンスを持っとく感じなのかな.まだ v0.5.0 | 'Language Server Index Format ' https://t.co/vMivzi0osE」 / Twitter
- LSIF Specification
- ドッグさんはTwitterを使っています 「LSP ってクライアントデバッグ用のリファレンス実装とか無いのかな」 / Twitter
- ドッグさんはTwitterを使っています 「https://t.co/iaEHawteQ3 調べてみると個人でそういうのつくってる人はいるな」 / Twitter
- bubba/lsp-test: A functional test framework for LSP servers
- 言語サーバープロトコルの概要 - Visual Studio | Microsoft Docs
- visualstudio-docs.ja-jp/language-server-protocol.md at live · MicrosoftDocs/visualstudio-docs.ja-jp
- TypeProf for IDEの開発をお手伝いしました at クックパッド - kateinoigakukunのブログ
- 新世代の自動補完プラグイン ddc.vim
- LSP学習記 #1 - ベインのブログ
- LSP学習記 #2 クラゲ言語の構文解析 - ベインのブログ
- LSP学習記 #3 シンボルとハイライト - ベインのブログ
- LSP学習記 #4 シンボルのリネーム - ベインのブログ
リファクタリング
- 第36回 リファクタリングについて:Android Studio最速入門~効率的にコーディングするための使い方|gihyo.jp … 技術評論社
- リファクタリング(IDE チュートリアル) - RAD Studio
- IDEの機能比較:ローカル変数の抽出 - しおしお
- NetBeans IDE - 編集とリファクタリング
- コードの作成とリファクタリング (C++)
- Eclipse JDT のリファクタリング機能を探る
- マーチン・ファウラー氏「リファクタリング 2nd Edition」で20年ぶり内容刷新、サンプルコードはJavaScriptに。Web主体で書籍はエッセンシャル版の位置づけ - Publickey
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「VSCodeで変数名を変更する機能使ってみたら別の変数まで書き換わってて、スコープも確認せずにやってるクソ機能だった……(結構やりなおし発生)」 / Twitter
- ASTを活用してコードの自動修正に挑戦してみよう - Cybozu Inside Out | サイボウズエンジニアのブログ
- WideStudio/MWT Home page
- メンテナンス性とモジュール化のためGitHub OctoKit JavaScript REST SDKをリファクタリング
コード整形
- Artistic Style - Index
- Artistic Style download | SourceForge.net
- 島 敏博さんのツイート: "C言語,C++言語用自動整形ツール、astyle https://t.co/pJvvj3Yn66 はこういう整形ができて素敵 --align-pointer=type ポインタの*、参照の&を、型側に寄せるか変数名側に寄せるかを指定するオプション。*も&も型の一部なので私も型側 https://t.co/e60bKZQ0PO"
- ちゃーしゅーねこさんのツイート: "代入の=の位置を縦にそろえるの嫌う人結構いますけど(別に僕は嫌いじゃない)、gofmtだと行末コメントが複数行にあると縦にそろえられる件はどうお考えなのだろう"
- なかのん&マジックさんのツイート: "行の途中の何かを基準に無駄にスペース入れてしまうと、その位置では左すぎる行を挿入しなくちゃいけなくなった時に、本来は変更不要な行までdiffに含まれてきて、レビュー時のリスクが高まるんだよな。行内diffまで表示してくれるレビューツール使ってたらマシだけど、結局、blameにゴミが入る。"
- インデントのスタイルについて - in neuro
コード検索
- Kazuho's Weblog: コマンド一発でソースコード検索&表示できる「peco」改が凄い!
- Geoff's site: The Silver Searcher
- ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.
- コード検索ツール「Sourcegraph」、オープンソース化される | OSDN Magazine
- なかのん&マジックさんのツイート: "Mozillaの現在のソースコードビューアはJavaとObjective-Cには非対応なものの、かなり使いやすい。けど、ローカルに立てて他のプロジェクトに使えるのかどうかちょっとよく分からんかった。 https://t.co/IdJxSXsv6f"
- / - mozsearch
- なかのん&マジックさんのツイート: "JSとC++の境界もまたいでくれるのでありがたい。 https://t.co/a9ZYoojYyE"
- Symbol _ZN18nsIPlaintextEditor10InsertTextERK12nsTSubstringIDsE,#insertText - mozsearch
- chikoskiさんのツイート: "みんな巨大なJSのコード読むのどうやってんだろう。1万行以上 / 100ファイル以上の場合"
- Makoto Mizukamiさんのツイート: "読んだふりをする (違 / 私の場合は, grep しながら興味と合致しそうなところを探すことが多いですかねえ. それこそ good practice があれば試してみたい.… "
- chikoskiさんのツイート: "私の場合は、The Sliver Searcher(agコマンド)で探して、lessで読む感じ。真面目に読むときは、継承関係や参照関係を図に書きながら読むことが多いのですが…コード検索エンジンが使える場合は、それも使います。タグジャンプはしないかな"
- なかのん&マジックさんのツイート: "イベントリスナを探すの超めんどうくさいな……addEventListener(の後に改行あるケースもあるし、イベント名が変数な可能性もあるし。"
全文検索
簡潔データ構造
- 簡潔データ構造 - Wikipedia
- Vol.26 No.6 (2011/11) 簡潔データ構造 – 人工知能学会 (The Japanese Society for Artificial Intelligence)
- 簡潔データ構造の第一歩 - Koike's Lemma
- 文書解析のための簡潔データ構造 | Preferred Research
- https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=7&cad=rja&uact=8&ved=0ahUKEwjKtab2i7HQAhUGmpQKHbOqDcEQFghIMAY&url=https%3A%2F%2Fipsj.ixsq.nii.ac.jp%2Fej%2Findex.php%3Faction%3Dpages_view_main%26active_action%3Drepository_action_common_download%26item_id%3D65880%26item_no%3D1%26attribute_id%3D1%26file_no%3D1%26page_id%3D13%26block_id%3D8&usg=AFQjCNEplWOqDZosSHI_og4VS9Ateuh5WA&sig2=eUziEC640ySMd51wseszFQ&bvm=bv.139250283,d.dGo
- wavelet行列で高速な「もしかして友だち?」検索 | 株式会社サイバーエージェント
- [Javaの小枝] 週刊 簡潔データ構造を作る 番外編 5分でわかるLOUDS - Qiita
- NII表紙.indd
- Vol.26 No.6 (2011/11) 簡潔データ構造 – 人工知能学会 (The Japanese Society for Artificial Intelligence)
アスペ日記
気ままなブログ
- 高速文字列解析の"別"世界 - 気ままなブログ
- Wavelet Treeをもう一度 - 気ままなブログ
- Wavelet TreeのTop-Kの改善 - 気ままなブログ
- FM-Index - 気ままなブログ
スライド
- FM-indexによる全文検索
- Oktavia全文検索エンジン - SphinxCon JP 2014
- Lucene Index Deep Dive - Speaker Deck
- shallow1729さんはTwitterを使っています 「Elasticsearchのストレージへの書き込み、luceneのcommitはマルチスレッドのshadow pagingだけどElasticsearch側でWAL(Translog)を用意してcheckpointとしてluceneのcommitを実行してるって感じっぽい(嘘ついてたらごめんなさい)」 / Twitter
- shallow1729さんはTwitterを使っています 「Luceneのストレージへの書き込みについてはこちらの資料から https://t.co/wCOrkmA9ol ElasticsearchがLucene commitを使ってるとかはドキュメントから https://t.co/mK2VajYTl9 > An Elasticsearch flush is the process of performing a Lucene commit and starting a new translog generation.」 / Twitter
- Introduction to Apache Lucene - Speaker Deck
- Translog | Elasticsearch Guide [7.14] | Elastic
- shallow1729さんはTwitterを使っています 「shadow pagingとかWALはCMUの講義がわかりやすいです。 https://t.co/mM39I9IwoV」 / Twitter
- 20 - Database Logging Schemes (CMU Databases Systems / Fall 2019) - YouTube
- shallow1729さんはTwitterを使っています 「> マルチスレッドのshadow paging Luceneでtransactionという言葉は適切で無いかもですけど、複数のtransactionがあった時にcommitをtransaction毎ではできず、全部まとめてcommitする事になるって感じです。」 / Twitter
Qiita
- ハクビシンにもわかる全文検索 - Qiita
- [C++]コンパクトなBWT - Qiita
- SA-IS - Shogo Computing Laboratory
- SA-IS(Suffix Array - Induced Sorting)を実装した - Qiita
Twitter
- Rockridgeさんのツイート: "Searchfox(Firefoxのソースコードの全文検索ツール)がWindows版特有のRust/C++コードのインデックス化に対応した。 / “PSA: searchfox now indexing Windows Rust…” https://t.co/GqjfUhdW8p"
- Makoto Kato ︎︎さんのツイート: "https://t.co/rIW92muoIF ってGoogle社内でも使われているソースインデクサ使ってるんだろうけど、あの会社の人たちあれで満足してるの? https://t.co/KK3JpDgl2f の圧倒的な検索能力を見てしまうとねぇ。。。"
- Code Search
- Searchfox
- Makoto Kato ︎︎さんのツイート: "ソースコードインデクサ作るのにclang-plugin使うというアイデアはホント正しい"
- Justin SearlsさんはTwitterを使っています 「日本人のプログラマーへ、助けてください!Postgresでは日本語の検索のフィーチャーを作るなら、ベストプラクティスが何ですか?恥ずかしくても、普通に西洋のプログラマーはローマ字の検索だけ分かります。😬」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「indexingはn-gramが一番シンプルでいいと思います。Thinderbirdのindexerもそうした。CJT考えたらdeep learningで辞書作るのはコスト高すぎる」 / Twitter
- StudentさんはTwitterを使っています 「自作RDBMSが話題ですが、全文検索のDBはインデックスはクエリにマッチするデータを指している訳ではなくカバレッジも100%じゃないという性質があって、lexicalとsemanticの2種類のインデックスを相補的に使った上でランキングで間違ったデータをフィルタするみたいな世界なんですけどすごくないですか」 / Twitter
- ぬるぽへさんのツイート: "前々から何度も言ってるんだけど自分が今までに閲覧したサイトの全てから光速に検索できてほしい"
- ウェーブレット行列とFM-indexで全文検索を書いてみた - くじらにっき++
- Oktaviaとは何か? — Oktavia
- Shibu's Diary: [JSX][FM-index]httpstatus コマンドで、HTTP のステータスコードをすばやくしらべる!
- Microsoft、Bing検索エンジンの主要コンポーネントをオープンソース化 | マイナビニュース
- Groongaでb Bit MinHashを使って高速に類似検索 - CreateField Blog
- ストップワード とは 意味/解説/説明 【stop words】 | Web担当者Forum
- Windows サーチに拡張インデックスモードを追加 ~「Windows 10 19H1」Build 18267 - 窓の杜
- メモリ効率のよい全文検索をRustとWebAssemblyで実現する
- Hugoのブログに全文検索をつけた | κeenのHappy Hacκing Blog
- Search | κeenのHappy Hacκing Blog
- AmazonはElasticsearchのフォークをOpenSearchにブランド変更
- 魔窟と化した全文検索サーバーとふっかつのじゅもん - Cybozu Inside Out | サイボウズエンジニアのブログ
- Luceneのメモリ上でのインデックス構造とその仕組み - エムスリーテックブログ
- Luceneのセグメントファイルを解剖してみた - エムスリーテックブログ
- 高速日本語全文検索「Mroonga」で編集部の専用過去記事検索を爆速化し作業効率を上げてみた - GIGAZINE
正規表現
PCRE2
- Perl Compatible Regular Expressions - Wikipedia
- Perl Compatible Regular Expressions - Wikipedia, the free encyclopedia
- PCRE - Perl Compatible Regular Expressions
- Index of /pub/pcre/
- PCRE2 specification
- perlre - perldoc.perl.org
- PCREの範囲の正規表現を可視化してくれるサイト - 唯物是真 @Scaled_Wurm
- PCRE2-10.31
- pcre2unicode specification
- unicode - libpcre2 Code Unit Width - Stack Overflow
- PCRE2 Open Source Library for Perl Compatible Regular Expressions
- PCRE2 specification
- pcre2 specification
- Project Zero: (^Exploiting)\s*(CVE-2015-0318)\s*(in)\s*(Flash$)
Oniguruma
- Oniguruma - Wikipedia
- kkos/oniguruma: regular expression library
blog
- 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう | 徳丸浩の日記
- DSAS開発者の部屋:最近の Python-dev (2017-02)
- 正規表現の略記法 \d と \s と \w – ものかの
- Unicodeで「漢字」の正規表現 – ものかの
- Unicodeプロパティを使ったPerl正規表現 - Hatena Developer Blog
- HTMLのpattern属性とJavaScript正規表現のunicodeオプション - Hatena Developer Blog
- [JavaScript] 正規表現はコンパイルしたほうが処理速度が速いのか? - ログろいど
- 危険な正規表現 | MOYO Laboratory
- Onigmoを最大49%高速化した話 | κeenのHappy Hacκing Blog
- 正規表現技術入門を読んだ | κeenのHappy Hacκing Blog
- YARV Maniacs 【第 3 回】 命令ディスパッチの高速化
- Debuggex: Online visual regex tester. JavaScript, Python, and PCRE.
- 正規表現からLLVM IRを生成する - めもちょー
- その正規表現エンジン、インタプリタで満足してる?! | κeenのHappy Hacκing Blog
- Mozilla、今後はV8の正規表現エンジンをFirefoxにそのまま取り込むと表明。そのための互換レイヤを開発 - Publickey
- 遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ
- The Unicode Blog: Enhancements to Unicode Regular Expressions
- Proof-directed program transformation: A functional account of efficient regular expression matching | Journal of Functional Programming | Cambridge Core
- 本の虫: なぜC++0xの正規表現は、ECMAScript準拠なのか
- 本の虫: C++の正規表現ライブラリ: std::regex
- 本の虫: JavaScript規格の正規表現リテラルの文面の疑問点
- An additional non-backtracking RegExp engine · V8
POSTD
- Sublime Textの「あいまい一致」をリバースエンジニアリング | プログラミング | POSTD
- 部分文字列とRegExpの領域の冒険 | 未分類 | POSTD
- 40行以内で正規表現エンジンを構築 | プログラミング | POSTD
GitHub
- eriknyquist/librxvm: non-backtracking NFA-based regular expression library, for C and Python
- nadrane/build-your-own-regex: This is a test spec driven guide to help you build a simple regex implementation
- microsoft/BlingFire: A lightning fast Finite State machine and REgular expression manipulation library.
Zenn
- みさわさんはTwitterを使っています 「正規言語は和集合や差集合、共通部分に関して閉じていて、正規言語は正規表現で記述可能なので、正規表現に & や ! を加えることで表現能力が広くなることがないから、よくある実装でも入ってないのかな。 否定とかはキャプチャやらとの関係が面倒になりそうというのもあるが https://t.co/zNqImp6rGi」 / Twitter
- みさわさんはTwitterを使っています 「ちなみに&や!が実装された正規表現エンジンとして、例えば brics などがある。 https://t.co/Ip1GqXQJ5i」 / Twitter
- RegExp (dk.brics.automaton)
- j5c8k6m8さんはTwitterを使っています 「@Mi_Sawa 情報ありがとうございます。本書に追記させていただきました。 https://t.co/NCxAWpXm53」 / Twitter
- 論理演算可能な正規表現エンジンを作ろう
- kinabaさんはTwitterを使っています 「世の"正規表現"は正規言語を超えたてたり実装がオートマトンじゃなかったりというあまり面白くない理由はさておき、正規表現→NFAの変換が|と*だけなら線形時間(なんななら正規表現文字列の添字を状態としてNFA作れる)けど、&や!は二乗や指数で膨れるので実装の面倒くささレベル上がるというのがある」 / Twitter
- kinabaさんはTwitterを使っています 「ブール演算できる正規言語処理ライブラリもっとカジュアルに使われて欲しいというのは非常に同意するものであるのですけど、現状、正規表現等の対象が文字列に特化しすぎなせいで応用が少ないのがまず問題かなあと。みんなもっと整数列とか一般のデータ列に正規表現マッチ気軽にかける世界になりたい」 / Twitter
Qiita
- 正規表現のJITコンパイラを実装する - Qiita
- Brzozowskiのアルゴリズム - なぜDFAを2回反転すると最小化できるのか - Qiita
Wikipedia
- 正規表現 - Wikipedia
- Regular expression - Wikipedia
- Regular tree grammar - Wikipedia
- Thompson's construction - Wikipedia
Twitter
並列化
- Shinji KonoさんはTwitterを使っています 「正規表現自体が並列処理に向いてない説」 / Twitter
- ラーメン大好きしろくまさんさんはTwitterを使っています 「@shinji_kono 先頭から舐めていくステートマシンですからね… 同時に何百個も文を解析するなら並列化できるが。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「@Kumappus ところが、計算クラス自体はNCで並列処理向きらしいんですよ。」 / Twitter
- ラーメン大好きしろくまさんさんはTwitterを使っています 「@shinji_kono えー…?(頭の上を小鳥がピヨピヨ回ってる状態)」 / Twitter
- Miura HidekiさんはTwitterを使っています 「バックトラックを並列化できるかなー?」 / Twitter
- OS作れないマンさんのツイート: "生成されるパターンに順序を付けて、文字列を整数で表現する考え方を @sinya8282 さんから聞いた気がする。 https://t.co/L3OjrTA2Ps"
- kb10uyさんのツイート: "正規表現エンジン、パターンマッチできるということは逆にパターンからマッチする文字列を生成できるよな普通に考えて"
- 島鉄雄さんのツイート: "そのページ冒頭の電話番号の正規表現が複雑過ぎてビビる… 正規表現は結果であって、そこに至る途中経過がバッサリ無いのが問題だろう。 だから、電話番号は正規表現じゃなくて、BNFで記述してパーサジェネレータを使うべきだろうという事を理解した。 可読性が高いし、速度もそれ程問題無いはず。… https://t.co/MDhAwxkmTl"
- tc39/proposal-regexp-unicode-property-escapes: Proposal to add Unicode property escapes `\p{…}` and `\P{…}` to regular expressions in ECMAScript.
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「golangの正規表現は NFA のため、重い表現の時に線形増加で済む、と。 (重くない場合は差が無い) 一般的に多い DFAだと(組み合わせ爆発しやすいため?)指数増加と。 https://t.co/rpgljTgixm」 / Twitter
- regexpとの付き合い方 〜 Go言語標準の正規表現ライブラリのパフォーマンスとアルゴリズム〜 - Eureka Engineering - Medium
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、FastCopy の UNIX WildCard 実装も NFA 。 (ただ、イプシロン遷移対応が面倒だった。あとUTF16対応も)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Readable Regular Expression が欲しいところ。 似たことを考える方は多い様子。 (expresso なんてGUIツールあるのね) https://t.co/KorHIXXCGX」 / Twitter
- Readable regular expressions without losing their power? - Software Engineering Stack Exchange
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに include/exclude は UNIXワイルドカード形式サポートだけど、ビットシフトによる非決定性有限オートマトン(NFA)を使って作ってるので、さほど遅くならないはず。 (ビットシフトだと、NFA弱点の多状態を同時進行できる)」 / Twitter
- yoh2さんはTwitterを使っています 「昔見掛けた、単純なくせにひどく時間がかかる正規表現ってこんなのだったかな。なにか違う気がする。 .*?.*?.*?.*?.*? 最短一致させるためのバックトラックが延々と走るのがミソだったような。」 / Twitter
- 抹茶氏さんはTwitterを使っています 「@yoh2_sdj ReDoS で調べてみて」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「誤解を招くという意味で言えば、正規表現って誰が最初に訳したんだろ。もはや普及しすぎて変えられないけど、完全に誤訳だもんなぁ……」 / Twitter
- uncorrelatedさんはTwitterを使っています 「正規分布と同じノリですね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「正規表現を文字列だけではなく汎用的なグラフ構造(シーケンスも含む)に対応して、そのパターンに対するアクション(グラフの書き換え)という言語は出来うな気がする。Prologみたいな感じ」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Edisonとかはそんな感じか」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「再帰的バックトラックを使わないNFA。こんな効率のいい正規表現のアルゴリズムがあったとは……。 http://swtch.com/~rsc/regexp/regexp1.html」 / Twitter
- Regular Expression Matching Can Be Simple And Fast
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「正規表現文字列以外のマッチングモード引数がない言語だと、(?i) という文字列で ignore case になる実装はあるらしい。 https://t.co/CPh83px65l」 / Twitter
- Regex Tutorial - Turning Modes On and Off for Only Part of The Regular Expression
- Shiro KawaiさんはTwitterを使っています 「正規言語の範疇だからDFAで充分やろ←コンパクトになるとは限らない 遷移を手書きしてたら似たような状態が倍々で増えて行くぞ」 / Twitter
- suin❄️ TypeScript入門書執筆中さんはTwitterを使っています 「#TypeScript 正規表現を型安全にするライブラリ作ってみた😌 正規表現にマッチしている、つまり結果がnullなら、結果のgroupがundefinedじゃないのは自明だし、groupの中にはyearとかmonthなどがあるのも自明なので、それをTSコンパイラに分からせるやつです。 https://t.co/uBqYbpnYyw」 / Twitter
- suin❄️ TypeScript入門書執筆中さんはTwitterを使っています 「ちなみに、これは裏側で型レベルで正規表現を解析してAST化し、それを更に解析してmatchメソッドの戻り値型のヒントにしています。 https://t.co/jsaeN6PeQu」 / Twitter
- Russ CoxさんはTwitterを使っています 「Recommended: Shift-based DFAs, by @pervognsen. https://t.co/ZBw3Kj7QYF Tried it out for replacing Go's utf8.Valid. Don't get to see this very often: https://t.co/WydmztLl7I」 / Twitter
- Shift-based DFAs
- Shinya KatoさんはTwitterを使っています 「2つの正規表現が受理する言語が同じかどうかって簡単に判定できるのかな...?」 / Twitter
- kimiyuki@うさぎ🐇さんはTwitterを使っています 「@0x19f 正規表現が正規なら最小 DFA を作って一致判定できるよ」 / Twitter
- Masahrio IdeさんはTwitterを使っています 「https://t.co/7RP8otO1uJ Rubyの正規表現エンジン OnigmoのVMをdirect threaded codeで書き直してみました。手元のM1macではいくつかのbenchmarkで性能が良くなっているように見えるけど、CIはfailしてるのでどこかでLinux環境を手に入れなくては...」 / Twitter
- Support Direct Threaded VM by imasahiro · Pull Request #156 · k-takata/Onigmo
- ViVi & vine - regexp
- ja
- The Man Who Fell From The Wrong Side Of The Sky:2017年5月24日分
- https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html
- Online regex tester and debugger: PHP, PCRE, Python, Golang and JavaScript
- ヘルプシステムで正規表現を使う - 増井俊之
- 正規表現とセキュリティ / Regular Expressions and Their Security-Related Aspects - Speaker Deck
- アプリからファイアウォールにまで使われる正規表現を標的にした「ReDoS攻撃」とは? - GIGAZINE
- JFLAP Minimize DFA - Google 検索
grep
- ggreer/the_silver_searcher: A code-searching tool similar to ack, but faster.
- 第287回 Ubuntuで超高速grep「The Silver Searcher」を使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- The Silver Searcher のススメ - Qiita
- grepより高速に検索できるag(The Silver Searcher)のインストール方法 - Qiita
- 超高速grep「The Silver Searcher(ag)」からhighwayに乗り換えた - Shoyan blog
- grepの高速版「ag」 (The Silver Searcher) - メモ
- agとptとripgrep,どっちがどうでどれを使えばいいのか調べた予習 - Lambdaカクテル
- agとUnite.vimで快適高速grep環境を手に入れる · THINKING MEGANE
- FadisさんはTwitterを使っています 「FreeBSDからGPLなソフトウェアを排除する努力が続いている話。標準のデバッガがlldbになりgdbがports行きになったほか、GNU grepを置き換えるBSD grepの実装、それによって不要になったlibgnuregexの削除が挙げられている https://t.co/2LiJMqJOe1」 / Twitter
- FreeBSD Continues Work On Ridding Its Base Of GPL-Licensed Software - Phoronix
find
- ドッグさんのツイート: "grep に対する ag みたいな,find のユーザフレンドリ版.find のユースケースの80%ぐらいを確保しつつ find より速くて出力が色付きで見やすい https://t.co/lZ8KiQdH4a"
- sharkdp/fd: A simple, fast and user-friendly alternative to find.
- jhawthorn/fzy: A better fuzzy finder
- tavianator/bfs: A breadth-first version of the UNIX find command
編集距離
4人のロシア人の方法
- 「4人のロシア人の方法」で編集距離を高速化する - EchizenBlog-Zwei
- Method of Four Russians - Wikipedia
- MoFR
- レーベンシュタイン距離 - Wikipedia
- Big Sky :: レーベンシュタイン距離を使ったあいまい grep コマンド「lsdgrep」作ってみた
- いまさら編集距離 (Levenshtein Distance) を実装するぜ | takuti.me
- 編集距離(レーベンシュタイン距離)の求め方 - 具体例で学ぶ数学
- レーベンシュタイン距離のアルゴリズムを理解する
- 【技術解説】似ている文字列がわかる!レーベンシュタイン距離とジャロ・ウィンクラー距離の計算方法とは - ミエルカAI は、自然言語処理技術を中心とした、RPA開発・サイト改善・流入改善レコメンドエンジンを開発
- 編集距離アルゴリズムを使って文字列を変換する (1/4):CodeZine(コードジン)
- レーベンシュタイン距離の編集操作を統合してグラフ化する - Qiita
- 編集距離についての説明及びPythonでの実装 - Qiita
- 編集距離 (Levenshtein Distance) - naoyaのはてなダイアリー
- SymSpell対BK木:100倍速い文字列のあいまい検索とスペルチェック | POSTD
- bit vectorで編集距離の計算を高速化する - Retrieva TECH BLOG
- 七誌さんはTwitterを使っています: 「単語の類似度と言えばレーベンシュタイン距離なので記事を読んでいた。 Pythonのデコレーターは処理系へのアノテーションではなく、関数をラップする糖衣構文だと知って驚いた。 このメモ化の手法はLISPっぽい。 編集距離(レーベンシュタイン距離)を理解し、実装する https://t.co/m1jBS6A5po」 / Twitter
- 編集距離(レーベンシュタイン距離)を理解し、実装する - Qiita
ソート
Blitsort
- mattnさんはTwitterを使っています 「マージソートを繰り返してく安定ソート。場合によってはクイックソートより速いらしい。 / “GitHub - scandum/blitsort: Blitsort is an in-place stable adaptive rotate merge sort” https://t.co/XnzA8vscHR」 / Twitter
- scandum/blitsort: Blitsort is an in-place stable adaptive rotate merge sort
- mattnさんはTwitterを使っています 「マージソートの場合は左辺が常に完結するけど、完結させずにローテートさせていくらしい。」 / Twitter
- mattnさんはTwitterを使っています 「普通のマージソートの場合はこの完結が次第に大きくなるけど、このソートの場合は L1 キャッシュに乗る程度で繰り返されるので速いと。なるほどー。」 / Twitter
- mattnさんはTwitterを使っています 「ローテーションは block swap というアルゴリズムを使うらしい。 https://t.co/Q5LVVhbjyR」 / Twitter
- scandum/rotate: A collection of array rotation algorithms.
- mattnさんはTwitterを使っています 「インタフェースが qsort ぽく、エレメントのサイズと比較関数を渡せる様になってる。実用的。 https://t.co/hGuKF2eoc1」 / Twitter
- blitsort/blitsort.h at f84083834ac78994fc92473f286337f62e2a0bee · scandum/blitsort
- Kazuho Okuさんのツイート: "なるほどMSBからradix sortすればcache localityが確保できるのか #spkai"
- Kazuho Okuさんのツイート: "cache digestsの計算はradix sort使ったほうがいいんだろうな。存在すら忘れてた #spkai"
- 404 Blog Not Found:algorithm - bucket sort - 比較しなければソートは相当速い
- 404 Blog Not Found:algorithm - bucketsort.[ch] - 汎用かつlibcの*sortより高速な
- 積炭酸さんのツイート: ".NET ReflectorでC#のArray.Sortの実装見てるんだけどおもしろいね.再帰の深さ制限したクイックソートを使っているようだ."
- ミクミンP/Kazuhiro Sasaoさんのツイート: ".NET Framework 4.5 以降は標準実装のソートアルゴリズムがイントロソートになったのか https://t.co/yPIyT5uAro 最悪でも O(n log n) 。 4.0まではクイックソートで最悪 O(n^2) https://t.co/EvD4ZyGcmf"
- Array.Sort Method (Array) (System)
- Array.Sort Method (Array) (System)
- 積炭酸さんのツイート: "ついでにSTLのstd::sort(Dinkumware)も見てみたけど,やっぱり似たようなことしている.範囲の大きさを見てヒープソートに切り替えたり,挿入ソートに切り替えたりしている."
- イントロソート - Wikipedia
- Introsort - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「クヌース先生の本にqsortも分割してnが小さくなってきたら、挿入ソートに切り替えると書いてある」という話、昔、RingServerミーティングの道すがらShow(@shownakamura)さんから「qsort→挿入ソートという切替が、常時、挿入ソートになるミスが混入してて困った」というネタと共に聞いた記憶。… https://t.co/3fgdn2W6i8"
- satさんのツイート: "昨日だかにバブルソート(O(n^2)のほうがクイックソート(O(n*log(n)))より速いケースいついて少し触れたので、小さな記事を書いてみました。バブルソートのかわりに挿入ソートを使っていますが、両方O(n^2)なので s/挿入/バブル/ と読み替えてもだいたいOKのはず https://t.co/H5nJZhPbzq"
- ソートの計算量と現実のプログラム - Qiita
- satさんのツイート: "「バブルソートのかわりに」以降は忘れてください…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、WindowsSDKのqsortはループ実装かつ、ピボット配列が62個の固定長で確保されている(64bit版)。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "qsortの最悪ネスト数はn=最大ピボット数では?と思ってしまうが、2分割するたびに個数の少ない方から先に処理するというトリックで、最大log2N を実現。 さらに小さなエントリは挿入ソート切り替えのため、log2 2^64 = 64から2減らして、62個の配列でOKという話。… https://t.co/RA77dPcHC1"
- 高速な比較安定ソートアルゴリズム「颯式」の紹介 - Qiita
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「世界一単純な? ソートアルゴリズム。 for i=1..n: for j=1..n: if a[i]<a[j]: swap(a[i], a[j]) 一見バブルソートのように見えるが、if判定の不等号の向きがバブルソートとは逆になっているのに、それでもソートされる。 https://t.co/1qSnomUrUR」 / Twitter
- [2110.01111] Is this the simplest (and most surprising) sorting algorithm ever?
スペルチェッカ
- GNU Aspell - Wikipedia
- 欧文スペルチェッカー GNU Aspell — 名無しのvim使い
- Rockridgeさんのツイート: "Fx55:Googleドキュメントなどアプリ側でスペルチェッカーが働く場合は、本体側のスペルチェッカーを動作させないことで無駄な処理を省いた。 / “1330912 - Don't init spell checker for …” https://t.co/CPLktJo8M0"
- ブルームフィルタ - Wikipedia
- Bloom filter - Wikipedia
- 確率的データ構造・ブルームフィルタについてのまとめ - kakts-log
- ブルームフィルターとは
- Shiro Kawaiさんのツイート: "Bloom filterはCommon Lispで実装されたものを以前仕事で使ったことあるけど気をつけて型宣言すれば非常に速いっす。Allegro CLではビットベクタのインデックスの範囲チェックを省くのに型宣言での値の範囲指定がクリティカルだったような覚えが… https://t.co/0VaNFjJg88"
- Common Lispで動くブルームフィルタ作った - Lambdaカクテル
- C++でブルームフィルタを実装する方法 | プログラミング | POSTD
- 渋川よしきさんのツイート: "Wordの文法チェックについてすごい書かれている。.netでもCOMでもいいからAPI化してほしいって10年ぐらい思ってる。… "
- 確率的データ構造の比較:カッコウフィルタ対ブルームフィルタ | プログラミング | POSTD
CSV
- CSVファイルの一般的書式 (RFC4180 日本語訳) - アルプス登山の玄関口・笠井家
- rfc4180
- CSVの国際標準 RFC 4180をいまさら読みなおしてみた - MONEX ENGINEER BLOG │マネックス エンジニアブログ
- RFC4180だけにとどまらないCSVフォーマットのおすすめお作法 – 株式会社ルーター
blog
- 本の虫: なぜedはクソなのか
- Web Components と Electron でつくる Neovim フロントエンドの未来 - はやくプログラムになりたい
- Emacs 風のキー入力部 - Tociyuki::Diary
- Emacs 風テキスト・エディタ向けの端末キー入力手順 - Tociyuki::Diary
- Emacs 風のキー入力部 (2) 単独 ESC 文字の受け入れ - Tociyuki::Diary
- 行の折り返し表示 その 1 - Layout クラス - Tociyuki::Diary
- 行の折り返し表示 その 2 - Line を求める - Tociyuki::Diary
- 行の折り返し表示 その 3 - キャッシュ - Tociyuki::Diary
- テキスト・エディタの Undo - Tociyuki::Diary
- テキスト・エディタのカーソル移動 - Tociyuki::Diary
- テキスト・エディタのエコー領域 - Tociyuki::Diary
- テキスト・エディタの文字列補完 - Tociyuki::Diary
- テキスト・エディタの上下タイリング・ウィンドウ - Tociyuki::Diary
- テキスト・エディタのウィンドウ - Tociyuki::Diary
- テキスト・エディタのミニバッファ - Tociyuki::Diary
- テキスト・エディタのインクリメンタル・サーチ - Tociyuki::Diary
- テキスト・エディタのマルチ・バッファ - Tociyuki::Diary
- テキスト・エディタの行の折り返し表示 その 4 - キャッシュ更新の改善 - Tociyuki::Diary
- テキスト・エディタの interactive 引数指定の正規表現 - Tociyuki::Diary
- [速報]マイクロソフト、Webブラウザで動作する「Visual Studio Online」発表。VSCodeベース、IntelliCode、Live Share、拡張機能にも対応。Microsoft Build 2019 - Publickey
- テキストエディタを作る – GitHub 出張所 – プログラム関係のブログはここに
- Goで作るテキストエディタ - Sansan Builders Blog
- ターミナル用 UTF-8 テキストエディタを Rust でスクラッチからつくった - はやくプログラムになりたい
- コードとビジュアルの双方向編集なエディタを試作して ビジュアルプログラミングについて考えてみた - mizdev
- Incremental Static Regeneration で実現する次世代のサーバーアーキテクチャ - mizdev
- 七誌さんはTwitterを使っています 「実際に使ってみたけど、メッセージが来た直後に取得すると結構な頻度で失敗する。0.1秒ほどウェイトを入れると問題なくなった。」 / Twitter
- クリップボードの履歴をとるアプリの作り方 | 鳩でもわかるC#
- クリップボードの内容の変化を知る方法 | 鳩でもわかるC#
- テキストエディタのはなし - Message Passing
- Toru MakabeさんはTwitterを使っています 「括弧に色つけるだけでしょ とか言う人は正座して読んでください / How We Made Bracket Pair Colorization 10,000x Faster https://t.co/2v2qybjK7G」 / Twitter
- How We Made Bracket Pair Colorization 10,000x Faster In Visual Studio Code
- トデス子'\さんはTwitterを使っています 「VS Codeの対応括弧色づけ機能。最初は拡張機能だったがパフォーマンスが悪いので本体に統合し、様々な最適化が可能に。括弧の対応を2-3 tree構造のASTとして持ち、絶対位置を保持しないことでクエリ(指定範囲のAST取得)がO(log^3 N)、更新(トークン長E)がO(log^2 N+E)に。」 / Twitter
- トデス子'\さんはTwitterを使っています 「トークンの解釈結果はインクリメンタルに来るので、終わるまでは旧ASTを参照しつつ裏で新ASTを更新することでファイル末尾のハイライトがチカチカするのを防ぐ。ASTのクローンはCoWで速い。」 / Twitter
- トデス子'\さんはTwitterを使っています 「JSの整数は2^53までいけるので、26ビット整数のタプルをひとつのnumberにエンコードできるぜ→V8は2^31以上の整数をヒープに追い出すので効果がなかったぜ……」 / Twitter
- 画力・博士号さんはTwitterを使っています 「((簡潔データ構造チャンス!)と思ったけれども2-3木で十分だったのか)」 / Twitter
GitHub
- rhysd/NyaoVim: Web-enhanced Extensible Neovim Frontend
- rhysd/neovim-component: <neovim-editor> WebComponent to embed Neovim to your app with great ease
- vim/vim: The official Vim repository
- welcome home : vim online
- antirez/kilo: A text editor in less than 1000 LOC with syntax highlight and search.
- DigitalMars/me: Micro Emacs in C
- GrenderG/tte: tte (tiny text editor) is a terminal based text editor written in C from scratch.
- adsr/mle: a small, flexible console text editor (C)
- martanne/vis: A vi-like editor based on Plan 9's structural regular expressions
- lpan/viw: VI Worsened, a lightweight and fun VI clone.
- hellerve/e: A dead simple editor
- maildrop/a2pr-j
POSTD
- 15年目のVim | POSTD
OSDN
Emacs
- Emacs超入門[1]:Emacsの基本的な使い方とショートカットキー | OSDN Magazine
- Emacs超入門[2]:基本的なカスタマイズ方法と定番カスタマイズ例 | OSDN Magazine
- EmacsでGPL違反が発覚、Stallman氏曰く「悪い間違いを犯した」 | OSDN Magazine
- GNU Emacs 22が正式リリース――6年ぶりの新規バージョン | OSDN Magazine
- レビュー:Emacs 22:機能強化で再び注目を集める伝統的エディタ | OSDN Magazine
- Emacs 23.2リリース、入力補完やクラスブラウザなどを備えたプログラミング支援ツール「CEDET」を標準搭載 | OSDN Magazine
- Emacs用の開発支援ツールを集めた「CEDET」、バージョン1.0が登場 | OSDN Magazine
- バージョン24系初となる正式版「Emacs 24.1」リリース、パッケージ管理システムの導入などが行われる | OSDN Magazine
- Webブラウザを内蔵した「Emacs 24.4」リリース | OSDN Magazine
- 「Emacs 25.1」リリース | OSDN Magazine
- 「GNU Emacs 25.2」がリリース | OSDN Magazine
- 「Emacs 25.3」が緊急リリース、悪意あるLispコードを実行する脆弱性を修正 | OSDN Magazine
- 「GNU Emacs 26.1」リリース | OSDN Magazine
- 「GNU Emacs 26.2」リリース、Unicode 11をサポート | OSDN Magazine
- 「GNU Emacs 26.3」リリース | OSDN Magazine
- 「Emacs 27.1」が公開、Portable Dumperを採用 | OSDN Magazine
- 「GNU Emacs 27.2」公開 | OSDN Magazine
- ブラウザ上で動作するHTML編集コンポーネント「CKEditor 5 v12.2」リリース | OSDN Magazine
- ブラウザ上で動作するリッチテキストエディタ「CKEditor 5 v12.3」リリース、文字数カウント機能などが加わる | OSDN Magazine
Qiita
- ctrlp.vimの使い方まとめ - Qiita
- 自作エディタをつくる Advent Calendar 2016 - Qiita
- VSCode公式の機能で、リモートサーバにSSHして編集する【Insiders Preview】 - Qiita
- HTML内でIDをつけた要素はJavaScriptのグローバル変数に格納される - Qiita
- メニュー使っていますか? - Qiita
- いま熱い最新スクリーンエディタmicro ことはじめ - Qiita
- Emacs の Major Mode におけるインデント計算を楽にする smie.el - Qiita
Wikipedia
- vi - Wikipedia
- vi - Wikipedia
- nvi - Wikipedia
- nvi - Wikipedia
- Vim - Wikipedia
- Vim (text editor) - Wikipedia
Twitter
シェル
- 解答略さんはTwitterを使っています: 「個人的には、zsh, awk, sed, textutilsといったUNIX系のCUIツールを現代的な視点で全て刷新してほしい。人間工学を取り入れつつ、頻出コマンドを全て1文字にしてタイプ数を現行シェルの半分以下に削減し、mapやfilterといった関数型言語の知見を取り入れた最強のツールを流行らせてPOSIXを滅ぼしてくれ」 / Twitter
- 解答略さんはTwitterを使っています: 「vimのノーマルモードでは、部外者に理解不能のキーコマンドを連打して画面をどんどん書き換えるけど、あんな感じでシェルを操作したい。」 / Twitter
- 解答略さんはTwitterを使っています: 「3年ほど前に「vimのようなコマンド入力でシェルを操作する拡張」を自作した。もうこれ無しでは生きれない。 僕以外の人類、みんなめっちゃ頑張ってコマンドラインにタイピングしまくってて笑う。あんまりTAB補完連打してたら小指壊すで https://t.co/aMkYfSyLgB https://t.co/PfrhQab6Zb」 / Twitter
- 解答略さんはTwitterを使っています: 「リポジトリはこれ。snippet.zshをsourceして、bindkeyをいくつか設定すれば動く。awkもperlもsedも使わず、素のzshだけで動くように作ってあるし、多分どこでも動く。ソースコードは短いけどキレイじゃないので、こういうの詳しい人がいたらどんどんフォークして改良版作って https://t.co/9cZL5zqrFA」 / Twitter
- kaitou-ryaku/zsh-simple-snippet
グローバル変数
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「https://t.co/4M2Vow6Yzw に報告してあるけど、今のGeckoのエディタって、変更直前にSelectionを変更、各メソッドはSelectionを取得してその範囲を編集ってやってる。」 / Twitter
- 1555919 - Make editor not update Selection directly
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「これ、分かりやすく言うと、グローバル変数を予め設定しておかないと動かないメソッドだらけって話。」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「しかも、このグローバル変数にあたるSelectionの変更がとにかく遅い。DOMのRangeやSelectionの仕様が速度を全く考えていない仕様なのでそこのパフォーマンスの悪さは仕方ないものの、とにかく遅い。」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「なので、editorをSelectionと切り離してしまえば速度も上がるし、コードも綺麗になるし、Chromeとの互換性も簡単に実現できるようになる(ただしものすごい行数の変更が必要)。」 / Twitter
Undo/Redo
ファイルシステム
- Kazuho OkuさんはTwitterを使っています: 「ほんと、ディスクなんて大抵空き容量あるんだからさあ、その空き容量使って変更を巻き戻しできるようにしてよ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「unco は ld_preload であるがゆえに色々制限あるけど、ユーザランド fs でディレクトリ単位で任意の時点にロールパック可能とかキレイに作れるんじゃないのという」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「@smbd 惜しい感じなんですよね。スナップショットだとちょっと粒度が大きいというか。あっコマンド間違えた、取り消し!みたいなことがしたい」 / Twitter
- かげさんはTwitterを使っています: 「@kazuho すごい粒度の細かい自動コミット(ワンストロークごとコミットみたいな。そこまで言わなくても改行一回デリート一回コミットでも良い)内蔵の開発環境が欲しいです」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「fsのスナップショットじゃなく、ディレクトリやファイルのスナップショットがほしい、と言えばいいのかな。ボリュームバックアップとTime Machineの違いと同じ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「https://t.co/Z71pZUzeP0 これですね。すごく良い https://t.co/cbAwUyS7hE」 / Twitter
- text.dvi
- fjのYog教祖様さんはTwitterを使っています: 「@kazuho ElephantFS「btrfsやzfsは下がってな。こいつは俺でないと相手できねぇ事を言ってやがる。」」 / Twitter
- じーくどらむすさんのツイート: "「階層構造を活かしたUndo」について考えていたが、これ実現したら結構使えそう。Undoって時系列で1本しか無いけど、しばらくたって「あの部分だけUndoしてぇー」って時に、そこの木だけにフォーカスしてUndoが可能。"
- じーくどらむすさんのツイート: "ただし、RedoできるのはUndo実行時の木にフォーカスしている時のみ、アクションのChainが複数の木にまたがる場合はChainが分解される、などの仕様で色々と歴史の部分改ざん問題を回避する必要がある。"
- なかのん&マジックさんのツイート: "ちょっと前に、GeckoのUndo/Redo周りを見てたけど、今の一本道なスタックでもキツいのに……"
- なかのん&マジックさんのツイート: "まあ、どっちみち、ブラウザでやろうと思うと、消したハズのDOMノードをずっとundo/redoのスタックに積んでいかないといけないとか、ちょっとメモリに優しくない(JSでオブジェクトをつかんだまま、ツリーに戻って来たものを参照するかもしれないから)。"
- なかのん&マジックさんのツイート: "undoが壊れるエディタとかまじで存在してて引く。"
- Kazuho OkuさんはTwitterを使っています: 「何度でも言いますが、21世紀なんだし、エディタだろうがファイルシステムだろうがウェブ上のシステムだろうが、計算機上のすべてのUIはアンドゥ可能であるべきだし、そうじゃないシステムには unco 投げつけるべきなんですよ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Undo managerなんて、2、3年前にrniwaさんが提案してたやつだよ https://t.co/7YTMLgsqKB」 / Twitter
- Undo API
リサイザ
- なかのん&マジックさんのツイート: "まだNightly 62での集計だけど、FirefoxのHTMLEditor固有の機能である、画像やら<table>やらのリサイザを使ってる人、予想通り少数ながら、予想外に使ってる人は使ってるって感じの数字だぞ?? https://t.co/OIcPy4cqO7 #もずでぶ"
- Measurement Dashboard
- なかのん&マジックさんのツイート: "1が意味するのは、実際にリサイザが表示されたHTMLEditorで、一回ハンドルをドラッグしてリサイズしたってこと。10の人なんかは10回リサイズやってるってこと。"
- なかのん&マジックさんのツイート: "さすがにposition:absolute;の編集機能はほとんど使われてないな。 https://t.co/RJrdEtaHDo"
- Measurement Dashboard
- なかのん&マジックさんのツイート: "<table>エディタの方もサンプル数からするとまあ予想通りか。 https://t.co/RCCCCbN7zo"
- Measurement Dashboard
- なかのん&マジックさんのツイート: "Beta 62、Release 62での数字を見てからの判断になるけど、デフォルト非表示は問題なさそうなユーザ数だけど、リサイザのユーザ数を見るとややリスキーではあるな。"
解析木
- DrumatoさんはTwitterを使っています: 「パーサがいきなりASTを作らずに一度具象構文木(解析木)を作ってから意味動作でASTにする実装のメリット,何があるだろう.」 / Twitter
- 市川 真一さんはTwitterを使っています: 「テキストエディタとかで、解析木生成パーサを流用する場合に対応する括弧へのジャンプが実装できそうな気がしています https://t.co/RKqMVsbb3C」 / Twitter
- 星にゃーんさんはTwitterを使っています: 「複雑な文法を持つ言語の場合パーサにいきなりASTを作らせるのが難しい場合がある(例えば演算子を自由に定義できる言語)、コンパイラが具象構文木を持ってるのでそれを出力するだけでコードフォーマッタができる、とか? https://t.co/9p2Yb1n7MK」 / Twitter
- 星にゃーんさんはTwitterを使っています: 「この二つは具象構文木である必要があるかどうかは微妙。ASTに加えてコメントとカッコの情報を持っていれば充分な気もする」 / Twitter
- 星にゃーんさんはTwitterを使っています: 「お気持ちでパーサを眺めると、具象構文木を生成する構文解析と具象構文木から抽象構文木への変換の合成と思うことができ、そうするとこの問題はどのぐらい両者を分離するかの程度問題と捉えることができる…?」 / Twitter
- DrumatoさんはTwitterを使っています: 「とても共感できる意見をいただきました, 個人的に思ったのは,具象構文木からASTに変換する処理はトークンストリームから作るより随分シンプルなコードになるはずなので,そういう利点を持っていそう. 字句解析と構文解析を分けるかどうかとか,構文解析と意味動作を分けるかとかいう話とベクトルは一緒か」 / Twitter
検索
- Takashi KawasakiさんはTwitterを使っています: 「いつも思うんだけど、こういう検索機能、ファイル名も検索対象に含めてほしいんだよね。例えば、プロジェクトに含まれるファイルのファイル名を全置換したい場合、ファイル名とそれを参照しているファイルの中のファイル名を同時に置換したいことが多い。 https://t.co/LiIZmFoKhq」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「Javaのネームスペース名変更とか軽く死ねる。」 / Twitter
平易なエディタ
- Kazuho OkuさんはTwitterを使っています 「Viとかnanoみたいなキーバインディングは調べて覚えろ的なスパルタじゃなくて、コンソールで使える軽量の、メニューがついてるエディタってないのかな。軽量の!!!!だからね。EmacsはNGワードだからね!!!」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「この件 @cwyang さんに教えてもらった mc をモノクロモードで使ってるけど、キーバインド覚えなくても使えていい感じ https://t.co/n6hWy8oNFO https://t.co/5w4DnpSnrS」 / Twitter
LISP 構造エディタ
- SODA NoriyukiさんはTwitterを使っています 「昔のLispではよくある拡張だったはず。Z80上のLispでもあったと思う。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「UTILISPでは )))) は ] と一つで書ける。」 / Twitter
- Takuo WatanabeさんはTwitterを使っています 「@n_soda 括弧の数を数えなくて便利だと思って使っていると,後からデバッグや変更・再利用したいときに面倒な思いをします.結局Emacsで括弧を最後まで閉じる関数を書きました.」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@wtakuo 今みたいなスクリーンエディタによる支援がなかった時代には有用だったんですが、現代では不要ですよね。 そういえば当時のLispには構造エディタ https://t.co/sEXFvuCjoZ なんてものもありました…」 / Twitter
- 情報学広場:情報処理学会電子図書館
- Kota Mizushima (on a diet)さんはTwitterを使っています 「今こそ汎用(N分木)木構造エディタが求められているのじゃなかろうか。汎用テーブルエディタがExcel(スプレッドシート)だとして。」 / Twitter
- なぎせ ゆうきさんはTwitterを使っています 「Excelの資料からJSONファイルの生成をするコードが出来た。 なぜ人類はJSON形式のデータをExcelの書類で設計しようとするのか」 / Twitter
Emacs
- ネイティブコンパイルEmacsの登場 | 日々、とんは語る。
- Miura HidekiさんはTwitterを使っています 「でも、あまり速くなっていないな。おそらくバイトコードをそのままCコードに機械的に置き換える奴だろう」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ソース見たら、簡単な型解析を行っているようだ。おもしろい https://t.co/dbeT2DtaEW」 / Twitter
- emacs.git - Emacs source repository
- Miura HidekiさんはTwitterを使っています 「SSAなんて不穏なワードを発見した。奴ら本気だ」 / Twitter
Monaco
- Google、VSCodeの代替を狙う「Eclipse Theia」コードエディタをクラウド統合開発環境として採用。Google Cloud Shellに統合を発表 - Publickey
- Makoto Kato ︎︎さんはTwitterを使っています 「cloud shell editorはTheia使ってるってことはエディタ部分はmonacoってことだよな」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「GitHub CodespaceもGoogle Cloud Shell Editorもmonaco使ってるし、Geckoの自動テストにmonaco入れたほうがいいのかなぁ。https://t.co/TS7F0hjf9C が修正されたんで、致命的な問題はなくなったように見える (GeckoView除く)」 / Twitter
- Fix composition logic for Firefox by belcherj · Pull Request #106873 · microsoft/vscode
- Makoto Kato ︎︎さんはTwitterを使っています 「Eclipse TheiaってもともとTypeFoxが作ったエディタで、中身はVSCodeのエディタエンジン、Manacoを使ったものだけど、みんな分かってないのが笑えるというか、OSSとか発表されたらまずコード見るでしょ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「s/Manaco/Monaco/」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「いろんなものがMonacoによって駆逐されてしまうのかなぁ...」 / Twitter
- Makoto Kato ︎︎さんのツイート: "Visual Studio Codeだって、そもそもVisual Studio Onlineのために作ったmonacoをElectronアプリにしてってところからなんだし、そもそも先祖返りしただけではと"
- Makoto Kato ︎︎さんのツイート: "今まで存在したVisual Studio Onlineがなかったことになった件について"
- Makoto Kato ︎︎さんのツイート: "Visual Studio OnlineはAzure DevOpsに名前変わって、Visual Studio Onlineが新たに発表されたのはわずらわしいので、アップルみたく"新しいVisual Studio Online"って名前だったらな"
- Makoto Kato ︎︎さんはTwitterを使っています 「Monaco (VSCode)のビルド、LinuxよりもWindowsの方が簡単にビルドできるの、さすがMicrosoft感する。(Windows Termianlみたくrazzleコマンドでビルド環境設定できたらよりMicrosoft感)」 / Twitter
Vim
- Masaki HaraさんはTwitterを使っています 「Vim: 最終行が末尾改行を含む JetBrains: 最終行が末尾改行を含まないが、最終空行には移動できない (IdeaVimの場合?) VSCode: 最終行が末尾改行を含まない」 / Twitter
- Masaki HaraさんはTwitterを使っています 「汎用エディタとしてのVim, Ruby/Go用としてのJetBrains, Rust/TypeScript用としてのVSCodeを併用してるんだけど、3者ともに末尾改行の扱いが違うのでたまにミスる」 / Twitter
- Kazuho Okuさんのツイート: "ログをテキストファイルにコピペする際に、vim起動して i して Cmd-V して遅くてウギャーってなるの1日に1回くらいある 正解は pbpaste > file なんだけど"
- 島鉄雄さんのツイート: "Emacs (substring "abcd" 0 1) ⇒ "a" (substring "abcd" 1 1) ⇒ "" Vim 'abcd'[0:1] ⇒ ab 'abcd'[1:1] ⇒ b これからも分かるように Vim は文字と文字の間という概念が無い。 だから文字を挿入する時に、文字の前に挿入する(insert)か、後に挿入する(append)かというコマンドが存在するのである。"
- 島鉄雄さんのツイート: "Emacs と Vim の違い Emacs のカーソルはポイントと言って文字と文字の間に位置しているから行末は文字の後ろに移動する。 Vim は違って文字の上に乗っているから行末でも文字の後ろには行かない。 Emacs → テクスチャの UV 座標指定 Vim → ファミコンなどのキャラクタベースの座標指定 と言える"
- 10/27,28はOSC Tokyoさんのツイート: "個人的によく使う、少しadvancedなvimコマンド3選 ・カッコの中を消す: di( ・複数行をコメントアウト: C-vで行頭を選択しI// ・空行単位の移動: {、}"
- Vimのパッチ存在確認処理を速くした - プログラムモグモグ
- SODA NoriyukiさんはTwitterを使っています 「emacsの場合 CTRL-_ (CTRL-/) が undo なので、この「直前に編集した場所に戻る」目的で CTRL-_ CTRL-p CTRL-_ とかしたりするな。undoの副作用でカーソルを戻して、二回目のundoでそのundoをキャンセルするという。 CTRL-p のところは連続undoを阻害する目的なので副作用の少ないコマンドなら何でもOK」 / Twitter
- monaqaさんはTwitterを使っています 「コーディングのとき、一旦別の場所に飛んでコード片をコピーしてから、元いた場所にすぐ戻ってペーストする…そんな場面、よくありますよね。Vimなら g; と押すだけで"直前に編集した場所"にジャンプできます。g;/g,は"チェンジリスト"に登録された箇所を行き来できる便利コマンドです。 #vimtips_ac」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Vimで表示上の行(screen lines)間を移動したいときはgj/gk。もしかしてと思ってg0と入力したらちゃんと表示行の先頭に飛べた。日本語で長い段落書いていると助かる / “Moving by screen lines instead of file lines | Vim Tips Wiki | Fandom” https://t.co/0Pbs8Go1QS」 / Twitter
- Moving by screen lines instead of file lines | Vim Tips Wiki | Fandom
- smegheadさんはTwitterを使っています 「@igrep vim操作の一貫性は良いですね。 g$は良く使います。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「Vim 使いだけど基本的に ESC じゃなくて C-[ 使うから実は ESC あんま要らない」 / Twitter
- mattnさんはTwitterを使っています 「Windows の Vim を使う時に ^X^F でパスを補完すると shellslash オプションに影響して \ でセパレータが補完されるのだけど、shellslash を設定すると今度は色んな動作がアレになる可能性があって、致し方なく毎回 \ を / に書き換えてる皆さん、completeslash というオプションがあってですね...」 / Twitter
- mattnさんはTwitterを使っています 「これソースでパスを補完する時に \ にするか / にするかを決定する専用のフラグでして set completeslash=slash にしておくと HTML のソース等を書く際には便利です。」 / Twitter
Windows
- マイクロソフトサポートさんのツイート: "メモ帳で「F5」を押すと、現在の日付と時刻が挿入できます。ちょっとした会議のメモなど、日付を入れておきたい文書の時に便利ですよ。 #MSHelpsJP"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸は(空白インデントモードだと)インデントを1段解除するには「空白をひたすら削除」or「行選択してから SHIFT+TAB」(or そのマクロ化)しかない様子。 Python推奨な空白インデントだと、軽快に書きづらい点の解消は難しそうかな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸サポートの方に、マクロでショートカット呼び出しの方法は聞いたので、それを試してみよう。それでもしっくり来ない場合は、他のエディタにお引越しするかな…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "秀丸のサポート掲示板、コメントが付く速さと内容(開発の人が書いている?)は見習うべきものがあるなぁ。"
- Masaru IritaniさんはTwitterを使っています: 「同じ編集の繰り返しを自動的に検出してくれる AI-assisted Refactoring は、リファクタリングの時間も誤りも削減してくれる素晴らしい機能ですね。 https://t.co/nrx4QynCcw」 / Twitter
- Visual StudioさんはTwitterを使っています: 「We're expanding the application of #AI to accelerate learning and improve development agility with two new capabilities: whole line completions and refactoring. Read more: https://t.co/6Tn1X1tELr https://t.co/Z8USvIvO6Y」 / Twitter
- Re-imagining developer productivity with AI-assisted tools | Visual Studio Blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「久々にWZを見た、、、最初の頃使っていた。 ただ1プロセス・マルチスレッドのため、バグがあると他の編集中ファイルも巻き添えに全て死ぬので、1年くらいで利用中止したっけ、、、」 / Twitter
@d_toybox
histric-1
- なかのん&マジックさんのツイート: "実際に書いたこと無いんだけど、実装してる側からすると、アプローチがマズいものが多々ある。"
- なかのん&マジックさんのツイート: "Geckoは基本的にはエディタの動作のグレーゾーンはBlinkに合わせて行くので、bugzillaにバグ報告もらえたら一番確実。数ヶ月後に修正されてることが多いので、そのときに、サイト側のハックを削除できるようになる。"
- なかのん&マジックさんのツイート: "Blinkのエディタの動作は手堅くて良いんだよね。単純にmakes senseな事が大半で、やりやすい。"
- なかのん&マジックさんのツイート: "私が担当してるジャンルだと、イベント周りのBlinkの動作は気に入らないこと多いんだけど、エディタ周りは、なるほどねって感心すること多い。"
- なかのん&マジックさんのツイート: "仕事では今でも秀丸でソースコード書いてるけど、色々と不満もあってどうしたもんかとは思う。ただ、編集能力にはほとんど不満はなくて、素早くファイルを開いたり、タブを検索できないという、ファイル間のナビゲーションの不満が大きい。"
- なかのん&マジックさんのツイート: "昔、ダメもとでスマートロケーションバーの機能を提案してみたんどけど、案の定、却下されてて、なんというか絶望感しかない。"
- なかのん&マジックさんのツイート: "秀丸の開発者さんは複数のファイルを同時に編集しないのかな?と不思議に思うぐらいに、この辺に改良がみられないんだよなぁ。"
- なかのん&マジックさんのツイート: "は? 一つのEditorBaseに複数のスペルチェッカーを登録できるの?"
- なかのん&マジックさんのツイート: "editorとspellcheckerと謎のテキストコンテンツを管理してくるクラス、変に別モジュールに分割されててややこしい。"
- なかのん&マジックさんのツイート: "うん? resizeイベントって要素ごとに発火してたっけ……? / 強力なポップアップブロックが追加された「Chrome 64」安定版リリース - GIGAZINE https://t.co/Y8dxXb29U7"
- なかのん&マジックさんのツイート: "それはさておき、Geckoのresizeイベントは発火しちゃいけないloadイベント前に発火しちゃってないのかな。この前その仕様知ったものの、まだ調べてないや。"
- なかのん&マジックさんのツイート: "Firefox for Androidで読み込み終わると同時に再読込が始まるページがあるの、resizeイベントがどうこうってのを見かけた記憶がある。"
- なかのん&マジックさんのツイート: "エディタでは、しばらくやれないけど、重大なバグがあって、Enterキーとかでパラグラフが分割されるとき、Geckoだけ後方にある要素が既存の要素になってて、他のブラウザは前方にある方が既存の要素になる。このせいで、undo/redoにちょっと無理あるし、どうにかしないと。"
- なかのん&マジックさんのツイート: "BlinkはBlinkでundo/redoが直感からズレるケースがあるの見つけてるけど、まあ、そんなことやるWebアプリは無いやろなっていうレベル。Blinkはどうも、新しい要素をその次にある要素と紐付けて保存してるらしい。"
- なかのん&マジックさんのツイート: "細かく見てると気に入らない動作もあるし、凄い変なバグも見つかるんだけど、総じてBlinkのエディタは良くできてるというか、手堅いなっていう印象。"
- なかのん&マジックさんのツイート: "Geckoのエディタは、自動テストが無かった頃に作られてから放置されてたんで、単純に使わなかった時の挙動がとにかく怪しい。"
- なかのん&マジックさんのツイート: "とりあえず、ブラウザのエディタの何がしんどいって、undo/redoの前に、ユーザーの編集以外に、JSでDOMツリーを変更されてる可能性があるわけだ。基準をどうするのか考えないと、変なところに要素を作ったり、移動したりすることになる。"
- なかのん&マジックさんのツイート: "Twitterのツイート欄にWebページの内容を貼り付けると、一瞬だけスタイルそのままのリッチテキストが表示されて、すぐにプレーンテキストになるでしょ。ああいう感じで、機能制限やブラウザ感の差異吸収のために、結構、JSでエディタの内容っていじられるのよね。"
- なかのん&マジックさんのツイート: "Geckoの長年の不要なkeypressイベント(仕様で後からほかのブラウザの事情から不要と定義されたんだけど)に対処している、reactのソースコードを見つけて、ホントに申し訳ない。数ヶ月以内になんとかしたい。"
- なかのん&マジックさんのツイート: "Webアプリ開発者の負担を減らすために、IMEの未確定文字列がある場合にもkeydownとkeyupは発火するべきってのも、同時にリリースしたい。"
- なかのん&マジックさんのツイート: "とりあえず、keypressの方は最低限、どこを書き替えないといけないかを洗い出したけど、自動テストでeditorの挙動が全く引っかからなかったんで、自動テストでテストされてない機能が他にもありそうで、見通しはまだまだ。"
- なかのん&マジックさんのツイート: "まあ、Thunderbirdを壊さないように、また、FirefoxのUIのコードの書き換えを最小限にするためにトリッキーなことしてるから、自動テストで引っかかりにくいんだけど。"
- なかのん&マジックさんのツイート: "ブラウザのHTMLエディタは私が誤解してないなら、IEが最初に実装して、Netscape/Mozillaが独自に追走、そしてWebKit/BlinkがIEの動作をより研究して実装って流れだと思う。なので、Geckoの動作が一番違ってて厳しい。"
- なかのん&マジックさんのツイート: "Geckoの動作をとっととBlinkと同じにすれば良いやんって思った人は互換性とか分かってなさ過ぎなのでお願いします。"
histric-2
- 道化師さんのツイート: "それにしてもWebブラウザ上で動かすタイプのテキストエディタ、よくやるよなぁ。textarea が直接的な拡張に対応してないが為にみんなクッソ涙ぐましい努力して実装してるよね・・・。"
- なかのん&マジックさんのツイート: "正直なところ、テキストエディタをプログラミング勉強中に頭ひねって作ってた身としては、ブラウザのHTMLエディタがなんであんな高速に動いてるのか不思議だったりする。あんだけ、DOMオブジェクトを生成・破棄繰り返す上にエディタ的には余計なイベントやら、ミューテーションの通知投げてるのに。"
- なかのん&マジックさんのツイート: "そーいや、生のDOMをガリガリ使えるWeb開発者さんは、Geckoのエディタのコードを見ると(汚くてしんどいけど)面白いと思う。やってることは、C++でDOMツリーをDOMイベントドリブンで修正してるだけやから。 https://t.co/9IjIAH2jYm"
- HTMLEditRules.cpp - mozsearch
- なかのん&マジックさんのツイート: "ちなみに、Geckoのテキストエディタも、HTMLエディタの機能削減版なだけだったりする。<textarea><div>value</div></textarea>みたいな感じ。"
- なかのん&マジックさんのツイート: "やっぱ、あらためて見ててもSelectionとRangeが遅いなぁ。エディタが編集してる最中はSelectionの変更を最小限にすべきなんだけど、mutation observerとの絡みがあって、ざっくりと削減もできないんだよなぁ。誰だ、あんなの考えたヤツは。"
- なかのん&マジックさんのツイート: "DOMツリーの変更とSelectionの変更は全て、EditorBaseのラッパメソッド(新設)を通すようにして、Selectionの変更メソッドは新しい範囲をキャッシュするだけにする。DOMツリーの変更ラッパメソッドはSelectionのキャッシュを実際にSelectionに行う、って形だとかなり改善できるかとは思うけど、つらい。"
- Makoto Kato ︎︎さんのツイート: "CheckSelectionStateForAnonymousButtonsが呼ぶ… "
- Makoto Kato ︎︎さんのツイート: "常にではないが… "
- Makoto Kato ︎︎さんのツイート: "それ、formdata.jsmかなんかがfennecだけ動いてて、そいつがselection listener使ってるから余計重い話ある… "
- Makoto Kato ︎︎さんのツイート: "abspos editorが実はFirefoxでは使う方法がデフォルトでは存在しないのに、そいつがSelection Listenerで常にReflow発生させてる話があって、あれprefs追加しようと思ったの忘れてた。content editableでチョイ速くなるはず"
- Makoto Kato ︎︎さんのツイート: "あれ、Thunderbirdだけしか使う方法ないんだよね"
- なかのん&マジックさんのツイート: "https://t.co/fCjJEth8BE これです??… "
- なかのん&マジックさんのツイート: "うう。HTMLエディタではスペルチェッカー動いてないのを忘れてたorz"
- FormData.jsm - mozsearch
- なかのん&マジックさんのツイート: "エディタ周りのセキュリティリスクをどうにかうまくコントロールできないもんかなぁ。今、ぼんやりと考えてる設計は、DOMツリーに修正加えながら色々とやるんじゃなくて、何を削除して、何を追加するのかを先に全部計算して用意しておき、一気に変更する時だけひたすら慎重にやるって形。"
- なかのん&マジックさんのツイート: "リッチテキストエディタをブラウザ上で作ってる人、日本人で居ないかな?"
histric-3
- なかのん&マジックさんのツイート: "このページ、書いた人が横スクロールは使いにくいという判断をしていて興味深い。 / 自作ゲーム大年表 https://t.co/e571kwMUVA"
- 自作ゲーム大年表
- なかのん&マジックさんのツイート: "今、まさに、writing-modeでスクロールバーが一方向に対してだけ存在してる要素は、垂直方向のwheel操作でスクロールできるようにする実験的なパッチがFirefoxのNightlyに入ろうとしてるところ。 https://t.co/4wUSMlkXbx #もずでぶ"
- なかのん&マジックさんのツイート: "実際のデバイスで色々とやってみないと提案されている挙動が直感的かどうか、また、本当に使いやすいのか分からないので、縦書きのページのリストを募集中です。 https://t.co/WCrhIcNZ6k"
- なかのん&マジックさんのツイート: "クロスブラウザなリッチテキストエディタを一から書いてみたさあるんだよな。ブラウザ側をやってると、「なんでそんな実装になってんの?」みたいに思えちゃうんで、ちょっと、現実の開発者さん達と知識や発想の乖離が起きててやりづらさを感じてきてる。"
- なかのん&マジックさんのツイート: "Thunderbird使ってて思うのは、bodyテキストという好ましくないものが、引用部分でEnter押した時にデフォルトでそのモードになっちゃうところかな。ただ、人間の見た目的に問題少ないのと、まあ、機械的にもそこはよきに計らいやすい。"
- 「この世界の片隅に」はいいぞさんのツイート: "Nのnviにimctrl, imkeyオプションを実装しました。Tera Term / RLoginのエスケープシーケンスを使って、input methodを自動的にオン・オフできます。nvi-m17nのcannactrl, fepkeyオプションと同じように動きます。… https://t.co/GGHXnWQ2Ab"
- なかのん&マジックさんのツイート: "HTML5的には<b>とかみたいにスタイル情報を持ってる要素を英語でなんと呼んでたっけ……"
- なかのん&マジックさんのツイート: "特に呼び名が無さそうだな。意味付けが行われたせいか。HTML4.01だと"Font style elements"とインライン要素限定感あるグルーピングされてるな。"
- なかのん&マジックさんのツイート: "ところで、エディタやってると、インライン要素とかブロック要素っていう用語が時代遅れなの分かってて使い続けないといけないのつらい。まあ、Blink/WebKitみたいにGeckoのエディタもdisplayの値を参照しろって話ではあるんだけど、その変更はかなりキッツい。"
- なかのん&マジックさんのツイート: "しかも変更した所で、実際のwebアプリでの互換性向上はほとんど無い……"
- なかのん&マジックさんのツイート: "今後のGeckoのエディタのために数ヶ月もデザインの変更に付き合ってくれてる会社や同僚には感謝の念しかない。日本の会社じゃまず無理そうだ。"
- なかのん&マジックさんのツイート: "Site Isolationのためにメモリを減らそうとすると、今、やってる範囲では、TextEditor/EditorBaseのメモリ削減はサイトによってはそれなりに効果ありそうなんだけど、そのためには一時的に(かつスタックで済む)メンバは普段は持たない事が肝要だけど、今回のデザイン変更で一気に解決しそうな感じ。"
- なかのん&マジックさんのツイート: "とりあえず、実際にコード触ってる人間以外に意味の無い、EditorBaseとTextEditorはマージして、メンバのalignmentを調整して1バイトでも削減すべきなんだろうな。"
histric-4
- なかのん&マジックさんのツイート: "編集で(一時的に)壊れてる<table>を修復するっていうAPIがあるんで、それのリファクタリングのためにテストを書いてみると、壊れた<table>ではそれを検出した途端にエラーを返すという謎な挙動になってて、結局何もしていない……"
- なかのん&マジックさんのツイート: "昔のGeckoのエディタのAPIを使ってた人って、本当にAPIなんだっていう感覚で書いてるんじゃなくて、実装の一部、C++じゃないとしんどいところをC++で書いて、JSでいけるところはJSでって感じにしただけなんだろうなぁってのをあらためて。"
- なかのん&マジックさんのツイート: "まあ、大元のXPCOM APIをバンバン作ってた頃って、技術的にはアドオンのAPIとして使えますよって感じだけど、実際はアドオン自体が管理すらできない代物だったから、その意識が無かったってのも大きいんだろうな。"
- なかのん&マジックさんのツイート: "呼び出し元のお気持ちに忖度したり、呼び出し時の状況に依存したりしなかったりするようなもの、APIとして最低だわ。"
- なかのん&マジックさんのツイート: "例えば、foo(Element* bar)みたいな形のAPIが、barがnon-nullな要素だったらその要素基準で処理が行われて、null (undefined)だったら現在のSelectionの情報から勝手に探すよ、みたいなの多すぎ。バグでnullが渡された場合、呼び出し元のデバッグが困難になるからやったらあかん。"
- なかのん&マジックさんのツイート: "使い勝手のためにそうしたいのなら、別のAPIでSelectionからそのElementを返すようなものを用意すれば良いし、その形なら、後で他の動作も選択肢に入れやすくなるし、何より呼び出し側のコードが明示的になって綺麗になる。"
- なかのん&マジックさんのツイート: "「頭の良い」APIは将来、その挙動を変えないと破綻するって時に変えて、そのユーザが全滅するというオチ。"
- なかのん&マジックさんのツイート: "秀丸、FirefoxのURLバーみたいに相対的に近いところにあるファイルに手軽にアクセスできるUIがあれば最高なのと、grepが速ければなぁ……(使ってるけど)"
- なかのん&マジックさんのツイート: "macOSでVSCode使ってみてるけど、微妙に「あれができない」みたいなのにぶちあってて……"
- なかのん&マジックさんのツイート: "それにしてもThunderbirdでのみ使ってるeditorのAPIをとにかく自動テストで固めないと、思わぬタイミングでregression報告が来るのキツいな。"
- なかのん&マジックさんのツイート: "まあ、もう、editorのコードを自動テストの追加できないぐらいにドラスティックな変更かけることはもはや無いとは思うが。"
- なかのん&マジックさんのツイート: "とりあえず、今ある仕様案にはかなり強い設計に書き換わってる。"
- なかのん&マジックさんのツイート: "とにかく、標準仕様策定の主導権を握れないと、自分のところのプロダクトの設計では実装しづらいものが仕様として概ね固まってしまうと、大きな書き換えを余儀なくされるので、「まだか」って標準仕様界隈からはつつかれるんだよな。"
- なかのん&マジックさんのツイート: "ただ、仕様案が固まってからの実装だと、設計自体を最適化しなおせるんで、選考実装してるブラウザが細かいバグを修正するために大きく書き換えてるのを生暖かく見てられるのはある(見られてることもある)。"
- なかのん&マジックさんのツイート: "今のところ、どのテキストエディタも「ファイルを開く」という操作を非常に軽んじてUI設計しているのが私個人の利用方法と合わないんだよな。"
- なかのん&マジックさんのツイート: "おお、VScodeのCtrl+Pの存在に気付いてなかった。秀丸で欲しかったの、この機能。作業速度が体感で倍ぐらいになってる。… "
- リベラル.3goさんのツイート: "F1でも同じです… "
- なかのん&マジックさんのツイート: "F1だとコマンドの一覧出てきますね……… "
- リベラル.3goさんのツイート: "コマンドパレットは 何も入力がないとファイル一覧 >を最初に入れるとコマンド一覧 # を最初に入れるとシンボル一覧 になります。 F1は > が最初から入力された状態 Ctrl + pは何も入力がない状態 Ctrl + tは # が最初に入力された状態 で起動します 他にできることは ?を入力すると出ます… https://t.co/3NH66khMzH"
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「ガッツリとした高速化は他の方々が先に入れてくれて、その後、ひたすら細かい最適化を3年間入れ続けてきたけど、その中でも効果があったのは、 1. virtual callを極力減らす 2. エディタが必要なオブジェクトはpublicメソッドが呼ばれた時に一度だけrefcount増やして保証する」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「3. 再生成するインスタンスは極力再利用する 4. 変更されない文字列はヒープに確保してnsString間でコピーが発生しないようにする(nsAutoStringは必ずコピーが発生するので遅い)」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「1はXULアドオンの廃止が無ければできなかった。他はとにかくメモリをいじるなって所につきる感じ。4はnsAutoStringの設計が悪いように思えるのでそのうちに見てみる。」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「ちょっと見てみたけど、4は半分間違いみたい。コピー元がrefcountableな文字列ならコピーを行わないようになってた。ただ、inlineのバッファで文字列を持ってる状態でnsStringに渡すとコピーが発生するのでホットパスでのnsAutoStringは気をつけないとダメっぽい。」 / Twitter
- 分散処理に詳しいオタクさんはTwitterを使っています 「Emacsのお気に入りな機能にM-tの単語入れ替え機能があって、間違って INFO(LOG) とか入れてしまった時に一発で LOG(INFO) にスワップできます(そんな入力ミスをするな)」 / Twitter
- κeenさんはTwitterを使っています 「面白い。確かにハイライトすべきなのが構文とは限らなくて、構文から導き出される文脈こそ欲しい情報だからそれをダイレクトにハイライトした方が便利だね。 Syntax highlighting is a waste of an information channel • Buttondown https://t.co/oPSizrlUjo」 / Twitter
- Syntax highlighting is a waste of an information channel • Buttondown
- でこれきさんはTwitterを使っています 「viはcopyのことをyankと読んでemacsはpasteのことをyankと呼ぶのだなあというところから、そういえばvimの人は"で指定するものをレジスタと呼ぶけどviの人はバッファと呼んでいて、vimの人はmaはマークaをつけると言いviの人はマークレジスタaに現在位置を入れると言うのだなという方にさまよっていた」 / Twitter
- Miura HidekiさんはTwitterを使っています 「タイムマシンがあれば1960年くらいに飛んで括弧の対応をエディタレベルで明示することに関する特許を取っていれば大儲けできそう」 / Twitter
- 池田 泰延 / ICSさんはTwitterを使っています 「VSCodeのオススメ設定 https://t.co/DCJcKqjD0g」 / Twitter
- 【山田祥平のRe:config.sys】クラウドワープロは、いったいいつまでページにこだわり続けるのか - PC Watch
- C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに:コードを読む時間が一番長いという問題 - @IT
- 「IntelliCode」がさらに進化し、行全体を候補として提案。まるでAIとペアプロしているように - Publickey
- 大規模ソースコードの読み方
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「計画を立てる時につい「何をするか」に注目してしまう。そうではなく先に断片でいいから「(中間)成果物」を挙げる。そしたら、それらをつなぐ「変換」を挙げる。そうしてプロセスを組み立てる。これを表現するのが PFD。中間成果物が選べない人はプロセスを「分割統治」できていない。」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「計画の立て方 1.成果物を列挙する(生成プロセス決まる) 2.PFD (Process Flow Diagram) を書く 3.生成プロセスの時間を見積もる 4.リソースを配分する 5.リソースごとにトポロジカルソートする 6.バランスやクリティカルパスで調整 完成」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「ブロックを {} などの括弧で定義する言語、} が抜けたりするだけで、構文解析が失敗して、変数、関数の定義にたどり着けなくなったりするので、コーディング環境とは相性が悪い感じはある。その辺、インデントで構造定義する言語なら・・・と思ったりもするんだけど、ゴミしか残らないのが困りもの。」 / Twitter
国際化
MS
リソース DLL
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsのLCIDは、地域を指定した個別ロケールIDと親(総称的・ニュートラル)IDとが用意されていて、親IDリソースだけ作れば、個別ロケール環境に応じて自動フォールバック可能。 だが、繁体字だけは親IDがVS2017から選択できず、リソース言語IDを直接0x7C04に編集する必要あり…後付けなのかな?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、直接編集した後に VS2017 で参照すると、こんな表示に。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10上のHK/TWの両環境で、正しくフォールバックされることを確認。 (ただし、Win10から対応した可能性も残る)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7(HK)からも、0x7c04なリソースにフォールバックされることを確認。 苦労して MUIの枠組みを使わなくても感(笑)"
Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "フランス語Windowsだと、ASCII部分のキーアサインも随分違うのね。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ダウンロードフォルダは Téléchargement、デスクトップは Bureau と表記されていた。へぇ。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ドイツ語Windowsだと、YとZだけが入れ替わっている。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "イタリア語で、第二キーボードを日本語にするときは「Giapponese」。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "アラビア版Windowsは、全てが鏡像の世界…単に「文字が右から左に」というレベルではなかった(笑) ボタン配置もタスクバーもごみ箱も、すべて逆さま。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そう言えば、最初はWindowsも文字列だけ右から左にしようしたが、矛盾が吸収できず結局、全て逆さまにした、という話を大昔に読んだ気がする…が元ネタが思い出せない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win7(英語)でも(フォント=MS Shell Dlg)同時多言語表示できることを確認。 (昔はUNICODE版でもフォントが無く▮▮表示に。ちなみにANSI版等でUNCODE変換が失敗した場合は??表示に)… "
- Gakuさんのツイート: "Win32APIのGetNumberFormat 関数を使って環境にあわせたロケールの数字形式に従って書式化されてはいかがでしょう。 https://t.co/lRY3KP9zxF… "
- GetNumberFormat 関数
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ありがとうございます。 このへんを眺めていたところでした。 https://t.co/7crsCHMuNG 日時その他もなかなか頭が痛いですが(笑) https://t.co/Uqho9drVT6… "
- Locale and Culture - Globalization | Microsoft Docs
- GetUserPreferredUILanguages function (Windows)
- Multilingual User Interface (MUI) Support - NyaRuRuが地球にいたころ
- MUI
- Multilingual User Interface API - Google 検索
- 日本語のWindowsは礼儀作法にうるさい?――英語環境で動作するコードが日本語環境でNGなワケ:その知識、ホントに正しい? Windowsにまつわる都市伝説(86) - @IT
- 英語版と日本語版、どっちのOS環境が使いやすい?:山市良のうぃんどうず日記(23) - @IT
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今更ながら(多言語リソース/DLLを直接使う場合に比べて)MUIの枠組みを使うメリットが手間の割に見えないな。 https://t.co/Q7RfWu0eUZ"
- Multilingual User Interface | Microsoft Docs
- 言語パックをストアから入手可能に ~「Windows 10 Insider Preview」Build 17074 - 窓の杜
Mozilla
- Rockridgeさんのツイート: "MozillaはFirefox本体のリリースとロケールのリリースを分離することや、ロケール変更を即時に反映させることができるように、基盤整備を進めている。 / “Gecko Locale Selection remodel co…” https://t.co/Ii5ZBZAucY"
- Rockridgeさんのツイート: "Fx55:日時の表示フォーマットについて、OSのロケールではなくブラウザのロケールを基準にするようになった。参照:https://t.co/Jyo42LH9H9 / “1339650 - Introduce mozIntl.Da…” https://t.co/cHPNVoaNvb"
- Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonに「翻訳記憶」のダウンロード機能が実装された。翻訳記憶は承認済み翻訳の集合体。ダウンロード機能はこれを別プロジェクトなどで再利用可能にするものだ。 / “Reuse…” https://t.co/9SWanizaYw"
- Rockridgeさんのツイート: "Firefox(デスクトップ版・Android版)やThunderbirdなどの日本語ローカライズに関する進捗を確認できる。 / “Mozilla Localization Team Japanese” https://t.co/S5TET0Hbso"
- Mozilla Localization Team Japanese
- Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonに最大文字数の超過を防止する機能が追加された。残り文字数も表示される。また、検索の速度もアップしたそうだ。 / “FTL, RTL, Tetris and othe…” https://t.co/dIuDwTxr0G"
- Rockridgeさんのツイート: "Mozillaのローカライゼーション用WebアプリPontoonで、外部から利用可能なAPIの開発が進められている。将来的にバックエンドとフロントエンドを明確に切り分けるつもりらしい。 / “Exposing Pontoon D…” https://t.co/widocPNsDu"
- Rockridgeさんのツイート: "将来的に、Firefoxは個別のローカライズ版がビルドされるのではなく、単一のビルドにWebExtensionsベースの言語パックを載せる形へと移行する。ある意味で昔に近い形態といえるか。 / “Switching langua…” https://t.co/DDHKuoSz5v"
- Rockridgeさんのツイート: "ローカライズ用リポジトリの統合(cross-channel)を達成した現在も、Firefoxのリリース日から遡ること2週前の水曜日がローカライズの期限となっており、それを過ぎると翻訳が製品版に反映されないらしい。 / “On c…” https://t.co/bjoeaZpje0"
- Rockridgeさんのツイート: "Fluentをベースにした新しいローカライズ用フレームワークへの移行が開始された。 / “Migration of Preferences strings to Fluent” https://t.co/Ej6qNMQYcG"
- Rockridgeさんのツイート: "GeckoのローカライゼーションAPIのスキームが2017年中に刷新され、基盤整備ができたので、2018年はFluentベースの新しい仕組みでローカライズが行われていく。まずは設定画面のUIから。 / “Multilingual…” https://t.co/H6NRzlPjC5"
- Mozilla L10N Glossary · mozilla-japan/translation Wiki
- Rockridgeさんのツイート: "ローカライゼーションに関するMozillaの汎用スタイルガイド。 / “Mozilla general style guide · GitBook” https://t.co/YiTw3aDvzG"
- Mozilla general style guide · GitBook
- Rockridgeさんのツイート: "Firefoxの設定画面のUIについて、Fluentベースの新しい仕組みでローカライズできるよう移行作業が行われている。Firefox Nightly 61で完成か。 / “L10n Report: March Edition …” https://t.co/mISsaGn87G"
- L10n Report: March Edition | Mozilla L10N
- Rockridgeさんのツイート: "Fx62:UIテスト用に疑似ローカライズ機能が搭載された。翻訳を待たずして特定のロケールに切り替えた場合のUIをチェックできる。参照:https://t.co/BM1xMtda9X / “Pseudolocalization i…” https://t.co/g0908Rpuqo"
- Rockridgeさんのツイート: "Fx64:新しい言語パックをインストールした場合、関連する辞書もインストールされるようになった。 / “1479008 - Install related dictionaries when a new langpack is …” https://t.co/BJS1VcxVLS"
- L20n • Home
- Mozilla in Japanさんのツイート: "本日、新たにFluent 1.0をリリースしました!新時代のローカライゼーションを体験してください😎 https://t.co/l0Zdxldgim… "
- Makoto Kato ︎︎さんのツイート: "FluentはFirefox OSの残骸の一つだけどね"
- chikoskiさんはTwitterを使っています 「今の所の案: - 対応する言語を 14 に絞る。これで 95% がカバーできる - 重要なコンテンツを機械翻訳で提供する。これらは編集できないものとする。 - 英語版が変更されるたびに、翻訳版も更新する - コミュニティによる編集を通じて、機械翻訳の質を向上するシステムを提供する」 / Twitter
- chikoskiさんはTwitterを使っています 「"8 languages cover 90% of the accept-language headers received from MDN users (en, zh, es, ja, fr, ru, pt, de)" とあるので、日本語は翻訳対象に残るんじゃないかと想像してます。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「MDNのローカライズの件が、ああなりそうなところで、これやるんですかねー https://t.co/NyCvL3LghN」 / Twitter
- 【オンライン開催!】【第28回!】みんなで MDN を翻訳しよう!翻訳コミュニティ定例ミートアップ! 2020年11月21日(土)開催 - Mozilla Japan コミュニティ | Doorkeeper
gettext
- gettext - Wikipedia
- ISO 639 - Wikipedia
- ISO 3166 - Wikipedia
- GNU gettext utilities
- GNU gettext utilities
- GNU gettext utilities
- GNU gettext utilities
- C言語系/memos/gettext - Glamenv-Septzen.net
- gettext によるメッセージ処理
- GNU <CODE>gettext</CODE>ユーティリティ:
- GetTextを用いたローカライズ方法 - Conyac
- Manual - Documentation - Zend Framework
- 本の虫: Boost.Localeがクソすぎる
- 自然言語(ロカール)の選択
- Exgettextの話
- Shirouzu Hiroaki(白水啓章)さんのツイート: "gettextを真面目に使うなら、en.poも作った方が良いという話。 (ただ、識別子を考えなくて良いというメリットが…) https://t.co/4Kh6eLHFE9"
- gettextを使う場合の注意点 – FLAMA技術Blog
- gettextとバージョン管理システムの相性の悪さを解消する案 - ククログ(2013-11-14)
- i18nしてますか?(gettext+PHPその1):海外でも通用するエンジニアになる:エンジニアライフ
- PHP国際化プログラミング - gettextを使った国際化
- GNU gettext utilities
- Gettextによるウェブアプリケーションの国際化と地域化 (1/4):CodeZine(コードジン)
- gettext のコマンドラインツールを使おう: SuperTuxKart を例に - Qiita
catgets
- Man page of CATGETS
- catgets(3)
- X/Open catgets API - Oracle Solaris でのアプリケーションの国際化とローカライズ
- IBM Knowledge Center - catgets() — メッセージ・カタログからのメッセージの検索
- メッセージカタログ(catgets)
- 標準 C 言語国際化プログラミング - メッセージ
Internationalization API
- Standard ECMA-402
- ECMA-402.pdf
- ECMAScript Internationalization API Specification
- ECMA-402.pdf
- Standard ECMA-402-archive
- ECMAScript® 2016 Internationalization API Specification
- ECMAScript® 2017 Internationalization API Specification
- ECMAScript Internationalization API Specification
- tc39/ecma402: Status, process, and documents for ECMA 402
- ibm-js/ecma402: ECMA-402 JavaScript Internationalization API "shim"
- ECMAScript® 2019 Internationalization API Specification
- Intl - JavaScript | MDN
- WebKit、Safari 10でECMAScript国際化API「ECMA-402」をフルサポート。 | AAPL Ch.
Twitter
- Fadisさんのツイート: "小数点は.とは限らなくて,を使う地域も存在する。一方JSONは小数点に.を使うことを要求している。従って、ロケールを指定せずにscanf/printf系の関数でJSONの数値を読み書きしてる実装は全てバグっている"
- Fadisさんのツイート: "C言語の規格はscanfの浮動小数点数の符号の後eの前までのフォーマットについて何も規定してないから、ロケール設定すれば期待通りの動きをするかどうかは環境次第か"
- Fadisさんのツイート: "POSIXとMSDNのドキュメントのレベルでロケールの影響を受ける事が書かれてる"
- Fadisさんのツイート: "@n_soda あっ 確かにmainに入った時点では環境変数で設定されたロケールは反映されてないですね"
- SODA Noriyukiさんのツイート: "@fadis_ 多国語対応するために setlocale(LC_ALL, "") を追加した瞬間にバグるの、怖いですねえ…"
- SODA Noriyukiさんのツイート: "@fadis_ 正確に書くと「setlocale(LC_ALL, "") ないし setlocale(LC_NUMERIC, "") を呼んでいるプログラムはバグっている」ですね。 setlocale() を一切呼ばなければ、デフォルトである "C" locale になりますから。"
- 渋川よしきさんのツイート: "i18nをどこでやるのか、という問題もある : 良いエラーメッセージの書き方 by @castanea on @Qiita https://t.co/vwOe5ovAxY"
- 良いエラーメッセージの書き方 - Qiita
- 渋川よしきさんのツイート: "汎用のツリー差分取得エンジンみたいなのが欲しい"
- Atsushi Enoさんのツイート: "DOMツリーを辿るとき、われわれはだいたいpreceding-siblingを左側に、following-siblingを右側に向かって読みに行くと思うけど、イスラエルのハカーとXPath実装の話をしていて話が全然合わなくて、ふと気づいて聞いてみたら彼らはわれわれと逆順にツリーを… https://t.co/80MlUkUdnx"
- Rui Ueyamaさんのツイート: "アラビア語やヘブライ語ではカレンダーは右ではなく左にめくると次の月になる、というバグが報告されて、そこまで逆なのかよーと思いながら直したことがあった。そもそもアラブはイスラム暦なのではないか?と思って聞いてみたらグレゴリオ暦でもOKというので、国際化わからんすぎると思った思い出。"
- Rui Ueyamaさんのツイート: "昔UIやってたころにmmddyyyyとddmmyyyyの違いでぐぐる検索の日付指定検索がカナダで何週間も使えない(アメリカでは使えた)というバグを作ってしまったことがあるので、国際化って英語圏vs非英語圏っていう話でもないんだよな。カナダでそんな問題になってるとはよくわかってなか… https://t.co/HLl0sopUfi"
- hnw (@hnw) | تويتر
- Shirouzu Hiroaki(白水啓章)さんのツイート: "数値のカンマ・ピリオド(ドイツ・スペイン・ポルトガル・イタリア語圏では意味が逆に)、英米式だと勘違いする人が居るのね…うーむ。 https://t.co/KgTSYYX8qI https://t.co/nStoBGLDMh"
- カンマとピリオド | 貿易よもやま話
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「インド、バングラデシュなど南アジアでは…「12,34,567.89」となります。…桁の区切り方が独特で、最初は3桁で区切りますが、その後は2桁ごとに区切ります。」 「カシオがこのインド形式の桁区切りをする電卓(3桁式との切り替え可能なもの)を現地で発売したところ、大人気になったそうです」"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「FastCopyだと 30分で75,256MB == 75MBしかコピー出来ていない」と勘違いしてしまったとのこと。 "I noticed FC had only copied 75,256 MB ( euh ...75 megabytes) in half an hour." https://t.co/KgTSYYX8qI"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "誤解は無くなりそうですが、さすがに「75G256M」は気色悪い気が…(笑) (似た表記をしているアプリケーションはあるのかしらん?)… "
- Dan Kogaiさんのツイート: "いや慣れの問題でしょう。今だって1m83cmのような表記はいくらでもあるし… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "簡体中文環境での利用が第1位で、アラビア語(エジプト)が第4位という驚きの結果。 やはり測定は大事。"
- Shuuji Kajitaさんのツイート: "海外で△が通じないという話、研究室で緊急調査した結果がこちら。×は通じるけれど、○と△は通じなかったり誤解される危険性が高そうです。… "
- Localization standards reader 4.0
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「kdiff3のショートカットキー、国際化されていないのしんどい(Ctrl + Shift + 数字を使うの素人仕事すぎ)。」 / Twitter
- くいなちゃんさんはTwitterを使っています 「フランスでは、小数点にピリオド「.」ではなくカンマ「,」を使うので、「1.5」は「1,5」と表すのはご存じの通りですが、すると座標の「(1.5,2.5)」は「(1,5,2,5)」となって混乱しないのか疑問に思って調べてみました。 どうやら座標はセミコロン「;」を使って、「(x;y)」と表すようですね!」 / Twitter
- Shinji KonoさんはTwitterを使っています 「xボタンで決定は洋ゲーやってる人には常識。⚪︎に肯定的な意味はないらしい。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「国際単位系(SI)では、小数点はピリオドでもカンマでも可だが、桁区切りはスペースのみ。 一方でISOではフランス式(カンマ小数点)が公式。だが、英語圏が英式への変更を働きかけと。 https://t.co/FRzQQ5vB79」 / Twitter
- 小数点 - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「国際単位系(SI)の起源はメートル法=フランスだけど、一方で他国基準の国際統一に、最も抵抗しそうな国がフランスかも?という疑念もあったり(笑) ---- 「一方でISOではフランス式(カンマ小数点)が公式。だが、英語圏が英式への変更を働きかけ」」 / Twitter
- クックパッドの海外展開プロダクト開発ノウハウとは(前編)~検索結果に言語や宗教が影響する。Cookpad TechConf 2017 - Publickey
- クックパッドの海外展開プロダクト開発ノウハウとは(後編)~ORは「オワ」か?「オレゴン州」か? 問題。Cookpad TechConf 2017 - Publickey
- Mozilla、ローカライズのための仕様とツールを提供する「Fluent 1.0」を公開 | OSDN Magazine
- リストのローカライズに便利なIntl.ListFormatコンストラクタ | フロントエンドBlog | ミツエーリンクス
セッション管理
Restart Manager
- Windows 10プレビュー版、アプリの再起動設定が簡単に - PC Watch
- スタート画面の[電源]メニューに新オプション ~プレビュー版Windows 10 Build 21359 - 窓の杜
- 「Windows 10 20H1」Build 18965が“Fast”リングに ~OS再起動後にアプリを再開するオプションを新設 - 窓の杜
- Windows 10 バージョン1709からのシャットダウン/再起動の新仕様、どうしよう?:その知識、ホントに正しい? Windowsにまつわる都市伝説(109)(1/2 ページ) - @IT
- RegisterApplicationRestart function (winbase.h) - Win32 apps | Microsoft Docs
- デスクトップアプリのリスタートマネージャー5(テストツール) – nishy software (ja)
- Windows Vista のリスタート/リカバリ処理の開発 – tsmatz
- Masaru Iritaniさんのツイート: "#WindowsInsiders Skip Ahead ビルド 18855 ではメモ帳で保存し忘れた内容が再起動後に自動で復元されるようです 📝… "
- kkamegawaさんのツイート: "Restart ManagerはVistaがリリースされた時に標準アクセサリー全部サポートしているべきだったと今でも思ってます…そうすればみんな使ってくれたかもしれないのにーと。… "
- Masaru Iritaniさんのツイート: "元々は Vista の新機能だったのですね。ありがとうございます、勉強になりました。… "
- なかのん&マジックさんのツイート: "秀丸、昔のアプリっぽく、実にOS自体のクラッシュからの復旧が弱いなぁ……"
- なかのん&マジックさんのツイート: "まあ、現職のままで新しいアプリをがっつり趣味で開発するってのは無いけど、やるとしたら、定期的にバックグラウンドのスレッドでセッション情報を書き出し続けるように基本的なところで設計するかな。"
- なかのん&マジックさんのツイート: "昔じゃ考えられへんけど。"
- ミックさんはTwitterを使っています 「アメリカの物流は超低品質なのでAmazonの荷が届かないことは日常茶飯事だが、感心するのはここで決して「追跡調査」という異常系に踏み込まないこと。「届いてない」ボタンを押すと速攻で同じ荷が発送される。異常系を正常系で回収するオペレーションの方がTCOが低くスケーラビリティがあるのだろう。」 / Twitter
- “PCの調子がおかしいな”と感じたときに役立つ「信頼性モニター」 - 窓の杜
- Rockridgeさんのツイート: "Fx62:ハングをモニタリングするためのスレッドを整理することで、消費メモリの増加を防ぐとともにパフォーマンスの低下を抑制した。 / “1448040 - clean up hang monitor threads” https://t.co/Neaj0sLEC2"
- 2019年1月22日 We don't want to track; just count ―Fedora,ユーザ数の計測にUUIDを採用へ:Linux Daily Topics|gihyo.jp … 技術評論社
- UUID version 6の提案仕様 - ASnoKaze blog
- Crash/Deprecation/Intervention Reporting について - ASnoKaze blog
- 時間順にソート可能なUUIDv6, UUIDv7, UUIDv8の提案仕様 - ASnoKaze blog
- マイクロサービスの次に来るものは何か? Biligin Ibryam氏の提唱するマルチランタイム・マイクロサービス - QCon Londonの講演より
- 世界でたったひとつの識別子として活用される「UUID」はどのように生成されているのか - GIGAZINE
- Netflix Presents Telltale、アプリケーションヘルスモニタリングツール
- 分析用ログデータに対する品質保証としての異常検知 - クックパッド開発者ブログ
- なぜ複雑なシステムでは障害が発生しやすいのか - GIGAZINE
- AndroidアプリにおけるUIの状態保存と復元について調べてみた | Money Forward Engineers' Blog
- Kubernetesクラスタ上で動かすSidekiqに対してヘルスチェックを導入した話 | Money Forward Engineers' Blog
- mattnさんはTwitterを使っています 「机上では1550京年だけど、衝突判定するのにも時間が掛かるので、衝突はするかもだけど判定はもっと時間掛かりそう。」 / Twitter
- UUIDを重複させるにはどれだけ時間がかかるのか試してみた
- OdashiさんはTwitterを使っています 「UUIDはほぼ衝突しないから安全というの、UUIDの仕様の外でいくらでも衝突に繋がるバグを埋め込まれるので、実用的には特段エラーのチェックから逃げられるわけではない」 / Twitter
- OdashiさんはTwitterを使っています 「チェック自体は必要だがダブるケースについての常設のワークフローを組む必要はないくらいのアレ」 / Twitter
- Slackが新しいロール管理アーキテクチャを詳しく説明
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「新しい時刻ベースのUUID形式(v6,v7,v8)提案。データベースのキーとして使える。どれも128ビットで長さは変わらず、一意ではあるが (バイナリ、テキスト表現どちらも) ソートしたときに時系列順になるように設計されている。 https://t.co/xj2xdhC8VQ」 / Twitter
- draft-peabody-dispatch-new-uuid-format-01
コード補完
Twitter
- 渋川よしきさんのツイート: "エディタに対するIDEのアドバンテージは、エディタはたいてい補完候補をまとめて一度に送る設計になっていることが多いから、候補が増えるとレスポンスが重い、IDEはインクリメンタルにそれができる余地が多少広いぐらいって補完システム作ってる人が言ってた"
- 渋川よしきさんのツイート: "ただ、そういうインクリメンタルにしようとすると、IDEの補完のシステムを作り込むのはさらに難しそうだし、簡単に作るとエディタと変わらなくなっちゃう。"
- Fadisさんのツイート: "C++におけるコード補完は残念ながらあまり幸せになれない。近代的なC++erならテンプレートを活用して再利用性の高いコードを書いている筈だけど、未知の型Tにどんなメンバを持っているかは、そのメンバを利用する事によって決定する為、それを利用する前に予想する術は無いんだ"
- Fadisさんのツイート: "conceptを理解できるコード補完ならあるいは…"
- かずき@MHW が好きさんのツイート: "VSの場合凄く長い名前のものを書くときは CCLM とかみたいに打つと ContainerControlledLifetimeManager みたいなものにマッチする(単語区切りの先頭をうつだけでいい)ので、長い名前のもをうつ機会が多い場合は、覚えておくといい"
- Mune-sanさんはTwitterを使っています 「CLion、ファイルか関数が長くなるとオートコンプリートにものすごく時間がかかるよになるんじゃないかという気がする。 長いったって二千行くらいなんだが。」 / Twitter
- Mune-sanさんはTwitterを使っています 「SupportのSpeed Up Code Analysisが効いた。 異常な遅さは消えたようだ。ただし、一部の解析は手動で起動しなくてはならなくなった。 https://t.co/mvfxCWbzx5」 / Twitter
- Performance Tuning Tips - Help | CLion
- Kazuho OkuさんはTwitterを使っています 「@tenpoku1000 最近のIDEの補完は実際にコンパイル走らせるので、マクロが未定義だとかエラーいっぱい出るオチになると思います」 / Twitter
- Miura HidekiさんはTwitterを使っています 「むしろ申し訳ないという気持ちになった...。正直、抽象実行でリアルタイムで補完するとか型チェックが出来るようになるとは思わなかった」 / Twitter
- kateinoigakukunさんはTwitterを使っています 「Special thanksに挙げていただきました 😊 https://t.co/X9Bxvicd07」 / Twitter
- TypeProf for IDE: Enrich Development Experience without Annotations
- kateinoigakukunさんはTwitterを使っています 「TypeProf for IDE: Enrich Development Experience without Annotations #ruby #ruby3 https://t.co/MUZ9X6yip1 via @SlideShare」 / Twitter
- 自動補完 - Wikipedia
- インテリセンス - Wikipedia
- Intelligent code completion - Wikipedia
- [ コード補完機能等の利用 IDE 関係操作 ] - Mr.XRAY
- JavaScriptのコード補完できていますか? - Aqutras Members' Blog
- 簡単にプログラミング環境が構築できる「Cloud9」の始め方(前篇) | 株式会社イテレイティブ
- 支援機能(IDE チュートリアル) - RAD Studio
- コード補完からムダを省き、Javaプログラミングを地味に効率化 | I am programmer and proud
- 本の虫: VC10のインテリセンスについて
- 本の虫: MSVC++コンパイラーの中に入っているWebブラウザー
- 本の虫: Inside IntelliSense
- 本の虫: インテリセンスのリビルド
- 本の虫: VS2010のsquiggleについて
- コーディングをAIが支援してくれる「Visual Studio IntelliCode」、Javaに対応。GitHubにあるコードを機械学習 - Publickey
- Big Sky :: gocode やめます(そして Language Server へ)
ナビゲーション
LSIF
- 無職やめ太郎(本名)さんはTwitterを使っています 「GitHub上でもコードジャンプとか出来たらいいのにな」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「@Yametaro1983 それをどのブラウザーでもできるようにするために https://t.co/OecVGi2uEh っていうのが策定されてるんですよ。ソースコードの定義情報まとめるJSONファイルになっているそうで」 / Twitter
- LSIF.dev
cscope
- 第 8 章 cscope: 対話的な C プログラムの検査 (Sun Studio 12: C ユーザーズガイド)
- Cscope Home Page
- memo/Cscope.md at master · tsuyopon/memo
- if_cscop - Vim日本語ドキュメント
- cscope CapmNetwork
- ヘッダファイルなどをVimのキー操作一発で探す (3/3):いまさら聞けないVim(9) - @IT
- cscope - Wikipedia
- [cscope][emacs] cscopeをほぼ全ての言語に対応する方法 - goinger的日記
- CscopeとSilentBobによるソースコードの解析 | OSDN Magazine
- Linuxカーネルソースコードを読むツール (1):cscope編 - Fixstars Tech Blog /proc/cpuinfo
- コード ナビゲーション(IDE チュートリアル) - RAD Studio
- ソースファイルのナビゲーション - Oracle® Solaris Studio 12.4: IDE クイックスタートチュートリアル
- NetBeans IDE Javaエディタでのコード支援: NetBeans IDEのリファレンス・ガイド
- 本の虫: GNU Globalが面白そうだ
- OS作れないマンさんのツイート: "GNU globalでコードリーディングは便利なんだけど、今自分がどの関数を読んでて、さっきまで何処にいたか、みたいなコールスタック(のようなもの)を記録して可視化する仕組みが欲しくなる。"
- OS作れないマンさんのツイート: "リーディングスタック、現実的な範囲で作るとすると、手動によるマーキングが必要になりそう。まあそのくらいは許すとして、あとはマークをどの階層に配置するかの推論をしなければならない。"
- ぬるぽへさんのツイート: "rtagsこれです(https://t.co/a9FbbVGqtf) アドホックな文字列処理じゃなくてclangのパーサを内部に抱え込んでて、それで型とかマクロとかを処理してタグしてくれる 最新のコミットはこわれてるのでビルドしたかったらreset --hard HEAD^してね"
- ぬるぽへさんのツイート: "@liva_jy rtagsいいよ、マクロで定義された識別子も追える"
- _さんのツイート: "ところでいつかrtagsについて宣言までしか飛んでくれなくて不便ということを言ったのですが、あれは間違っていて普通に定義までジャンプできました そしてマクロを駆使して定義された関数や変数も定義にジャンプできてめっちゃ便利"
- 最強のC/C++インデクサー "Rtags" を本気で使う - Qiita
SQL
その他
log
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ログ出力のためのベストプラクティス: - 処理の前でなく、処理の後に過去形でログ出力せよ。 - 可変部分をメッセージに埋め込まず、末尾に追加せよ。 - WARNINGとERRORを区別せよ。 - INFOはビジネスレベルの情報、DEBUGは技術的な情報に使い分けるべし。 https://t.co/T56yxz3Z2a」 / Twitter
- My Logging Best Practices – Thomas Uhrig
- Masahiko SawadaさんはTwitterを使っています 「Logical Decodingの1つのバグ修正にもう2日位使ってるけど3日目突入。構造体をそのままシリアライズしてるからマイナーバージョン間でも構造体のメンバ変数を変えられない気がする。それもあって良い直し方を模索中。」 / Twitter
- RookoutがLive Loggerを発表し、ログレベルが動的に変更可能に
- 今すぐ ALB のアクセスログをクエリする - クックパッド開発者ブログ
- 自作DBMS Advent Calendar 2020 - Adventar
- ast.htm
- II-22-2. インデックスの種類と特徴 | 日本OSS推進フォーラム
- データベース性能を向上させる「インデックス」を理解する:「データベーススペシャリスト試験」戦略的学習のススメ(26) - @IT
- 基礎から理解するデータベースのしくみ(8) | 日経 xTECH(クロステック)
- YugaByte DB | YugaByte DB
- NEDOが25億円投じ日の丸RDBを開発中、「国産にも勝機あり」と自信を見せる理由 | 日経 xTECH(クロステック)
- [1712.01208] The Case for Learned Index Structures
- LIS026115.pdf
- Go vs Rust : 特徴量DBに適するのはどっち!? (2020-04-14 実験追記) - ABEJA Tech Blog
- PoloDB: a lightweight NoSQL database | by Vincent Chan | Medium
- 日記 (2020 年 11 月)
- サイボウズの新しいインフラ基盤を支えるストレージの本番適用に向けた取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ
- オラクル技術エキスパートが紹介する 開発者のためのデータベース完全ガイド連載一覧:CodeZine(コードジン)
- 閉包テーブルモデル - Google 検索
- シャーディング - Google 検索
- Random Query Generator Tests - MariaDB Knowledge Base
- 30分で論文流し読みシリーズ 7「File Systems Unfit as Distributed Storage Backends: Lessons from 10 Years of Ceph Evolution」 - 覚書
- CAS操作 - Google 検索
Apache Spark
- Spark vs Hadoop MapReduce | Xplenty
- 【和訳】Hadoopは失敗した、という分析 #BigData - クリエーションライン株式会社
- MapReduceは「ゆっくり死んでいく」、Hadoop開発者のカッティング氏 | 日経クロステック(xTECH)
FS
その他
Gfarm
- Publications
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
@hei_nyan
- okamo(aged 5 yrs.)さんはTwitterを使っています 「lustreの動きと仕組みはなんとなく理解してると思うので、beegfsあたりの動きをちょっとみてみたいな。AWSのマーケットプレイスにあるので触ってみるか」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「分散ファイルシステムの振る舞いと実装って各システムが独自進化していってる感があって、よくわからんというのが正直なとこなんですよね」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「セマンティクスの定義はunix semanticsとsession semantics、以上、で細かい話し始めると色々疑問が出てくる。」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「"session semantics - no changes are visible to other processes until the file is closed." これ厳密に守ろうとするとバージョン管理が必須になるけど、そこ頑張ってるシステムは聞いたことない。DAOSとか最近のシステムの実装はわからんが https://t.co/PLW0SipacJ」 / Twitter
- Distributed File Systems
- okamo(aged 5 yrs.)さんはTwitterを使っています 「session semanticsの出自がどこかはわからないんだけど、業界ではNFSのclose to openがイコールで語られる。 でもNFSってcloseしてなくても別プロセス/クライアントから書いたデータ読めちゃうよね?となる。実用としてそこは気にならないんだろうけど、」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「実態はclose前のデータは読めるかもしれないし読めないかもしれない、なんだろうな。とは言え実用としてはこの辺りの中途半端な状態は未定義で、closeしたら次のopenで読めますよ!が分かりやすいんだろう。」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「namespaceのセマンティクスに関しては全く言及が無いし、実際NFSでもファイルをrenameして同名で作ったファイルを別クライアントからopenしたらrenameされたファイルが読めてしまうことはあったはずなので、色々複雑である。」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「まとめると、FSのセマンティクス(そもそもセマンティクスてなんだ)って結構いい加減なので、期待される最低限以外は自由に作ってくださいな、になるんだろうと思った次第。」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「unix semanticsはそれなりに厳しい。多分external consistencyレベルは維持しなきゃ成り立たなくて、Lustreは基本的にこれ。 (というかlinearizabilityとの作り上の違いをちゃんとわかってないので雑魚)」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustreは排他周りが非常に複雑で20年を超えたシステムの成熟度合いを感じざるを得ない。使い手からは何したら良いのかわからん、みたいな話は聞くけどこれはunix semanticsを維持することの限界と勝手に思ってる。複雑すぎる」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustre 屋さんじゃ無いので話半分ですけどアドホックな性能改善が多いようにも見えるんですよね。まぁこれは歴史あるシステムの宿命なのかもしれ無いけど、、、」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「そういえばLUMIがCephを入れてるのには結構興味ある。DAOSとかHPCメイン(?)で開発されたオブジェクトストレージじゃないCephをどう使ってくのか。IB対応とかも見かけるけど、割と一般的なオブジェクトストレージは敬遠されてたイメージなので、、、弊社の姿勢だけなのかもしれんが」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「Lustre 屋さんじゃ無いので話半分ですけどアドホックな性能改善が多いようにも見えるんですよね。まぁこれは歴史あるシステムの宿命なのかもしれ無いけど、、、」 / Twitter
- MBR(Master Boot Recode)
- Episode 04: Filesystem on NVM / Self-Driving Car on Dessert – Misreading Chat
- 【USBメモリー】 最適なアロケーションユニットサイズ 【SSD&HDD】 | USBメモリー収集家のブログ
- USBメモリのフォーマットを変更して高速化する - ぼくんちのTV 別館
- 浪費のような、そうでないような。: スマホでSD Formatterは使ってはいけない
- closeがEINTRを返したらどうするべきか - Togetter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「前方に上書き可能領域があるから、ロジックは比較的簡単に実現できるが、有効領域サイズ分のwriteは必要と。 昔からログファイルで有用な、サイズ指定ローテーション可能なファイルシステム欲しいと思うことある。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「「1TBのストレージの中に入っている700GBのテキストファイルの先頭3億行を削除したいのだがどうすればいい?」 https://t.co/33NRL4WSbI」 / Twitter
- shell - How do I remove the first 300 million lines from a 700 GB txt file on a system with 1 TB max disk space? - Unix & Linux Stack Exchange
- FadisさんはTwitterを使っています 「mpoolがバニラカーネルに入りたがっているらしい。mpoolはblock deviceの上で動くオブジェクトストレージで、書き換えにコストを伴う近代的なSSDで性能を出せるようにfsより制限されたデータの操作方法を提供する。SSD向けのKVS HSEがバックエンドとして使っている https://t.co/fb2k2yH8Un」 / Twitter
- Micron Looks To Upstream Their Media Pool "Mpool" Object Storage To The Linux Kernel - Phoronix
- [論文紹介] Snowflake - NSDI '20 -
- FadisさんはTwitterを使っています 「HSEのような手法は「ハードウェアの構造化ログとファイルシステムの構造化ログは連携できない」という前提の上に成り立っているから、ハードウェアがより高レイヤーの操作(この書き込みは何の為の書き込み?)を理解するようになると、また事情が変わってくるんだよな」 / Twitter
- スパコンポエムAdC2020 Day20 Nov/2020 IO500について少し語る - Qiita
- mumumuさんはTwitterを使っています 「Rump File Systems: Kernel Code Reborn [ATC '09] 主にNetBSDのKernelで動いているFSをUserlandでそのまま動作させるためのKernel-User間のNamespaceの変換するモジュールを提案.以外とオーバヘッドも少なくていい感じ.OSSコミュニティとシステム研究がいい感じに協調してて?よい話感.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみにエントリの名前取得だけなら r-- だけでも。 (xは名前 → inode変換に必要)」 / Twitter
- 中村 実さんはTwitterを使っています 「Azure Data Lake Storage Gen2(ABFS)はファイルシステムに近いが微妙に違うなぁ。 UNIXのファイルシステムはディレクトリにr-x権限があれば、その下のファイルにr--権限がなくてもリスティングできるしfstatでファイルのメタデータは取得できる。」 / Twitter
- 中村 実さんはTwitterを使っています 「でもABFSはfstat的なAPIにそのファイルのr--権限が必要になるようだ。「ディレクトリの一覧には出てくるけど、ファイルのメタデータは取得できない」という現象が起きている。ニントモカントモ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なので、x-- だけのディレクトリの場合、名前をしってるファイルはそれ自体にrがあれば開けるし、xがあれば実行できる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおファイルのxは実行許可だけど、読めないと実行できないので、NFSサーバ側はxだけでもrと同様に読めてしまう。 (NFSクライアントが read をブロックする形)」 / Twitter
- Lustre
- MEGFS - 借り初めのひみつきち
- FadisさんはTwitterを使っています 「Linux 5.12でfsが激しく壊れる問題の原因が分かって修正が入ったらしい。スワップファイルのオフセットの扱いが壊れていて、スワップファイルを置いたパーティションの先頭にスワップへの書き込みが書かれてスーパーブロック狙い撃ちで雑なfsは即死、というオチだったらしい https://t.co/AP85yyuviN」 / Twitter
- Linux 5.12 Lands Fix For File-System Corruption Caused By Swapfile Issue - Phoronix
- FadisさんはTwitterを使っています 「@beepcap vfsを迂回して書きにくる奴がパーティションの先頭を破壊しても壊れないでいられるファイルシステムは、スーパーブロックを複数箇所に書いてるbtrfsみたいなバリ堅fsくらいだろうな」 / Twitter
- FadisさんはTwitterを使っています 「BtrFSがZoned Storage上で使えるようになった話。Zoned Storageではブロックデバイスは複数のZoneに分割され、Zone内は追記か全て削除しかできない。NANDを使うSSDやSMRで書き込むハードディスクにおいて使い方に工夫を要求する代わりにコントローラの負担を減らす事ができる https://t.co/4lrepCzT7n」 / Twitter
- FadisさんはTwitterを使っています 「BtrFSはCoWなfsで元々殆どの変更は追記にできるが、superblockに限っては書き換えられる必要があった。Zoned Storageには書き換え可能な特別なZoneを持つ物もあるが、複数箇所にsuperblockを置くBtrFSではここを利用するわけにもいかず、superblockを構造化ログで表現できるようにしたらしい」 / Twitter
- 2021年5月26日 F2FS,リードオンリー機能をLinux 5.14以降でサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社
ISO image
UDF
- ユニバーサルディスクフォーマット - Wikipedia
- Universal Disk Format - Wikipedia
- パケットライト - Wikipedia
- Packet writing - Wikipedia
- Standard ECMA-167
- UDF(ユニバーサルディスクフォーマット)とは - IT用語辞典
- 書き込み型BD・DVDのファイルフォーマット(UDF)まとめ : Web Memo.SE
- ISO image - Wikipedia
- ISO 9660 - Wikipedia
- ISO 9660 - OSDev Wiki
- Standard ECMA-119
- Joliet Specification
- El Torito (CD-ROM standard) - Wikipedia
- El-Torito - OSDev Wiki
- 注目の脆弱性:Power Software PowerISO、ISO のコード実行の脆弱性
- Comparison of disc image software - Wikipedia
- 【レビュー】指定したフォルダをISO形式のディスクイメージファイルへ変換する「Folder2Iso」 - 窓の杜
- 品川 高廣さんのツイート: "FATには2108年問題がある。ISO 9660には2156年問題がある。"
- CD から OS を起動する - 借り初めのひみつきち
Plan9 の WORM Jukebox ベースの日時差分記録
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「LTOオフライン保管が強そうだけど、オンラインで守る場合は plan9 の WORM Jukebox ベースの日時差分記録のファイルシステムが強いのかな? (そういえば、ファームウェア的に WORM動作を実現した HDD/SSD とかあるのだっけ)」 / Twitter
- ITmedia NEWSさんはTwitterを使っています 「日本の製粉大手に「前例ない」大規模攻撃 大量データ暗号化 起動不能、バックアップもダメで「復旧困難」 https://t.co/JXztYJ05Kd」 / Twitter
- 日本の製粉大手に「前例ない」大規模攻撃 大量データ暗号化 起動不能、バックアップもダメで「復旧困難」 - ITmedia NEWS
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(今回は知らないけど、バックアップしててもアウトな場合の一つは、気づくの遅れて、壊れたデータによるN世代ローテーションが埋まってしまうこと)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あとは、バックアップしてたはずなのに、ある時期から停止してたとか冷や汗もの…下記はピクサーでの実例。 https://t.co/KAJ94QmjjP」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「その直前のシーン。 事故が起きて「大丈夫バックアップがある」と思った後に、肝心のバックアップが取れて居なかった、と判った時の気分は想像したくない(笑) https://t.co/NfzW299gii」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても、削除ファイル復旧に一番肝心な、「なにもせず、すぐに電源を抜く」という最善手を打った(さすが)のに、ほぼ全滅に終わったのはなぜだろう?という疑問は少し残る。」 / Twitter
- 鯉江さんはTwitterを使っています 「@shirouzu 別のマシンにつないだときにジャーナルが実行されたというオチだったりして」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@koie なるほど…NTFSだとログがコミットされても、(上書き等をしなければ)MFTに概ね復元可能な痕跡が残るんですが、UNIX系だと厳しいかもですね。 それと映画は99年公開=事故は97-98年あたりですかね。当時のUNIXはジャーナルが広まる直前という感じでしたかね。(AIX/IRIXだけ先行状態)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ISMS等で年に1,2回、訓練のための模擬復元をして、バックアップデータの完全性を確認、みたいなルーチンを回している組織も多いはず。」 / Twitter
Linux
シンボリックリンク
- Kazuho OkuさんはTwitterを使っています 「シンボリックリンクでパスが循環しちゃう問題、ディレクトリ内のファイルを再帰探索する際に気をつけないといけないやつ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「シンボリックリンクは、まあ検出簡単だからいいとして、 mount --bind はマウント時に循環可能性検出してるんだろうか。どうやって?」 / Twitter
- dancerj 🗾さんはTwitterを使っています 「@kazuho mount bindべつにサブマウントは反映しないので循環しないとかそういう感じだった気がするけど詳細思い出せない。」 / Twitter
9P
- 9P - Wikipedia
- 9P (protocol) - Wikipedia
- ASCII.jp:Win32側からWindows Subsystem for LinuxのVolFsへのアクセスが可能に (2/2)
- Plan 9 Wiki (Plan 9 wiki)
- Plan 9: ILプロトコル
- 9P (Plan 9 Filesystem Protocol) VFS
- https://www.kernel.org/doc/Documentation/filesystems/9p.txt
- “どうやって実現してるのかというと、まさかの9P(Plan 9 Filesystem Protocol)です。令和の時代にまさからPlan9の単語を聞くとは思わなかったですが分散OSなので、こういうのには向いてるのかもしれないです” - twatw のブックマーク / はてなブックマーク
- Plan 9
- IL (network protocol) - Wikipedia
- The IL Protocol
- A sane distributed file system
- intro page from Section 5 of the plan 9 manual
fsync
- まちカドおるみんさんはTwitterを使っています 「にわかに信じがたいけど,こういうの往々にしてあるものなのだな…… >> Can Applications Recover from fsync Failures? | USENIX https://t.co/PeV1TVBVxU https://t.co/ixaWDV3Qeq」 / Twitter
- Can Applications Recover from fsync Failures? | USENIX
- まちカドおるみんさんはTwitterを使っています 「https://t.co/A01UYtXyq4」 / Twitter
- FOSDEM 2019 - PostgreSQL vs. fsync
- まちカドおるみんさんはTwitterを使っています 「“PostgreSQL had been using fsync incorrectly for 20 years”」 / Twitter
- PostgreSQLは20年間どのようにfsyncを間違って使っていたか - 聴講メモ -
fsck
- ファイルシステム小噺(仮) - Qiita
- docs.oracle.com/cd/E19253-01/819-0386/fstroublefsck-51788/index.html
- エンタープライズ:Linux How-To 第1回:起動スクリプトを知って基礎を理解しよう
- Linuxファイルシステム技術解説(3):ジャーナリングファイルシステムが保護する「情報」 (1/2) - @IT
- fsck(えふえすしーけー)とは - コトバンク
- linux - ルートファイルシステムを復旧させたいのにfsckが上手く使えない - スタック・オーバーフロー
- Linuxファイルとファイルシステムのリカバリ | OSDN Magazine
- ファイルシステム入門
- fsckによるファイルシステム修復 | hajichan.net technical version
- fsck - ArchWiki
- Linux ジャーナリング・ファイルシステムの徹底調査
- 【3分でわかる】Linuxのシャットダウンと再起動
- 【ざっくり概要】Linuxファイルシステムの種類や作成方法まとめ!
- スーパーブロック (ファイルシステム) - Wikipedia
- FadisさんはTwitterを使っています 「Linuxをinitramfsなしでbootする場合rootにはblock deviceを指定する。例外的にNFSかCIFSを使う場合アドレスを指定できる。ところがvirtiofsのようなblockではないけどrootfsにしたい物が増えてきたので、任意のblockでないfsをrootに指定できるようにする拡張が現れた話 https://t.co/7vF4fGpA4X」 / Twitter
- New Linux Patch To Allow Booting From Arbitrary Non-Block Device File-Systems - Phoronix
- FadisさんはTwitterを使っています 「ちなみにこの変更がなくてもinitramfsを経由してマウントすれば殆どのファイルシステムはrootfsにする事ができる。また、ユーザ空間デーモンが無いとマウントできない物はこの拡張を利用する事はできず、引き続きinitramfsでデーモンを動かさないとマウントできない」 / Twitter
- 2021年6月18日 Fedoraプロジェクト,クラウドエディションのデフォルトファイルシステムをBtrfsに:Linux Daily Topics|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「Systems 249からファイルシステム丸ごとアップデートがサポートされる話。この機能はsystemdがinitramfsで動いている等のsystemdがrootfsを選べる状況でroot=が指定されていない場合に、/usrを含みパーティションラベルが文字列比較で最大のものをrootfsにする https://t.co/mnpbVu5g7J」 / Twitter
- Systemd 249 Released With New Option For Simple Whole-File-System A/B Updates - Phoronix
- FadisさんはTwitterを使っています 「この機能は新しいrootfsを2つめのパーティションに書き込んで再起動する、組み込み機器でよくあるファームウェアアップデートを簡単に実現できるようにする」 / Twitter
- 2021年8月13日 Btrfs,Linux 5.15でidmapped mountsをサポートへ:Linux Daily Topics|gihyo.jp … 技術評論社
- ファイルシステムを自作しています. - alphakai’s tech blog
- 2018年6月20日 次世代メモリをターゲットに開発が進むログベースファイルシステム「NOVA」:Linux Daily Topics|gihyo.jp … 技術評論社
- Reiser5 File-System Working On New Features Like Data Tiering, Burst Buffers - Phoronix
- FadisさんはTwitterを使っています 「Linuxの新しいファイルシステム Reiser5 に新機能Burst Buffersが入ったらしい。高速小容量と低速大容量のデバイスを組み合わせてfsを作り、一時的な大量の書き込みを高速なデバイスに流し、暇な時に低速なデバイスに移すことで、高速大容量なデバイスっぽく振る舞う https://t.co/tOpwbckEyf」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「面白い。getdentsが0を返すまで呼び続ければ、全てのファイル名が取得できるんじゃないのかしら / https://t.co/gdkAsHVKu0」 / Twitter
- 旧ストレージ廃止大作戦−2900万超のファイルリストを取得する | PR TIMES 開発者ブログ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ディレクトリの実行権は、dir-entry に対して、entry名 → inodeへの変換権(namei)があるか、ですね。 ・r だけだと、entry名列挙はできるが、entryファイルにはアクセスできない。 ・x だけだと(entry名推測できれば)entryファイルにアクセスできる。 https://t.co/g4tITC5FGX」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「syscallやカーネルルーチン名のコマンドが徐々に増えた印象…昔は namei やstatコマンドは無かった気がする。 (namei は古からある name(パス要素名) -> inode番号変換の カーネルルーチン。dir の x権限はこの変換の可否) https://t.co/Lv43wHQf6V」 / Twitter
- 【 namei 】コマンド――ファイルパス中のディレクトリやファイルの情報を表示する:Linux基本コマンドTips(399) - @IT
- SODA NoriyukiさんはTwitterを使っています 「「すなわち、cdを実行できる」って書き方だと間違いなんだよなあ。 実行権限があればcdも実行できるけど、cdとは関係なくそのディレクトリのエントリへアクセスできるようにもなるわけで。 「たとえば、cdを実行できることなど」って表現ならOKなんだけど。」 / Twitter
- LPIC1用ボットさんはTwitterを使っています 「ディレクトリに対する「実行」権限は、ディレクトリに入ることができる(すなわち、cdを実行できる)ことであるが、「読み取り」権限がなければ、ディレクトリ内の一覧表示(lsの実行)はできない。 #lpic」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「UNIX系ファイル削除は unlink(リンクカウンタ以外はファイル実体に触らない) だが Windows は(内部的には)削除対象のファイルを開いて削除属性を付けて閉じる、という挙動…閉じた直後はまだエントリから消えない・そもそも開けないと削除できない、とか謎挙動が多すぎ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「謎挙動の原因のもう一つはこれ。 ---- 「NTFSは(inode的な)データをディレクトリエントリにもキャッシュするが、最新情報はファイルが閉じられたときにのみ更新(=開いてるファイル相手だと FindFirstFile が旧情報を掴まされがち)」 https://t.co/T2rJMNRLIr」 / Twitter
- NTFS - Wikipedia
- FadisさんはTwitterを使っています 「HSE 2.0がリリースされたらしい。HSE 1.0は専用のカーネルモジュールmpoolを使う事でファイルシステムのログを回避して性能を出すKVSだったが、mpoolはバニラカーネル入りできなかった為、2.0は通常のLinuxのファイルシステム上で動く普通のKVSになっている https://t.co/4DzX7ksFXt」 / Twitter
- Micron's HSE Storage Engine 2.0 Debuts - No Longer Relies On Linux Kernel Modifications - Phoronix
UEFI
- The rEFInd Boot Manager: Using EFI Drivers
- Free Software EFI Drivers
- pbatard/efifs: EFI FileSystem drivers
- 日記 (2014 年 8 月下旬)
デフラグメンテーション
- デフラグメンテーション - Wikipedia
- The Desktop Files: The Truth about Defragmentation
- インタビュー - ファイル断片化を元から断つ、デフラグの概念を大転換!:ITpro
- 無料デフラグソフト一覧 - フリーソフト100
- 【ざっくり概要】Linuxファイルシステムの種類や作成方法まとめ!
- デフラグのやり過ぎはHDDの寿命を縮める | スラド ハードウェア
- デフラグで最適化 - デフラグソフト比較、断片化の理由 - Windows高速化への道
- ファイルシステムの基本~ファイルはどのように記録されているのか~ - Yahoo!知恵袋
- ファイルシステム圧縮による空き容量と、デフラグについて - すっきり!! デフラグのヘルプ
- 効率の良い『デフラグ』で性能低下を防ぐ 【桜PC情報】
- NAS(LAN HDD / ネットワークハードディスク)は何故デフラグできないのか
- ファイルシステム入門
- しつこくデフラグ話【日記 2011/11/25】
- デフラグって実際どうなの? 実力を徹底検証 - Windows7から話題のWindows10まで対応! (1) 知らないうちに断片化するデータ群 | マイナビニュース
- 「ディスククリーンアップ」と「ディスクデフラグ」の違いとは?|エンジョイ!マガジン
- デフラグとは | Diskeeper 日本語版 公式サイト
- ファイル・サーバのデフラグメントについて考える - @IT
- 知ってる?デフラグの力 - デフラグのメリット&デメリット
- 本の虫: ディスクのフラグメント防止に関する興味深いペーパー
- NTFSFrag.pdf
NTFS
Wikipedia
- NTFS - Wikipedia, the free encyclopedia
- NT File System - Wikipedia
- NTFS-3G - Wikipedia
- NTFS-3G - Wikipedia, the free encyclopedia
- Filesystem in Userspace - Wikipedia
- Filesystem in Userspace - Wikipedia, the free encyclopedia
Twitter
ソート順
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、NTFSのソート順(btree)は名前を大文字変換した後、UTF16コードでソート。 Explorerも大文字変換は同じだが、アンダースコア等が特別扱い、数字群は数値として比較とか、色々特殊。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "数字群を数値として比較することを、natural sort と言うらしい。 https://t.co/xATZlBNZ9a"
- Natural sort order - Wikipedia
@shirouzu
復元不能にする方法
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのNSA方式削除では内部的に2モードあり、上書きバッファ用乱数はメルセンヌツイスタで初期化される。 だが、iniのcopy_flagsに OVERWRITE_PARANOIA(=0x2000)を追加すると、バッファをCryptGenRandomで初期化される。 (エントロピー不足か、死ぬほど乱数生成が遅いのでお勧めできない)… https://t.co/qgGp2ypCiM"
- とつげき東北🌘さんのツイート: "復元防止をセキュリティ的にマジで考えると、単に物理的に上書きしたくらいでは足りないですね。0か1かはHDDの場合磁気的に保存されますので、一度書き込んで消しても、アナログ情報が残って再現できてしまう。 そういう「形跡」さえも消すには、何十回も0と1を繰り返し書かないとダメですね😇… https://t.co/qlwlO08Wky"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なかなか豪快なソフトですね(笑) ファイル単位の復元防止だと(削除前に)truncate無しの上書きが定番(ただしNTFS圧縮だと別セクタに書かれるので無意味)だと思うんですが、実はtruncateした後に上書きしてました、とかですかねぇ…逆にカジュアルな復元ができる下手を打つ方が不思議な気も。… https://t.co/7T3hvZtC5P"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ですね。NSA方式とかDoD方式とか、3~7回の乱数や0(or 0xff)での上書きを定めるものが多いみたいです。 (FastCopyだとNSA方式削除をサポートしてます)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なお、メルセンヌツイスタもシードだけは std::random_device(=CryptGenRandom)を使っている。"
histric-1
- SHIROUZU(白水啓章)さんのツイート: "タイムスタンプとファイルサイズ(とファイル名)を使った、ファイル重複検出ツールって、意外と無い不思議。 それとできれば、MFTによる高速検査があると最高なのだが…自分で作るかな。 ファイル名は編集距離誤差を許す設定ができるとさらに良さそう。"
- SHIROUZU(白水啓章)さんのツイート: "FastCopyのI/O設定、Win10 + Gbit NIC以上だと1発行1MBで多重度2以上がベストで、1発行が4MBとかになると(多重度を上げても)逆に遅くなるな…パラメータのデフォルトを変えた方がいいかもしれない。"
- SHIROUZU(白水啓章)さんのツイート: "それと、ver3 の I/O設定はちょっと判りづらい点を直した方がよいかな… 最大I/O単位=1発行サイズ * 重畳数、という意味なので、1発行1MBで多重度4だと、4MBに設定する必要がある。"
- SHIROUZU(白水啓章)さんのツイート: "10G NIC と NVMe(960-EVO)を載せて、FastCopyで転送実験。 双方向でほぼ10Gbps出るようだ。 IPMsg転送だと5Gbpsが今のところ限界、さらにAES暗号化すると80Mbpsまで低下。"
- SHIROUZU(白水啓章)さんのツイート: "CoffeeLake(i5-8600K)では、FastCopy + SMB で 10Gbps転送中のCPU使用率は概ね10-15%程度。"
- SHIROUZU(白水啓章)さんのツイート: "ただし、非同期I/Oをやめると5Gbpsに一気に遅くなる(I/Oサイズを広げてもダメ)。 つまり、相変わらずアプリケーション側が先読み的な動作をさせないと、性能を十分出せない、WindowsのSMB実装ということかな。 (なお双方とも Win10 Pro for Workstat… https://t.co/DMind304I8"
- SHIROUZU(白水啓章)さんのツイート: "そういえば、これ6コアだから、16%で1コア使い切りレベルだった。 4コア時代の25%基準で考えてしまう癖が。"
- SHIROUZU(白水啓章)さんのツイート: "CrystalDiskMarkでの速度とFastCopyの速度が違ったので調べてみると、Crystal…の KB/MB は 1000^n、FastCopyの KB/MB は 1024^n という違いだった。FastCopyは正確に KiB とか MiB とかにしたほうが良いかな…"
- SHIROUZU(白水啓章)さんのツイート: "C/C++でのポインタ同士の減算結果の型は size_t ではなく ptrdiff_t で「符号付」整数となる点に注意。"
- SHIROUZU(白水啓章)さんのツイート: "CrystalDiskMarkの速度測定には、MSのdiskspdというコマンドを利用していた。 https://t.co/kwsrzWX6rv ちなみに「NCQ対応」は、diskspdを見る範囲では WinAPIのOVERLAPPED I/Oを行う=NCQ、という解釈かな。 (… https://t.co/CDXRmvKlMp"
- Microsoft/diskspd: DISKSPD is a storage load generator / performance test tool from the Windows/Windows Server and Cloud Server Infrastructure Engineering teams
- SHIROUZU(白水啓章)さんのツイート: "実際、SATAのNCQは32個までだが、OVERLAPPED I/O自体は(手元で試した範囲では)128個発行なども可能だったりする。"
- SHIROUZU(白水啓章)さんのツイート: "FastCopyで、複数物理ドライブを束ねたボリュームでの物理ドライブ判定が正しくなかった。(別物理ドライブ同士が同一ドライブ判定になるケースが存在)"
- SHIROUZU(白水啓章)さんのツイート: "SMB経由で確認した範囲では、btrfsは4KB * n で整列されたwrite後に、そのサイズより僅かにサイズ縮小するftruncateを発行すると、ext4やNTFSに比べて大変時間が掛かる不思議。 SMB経由でbtrfsかの識別する方法はないのかしらん?"
- SHIROUZU(白水啓章)さんのツイート: "最近はNASでもbtrfsという選択肢が出始めているようなので、ちょっと対策しておきたいところ。"
- SHIROUZU(白水啓章)さんのツイート: "OS、AntiVirus(MS純正)、NTFSのいずれの問題か不明だが、dir-entryを全削除した直後に、そのdirを削除しようとすると稀に「空でない」というエラーになることがある。その時、FindFirstでentryを調べると一瞬だけ削除したはずのentryが見える。 ローカルFSなのにアトミック性が破れてるな。"
histric-2
- SHIROUZU(白水啓章)さんのツイート: "GetVolumeInformation APIで取れるファイルシステム名(lpFileSystemNameBuffer)、LTFSだと"LTFS"が返るのかしらん?"
- Kengo Sawatsuさんのツイート: "結果でましたー。 ちゃんと'LTFS'と入ってきますね。 OS:WindowsServer2012R2 python3.4からwin32apiコールです。 results = win32api.GetVolumeInformation("J:\\") pprint.pprint(results) で、出てきたタプルです。 https://t.co/MnBOttlcJu… https://t.co/mOcNmgdTr1"
- Kengo Sawatsuさんのツイート: "ちなみにLTFS実装はIBM純正の2.2.1です。 HPなどのその他実装では結果が異なることもあるかもしれませんが、各社のLTFSドライバはすべて?IBMが元なので、大丈夫じゃないかなあとは思います。… "
- SHIROUZU(白水啓章)さんのツイート: "Win32非同期I/Oを使った連続read/write実験、少なくともネットワークドライブ(Win10 Pro Enterprise同士)相手に対しては、4MB*4重畳よりも1MB*4重畳の方が5~10%高速になるのは何故だろう?(ファイルサイズが20~30MBならおおよその理由は判るのだが、数GBでも同じ傾向)"
- SHIROUZU(白水啓章)さんのツイート: "非同期RPCのやりとりをWireSharkで調べてみるのが近道かな。"
- Kengo Sawatsuさんのツイート: "いつもありがとうございます。 smb multichannelとの関係など、結構調べないといけない話題は多いですよね。 なにかの折にまたデータをとってみます(40Gはストレージ側の性能引き出すのがちょっと難しいですが) また、https://t.co/GT7eFdWffLへの40GbitNIC貸与ができないか、社内で調整中です。… https://t.co/9ZffXqTPmb"
- SHIROUZU(白水啓章)さんのツイート: "FastCopy英語掲示板に「もっとスレッド数を増やして高速化を」という要望が出ているのだが、何の処理を行うスレッドを増やしてほしいのだろう? ごく一部環境を除き、I/O (read or write) 並列化(連続命令の非同期I/O化を除く)は、遅くなるだけと思うのだが。"
- Fomalhaut Weisszwergさんのツイート: "おそらく「スレッドをたくさん作れば早くなるんでしょ」と思っているだけだと思います。わたしもそういう人の相手をする羽目になったことがあります (ログファイルへの書き込みを並列化したところで高速化はできないということを理解してもらうのにすごいコストかかりました)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "先ほど、レスパスビジョンさん(https://t.co/lLhGI6a3Ro)のご厚意で、FastCopy進化用のMellanox 40Gbit NIC*2とケーブルが届きました! それにしても、さすがは40Gb用ケーブル、昔の放送用ケーブルかと見まがうゴツさ…QSFPという10Gを4本束ねたものらしい。 https://t.co/JPjOt4kQMq"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB転送速度に与えるレイテンシの影響は、非同期I/O数が4以上ならどの条件でもレイテンシに比例して速度低下。だが、ジッタが大きい場合だけは、I/Oサイズ*非同期I/O数=32MB以上の方が性能が出る(落ちづらくなる)不思議。 (前者でも、性能が落ちづらくて良さそうなのだが)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "前者でも…というのは、I/Oサイズ * 非同期I/O数を大きくする≒TCPにおけるウィンドウサイズ拡大と類似した効果をSMB上に与えても不思議ではないため。 ただ、API上の非同期数に対して、SMB上の非同期I/O数に上限があるなら、そうならなくても不思議ではない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB経由で40Gb高速転送をしようとすると、Win10 pro for WorkstationでRDMAを有効にしても、1コアに負荷が集中して10~15Gbps程度で頭打ちになるなぁ…Xeon系のサーバマシンでないと厳しいか。 純TCP転送だと、もう少し分散するのだが。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "だからこそ、自前転送の高速化の余地が大きいということではある。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "40Gb転送中にRAM Diskアクセスすると、そのI/O速度分だけ速度低下する様子(CPU使用率にはまだ余裕がある)。 PCIeを空けても、メモリバスがネックとなっている? CoffeeLake i5-8600K + Z370の方は大丈夫のようだが、SkyLake i5-6500 + Z170程度だと性能が不足しているようだ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "論理セクタが512byteでも、本当のブロックサイズは4KBだったりする現在、末尾の端数部分はブロックサイズ単位で書いてtruncateではなくて、端数だけappendの方が良いかもしれない、特にネットワークの場合。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "少し前の話ではXeon + WinServer + SMB Directを使っても、40Gbpsを使いきれていないらしい?最新サーバ同士だとどうなんだろう。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルシステムの重複データブロック削除機能=De-Duplicationだと思うのだが、DeDupと書くより、DeDupeと書く方が多い不思議。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "10GのWin10Pro同士だと、ほぼ10G素直に出ていたのですが、samba経由だといろいろあるんですねぇ…(ただ、ジャンボパケットでないとダメだったかも)… "
- Kengo Sawatsuさんのツイート: "10Gのsmb.confのパラメータを色々試して、Fastcopyとの組み合わせでざっくり810MB/secくらいまでは速度出るようになったけど、カーネルパラメータいじるのは面倒かつ危険なのでこれ以上の追い込みはやめておくマン"
- Kengo Sawatsuさんのツイート: "今更ですが、これの効果は劇的です <I/Oサイズ&重畳数を適応的に変化させ、ネットワークドライブのパフォーマンスを向上 10Gbps環境下でスイッチを2~3個経由していても、1ファイル数GBを超えるファイルであれば1000MB/secで張り付きっぱなしになります。 40Gbps環境にも恩恵あるはず。… https://t.co/cmKIS1WbNy"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy v3.50正式版をリリースしました。 Source選択で、ファイルとフォルダを同時に選択できるように。 I/Oサイズ&重畳数を適応的に変化させ、ネットワークドライブのパフォーマンスを向上(レイテンシ大の環境では、Explorerや従来版に比べて2倍以上高速に)等 https://t.co/L7jJavdtio"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「BSD系がreadlinkでA更新しないのは知らなかった。 あとは、移動で対象ファイルCが変わる/変わらないの件…Cはinode更新時間(A更新以外)なので、Cが変化する実装=(atomicなので外部観察はできないが)内部でdst-ent追加でリンク数+1、src-ent削除-1操作、がC変化の原因かな? https://t.co/VwDT93ijU4」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、rename/move はファイルシステムを作った経験があれば判ると思うが、atomic性を満たすのに一番厄介。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「src/dst/target の3つロック(create/removeなら、親dir → targetだけのロックで済む。3つの場合、ロック順序保証が通常の親→子でないのもネック)、さらにtargetがdirの場合、dstがtargetツリーに存在しないこと確認する必要もあり。 (でないと、外部からの参照のない循環参照dirに)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「さらに、dstのtarget配下の非存在確認した後、移動が完了するまでは、src/dst/target配下が絡むdir関連rename操作はブロックしないといけない、みたいな話もあったり。 (でなければ、volレベルでジャンボロックするか…Linux2.0当時の実装を見たら、そうなっており、ああ手抜きだなと思った記憶)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NTFSファイル名長は、漢字/ascii両方 255文字までOKに対し(サロゲートペアだと半分)、NAS(Linux)だと 漢字ファイル名は80数文字(UTF-8)が上限。 掲示板で問合せで、この状況で困ってる方居たのだけど、一般には全組織で 5%くらいの割合かな…?」 / Twitter
- 研究千年牛酪情報保管庫菩薩さんのツイート: "NTFS、しくみおもしろいなあ。これだとWinFSを作りたくなる気持ちがわかる"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "(POSIX対応のため)NTFSが大文字小文字違いを別ファイルとして扱える機能を持つのは知っていたが、(POSIXサブシステム経由だけでなく)Win32サブシステム経由でも(レジストリ変更で)大文字小文字区別したアクセスができるとは知らなかった。… https://t.co/LRLCQ3BWBn"
- 品川 高廣さんのツイート: "Cygwin 上で Linux カーネルをクロスコンパイル on @Qiita https://t.co/UATrQHnqhU"
- Cygwin 上で Linux カーネルをクロスコンパイル - Qiita
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSのハードリンクは、UNIX系と違い、片方のファイルを変更しても、もう片方にタイムスタンプがすぐに反映しない。 1度目は必ず古い情報を掴まされ、2度目のlookupから正しく取れるという、UNIX inodeとdirentyのような関係ではあり得ない挙動を示す。 ちなみに、ハードリンク上限もわずか1023。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSの設計者は「POSIX準拠機能なんて、本格的に使うわけないよね」と思っていたとしか思えない(笑)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今回の件、海外からFastCopyのコーナーケースのバグ報告?と思って調べたところ、NTFS側の問題だったというオチ。"
- Egtra (ysk-noh)さんのツイート: "https://t.co/QJTi32Ys8q Windowsが初期設定だとシンボリックリンク作成を管理者に絞っているのは、Symlink attack対策なのだと思う。 https://t.co/nIkiEyVnaJ https://t.co/I0Zm2JxVqy"
- PhoronixさんはTwitterを使っています 「"NTFS3" #Linux Driver Spun Up An 11th Time With More Optimizations https://t.co/qvrZtkQZHm」 / Twitter
- "NTFS3" Linux Driver Spun Up An 11th Time With More Optimizations - Phoronix
- NTFSの読み方 - Qiita
- kusano/ntfsdump: Extract files from NTFS Volume
- 暗号化ファイル・システムを使うとWindows Updateができなくなる / SAFETY JAPAN [Windows XP プロの常識] / 日経BP社
- 最後に知っとく“Windows 8.1重箱の隅”10選 - AKIBA PC Hotline!
- 上原 哲太郎 - これは話が正確じゃないのでMSやWin10がかわいそう。要はNTFSをリムーバブルメディアで使っては... | Facebook
- Why NTFS is a dangerous filesystem for external drives ... - PentaxForums.com
- Windows 7/8.1をWebページから停止させることも可能なNTFSのバグ | スラド IT
- Transactional NTFS (1) - NyaRuRuが地球にいたころ
- 日記 (2013 年 4 月中旬)
- NTFSのトンネリングとHardlink - ひよこメモ
- Shirouzu Hiroaki(白水啓章)さんのツイート: "これが成功したら、あっという間に終了(or 非推奨化)した「トランザクションNTFS」も復活したりするのかしらん? https://t.co/oVhrlxprop… "
- トランザクションNTFS - Wikipedia
- Transactional NTFS - Wikipedia
- アイコンを見るだけでデータが破壊されるNTFSの脆弱性 - PC Watch
- アイコンを見るだけでNTFSドライブが破損する脆弱性が修正 - PC Watch
ReFS
- Shirouzu Hiroaki(白水啓章)さんのツイート: ""CreateHardLink(この要求はサポートされていません。50)" というメッセージが出て何だろうと思ったら、ReFSはハードリンクをサポートしていなかった様子。 ---- https://t.co/Ss1hcvHxrq"
- Windows の次世代ファイル システム: ReFS – Building Windows 8
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIX系のハードリンクはinodeとdentの仕組みを素直に使っている。NTFSハードリンクは当該ファイルスロット(≒inode)に別名エントリを格納していく変態方式のため1023リンクが上限だった。で、ReFSではサポートすら止めると。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSは全力で非同期writeするより、アクセスに僅かに空き時間を与えた方が速度が5~10%程度、増すなぁ。 非同期I/Oで連続アクセスすると、ReFS固有の付加的な作業が合理的に差し挟めないのだとすると、ファイルシステムドライバの作りが悪いとしか思えないのだが。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ReFSのBlockCloningを使うと、巨大なファイルの内部的なログローテーション的な動作が、実質データコピー無しで出来そう。 (現行ファイルの先頭クラスタ以外をクローンして、次ファイルを作るイメージ) https://t.co/wjy0lTy4Lm とはいえ、ReFS自体に余り良い評判を聞かないので微妙だが。"
- Block Cloning | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ReFSはディレクトリ探索負荷だけで、6コアが100%になり(System(pid:4)が大半)、各プロセスのタスクスイッチもロクに回らなくなり、各ウィンドウ描画が止まり、音楽再生も切れる。 (画像は探索を止めて、ようやく再描画再開されたタイミングでキャプチャ) https://t.co/DEljgQ0Hxj」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(ディレクトリ探索を続けると、何かのタイミングでこの状態が続く。アクセス数に比例したり、特定ディレクトリがトリガーでもない様子)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「どうも妙な挙動が多いので、ReFSを相手にするのは止めようかな… https://t.co/uZfbmqm9oO」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ReFSは設計思想以前に、実装がダメダメなんでは疑惑。 (手触りが悪いというか、不自然に重いというか)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「仕様云々より、実装が悪いのだろうなぁ、、、。 なおMSは流石に無いと思うけど、仕様を作って外注に作らせるパターンだと、そういう品質がほぼ宿命に。」 / Twitter
- Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「ReFS、server2016で実運用してるとSMBのわけわからないタイムアウト(ファイルシステムから30秒応答返ってこない)とか本当に散々な目にあってるので、当面本番用途で使う予定ないのだが、相変わらずの様子・・・。。 MSは今すぐデビッドカトラーを連れてくるべき」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一度、腐ったものが出来上がると、性能・品質改善はほぼ望めず、作り直すのが最善手になる。 ただ初期コストの大きさから、改善で済まないか試みた挙げ句、無理なことを悟って作り直すという、一番高コストな道を辿るのが典型パターン(笑)」 / Twitter
FAT
MS
- テクノロジ IP ライセンス | IP (知的財産) ライセンス - マイクロソフト イノベーション センター
- Licensing exFAT | Microsoft IP Licensing
- exFAT file system specification - Windows applications | Microsoft Docs
Wikipedia
- exFAT - Wikipedia, the free encyclopedia
- exFAT - Wikipedia
- File Allocation Table - Wikipedia
- File Allocation Table - Wikipedia
- 8.3形式 - Wikipedia
- 8.3 filename - Wikipedia
Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あらら。 私の方でも少し見てみますね。」 / Twitter
- Kengo Sawa2さんはTwitterを使っています 「exfatの現状記事を書くためにまずはまともなはずのwin10h2のexfatを触り始めたらいきなりヤバい、。 こいつ、プリアロケート予約出してからキャンセルすると全領域初期化で埋めようとしてる、。? hddでも起きるからデバイス側の挙動じゃないはず、。ext3かよ!w https://t.co/xrXVkMkfBU」 / Twitter
- Kengo Sawa2さんはTwitterを使っています 「@shirouzu ありがとうございます、本当にお暇なときにでも触ってみてください。 なんかMSの実装ポカな気がします、NTFSでは再現しませんでした。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 Process Monitor で確認すると、むしろ Explorer が一時停止/キャンセル時小細工して(中断するとそのサイズでSetEndOfFileしてから削除)、exFATドライバ側の実装問題を回避してますね(笑)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 (ただし、ファイルが見えない状態でコピーはどうやっているのだろう…?)」 / Twitter
- Kengo Sawa2さんはTwitterを使っています 「@shirouzu それですよね。外から見てる感じ、何も生成しないのがなんかズルくないか?MS社内専用の秘密の仕組みでもつかっとんのか?と思ってしまいます笑」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 上記の hack で ZeroFill を回避できることが判ったので、次のリリースで入れておきますね。」 / Twitter
- Kengo SawatsuさんはTwitterを使っています: 「「Win/Mac両方で読み書きできたまじ便利ってネットの記事に書いてあった」 「macOSで選べるんだから大丈夫でしょ?」 exFATの実装仕様もライセンスも不明瞭だらけでジャーナルも無いウンコFSなのになぜAppleはフォーマットできることにしてるのか。。 #exFATは使うな死ぬぞ」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「(2年前の話ながら)exFATはMacOSXでファイルが壊れるという話があるのでご注意あれ。 https://t.co/C2UcXBRLYg https://t.co/Sm10ANvYuN https://t.co/06fENVA0jy」 / Twitter
- 品川 高廣さんのツイート: "FATには2108年問題がある。ISO 9660には2156年問題がある。"
- FadisさんはTwitterを使っています 「一部のデジカメがexFATにファイル置く時にディレクトにクラスタチェーンだけ追加してDataLengthを更新しないせいで、DataLengthを見て終端を判断していたLinuxで一部のファイルが見えなくなる問題を受けて、LinuxがexFATのディレクトリのDataLengthを信じなくなった話 https://t.co/lXC4i8Q6y7」 / Twitter
- Linux 5.14 Works Around Compatibility With Some Digital Camera exFAT File-Systems - Phoronix
- ろ。まのふさんはTwitterを使っています 「exFATでお行儀の悪い書き方をするカメラってFujiなのワロタ…ワロタ…(ワロエナイ」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kotatsu_mi CP/Mだとblock size(128byte)がファイルサイズの単位だったため、テキストファイル末尾はControl-Zで埋めていたとか、 MS-DOS時代になってもその名残りで、テキストファイル末尾にControl-Zを入れる慣習が残っていることがあったとか、 もはやオッサンか おるみん神でないと覚えてなさそうですしねえ…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「^Z で埋めるのは良いけど、MS-DOS3.3ですら fopen(..."r") で ^Z に出くわすとファイルの読み込みを停止しちゃう仕様が嫌だったなぁ。 (今のmsvcrtもそうなのだっけ?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Win32API の CreateFileW ばかり使うので crt の挙動に疎くなってしまった。」 / Twitter
- FatFs 汎用FATファイルシステム モジュール
- FatFs - Generic FAT Filesystem Module
- FATファイル システムのしくみと操作法
- k-takata.o.oo7.jp/diary/exFAT.txt
- 「DataRecovery」「Fat32Formatter」のソースコードを公開 - 窓の杜
- Microsoft、パナソニックに大容量ファイルシステム「exFAT」のライセンスを供与 - ITmedia エンタープライズ
- マイクロソフト、exFATのライセンスプログラムを発表 - CNET Japan
- exFATのライセンス提供開始に見え隠れするMicrosoftの知財戦略 - builder by ZDNet Japan
- FUSEベースのMicrosoft「exFAT」実装、「fuse-exfat 1.0」がリリース | OSDN Magazine
- FAT仕様書日本語訳.doc - Google ドキュメント
- Tech TIPS:FATとexFATの違い - @IT
- Microsoft Word - FAT32 Spec _SDA Contribution_.doc
- Microsoft readies exFAT patents for Linux and open source | ZDNet
- 2019年8月30日号 Ubuntu 18.04.3 LTS 日本語 Remix リリース・eoanのFeature Freeze・exFATの仕様書:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- exFAT について - 借り初めのひみつきち
- 米Microsoftが「exFAT」の技術仕様を公開、Linuxカーネルへのマージを認める | OSDN Magazine
- Microsoft、ExFATのLinuxカーネルでの実装方法を明確に
- 実は危険??「exFATフォーマット」との付き合い方|L'espace Vision
- 日記 (2015 年 10 月上旬)
WinFS
- WinFSでWindowsのデータ/ファイル管理はどう変わる? - @IT
- WinFSでWindowsのデータ/ファイル管理はどう変わる? - @IT
- WinFS - Wikipedia
- Microsoft Developers Conference 2006 ― T2-206 新たなファイルシステム"WinFS"の方向性とその概要 - NyaRuRuが地球にいたころ
- Windows PowerShell, WinFS, IQueryable - NyaRuRuが地球にいたころ
- WinFS について (1) - NyaRuRuが地球にいたころ
- WinFS について (2) - NyaRuRuが地球にいたころ
- WinFS について (3) - NyaRuRuが地球にいたころ
- WinFS について (4) - NyaRuRuが地球にいたころ
- WinFS についてのビル・ゲイツ氏の最も新しい言及 - NyaRuRuが地球にいたころ
B+ Tree
μTree
- okamo(aged 5 yrs.)さんはTwitterを使っています 「μTree スループットだけでなくtail latencyを改善するPMEM向けB+tree。従来手法ではstructural refinement operation(merge split)とinterference overhead(葉のロック)がtail latencyの要因になっていた。designはまだ読めて無いけどこの辺り頑張っているみたい https://t.co/r94NOfdHnE」 / Twitter
- uTree: a persistent B+-tree with low tail latency: Proceedings of the VLDB Endowment: Vol 13, No 12
- okamo(aged 5 yrs.)さんはTwitterを使っています 「ざっくりいうとPMEMはDRAMに比べてwriteが遅いから、PMEM場ではエントリをlinked listで管理して、tree構造はDRAMに持つ、がアイデア? kvペアのエントリをリストで管理してるのでput操作でPMEM上のSROは発生しない。リスト操作なので葉ノードロックも無くPMEM上の更新の並列性が上がる。」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「ツリー構造はシステム落としたら失われるので再構築についても頑張っているみたい。」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「DRAMに比べて遅いはこれの通り」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「そりゃないって、、、って数値だな https://t.co/VbGwzLPmIR https://t.co/WyngufgRO5」 / Twitter
- Intel® 64 and IA-32 Architectures Optimization Reference Manual - 64-ia-32-architectures-optimization-manual.pdf
- okamo(aged 5 yrs.)さんはTwitterを使っています 「2.3GB/sというのはインタリーブしてnstore使った時の256B以降のスループットか(スループットといっても1thread) https://t.co/npJqjn9AWE https://t.co/z2QCS945o5」 / Twitter
- fast20-yang.pdf
- okamo(aged 5 yrs.)さんはTwitterを使っています 「ntstore(non temporal store)」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「評価の一部はこんな感じ https://t.co/fTYNjssc6h」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「細かい技術詳細は追えていないが、PMEMをDRAM like performance というのは誤りでindex構造だけとってももDRAMとPMEMのハイブリッドで作るのがトレンドかな。全てをPMEMに直接叩き込んで高速化、は今後の研究対象にはならなそう、本当にDRAM like performance なものがでれば世界はかわるが、、、」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「low latencyという側面ではこの論文もあるけどこっちはネットワーク越しのkvsなので、タスクスケジューリングとか他のトピックも入っている。ちなみにデータストア自体はLSM treeである。 https://t.co/6O45Vfrp4e」 / Twitter
- p1091-lersch.pdf
- okamo(aged 5 yrs.)さんはTwitterを使っています 「分析の対象はFAST&FAIRで、こちらはPMEM直にデータをloggingなしに永続化する研究。メモリオーダリングも気にして頑張ってflush, mfence減らしてる。 https://t.co/RyWzKGiWiA」 / Twitter
- DICL/FAST_FAIR: Endurable Transient Inconsistency in Byte-Addressable Persistent B+-Tree
- okamo(aged 5 yrs.)さんはTwitterを使っています 「トレンドかな、とか言ったけど直接PMEMへの論文もあるはず、これはそうだった気がする、細かい内容を忘れてしまった https://t.co/JlwAdK2GjU」 / Twitter
- p1078-liu.pdf
- B-treeインデックス入門 - Qiita
- B TreeとB+ Treeの違い - Carpe Diem
- 第4章 木構造とハッシュ―平衡二分探索木「赤黒木」で知る豊かなデータ型:[入門]関数プログラミング―質の高いコードをすばやく直感的に書ける!|gihyo.jp … 技術評論社
- 10.pdf
- B木 - naoyaのはてなダイアリー
- B TreeとB+ Treeの違い | Engineer Log
- なぜBTreeがIndexに使われているのか - maru source
- [第6回]Bツリー・インデックスの構造 | 日経 xTECH(クロステック)
- 第7回 性能改善の鍵,インデックスの特性を知る~B-treeとハッシュ (1)B-tree :SQLアタマアカデミー|gihyo.jp … 技術評論社
- インメモリー・データベースの注意点 | Think IT(シンクイット)
- B-Tree by Java -- B木のすごく簡単な実例
- RDBMSで使われるB木を学ぼう (1/3)- @IT
- 71.pdf
- Oracle B-treeインデックスとビットマップインデックス
- 06gun_03hen_03.pdf
- SQLデータベースにおけるバランス検索木(Bツリー)
- Oracle の B*Tree インデックスの内部構造についてお勉強中(その1) - drk7jp
- データベースの基礎 第2章
- 従来のデータベースをメモリに載せるだけではだめなのか? インメモリとカラム型データベースの可能性を調べる(その2) - Publickey
- II-22-2. インデックスの種類と特徴 | 日本OSS推進フォーラム
- 一番わかりやすい木構造 - NAVER まとめ
- 漢(オトコ)のコンピュータ道: オトコのソートテクニック2008
- C library btree - Google 検索
- markc/miniDB: A small fast isam/btree library for key/val access
- www.mit.edu/afs.new/sipb/user/gamadrid/nscript/btree.c
- B+Treeのページレイアウトと可変長タプル - Write and Run
- B-Treeを図示するときの細かいテクニック - Write and Run
- クエリエクスキューターの気持ちになる - Write and Run
- Rustでon-diskなB+Treeを作ったときの細かな話(Rust LT Online #3) - YouTube
R-Tree
- okamo(aged 5 yrs.)さんはTwitterを使っています 「DAOSのファイルの中身はKey Array Store使ってるのか。extentとepochをR-treeの拡張で管理している、と。 https://t.co/rpfLV5Kxnq」 / Twitter
- daos/README.md at master · daos-stack/daos
- okamo(aged 5 yrs.)さんはTwitterを使っています 「まぁなんか聞いたらそうりゃそうか、って感じだな。どう管理するか悩んでたけど、、、」 / Twitter
- okamo(aged 5 yrs.)さんはTwitterを使っています 「Random write/read飛びまくりだけど、大体そういう性能になってんのかな」 / Twitter
MVCC
- MVCC(多版型同時実行制御)
- MultiVersion Concurrency Control - Wikipedia
- 理論から学ぶデータベース実践入門Night(mvccでちょっとハマった話)
- 4. MVCCとストレージ構造 · PostgreSQL Internals
- MVCCトランザクションの動きが実装できた - きしだのはてな
- PostgreSQL のトランザクション & MVCC & スナップショットの仕組み
- multi-versionの基礎 - 急がば回れ、選ぶなら近道
- InnoDBの分離レベルによるMySQLのパフォーマンスへの影響 | Yakst
Window 関数
- [SQL] 最強の分析ツールと言われるWindow関数について私が学んだこと | DevelopersIO
- window関数を使いこなす 〜分析のためのSQL〜 - Qiita
- ウィンドウ関数
- Window関数 | Let's Postgres
- 窓関数 (SQL) - Wikipedia
- 分析関数の衝撃(前編) (1/2):CodeZine(コードジン)
- PostgreSQLの分析関数の衝撃(7) ――window関数の変わった使用例 (1/4):CodeZine(コードジン)
- SQLの便利な関数 〜ウィンドウ関数〜 | GROUP DEV BLOG | TECHNO MOBILE
- 分析関数 (Transact-SQL) | Microsoft Docs
SQLite
MS
- 「DB Browser for SQLite」“SQLite”のデータベースを管理できるソフト - 窓の杜ライブラリ
- DB Browser for SQLite - 窓の杜ライブラリ
- DB Browser for SQLite
- sqlitebrowser/sqlitebrowser: Official home of the DB Browser for SQLite (DB4S) project. Previously known as "SQLite Database Browser" and "Database Browser for SQLite". Website at:
- 「PupSQLite」SQLiteのデータベースをGUIで操作できる高機能管理ソフト - 窓の杜ライブラリ
- 「SQLite」データベースの管理ツール「PupSQLite」がメジャーバージョンアップ - 窓の杜
OSDN
- WALの強化などが行われた「SQLite 3.11」リリース | OSDN Magazine
- 組み込み向けデータベースライブラリ「SQLite 3.14」リリース | OSDN Magazine
- SQLデータベースエンジン「SQLite 3.7」リリース、性能などを改善 | OSDN Magazine
- 「SQLite 3.20」リリース | OSDN Magazine
- SQLデータベース機能を提供するライブラリ「SQLite 3.24」リリース | OSDN Magazine
- ウィンドウ関数が加わった「SQLite 3.25」公開 | OSDN Magazine
Qiita
- SQLite C言語向けAPI チートシート - Qiita
- C言語でSQLiteを使う - Qiita
- C言語でsqlite - Qiita
- 渋川よしきさんのツイート: "このライブラリのいいところは生DBから必要な情報を抜いてくるので、DBのフル機能が使えるし、GUIのツールも活用できる。 : GOのORM sqlboiler 使ってみた on @Qiita https://t.co/Fei2tYSOS8"
- GOのORM sqlboiler 使ってみた - Qiita
Wikipedia
- SQLite - Wikipedia
- SQLite - Wikipedia, the free encyclopedia
- インメモリデータベース - Wikipedia
Twitter
- Fadisさんのツイート: "sqlite-3.17.0がリリースされました。今回の変更点はパフォーマンスの向上やコンパイルオプションの改良などデータベースの使い方は変わらない変更が中心だが、ひそかにsha1を求める組み込み関数が追加されている https://t.co/YKG4Kw5Wqm"
- Fadisさんのツイート: "複数のテーブルを結合して1つのテーブルとして見えるようにするUNION仮想テーブル、インタラクティブインターフェースの補完の挙動を変更するcompletionテーブル等の機能が追加されたsqlite-3.20.0がリリースされました https://t.co/MreLLp1dXc"
- Fadisさんのツイート: "SQLite 3.22.0からの新機能zipfile。zip形式のアーカイブの中身をSQLクエリで漁れるようになる。つまり、SELECTでファイル一覧を取得し、INSERTでファイルを作り、DELETEでファイルを消し、UPDATEでファイルを書き換える https://t.co/HFqpH8aRVv"
- The SQLite Zipfile Module
- Shirouzu Hiroaki(白水啓章)さんのツイート: "設定類をiniではなくてsqliteにすると複数起動時の相互反映がやりやすい。 一方で、I/F を用意しない限り、ユーザ変更できなくなる縛りが出るので難しいところ。"
- 鯉江さんのツイート: "相互反映というのがイメージがわかないですが、起動したときにアトミックに更新するのはできても、異常終了したときにに更新するのはできないので、そんなに便利ではないような。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "現在のFastCopyは複数起動して、それぞれで設定を変えても、最後にiniを上書きした方しか残らないのですよね。 ただ、何も考えずに取り込むと矛盾した項目が取り込まれる可能性もあって、なかなか簡単ではないのですが。… "
- Fadisさんのツイート: "SQLite 3.24.0がリリースされた。主な変更点は、UPSERTをできるようになった、文字列にSQLiteのキーワードが含まれているかを調べる関数の追加、VACUUMするとデータベースの全てのデータが削除されるモードSQLITE_DBCONFIG_RESET_DATABASEの追加他 https://t.co/pBRdV82iTL"
- 本の虫: SQLiteの行動規範がキリスト教徒の戒律を全文引用していて香ばしすぎる
- Kazuho Okuさんのツイート: "SQLiteのCoCを批判するのにキリスト教の悪口を持ち出すのマジ最悪手というか、欧米白人中心のコミュニティで非キリスト教徒が少数派であるのと同様に、日本国(あるいは日本語話者)内でキリスト教徒が少数派であることを考えれば、目糞鼻糞以下の行為ですよ"
- Kazuho Okuさんのツイート: "Thank you SQLite for choosing religion as a new tool to offend minority developers"
- Krøstianさんのツイート: "Apparently SQLite has a code of conduct that weirdly comes across as a "fuck codes of conduct". Will not participate in that community in any way.… https://t.co/p4U9zRzpb3"
- Jan-Piet MENSさんのツイート: "I will not contribute to SQLite: “First of all, love the Lord God with your whole heart, your whole soul, and your whole strength.” https://t.co/gmi3eicc5Q #codeOfConduct"
- Code Of Conduct
- およげmatsuuくんさんのツイート: "ワハハクソでしたな。批判の嵐だったのでSQLiteは結局Mozilla Community Participation Guidelinesを行動規範として採用した模様。 / “本の虫: SQLiteの行動規範がキリスト教徒の戒…” https://t.co/xdpdskN5sZ"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "sqlite(C言語)で、inner join・サブクエリを含むSQL文が一発で動いてホッとしたのだが、そもそもコンパイル時に文法エラー及びテーブル定義との不整合エラーを検出できる仕組みが欲しいところ。"
- 日比野 啓 (Kei Hibino)さんのツイート: "呼ばれたような気がする… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Haskellなら、HRRがありますね! https://t.co/eG4HCggy77… "
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SQLite3 では TEXTカラムに binary形式で保存できるが、その場合LIKE検索は出来ない様子。(少なくとも Python sqlite3 では)」 / Twitter
- FadisさんはTwitterを使っています 「SQLite 3.33がリリースされたらしい。SQLite 3.33では新しく他のテーブルをSELECTした結果を使ってUPDATEを行うUPDATE FROMがサポートされる。またページ番号をintで扱っていた所が32bit符号なし整数に揃えられ、281TBまでのデータベースが作れるようになる https://t.co/cQXfWMJOpW」 / Twitter
- SQLite 3.33 Released With PostgreSQL-Inspired UPDATE FROM, Database Files Up To 281 TB - Phoronix
- 井山梃子歴史館さんはTwitterを使っています 「SQLiteにjson突っ込むか… https://t.co/z3IFzg4k2Q」 / Twitter
- SQLite as a document database
- 井山梃子歴史館さんはTwitterを使っています 「jsonのフィールドにインデックス貼れるの面白いな」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Richard Hipp (SQLite開発者) インタビュー。彼は軍艦の診断システムを開発中、Informixが頻繁にクラッシュするのに頭にきてデータベースを書き始めた。いまやSQLiteは世界でもっとも使われているコードである。彼曰く「自由とは自力で実装できること」話し上手で痛快。 https://t.co/26Qqh2N4Oc」 / Twitter
- The Untold Story of SQLite With Richard Hipp - CoRecursive Podcast
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ちなみにSQLiteはおそるべき信頼性をもっており、分岐被覆率100%を達成している。テストケースは数十万個あり、これらをさらにパラメータ化している。テストは多様なアーキテクチャ (big endianなCPUも含む)・OS上で行われ3日間ぐらいかかるとのこと。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「なお、Hipp自身によるSQLiteの発音は「えすきゅーらいと」ではなく「えすきゅーえるあいと」。彼はSQL以外にもプログラミング全般に一家言もっていて聴きがいがある。新山から見るとヒーローの一人といってもいい。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「SQLiteに計画中の STRICTテーブル案。従来のSQLiteテーブルとは違い、データ型を厳密に指定できる。指定の型に自動変換できない場合はエラーを発生する。 https://t.co/reKdiRsAeH」 / Twitter
- STRICT Tables
- SQLite Home Page
- SQLのインデックスとそのチューニングについてのオンラインブック
- MongoDBの様なNoSQLに勢いがあるのは何故ですか?SQLと比べてどんな利点や欠点がありますか? - Quora
- SQLite4: SQLite4
- SQLiteで組み込みDB体験 (1/3):CodeZine(コードジン)
- Placesデータベースの読み書き処理を大きく減らす裏技(Firefox 49以降) - Mozilla Flux
- SQLiteバイトコードを追う — 鱒身(Masu_mi)のブログ
- SQLite入門
- ファイルシステムよりも35%高速に | インフラ・ミドルウェア | POSTD
- How Does a Database Work? | Let’s Build a Simple Database
- cstack/db_tutorial: Writing a sqlite clone from scratch in C
- SQLiteデータ型の仕様とセキュリティ問題 – yohgaki's blog
- ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cybozu Inside Out | サイボウズエンジニアのブログ
- Kazuho Okuさんのツイート: "顧客ごとにSQLiteなファイル作ってデータ入れることで、RDBMSにおけるマルチテナンシー問題を回避してるってことなんかな / “ファイルシステムサイズの拡張時にデータベースアクセスがスローダウンする問題の解決 - Cyboz…” https://t.co/R8eGK1LWe7"
- Kazuho Okuさんのツイート: "アクセス頻度が低いサービスが大量にある場合、アプリケーションサーバ立てるよりCGIのほうが便利だし、RDBMSサーバ立てるよりSQLiteのほうが便利"
- SGソフトウェア開発ブログ: [SQLite]CでSQLiteのユーザ定義関数を作る その1
- 「SQLite」データベースに脆弱性--「Chromium」ベースのブラウザにも影響 - ZDNet Japan
- SQLite/Chromium脆弱性“Magellan”は「Electron」にも影響 ~修正版が公開 - 窓の杜
- SQLiteが「大量の小さなクエリ」の処理を得意とする理由とは? - GIGAZINE
Extensible Storage Engine
- FadisさんはTwitterを使っています 「マイクロソフトがExtensible Storage Engine(ESE)をオープンソース化した話。ESEは*NIX畑で言うBerkeleyDBのような役割を果たす組み込みデータベースで、Windows2000で登場して以来今日に至るまで様々なマイクロソフト製品で利用されてきた。(例: Windows Updateの更新履歴) https://t.co/2jw1s2fJRc」 / Twitter
- Microsoft Makes The Extensible Storage Engine Open-Source - Phoronix
- Toshitaka MiuraさんはTwitterを使っています 「@fadis_ formerly known as JET Blueだと。 JETエンジンにRedとBlueがあったというのは知らなかったな。 Redの方がMS-Accessのエンジン部、BlueはExchange ServerやWindowsデスクトップサーチやIEのキャッシュで使われてて、機能も違うし交換もできないと。 ややこしいな。」 / Twitter
- Toshitaka MiuraさんはTwitterを使っています 「@fadis_ メモ。 https://t.co/aQBj0b1A5V https://t.co/X0ICRHfdXu」 / Twitter
- 【レビュー】多くのMicrosoft製品で使われているESEデータベースを閲覧できる「ESEDatabaseView」 - 窓の杜
- Extensible Storage Engine アーキテクチャ | Microsoft Docs
- マイクロソフト、NoSQLデータベース「Extensible-Storage-Engine」をオープンソースで公開。25年以上、ExchangeやActive Directoryなどで利用 - Publickey
CacheLib
- FadisさんはTwitterを使っています 「CacheLib: Facebookが同社のサービスで利用しているin-processなキャッシュ用KVSライブラリ。DRAM上のキャッシュのように振る舞うが、背後でcoldなデータをNVMに追い出して見かけ上大容量を実現する。キャッシュは手で消す以外に時限で消える等の多彩な設定が可能 https://t.co/B4dGZpKX1U」 / Twitter
- CacheLib | CacheLib
- FadisさんはTwitterを使っています 「よそのサーバから持ってきた情報をキャッシュするのにDRAMは容量単価とエネルギー効率が悪くなってるからNVMをキャッシュに使うって話、完全にIntelにやる気があればNVDIMMが圧倒していた筈の市場だ…」 / Twitter
- FadisさんはTwitterを使っています 「実装的にはNVM以外のブロックデバイスでも別に動かないわけではなくて、積極的にtruncateを行う動きをするのと、実用上NVMじゃないと遅すぎるって話っぽい。NVM上のキャッシュはnamespaceやパーティションまるごとでも作れるし、NVM上のfs 上のファイルでも作れる」 / Twitter
blog
Publickey
- PostgreSQL 11が正式リリース。ハッシュパーティショニングやJITコンパイルによる高速化、ストアドプロシージャでのトランザクションサポートなど - Publickey
- スケーラブルな分散SQLエンジン「Presto」の開発団体「Presto Software Foundation」が発足 - Publickey
- PostgreSQL 12β1が公開。Bツリーインデックス周りの性能向上や、インデックスの並列処理による再構成が可能に - Publickey
- Oracle Exadataの最新版となる「Exadata Database Machine X8」登場、自動チューニング機能「Automatic Indexing」など、機械学習による自動運用を強化 - Publickey
- AWS、SQL互換の新問い合わせ言語「PartiQL」をオープンソースで公開。RDB、KVS、JSON、CSVなどをまとめて検索可能 - Publickey
- PostgreSQL 12が正式リリース。Bツリー周りの改善による性能向上、JSONパスによる抽出可能など - Publickey
- オープンソースのグラフデータベース「Neo4j 4.0」正式版リリース。リアクティブアーキテクチャを新採用 - Publickey
- PostgreSQL 13正式版リリース。B-Treeインデックスの重複排除、同一テーブル内でのVacuum並列処理など新機能 - Publickey
- RDBで直面した性能問題、グラフデータベースでなぜ解決できたか?[PR] - Publickey
- Amazon S3がこれまでの「結果整合性」から「強い一貫性」サポートへ。データを更新直後でも最新データの読込みが保証されるように - Publickey
- Google、ORMが生成するSQLが遅いときの調査を容易にする「sqlcommenter」をオープンソースで公開。Rails、Spring、Djangoなど主要なフレームワークに対応 - Publickey
- tagomorisさんはTwitterを使っています 「OpenTracingベースのトレースの便利さをちゃんと理解したの割と最近だけど、これはよくできたUIとセットでないと実現が難しいやつかなとも思うので、一般化するのは早過ぎるのかもしれないとも思う。 そのうちOSSでVisualizeできるところまでいってからかな。」 / Twitter
- tagomorisさんはTwitterを使っています 「この話は何かというと、もちろん、モニタリングまわりの機能まで含めたサービスをやってるGoogleがSQLにコメントを自動で入れるという大昔からの知恵をいま出してくるのが面白かったという話 https://t.co/m57avpjwmu」 / Twitter
- Introducing Sqlcommenter: An open source ORM auto-instrumentation library | Google Cloud Blog
- みょうがさんはTwitterを使っています 「@tagomoris こういうことやってくれる gem があった気がする・・・」 / Twitter
- tagomorisさんはTwitterを使っています 「@mrkn これっすね https://t.co/v7u0UXuf6j」 / Twitter
- Ryuta KamizonoさんはTwitterを使っています 「sqlcommenter_railsただのmarginaliaを依存で入れてくれるだけの代物だった https://t.co/wbXuT9DMGH」 / Twitter
- sqlcommenter/sqlcommenter_rails.rb at master · google/sqlcommenter
- AWS Backupの新機能、Amazon RDSのデータベースを任意の時点に戻せる「継続的バックアップ」と「Point-in-timeリカバリ」が登場 - Publickey
- オラクルがOracle Autonomous Data Warehouseを強化。SQLを知らないビジネスユーザーでもデータ分析を容易にする自動化とUIなど追加 - Publickey
- MySQLの新製品「HeatWave」はInnoDBの最大400倍高速、テラバイト級を超える大規模データを分析可能なインメモリデータベース。スクエニやSCSKがその性能を検証[PR] - Publickey
- MySQLの新サービス「HeatWave」、SQLそのままで最大3000倍高速に。DMM.comが検証[PR] - Publickey
- MongoDB 5.0が登場。時系列データ対応、実行中のシャーディング変更に対応など - Publickey
- MySQLベースの分散インメモリDB「HeatWave」の最適化と運用自動化を支援する「MySQL Autopilot」、オラクルが発表 - Publickey
- AWS、自然言語でデータベースに問い合わせ、データ分析ができる「Amazon QuickSight Q」正式リリース - Publickey
- PostgreSQL 14正式リリース。多くの接続を使用するワークロードや論理レプリケーションでの性能向上、可観測性の向上など新機能 - Publickey
KaiGaiの俺メモ
- スキャン速度10GB/sへの挑戦~その④ 完結編~ - KaiGaiの俺メモ
- 秒速で10億レコードを処理する話 - KaiGaiの俺メモ
- Asymmetric Partition-wise JOIN - KaiGaiの俺メモ
- Dive into Apache Arrow(その3)- SSD-to-GPU Direct SQL対応 - KaiGaiの俺メモ
豪鬼メモ
DBMの設計と実装
- DBMの設計と実装 その0 全体の計画 - 豪鬼メモ
- DBMの設計と実装 その1 ハッシュ関数 - 豪鬼メモ
- DBMの設計と実装 その2 APIの草案 - 豪鬼メモ
- DBMの設計と実装 その3 ハッシュロック - 豪鬼メモ
- DBMの設計と実装 その4 ハッシュデータベースの構造 - 豪鬼メモ
- DBMの設計と実装 その5 ハッシュデータベースの書式 - 豪鬼メモ
- DBMの設計と実装 その6 ハッシュデータベースの再構築 - 豪鬼メモ
- DBMの設計と実装 その7 ファイルの抽象化 - 豪鬼メモ
- DBMの設計と実装 その8 ファイルクラス毎の性能 - 豪鬼メモ
- DBMの設計と実装 その9 B+木の構造 - 豪鬼メモ
- DBMの設計と実装 その10 LRUキャッシュ - 豪鬼メモ
- DBMの設計と実装 その11 ツリーデータベースの書式 - 豪鬼メモ
- DBMの設計と実装 その12 ツリーデータベースの実装 - 豪鬼メモ
- DBMの設計と実装 その13 スキップリストの構造 - 豪鬼メモ
- DBMの設計と実装 その14 スキップデータベースの書式 - 豪鬼メモ
- DBMの設計と実装 その15 スキップデータベースの検索 - 豪鬼メモ
- DBMの設計と実装 その16 オンメモリデータベース - 豪鬼メモ
- DBMの設計と実装 その17 ゾーンI/O - 豪鬼メモ
- DBMの設計と実装 その18 アトミックなレコード処理 - 豪鬼メモ
- DBMの設計と実装 その19 バックアップ - 豪鬼メモ
- DBMの設計と実装 その20 セカンダリインデックス - 豪鬼メモ
- DBMの設計と実装 その21 実装作業に向けて - 豪鬼メモ
histric
histric-1
- データベースライブラリTkrzwの初版リリース - 豪鬼メモ
- Tkrzw: a set of implementations of DBM
- DBMのダイレクトI/O対応 - 豪鬼メモ
- DBMを使った検索エンジンの作り方 - 豪鬼メモ
- DBMで単語辞書を作ろう - 豪鬼メモ
- DBMのローカルシャーディング - 豪鬼メモ
- LRU削除キャッシュDBM - 豪鬼メモ
- Wikipediaから作るN-gramフレーズ頻度DB - 豪鬼メモ
- Wikipediaの共起語を使ってシソーラス検索をしよう - 豪鬼メモ
- Wikipediaを解析して共起語抽出をしよう - 豪鬼メモ
- ラテン文字のマッチング用正規化 - 豪鬼メモ
- バッチで文字列探索する際の性能 - 豪鬼メモ
- 文字列探索法の比較 - 豪鬼メモ
- ダイレクトI/O用のキャッシュ実装 - 豪鬼メモ
- 各種データベース実装と各種ファイル実装の性能比較 - 豪鬼メモ
- I/Oのバッチ化によるDBの性能改善 - 豪鬼メモ
- はじめてのDBM - 豪鬼メモ
- はじめてのDBM - Google スライド
- マルチレコードトランザクション機能 - 豪鬼メモ
- トランザクションのACID特性と自動リストア機能 - 豪鬼メモ
- 壊れないデータベースと壊れにくいデータベース - 豪鬼メモ
- CRCをデータベースに内蔵する - 豪鬼メモ
- マルチシャードのトランザクション - 豪鬼メモ
- 圧縮アルゴリズムの事前調査 - 豪鬼メモ
- 圧縮データベースの性能評価 - 豪鬼メモ
- 各種エラー検出符号のエラー検出率 - 豪鬼メモ
- ハッシュデータベースの互換的フォーマット変更 - 豪鬼メモ
- BtrFSのスナップショットによるオンラインバックアップ - 豪鬼メモ
- 再構築しない復旧処理 - 豪鬼メモ
histric-2
- TkrzwのC言語インターフェイス - 豪鬼メモ
- C++/Java/Ruby/Pythonの並列I/O用ファイルインターフェイス - 豪鬼メモ
- C++標準futureとスレッドプールの性能比較 - 豪鬼メモ
- 非同期APIでデータベースを操作する - 豪鬼メモ
- 非同期APIの性能評価 - 豪鬼メモ
- Go言語勉強中 - 豪鬼メモ
- TkrzwのGo言語インターフェイスをリリース - 豪鬼メモ
- C言語での非同期API - 豪鬼メモ
- Pythonの非同期APIとコルーチン - 豪鬼メモ
- Javaインターフェイスで2倍の高速化 - 豪鬼メモ
- スピンロックによる並列処理の高速化 - 豪鬼メモ
- ネイティブ非同期APIとゴルーチンの性能比較 - 豪鬼メモ
- スピン共有ロックの優先度制御とアップグレード機能 - 豪鬼メモ
- 共有ロックによる並列B+木操作の保護 - 豪鬼メモ
- Tkrzw 1.0の性能評価 - 豪鬼メモ
- 各種メモリアロケータによる性能評価 - 豪鬼メモ
- mallocの削減などによる性能向上 - 豪鬼メモ
- DBサービスを作ろう その0 準備 - 豪鬼メモ
- DBサービスを作ろう その1 ログとデーモン化 - 豪鬼メモ
- DBサービスを作ろう その2 基本APIの設計と実装 - 豪鬼メモ
- DBサービスを作ろう その3 ストリームAPIでイテレータを実装 - 豪鬼メモ
- DBサービスを作ろう その4 gRPCの性能測定 - 豪鬼メモ
- DBサービスを作ろう その5 バッチ化とストリーム化による性能向上 - 豪鬼メモ
- DBサービスを作ろう その6 非同期化による性能向上 - 豪鬼メモ
- DBサービスを作ろう その7 シャーディング最強説 - 豪鬼メモ
- DBサービスを作ろう その8 レプリケーションを踏まえた更新ログの要件 - 豪鬼メモ
- DBサービスを作ろう その9 更新ログのメッセージキュー化 - 豪鬼メモ
- DBサービスを作ろう その10 更新ログによるインクリメンタルバックアップ - 豪鬼メモ
- DBサービスを作ろう その11 非同期レプリケーション完成! - 豪鬼メモ
- DBサービスを作ろう その12 非同期レプリケーションのプロトコルと実装 - 豪鬼メモ
- Tkrzw-RPCのPythonクライアントライブラリ - 豪鬼メモ
- Tkrzw-RPCのRubyクライアントライブラリ - 豪鬼メモ
MasahikoSawada
- ロジカルレプリケーションのレプリケーション衝突を解決する
- シーケンシャル・スキャンだからといってデータがテーブルの先頭から返ってくるとは限らない、という話
- PostgreSQLのソースコードの構造
- BRINの概要
- BRINソースコードリーディング(構築)
- VACUUMのログの読み方(VACUUM VERBOSE)
- FDWを使った時の読取り異常、更新異常を見てみる
- PostgreSQLのリカバリ周りのバグを修正してみた - 原因究明編 -
- PostgreSQLのリカバリ周りのバグを修正してみた - 問題発見編 -
- Parallel Queryの概要
- SQLからHINT句を生成するツール(phint)を作ってみた
- トランザクションIDへのロックと行ロック
- DeadlockとDeadLock対策のメモ
- MyProc->delayChkptについての理解と覚書
- PostgreSQL 14でのBtreeインデックスのVacuum関連の改善についての解説
日々の覚書
- 日々の覚書: MySQL 5.6のクラッシュセーフなレプリケーションの仕組み
- 日々の覚書: MySQL 5.6とそれ以前は「testデータベースを消せば良いってもんじゃない」というはなし
- 日々の覚書: レプリカにだけgenerated columnを追加したらセカンダリインデックスが更新されなかった
- 日々の覚書: MY-001192 Can't execute the given command because you have active locked tables or an active transaction に出会った
- 日々の覚書: 「MySQLのフェイルオーバーテストをする」と聞いてぼんやり思ったこと
クックパッド開発者ブログ
- クエリログを使ったAurora MySQLの負荷テスト - クックパッド開発者ブログ
- 負荷試験用 Web コンソールの開発 - クックパッド開発者ブログ
- ドキュメントベースの型安全なモバイルアプリ行動ログ基盤の構築 - クックパッド開発者ブログ
- Amazon Elasticsearch ServiceをつかったRDSのスロークエリの集計と監視 - クックパッド開発者ブログ
- Amazon RDS/Auroraをクローンするシステムを作った話 - クックパッド開発者ブログ
- MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ
- 全国のスーパーに置かれる storeTV 端末の情報の取得にかかる時間を15分から10秒にした話 - クックパッド開発者ブログ
- データ分析 SQL とその実行結果を共有・検索できるアプリ Bdash Server を作りました - クックパッド開発者ブログ
Money Forward Engineers' Blog
- 【Rails】トランザクションを張るときにSQLキャッシュで気にすべきこと | Money Forward Engineers' Blog
- OpenAPIでスキーマ駆動開発してみた | Money Forward Engineers' Blog
- GraphQL Federation – API Gatewayの進化 | Money Forward Engineers' Blog
技術日誌
- Effective SQL 読書会(4)に参加 - Yabu.log
- Effective SQL 読書会(5)に参加 - Yabu.log
- プログラマのためのSQL 読書会(25)に参加 - Yabu.log
- プログラマのためのSQL 読書会(26)に参加 - Yabu.log
- プログラマのためのSQL 読書会(27)に参加 - Yabu.log
- dbtech showcase Tokyo2018に参加 - Yabu.log
- プログラマのためのSQL 読書会(28)に参加 - Yabu.log
- プログラマのためのSQL 読書会(31)に参加 - Yabu.log
- 「RDBMS解剖学 よくわかるリレーショナルデータベースの仕組み」を読んだ - Yabu.log
- 約2年間続いた読書会で「プログラマのためのSQL」を読み終わりました - Yabu.log
- 失敗から学ぶRDBの正しい歩き方 読書会(1)に参加 - 誰にも見えないブログ
- Transaction,Concurrency ControlとAntichain - Yabu.log
- CMU 15-445/645 (FALL 2018)Database Systems - 01 Relational Data Modelノート - 誰にも見えないブログ
- CMU 15-445/645 (FALL 2018)Database Systems - 02 Advanced SQL - 誰にも見えないブログ
- Transactionのinterpretation(herbrand semantics)について - Yabu.log
- 失敗から学ぶRDBの正しい歩き方 読書会(6)に参加 - 誰にも見えないブログ
- Scheduleをpolygraphに変換してVSR validationを行う方法 - Yabu.log
はてなブログ
- Database Concurrency Control Papadimitriou 読書会 第15回 議論メモ - ぱと隊長日誌
- トランザクション理論における polygraph と History の VSR 判定 - ぱと隊長日誌
- Berkeley DB (Hash) の実装 - knqyf263's blog
- Rustで古典的なDisk-Oriented DBMSを実装した話 - Write and Run
- SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる
- トランザクション中の文の失敗の扱いの違い - Write and Run
- WEB+DB PRESS Vol.122に特集「Rustで実装!作って学ぶRDBMSのしくみ」を書いた - Write and Run
- DDLからコード生成するツールを作ったよ! - ハッピー抹茶工場
- MVCCとInnoDBでの実装について - shallowな暮らし
- ストレージエンジンの話 ~InnoDBのredo logをざっくり理解する~ - shallowな暮らし
- InnoDBのMVCCのガベージコレクションについて - shallowな暮らし
- nitpick 『詳説データベース』 - 井山梃子歴史館
- 【ProxySQL】入門する - 地方エンジニアの学習日記
- 【ProxySQL】mysql-shun_on_failuresの罠 - 地方エンジニアの学習日記
- MariaDB のデバッグをいい感じにやる - それが僕には楽しかったんです。
- Dive into InnoDB MVCC - nayuta-yanagisawa's blog
- PostgreSQLパーティションプルーニングの動作を確認する | Future Tech Blog - フューチャーアーキテクト
- Scala用のタイプセーフなSQLビルダを作ってみた - たけぞう瀕死ブログ
- SQL Server 2019 プレビューで UTF-8 をサポート – Cloud and Server Product Japan Blog
- PostgreSQLは20年間どのようにfsyncを間違って使っていたか - 聴講メモ -
- WEB+DB PRESS plus の DB 本 3冊を読んで index を学んだ · Yuichi Takada
- Aurora - クラウド時代のDBアーキテクチャ - 発明のための再発明
- A Critique of ANSI SQL Isolation Levels再読 - 急がば回れ、選ぶなら近道
- DBMSをGoで実装してみた - Sansan Builders Box
- カラムナフォーマットのきほん 〜データウェアハウスを支える技術〜 - Retty Tech Blog
- Go用SQLスロークエリ解析ツールAqueryを書いてISUCON10の本選に出たらfailした | teqblog
- 【BigQuery】 AlphaSQLでスキーマ安全なデータ基盤を構築する | by Matts966 | JDSC Tech Blog | Dec, 2020 | Medium
- yohさんはTwitterを使っています 「SELECT ... FOR UPDATE同士でデッドロックさせる - かみぽわーる https://t.co/kPb1OquVCq 「ロックを取る順番が一意になるようにクエリや実行計画を揃えるというのがこの手の問題に対する一般的な対処法」 今んところ人類はどこまで行ってもこの問題から逃れられんのか...」 / Twitter
- Apache Calcite + Truffle でクエリエンジンを作ってる話
- DSAS開発者の部屋:2019年01月
- WASD Inc.という会社でCTOをやっています|Yudai Shinnoki|note
- Python/R/SQL コード対応表 | みぞおちブログ
- スキーマ駆動開発 (OpenAPI) 導入後の改善 - Adwaysエンジニアブログ
- チョットワカル Row-Based Replication・その1 | エンジニアブログ | GREE Engineering
- shallow1729さんはTwitterを使っています 「正確にはMySQLのphantomの扱いを分かってなかった。MySQLのやり方でphantom read防ぐのむずくね?ってなってたけど案の定best effortだった。 例えば以下のブログの例 https://t.co/ib2VrePhZO」 / Twitter
- Understanding MySQL Isolation levels: repeatable-read | Official Pythian®® Blog
スライド
- 20181211 - PGconf.ASIA - NVMESSD&GPU for BigData
- RDBMS in Action - Speaker Deck
- HSEとは何か - Speaker Deck
- FadisさんはTwitterを使っています 「カーネル/VM online part1での発表「HSEとは何か」をYouTubeで見れるようにしました #kernelvm https://t.co/uSMzFNBJMl」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「mpool自体のアラインメントは自動的に取ってくれるんだろうか。mpoolの使うロジカルボリューム?がerase block境界に配置されないと悲しいことになると思うけど #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「@kazuho mpoolの作成時にブロックサイズを指定するとmblockやmlogの配置がアラインされるようになっています。デフォルトは32MBです」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あーHSE自体はfsは触らずにmpoolだけ使うのか。納得」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「そういえば SSD のコントローラーというとこういうプロジェクトもあるらしいですね >> The OpenSSD Project https://t.co/TD8u6zOdn7 #kernelvm」 / Twitter
- The OpenSSD Project
- Yasuo ItabashiさんはTwitterを使っています 「この手の問題は上層が指定したcapabilityやattributeを持つ下層を透過的に選択したり、下層のstatusを上層に通知する仕組みがあると良いと思う。シンプルにバイパスさせると環境依存が増えてOSの旨味をスポイルされるので。 #kernelvm」 / Twitter
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています 「#kernelvm mpoolは作成するときにブロックサイズが指定できる、というか指定しないと意味がない。でもSSDのブロックサイズを公表しているとは限らない…」 / Twitter
- しゅうすい🐧さんはTwitterを使っています 「Event Sourcingとか、DBのトランザクションログとか、ジャーナルログとか、何となく雰囲気似てる感じがする」 / Twitter
- しゅうすい🐧さんはTwitterを使っています 「コピーGCみたいなことするのか」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「どっちかというと DB の wal」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「というか journaling と wal ってほぼ同じものが違う場所で使われてるだけな感じある」 / Twitter
- DBアタマアカデミー:連載|gihyo.jp … 技術評論社
- 第2回 トランザクションを知ればデータベースがわかる―「データ復旧」「同時実行制御」を行う“不完全な”しくみ(2):DBアタマアカデミー|gihyo.jp … 技術評論社
- sat🌿さんはTwitterを使っています 「強いストレージデバイスのすごいところのひとつは上に乗っかってるLinuxのI/Oスケジューラとかファイルシステムとかに相当するものをフルセットで持っててカーネルが「俺何もしなくていいんじゃね?」ってなるところ」 / Twitter
- FadisさんはTwitterを使っています 「昔は カーネル「ディスク君がスムーズに書けるように私が書き込み順を調整してやろう」 だったのが今や SSDのコントローラ「そういうの全部こっちでやるんでユーザ空間から来た書き込みは即座に渡してください」 だもんな」 / Twitter
- 僕がDIを否定する理由 - kbigwheelのプログラミング・ソフトウェア技術系ブログ
- やはりあなた方のDependency Injectionはまちがっている。 — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something
- 本当に倒すべきだったのは jQuery ではなくテンプレートエンジンだった - fsubal
- フロントエンドにおける「関心の分離」は間違っていた - fsubal
- How COMMIT Works in CockroachDB - Speaker Deck
- GraphQL を利用したアーキテクチャの勘所 / Architecture practices with GraphQL - Speaker Deck
- Rustでon-diskなB+Treeを 作ったときの細かな話 - Speaker Deck
- MySQLとインデックスと私 - Speaker Deck
- PostgreSQLのCREATEROLE権限強すぎ問題(第27回PostgreSQLアンカンファレンス@オンライン 発表資料)
GitHub
- mysql80_no_usui_hon/book_ebook.pdf at master · hmatsu47/mysql80_no_usui_hon
- YugaByte/yugabyte-db: YugaByte DB is the open source, high-performance SQL database for building internet-scale, globally-distributed apps.
- The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C++
- 非公式MySQL 8.0オプティマイザガイド by yakst
GIGAZINE
- PostgreSQLには「中途半端なサイズ」のデータを格納しないほうがいい - GIGAZINE
- 簡単にP2Pの分散型ストレージやKVSを試せる「Hypercore Protocol」を使ってみた - GIGAZINE
- データベースの文字数制限が191文字になっている理由とは? - GIGAZINE
技術評論社
- 2019年10月17日 "データレイク"のスタンダードをめざす ―Databricks,「Dalta Lake」をLinux Foudnationに寄贈:Linux Daily Topics|gihyo.jp … 技術評論社
- 第655回 オブジェクトストレージ,MinIOを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第657回 オブジェクトストレージ,MinIOを使用する[クライアント編]:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
POSTD
- リレーショナルデータベースの仕組み (1/3) | POSTD
- リレーショナルデータベースの仕組み (2/3) | POSTD
- リレーショナルデータベースの仕組み (3/3) | POSTD
infoQ
- NoSQL データベースのアジャイルなデータモデリング
- MicrosoftがEdgeにSQLを導入、Azure SQL Database Edge
- COMN(Concept and Object Modeling Notation)によるNoSQLデータベースのデータモデリング
- OCIはMicronaut Data 1.0を特徴とするMicronaut 1.3をリリースした
- 分散時系列、ドキュメント圧縮、インデクスを改良したRavenDB 5
- KSQLがConfluent Cloudで利用可能に
- Elasticsearch 7.7は非同期検索、セキュアなキーストアなどをもたらす
- JepsenがMongoDBのデータ整合性の主張に異議を唱える
- Kafka、MongoDB、Maxwell's Daemonを使用したSQLデータベース監査システムの構築
- GraphQLデータフェデレーションを実装したHasura Remote Joins
- Netflixは大規模なGraphQLフェデレーションを実装
- Amazon S3が強力な読み取り後書き込みの一貫性を提供する
- Couchbaseで言語と開発者に使いやすいデータ構造を使用
- Pinterestが階層化ドキュメントを効率的に検索するアーキテクチャについて解説
- NetflixがDomain Graph Service Frameworkをオープンソース化: Spring BootのGraphQL
- Lightstepは新しいChange Intelligence機能でトレースとメトリックを結び付ける
- Netflixは迅速なアプリケーション開発のためにGraphQLマイクロサービスを擁した
- Couchbaseが自身の分散ACIDトランザクションアーキテクチャを詳細に説明
- Google Logicaは、SQLクエリをより再利用でき、読みやすくすることを目指す
- Prisma ORMツールスイートが実運用対応に
- Logz.ioがログデータ内のパターンを自動特定する機能をリリース
- オラクル オープンソース Coherence インメモリデータグリッド
- AceSQL、オープンソースのJDBC-over-HTTPドライバをリリース
- GoogleがポイントインタイムリカバリでCloud Spannerを強化
- ZippyDB:Facebookの強力な一貫性のあるKey-Valueストアのアーキテクチャ
OSDN
- パーティション強化、JITコンパイラなどが加わった「PostgreSQL 11」リリース | OSDN Magazine
- 「PostgreSQL 11.2」リリース、fsync()失敗時の処理を修正 | OSDN Magazine
- SQL互換のHTAP向け分散データベース「TiDB 3.0」リリース | OSDN Magazine
- 「PostgreSQL 11.5」リリース、4件のセキュリティ問題を修正 | OSDN Magazine
- 「PostgreSQL 12」リリース、性能面でさまざまな強化が行われる | OSDN Magazine
- 「PostgreSQL 14」が公開 | OSDN Magazine
Zenn
- 恐怖のphantom Atari partition
- TypeScript * GraphQLのバックエンド設計プラクティス
Qiita
- golang で 2 Way SQL - Qiita
- ひとりRDBMS実装 Advent Calendar 2019 - Qiita
- [#JTF2020 解説版]理解して拡げる 分散システムの基礎知識 - Qiita
- 自分用メモ: ウェブ設計チェックリスト - Qiita
- SQL Server:ブロッキング発生時に情報を自動保存する仕組みづくり - Qiita
- SQL Serverのロックについて出来る限り分かりやすく解説 - Qiita
Wikipedia
- 関係の正規化 - Wikipedia
- List of order theory topics - Wikipedia
- 分散処理に詳しいオタクさんはTwitterを使っています 「SQLの実行中にそのクエリ自身によってタプルの位置を移動させてしまってスキャンが同じ行を複数回処理してしまう問題をハロウィーン問題と言って1976年のハロウィーンにSystem Rで見つけたそうな。 https://t.co/p5Ic5efqh3 ハッピーハロウィン!」 / Twitter
- Halloween Problem - Wikipedia
- ログ先行書き込み - Wikipedia
- Change data capture - Wikipedia
- ライトアンプリフィケーション - Wikipedia
Twitter
みずほ銀行
- Nayuta YanagisawaさんはTwitterを使っています 「アプリケーション側でトランザクション(相当の機能)を実装しようという試みの99%は失敗に終わるだろうという直感がある」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「冪等リトライしか勝たん」 / Twitter
- (๑╹◡╹๑)さんはTwitterを使っています 「ちょっとこれは違和感が。みずほの報告書を読む限り、Minoriは分散トランザクションをACIDではなく補償モデルで実装してるっぽいが、どの障害もロールバックに失敗していて、補償失敗の設計考慮が漏れてる。これテスト時にあんま問題が顕在化しないし、稼働し始めて問題が出て運用が苦しむやつ。」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「国立情報学研究所の佐藤一郎教授「連鎖障害が起きたのだから、システムの根幹に問題があったとみるべきだ」疎結合とグローバルトランザクションという相いれない2つを同時に追求したことが、MINORIの弱点となっていた / “SOAなのにトラブルが連鎖、みずほ銀行システム障害…” https://t.co/Rn130H8ily」 / Twitter
- SOAなのにトラブルが連鎖、みずほ銀行システム障害の謎(2ページ目) | 日経クロステック(xTECH)
- (๑╹◡╹๑)さんはTwitterを使っています 「例えば、報告書P43の2月28日の定期性預金トラブルに起因したATMのカード取込の状況だけど、本来なら取消情報テーブルの更新不可が発生すれば、直前の処理から遡ってロールバックするように設計されてるはずだけど、補償失敗時の動作がデッドロックとか最悪の結果になってる。 https://t.co/8QqY6LGwgK」 / Twitter
- (๑╹◡╹๑)さんはTwitterを使っています 「別にSOAを実現するために分散トランザクション実装は必須ではけど、ACIDにしても補償モデルにしても、一貫性を補償する仕組みがないとロールバックに失敗するまずい実装になってしまう。SOA自体の問題じゃないと思うんだ(少なくとも誤解を生む表現だと思う)」 / Twitter
- (๑╹◡╹๑)さんはTwitterを使っています 「CAP定理から言えば、Minoriの実装って一貫性・可用性・ネットワーク分断耐性のすべてが実現できてる想定で、どれも実現できてないんじゃぇねのっていう疑念を持ってる。」 / Twitter
- (๑╹◡╹๑)さんはTwitterを使っています 「SOAと並んで疎結合化の問題視されてるけど、言うまでもなく疎結合化は金融機関系システムでは採用されてないところを探す方が難しいくらい一般的になってきているので、発生した現象と照らし合わせても原因でもなんでもないだろう。」 / Twitter
降順インデックス
- Nayuta YanagisawaさんはTwitterを使っています 「ISUCON 絡みで、MariaDB も降順インデックスをサポートするよう求める声を聞いた。対応する JIRA issue はあるけど、いまのところ実装される気配はない。 https://t.co/1vku10XJ6e」 / Twitter
- [MDEV-13756] Implement descending index: KEY (a DESC, b ASC) - Jira
- Nayuta YanagisawaさんはTwitterを使っています 「> MDEV-13756 Implement descending index: KEY (a DESC, b ASC) Sveta’s talk mentioned this functionality that isn’t in MariaDB yet. There are a lot of watchers on this issue. It is however too large a task to complete for 10.6.) https://t.co/19dOmRR3Ia」 / Twitter
- FOSDEM 2021 MariaDB is listening - MariaDB.org
パラメーターチューニング
- shallow1729さんはTwitterを使っています 「OtterTuneの文脈でMySQLのadaptive hash indexは切るとパフォーマンスむっちゃ上がったって話があったけどあれの詳細(どういうワークロードかなど)どこかにあるんだろうか? (人間がやるのやめて機械学習に任せようぜって話であってAHIがいつ有用かっていう議論がしたいわけじゃないのはわかってるが)」 / Twitter
- shallow1729さんはTwitterを使っています 「adaptive hash index、早くもっとadaptiveになって脳死でonにさせてほしい」 / Twitter
- shallow1729さんはTwitterを使っています 「これは2年ぐらいうまく折りたたまるタンパク質が設計できるようにアミノ酸や原子のモデルパラメーターをいじってた人間の発言だけどパラメーターチューニングは機械学習に任せたい」 / Twitter
- shallow1729さんはTwitterを使っています 「まあDBMSのチューニングは再起動しないと適用されないパラメーターが多いから雑に試せなくて難しいよねー」 / Twitter
Multiversion concurrency control
- ogiwaraさんはTwitterを使っています 「SIはMultiversion CCの特殊な場合として捉えられるよね 普通のCCは1VCCで一番最後の書き込みを必ず読まなきゃいけない」 / Twitter
- ogiwaraさんはTwitterを使っています 「てことはlocal書き込みがそもそもMVCCに落とし込めるのか」 / Twitter
- ogiwaraさんはTwitterを使っています 「これがデータベースの理論 面白いね https://t.co/Bvea0YJEC8」 / Twitter
- Multiversion CC - Google 検索
- Multiversion concurrency control - Wikipedia
- 並行性制御 - Wikipedia
- Concurrency control - Wikipedia
- トランザクションの並行処理制御
- Snapshot isolation - Wikipedia
- Snapshot isolation - Wikipedia
- Making Snapshot Isolation Serializable 再考 - 急がば回れ、選ぶなら近道
- Snapshot Isolation のおもちゃ - Tociyuki::Diary
- PostgreSQL Isolation について - SIerだけど技術やりたいブログ
- ogiwaraさんはTwitterを使っています 「そもそもMVCCを変形すれば1VCCに落とせるぽいね、定義上」 / Twitter
- ogiwaraさんはTwitterを使っています 「MVはあくまで便宜上の表記だから」 / Twitter
- ogiwaraさんはTwitterを使っています 「いや、それは言い過ぎだね より過去のを見ることができるから SIはMVCCと1VCCで表せるってだけ」 / Twitter
三大定理
- 足跡45(マストドンにいるかも)さんはTwitterを使っています 「CAP定理、ノーフリーランチ定理、あと1つ付け加えてステートメントがよくわからん3大定理にしたい」 / Twitter
- Masaki HaraさんはTwitterを使っています 「@ashiato45 無限の猿定理とかどうでしょう? 厳密な定義もありますが、CAPやno free lunchもあとでそのコンセプトに基づく定理が与えられてるはずなので並べてもいいかなと」 / Twitter
- 足跡45(マストドンにいるかも)さんはTwitterを使っています 「@qnighy 個人的にはステートメントがよくわからん上でわからんまま濫用されがちというところにポイントをつけたいので無限の猿がよさそうな気がしています」 / Twitter
- 足跡45(マストドンにいるかも)さんはTwitterを使っています 「ステートメントよくわからん3大定理、qnighyさんのおかげでCAP定理、ノーフリーランチ定理、無限の猿定理の3つに決まりつつある」 / Twitter
OpenVDB
- FadisさんはTwitterを使っています 「OpenVDB: 高速かつコンパクトに疎なデータを扱う空間的データ構造として2013年に発表されたVDBのオープンソースな実装。root nodeのみが可変長のハッシュテーブルになった3段固定のB+木を使う事で動的に変化する疎なデータへの償却定数時間でのランダムアクセスを実現する https://t.co/ld1UfO7nhs」 / Twitter
- OpenVDB
- FadisさんはTwitterを使っています 「衝突を想定する必要があるハッシュテーブルへのアクセスは償却定数時間だが高速ではないという問題がある。このためVDBでは「最近アクセスしたノード」を含むより小さいハッシュテーブルを持つ。小さいハッシュテーブルはキャッシュなので衝突したら古い値を消して良く、高速なアクセスが可能になる」 / Twitter
- FadisさんはTwitterを使っています 「このデータ構造の問題点はread-onlyで使う場合であってもキャッシュが更新されるため書き込みを行うの等価に扱う必要がある点。OpenVBDの実装ではデータを読むだけの場合であっても同じデータ構造に対して複数のスレッドが同時にアクセスしない事を保証する必要がある」 / Twitter
HSE
- FadisさんはTwitterを使っています 「HSE 2.0がリリースに向けた準備に入っている話。HSEはLinuxのカーネル空間でブロックデバイス上にトランザクショナルなKVSを作るmpoolを使って近代的なSSDで性能が出るデータベースを実現するストレージエンジン。2.0は今までの1.xとの互換性を捨ててAPIの改良を行うらしい https://t.co/0DAF2x3Fwh」 / Twitter
- HSE 2.0 Open-Source Storage Engine Is On The Way From Micron - Phoronix
- FadisさんはTwitterを使っています 「HSE 2.0では以前からあるC言語APIに加えてPython APIが追加され、既存のDBに組み込みやすいようにそれらで用いられるアラインメントに合わせるようになった他、将来の拡張に向けた内部の設計の見直しを行ったとされているが、現状ドキュメントがほぼ無く、具体的なところはソースを見る必要がありそう」 / Twitter
- FadisさんはTwitterを使っています 「HSEの下を支えるmpoolには2.0のrc版は出ていないが、mpoolの説明にHSE 1.x向けと書かれていることから、HSE 2.0と組み合わせるためのmpoolのコードはまだ上がっていない段階のように思われる」 / Twitter
- FadisさんはTwitterを使っています 「HSEってどんなやつ? がひと目でわかるやつ https://t.co/SxZiCbvNAK」 / Twitter
histric
histric-1
- SODA Noriyukiさんのツイート: "SQLの一番いいとこって(cost-based optimizerを利用していて、さらに適切にanalyzeも実行してる場合限定だけど)やりたいことを宣言的に書くと、効率のいいデータアクセス手続きを処理系側で推定して実行してくれるところだと思う。人手でアルゴリズム書く言語と比べると、間違いなく進んでる。… https://t.co/OzWxCE1oso"
- SODA Noriyukiさんのツイート: "エンジン側に最適化させるためにはSQL一文でやりたいことを表現する必要があるので、副問い合わせも当然必要になる。"
- KaiGai Koheiさんのツイート: "本日の発表資料を公開しました。 ■ GPUとNVMEでPostgreSQLの限界に挑む ~クエリ処理速度10GB/sを越えて~ https://t.co/Z02tkRieLW #dbts2018"
- DB Tech Showcase Tokyo 2018: C23『GPUとNVMEでPostgreSQLの限界に挑む』実況と反応まとめ - Togetter
- 20180920_DBTS_PGStrom_JP
- Fadisさんのツイート: "先日リリースされたPostgreSQL 11についてPhoronixがEPYCサーバでpgbenchを走らせた結果。クエリのJITコンパイルを有効にしても単純な読み書きでは殆ど性能が向上しない(これが役立つのはクエリが複雑な場合)、というそんな気はしてた傾向が数字で出ている https://t.co/QkjyuUQHsK"
- Some Initial PostgreSQL 11.0 Database Benchmarks - Phoronix
- 渋川よしきさんのツイート: "相手がメリットだと思っていること、例えばとっつきやすさなどに寄り添わないと、説得はおろか、まずは相手が読んでくれることもないので、強すぎる言葉でエントリーを書くのは書くだけ損でメリットなしって思う派。 https://t.co/4qlOr0M5Q7"
- O/Rマッピングは百害あって一利なし! - Qiita
- 渋川よしきさんのツイート: "ORMって、クエリービルダーとオブジェクトマッパーと大きく2つ機能があって、後者は面倒だから自動化したい、前者は直接書きたい派とかもあって、2 WAY SQLみたいなのもあるし、それとは別にActive Recordとかもあるので、まず要素分解して各個議論しないと、意味がない気はしてる。"
- 渋川よしきさんのツイート: "↑という分類も正しいかどうかはあんまり自信がないぐらい、僕自身はORMに馴染みがないので、誰か"
- 渋川よしきさんのツイート: "SQL直書きしたい派も、データ突っ込むのは別に雑でもいいけど、大量のデータをうまく取り出す必要が多くて、SELECTクエリーは手書きでじっくりチューニングしたい派、というのも観測している"
- じょうさんのツイート: "コツコツと作ってたSQLのLanguge Serverをようやくリリースしました🎉 まだまだやることはたくさんありますが、ご興味ある方はぜひ試してみてください🙏 https://t.co/m836vJMNk3… "
- joe-re/sql-language-server: SQL Language Server
- KaiGai Koheiさんのツイート: "斜め読み。これ、k-selectionのためにソートを使ってるけど、上位k件の抽出だけならsorting blockの下の方に入る事が確定した時点で計算を打ち切って構わないので、それで更に最適化できないかしら。… "
- Billion-scale similarity search with GPUs - Speaker Deck
- Tatsuo Ishiiさんのツイート: "PostgreSQL 12でOIDがなくなる件、システムカタログにはoidという列が残るが、普通の列になってしまったので、うっかり今までのように、 SELECT oid, * FROM pg_class; とかやると、結果に"oid"という列が2回出てきてびっくりする。 管理系のツールや自作管理スクリプトに色々影響するような気がする。"
- KaiGai Koheiさんのツイート: "なんだか SELECT * で展開されない”隠し列”みたいな属性が欲しくなりますね。 そうすると、行レベルアクセス制御用のACLを仕込んだり、別の応用も効きそうですし。… "
- myuiさんのツイート: "https://t.co/dc0D7d83pd NVM over networkに特化したstorage formatらしい"
- The Apache Crail (Incubating) Project: Overview
- 渋川よしきさんのツイート: "DDDの文脈で集約という言葉が出てくるんですが、集約だけだとただデータの集まりだから、MSつけて欲しいなって思っていたのを思い出した… "
- Hiroaki Nakamuraさんのツイート: "確かにと思って改めて調べてみると https://t.co/PsfGfnwMYf databaseはデータの集合という意味なんですね。なのでそれを管理するシステムということでMSが必要になると。… "
histric-2
- KaiGai Kohei 🌻さんのツイート: "ProjectionPathが入ってから、CustomScan側でtargetListの計算をして返すのが不便になったなぁ。。。 これ、実行計画を作った後でplanner_hookを使って書き換えるしか無いような気がするが。"
- KaiGai Kohei 🌻さんのツイート: "ただ、元々GpuProjectionは42次元のベクトル間距離の計算を高速化(普通はSQLで書かない)するために実装したモノで、効果のある利用シーンが限定的という事を考えると、シンプルに被参照列だけをCPU側に返すような実装でも良いのかもしれず。"
- KaiGai Kohei 🌻さんのツイート: "SSD2GPUのドライバを改良して、データがPage Cacheに載っている場合の性能を改善。PCIeスイッチ無しだとこの辺が頭打ちだと思うので、まぁまぁ、ゴキゲンな感じ。 SSDはIntel SSD DC P4510 (U.2, 1.0TB) を4本束ねてます。… https://t.co/2wmhS9HMfW"
- KaiGai Kohei 🌻さんのツイート: "Page Cacheに載っている場合の性能デグレ小さくなり、かつ、タプル毎の visibility check をGPU側でできるようにしたら、書込み頻度の高いテーブルであっても、堂々とSSD2GPUを使って集計処理を回す事ができるんだが。"
- KaiGai Kohei 🌻さんのツイート: "現状、MVCC検査の必要ない(ALL_VISIBLE=1である)ブロックのみSSD2GPUの対象にしている。本来、ALL_VISIBLEというのは強すぎる制約であって、t_infomaskのコミットフラグだけ見て可視・不可視を判断できれば良いが、commit logの参照が必要になるとダメ。"
- KaiGai Kohei 🌻さんのツイート: "visibility mapみたく、『このブロックは t_infomask の情報だけでMVCC可視性チェックできます』なフラグがあると助かるんだが。"
- Masahiko Sawadaさんのツイート: "実行計画のHINT句つくるツール作ってみた。PostgreSQL用です。 クエリを受け取ると(実行計画を取得して)そのクエリの実行計画を作るためのHINT句を返します。これで実行計画の固定化は簡単にできるようになりそう。 https://t.co/salhirHlf0… https://t.co/YrttCYrpCI"
- MasahikoSawada/phint: Planner hint generator for PostgreSQL
- KaiGai Kohei 🌻さんのツイート: "本日のセミナー資料です:PostgreSQLは最新ハードウェアでどこまでやれるのか?~GPUとNVMEで実現する超高速ログデータ処理基盤~ SSD-to-GPU Direct SQLが列ストレージ(Arrow_Fdw)上で動くようになりました。ベンチマーク結果も併せてどうぞ。 https://t.co/OlSPuYIAuL"
- 20190418_PGStrom_on_ArrowFdw
- Fadisさんのツイート: "PostgreSQL12のベータが公開されたらしい。PostgreSQL12ではJSONに対するJSON pathを使ったクエリが可能になり、他のカラムの値を使って自動的に値が決定されるカラムが作れるようになり、クエリを実行する際のテーブルの漁り方をプラグインで変更できるようになる https://t.co/PCak0C0WtX"
- PostgreSQL: PostgreSQL 12 Beta 1 Released!
- にわか@OS自作さんはTwitterを使っています: 「DBMS自作入門って、 トランザクション管理みたいなのは、諦めて 最低限のSQL(挿入や削除やテーブル作成)コマンドや、データベースのファイルも2列(2属性)で固定してやれば意外とできそうじゃない? 素人なので、甘い考えです。」 / Twitter
- yuyabuさんはTwitterを使っています: 「@89O5H1QpDQCbCkc TPC-CやTPC-Hのベンチが動くところまで作ってみたいですね」 / Twitter
- :tom__bo:さんはTwitterを使っています: 「SQLからrelational algebraの式(?)を導出して、さらにそこからいい感じの可視化をしてほしい」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「昨日同僚と飲んだときに、自分はO/Rマッピングは嫌だし、かといって文字列でSQL書くのも嫌なので、単に型安全になるような、SQLの抽象構文木を書ければいいんだ(そのためのAPIがあれば十分なんだ)という趣旨のこと言ったんだけど、「SQLの抽象構文木」というのがイマイチ伝わらなかった感じ。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「メソッドチェインでクエリを書くこと、だと思われて、それはめんどくさくない?的なことを言われたのだけど、メソッドチェインかどうかは本質的ではなくて、木が欲しいのだという気持ちを伝えたかった(でも、プログラム(SQLも)は木というイメージがそもそも伝えるのに時間が必要な気がする)」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています: 「抽象構文木という用語の選択かどうかの問題というより、プログラムが解釈される前には普通は木になるよね、ってイメージがあるのはそこまで標準的でない、というか。」 / Twitter
- FadisさんはTwitterを使っています: 「PostgreSQL 12がリリースされた。PostgreSQL 12ではJSONB型の値に対してJSON pathを利用したクエリが可能になる他、インデックスの再構築を書き込みをブロックせずに行える REINDEX CONCURRENTLYが追加される https://t.co/ASLdFMfXGc」 / Twitter
- PostgreSQL 12 Released As Newest Update To "World's Most Advanced Open-Source DB" - Phoronix
- FadisさんはTwitterを使っています: 「データベースの操作はROLLBACKする可能性があるので、RDBMSは変更がCOMMITに至らなかった場合に元に戻せる必要がある。PostgreSQLはこれを簡単に実現する為に多くの操作をログの追記で表現する。結果ログが際限なく増えるので、もう戻らない時点のログを捨てるVACUUMで性能と容量を取り戻す必要がある」 / Twitter
- K.Namba/ご注文は910ですか?さんはTwitterを使っています: 「@fadis_ VACUUM してない PostgreSQL は 死ぬ」 / Twitter
- FadisさんはTwitterを使っています 「RDBMSのカラムにJSONを突っ込む事を恥じる必要はありません。何故ならISO/IEC 9075:2016からSQLにはカラムに突っ込まれたJSONをいじる為の関数が追加されていて、カラムに突っ込んだJSONの一部を使った検索などが綺麗に書けないのはお使いのRDBMSがふぁっきん古いのが原因だからです」 / Twitter
- FadisさんはTwitterを使っています 「Micron、SSDや不揮発メモリで高い性能を発揮するKVS、HSEをオープンソースで公開。HSEはファイルシステムではなくSPDKのblobstoreのような機能を提供するLinuxカーネルドライバmpoolを使って、カーネルのページキャッシュを直接読み書きすることでオーバーヘッドを回避する https://t.co/emxbU2ejsC」 / Twitter
- Micron Announces An Open-Source Storage Engine Designed For SSDs, Persistent Memory - Phoronix
- FadisさんはTwitterを使っています 「今の所SSDにしか対応してないっぽいから、SSD向けが強調されてるけど、不揮発メモリデバイスだとページキャッシュをデバイス自体で置き換えられるわけで、これどう考えてもNVDIMMの時代にNVDIMMの性能を活かせるデータベースを作る為の土台だよな」 / Twitter
histric-3
- 画力・博士号さんはTwitterを使っています 「関係代数がわりと堅牢に確立されているのにSQLなどはあんまりカッチリと関係代数に “準拠” してないの(実装の都合なども加味しているのだろうけれども気持ちとしては)なんでやねん感はある」 / Twitter
- 画力・博士号さんはTwitterを使っています 「(まあでも例えばπ計算もそれに準拠している並行計算の言語で実用に供するものはそうそう見ないだろうし,関係代数もそういう “理想気体的な立ち位置” かな)」 / Twitter
- t_yanoさんはTwitterを使っています 「SQLなあ。500行のSQLとかは今や論外であるのはいいとして、俺は多くの人がSQL(というか集合データ)に抱えてる不満って、テーブルをジョインしたら既存のエンティティにマッピングできなくて専用のValueObjectをたくさん作らなくちゃいけないとか、1:Nクエリが発生するとか、」 / Twitter
- t_yanoさんはTwitterを使っています 「そういう部分にあるように見えてて、それってSQLというかRDBと集合データ側の問題ではなくて、集合データをそのままダイレクトに扱うのが難しい(オブジェクト指向?)言語側の問題だったりするんじゃねえの?って疑問は常に持っときたいんよね。」 / Twitter
- t_yanoさんはTwitterを使っています 「結局インピーダンス・ミスマッチが存在するってことなんだけど、ミスマッチがあるからミスマッチの向こう側のRDBとかSQLとか集合データ構造が悪いわけじゃなくて、例えばLEFT JOIN一発で取ってこれるデータをなぜ1:Nクエリにしなくちゃいけないのか、ってとこに疑問を持ちたいんよ。」 / Twitter
- t_yanoさんはTwitterを使っています 「だってリレーショナルデータベース側では、LEFT JOINしてWHERE区で絞ってシンプルに集合命令でスパッとデータ抜けちゃうわけで、スパッとデータ抜けるけどそれをうまく扱えないのは、スパッとデータ抜ける側の問題ではないよなーと。 特にこう解決しろって話じゃなく。」 / Twitter
- t_yanoさんはTwitterを使っています 「めちゃくちゃパワフルな集合データベースを、それを使う側の言語?が集合データをうまく扱えないって構造だと思っていて、そういう自覚を持っておきたいんよ。 1クエリで取ってこれるデータを3回とか4回のクエリに分割しなくちゃいけないのは、RDB側じゃなくて、データを使う側の都合だよなと。」 / Twitter
- t_yanoさんはTwitterを使っています 「だって、RDB側には、1クエリでデータを取ってきてさらにそれを処理できる機能があるんだから。その機能がないのはRDB使ってる言語・環境側なんであって。」 / Twitter
- t_yanoさんはTwitterを使っています 「実際には、その機能がないというより、そのやり方が、言語のパラダイムに合わない(オブジェクト指向っぽくならない)から、誰もやらない、という方が正確だろうか。 ResultSetをグルグル回せばそのまま処理できるもんな。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「へぇ、、、 あとmramのような細粒度アクセス可能な不揮発デバイスが広がると、脱b-tree系も有り得るのかな? (nvdimm-pとか裏にnandがある系は、ブロックアクセスでないと厳しそう?)」 / Twitter
- 中村 実さんはTwitterを使っています 「DB世界にはDBの内部構造に機械学習を使うというアプローチがボチボチものになり始めているように感じる。B-tree型インデックスをアクセス状態からMLを使って最適化するとか並列実行されているプラン間の資源をMLを使って最適化するとか。スキーマ推定とかはもともとMLありの分野だ。」 / Twitter
- YSR@ものべのHE完走!!さんはTwitterを使っています 「@kmizu 一応、あまりにアカン書き方だと警告が出たりはしますが、実行計画とにらめっこしていると、「実行計画の構図をそのままコードに落とし込んで動かねーかな」とは思ったりしますねw」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深い。 ---- fsyncへの2つの間違った期待 1: fsyncが失敗した場合、次のfsyncのタイミングで失敗したdirty pageは再度書き込まれる 実際には…最初のfsyncに失敗したらデータはpage cacheから削除される。…(略)…ext4は、dirty dataをpage cacheにcleanとして残すし、xfsは捨てる。… https://t.co/Smkhs9VzAi"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "fsync成功まで、アプリケーション側はデータを捨てずに fsyncリトライではなく write or memcpyのリトライをしないといけない、と。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "fsyncリトライが成功しても、未反映データが書き込まれていない(可能性のある)OSは、 Linux/MacOS/NetBSD/OpenBSD, 常にfsyncが失敗を返すのはFreeBSD、という感じかな? https://t.co/yrZMYDgOce"
- Fsync Errors - PostgreSQL wiki
- Fadisさんのツイート: "データがストレージに書き込まれる事を保証するためにfsyncやO_SYNC付きでのopen等を行っているソフトウェアに対してLD_PRELOADでそれらの関数をフックして書き込みを同期しない実装に置き換える事で、パフォーマンスと引き換えに書き込みの保証を失うライブラリ libeatmydata https://t.co/KmAOMLHtsk"
- libeatmydata - disable fsync and SAVE!
- チェシャ猫さんはTwitterを使っています 「なるほど、SAT ソルバをバックエンドに使って似たようなものが出来ないかと考えてた時代もあったけど公式からツールが出たのか。 https://t.co/s5LdqWN6hQ」 / Twitter
- DynamoDBのテーブル設計に最適!NoSQL WorkbenchのData modelerで今度こそDynamoDBを使いこなす! | Developers.IO
- 🐶さんはTwitterを使っています 「RDBMS が GraphQL 直接話せたらいいのでは?」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「まあ実際にはそういうドキュメントDBみたいなのは死屍累々なのだが」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「直接は関係ないけどRDBMSの前段にWAFかましたりまともな今時の認証認可をかましたりしていきたいというだけのニーズに対して現在我々の手に入るソリューションって必要以上に牛刀じゃんという問題意識はある。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「素のDBをポーンと外向けで出すのは怖いねっていうのの対策がいきなりじゃあRailsでAPI立ててやっていくみたいな話にまでいきなりでかい話になる必要は本来ならないべきのはずなんだよなあ」 / Twitter
- 成瀬さんはTwitterを使っています 「またSQLQLの話してる…」 / Twitter
histric-4
- KOBA789さんはTwitterを使っています 「マイクロサービス化によってビジネスロジックのトランザクションが単一 DB のトランザクションに閉じなくなってしまうことが増えてて、ナイーブな分散トランザクションを無自覚に書いている場合などがある(本来ならトランザクション境界を跨がないようにサービス分割するのがベターですが……)」 / Twitter
- 成瀬さんはTwitterを使っています 「TDでも定期的に「distributed transactionを実装しようとするな!」っていう仕事が発生しがち」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「TypeORMと比べてどうなんだろう / 1件のコメント https://t.co/y0Qj7Reo5c “最近話題の TS 製 ORM「Prisma 2」でログイン処理を試してみたら超快適だった” https://t.co/LQdBDrHY97」 / Twitter
- 最近話題の TS 製 ORM「Prisma 2」でログイン処理を試してみたら超快適だった
- dowanna @PrAha Inc. CEO兼エンジニアさんはTwitterを使っています 「ええっ!?30万件近いデータの入ったemployeesデータベースがDocker imageとして公開されているのかい!? クエリやインデックスやパフォーマンスチューニングの練習に使える最高の環境がdocker runするだけで手に入るのかい!? すごいねマスオくぅん! https://t.co/Q8jKGs2I3F」 / Twitter
- genschsa/mysql-employees - Docker Hub
- 成瀬さんはTwitterを使っています 「重要なのはIaaS/PaaSよりも、RDBとオブジェクトストレージがサービスとして提供されているかな気はする」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「SQLの隠蔽のレベルは(現実にはやや目をつぶって理想論で言えば)あれでいいと思うけど。 SELECT文みたいな宣言的プログラミングは、プログラミング言語の未来へ向けた方針としては正しいし、隠蔽せずに人間がイチイチ手でやるより、コストベース最適化に任せた方がいいことの方が多いと思う。」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「SQL や OpenGL などを見ていてもわかるように、本質的に複雑なものをプログラマから「隠蔽」しようとしたとき、結果としてエスパー能力が要求されるようになるので幸福度が増すとは限らない、みたいな教訓がある」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「すべての場合にうまくいくわけじゃなくて、実行計画を眺めてあれこれする必要が出ることがあるのが残念というのはその通りだけど、まあ仕方ないんじゃないかな。 宣言的プログラミングによる隠蔽は、処理系が行える自由度も高くて、ad hocな隠蔽に比べるとずっときれいだと思う。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「判る一方で個人的には、メタプログラミングと同様、宣言的プログラミングは抽象度に対する頭の良さを要求されて辛いこと多いなぁ。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「僕もルールベース最適化時代はSQL嫌いだったんだけど、ある程度以上の年齢の情報系の人の中には、その時代のSQLに対する認識のまま止まっている人がいるような気が昔からしてる… コストベース最適化になってからのSQLは、(いろいろ足りない部分はあるにせよ)未来の言語って感じなんだけどなあ。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「今のRDBなら、ANALYZEを実行してデータ分布の統計情報をとっておきさえすれば、RDBのコストベース最適化に任せるだけで、ほぼ最適な実行計画を選んでくれて(データ分布の変化にも追従するので)人間より賢いはず。MySQLはよく知らないけど少なくともOracleやPostgesQLなら(例外がないわけではないけど」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「https://t.co/JWCRXMy3QS 「最適化に任せるべき」は私も同意なんですが、前提として「最適化が十分に賢いこと」という前提があるんですよね。 たとえばC言語なんかは下手にアセンブリ書くよりコンパイラの方が賢いことが多いから素直に書けというのに説得力があるけど……」 / Twitter
- らりお・ザ・.*🈗然㊌㋞㋰㋷㋓さんはTwitterを使っています 「RDB / SQLも「書き方次第で (観測可能な振舞いが同じなのに) パフォーマンスが変わる」みたいな状況ではまだまだ「foo /= 2; よりも foo >>= 1; の方が良い」みたいな時代と変わらないような気がして、もっと最適化が人間より十分賢くなってくれないと人間はエスパーをやめられないのだろうなと」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@lo48576 手続き言語だとコンパイラがかなり無理しないと最適化ができませんが、SQLの場合、アルゴリズムはデータ分布に応じてアルゴリズムをRDB側で勝手に選択することができるので、ふつうの言語の最適化よりもはるかに強力です」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@lo48576 変な実行計画が選ばれることがないわけではないですが、その一番多い理由は、単にRDBの使い方を理解してないだけ(ANALYZEを実行しておらず、RDBにデータ分布を伝えていないとか)なんじゃないでしょうか。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「簡単に早く作るにはOODBの方が向いてると思うけど、 データを長生きさせるっていう意味では、応用と関係なくデータモデルだけでスキーマが決まるRDBの方が向いてると思う。 応用との距離がある分、インピーダンスミスマッチは仕方ない。 事務アプリ系はデータの方が長生きするからRDBの方が好きかな。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kfujieda OODBはプログラミング言語と密着してるべきなので、標準化は茨の道ですね。 仕組み的にはRPCのserializerにインデックス足しただけなわけで、言語ごとに一つは標準的なOODBがあってもいい気はします。」 / Twitter
- 松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「GraphQLは、おっしゃる通りDDDではクエリモデルを扱うものという位置付けにするのが良いでしょう。(続) #Peing #質問箱 https://t.co/ei7KiT6D0k」 / Twitter
- 松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「GraphQLを更新系に使用すると、DB構造を把握してかなり直接的に更新する形になります。そのような方法は、ドメインオブジェクトDB構造を意識させない形で実装して制約を表現する、という実装とは衝突してしまい、相性が悪いため、DDD前提であれば更新系には使用しない方が良いでしょう。」 / Twitter
- 松岡@ログラス/DDD,アジャイルさんはTwitterを使っています 「一方、参照系としてはCQRSが必要になる参照系のパフォーマンス課題を解決する1つの方法としては検討可能です。ただし、少しでも複雑な内容が入ったら更新系と結合テストをして整合性が壊れないように気を使う必要があります。導入に時はテストをどうするかと言う点も考慮しましょう。」 / Twitter
- やまささんはTwitterを使っています 「XAトランザクションは見果てぬ夢だったなあ。Googleが「分散トランザクションはスケールしない。巨大システムは冪等性を持つマイクロサービスを組み合わせて作るんじゃ」みたいなことを言い出してから潮目が変わったと思う。」 / Twitter
- btnrougeさんはTwitterを使っています 「超重要なJTAを忘れていた。もっとも、表に現れるのはJDBC接続プールの設定か、Java EE 7以降の Transactional アノテーションくらいだけれど。」 / Twitter
- btnrougeさんはTwitterを使っています 「J2EE 1.2の主要機能は、Servlet、JSP、EJB、JMS、JDBC、JNDI、それからJavaMail。これらがJ2EE 1.2として標準化された背景にはしかるべき理由 = "Why" がある。APIの改善や代替技術の登場により "How" は変わったけれども、こいつらが当初から持っている "Why" は変わっていない。」 / Twitter
- やまささんはTwitterを使っています 「ProtobufやStubby(gRPC)も基本的にはCORBAの再発明でしかないのだが、トランザクションに関わる機能がごっそり削ぎ落とされていることに気付いてなるほどと感心した思い出」 / Twitter
histric-5
- カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「SQLたくさん勉強して得られた結果、宣言型言語が嫌いになりました。実行順序を考えなくていいのがメリットのように言う人いるけど、結局は実行エンジン(planner)のお気持ち当てゲームしないといけなくて、それなら最初から実行順序を明示できたほうが結局は簡単。宣言型言語のパフォチューは大変不毛。」 / Twitter
- カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「> お気持ち当てゲーム SQLプランナー「わたしの考えてること、分かる?」」 / Twitter
- カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「アルゴリズムとデータ構造を勉強して、最適な順序を記述 v.s 実行エンジンさまのお気持ちを推測して、最適なSQLを記述 (実行計画の変動によりきまぐれにお気持ちが変わるオプションつき)」 / Twitter
- カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「実行計画を固定させる機能とか見ると、「宣言型とは?」という疑問が湧くことがある。必要性はすごく分かるんだけど、本末転倒な感じを受ける。」 / Twitter
- カウプラン機関極東支部@アルビオン王国民さんはTwitterを使っています 「宣言型はデバッグも面倒なんだよな。SQL、正規表現、LaTeX、ワークフロー、・・・。宣言型は適用範囲を見極めて使ってほしい。最近の宣言型偏重ブームは懐疑的に見てしまう。」 / Twitter
- ヨーショウ@外資系ITエンジニアさんはTwitterを使っています 「テーブル設計本で100%出てくる正規化の例。実はアレは例であって実際にはやってはいけない設計。 取引明細テーブル 商品テーブル で取引明細テーブルには商品名カラムは持たず正規化して商品テーブルに持つと。これが現実の設計だとダメなケースが多いんです。 #駆け出しエンジニアと繋がりたい」 / Twitter
- ヨーショウ@外資系ITエンジニアさんはTwitterを使っています 「データのライフサイクル 過去データの取り扱い システムの利用者 業務面 法令面 この辺りを考慮して設計を考えると、正規化してはダメな理由がみえてくる。勿論、業界や業務によって正解はことなる。だから一般論だけ学んでもダメ。 #駆け出しエンジニアと繋がりたい」 / Twitter
- ヨーショウ@外資系ITエンジニアさんはTwitterを使っています 「マスタテーブル側の時系列の持たせ方も関係してくるし、Webシステムならパフォーマンスも考慮しなくてはダメだし。そんな事を諸々考えてテーブル設計できる人になれば、価値は高いよね。本当に。 #駆け出しエンジニアと繋がりたい」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「RDBを座学すると大抵ハッシュテーブルの話も出てくるけど実際にRDBでハッシュテーブル使ってることあるんだろうか」 / Twitter
- KOBA789さんはTwitterを使っています 「@__pandaman64__ JOIN のときの一時テーブルでは使ったりします」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「@KOBA789 データ構造どっちを使うかはDBMSがよしなに決めてくれる感じですか」 / Twitter
- KOBA789さんはTwitterを使っています 「@__pandaman64__ 実行計画によって使うデータ構造が決まるのでそうですね」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「@KOBA789 かしこい」 / Twitter
- KOBA789さんはTwitterを使っています 「@__pandaman64__ もちろん実装によって様々ではありますが」 / Twitter
- Mine02C4@半チンさんはTwitterを使っています 「@__pandaman64__ オンメモリだとハッシュインデックスになったりする(MySQLとか)」 / Twitter
- Masahiko SawadaさんはTwitterを使っています 「UPDATEのサブプランは変更していない列を含んだタプルを出力として返す必要があると。しかも、継承テーブルの場合だと、子テーブルごとに異なる列を持てる。オーバーヘッド大きそう。 #pgunconf」 / Twitter
- Masahiko SawadaさんはTwitterを使っています 「PG14だとUPDATEの下に子テーブル毎にサブプランを作るのではなくて、一つのサブプラン(Appendノードの下に子テーブルのスキャンがぶらさがっている)を作るだけで良くなったのか。子テーブルのスキャンの出力としてその子テーブルのOIDを含めると。 #pgunconf」 / Twitter
- Masahiko SawadaさんはTwitterを使っています 「Txのcommit時はcommit WALをfsyncしてclog内の対応するbitの"commit済み"に更新するのだけど、その間にcheckpointが入り込むとredoポイントがcommit recordの後になりclogはbitが更新されるる前にディスクに書きまれる可能性があるからTxはcheckpintが間に入り込まないようにしているのか。なるほど!」 / Twitter
- Masahiko SawadaさんはTwitterを使っています 「これに似た問題はcommit WALとclogの関係だけじゃなくて、PostgreSQLの実装だとprepare WALと2相コミットのファイルの関係でも該当する。」 / Twitter
- Masahiko SawadaさんはTwitterを使っています 「MySQL(innodb)にはclogみたいなものは(多分)ないからこれを心配する必要はないけど他の追記型のDBはどうやって対策しているんだろう。」 / Twitter
- パン粉さんはTwitterを使っています 「マイクロサービスをやるってことは、つまりトランザクションをウェブの世界で再現するみたいな話に見えてきた。なので、僕はデータベースについてもうちっと見識を深めないといけない気がしてきた。どこから見ればいいんだ、「詳説データベース」から始めても分かるのかな...。分かんなそう...。」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「アプリケーション側でトランザクションを再実装しないといけないような分割はやめた方がいい派。どうしても分割したいなら、整合性は諦めるか、せいぜい冪等リトライで頑張るぐらいにしたい。」 / Twitter
- Ü+1F980🦀さんはTwitterを使っています 「SCというHPC分野の最高峰の国際会議に単著論文が採録されました!! 著者版をarXivで公開してます https://t.co/5VvA6an5ej SCはスパコンTop500やゴードンベル賞の発表等も行われる由緒ある会議で、スパコンなど巨大スケール上の計算に関する最前線の応用や大きな理論的成果を挙げた論文が発表されます。」 / Twitter
- [2108.02692] Accelerating XOR-based Erasure Coding using Program Optimization Techniques
- Ü+1F980🦀さんはTwitterを使っています 「論文では、大規模ストレージの実装や実現上重要な「データの冗長性担保」問題につき、Erasure codingと呼ばれる代表的手法を、有限体上の行列積による従来実装を離れ、「プログラムの最適化問題」として捉え直すことで、プログラム理論の既存成果を徹底的に駆使し、大幅に最適化した点が評価されました」 / Twitter
- Masahiko SawadaさんはTwitterを使っています 「"特定テーブルに1件のレコードを最初にINSERTした場合、アクセスが発生するファイルとその理由をすべて教えてください"、PostgreSQLでも考えてみたけど自分がどこまで把握してるかが分かって結構面白い。色んな人の回答が聞きたくなる」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「ああー、ファイルシステムとDB両方に保存しているデータの削除真面目にやるとめんどくせー!」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「Percona の QA チームが作ってる pquery がめちゃ便利(そう)だった。 自分が storage engine を一から書くことがあったら絶対に使うと思う。https://t.co/hhKjEtjNDD」 / Twitter
- The Future of MySQL Quality Assurance: Introducing pquery
- Nayuta YanagisawaさんはTwitterを使っています 「なぜ「便利(そう)」と書いたかというと、同僚のテストエンジニアが実行してくれて、自分は眺めてただけだからです。すごい勢いでコードの欠陥が明らかにされていってすごかった。」 / Twitter
- Nayuta YanagisawaさんはTwitterを使っています 「あまり認識していなかったが、MariaDB/MySQL 界の有名人が身近にいてすごい(小並感)。」 / Twitter
- κeenさんはTwitterを使っています 「ジョークかと思ったら真面目な記事だった…。主にSIMD(CPUによって命令があったりなかったりする)との付き合い方について。 Using SIMD acceleration in rust to create the world’s fastest tac | The NeoSmart Files https://t.co/WhxEVWmzk5」 / Twitter
- Using SIMD acceleration in rust to create the world’s fastest tac | The NeoSmart Files
- κeenさんはTwitterを使っています 「tacはファイルを逆順に表示するコマンドで、シェル芸でしか使わんだろって思ってたらログを最新順にみたいなどの需要がある。これも数GBクラスのログを逆順に表示したいというモチベーションからはじまってる。確かに言われてみればネタ扱いしたのも動作が遅くて使いづらいからだ。」 / Twitter
- shallow1729さんはTwitterを使っています 「`select * from a where b_id in (値が数万ある)`みたいなやつがフルスキャンになるやつ、MySQL的にはb_idがuniqとかじゃなかったらいくつあるか分からないよ><ってなって悲観的になっちゃう感じなのかな」 / Twitter
- shallow1729さんはTwitterを使っています 「b_idのインデックスはあるけど同じ値の重複は認めてる、みたいなケースです https://t.co/bJyYth7mcR > Otherwise, any index on col_name is nonunique and the optimizer can estimate the row count for each range using dives into the index or index statistics.」 / Twitter
- MySQL :: MySQL 5.7 Reference Manual :: 8.2.1.2 Range Optimization
- yoku0825さんはTwitterを使っています 「@shallow1729 INの要素が増えるとインデックスダイブやめて、1つの値に対する見積もりを「概算テーブル件数 / 概算カーディナリティー」でだしちゃうので、あっさりオプティマイザコストがテーブルスキャンを上回ることが多いです」 / Twitter
- shallow1729さんはTwitterを使っています 「@yoku0825 インデックスダイブするとコスト見積もり自体が重くなるから概算を使うって感じなんですね。ありがとうございます!!」 / Twitter
- hatoo💛さんはTwitterを使っています 「SQLアンチパターンでRDBMSでツリーを表現する方法があったからNeo4jについて少し調べてみたけど、index-free adjacencyってやつ諸刃の刃だな… https://t.co/7FVFReHOQn」 / Twitter
- Neo4jについてちょちょいと調べたまとめ :: Igreque -> Info
- κeenさんはTwitterを使っています 「現状のRustのWAFはフルスタックでないのでDB操作は手で書く必要があるんだけど、これはRustでデータ型を書いたらCRUD操作とそれへのルーティングを生成する試み An experimental Diesel-based CRUD for Rocket - Blog - Tweede golf https://t.co/nzj0naPJ0X」 / Twitter
- An experimental Diesel-based CRUD for Rocket - Blog - Tweede golf
- κeenさんはTwitterを使っています 「非同期かつコードでSQLを組み立てられるORMのSeaORMのアナウンス。dieselと違ってsimple系の設計かな? Introducing SeaORM | SeaORM - 🐚 An async & dynamic ORM for Rust https://t.co/RqCE8vkRF5」 / Twitter
- Introducing SeaORM | SeaORM - 🐚 An async & dynamic ORM for Rust
- κeenさんはTwitterを使っています 「simpleとeasyの対比ってどのくらいのひとに伝わるんだろう。simpleは構造が単純でわかりやすい。easyは手軽に使える(記述量が少なくなる)。easyは背後のモデルが複雑になりがちで、却って難しいこともある。」 / Twitter
- CAP定理 - Google 検索
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「CAP定理って証明されたと言われているけど、あれの証明を読んだ人によると、怪しいそうだ。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「肯定的な方向で解決してくれると世界が変わるプログラミング上の問題と言うと、CAP定理を否定するDB実装とか、P=NPを証明できるアルゴリズムの発見とか」 / Twitter
- やまささんはTwitterを使っています 「XAトランザクションは見果てぬ夢だったなあ。Googleが「分散トランザクションはスケールしない。巨大システムは冪等性を持つマイクロサービスを組み合わせて作るんじゃ」みたいなことを言い出してから潮目が変わったと思う。」 / Twitter
- やまささんはTwitterを使っています 「ProtobufやStubby(gRPC)も基本的にはCORBAの再発明でしかないのだが、トランザクションに関わる機能がごっそり削ぎ落とされていることに気付いてなるほどと感心した思い出」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「昔はER図わかりやすいと思ってたけど、慣れるとキーを見れば結合がわかる(し、それがわかるように項目名決める)ので、最近は作らないこと多いなぁ。必要だとしても外部キー一覧っぽいものがあればそれで十分な気がする。」 / Twitter
- チェシャ猫さんはTwitterを使っています 「DB スキーマのバージョン管理どうするか問題。 #kubernetes_casualtalk」 / Twitter
JSON
extensible data notation
- edn(extensible data notation)を使う - Qiita
- edn-format/edn: Extensible Data Notation
- clojure.edn - Clojure v1.10.2 API documentation
- GP Tech Memo: Clojureのプリンタ/リーダとedn
- read-string - clojure.edn | ClojureDocs - Community-Powered Clojure Documentation and Examples
- read - clojure.edn | ClojureDocs - Community-Powered Clojure Documentation and Examples
- Learn edn in Y Minutes
- EDNのパーズと構築 (Gauche ユーザリファレンス)
- いまどきのClojureのはじめかた - 紙箱
- Clojure - Deps and CLI Guide
JSON
- Standard ECMA-404
- Standard ECMA-404-archive
- Final draft ECMA-404 2nd edition
- RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format
- JSON
- JSON仕様(ECMA-404) を眺めてみる | Money Forward Engineers' Blog
- JSON、ECMA標準となる。仕様文書「ECMA-404」が公開 - Publickey
- 事実上最後のJSON仕様「RFC 8259」と「ECMA-404 2nd Editon」公開。UTF-8エンコード必須に - Publickey
- JSON: The JavaScript subset that isn't — Timeless
- Subsume JSON
- gibson042/ecma262-proposal-json-superset: Proposal to make all JSON text valid ECMA-262
- 非エンジニアに贈る「具体例でさらっと学ぶJSON」 | Developers.IO
- JSONの歴史 - Speaker Deck
- 個人的なシリアライザの特徴表(作成中)
- OSSタダ乗りおじさんさんはTwitterを使っています 「JSに限った話をすると JavaScript においてはJSONで通信する価値が高すぎて class で宣言されたものはシリアライザ・デシリアライザが必要になってその実装にバグが潜むことが多く、冷静に考えるとそもそもいらないことが多いので思考停止でまず class で宣言するのをやめろと言ってる」 / Twitter
- 厳格なJSONパーザーの作り方 - RoundWide Systems
- seriot.ch - Parsing JSON is a Minefield 💣
- nst/JSONTestSuite: A comprehensive test suite for RFC 8259 compliant JSON parsers
JSON Merge Patch
- shinichiro hamajiさんのツイート: "設定にJSONを使いはじめた https://t.co/QFepaqFIJB 今のところのモチベーションはバックエンドの管理などにしようかと。YAML嫌いTOMLそれほど使われてない、ということでmenohでも使われてるJSONになった。JSON merge patch というのが RFC にもなってて素敵だと気付いた https://t.co/QvHZB2nErt"
- Declare capability of backends by JSON configs by shinh · Pull Request #281 · pfnet-research/chainer-compiler
- RFC 7396 - JSON Merge Patch
- ゆきさんはTwitterを使っています: 「Range Patch https://t.co/tuwPJ0bw5a JSON構造に対して直接パッチリクエスト送れる感じ? #yuki_id」 / Twitter
- draft-toomim-httpbis-range-patch-00 - Range Patch
- 設定ファイル(JSON)のdiffをjson patchでやってみようという試み - podhmo's diary
- RFC 7386: JSON Merge Patch - 一汁三菜
- JSONマージ・パッチによるJSONドキュメントの更新
- RFC 7386 - JSON Merge Patch 日本語訳
- JSON Merge Patch
JSON Lines
- jqコマンドでJSONをJSONL(JSON Lines)に変換する - rochefort's blog
- JBoss EAP 7でJSON Lines形式のログをFluentdに渡す – ナッツウェル 技術研究室
- Centralized Logging for WildFly with the ELK Stack · WildFly
- JSON(Array形式でフラットな)をMarkdownのテーブルに変換
- JSON Lines
- JSON Lines Examples
- JSON Lines
- raphaelstolt/json-lines: Library for the JSON Lines text file format.
- JSON streaming - Wikipedia
- json-lines 0.3.1 : Python Package Index
- jsonlines — jsonlines documentation
- json-lines
- JSON Lines | Hacker News
- Sho ShimauchiさんはTwitterを使っています 「CLIでのjsonのパースにjqを使うのは定番だが、 @aodag が python -m json.tool でもパースできるということを教えてくれた。jq入れなくていいので状況によってはかなり便利だな。しかも3.8からはjsonlに対応している https://t.co/HSuoDeVkN9」 / Twitter
- json --- JSON エンコーダおよびデコーダ — Python 3.8.5 ドキュメント
- jsonl - Google 検索
- qwerty2501さんはTwitterを使っています 「正直json linesもやや助長ではあるので、ヘッダーに型情報をもったcsvみたいなのが欲しいかも知れない」 / Twitter
JSON-LD
- Kazuho OkuさんはTwitterを使っています 「手っ取り早く json-ld を json に変換するのってどうやればいいのかしら」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「jq のフィルタ一発みたいな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「とりあえず perl スクリプト書いたけど、絶対既存の超絶簡単手法があるはず... #! /usr/bin/perl use strict; use warnings; my $prefix = "[\n "; while (my $line = <STDIN>) { chomp $line; print "$prefix$line"; $prefix = ",\n "; } print "\n]\n";」 / Twitter
JSON-RPC
- JSON-RPC
- JSON-RPC 2.0 Specification
- RFC 7807 - Problem Details for HTTP APIs
- JSON-RPC - Wikipedia
- JSON-RPC - Wikipedia
- JSON-RPCについて
- JSON-RPC over HTTPなサーバを作る - Qiita
- JSON-RPCって何? - Qiita
- JSON-RPCというWebAPI設計に役立ち、、そうなそうでもないかもな規格 - Qiita
- Go で始める JSON-RPC 入門 – osamingo – Medium
- REST APIに消耗したらJSON RPCを試そう - タオルケット体操
- 意外と便利なJSON RPC - TechTalkManiacs
- Widebullet〜API Gateway with JSON-RPC〜 - Mercari Engineering Blog
- Google Developers Japan: Google API における JSON-RPC および Global HTTP Batch エンドポイントのサポート終了について
- 渋川よしきさんのツイート: "TypeScript並みに値も使った型チェックが便利になったら、SwaggerとかRESTとか頑張るよりも、JSON-RPCの方がよくね?という気がしている。type findMethod = { method="findByStatus": params: {id: number} }とか書いておけばいいじゃん(クライアントがJS系の場合に限る)。"
JWT
- トークンベースの認証とは? 仕様とJWTのメリット、デメリット| Okta
- 【JWT】 入門 - Qiita
- JWT認証と流れのやわらかい解説 - ROXX開発者ブログ
- JSON Webトークン(JWT)を使用したAPIデプロイメントへの認証および認可の追加
- JWT認証 - Box Developer Documentation
- セキュリティ視点からの JWT 入門 - blog of morioka12
- JSON Web Token(JWT)の紹介とYahoo! JAPANにおけるJWTの活用 - Yahoo! JAPAN Tech Blog
- マイクロサービスの認証・認可とJWT / Authentication and Authorization in Microservices and JWT - Speaker Deck
- OpenID Connect の JSON Web Token 認証の構成 - IBM Documentation
- JWT 認証 ‒ Qlik NPrinting
jq
- jq
- jq コマンドを使う日常のご紹介 - Qiita
- 【マメ知識】アプリが生成した、可読性の悪いjsonファイルの可読性をよくする方法 - Qiita
- jq コマンドが強力すぎてヤバい件 | CUBE SUGAR STORAGE
- jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 | Developers.IO
- 良い感じに詰めて整形してくれる JSON pretty-printer「jpp」を作りました - たにしきんぐダム
- JSONを扱いやすくするコマンド(jq, gron)のメモ - 脱力系日記
C
yaji
- yajl
- lloyd/yajl: A fast streaming JSON parsing library in C.
- Yajlって速いの? - Qiita
yyjson
- ドッグさんはTwitterを使っています 「新たな fastest をうたう JSON ライブラリが…(実装は C) | 'ibireme/yyjson: The fastest JSON library in C' https://t.co/efOoFOxMk6」 / Twitter
- ibireme/yyjson: The fastest JSON library in C
- ドッグさんはTwitterを使っています 「浮動小数点数のパースは精度と速度のトレードオフがあるからなかなか大変そうだ…」 / Twitter
- ドッグさんはTwitterを使っています 「https://t.co/wrcOZC1N3L デコード側の実装ざっと眺めた感じ別にそこまで変わった実装ではないな(見落としてるだけかもしれないけど).浮動小数点数パース周りの最適化頑張ってるっぽいのと,minify された JSON とインデントされた JSON で実装分けてるのはなるほど」 / Twitter
- yyjson/yyjson.c at master · ibireme/yyjson
- ドッグさんはTwitterを使っています 「やはり最適化には table lookup ベースのアルゴリズムが大事なんだなぁ」 / Twitter
- Big Sky :: C言語から分かりやすいAPIで扱える JSON パーサ「cJSON」
- DaveGamble/cJSON: Ultralightweight JSON parser in ANSI C
- Big Sky :: C言語から使えるJSONパーサ、jansson がとても直感的で良い
- Jansson — C library for working with JSON data
- akheron/jansson: C library for encoding, decoding and manipulating JSON data
- Big Sky :: C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。
- parson
- kgabis/parson: Lightweight JSON library written in C.
- Big Sky :: C言語から使えるJSONパーサ、JSMNを試してみた。
- The most simple JSON parser in C for small systems
- zserge/jsmn: Jsmn is a world fastest JSON parser/tokenizer. This is the official repo replacing the old one at Bitbucket
- jq
- stedolan/jq: Command-line JSON processor
blog
- 設定情報をエレガントに管理する方法(解決なし) - まめめも
- JSON Schema をクックパッドマートの商品登録画面に導入した話 - クックパッド開発者ブログ
- JSON先進署名フォーマット「JAdES」解説 【第1回】JAdESの概要と特徴 | GMOグローバルサインブログ
- JSON::Types ってのを書いた - unknownplace.org
- 論文メモ: Mison: A Fast JSON Parser for Data Analytics | κeenのHappy Hacκing Blog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「「JSONだっていいじゃないか、YAMLだもの」の方が趣旨に合っている気がする(本文でも触れているとおりJSONはYAMLのサブセットだし) / 1件のコメント https://t.co/FySezu8Nt1 “YAMLだっていいじゃないか、JSONだもの | IIJ Engineers Blog” https://t.co/Hbit1aiLb2」 / Twitter
- YAMLだっていいじゃないか、JSONだもの | IIJ Engineers Blog
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「いい機会だしpackage.yamlからcabalに戻そうかなぁ。もう新しいcabalならだいたいpackage.yamlの機能はカバーしてるわけだし...」 / Twitter
Zenn
- 設定ファイル言語 cumin を自作している
- JSONをいい感じに見るCLIを作った
Qiita
- null だけの JSON は合法か? - Qiita
- package.json は .yaml で準備して json に直すワンライナーでエクスポートする - Qiita
- RFC 準拠的な JSON 形式について - Qiita
- JSON にもコメントを書きたい - Qiita
- microsoft/node-jsonc-parser: Scanner and parser for JSON with comments.
- JSON Schema や JSON から Go の struct を生成する - Qiita
- 図解 JWS/JWE/JWT/IDトークン/アクセストークンの包含関係 - Qiita
Twitter
間違い
- 7594591200220899443さんはTwitterを使っています 「1.797693e+308を受け付けるのはRFCでMUSTだがゴミみたいな拡張文法を入れるのはMAYなのであって、作者のパーザが完全に誤っていることと他の実装が拡張文法を持っていることを同列に語ろうとするこの記事には賛同しかねる https://t.co/PP4f6meRl5」 / Twitter
- JSONパーサにファジングしたら収拾がつかなくなりました - WAF Tech Blog | クラウド型 WAFサービス Scutum 【スキュータム】
- 7594591200220899443さんはTwitterを使っています 「ここがfuzzの限界なのでありfuzzerはRFCを読んだりできないからある状態が「違ってる」までしかわからず、正しいか間違っているかを判定できない。その判定を人間が間違えば無価値になる。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「世のJSON実装に何も問題がないとは申しませんがこの作者の実装にはそれらとは一線を画す重大な問題(RFC違反)があった。そこを判定できなかったところまで含めて、この作者の至らなさだと思う。」 / Twitter
順序
- Kazuho OkuさんはTwitterを使っています 「オブジェクト指向なのかリレーショナルなのかの違いであって、基本的にはキメの問題だし、どっちが便利かはユースケースによるよなぁ」 / Twitter
- TetsuさんはTwitterを使っています 「JSON詳しい方にお聞きしたいのですが、Aみたいなデータを返すREST APIの流派があるんでしょうか?? サーバサイドでもフロントエンドでも、なんかAPI呼んでAが返ってきたら使いづらくて仕方ない気がするのですが… ※私はBにすべきだと思うが「Aがモダンでスタンダード」的な主張とぶつかっている https://t.co/O9NGvmXyRu」 / Twitter
- BasukeさんはTwitterを使っています 「@kazuho Aにidを入れない理由がわからないかな。gzipしちゃえばほぼコストゼロだしJSONはマップも順番は維持されるわけだから両者ハッピー。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@basuke 主キーが複合キーである場合、JSON Objectのキーにはできませんから、RDBに寄せるなら一貫性の観点から配列を使い方が良いと思います」 / Twitter
- BasukeさんはTwitterを使っています 「@kazuho 僕も自分の立場なら迷わず配列」 / Twitter
- Tatsuhiko MiyagawaさんはTwitterを使っています 「@basuke @kazuho 順序に意味があるなら後者(配列)ですが、ないなら前者ですかね。キーのユニーク性が担保されるし、順序によってデータのハッシュ値が変わることがない(キャッシュフレンドリー)。ケースバイケースではありますが」 / Twitter
- Jun MukaiさんはTwitterを使っています 「@basuke @kazuho JSONのオブジェクトは仕様上unorderedなので、順序に意味がある場合なら前者はありえないと思います」 / Twitter
- BasukeさんはTwitterを使っています 「@jmuk @kazuho まあ、そうなんだけど、事実上スクリプト言語はいまみんな辞書型の順番保持するし、もめるくらいならそっちでいけと。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: "別の言い方をすると、RFC 4627のJSONは、後続の文字列が何であろうと正しく終端判定できたんだけど、RFC 7159ではそういうことができなくなり、JSONを埋め込む側に別途、終端判定に必要な情報をもたせることが必須になった https://t.co/WZdyoNvlBD"
- Kazuho OkuさんはTwitterを使っています: "RFC 7159 において picojson の API を維持する件については、 input iterator をインクリメントするタイミングを遅延させることでいけそうなイキフン https://t.co/A8exerdIs5 https://t.co/zRpMaxV26R"
- Kazuho Okuさんのツイート: "2**53内ならJSONで数値として表現できるっていうけど、デコーダによって異なる値として解釈されるような表現は可能なの、ちょっと怖いなと思った https://t.co/G7q03sCkc4"
- Kazuho Okuさんのツイート: "[0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100e100] つーJSONパースするとrubyだけ[0]になる(他は100)"
- Kazuho Okuさんのツイート: "JSONの話というのは、Ruby固有の問題というよりは、2**53以内の整数ならJSONで相互運用性を保てるというのが実は幻想で解釈の違いがあるんじゃないかという話です https://t.co/9ekr1VoXrb"
- watsonさんのツイート: "JSON の定義とか、確かに https://t.co/x7Q0pSZkBj が便利そうだね( ˘ω˘) #tkrk11"
- Jxckさんのツイート: "一方頻出 API である JSON.stringify/parse がアレだったのはアレだけど。"
- Hiroaki Nakamuraさんのツイート: "DropboxはAPI v2を作るときにRESTは止めてJSONを入出力とするシンプルな方式に切り替えたそうです。 / "Scaling and securing the Dropbox API" https://t.co/Ne3QXJYqgI"
- ドッグさんのツイート: "JSON を grep しやすい形式に変換するツール面白い.grep した後に元の JSON の出力に戻す(--ungron)こともできるし,そのまま JavaScript としても扱えるらしい | 'tomnomnom/gron: Make JSON greppable' https://t.co/3MJPqtoQz5"
- tomnomnom/gron: Make JSON greppable!
- Fadisさんのツイート: "従来の有限状態機械を使ったJSONパーサは分岐命令が頻繁に実行され、CPUの分岐予測ミスによるペナルティが無視できない問題になるため全く新しいJSONパーサを考えた、とか言い出す論文を目の当たりにしてJSONスゲェってなってる"
- Mison: A Fast JSON Parser for Data Analytics - Microsoft Research
- はやぶささんはTwitterを使っています 「むしろGo の struct から JSON Schema 生成するやつとかあり、JSON Schema を IDL として使うの自体が向いてないって感じだなぁ。コメントとかもかけないし。」 / Twitter
- Yuki Yugui SonodaさんはTwitterを使っています 「21世紀になってもconfig language設計をナメてかかって、場当たり的にvariable substとか正規表現マッチを足していって一貫性がなくなったりするのを見るとすごく苛つく。 yamlに適当に評価ルールを上乗せしてくのは完全にアンチパターンだよ」 / Twitter
- Yuki Yugui SonodaさんはTwitterを使っています 「plain json, plain yaml以外は受け付けないと割り切って拡張性はjsonnetみたいのに委ねるなり、starlarkを使うなり、それかチューリング完全な言語の上にDSLを定義するなりしたいものだ」 / Twitter
- Yuki Yugui SonodaさんはTwitterを使っています 「単純な話、言語設計は難しくて、他の複雑なシステムの開発の片手間にやれるものじゃないんだろう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「JSONに邪魔なもの、カンマ、、、」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「同感。 この二つが原因で、設定ファイルに採用しづらいのだよなぁ、、、」 / Twitter
- Dan KogaiさんはTwitterを使っています 「// そしてコメント(💩が)」 / Twitter
- FadisさんはTwitterを使っています: 「RFC4180ではCSVはMIME typeのパラメータで文字コードが指定された場合に限りその文字コードの文字を使用でき、ない場合はASCIIコードを使うことになっているので、sjisだろうとeucjpだろうとutf8だろうとCSVに0x7Fより上の文字を突っ込んだCSVを単独で交換するのはオススメできない」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「CSVの問題は途中から解析ができないので分散パースができないこと。その点で NDJSON の方が優れている。」 / Twitter
- Tikhon JelvisさんはTwitterを使っています 「If we moved .cabal files from a custom syntax to YAML, we could get validation and auto-completion "for free" by writing a JSON schema. Here's an example I threw together with auto-complete for SPDX license tags: More details on this GitHub issue: https://t.co/raXWFjJg1W https://t.co/cPH3OtNhvI」 / Twitter
- JavaScript Object Notation - Wikipedia
- JSON - Wikipedia
- ASCII.jp:Windows 10でJSONを扱う (1/2)
- JSON, YAML, ini, TOML ざっくり比較
- JSON Schema | The home of JSON Schema
- 干潟の生物さんはTwitterを使っています 「CSVは曖昧だしJSONは数値が浮動小数点数だしYAMLはインデント辛いから時代はS式です。S式S式S式」 / Twitter
- yasuo_ozu@sudoersグループ所属さんはTwitterを使っています 「JSON Scheme ではちゃんとinteger/floatは分けられてるんですよ。 https://t.co/kBDlKKEYBf」 / Twitter
- Type-specific keywords — Understanding JSON Schema 7.0 documentation
- Tsukasa #01さんはTwitterを使っています 「雑に JSON、より少し効率と処理の正確さを求める人のために CBOR をことあるごとに推していく所存。MessagePack 派の人には申し訳ないけど。」 / Twitter
- Tsukasa #01 (fully vaccinated)さんはTwitterを使っています 「JSON の型の限界に疲れた?CBOR をどうぞ (へんな目 ―― いや、真面目な話、CBOR は良いんだけど、テキストじゃないので辛いところはありそう)」 / Twitter
- IPSJ-TPRO0901002.pdf
diff
icdiff
- Susumu MiwaさんはTwitterを使っています 「diff を side-by-sideで表示してくれる。GNU diff の --suppress-common-line -y --color よりは見やすい / “icdiff: side-by-side highlighted command line diffs” https://t.co/ALkpM2ABtt」 / Twitter
- icdiff: side-by-side highlighted command line diffs
- jeffkaufman/icdiff: improved colored diff
Difftastic
- ドッグさんはTwitterを使っています 「新しい diff ツール difftastic.一般的な diff と違い,構文をパースして構文木ベースで diff を取るっぽい(スクショの reverse の部分見ると分かりやすい) | 'Wilfred/difftastic' https://t.co/5BAmzN98k6」 / Twitter
- Wilfred/difftastic: a syntax-aware diff
- ドッグさんはTwitterを使っています 「https://t.co/oNc7XHuczA うーんちょっとこの定義では厳しそうな雰囲気あるな」 / Twitter
- difftastic/syntax.toml at master · Wilfred/difftastic
- overloaded operatorさんはTwitterを使っています 「@Linda_pp これどうやって?木のdiffをするのはMAX SNP-Hardではなくて?」 / Twitter
- ドッグさんはTwitterを使っています 「@gnaggnoyil README に How it works が追加されてますね.ダイクストラ法使ってると書いてありますが,詳細はよく知らないです」 / Twitter
- uint256_tさんはTwitterを使っています 「引数与えなかったらクラッシュした... 日本語使ったらクラッシュした... (あとでPR送ろうかな)」 / Twitter
- diff to html (diff2html) program - Stack Overflow
- diffの動作原理を知る~どのようにして差分を導き出すのか|gihyo.jp … 技術評論社
- 文書比較(diff)アルゴリズム
- diff - Wikipedia
- www.ioplex.com/~miallen/libmba/dl/src/diff.c
- diff-pdf - PDFファイルの差分を表示 MOONGIFT
- objdumpのdiffをいい感じに取る方法のメモ - ももいろテクノロジー
- Linux基本コマンドTips(102):diffコマンド(基本編)――テキストファイルの差分を出力する - @IT
- Linux基本コマンドTips(103):diffコマンド(基本編その2)――テキストファイルの差分をcontext形式などで出力する - @IT
- Linux基本コマンドTips(104):diffコマンド(応用編)――テキストファイルの差分を出力する - @IT
- Linux基本コマンドTips(105):diffコマンド(応用編その2)――テキストファイルの差分を出力する - @IT
- Linux基本コマンドTips(107):patchコマンド――テキストファイルに差分を適用する(基本編) - @IT
- Linux基本コマンドTips(108):patchコマンド――テキストファイルに差分を適用する(応用編) - @IT
- LinuxコマンドTips(109):【patch】コマンド――テキストファイルに差分を適用する(応用編その2) - @IT
- 第97回 GNU diffからBSD diffへ切り替え:BSD界隈四方山話|gihyo.jp … 技術評論社
- CUIで見やすい git コミットグラフ: git-foresta 作った - Qiita
- Tree Edit Distanceと自然言語処理への応用 | Preferred Research
- JavaScriptでテキストの差分を見るライブラリ - Qiita
- linuxのdiffコマンドでファイルごとdiffを取るときに空のファイルを無視する方法 - 誰にも見えないブログ
- コーディングスタイルと文章の認識 - in neuro
- ドッグさんはTwitterを使っています 「"abc, abc" から "abc, " を削除した時,diff では "bc, a" を削除したと見なされるのは diff のアルゴリズム上仕方ないのかな多分」 / Twitter
- HashiCorp Terraformに簡潔な差分フォーマッターと機密データの難読化が加わる
- Terraform 0.14 Adds a New Concise Diff Format to Terraform Plans
- Comlinkを使って手軽にWorkerを扱う | フロントエンドBlog | ミツエーリンクス
ビルドシステム
トポロジカルソート
強連結成分
- 強連結成分分解の意味とアルゴリズム | 高校数学の美しい物語
- 連結グラフ - Wikipedia
- 強連結成分分解 | グラフ | Aizu Online Judge
- 目指せグラフマスター
- Microsoft PowerPoint - ad11-12.pptx
- Microsoft PowerPoint - 6.6-6.7配布
- ALG2012-B.ppt
- グラフとネットワーク 第 10回 連結性:モデル化
- 強連結成分分解 (Tarjan) | libalgo
- AWK 本記載の循環検出付き改良版 Tarjan のトポロジカルソート - Tociyuki::Diary
- Tarjan のトポロジカルソート - Tociyuki::Diary
- Kahn 系統のトポロジカルソート - Tociyuki::Diary
- トポロジカルソート - Wikipedia
- ネットワーク・トポロジー - Wikipedia
- tsort - Wikipedia
- 有向非巡回グラフ - Wikipedia
- 二項関係 - Wikipedia
- 順序集合 - Wikipedia
- 全順序 - Wikipedia
- 深さ優先探索 - Wikipedia
- Depth-first search - Wikipedia
- Spaghetti Source - トポロジカルソート
- Topological sort
- アルゴリズムと データ構造
- 第 7 章: グラフ (graph) — WTOPIA v1.0 documentation
- 隣接行列 - Wikipedia
- グラフ理論の基礎 | 高校数学の美しい物語
- オイラーグラフの定理とその証明 | 高校数学の美しい物語
- 隣接行列,接続行列,ラプラシアン行列 | 高校数学の美しい物語
- グラフを表すデータ構造(隣接行列と隣接リスト) - 具体例で学ぶ数学
- Microsoft PowerPoint - ad11-09.pptx
- Microsoft PowerPoint - 数理計画と最適化101210prn.ppt
- オイラーグラフとハミルトングラフ
- スペクトラルグラフ理論入門
- 隣接行列 — WTOPIA v1.0 documentation
- グラフ構造で位相空間のイメージをつかむ - Qiita
CMake
MSVC
- Use CMake Converter — CMake-Converter 1.2 documentation
- visual studio - How to support both vcxproj to cmake on a project? - Stack Overflow
- cmake-converter · PyPI
- cmake_converter Documentation
- Visual C++ での CMake プロジェクト | Microsoft Docs
- visual-studio vcproj2cmake convert - How to support both vcxproj to cmake on a project? - CODE Q&A Solved
MSBuild
MSBuild
- MSBuild (Visual C) | Microsoft Docs
- MSBuild (Visual C) の概要 | Microsoft Docs
MSBuild
- MSBuild | Microsoft Docs
MSBuild
- チュートリアル: MSBuild の使用 | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- MSBuild | Microsoft Docs
- チュートリアル: MSBuild プロジェクト ファイルのゼロからの作成 | Microsoft Docs
- MSBuild プロパティ | Microsoft Docs
- MSBuild 項目 | Microsoft Docs
- MSBuild でのビルド ログの取得 | Microsoft Docs
- MSBuild でのログ | Microsoft Docs
- MSBuild リファレンス | Microsoft Docs
MSBuild リファレンス
- MSBuild の条件構造 | Microsoft Docs
- MSBuild の予約済みおよび既知のプロパティ | Microsoft Docs
- MSBuild プロジェクトの共通項目 | Microsoft Docs
- MSBuild .Targets ファイル | Microsoft Docs
- MSBuild 既知のアイテム メタデータ | Microsoft Docs
- Msdn forums - MSBuild
- WPF MSBuild リファレンス | Microsoft Docs
- エスケープする特殊文字 | Microsoft Docs
- MSBuild プロジェクト ファイル スキーマ リファレンス | Microsoft Docs
MSBuild プロジェクト ファイル スキーマ リファレンス
- Choose 要素 (MSBuild) | Microsoft Docs
- Import 要素 (MSBuild) | Microsoft Docs
- ImportGroup 要素 | Microsoft Docs
- Item 要素 (MSBuild) | Microsoft Docs
- ItemDefinitionGroup 要素 (MSBuild) | Microsoft Docs
- ItemGroup 要素 (MSBuild) | Microsoft Docs
- ItemMetadata 要素 (MSBuild) | Microsoft Docs
- OnError 要素 (MSBuild) | Microsoft Docs
- Otherwise 要素 (MSBuild) | Microsoft Docs
- Output 要素 (MSBuild) | Microsoft Docs
- Parameter 要素 | Microsoft Docs
- ParameterGroup 要素 | Microsoft Docs
- Project 要素 (MSBuild) | Microsoft Docs
- ProjectExtensions 要素 (MSBuild) | Microsoft Docs
- Property 要素 (MSBuild) | Microsoft Docs
- PropertyGroup 要素 (MSBuild) | Microsoft Docs
- Sdk 要素 (MSBuild) | Microsoft Docs
- Target 要素 (MSBuild) | Microsoft Docs
- Task 要素 (MSBuild) | Microsoft Docs
- TaskBody 要素 (MSBuild) | Microsoft Docs
- Task 要素の使用 (MSBuild) | Microsoft Docs
- When 要素 (MSBuild) | Microsoft Docs
- MSBuild コマンド ライン リファレンス | Microsoft Docs
MSBuild コマンド ライン リファレンス
- MSBuild プロジェクトの共通プロパティ | Microsoft Docs
- MSBuild での複数のプロジェクトの並行ビルド | Microsoft Docs
- Import 要素 (MSBuild) | Microsoft Docs
- 方法: 複数のプロジェクト ファイルで同じターゲットを使用する | Microsoft Docs
- ターゲットのビルド順序 | Microsoft Docs
- 方法: 最初にビルドするターゲットを指定する | Microsoft Docs
- MSBuild ターゲット | Microsoft Docs
- Project 要素 (MSBuild) | Microsoft Docs
- ToolsVersion 設定のオーバーライド | Microsoft Docs
- MSBuild ツールセット (ToolsVersion) | Microsoft Docs
- 標準ツールセット構成とカスタム ツールセット構成 | Microsoft Docs
- MSBuild のマルチターゲットの概要 | Microsoft Docs
- MSBuild ターゲット フレームワークおよびターゲット プラットフォーム | Microsoft Docs
- MSBuild 応答ファイル | Microsoft Docs
- Binary Log · Microsoft/msbuild Wiki
- MSBuild タスク リファレンス | Microsoft Docs
Visual C++ に固有の MSBuild タスク
- Visual C++ に固有の MSBuild タスク | Microsoft Docs
- MSBuild の条件 | Microsoft Docs
- Target 要素 (MSBuild) | Microsoft Docs
- 方法: タスクで発生したエラーを無視する | Microsoft Docs
- BscMake タスク | Microsoft Docs
- CL タスク | Microsoft Docs
- CPPClean タスク | Microsoft Docs
- LIB タスク | Microsoft Docs
- Link タスク | Microsoft Docs
- MIDL タスク | Microsoft Docs
- MT タスク | Microsoft Docs
- RC タスク | Microsoft Docs
- SetEnv タスク | Microsoft Docs
- VCMessage タスク | Microsoft Docs
- XDCMake タスク | Microsoft Docs
- XSD タスク | Microsoft Docs
- MSBuild リファレンス | Microsoft Docs
- MSBuild タスク | Microsoft Docs
- タスクの作成 | Microsoft Docs
- ビルド システムの変更 | Microsoft Docs
- チュートリアル: MSBuild を使用した Visual C プロジェクトの作成 | Microsoft Docs
- 方法: MSBuild プロジェクトでビルド イベントを使用して | Microsoft Docs
- 方法: MSBuild プロジェクトにカスタム ビルド ステップを追加 | Microsoft Docs
- 方法: カスタム ビルド ツール MSBuild プロジェクトを追加する | Microsoft Docs
- 方法: プロジェクトのプロパティにカスタム ツールを統合 | Microsoft Docs
- 方法: ターゲット フレームワークおよびプラットフォームのツールセットを変更 | Microsoft Docs
Visual Studio 2015
- MSBuild リファレンス
- MSBuild プロジェクト ファイル スキーマ リファレンス
- MSBuild Task Reference
- MSBuild Conditions
- MSBuild Conditional Constructs
- MSBuild の予約済みおよび既知のプロパティ
- Common MSBuild Project Properties
- Common MSBuild Project Items
- MSBuild Command-Line Reference
- MSBuild .Targets ファイル
- MSBuild Well-known Item Metadata
- MSBuild Response Files
- MSBuild の追加のリソース
- WPF MSBuild Reference
- Special Characters to Escape
コマンドライン
- コマンドラインで C/C++ コードをビルド | Microsoft Docs
- C/C++ プログラムのコンパイル | Microsoft Docs
- リンク |Microsoft ドキュメント | Microsoft Docs
- Visual Studio Devenv コマンド ライン スイッチ | Microsoft Docs
- NMAKE リファレンス | Microsoft Docs
GitHub
- Microsoft/msbuild: The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
- Microsoft/MSBuildSdks: MSBuild project SDKs
- Microsoft/MSBuildLocator: An API to locate MSBuild assemblies from an installed Visual Studio location. Use this to ensure that calling the MSBuild API will use the same toolset that a build from Visual Studio or msbuild.exe would.
CMake
- CMake
- Licensing | CMake
- Download | CMake
- CMake / CMake · GitLab
- Documentation | CMake
- CMake - KitwarePublic
- CMake FAQ - KitwarePublic
- CMake Reference Documentation — CMake 3.10.3 Documentation
Command-Line Tools
- cmake(1) — CMake 3.10.3 Documentation
- ctest(1) — CMake 3.10.3 Documentation
- cpack(1) — CMake 3.10.3 Documentation
Interactive Dialogs
- cmake-gui(1) — CMake 3.10.3 Documentation
- ccmake(1) — CMake 3.10.3 Documentation
Reference Manuals
- cmake-buildsystem(7) — CMake 3.11.1 Documentation
- cmake-commands(7) — CMake 3.11.1 Documentation
- cmake-compile-features(7) — CMake 3.11.1 Documentation
- cmake-developer(7) — CMake 3.11.1 Documentation
- cmake-generator-expressions(7) — CMake 3.11.1 Documentation
- cmake-generators(7) — CMake 3.11.1 Documentation
- cmake-language(7) — CMake 3.11.1 Documentation
- cmake-server(7) — CMake 3.11.1 Documentation
- cmake-modules(7) — CMake 3.11.1 Documentation
- cmake-packages(7) — CMake 3.11.1 Documentation
- cmake-policies(7) — CMake 3.11.1 Documentation
- cmake-properties(7) — CMake 3.11.1 Documentation
- cmake-qt(7) — CMake 3.11.1 Documentation
- cmake-toolchains(7) — CMake 3.11.1 Documentation
- cmake-variables(7) — CMake 3.11.1 Documentation
- cmake-env-variables(7) — CMake 3.11.1 Documentation
- CMake/Windows-MSVC-C.cmake at master · Kitware/CMake
Learning CMake
- Learning CMake
- Learning CMake
- Learning CMake
Ninja
- Ninja — CMake 3.11.1 Documentation
- Building with CMake, Ninja and Clang on Windows - Stack Overflow
- CMakeでNinja向けファイルを生成する - なんとな~くしあわせ?の日記
- 10.2.3で CMake with Ninjaを使う - Community Blogs - Embarcadero Community
- cmakeゆとり用 - 藻ログ
blog
- CMakeを使ってみた(1)経緯と簡単なアプリケーション - wagavulin's blog
- CMakeを使ってみた(2)もう少しまともなプロジェクト - wagavulin's blog
- MakefileをCMakeLists.txtに置き換える - Narrow Escape
- CMakeとProtocol BuffersとVisual Studio 2015 – sgryjp.log
- CMakeを使ってOpenCVを楽にセットアップする方法 (for Visual Studio 2010) - 意識の高いLISPマシン
- Qt4のプロジェクトを CMakeLists.txt (Cmake) で作る - 座敷牢日誌
- Cmakeの使い方 – インストールと実行 | Sumire Lab Docs
- CMakeの基礎とTheolizerの組み込み方 | Theolizer®
- 参°ぼっくす: cmakeの使い方
- CMake の練習
- モジュールセットファイルの構文
- ビルドシステムとしてCMakeを導入する - FPGA開発日記
- cmake チートシート - Qoosky
- cmake での shared library/static library のテストプロジェクト
- CMake を利用したライブラリの作成 - def yasuharu519(self):
- CMake に入門&対処事例
- 超初心者の Visual C++ , CMake とともに。 – o6asan's soliloquy-part2
- Makefileなんて書いてられない・・・CMakeでいってみる - alpaca2unix blog
- CMakeで生成されたファイルを一気に削除 - Ry0 Note
- CMake - CMakeLists.txtで用いられるFIND_PACKAGEについて(63275)|teratail
- 出力ディレクトリを指定する - Faith and Brave - C++で遊ぼう
- CMakeによって生成されるVisual C++プロジェクトの構成 - Faith and Brave - C++で遊ぼう
- CMakeで設定されているすべての変数を出力する - 座敷牢日誌
- CMake と SWIG を使って C++ と Python と ROOT に対応させる - 宇宙線実験の覚え書き
- Android C++開発 [1] : CMakeプロジェクトの作成 - つくるの大好き。
- CMakeをSchemeにする -- S式のtokenize - .mjtの日記復帰計画
- cmake tutorialその1:プロジェクトバージョン設定、C++規格指定、out-of-sourceビルド - 誰にも見えないブログ
- cmake tutorialその2:ライブラリ、テスト、Usage Requierment - 誰にも見えないブログ
- cmake-tuorialその3:実行環境の確認 - 誰にも見えないブログ
- cmake tuorialその4:ファイル生成,インストーラーのビルド等 - 誰にも見えないブログ
- cmakeチュートリアルその5 - 誰にも見えないブログ
- cmake tutorialその6 - 誰にも見えないブログ
- 自作Cコンパイラのビルド基盤をMakeからCMakeに移行してます(途中) - 誰にも見えないブログ
- cmakeでinstallしたtargetを削除する方法 - 誰にも見えないブログ
- cmake tutorial その7(最終回):EXPORT,find_package()など - 誰にも見えないブログ
GitHub
- How to write CMakeLists
- HelloWorld for cmake
- ijt/cmakelists_parsing: Python module for parsing CMakeLists.txt files
- CMake 3.8.0以降のCTestの文字化け対策 · Issue #37 · yossi-tahara/Theolizer
- CMakeをより便利にするライブラリ "CMakeSupports" がオープンソースになりました
- flokart-world/cmake-supports: A collection of utilities for creating projects with CMake scripts.
- Effective Modern CMake
Qiita
- CMake Advent Calendar 2014 - Qiita
- CMakeLists.txt から始めよう - Qiita
- CMake言語の基本構造 - Qiita
- CMakeの構文調べてみた - Qiita
- CMake: 条件分岐 - Qiita
- CMake: コメント - Qiita
- ごく簡単なcmakeの使い方 - Qiita
- CMakeで大きめのプロジェクトを構成するためのメモ - Qiita
- CMake: ポリシー - Qiita
- CMake: 便利なコマンド・変数 - Qiita
- CMake の情報と 3.1.0 での変更点 - Qiita
- CMake+Ninja 使ってるヤツは直ちに CMake-3.9 に乗り換えろ - Qiita
- CMakeの使い方(その1) - Qiita
- CMakeの使い方(その2) - Qiita
- たのしい組み込みCMake - Qiita
- CMake: target_link_libraries(PUBLIC/PRIVATE/INTERFACE) の実践的な解説 - Qiita
- CMakeスクリプトを作成する際のガイドライン - Qiita
- CMakeでマルチプラットフォーム開発 (ラズパイ用クロスコンパイル含む) - Qiita
Wikipedia
- CMake - Wikipedia
- CMake - Wikipedia
Twitter
- 渋川よしきさんのツイート: "C++で開発する時にまずやったのは、CMakeListsを自動生成もしてくれるパッケージマネージャをGoで作ることだった。"
- 渋川よしきさんのツイート: "C/C++のMakeっぽいものを作ろうとする人はかなり環境を限定しないとムリだよね。CMakeはこの世の闇をすべてその身に宿すことで世界に仮りそめの秩序をもたらす存在(modulesフォルダ以下を眺めながら) https://t.co/Wpv4tZBNbK"
- 渋川よしきさんのツイート: "CMakeのレイヤーはそのままで、CMakeラッパーというのが最近よく観る流れ。"
- mitsutaka.takedaさんはTwitterを使っています: "https://t.co/PCM6K74XHy https://t.co/mRUQvdD8ar cmakeビルド時にinclude-what-you-useでチェックすればOK。直すのも自動化用のスクリプトがあるあらしいが未確認 https:
- ロックフリーのkumagiさんのツイート: ".cファイルを新たに追加した時に漏れ無くビルドシステムに追加するようにする方法、cmakeならGLOBでゴリッとできるやんと思ったけどcmake的にGLOBは非推奨らしく(cmake初回時にしか実行しないから?)結局大抵の真面目なプロジェクトはGLOB使わずいちいちファイル名列挙しておりこの世に神はいない。"
- Kazuho Okuさんのツイート: "CMakeは色んな環境で動いて色んなビルドツール用のファイルを生成できるというのが売りであって、あとは見るべきところないと思ってる"
- Makoto Kato ︎︎さんのツイート: "*NIX環境で使われるautotoolsのほうが技術的負債だよ。Windows本体ののビルド環境はコンパイラまでレポジトリに入ってるからね。"
- Ryou Ezoeさんのツイート: "autotoolsの競合はだいたい失敗している。CMakeとかひどい有様。いまMesonが流行りだがどうなることやら。… "
- Makoto Kato ︎︎さんのツイート: "結局ChromeもFirefoxもコンパイラをダウンロードするってのが一番正しいということにたどりついたわけだし、まぁ多様性がありすぎるってのは変なバグを発生させる原因だと思うんだよね。。。"
- Ryou Ezoeさんのツイート: "OSやブラウザーのような大規模なソフトウェアにはできるが、一般にはやりづらい。… "
- Makoto Kato ︎︎さんのツイート: "Firefoxがビルドできないという話をIRCとかで見るたびに、どこから持ってきたのかわからない変なオプション使ってたり、タイポあったりするので、自動でできる限り設定されるべきなんだよね、いろんなデフォルトビルド設定は"
- FadisさんはTwitterを使っています 「CMake、地道に便利機能が追加されていってて「RHEL7|CentOS7に入っているCMake 2.8(2013年時点の最新)でも動くようにせよ」という要件が万物を台無しにしがち」 / Twitter
- 中村さんはTwitterを使っています 「CMakeは共有できるベストプラクティス集みたいなのがないから、大々的に使えない。海外の記事のリンクとか渡しても困るだろうし。(bazelはもっと情報ないきもするが)」 / Twitter
- Katsuhiro SuzukiさんはTwitterを使っています 「cmakeはすごく強力なんだけど、動かなかったときにさっぱり意味が分からなくて、デバッグが辛い。 autoconf/automakeは後ろのシェルスクリプトやMakefileが透けて見える(ただしm4に手を出し始めると地獄)、cmakeは癖が強すぎて「俺は何をしてるんだろうか……??」という気分になる。」 / Twitter
- てらモス♋️さんはTwitterを使っています 「cmakeは各プロジェクトが独立にそのプロジェクトに必要な外部ライブラリを見つける為のFindXXX.cmakeを管理しているという絶望的なクソ設計を誘導する面が最悪だというお気持ちを表明しておきます(´・ω・`)」 / Twitter
- ✧*。ヾ(。ᐳ﹏ᐸ。)ノ゙。*✧さんはTwitterを使っています 「何でも CMake にやらせようとした、でも面倒になったのか途中から Python とか呼び出しはじめて、ソースの依存関係が壊れてたり out-of-source build できなくされてたりするプロジェクトに遭遇したとか」 / Twitter
- てらモス♋️さんはTwitterを使っています 「cmakeは各プロジェクトが独立にそのプロジェクトに必要な外部ライブラリを見つける為のFindXXX.cmakeを管理しているという絶望的なクソ設計を誘導する面が最悪だというお気持ちを表明しておきます(´・ω・`)」 / Twitter
- CMake-3.11.0
- cmake-converter 0.0.2 : Python Package Index
- peg-cmake - npm
- Policies/CMake and Source Compatibility - KDE Community Wiki
- cmake の使い方 - PukiWiki
- cmakeコマンド構文の質問 [build-process] | CODE Q&A [日本語]
- 初めてのOpenCV開発 ― CMakeを使ったOpenCVのカスタマイズ【OpenCV 3.1.0】 - Build Insider
- CMake チュートリアル — Cmake-Tutorial
- Learning CMake
- CMakeの使い方.pdf
- CMake を使ったクロスプラットフォーム開発環境 : LINE Engineering Blog
- クイックCMakeチュートリアル - 公式ヘルプ | CLion
- libressl cmake - Google 検索
- shozfさんはTwitterを使っています 「CMakeと戯れ中💦 本家のリファレンスは網羅的で詳しく書かれているのだが、そこそこCMakeに慣れていないとハードルが高い。取っ掛かりはこの↓ドキュメントが良さそうかな。 Modern CMake: https://t.co/3yrFD9MGd5」 / Twitter
- An Introduction to Modern CMake · Modern CMake
Ninja
- 本の虫: 新しいビルドシステム、ニンジャ
- Big Sky :: 高速なビルドシステム「ninja」
- Linux kernelをninjaでビルドする - Gentoo metalog
- kati とか依存関係とか strace とか - 200MB-300MBのbuild.ninjaファイル
- ninja-build/ninja: a small build system with a focus on speed
- Ninja, a small build system with a focus on speed
- The Ninja build system
- ninja-build/ninja-build.github.io: github pages
- FAQ · ninja-build/ninja Wiki
- build.ninja
- michaelforney/samurai: ninja-compatible build tool written in C
- 本の虫: C++標準化委員会の10月の興味深い文書
- shinichiro hamajiさんのツイート: "アンドロのヌルビルドがまだ遅いぽいの悲しい。3年前にねじ込めてれば、一回3秒ほどだったか、トータルでは結構な時短だった気がするんだよなあ https://t.co/LJwEeotrl8 https://t.co/md5k1YDMMj… "
- mayahさんのツイート: "ninja 速くするアイデアは色々あるけど大体 nico に ninja はシンプルなままでいたいと言われて却下されるんだよな… ninja fork の機運か?"
- Introduce binary manifest format by shinh · Pull Request #1093 · ninja-build/ninja
- Add a flag to remain persistent. by jmgao · Pull Request #1389 · ninja-build/ninja
- shinichiro hamajiさんのツイート: "本題関係ないけど、今はninjaが1.5GBあるのか…katiやってたときは500MBくらいだったぽい [generated by kati, 412MB] [generated by soong, 1078MB]… "
- tzikさんのツイート: "ninjaの並列化proposalが出てる。https://t.co/ZggyThRvXk 。マルチスレッドなプログラムは一般にforkと相性悪いけど、.protoがあるし、forkする部分を別プロセスに分離してるのかな。"
- Parallelized Ninja for faster Android builds - Google グループ
- tzikさんのツイート: "並列化してるのはhttps://t.co/88NHGe7UXmのパースとかグラフ生成とかの部分で、コマンドの実行時にはスレッドプールはいらなそう。現状joinせずにそのままforkするフェイズに入っているけど、スレッドたちをjoinしさえすればよさげ。"
- cmake経由でmake実行時に-jオプションを渡す(未解決) - 誰にも見えないブログ
- Ninjaの速さを体感するともはやMakeには戻れない - Qiita
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaが話題になっている。やることはありきたりだが、細かい最適化を積み重ねて早くしている。 https://t.co/aWEtQ9gokP」 / Twitter
- Tech Notes: The Success and Failure of Ninja
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaは常駐を考えずに設計された。常駐する理由はキャッシュのためだ。でもカーネルはすでにファイルをキャッシュしているから不要だろ。 https://t.co/aWEtQ9gokP」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ninjaは依存関係のグラフ構築だけをやる。ユーザー向けの機能は別のフロントエンドにまかせる。この仕組みはうまく言った。 https://t.co/aWEtQ9gokP」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そんなのは誰でも考えつくがなぜninja以外のビルドシステムはうまくやれていないのか。厳密に分離するのは強い意志が必要だからだろう。みんな軟弱な思想で混ぜてしまう。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Windowsへの移植が大変だった。ninjaはカーネルがファイル情報をキャッシュしてくれて速いということを当てにしていたのだがWindowsはぽんこつにもそうではない。 https://t.co/aWEtQ9gokP」 / Twitter
- ミローネ言語の開発用にビルドツールninjaを使っている感想など - ベインのブログ
kati
DSan
- Dependency Sanitizer - Google ドキュメント
- Diff - f0a465c2cb5921762d7d17d65cd7352d0f64c261^1..f0a465c2cb5921762d7d17d65cd7352d0f64c261 - platform/build - Git at Google
- shinichiro hamajiさんのツイート: "動機も似てて、kati+ninja+gomaで並列度上げてビルドするとはじめて発生するバグとかが出てきて、調べてみると依存関係壊れてるだけで俺悪くないやんけ、てことがたまにあったので根本的に解決したくなったっていう話"
- shinichiro hamajiさんのツイート: "あとmakeは普通に書くと依存関係を適切に設定するのを絶対に間違えてしまうようなツールなので、Androidみたいに宣言的に記述するDSLにして定型パターンは間違えにくいようにするのは理に適っていると思う……がそのトレードオフとしてあの遅さを得たわけだった"
- kati について - 兼雑記
- kati とか依存関係とか strace とか - システムプログラミングぽい最適化
- SetProcessAffinityMask 関数
- はじめてのにき(2018-02-22)
- google/kati: An experimental GNU make clone
- StringPiece というライブラリの話 - 兼雑記
- C++1z 文字配列をコピーせず参照してbasic_stringライクな操作をするstring_view - Faith and Brave - C++で遊ぼう
- はじめてのにき(2018-08-17)
- SetAffinityForMultiThread before execve. by yoshisatoyanagisawa · Pull Request #154 · google/kati
- はじめてのにき(2018-10-31)
- Improve regen performance by setting cpu affinity by danw · Pull Request #156 · google/kati
- ラムダ式とMakefileマクロ - Qiita
- 日記 (2020 年 2 月)
autoconf
- Shiro KawaiさんはTwitterを使っています 「autoconfは、開発者がrepoを抱えててtarballで配布→各ユーザが手元でコンパイルするが環境がバラバラ、という条件の下でうまく設計されたシステムだけど、repoが公開されてて誰でも引っ張ってこれる/コンパイルする人の環境をある程度想定できる、という時代には合わないかもなあ」 / Twitter
- Kenji RikitakeさんはTwitterを使っています 「本件、基本的な方針として * 今までgitからのbuildだとautoconfしてconfigureを都度作っていたのをやめて、tarball同様に、OTPチームの作ったconfigureを使用するようにする ということだそうです。 #erlang」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「考えてみれば、GaucheをrepoからコンパイルするにはGaucheが必要なんだから、そしたらGauche自身のconfigureもGaucheで書けるじゃん、ということに気づいてしまった。でもbdwgcやatomic_opsでautoconf使うから無理に切り替えることないけど。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「正確には、autoconf相当のものをGaucheで書ける、だな。configure自体はGaucheの無い環境でも走らないとならないので。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「開発側/内部的には、ソフトウェア部品化は大事だけど、エンドユーザにそれらの部品が見えたり、個別設定を強いられるのはダメダメと。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(とはいえ Dockerイメージで凌ぐのは、ジャンボロック風味すぎる…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(上記より少しミクロな話だけど、古の automake / configure って、環境を調べてそれに合わせた makefile を作るとか、結構頑張ってたっけ…用意する方は大変だったのだろうけど)」 / Twitter
infoQ
- BazelがAndroidオープンソースプロジェクトの新しいビルドシステムになる
- Npm 7がワークスペースと決定論的ビルドをサポートで一般提供
- make cmake convert - Google 検索
- GENTOO INSTALL 週間さんはTwitterを使っています 「コンテナ時代の自動ビルドツール。各種言語と各種CIの橋渡しになるらしい。ビルド用のMakefile、シェルスクリプト、Dockerfileなどの代替。ほう / “GitHub - vladaionescu/earthly: Build automation for the container era” https://t.co/WwRQmgkQ4l」 / Twitter
- vladaionescu/earthly: Build automation for the container era
- Kazuho OkuさんはTwitterを使っています 「実際のところ、gmakeに足りないのって ・依存チェックをもっと書きやすくする (pkgconf およびテストプログラム) ・前回の設定を覚えておいて、次回のmakeで使える くらいの気がするんだよねぇ。 ついでにいうと、CMakeみたくCLionとかでプロジェクトファイルとして使えると良い(ハードル上げる)」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「しかしこれconfigureとかlibtoolが逆に移植をめんどくさくしている感じがする。2020年現在はもう変な野良Unixみたいなのほとんど存在しないわけだし、こういうツールは意味あるんだろうかと思ってしまう。」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「make はコマンド変わった時にリビルドする機能が追加されるとだいぶ良くなる気がしてる」 / Twitter
- sccache - Google 検索
- ドッグさんはTwitterを使っています 「パッケージのコンパイル時 feature flag が増えて特定の組み合わせでしかテストしてない時,他の組み合わせでも最低限コンパイルは通ることぐらいは確認してくれる機能が cargo check あたりの拡張でほしいな」 / Twitter
- Kazuho's Weblog: komake: Make の -j オプションに潜む罠とその解決策
- NixでZenn CLIをビルドする
- 平岡 拓也さんはTwitterを使っています 「ライブラリの依存解決とか、より良い解決方法を持っている他言語エコシステムとかに触れたりしないと、問題を認識出来ない感はあると思う(´・_・`) Rustのcargoとかは相当良いけど、それを知るまでは僕はライブラリがすぐに動かない事は問題ではあるにせよ、当たり前だと思っていた。」 / Twitter
- MakeをPythonのタスクランナーとして使う | Honai's Blog
- だめぽラボ@技術書典9さんはTwitterを使っています 「Haskellコードに加えた変更がビルド時間にどのような影響があるか判定するツールが欲しい。10回ぐらいビルドを走らせて平均と分散を計算するみたいなやつ」 / Twitter
- Facebook、次期ビルドシステムの開発でRust言語の採用を明らかに - Publickey
- MSBuild - MSBuild | Microsoft Docs
- 某ZR(ざんねん🙃)さんはTwitterを使っています 「LuaTeX以外でも、Latexmkやllmkやmakeなどのビルドツールを使う場合には、多くの場合は結局 「任意のコマンドが実行可能になってしまう」 ことにも注意。 #TeX」 / Twitter
- NMAKE の実行 | Microsoft Docs
- Kazuho OkuさんはTwitterを使っています 「shell script 複雑になるなと思った瞬間に Makefile にしちゃう。ステップごとに定義できるし、エラーが発生したら自動終了するし、どんなコマンドが実行されたかも画面にでるし、冪等性使える」 / Twitter
- 令掛ベインさんはTwitterを使っています 「サンドボックス化によってビルドルールの依存関係の記入漏れを検出するやつを探していて、おそらくこれ / [Sandboxing - Bazel main](https://t.co/sXQMpjP60s)」 / Twitter
- Sandboxing - Bazel main
Git
OSDN
- 「Git 2.9」リリース、「git diff」や「git log」での表示変更などが行われる | OSDN Magazine
- 「Git 2.8」リリース、「CRLF」改行コードへの対応強化や細かい機能追加などを含む | OSDN Magazine
- 「Git 2.7」リリース、多数の機能強化などが行われる | OSDN Magazine
- 「Git 2.6」リリース | OSDN Magazine
- 「Git 2.5」がリリース | OSDN Magazine
- 「Git 2.3.3」リリース、バグ修正が中心のメンテナンスリリース | OSDN Magazine
- 「Git 2.2」リリース、細かな機能強化や性能改善が行われる | OSDN Magazine
- ワークフローを強化した「Git 2.1」がリリース | OSDN Magazine
- 「Git 2.0」リリース | OSDN Magazine
- バグ修正が中心のリリースとなる「Git 1.9.3」が公開される | OSDN Magazine
- 1.9系のメンテナンスリリース「Git 1.9.1」がリリース | OSDN Magazine
- 分散バージョン管理システム「Git 1.9」が公開 | OSDN Magazine
- 「Git 1.8.5」がリリース | OSDN Magazine
- 分散バージョン管理システム「Git 1.8.3」がリリース | OSDN Magazine
- xdelta - Wikipedia
- こっそり始めるGit/GitHub超入門 - @IT
- Git
- git/git: Git Source Code Mirror - This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements.
- libgit2
- libgit2/libgit2: The Library
- 渋川よしきさんのツイート: "git gcが内部でバイナリサイズのサイズ縮小で使っているアルゴリズムはこれかな?これをクリーンルーム実装しない限り、gitを非GPL v2にするのは難しいのでは。v3にしてくれないかねぇ。 https://t.co/2P1PCsxKV1"
- NOKUBI Takatsugu野首貴嗣さんのツイート: "今のGnuPGはgpg-agentと通信すれば任意のアプリケーションから使えるようになっているので昔よりは扱いやすいはず"
- アトラシアン、Gitクライアント「SourceTree for Windows 2.0」リリース。UI改善、高速化、Git Virtual File Systemサポートなど - Publickey
- Introduction · Tig - Text-mode interface for Git
- jonas/tig: Text-mode interface for git
- .gitについて - Qiita
- 渋川よしきさんのツイート: "大学でgitを教えるかどうか、議論があるけど、あれのオブジェクトモデルはOSのファイルシステムをユーザランドで実現して、新から旧のスナップショットへのリンクを持っただけの素直な実装なので、Goならわかるシステムプログラミングを授業で扱ってくれたら一挙両得でお得ですよね #ステマ"
- ブラウザ上で完結するGit組み込みエディタ作っている - mizchi's blog
- ファイル更新に耐性のあるテキストタグ手法を考える - .mjtの日記復帰計画
- 高梨陣平さんのツイート: "Gitのメインな機能のみを500行のPythonで実装して学ぶとても便利な記事。 さらにHNのほうではGitの中身を学ぶための参考情報がこれでもかと紹介されている。Git以外の似た記事のまとめも https://t.co/ZbbGpYR6AT… https://t.co/tIEj1aX50t"
- danistefanovic/build-your-own-x: 🤓 Build your own (insert technology here)
- Hacker News 100さんのツイート: "Write Yourself a Git (2018) https://t.co/G0XX7ql6iV (https://t.co/y0Hyhl4vxU)"
- Write yourself a Git!
- Write yourself a Git (2018) | Hacker News
- GitHubのプッシュ障害をほぼゼロにしたProject Cyclop
- Taku KudoさんはTwitterを使っています 「Google のPiper/CitC のエモさがあまり知られていないみたいなので紹介。クラウド上の単一コードツリーが CoW のファイルシステムとしてマウントされ、リビジョン番号(+開発者+作業領域名)が一意のディレクトリにマップされる。分散ビルドや自動テストがこの上で動く。 https://t.co/Nb43wPUDkc」 / Twitter
- コラム - グーグルのクラウドを支えるテクノロジー | 第20回 Googleのソースコード管理システム ― Piper/CitC|CTC教育サービス 研修/トレーニング
- Taku KudoさんはTwitterを使っています 「Piper/CitC の元論文。5年前なんですね。https://t.co/ZMSKLFIyBm」 / Twitter
- Why Google Stores Billions of Lines of Code in a Single Repository | July 2016 | Communications of the ACM
libarchive
ZIP
- ZIP (ファイルフォーマット) - Wikipedia
- 日本語を含むZIPファイルを文字化けせず解凍する方法 - Qiita
- gaborcsardi/zip: Platform independent zip compression via miniz
- ZIPを少しセキュアに暗号化するツールを作った - Qiita
- とみながたけひろさんのツイート: "事情によりzipファイルの構造を調べなおしているんだけど、zipファイルに記録されるタイムスタンプって特にタイムゾーンとかの定義がないのね。2バイトで精度2秒というところからするとFATと同じくローカルタイムでいいのかな"
- とみながたけひろさんのツイート: "なーんも考えずにzipファイルで1時間ごとのバックアップを取る、みたいなことをしていた場合、夏時間のある国や地域ではタイムスタンプが大変なことになるんだな"
- りなたむ || RYOTA NAKAMURAさんのツイート: "暗号化ZIP終焉のお知らせ。 15文字程度のパスワードならRTX2080i 4基で15時間程度で突破されるとのこと。 AzureのNC24rがTesla K80 4基構成で¥443.52/時間なので、単純計算で8000円程度かければ解読できちゃうみたいですねぇ・・・… https://t.co/fpV4SRUtnZ"
- hashcatさんのツイート: "Support for PKZIP Master Key added to #hashcat with an insane guessing rate of 22.7 ZettaHash/s on a single RTX 2080Ti. All passwords up to length 15 in less than 15 hours with only 4 GPUs! Excellent contribution from @s3inlc and @EU_ScienceHub https://t.co/kVUDBrQWM3… https://t.co/9PNj3wC5Ux"
- ZIP形式のままでもっと圧縮する - fujieda's tech blog
- 「非再帰的ZIP爆弾」は10MBのファイルが281TBに膨らむ - GIGAZINE
- 霞ヶ関でパスワード付きzipファイルを廃止へ 平井デジタル相 - ITmedia NEWS
- macOSの暗号化zipファイルはパスワード無しで解凍できる - NFLabs. エンジニアブログ
zlib-ng
- nikqさんはTwitterを使っています 「https://t.co/zVqd7rhVBY zlibがいろいろ更新がされなさ過ぎて次世代リポができてた」 / Twitter
- zlib-ng/zlib-ng: zlib replacement with optimizations for "next generation" systems.
- nikqさんはTwitterを使っています 「zlibよりも最新のCMakeフレンドリに変更されている」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「zlibを使ったデータ圧縮をマルチスレッド化するというの、実は普通に可能らしい。ので実装してみた。 https://t.co/r6HcZB3EGG」 / Twitter
- mold/compress.cc at main · rui314/mold
- Rui UeyamaさんはTwitterを使っています 「実はrawのzlib compressedなデータはそのまま連結するだけでマージできるので、小分けして別々に圧縮してから連結して、ヘッダとトレイラをつければ完成。境目で辞書がリセットされちゃうので、圧縮率がちょっとだけ犠牲になるけど。」 / Twitter
tar
- ドッグさんはTwitterを使っています 「macOS の tar(bsdtar)よりも Python の tarfile ライブラリのほうが圧縮率が10倍以上良かった話.理由は,後者は対象ファイル群をソートしてアーカイブしてから圧縮するため.圧縮するファイル群が時系列であまり変化しない内容だったのでソートすると効率的に圧縮できた https://t.co/fkHzyR4EpD」 / Twitter
- Why are tar.xz files 15x smaller when using Python's tar library compared to macOS tar? - Super User
- ドッグさんはTwitterを使っています 「GNU tar なら tar --sort=name でできるのか.他にも --sort=inode も指定できる.こっちは場合によって disk の seek の回数が減ってアーカイブの速度が上がるっぽい」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「tarファイルを出力するコード、人生で何回も書いている気がする。歴史が古すぎていろんな亜種があるんだけど、とりあえず読めればいい程度のものを書き出すのは実は簡単。 https://t.co/8GYMV54xd6」 / Twitter
- mold/tar.cc at main · rui314/mold
- ぬるぽへさんはTwitterを使っています 「あと、posixではtarじゃなくてほんとはpaxコマンドを使うんだよっていう小ネタのためだけに存在すると思っていたpaxが、tarの99文字以上ファイル名拡張とかのフォーマットの方としてはちゃんと働いていることを知った https://t.co/YvpdCj2Qzr (gnu拡張もある」 / Twitter
- pax
LZMA
- FadisさんはTwitterを使っています 「LZMAベースの圧縮形式には圧縮は死ぬ程遅いけど展開は早いっていう特徴があって、殆どの人は圧縮頻度に対して展開頻度が極めて高くなるカーネルやinitramfsの圧縮においてはこの特徴が強すぎる」 / Twitter
- FadisさんはTwitterを使っています 「7-Zipのオリジナルの開発者がLinux版を作り始めたらしい。LZMAを用いる可逆圧縮アーカイバ7-Zipには従来Windows向けの実装しか無かったため、7-Zipで圧縮したアーカイブを送ってくるWindows野郎に対応するために*NIX畑ではp7zipが別の開発者によって実装されていた。 https://t.co/6SwN0GCguR」 / Twitter
- Upstream 7-Zip Adds Preliminary Linux Support - Phoronix
bzip2
- FadisさんはTwitterを使っています 「Linuxカーネルからbzip2によるinitramfsの圧縮を削除する提案がなされている。bzip2による圧縮はgzipについで古くからサポートされてきたが、xzやzstdといった近年サポートされた圧縮形式と比較して展開が遅い割に圧縮率が低く、誰も選ばない形式になっていた https://t.co/kSDW8iiFcJ」 / Twitter
- Patch Proposed For Removing BZIP2 Support From The Linux Kernel - Phoronix
lz4
- ТагсановさんはTwitterを使っています 「zstandardが「オレが一番...!」みたいなネーミングしてたのに、多少のトレードオフはありつつ遥かに解凍が高速な圧縮アルゴリズムでてきたじゃん、facebookはイキったネーミングを反省して https://t.co/XfRxbCV4yE」 / Twitter
- lz4/lz4: Extremely Fast Compression algorithm
- ТагсановさんはTwitterを使っています 「圧縮が遅くても、解凍が速いほうがユーザーにとってはありがたいことが多いので個人的にはlz4推したい、というか早速インフラで使いたい」 / Twitter
ANS
- Daisuke OkanoharaさんはTwitterを使っています 「エントロピー符号化は2009年に登場したANS (Asymmetric Numerical Systems)が算術符号と同等の圧縮率、RangeCoderより2倍高速、ハフマン符号に匹敵する速度で広く使われるようになっている。これだけ基本的な問題に新しい手法が登場することが驚き https://t.co/JayYi7QNFj https://t.co/RczS5Wo6g5」 / Twitter
- [0902.0271] Asymmetric numeral systems
- Asymmetric numeral systems - Wikipedia
- Daisuke OkanoharaさんはTwitterを使っています 「ANSは多くの圧縮で算術符号/ハフマン符号に代わって採用されているが、英語でも解説本は殆どなく、日本語解説もない。理解するためにはこのチュートリアルがおすすめ(Rangeバージョン)https://t.co/S2gdaxRsiw。ANSがエントロピーを達成する証明とともに、復号化から導入しわかりやすく解説している」 / Twitter
- [2001.09186] A tutorial on the range variant of asymmetric numeral systems
シリアライザ・木構造
- FUJI GoroさんはTwitterを使っています 「CBORがMessagePackに対して敵対的フォークを行ったことを批判しているエントリ。IETFの優位性を示したかったのではないかと。さらに、仕様的にもCBORはMessagePackと比較して不必要なまでに複雑になっていると。 / “diziet | MessagePack vs CBOR (RFC7049)” https://t.co/WTlJh2Bnnm」 / Twitter
- diziet | MessagePack vs CBOR (RFC7049)
- 成瀬さんはTwitterを使っています 「XMLはattributeが余計だったんだと思っている。あれがあるせいでtraverseが面倒になってるよね」 / Twitter
- Hiroshi NakamuraさんはTwitterを使っています 「@nalsh Namespaceですよ。木と木を混ぜるの大変。でも文書の木の管理としては未だに代替がないような。フォーマット定義に使うのがおかしかった。」 / Twitter
- _ko1さんはTwitterを使っています 「XML Schema みたいな木構造の定義(文法)って良いと思うけどそんなに流行らなかったというか、結局必要で JSON Schema とかでてきていると思うけど、なんか決定版つくんないのかな(結局小さくまとまらずにBNF?)」 / Twitter
- _ko1さんはTwitterを使っています 「@oza_x86 ASN.1 じゃなくて XML じゃなくて protobuf なのは、Google への信頼感でしょうか」 / Twitter
- ozaさんはTwitterを使っています 「@_ko1 観測してる感じですと(いわゆるマイクロサービス化などの文脈で) 性能が求められる場面で golang と一緒に grpc が使われるようになって,一緒に protobuf も使われるよつになってきてるという風に見えてます この2-3年でエコシステムが盛り上がったのかなと(めっちゃ主観です」 / Twitter
- Non AMP SXG による Prefetch 対応と AMP 提供の停止 | blog.jxck.io
- 本サイトの AMP 提供の停止とここまでの振り返り | blog.jxck.io
- Firefoxは危険なJavaScriptに対応しない - Qiita
- Protobuf definition best practices | by Ammar Khaku | Medium
- Tsukasa #01さんはTwitterを使っています 「雑に JSON、より少し効率と処理の正確さを求める人のために CBOR をことあるごとに推していく所存。MessagePack 派の人には申し訳ないけど。」 / Twitter
- Tsukasa #01 (fully vaccinated)さんはTwitterを使っています 「JSON の型の限界に疲れた?CBOR をどうぞ (へんな目 ―― いや、真面目な話、CBOR は良いんだけど、テキストじゃないので辛いところはありそう)」 / Twitter
- Yuta @スタートアップ|エンジニアさんはTwitterを使っています 「Haskell製のDhallての知らなかったな、ymlの仕様にないimportの概念取り入れられるの便利そう #rust_jp」 / Twitter
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「Dhallは構文エラーがバグり気味だったり記述が冗長すぎたりしていろいろ難点もあるけどおすすめよ。k8sのmanifestとか結構整理できる >RT」 / Twitter
- チェシャ猫さんはTwitterを使っています 「YAML の型はエラーの原因になりがち。例えば 0.1 なら数値なのに 0.1.0 だと文字列になったりする。情報を文字列で埋め込もうとするとエクスプロイトの原因にもなる。 #SoftwareCircusFest」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「CSVの問題は途中から解析ができないので分散パースができないこと。その点で NDJSON の方が優れている。」 / Twitter
技術評論社
- 2018年12月26日 Fedora,圧縮ファイルフォーマット「zchunk」を実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
- 2019年5月31日 Fedora,RPMパッケージの圧縮アルゴリズムをxzからZstdに変更へ:Linux Daily Topics|gihyo.jp … 技術評論社
- 2020年4月28日 バイナリパッケージの信頼性と再現性を検証するArch Linuxの独自プロジェクト「Rebuilder」:Linux Daily Topics|gihyo.jp … 技術評論社
- 2021年1月15日 Flatpak 1.10がリリース,新たなリポジトリフォーマットを実装:Linux Daily Topics|gihyo.jp … 技術評論社
- 第654回 snapパッケージング入門:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第656回 EPUBリーダーをsnapパッケージ化する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第658回 自作のsnapパッケージをコンテナ化する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第659回 systemd-nspawn+pbuliderでパッケージのビルド環境を整える:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第660回 自作のsnapパッケージをSnap Storeに公開する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- GitHub - libarchive/libarchive: Multi-format archive and compression library
- libarchive - C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats @ GitHub
- libarchive-3.2.0
- LIBARCHIVE-FORMATS(5) - File Formats - YOS OPENSONAR
- Dropbox、改良型Brotliを使用して同期パフォーマンスを改善
- Rockridgeさんのツイート: "MozillaがFirefoxユーザーに対し送信するスニペットのデータ容量を削減した話。画像の最適化はさほど効果がなかった一方、画像のリンクへの置き換えやGZipからBrotliへの切り替えは大きな効果があったという。 / “U…” https://t.co/JTa932baYW"
- 圧縮ファイルの展開速度を最大1万倍超高速化するデータ構造を広島大が考案 | マイナビニュース
- Huffman Coding with Gap Arrays for GPU Acceleration | 49th International Conference on Parallel Processing - ICPP
- Facebookの圧縮アルゴリズムZstandard 1.5におけるパフォーマンス向上
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「C++によるモダンなLZアルゴリズムの実装。ビットの読み書きから二分木を使ったハフマン符号の構築、マッチングアルゴリズムの詳細を解説している。メイン部分のコードは1,000行たらずでgzipと同程度に速い。 https://t.co/OFGhG2ZaXG」 / Twitter
- Modern LZ Compression
- Facebookが独自開発のアプリ圧縮技術「Superpack」を発表 - GIGAZINE
Nix Package Manager
- 井山梃子歴史館さんはTwitterを使っています 「コンピュータ科学の銀の弾丸だ https://t.co/CMU7VaSexG」 / Twitter
- NixOS - Nix 2.3.10 manual
- 井山梃子歴史館さんはTwitterを使っています 「@mt_tilde Indirection」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「Nix使ってRustバイナリビルドするやつできた(依存関係キャッシュもしてくれる) https://t.co/39r3zpWiFh」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「バージョン指定もできるようにした https://t.co/4PK7FoIbL6」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「いろいろビルドしてみるか」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「Nixのマニュアル何言ってるか分かんないし果てには「自然演繹で定義するね!」って言いだしててキレそう」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「NixOS - Nix Pills https://t.co/BU1eAXbwvq propagatedBuildInputsってそういう意味だったんだ…」 / Twitter
- NixOS - Nix Pills
- 井山梃子歴史館さんはTwitterを使っています 「NixOS - Nixpkgs 20.09 manual https://t.co/FpLJIB1Je4 これで読むの3回目ぐらいだけどそれでもいまいち分からんな」 / Twitter
- NixOS - Nixpkgs 20.09 manual
- 井山梃子歴史館さんはTwitterを使っています 「depsHostHostが推奨されない理由が分からんな」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「buildInputsでいっか!w」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「default.nixを書いたのですが,このパッケージだけ含むシェルってどう作るんだ」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「依存関係を追加しても既存のはキャッシュしてくれてうれしい crate2nix最高」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「tracing-error/color-eyreで実質バックトレース」 / Twitter
- 2021年6月29日 Is NixOS Reproducible? ―NixOS,最小イメージのビルドを100%再現可能に:Linux Daily Topics|gihyo.jp … 技術評論社
infoQ
- Facebook Retrieを使用した大規模なHaskellコードベースのリファクタリング
- ミューテーションテストの紹介 - Dave Aronson氏のJSConf Hawaiiでの講演より
- 堅牢なテスト戦略により自信を持ってDropbox Syncをリライト
- Xcode 13でチームコラボレーションとソース編集機能が拡張
Twitter
@shinji_kono
- Shinji KonoさんはTwitterを使っています 「NeXTが導入された当時は Hyper Textってのが流行り。それはHyper Cardに影響されていたかも。それを実現したのが、Objective Cのdictionaryの機構とDisplay PostScriptの組合せ。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「TextEditが例題として用意されていて、RichText でsaveできてた。で当時あったGopherとかのファイルサーバーとXeroxのSGMLと組合わせたのがHTML/HTTPだった。うまくNEXTSTEP依存を回避していたことと、これもできたばっかりだったDNSを使ったリンクがうまく機能してた。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いろいろなpackage管理はコンテナで解決しつつあるんだが、GUI/IDE側がな。 コンテナとpackage管理は本来関係ないのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「GUI/IDEも構成管理ベースでイメージ配布になる気がする。もうなってるかも知れん。」 / Twitter
- hkobaさんはTwitterを使っています 「flatpakが近いかも、です? https://t.co/HryP0y2Uzo」 / Twitter
- 第513回 新しいパッケージの仕組み,Flatpakを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- Shinji KonoさんはTwitterを使っています 「@hkoba あぁ、brew cask みたいなのかな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「このあたり結構怒ってるんだよな。わざわざstaticなcontentsにhttpsつけさせて囲い込んでるのにCDNをありがたがる羊たち。 QT Jamstackではスタティックのコンテンツ配信が増えるので、CDNの効果が絶大です。… https://t.co/FgGGxklfGW」 / Twitter
- Jamstackは新しいWebアプリのアーキテクチャ? - EY-Office
- Shinji KonoさんはTwitterを使っています 「単なるプロバイダ側のキャッシュを神のように崇めてお布施する人たち」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Scratch 、自分もそうだけど、小学生も「なんかかっこわるい」って思ってるのがいる気がする。構文エラーが減るのは良いかもしれないけど。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Scratchが良いなら、製品でも使われてるはず。」 / Twitter
@masuda220
- 増田 亨.さんはTwitterを使っています 「エンティティ・集約・リポジトリがチームの理解を混乱させ、設計を迷走させる原因は、はっきりしている。 ドメイン駆動設計では、この三つはオブジェクト指向プログラミングの設計の議論。 それに対し多くの技術者は、この三つをテーブル設計とデータベースアクセスの話として解釈する。」 / Twitter
- 増田 亨.さんはTwitterを使っています 「ドメイン駆動設計では、エンティティは識別情報を他の属性から明確に区別するための設計パターン。 集約はデータの集約ではなく、計算・判断の「ロジック」の集約を明らかにするための設計パターン。 リポジトリはオブジェクトの退避と再構築のための設計パターン。」 / Twitter
- 増田 亨.さんはTwitterを使っています 「ドメイン駆動設計の超要約: アプリケーションの複雑さに立ち向かうために、 ビジネスルールに焦点を合わせて、 オブジェクト指向プログラミングに取り組む 別の道: 単純なアプリケーションを、 入出力に焦点を合わせて、 手続き的なプログラミングでちゃっちゃと作る」 / Twitter
- 増田 亨.さんはTwitterを使っています 「ドメイン駆動設計の基本の設計パターンで ・値オブジェクト ・モジュール の二つは、チームの設計の基盤として確実に役に立つ。 それに対し ・エンティティ ・ドメインサービス ・集約 ・リポジトリ ・ファクトリ は、解釈が混乱しやすく、チームの設計を迷走させていることが多いのではないか?」 / Twitter
- 増田 亨.さんはTwitterを使っています 「ドメインサービスは、オブジェクトのモデリングと設計に豊かな経験と確かな判断力を持つ技術者には有用なパターン。 オブジェクト指向プログラミングの理解と実践が不足している技術者にとっては、手続き的なプログラミングに留まるためのアンチパターンになるだけ。禁止すべき。」 / Twitter
- 増田 亨.さんはTwitterを使っています 「エヴァンスはオブジェクト指向プログラミングでの開発経験があることを前提にドメイン駆動設計を書いた。 しかし、おそらく日本の読者の大半はクラスを使った手続き的なプログラミングの経験しかない。 DTOとエンティティを同じと考える読者にエヴァンスのドメイン駆動設計は意図は伝わらない。」 / Twitter
利用動向調査
- 7594591200220899443さんはTwitterを使っています 「へえー!「外部調査会社を利用したWebアンケート」でこの結果が出るんだ!すごいすごい!」 / Twitter
- refeia🍥さんと他18人さんはTwitterを使っています 「え…… https://t.co/O3ZQv1iI8E https://t.co/oHDo161PqZ」 / Twitter
- ITエンジニアの理想の開発環境に関するツール・サービス調査 90.1%のITエンジニアがWindowsと回答|パーソルキャリア株式会社のプレスリリース
- 7594591200220899443さんはTwitterを使っています 「ツイッターのおまえらがいかに異常な個体の集まりかということやで。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「皆さんと世の中に見解に相違がある時、皆さんが間違ってる方に賭けるか、世の中が間違ってる方に賭けるか、皆さんが間違ってる方が普通にオッズ低いんですよ。世の中の過半数がサクラエディタか秀丸なんです。辛いでしょうけど。世の中はそうなんです。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「それはそうと自分としてはプログラミングはヒューマンインタラクションの一種なのでプログラミングに適したUIというものはあって然るべきとは考える。それは必ずしもエディタとは限らないだろう。ResEditとかInterface Builderとかは成功しなかったかもだがあの方向性は消え去るのも惜しく思う。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「わざわざIDEとか使わなくても思念しただけで虚空からバグ取りの終わったプログラムが降ってきて欲しい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「回答者属性みると40代50代のSEが中心で納得感」 / Twitter
histric-1
- :craftsman/kawasimaさんはTwitterを使っています 「業務システムの設計に迷ったら、まずredmineではどうしているかを見に行くとよいです。テーブル設計、認可、マルチテナント、テスト、ユーザ設定可能なワークフロー、ユーザ削除時の対応、プラグインによる拡張などなど、参照実装としてすごく有用です。」 / Twitter
- hikaliumさんはTwitterを使っています 「変数名の取り違え、型さえ合っていればコンパイラは無力なの悲しい(変数名の取り違えを防ぐコンパイラやlinter側での努力に関する研究ってあるのだろうか?(ソフトウエア工学とか心理学とか方面寄りになりそう?))」 / Twitter
- KOBA789さんはTwitterを使っています 「@hikalium rust-analyzer とかだと仮引数の名前と実引数の名前に common suffix がない場合は仮引数の名前がエディタ上で補完されて名前付き引数のような見た目になったりしますね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「利用する側を先に作ることでインターフェイスを整理してから、実装やテストを書くことも多い気がする」 / Twitter
- Takuto WadaさんはTwitterを使っています 「どちらかというと、メソッドのインタフェースをゴリゴリ変えたいからこそ先にテストを書くんですよね。「どうやって使わせようか先に思いつかない」のは私もそうで、だから自分が一番先に使う側に回って考えようというのがテストファーストです」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「アプリケーションコードからの使いやすさと、テストのしやすさと、内部実装の簡潔明快さはどれも重要で、実際はその3つのバランスをどう取るかだし、手を動かすことができるならば、あまり順番は重要じゃない気がするけど」 / Twitter
- 神速さんはTwitterを使っています 「DDDの話は何度聞いても「世の中の9割はそんなにクラス設計を上手くできない...」という点を感じていて、そういう意味では「ActiveRecordに密結合で短いコードにする」という割り切りの方が好みではある。無駄に多いクラスよりマシなので。」 / Twitter
- sumimさんはTwitterを使っています 「コピー&ペースト(より正確にはカットとペースト)がSmalltalkのどんなキー操作にいつ頃アサインされたのかをざっと当時のコードを読んでこれ→https://t.co/BEAFBElfFl を書いたのですが、もう少し丁寧に調べてみたら少なくともSmalltalk-76の時点でLFではなくBLANK-TOPに割り振られていた事が判明… https://t.co/l6hAVNeLKn」 / Twitter
- sumim: "#365 収録後トークの「コピー&ペーストはMacが最初」というのは少々いただけないです(アラン・…" - グルドン
- sumimさんはTwitterを使っています 「カット・コピー・ペースト操作が [修飾キー]+X/C/V になったのがLisaからなのは明らかとして、コピー&ペースト操作のネタ元であるSmalltalkで(特にペーストの)キー操作はどうだったのか…というのはオレンジ本にも書いておらず長らく疑問に思っていたのですが、ようやくモヤモヤが晴れてスッキリ!」 / Twitter
- アベ先生 (CV: 阿部和広)さんはTwitterを使っています 「@sumim そろそろ本にまとめることをお勧めします。」 / Twitter
- mima_itaさんはTwitterを使っています 「javascriptは大抵mockやfakesで依存関係を偽装できるのでテストは簡単な部類。」 / Twitter
- mima_itaさんはTwitterを使っています 「中間言語作る系のC#やJavaも頑張れば基本的に何とかなる。Cもプロダクトコード側が適切にライブラリに分割してあればコールバック関数を偽装して偽のライブラリを作成して何とかなったが・・・C++だけは今でも苦戦しそう。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「Jupyterって画像が表示できるREPLでしょ」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「画像が表示できて自然に複数行入力できて実行コードと結果をまとめてファイルに保存する機能がついたREPL」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「コンピュータ、out of the boxで動いてほしい」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「のでvimとかwmをカスタマイズとかはあまりノレない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「えーなんでここで schemes が non-NULL なの? 酔っ払ってるのかな https://t.co/PkAohxLU4s」 / Twitter
- ItSANgoさんはTwitterを使っています 「@kazuho 関数を2回以上通っていませんか?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@ItSANgo ほんまや! 誰や static とかつけたやつ!!! ありがとうございます」 / Twitter
- κeenさんはTwitterを使っています 「Rust Analyzerがマクロを克服しつつある。Rust内部のマクロ展開後の形式を人間可読な表示する機能をつけて、マクロ内で定義した関数の型を表示できるようになってる。マクロで生成したものは元のテキストがないからちょっと特殊で今まで表示崩れしていた。 Changelog #69 https://t.co/AZJkHGoirL」 / Twitter
- Changelog #69
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「IDE で関数単位で全return文にbreakをセット/解除するボタン欲しい。」 / Twitter
- コードが読めるソフトウェア開発者 - As a Futurist...
- 7594591200220899443さんはTwitterを使っています 「コード読む力、大部分がVisualStudioの使い方だったりするんだよなあ」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「ともかくEmacsだのVimだの使ってる場合じゃないとまでは言えますよ。書くのは好きにすりゃあいいけどさ。読むのに関しては。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「JetBrainsとMicrosoftに足向けて寝てるやつがプログラマを名乗るなという感がある」 / Twitter
- 市川 真一さんはTwitterを使っています 「@puni2marimo @uchan_nos オブジェクトの型を名前空間に import する宣言文を書くように設計すれば、それが実質的に前方参照みたいなものだし、1 回目の構文解析では未定義の名前が定義されるまではトークンを保持するだけで構文解析しないようにするだけでも結構いけそうな気もします。型を定義するキーワードも普通は規定済み」 / Twitter
- Yasunori GotoさんはTwitterを使っています 「10年以上前かな? 当時の上司が「メインフレームのDBのトランザクション処理って、ネットワークDBでしかもアセンブラでゴリゴリ頑張って書いていたので、CPUの命令で400stepぐらいで済んでたらしいんだよね。今ならJava+RDBで1万stepぐらいは余裕でかっ飛んでいるよね!」って話してたの思い出した」 / Twitter
- novtanさんはTwitterを使っています 「しかしだよ、処理効率が上がるたびにそれを食いつぶすテクノロジーを開発し続けてきているIT業界に本当に必要なのは「阿部寛のホームページ」への回帰なんではなかろうか。 / “IBM、世界初の2nm半導体技術を発表 バッテリー寿命は7nmの4倍 - ITmedia NEWS” https://t.co/ELGO5eJXnf」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「バイナリファイル視覚化ツール。各バイトをヒルベルト曲線に沿ってプロットすることにより、単純な左→右のスキャンで表示するよりもパターンが目立ちやすくなる。エントロピーによる色分けにより、圧縮されてそうな部分を検出することも可能。 https://t.co/weZyGe5LU9」 / Twitter
- binvis.io
- Keigo ImaiさんはTwitterを使っています 「言語とIDE. PPX + merlin + VSCode + OCaml Platform のおかげで OCaml はあんまりそういう悩みがないかな...」 / Twitter
- エヌユルさんはTwitterを使っています 「Emacsのdiredほど強力なファイルマネージャを他のOSも含めて見たことがない WindowsでもMSYS2のEmacs立ち上げてdiredをなるべく使ってるぐらい trampでssh, android, dockerコンテナの内部を閲覧編集出来たり文字列置換でrename出来る むしろLinux以外が貧弱に思える Nautilusも普通に使えるけど」 / Twitter
OS
- エネルギー IoT - 家電 Watch
- 価格.com - Thunderboltのノートパソコン 価格の安い順 (USB PD,ビデオチップ:Intel 系,開発コード:Tiger Lake,表面処理:ノングレア(非光沢))
- 価格.com - Thunderboltのノートパソコン 価格の安い順 (USB PD,ビデオチップ:Intel 系,開発コード:Ice Lake,表面処理:ノングレア(非光沢))
- e-zoa.com|[その他 (そのほか)] ミドルタワーPCケース [(2406705)]
- モニターおよびモニター周辺機器 | Dell 日本
- Microsoft Surface PC、コンピューター、ノート PC、2-in-1、デュアル スクリーン、オールインワンの公式サイト
- Introduction - 1.2 - ID:615146 | Intel® 400 Series Chipset On-Package Platform Controller Hub
- メインフレームの異常処理 - Qiita
- 「フェイルバック(failback)」と「フォールバック(fallback)」の違い|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
その他
MS
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「NTカーネルの仕様書を読んだことある人って、どれくらいいるんだろうか? 昔CD-ROMに焼いて配ったんで、それなりの数の人が目を通したはずだけど。今どきOS/2 NTと書かれてても何ソレ?ってスルーされちゃうかも知れず / “Windows-Research-Kernel-WRK-/NT_Design_Workbook…” https://t.co/TDaKERbmK3」 / Twitter
- Windows-Research-Kernel-WRK-/NT_Design_Workbook/Get_Workbook at master · HighSchoolSoftwareClub/Windows-Research-Kernel-WRK- · GitHub
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「とりあえずke.docがカーネル全体について記述しているので、その辺から読むといいかも。そこから先は趣味ですがvmdesign.doc辺りを読むと、いきなりNTカーネルが当初i860向けに開発されたことなんかを知ることができて面白いですね。i386/486も似たようなPTEフォーマットで云々」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「ぶっちゃけ30年前に書かれたカーネルの仕様書を読んで何になるのか?という話ではあるのだけど、四半世紀以上も生き残った商用ソフトウェアの初期仕様書を読める例って本当に少ないので、少なくとも考古学的な価値は高いんじゃないかな。読みやすさでいえばタンネンバウム先生のMinix本の方が上だけど」 / Twitter
Google
GIGAZINE
- GoogleのIoT用プラットフォーム「Android Things」が終了へ、IoT向け汎用OSの野望は軌道に乗らず失速 - GIGAZINE
- ついにGoogleの新OS「Fuchsia」が一般ユーザー向けに公開される - GIGAZINE
- Google PlayでAndroidアプリを公開するにはAPKでなく「Android App Bundle」を使う必要があるとGoogleが発表 - GIGAZINE
- Googleが進めていた秘密計画「Project Hug」とは? - GIGAZINE
- 折りたたみ式スマホに対応した新機能搭載の「Android 12マイナーアップデート版」開発中 - GIGAZINE
Twitter
- κeenさんはTwitterを使っています 「Googleの作ってるOS、Fuchsiaのセキュリティについての書き散らし。メッセージパッシングにすることで権限管理がやりやすいよねと。Fuchsiaはかなりの部分がRustで書かれている。 cr0 blog: A few thoughts on Fuchsia security https://t.co/TKQYWVkhwZ」 / Twitter
- cr0 blog: A few thoughts on Fuchsia security
- Makoto Kato ︎︎さんはTwitterを使っています 「Chrome OSの利点ってアップデートも含めだと思うのだが 、こういうChrome OSのforkをインストールしてって話はセキュリティの担保の保証が難しいので勧めるのはどうかと思う。(CloudReady自体はGoogleが買ったから別になるかもだけど) https://t.co/rasVmwhdZT」 / Twitter
- Windows 11に見捨てられたPCをChromebook化して幸せに:小寺信良のIT大作戦(1/4 ページ) - ITmedia NEWS
- Makoto Kato ︎︎さんはTwitterを使っています 「担保の保証ってなんで2重になってんだ。書き直しミスった」 / Twitter
- 一ノ瀬 いろはさんはTwitterを使っています 「@makoto_kato CloudReady のアップデートポリシーってどうなるんですかねぇ。 ホンモノのChromebookの方もアップデートは機種毎の期限付だし、こう言う目的には合わなさそうですが。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「@ichinose_iroha 現時点でなにも考えてないと思いますよ」 / Twitter
- Taku KudoさんはTwitterを使っています 「chromebook以外使うのホント辛い。クラウドネイティブじゃないレガシーOSって、いちいち「保存しますか」的なダイアログが出てイライラする。」 / Twitter
- FadisさんはTwitterを使っています 「Freedrenoの作者が開発の近況を解説している話。FreedrenoはQualcomm SnapdragonのGPU用のOSSドライバで、リバースエンジニアリングで開発されている。このドライバはAndroidで既に使われているが、Snapdragon上で動くChromeOSのために改良が進められてきた事が述べられている https://t.co/hVSeQeb1DL」 / Twitter
- Google Is Successfully Using The Open-Source Qualcomm GL/VLK Drivers On Chromebooks - Phoronix
- FadisさんはTwitterを使っています 「SnapdragonはAndroidで定番のパワフルなARM SoCだが、純正のGPUドライバはdolphinの開発者からHorribleと評される品質だった。マシなドライバを自作しようとFreedrenoを立ち上げたRob Clark氏らをGoogleが雇い、Pixel3a以降のGoogleのAndroid端末では純正ドライバではなくFreedrenoが用いられている」 / Twitter
- shinobu.dartさんはTwitterを使っています 「いや、ほんとAndroid Code Search コードを読む上でほしい機能が揃いまくっててすごすぎるよこれは☺️ https://t.co/FXQ78WY99w」 / Twitter
- Android Code Search
- Downloading the Source | Android Open Source Project
- The Android Source Code | Android Open Source Project
- Selecting Devices | Android Open Source Project
- Codenames, Tags, and Build Numbers | Android Open Source Project
- Android Compatibility Definition Document | Android Open Source Project
- platform/ - Git at Google
- platform/development.git - Git at Google
- android/platform_development
- Architecture Overview of Fuchsia OS - Speaker Deck
- Chromebookのシェアが1%から13%に急増。2021年には24%へ - PC Watch
- RustがAndroid OSセキュリティのための新しい基盤を提供
- Google Nest HubでGoogle Fuchsiaがデビュー
- Running Android Apps on VM in Chrome OS - Google スライド
- Androidタブレットを強力カスタマイズ、「最高の業務機材」にできるAPI「CSDK」とは? ~起動ロゴ変更やボタン無効化もできる、Lenovo専用API~ - INTERNET Watch
- 「Chrome OS 93」が安定版に ~ファイルの仮置き場「トート」がちょっと便利に - 窓の杜
- 「Android 12」が正式リリース ~今後数週間のうちに「Pixel」を皮切りに展開へ - 窓の杜
- Android 12がAOSP向けにソース提供。PixelやGalaxy、Oppo、Xiaomiが順次対応へ - PC Watch
Linux
stage0
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「最初のバイナリシードを最小にするために頑張っているのだが、実はもう一つ大きなバイナリシードが残っている。この作業をするためのLinuxカーネルで、これはホストのカーネルを使っている。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「具体的に言うとホストのカーネルを使ってchroot jailかqemu(もしくはUSBストレージに書き出してベアメタルブートもできる)で作業する。」 / Twitter
histric
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「GNU/Linuxのreproducibleなブートストラップへの道のりが長すぎる。 https://t.co/EkfG1aFoHT」 / Twitter
- live-bootstrap/parts.rst at master · fosslinux/live-bootstrap
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「お使いのGNU/Linuxのバイナリは本当に信頼できる? ソースからコンパイルしてるって言っても最初のコンパイラーはバイナリで手に入れてるよね。何十MBものバイナリを検証なんかできるわけがない。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「この問題は、検証可能なサイズのバイナリからブートストラップを始めることにより解決できる。そのためのプロジェクトがlive-bootstrapで、その最初に存在するのがstage0」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「もともとGNU Mesというプロジェクトがあり、それを発展させる形でさらに推し進めた。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「GNU Mesは簡単な5千行のCで書かれたScheme実装と、schemeによるCコンパイラーとlibc。これは多少パッチを当てた軽量Cコンパイラーのtccをビルドでき、tccはgcc 2.95.3をビルドできるので、これでブートストラップが完了する・・・はずだった。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「5千行のCコードは検証しやすいが、結局それをコンパイルするのにバイナリが必要になる。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そこで出てきたのがstage0。これは主要なアーキテクチャー用に書かれた500バイトほどのhexアセンブラー https://t.co/wQchEOMe8g」 / Twitter
- oriansj/stage0: A set of minimal dependency bootstrap binaries
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「これで最初のseedたるバイナリは数バイトのhex0にまで落とし込むことができる。hex0アセンブラーはhex1をコンパイルし、hex1はhex2をコンパイルし、hex2はM0をコンパイルし、M0はcc_x86をコンパイルし、cc_x86はとうとう、C風のコンパイラー、M2-Planetをコンパイルする。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「M2-Planetにまで達したら、いくつかのソフトウェアをコンパイルした上でM2-Planetをコンパイルし直す。その上で出来上がったM2-PlanetのバイナリはM2-Planet用に移植したmesccをコンパイルできる。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「しかしまだ終わらない。この結果できあがったmesccはまだtinyccを完全にコンパイルできない。そこでパッチを適用した不完全版tinyccをコンパイルし、mesccをコンパイルし直し、さらにもうちょっとマシなtinyccをコンパイルし・・・」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「というピンポンゲームを繰り返してtinyccとlibcを5回コンパイルしなおした後に、ようやくlong longとfloatをサポートしたtinyccのバイナリができあがる。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「tinyccが出来上がったので、gzip, tar, sed, patch, makeなどといったソフトウェアをビルドしていくのだが、バージョンがとても古い。最新のバージョンはビルドできないのだ。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「いくつかのツールをビルドした上でtinycc 0.9.27がビルドできるようになる。これまでビルドしていたのはtiny cc 0.9.26をM2-Planetに移植したもの。これでようやくGNU coreutils 5.0がビルドでき、catとかcpといった馴染み深いソフトウェアを使うことができるようになる。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「その次に必要なのはlexとyaccだ。しかしいきなりflexというわけにはいかない。最新版のflexをコンパイルできる環境はまだない。GNU makeはまだ3.8だし、実はbashもない。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「なのでCalderaとSunのコードを引き継いだlexとyaccをビルドする。これでようやくbash 2.05bとflex 2.5.11がビルドできる。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「ここまで作り上げてきた環境は色々と問題がありすぎてコマンドライン引数を255個以上取れないなどの成約があるので、ここまで作ってきたツールを使ってmesのlibcやtccをビルドし直す。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「次にビルドするのは軽量libc実装のmusl、今まではmesのlibc実装を使っていたが、これは貧弱すぎてうまく動かないのでここからはmuslを使う。当然これまでにビルドしてきたtccやsedやらもmuslを使うようにビルドし直す。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そしてようやくm4にたどり着く。m4は古代のマクロだが、もう少し新しいバージョンのautotools, flex, bisonで多用されている。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「grep 2.4やdiffutil 2.7、coreutils 5.0などをビルドしていく。5.0ではうまくビルドできなかったり問題のある一部のツールは6.10からビルドする。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そしてgawk 3.0.4。これはとても重要だ。というのもまだautomakeやautoconfはないので、しばらくビルドスクリプトはsedやawkを使い自前で文字列置換して動かなければならないからだ」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「そしてようやくperl 5.000にたどり着く。perlはautotoolsのビルドに必要なのだが・・・問題はperlをビルドするのにperlが必要なのだ。そこでビルドにperl依存の少ないとても古いperlを使い、どうしても残っているビルド用のperlスクリプトはawkで実装する。まだperlのconfigureスクリプトは使えない。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「perl 5.000がビルドできたのでバージョンをあげていく。一気に上げることはできない。5.003→5.004_05→5.005_03→5.6.2 とあげていく。前のバージョンのperlでビルドできる最新のバージョンがこうなっているからだ。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「perlが用意できたのでautoconf 2.52をビルドするが、まだautotoolsがないのでautoconfのスクリプトを自前でインストールした上でsedで文字列置換して動くようにする。autoconf 2.52はperlを必要としない最新のバージョンなので多少楽だ。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「automake 1.4-p6が必要。というのも古いバージョンのautoconfからブートストラップしていく必要があるのだが、古いバージョンのautoconfは古いautomakeが必要だからだ。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「再びmuslやtccのビルド。今回はarコマンドがあるのでtcc -arを使わなくていい。貧弱な環境のため当てていたパッチも当てずにすむ。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「autoconfのバージョンがとても大量に必要。ツールごとに使えるautoconfのバージョンが異なるからだ。新しすぎてもいけない。古すぎてもいけない。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「help2manのビルド。必須というわけではないが、これでドキュメントの生成をスキップするためのパッチが不要になる。findutils、libtoolなど」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「GCC 4.0.4、やったねだいぶ新しいぞ。でもビルドするのはCフロントエンドだけ。あとトップレベルmakefileもまだ使えない。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「成約はあるもののGCC 4.0.4が手に入ったので最新のmuslやbash 5.1がパッチを当てずにビルドできるようになる。そう、今までは成約がありすぎて色々とパッチを当ててごまかしていたのだ。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「既存のソフトウェアのある程度新しいバージョンをビルドしていく。初めてビルドするソフトウェアはgmpやmpfrやmpcなど。任意精度整数や浮動小数点数ライブラリ。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「flex 2.5.33をビルド。 すでにbison 3.4.1をビルドしているのだが次に控えるperlのために古い2.3をわざわざビルドしなければならない。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「perl 5.10.1をビルド。perl 5.32.1をビルドするために必要。このperlを使ってperl 5.32.1をビルドする。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「色々あるがgcc 4.7.4をビルドできる。こんどはC++バックエンドも有効。g++はgperfに依存しているのでパッチを当てて無効化する。このg++を使ってgperfをビルドする。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「多分まだまだ続くんだけど今の所ドキュメントはここで終わっている。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@EzoeRyou バイナリが信頼の連鎖で作成可能でも、悪意のあるソースコードを検証できるわけではないという印象」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「@tenpoku1000 Ken Tompsonの有名なバックドアへの対処法は、最初のseedたるバイナリをできるだけ小さくして人間が検証可能にするしか無い。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@EzoeRyou 途中から規模の大きなソースコードを導入し始めてる時点で、悪意のあるソースコードが混入してる可能性が排除できないんですよね」 / Twitter
- 岡田哲哉さんはTwitterを使っています 「ここから始まるスレッド、「ゼロから現代のOSを作るまでの長い道のり」って感じですごく面白い😁」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「perlのビルドにperlが必要でブートストラップが大変面倒なことになっているが、perlといえば @dankogai の感想とかがほしい。」 / Twitter
- Dan KogaiさんはTwitterを使っています 「@EzoeRyou FreeBSD が userland から perl を外した時のことを思い出した。awk++ 的なスクリプト言語は欲しかったけど、Perl自体は巨大すぎかつさらに成長している最中で、だからと言って perl が自身のビルド用にビルドする miniperl では能力不足で…結局 sh ハッカーたちが sed awk してなんとか山を避け…」 / Twitter
- Dan KogaiさんはTwitterを使っています 「@EzoeRyou miniperl とあるように、perl のビルドは2段ロケット🚀いや厳密にはそのあとモジュールのビルドもあるので3段ロケットなのだけど、perl自体が単体でPOSIX userland無双というか一種のbusyboxだけあってビルドもそれ相応に大変だった印象。セルフビルド比較までするgccほどではなかったけど」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「@dankogai このブートストラップでperlのビルドにperlが必要なのはperlについてくる生成済みソースファイルを使わずにそのファイルを自力で生成しようとしているからのようで、それさえ無視すればperlを用意するのは楽になりそう。」 / Twitter
- Dan KogaiさんはTwitterを使っています 「@EzoeRyou FreeBSD が perl 分離された頃には CPAN も充実してそこからインストールできるものは標準モジュールに入れなくてもよくなったこともあって今や perl 5 は言語実装としてはむしろ小さい方。この辺は emacs が重量級扱いから軽量に分類されるようになった遠隔と似てる」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「具体的に言うとホストのカーネルを使ってchroot jailかqemu(もしくはUSBストレージに書き出してベアメタルブートもできる)で作業する。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「最初のバイナリシードを最小にするために頑張っているのだが、実はもう一つ大きなバイナリシードが残っている。この作業をするためのLinuxカーネルで、これはホストのカーネルを使っている。」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「s/数バイト/数百バイト/」 / Twitter
- Dan KogaiさんはTwitterを使っています 「@EzoeRyou miniperl とあるように、perl のビルドは2段ロケット🚀いや厳密にはそのあとモジュールのビルドもあるので3段ロケットなのだけど、perl自体が単体でPOSIX userland無双というか一種のbusyboxだけあってビルドもそれ相応に大変だった印象。セルフビルド比較までするgccほどではなかったけど」 / Twitter
- Beyond Linux® From Scratch
- The Linux Kernel Archives
- Interactive map of Linux kernel
- お手軽Linuxカーネル開発/自動テスト - 覚書
- 暗黒美無王 dark VimさんはTwitterを使っています 「これを読むと、なぜArchLinuxが流行らないのかがわかりやすいですよ。 広く使われるLinuxは安定していて、そこに価値があるんです。 https://t.co/5p0kyP9rtz」 / Twitter
- 「Steam」開発のValveはなぜDebianからArch Linuxに乗り換えたのか? - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Linuxカーネルモジュール・プログラミングガイド。必要なツールの準備方法、Hello Worldモジュールの書き方から始まって、characterデバイスの設計、/procの対応、mutexとspinlockを使った排他制御、割り込みやあ暗号の扱いなどまでソースコードレベルで詳細に解説している。 https://t.co/WEVReuA1Qu」 / Twitter
- The Linux Kernel Module Programming Guide
- Hacker MaskeeさんはTwitterを使っています 「これ、Linuxと386BSDの作者の行動の違いが大きかったと思うよ」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「これ、なぜなのかな?BSDのほうが取っつきにくかったとか、そういう理由があるんだろうか?」 / Twitter
- Hacker MaskeeさんはTwitterを使っています 「パッチをガンガン取り込んでくれたというのと、全然反応してくれなかったというのの差があったと思う」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「386BSDを書いたJolitzがパッチを取り込んでくれなくて、仕方ないのでJolitzとは別にパッチをまとめるグループができて(patchkitグループ)、なんだかんだでNetBSD, FreeBSD, OpenBSDにそれが分裂してっていうのはわりと不幸な歴史だったなあ」 / Twitter
- FadisさんはTwitterを使っています 「今から丁度30年前の1991年8月25日、USENETのminixコミュニティに「386 AT互換機向けのOSを作っている。4月から作っていてようやく公開できそうだ。」という人物が現れた。ほどなくしてlinux-0.01がリリースされた https://t.co/zjpzNlECFo」 / Twitter
- Happy birthday – 30 Years of Linux | Ubuntu
- 世界で最も使われるオープンソースのUNIX系OS「Linux」が生誕30周年 - GIGAZINE
- 2021年8月26日 Happy Anniversary! Linux,30歳になる:Linux Daily Topics|gihyo.jp … 技術評論社
- Naoya HoriguchiさんはTwitterを使っています 「昨日のカーネルレポートの資料、アナウンスされてないけど以下からアクセスできるようだ。 https://t.co/u9ntDhMpRO」 / Twitter
- 202b11889d9ccbba9d15344fc708bc66f2d2b278-1629987572843.pdf
- トーバルズ氏と振り返る、30年前に"趣味"で始まった「Linux」の初期やこれまで - ZDNet Japan
- 2021年9月10日 Linusもたまには折れる!? "-Werror"問題は「"COMPILE_TEST"有効時」で決着:Linux Daily Topics|gihyo.jp … 技術評論社
- ドッグさんはTwitterを使っています 「MS-DOS に Linux を統合し,DOS 窓から DOS アプリケーションと Linux アプリケーションの両方を使えるようにしたらしい(なぜ…) | 'haileys/doslinux: Run Linux programs on DOS' https://t.co/2AMysnxVI4」 / Twitter
- haileys/doslinux: Run Linux programs on DOS
- yukiさんはTwitterを使っています 「Linus曰く、来年にはカーネルの主要な部分にRustのモジュールが統合されるかも、とのこと。いよいよなのかな!その他、LinusはCのいくつかの難点をRustでは解決できてるかも、と見ているなど😳/Linus Torvalds on Community, Rust and Linux’s Longevity https://t.co/BzBBWdG3l3」 / Twitter
- Linus Torvalds on Community, Rust and Linux’s Longevity – The New Stack
Plan 9
- Plan 9 Foundation
- Plan 9 From Bell Labs - Plan 9 from Bell Labs 翻訳プロジェクト
- Plan 9 from Bell Labs in Cyberspace! - Nokia Bell Labs
- plan9foundation/plan9: Plan 9 History, from 1992-09-21 to 2015-01-10.
Illumos
- illumos - Wikipedia
- Illumos - Wikipedia
- illumos
- illumos
Theseus
- ドッグさんはTwitterを使っています 「Rust で開発されてる live evolution や fault recovery を備えたモダンな OS.組込みシステムやデータセンターのエッジなどを想定してる.Intel NUC とかの実機でブートできるらしい | 'theseus-os/Theseus' https://t.co/QbGCc5YNJW」 / Twitter
- theseus-os/Theseus: A modern experimental OS written from scratch in Rust to explore novel OS structure and state management techniques.
- ドッグさんはTwitterを使っています 「知らなかったけど2017年から開発されてるのか.去年最新の紹介論文が OSDI '20 で出てた https://t.co/rJSsubxxEA」 / Twitter
- theseus_boos_osdi2020.pdf
TRON
- μITRON4.0仕様に準拠するためには | OsaruSystem
- なぜTRON OSが「非常に優れていたが外圧で潰された」とか「組み込みで世界標準OSだ」とかいう誇張された伝説をいまだに信じている人が大勢いるのですか?に対するFurukawa Isaoさんの回答 - Quora
- もなかさんはTwitterを使っています 「実身仮身ファイルシステムとか TRON 文字コードとか、構想先行の部分はあったけれども。 そして、割と上手く行かなかったのは構想先行の部分に偏っている、という雑感はある。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「実身仮身ファイルシステム、ナイーブに考えると何の制約もないグラフになるから実装大変だろうなって思う。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 ファイルシステムにデータモデルをマップしていると(例えば大きなCG映画の製作過程)、木構造の制約がきつくて有向グラフに出来たら楽なのにと思うけど、実際やろうとしてみると性能や安定性、そして何よりユーザのメンタルモデルがついていけなくなる」 / Twitter
- もなかさんはTwitterを使っています 「今の技術と使える計算機資源で、実身仮身ファイルシステムと TACL を実装するなら、どう作るだろう。 というのは、暇なときに、時々考える。 分散ハッシュとスマートコントラクトになるのだろうねぇ。ぶろっくちぇーん。」 / Twitter
- もなかさんはTwitterを使っています 「DHT に基づく分散ストレージだけで、概ね作れちゃいそうだけど。 永続性の強いリンクを張り続けようとすると、復元できる履歴を保存する必要がある。 そうすると、ブロックチェーンのお出ましだわなぁ。」 / Twitter
- 四弦/超越基底:いぶきさん.kml (佐藤陽花)@分散処理/RT-OS/コンピュータ言語さんはTwitterを使っています 「@monamour555 今これに取り組んでいます 恐らく今冬か来年あたりには最初の学会発表できそうではあります」 / Twitter
Rust
- フリースタンディングな Rust バイナリ | Writing an OS in Rust
- Writing an OS in Rustを読んでの気がつき
- Writing a Linux-compatible kernel in Rust
- 2021年4月15日 パニックお断り―Linus,"Rust for Linux"の盛り上がりに釘を刺す:Linux Daily Topics|gihyo.jp … 技術評論社
- κeenさんはTwitterを使っています 「メモリ不足でパニックするのは標準ライブラリの設計ですね。言語仕様ではない。なので標準ライブラリ相当のものを自前で実装すればパニックしないことも可能です。」 / Twitter
- κeenさんはTwitterを使っています 「これ、Rustにメモリ確保するような構文あったっけと思ってメーリスのスレッド追ったけどLinusは「Rustよく分からないけどもしそんな構文があるならダメだよ」くらいのニュアンスで言ってるっぽい。続くスレッドで標準ライブラリの作りの問題だからライブラリどうしようねと議論が続いてる」 / Twitter
- κeenさんはTwitterを使っています 「Linusの続く返信これね。Rustの標準ライブラリの 多くの型の `new` 関数がC++の `new` 構文相当の挙動するのがよくないと言及してる。それをやめて `Result` にするような関数群を用意する方針になるだろうとも。 https://t.co/OZUE4ybuw6」 / Twitter
- LKML: Linus Torvalds: Re: [PATCH 00/13] [RFC] Rust support
- κeenさんはTwitterを使っています 「結構昔から組み込み方面でもパニックしないタイプのAPI群が欲しいという要望は上がってて、プランとかも上がってたけど結局進んでないなぁ。Rustの作りとしてアロケータが絡むAPIは分離されてるからそれを使わずに自分達で再実装するかRust側にno-panicサポートを要求するかになるんじゃないかな?」 / Twitter
- 嶋田大貴さんはTwitterを使っています 「Cコンパイラの生成したコードはヒープに勝手にメモリを確保したりしないけど、Rustみたいにメモリ管理込みの言語だとコンパイラがヒープ確保込みのコードを生成することになるだろうからメモリ不足状況下でパニックするのでは?ユーザーランドならいいけどカーネルでそれはダメやろ?ってことですね。」 / Twitter
- 嶋田大貴さんはTwitterを使っています 「mallocに失敗した時にシステムを停止させずにきちんとエラーリターンできるかどうかっていうのは組み込み系の人ならいつも気にしてるんじゃないのかな知らんけど。気にするとしんどいので代わりにstaticなアドレスに固定長でスペースを確保しておくとかしがち(可能なプラットフォームなら)だと思う。」 / Twitter
- 嶋田大貴さんはTwitterを使っています 「MMUのないプロセッサで任意の物理アドレスにアプリケーションをロードして走らせるようなプラットフォームだと static使えなかったりするんだよね。あ、嫌な思い出が・・・」 / Twitter
- 嶋田大貴さんはTwitterを使っています 「嫌な思い出が実は夢であって欲しいと brew arm で検索したらMacの情報しか出てこなかった。」 / Twitter
- Rust言語でファームウェア、OS、言語処理系を実装して、CSS 2020で発表した - 未完成な論を綴るブログ
- Rust言語によるOSと言語処理系ができるまで - 未完成な論を綴るブログ
- BLisp言語のドキュメントを作成しcrates.ioに登録してみた - 未完成な論を綴るブログ
- 自作言語BLispがHackers Newsで話題になっていた - 未完成な論を綴るブログ
- ytakanoさんはTwitterを使っています 「Linux Kernel in Rust、panicするアロケータを取り除いたと書いてある。 https://t.co/kqOdpmapuZ」 / Twitter
- [PATCH 00/17] Rust support - ojeda
- ytakanoさんはTwitterを使っています 「アロケータがOptionで返ってくると、データ構造のnewやinsertの返り値ももOptionにしないといけないような。」 / Twitter
- 入門 Reseaオペレーティングシステム
- Linuxカーネル開発の第2言語にRustを採用する試み、議論の意義とこれから - ZDNet Japan
- まちカドおるみんさんはTwitterを使っています 「ownership はべつに Rust 固有ではなく C++ の unique_ptr と move semantics でも実現されているもの。だけれど、これを型システムに折り込んだものが研究ではいくつかあれど実用される上で中々見ないというだけだと思う。」 / Twitter
- 2021年8月第4週 Android OSの開発にRustが使われる:Android Weekly Topics|gihyo.jp … 技術評論社
- Hideyuki TanakaさんはTwitterを使っています 「https://t.co/vxYAxSU4yg ChromiumもRust使おうとしてんの?(´・_・`)」 / Twitter
- c5fb8a006339ad45fef217f7c0045df6f6a45f4c - chromium/src - Git at Google
- Hideyuki TanakaさんはTwitterを使っています 「GAFA&MSのなかで、Rustを使っていないのAppleだけ(´・_・`)」 / Twitter
- HatさんはTwitterを使っています 「@tanakh ちょうど今週のThis Week in RustにAppleのRust求人が。実は使ってるっぽいです。」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「@n_hatta ふむふむ、メディアプロダクツでJava、Rust、C#、Swiftでのバックエンドシステムの経験ですか。そういうところにRust使ってる(使おうとしてる?)んですねえ。」 / Twitter
- UNIX®, an Open Group Standard
- MR12.7 - Multics Wiki
- だめぽラボ@技術書典9さんはTwitterを使っています 「みんな[誰?]が欲しているのはPOSIXではなくLinuxだし、標準C++ではなく<bits/stdc++.h>の使えるG++だし、WebブラウザーではなくてChrome/Chromium」 / Twitter
- Igalia - Open Source Consultancy and Development | Index
- Birchill
- /pub/FreeBSD/releases/amd64/amd64/ のインデックス
- Operating Systems: Three Easy Pieces
- NetBSD Internals
- The ADvanced Systems Laboratory (ADSL): Publications
- BAN.AI Public Access Multics
- Ban.ai Public Access Multics | Hacker News
- OSKitで遊ぼう - Kota Abe
- NetBSDを手探りで移植したときの話 - Qiita
- kosakiのブックマーク - はてなブックマーク
- 筑波大学情報科学類:情報システム実験:カーネルハック
- オープンソースOS「Haiku R1/ベータ3」が公開 | TECH+
- これまでどんなOSが開発されてきたのか&どう派生したのかが見てわかる系図が公開 - GIGAZINE
- nakst / essence · GitLab
Hardware
その他
レガシー
- IBM、「Power10」プロセッサ搭載でx86より高速なサーバー - PC Watch
- IBM Power Virtual Server - 概要 - 日本 | IBM
- SPARC/Solarisをクラウドに移行できるサービス - 製品&サービス:IT:日経クロステック Active
- アメリカの「MIPSマイクロプロセッサ」のライセンスが複雑な取引を経て中国の手に渡った経緯とは? - GIGAZINE
- MIPSは中国半導体産業のエンジンとなるか? - 吉川明日論の半導体放談(155) | TECH+
PC Watch
- 【藤山哲人と愛すべき工具たち】ネジ山が潰れた! ネジ頭が取れた! 悲劇を救う天使の工具 - PC Watch
- 東工大、IoT向けCPUアーキテクチャ「SubRISC+」。エネルギー効率3.8倍 - PC Watch
- Hara-Laboratory/subrisc: SubRISC: Simple Instruction-Set Computer for IoT edge devices
- SUBRISC - Google 検索
- SubRISC+ メモ: 竹下世界塔の計算機よもやま話
- 全世界のPC出荷は引き続き増加。半導体不足で今後は需要が鈍化の可能性も - PC Watch
- 中国での半導体製造、2021年にも日本を上回る見込み - PC Watch
GIGAZINE
- 細胞分裂による増殖が可能な人工生物が作り出される - GIGAZINE
- 自然に成長し分裂する「人工生命体」が開発される - ナゾロジー
- 半導体製造業の復活を試みる日本の取り組みに対する海外メディアの評価とは? - GIGAZINE
- アメリカVS中国の半導体開発競争で鍵を握るオランダ企業の精密機械とは? - GIGAZINE
- 世界中の半導体製造業者が頼る露光装置メーカー「ASML」はどんな会社なのか - GIGAZINE
- 全パーツを好きなタイミングで交換できる自作ノートPC「Framework Laptop」とは? - GIGAZINE
自作ユーザーが解説するゲーミングPCガイド
- リーク情報の用語解説 - 自作ユーザーが解説するゲーミングPCガイド
- OEMとかリテールとかってなんだ? - 自作ユーザーが解説するゲーミングPCガイド
- CPUサーマルグリスについて - 自作ユーザーが解説するゲーミングPCガイド
- CPUサーマルパッドについて - 自作ユーザーが解説するゲーミングPCガイド
- 140mm/120mm PWMファンの比較 -Noctua神話は本当か?- - 自作ユーザーが解説するゲーミングPCガイド
- ALLDATASHEET.COM - Datasheet search site for Electronic Components and Semiconductors and other semiconductors.
- BugStories
- “PC”の定義は何か まずはIBM PC登場以前のお話から (1/3) - ITmedia NEWS
- CPUのキーワード(ブランド、命令セット、マイクロアーキテクチャ、拡張命令セット)の説明 - Qiita
- 第635回 Ubuntuでパソコンを光らせよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- なぜもっとたくさんのコアを搭載したCPUを作らないのでしょうか?2000コアのGPUなんかそこら辺にありますが、なぜCPUでは同じようにできないのでしょうか?に対するHayashida Katsutoshiさんの回答 - Quora
- マイコン製品における出荷テストとは:ハイレベルマイコン講座【出荷テスト編】(1)(1/4 ページ) - EDN Japan
- マイコン製品出荷時に実施されているテスト内容:ハイレベルマイコン講座【出荷テスト編】(2)(1/5 ページ) - EDN Japan
- CPI Cycles ALU - Google 検索
- ASCII.jp:Windows PCのヘッドセット端子にマイクは直接接続可能……ではない!? (1/2)
- FadisさんはTwitterを使っています 「I2C(Inter Integrated Circuit)の後継規格がImproved Inter Integrated Circuit略してI3Cなのいいセンスしてる。しかしI2Cの人気は絶大なので相対的にあまり流行っていない」 / Twitter
- FadisさんはTwitterを使っています 「I3CがI2Cと比べて良くなっている点としてはまずデバイスに動的にアドレスを振る方法と、デバイスをスリープ/復帰させる方法が標準化された。更にクロックの上下のエッジでデータを送り、クロックが変化していないけどデータ線の値が変化している状態も使って6clockで16bitを送り、30Mbpsを超えられる。」 / Twitter
- Steve WeisさんはTwitterを使っています 「Discovering a CPU bug is the worst because after proving how smart you are, you are still stuck with a broken CPU. https://t.co/hYtqb147E3 https://t.co/Uns3PqUMg0」 / Twitter
- Cores that don't count - hotos21-s01-hochschild.pdf
- Ascenium社は、CPUを再発明し、命令セットを完全に破壊しようとしている。|自作.com
- 20210724
- ロボットプログラミングで遊んだ - 未完成な論を綴るブログ
- Mune-sanさんはTwitterを使っています 「2005年も今も、VHDLやVerilog HDLで書いて、ModelSimでシミュレーションして、QuartusでコンパイルするAlteraのFPGA。自動化はTcl」 / Twitter
- DSC-WX500 | デジタルスチルカメラ Cyber-shot サイバーショット | ソニー
- FM/短波/中波ラジオSRW-710※日本FM帯対応版 – Shigezone Online
- 20210814
- Jingjia Micro社、JM9シリーズGPUをテープアウト、GTX 1080のパフォーマンスを目指す|自作.com
Intel
その他
PC Watch
- Intel、ポストCMOSとなる新半導体素材「MESO」 ~CMOS比30分の1の消費電力や5倍の演算性能、ムーアの法則継続にも - PC Watch
- 他人のPCで仮想通貨マイニングする攻撃を防ぐIntelとMicrosoftの技術 - PC Watch
- Intel、仮想化処理などデータセンターのCPU負荷を軽減する「IPU」 - PC Watch
- Intel、半導体技術首位の座を2025年に奪還する意欲的な新ロードマップ - PC Watch
- 【笠原一輝のユビキタス情報局】巻き返しなるか!? Intelが今後4~5年で5世代分のプロセスノードを連投 - PC Watch
GIGAZINE
- Intelの先進研究機関「Intel Labs」がどのような問題に取り組んでいるのかを中の人が解説 - GIGAZINE
- Apple・AMD・テスラ・Intelを渡り歩いた天才エンジニアのジム・ケラー氏へのインタビューが公開中、Intelで一体何をしていたのか? - GIGAZINE
- Intelが自動車向けチップ生産を計画中、6~9カ月以内の生産開始が目標 - GIGAZINE
- MicrosoftとIntelが勝手に仮想通貨を採掘する「クリプトジャッキング」からデバイスを保護する機能を発表 - GIGAZINE
- IntelがQualcommと提携し新チップを製造すると発表、2025年までのロードマップも公開 - GIGAZINE
- Intelが第2世代ニューロモルフィックチップ「Loihi 2」を発表、試作段階の「Intel 4」プロセスノードを採用 - GIGAZINE
Publickey
- インテルから「oneAPI」登場。アプリケーション起動時にCPU/GPU/FPGA構成を自動判別、処理を適切なプロセッサに割り振る[PR] - Publickey
- インテル、新デバイス「Infrastructure Processing Unit」(IPU)発表。スマートNICを拡張しストレージ仮想化やネットワーク仮想化処理などCPUからオフロード可能に - Publickey
マイナビニュース
- 完全版!! 「Core i7」極限検証 - 内部アーキテクチャ解析編 (13) Cache (3) | マイナビニュース
- なぜTSMCだけEUVプロセスで高い歩留まりを達成できるのか? | マイナビニュース
EE Times Japan
- AMDは2016、Intelは2014……。最新CPUチップの刻印が意味するもの (1/3) - EE Times Japan
- 前進し続けるIntel:製造委託は成熟したアプローチ - EE Times Japan
自作.com
- Sapphire Rapidsの予備機能が明らかに。56コア、64GB HBM2E、MCMデザイン|自作.com
- インテルとマイクロソフト、仮想通貨ジャッキング対策で提携|自作.com
- インテルのSkylake Visionaryがクライアントチップ開発の指揮に復帰|自作.com
- インテルがGlobalFoundriesを300億ドルで買収する交渉を開始|自作.com
- 2025年までのインテルのプロセスロードマップ。プロセスノードの名称変更、オングストローム時代の幕開け|自作.com
- インテル社、第3四半期の消費者向けチップの不足を警告|自作.com
- Intel: 来るべき米国のFabは小さな都市になり、600億~1,200億ドルのコストがかかる|自作.com
- インテル、ソフトウェア定義のXeon CPUを準備:今買って、後で機能を追加|自作.com
- intel/intel-sdsi
- インテル、4nmのLoihi 2 Neuromorphicリサーチチップを公開|自作.com
自作ユーザーが解説するゲーミングPCガイド
- インテル、民生用チップ向けに2021年第3四半期までABF基板が不足することを確認、CPU価格の上昇を予想 - 自作ユーザーが解説するゲーミングPCガイド
- インテル、2025年以降のプロセスロードマップを発表。新しいネーミングスキーム、10nm ESFはIntel 7、7nmはIntel 4、Intel 3、Intel 20A、そしてその先へ - 自作ユーザーが解説するゲーミングPCガイド
- 2022年からのIntelのデスクトップCPUの考察 - 自作ユーザーが解説するゲーミングPCガイド
- インテル、RTX/DLSS技術を開発した元NVIDIA研究員のAnton Kaplanyan氏を引き抜き - 自作ユーザーが解説するゲーミングPCガイド
- instlatx64
- Identify CPU features (beta)
- インテル チップセット - Wikipedia
- Template:Intel processors - Wikipedia
- mjg59 | Microsoft aren't forcing Lenovo to block free operating systems
- a4lg.com | x86 ファミリーとモデル一覧
- IntelのCPUの末尾についているK, S, Tなどのアルファベットについて
- BIOS Implementation Test Suite
- bochs.sourceforge.net/techspec/PORTS.LST
- ASRock Rack > E3C236D2I
- Intel iAPX 432 - Wikipedia
- intelのCPUロードマップ : 過去・現在・未来のLake – curional
- RISCとCISCの境目がなくなる Pentium Proの逆襲 (1/3) - ITmedia NEWS
- Microarchitecture Cheat Sheet - Google スプレッドシート
- インテル、CPUの性能アンロックコードを販売 - Engadget 日本版
- 北森瓦版 - Intel コンシューマ向けのOptane SSDを終売へ―後継製品の予定もなし
- Intel Lightning Mountain を追う | Coelacanth's Dream
- 20210327
- IACAとは何ですか?どのように使用しますか? - Javaer101
- Intel Invests $3.5 Billion in New Mexico Fab to Focus on Foveros Packaging Technology
Intel
- Microcode Revision Guidance (Apr 3, 2018)
- Intel® Product Security Center
- Intel® Desktop Chipsets
- Intel Processors and Chipsets by Platform Code Name
- ISA Extensions | Intel® Software
- Hisaki Oharaさんのツイート: "ISA Extensions出てた。主にguest OS monitoringを実現するためのEPT-based Sub page permission、これ変態機能でしょう https://t.co/7yNl961Zl7"
- Hisaki Oharaさんのツイート: "ISA ExtensionsのTable 1-1が死ぬほど便利。特定の命令セットがどの世代から入ったかまとめられている。つうかなんで今までなかったのか。あとさりげなくIcelakeの文字が。 https://t.co/7yNl961Zl7 https://t.co/sujkidSIX2"
- Hisaki Oharaさんのツイート: "BPU (Branch Prediction Unit)は最近のOptimization Reference Manualには最低限のことしか書いていないのだけど、Branch Target Bufferといった言葉の意味を知る程度でよければ、Pentium IIとかIIIの時代… https://t.co/frQiiqVWPA"
- Intel® Architecture Optimization
- Hisaki Oharaさんのツイート: "いまどきのアーキテクチャでは激変しているはずなので参考以上で受け取っては駄目です。ただ、Google Project Zeroのblogを読む際の一助になるかもしれない。つうかこのファイル、https://t.co/SJAL9HrWvEからまだダウンロードできるようになっていると… https://t.co/rB3R5eKitY"
- Benefitting Power and Performance Sleep Loops | Intel® Developer Zone
- Intel® Architecture Instruction Set Extensions and Future Features Programming Reference
- Intel® Software Development Emulator | Intel® Software
- Intel® 64 and IA-32 Architectures Software Developer Manuals | Intel® Software
- EM64T_VOL1_30083402_i.pdf
- EM64T_VOL2_30083502_i.pdf
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
- IA-32 インテル® アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル
- IA-32 インテル® アーキテクチャ ソフトウェア・デベロッパーズ・マニュアル
- インテル® リソース・ディレクター・テクノロジー (インテル® RDT)
- Intel® Product Specifications
- Intel® Core™ Processors Technical Resources
- Intel® Xeon® Processors Technical Resources
- Intel® Chipsets
- Intel® Server Chipsets
- IPMI Technical Resources
- 製品の仕様情報 - Intel® Optane™ Memory Series
- Intel® 64 and IA-32 Architectures Optimization Reference Manual
- 10th Generation Intel® Core™ Processor Instruction Throughput and Latency Docs | Intel® Software
- 8th and 9th Generation Intel® Core™ Processor Families Datasheet, Volume 1 of 2
- Intel® Mobile Chipsets
- Intel® Architecture Instruction Set Extensions Programming Reference | Intel® Software
- Hardware List
- Intel® Virtualization Technology for Directed I/O Architecture...
- Affected Processors: Transient Execution Attacks & Related Security Issues by CPU
- Memory Encryption Technologies
- Intel® Architecture Instruction Set Extensions Programming Reference - architecture-instruction-set-extensions-programming-reference.pdf
- intel/optimization-manual: Contains the source code examples described in the "Intel® 64 and IA-32 Architectures Optimization Reference Manual"
- Intel(R) 64 and IA-32 Architectures Optimization Reference Manual - 64-ia-32-architectures-optimization-manual.pdf
- Flexible Return and Event Delivery (FRED) Draft Specification
- Intel AVX512-FP16 Architecture Specification
- Intel® Software Development Emulator
- Affected Processors: Transient Execution Attacks & Related Security...
- Nios® V Processor - Intel® FPGA
デスクトップ
Coffee Lake
Intel
- Intel Core i38100 Processor 6M Cache 3.60 GHz 製品仕様
- インテル® Core™ i5-9400 プロセッサー (9M キャッシュ、最大 4.10 GHz) 製品仕様
- 新しい保護機能をハードウェアに実装
- 8th Gen (S-platform) Intel® Processor Family Datasheet Vol.1
- 8th Gen (S-platform) Intel® Processor Family Datasheet Vol.2
- 8th Gen (S-platform) Intel® Processor Family Spec Update
- Intel® 300 Series Chipset Platform Controller Hub (PCH) Datasheet, Vol 1
- Intel® 300 Series Chipset Platform Controller Hub (PCH) Datasheet, Vol 2
- Intel® H370 Chipset Product Brief
- Intel® Z390 Chipset Product Brief
- インテル® Wireless-AC 9260 製品仕様
- インテル® Wireless-AC 9560 製品仕様
- Coffee Lake - Microarchitectures - Intel - WikiChip
- Core i3-8100 - Intel - WikiChip
- Intel Core i3-8100 - CM8068403377308 / BX80684I38100 / BXC80684I38100
- ASRock > B360M-HDV
- 【後藤弘茂のWeekly海外ニュース】Intel「第8世代Core」に見る、微細化準備が整っても、製品を移行させない/させたくない理由 - PC Watch
- Intel、第9世代Coreプロセッサに「Meltdown」対策をハードウェア実装 ~開発中の“単体GPU”のコンシューマ向け投入も明言 - PC Watch
- Intel、次期CPUにSpectre対策機能をハード実装 - PC Watch
- Intel、第9世代Core「Coffee Lake Refresh」を2021年末に製造終了 - PC Watch
- Core i7-9700Kの新ステッピング、今度はリテールパッケージが入荷 - AKIBA PC Hotline!
- Intelが脆弱性「Spectre」「Meltdown」をハードウェアレベルで対策したCPUを2018年後半にリリースすると発表 - GIGAZINE
- 新ステッピング「R0」のCore i7-9700Kが発売開始~既流通品と選択可能~ - エルミタージュ秋葉原
- 北森瓦版 - デスクトップ向けCore i 9000 seriesのS-specとsteppingを理解しよう
- Intelで脆弱性緩和済みCPUリスト - Qiita
- Spectre and Meltdown Hardware Protection Added to Intel's 9th Gen CPUs
Comet Lake
- インテル® Celeron® プロセッサー G5905 (4M キャッシュ、3.50GHz) 製品仕様
- Intel Celeron G5905 - CM8070104292115 / BX80701G5905 / BXC80701G5905
- Comet Lake - Microarchitectures - Intel - WikiChip
- Z490 UD AC (rev. 1.0) フォトギャラリー | マザーボード - GIGABYTE Japan
- インテル® Celeron® プロセッサー G5925 (4M キャッシュ、3.60GHz) 製品仕様
- Intel Celeron G5925 - CM8070104292013 / BX80701G5925 / BXC80701G5925
- PRIME B460M-A - スペック|マザーボード|ASUS 日本
- Intel、10コア/5.3GHz動作の「Core i9-10900K」など第10世代Sプロセッサを展開 ~TB Max 3.0やThermal Velocity Boostサポートで高クロック動作 - PC Watch
- Intel、よりセキュアな第10世代Core vProプロセッサ - PC Watch
- BIOSTAR製IntelマザーがAMD Smart Access Memoryをサポートへ ~2021年1月より提供の最新BIOSで対応予定 - PC Watch
- ASUS、最新のBIOSアップデートによりIntel Z490, H470 & B460マザーボードのサイズ変更可能なBAR(スマートアクセスメモリ)をサポート可能に - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - Radeon RX 6000 seriesのSmart Access Memoryの話題いろいろ
- 北森瓦版 - “Comet Lake-S”のPL1, PL2, Tauの値
- intelの第10世代は、あらかたの脆弱性が対策済みなのですか? - Quora
Rocket Lake
- Intel Core i511500 Processor 12M Cache up to 4.60 GHz Product Specifications
- Intel Core i5-11500 - CM8070804496809 / BX8070811500 / BXC8070811500
- CPUID for Intel Core i5-11500 (by tenpoku1000)
- Rocket Lake - Microarchitectures - Intel - WikiChip
- Z590 D (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
- InstLatX64さんはTwitterを使っています 「#Intel Core i7-11700KF (Rocket Lake-S) A0671 CPUID dump (#CypressCove, #AVX512F/CD/BW/DQ/IFMA/VBMI/VBMI2/VNNI/BITALG/VPOPCNTDQ/GFNI/AES/VPCLMUL supported, #AVX512_VP2INTERSECT unsupported) Commit: https://t.co/7vEz7YzH9P https://t.co/hVTEgW2O6M」 / Twitter
- Intel Core i7-11700KF (Rocket Lake-S) A0671 CPUID dump · InstLatx64/InstLatx64@1bbddaf
- InstLatX64さんはTwitterを使っています 「#Intel Core i7-11700K (#RocketLake-S) A0671 CPUID dump, x64 InstLat dump added (thx, @IanCutress!) Good: critical byte-granularity cross-lane instructions behave the same way as on SNC/WLC Bad: tp of FP zmms are half of ymms = single 512bFPU Commit: https://t.co/jLHZfEFvCR https://t.co/STWAZddr7E」 / Twitter
- OctalCore Intel Core i7-11700K (Rocket Lake-H/S) A0671 CPUID dump, x6… · InstLatx64/InstLatx64@2903c11
- 北森瓦版 - Multi-thread時の動作周波数を引き上げる“Rocket Lake-S”のAdaptive Boost
- Intel、デスクトップ向け第11世代Core「Rocket Lake-S」の詳細を発表 ~CPUはIPCを大幅向上させたCypress Cove、GPUにXe Graphicsを採用 - PC Watch
- Rocket Lake-Sこと第11世代Coreデスクトップ・プロセッサが正式発表 - PC Watch
- 【Hothotレビュー】新コア設計でゲーム性能が向上した第11世代Coreを徹底ベンチマーク - PC Watch
- GeForce RTX 30シリーズで「Resizable BAR」対応開始 - PC Watch
- ASUS、M.2 SSDをツールレスで固定できる新機構「M.2 Q-LATCH」 - PC Watch
- Intel B460/H410マザーは第11世代Core対応できず - PC Watch
- GCC と LLVM に Rocket Lake のオプションが追加 | Coelacanth's Dream
Tiger Lake
- Intel、65W動作のデスクトップ版Tiger Lake「Core i9-11900KB」を追加 - PC Watch
- intel 10nm Tiger Lake CPUが第11世代デスクトップ・プラットフォームに登場、WillowCoveコア搭載のBシリーズチップ、TDP65Wを実現 - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - 末尾“B”―TDP65Wでデスクトップ向けの“Tiger Lake”
- インテル、超高クロックの65W BシリーズTiger Lake CPUを掲載|自作.com
- Intelの愛好家グレードのCore i9-11900KB Tiger Lake CPUがベンチマークされた|自作.com
Alder Lake
- Ocean Cove - Microarchitectures - Intel - WikiChip
- Alder Lake - Microarchitectures - Intel - WikiChip
- Intel、2021年にCore/Atom両系統のCPUを搭載したクライアントPC向けCPU「Alder Lake」を投入へ ~サーバー向けのIce LakeはPCIe Gen4に対応し、Sapphire RapidsではPCIe Gen 5に対応へ - PC Watch
- 【イベントレポート】Intel、次世代CPU「Alder Lake-S」をデモ。ノート向けで8コア/5GHz駆動のCore Hも投入 - PC Watch
- Alder Lake搭載PCの実機や第11世代Core新SKUなど。Intel基調講演 - PC Watch
- Intel、次期CPU「Alder Lake」に搭載される新コアの詳細を発表 - PC Watch
- Intel次期CPU「Alder Lake」はWindows 11に最適化されたスレッド割り当て機能を搭載 - PC Watch
- Miura HidekiさんはTwitterを使っています 「Alder Lake DeepDive - HotChipsで垣間見たIntel「Alder Lake」の細部 | マイナビニュース https://t.co/BVJhuVk65I Thread Directorのテーブル、定期的にダンプするとパフォーマンス解析にかなり有効そう。いいなー」 / Twitter
- Alder Lake DeepDive - HotChipsで垣間見たIntel「Alder Lake」の細部 | マイナビニュース
- Intelの次期CPU「Alder Lake」、2種類のCPUコアを積む構造と性能 - Intel Architecture Day 2021レポート | マイナビニュース
- Miura HidekiさんはTwitterを使っています 「または、JITコンパイラでこの情報を使って動的に再コンパイルするとか判断できそう」 / Twitter
- Intel Alder Lake、Sapphire Rapids にて追加される2つの命令 ――AVX2 VNNI /HFNI | Coelacanth's Dream
- Intel、拡張命令リファレンスをアップデート (Sapphire Rapids /Alder Lake /ハイブリッドプロセッサ) | Coelacanth's Dream
- ChromiumOSへのパッチから Alderlake-S / Alderlake-P を確認 | Coelacanth's Dream
- Alder Lake では BIOS から一方の CPUタイプを無効化可能 | Coelacanth's Dream
- Alder Lake (Golden Cove + Gracemont) のキャッシュ詳細 | Coelacanth's Dream
- Intel Architecture Day 2021 個人的まとめ ―― Gracemont, Golden Cove, Alder Lake | Coelacanth's Dream
- Intel Alder Lake PCIe5.0の構成がcorebootで詳しく説明されていると報告|自作.com
- Alder LakeのチップセットはPCIe Gen 5.0をサポートしない|自作.com
- Alder Lake、DDR5-6400メモリでテスト、予想外の高レイテンシーに|自作.com
- インテル社のパット・ゲルシンガーCEO、Alder Lake、Sapphire Rapidsを経て「AMDのリードは終わった」と宣言|自作.com
- パット・ゲルシンガー氏は、ソフトウェアサポートのないシリコンはバグであると言う。|自作.com
- 北森瓦版 - “Alder Lake”は“Commet Lake / Rocket Lake”よりも高消費電力になる?
- 北森瓦版 - ASRockのIntel 600 seriesチップセット搭載マザーボードのラインナップ
- 北森瓦版 - “Alder Lake-S”+Z690チップセットのダイアグラム
- 北森瓦版 - “Alder Lake-S”のTDP35Wモデルのラインナップとスペック
- 第12世代Alder Lake 35WデスクトップCPUのラインアップがリーク - Core i9が16、Core i7が12、Core i5が6、Core i3が4コアに - 自作ユーザーが解説するゲーミングPCガイド
- Intel Z690チップセット搭載マザーボード(Alder Lake CPU用)の24ピンコネクタの保持について - 自作ユーザーが解説するゲーミングPCガイド
- ギガバイト「Z690」マザーボードのラインアップがリーク - Alder Lake CPU向けにDDR5とDDR4のAORUSをラインナップ - 自作ユーザーが解説するゲーミングPCガイド
Raptor Lake
- Intel Raptor Lakeデスクトップ&モバイルCPUファミリーがリーク、ハイブリッドコアのアップグレードとゲームキャッシュで2022年に発売の見込み - 自作ユーザーが解説するゲーミングPCガイド
- Intel Z690「Alder Lake」マザーボードは2021年第4四半期、Z790「Raptor Lake」は2022年第3四半期、AMD AM5「Ryzen」マザーボードは2022年第2四半期に発売予定 - 自作ユーザーが解説するゲーミングPCガイド
- インテル第13世代Raptor Lake-SデスクトップCPUの詳細な電力要件 - 125W、65W、35Wのフレーバーで提供予定 - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - “Alder Lake”の次になる2022年のCore processorは“Raptor Lake”?
- 北森瓦版 - “Raptor Lake”のSKUとP-coreである“Raptor Cove”の話題
Meteor Lake
- Golden Cove - Microarchitectures - Intel - WikiChip
- Meteor Lake - Microarchitectures - Intel - WikiChip
- Intel、2023年に7nmのコンピュートタイルを持つ「Meteor Lake」を投入。x86 CPUのIPも顧客に提供へ - PC Watch
- インテル、Meteor Lake 5-125W Coreシリーズ CPUと最大192EU GPUを発表、第12世代Alder Lakeは10月27日発売と示唆 - 自作ユーザーが解説するゲーミングPCガイド
- Intel Meteor Lake CPU、Appleチップと同様のVPU「Neural Engine」アクセラレーションを搭載か - 自作ユーザーが解説するゲーミングPCガイド
Arrow Lake
- 北森瓦版 - “Meteor Lake”の先―“Arrow Lake”、“Lunar Lake”、“Nova Lake”
- 北森瓦版 - 第15世代Core相当の“Arrow Lake-P”は14-core + 320 EU iGPUとなる?
- 北森瓦版 - Intelの“Royal Core Project”と今後のXeon Scalable Processorの流れ
- Intel CEO、Alder Lake CPUは「AMD Zenのような」3つの大きな革新的アーキテクチャを発表、ARC Alchemist Xe-HPG GPUはNVIDIAにプレッシャーを与えると発言 - 自作ユーザーが解説するゲーミングPCガイド
Lunar Lake
- GPUドライバーにIntel Lunar Lake、Jupiter Sound、DG3が発見された - 自作ユーザーが解説するゲーミングPCガイド
- Intel Lunar Lake 'Next-Gen' Core CPUはLinuxパッチで初のサポートを得る、2023年までにMeteor Lakeの後継が期待される - 自作ユーザーが解説するゲーミングPCガイド
- Intelのポストコア「Royal Core」時代の噂。Lunar LakeはLion CoveコアでMeteor LakeよりIPCが30%向上し、2024年にはAMD Zen 5コアに挑む - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - Linuxのパッチに現れた“Lunar Lake”―“Meteor Lake”の後継で'23年頃
- 北森瓦版 - Intelの“Royal Core Project”と今後のXeon Scalable Processorの流れ
Nova Lake
- インテルの次世代CPU「Arrow Lake」「Lunar Lake」「Nova Lake」は「Meteor Lake」を継承するとの噂 - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - “Meteor Lake”の先―“Arrow Lake”、“Lunar Lake”、“Nova Lake”
HorseCreek
- SiFive、高性能RISC-VプロセッサIP「P550」を発表 - Intelが採用予定 | TECH+
- 【スペック一覧】デスクトップ向けIntelプロセッサー・ナンバー一覧表 - PC Watch
モバイル
8th, 9th Core
- 【笠原一輝のユビキタス情報局】第8世代Coreプロセッサの本当のコードネームはどれ? ~Kaby Lake Refresh、Coffee Lake、Cannonlakeの3つが同じ製品ブランドで同時展開 - PC Watch
- 【笠原一輝のユビキタス情報局】Intel、今年後半に8コアのCoffee Lake Refresh、2019年にComet Lakeを投入へ ~Xプロセッサの28コアはBasin Falls Refreshに - PC Watch
- 【笠原一輝のユビキタス情報局】Whiskey LakeとAmber Lakeの正体 - PC Watch
- インテル® Core™ i5-8250U プロセッサー (6M キャッシュ、最大 3.40 GHz) 製品仕様
- Intel Core i5-8250U Mobile processor - FJ8067703282221
- iiyama STYLE-15FH038-i5-UHEX [Windows 10 Home] | パソコン工房【公式通販】
- インテル® Core™ i5-8265U プロセッサー (6M キャッシュ、最大 3.90 GHz) 製品仕様
- DELL CINEMAテクノロジー搭載のInspiron 15インチ5583ノートパソコン | Dell 日本
- 最新Intel NUC「BEAN CANYON」が計4モデル発売、Core i7/i5は4コア8スレッド - AKIBA PC Hotline!
- Intel NUC「BEAN CANYON」の薄型モデルにCore i3搭載版が登場 - AKIBA PC Hotline!
- 製品の開発コード名 Whiskey Lake
- Whiskey Lake-Uを搭載したNUCマザーボード、ASRock「NUC-8365U」 - エルミタージュ秋葉原
- ASRock Industrial > NUC-8265U
- 製品の開発コード名 Amber Lake Y
- デル、Amber Lake搭載の「XPS 13 2-in-1」を国内投入 - PC Watch
- Amber Lake-Y搭載の7型2in1「OneMix 2S」 - PC Watch
- Core m3-8100Y/256GB SSD搭載になった「GPD WIN 2」が発売 ~基板刷新で放熱性、オーディオ音質が向上 - PC Watch
Comet Lake
- Intelが6コア12スレッドのモバイルPC向け第10世代Coreプロセッサ「Comet Lake」を発表 - GIGAZINE
- ASCII.jp:Comet Lakeは事実上Coffee Lake Refresh インテル CPUロードマップ (1/4)|ロードマップでわかる!当世プロセッサー事情
- Intel、"2種類目"のモバイル向け第10世代Coreプロセッサを発表 - PC Watch
- Intel® Core™ i5-10210U Processor (6M Cache, up to 4.10 GHz) 製品仕様
- デル、13.3型プレミアムノート「XPS 13」の第10世代Coreモデル - PC Watch
- 日本エイサー、Comet Lake搭載の15.6型ノートPC - PC Watch
- A315-54-F58U/K | acer
- Intel® 400 Series Chipset Family On-Package Platform Controller Hub. Datasheet, Volume 1 of 2
- 中小企業にもSOHOにもうれしい超絶コスパノートPC「ThinkBook 14」を徹底分析 (1/2) - ITmedia PC USER
- インテル® Core™ i3-10110U プロセッサー (4M キャッシュ、最大 4.10 GHz) 製品仕様
- 最新Intel NUC「Frost Canyon」のCore i3搭載モデルが発売、税込38,500円 - AKIBA PC Hotline!
Lakefield
Atom
- Intel Celeron (2010年) - Wikipedia
- MinnowBoard.org
- Intel Celeron J1900 - FH8065301615009
- Intel Celeron J3160 - FH8066501715935
- Intel Celeron J3455 - FH8066802986102
- Apollo Lakeが長期稼働で信号劣化し品質基準を満たさず。ステッピング変更へ - PC Watch
- Intel Pentium J5005 - FH8068003067415
- Intel Celeron J4105 - FH8068003067403
- ASRock > J4105-ITX
- 製品の仕様情報 - Intel® Celeron® J4005 Processor (4M Cache, up to 2.70 GHz)
- Intel Celeron J4005 - FH8068003067416
- インテル® ネクスト・ユニット・オブ・コンピューティング・キット NUC7CJYH 製品仕様
- PRIME J4005I-C | マザーボード | ASUS 日本
- ファンレスGemini Lake世代SoC intel Celeron J4005搭載Mini-ITXマザーボードがASUSから販売開始 | Ark Tech and Market News Vol.3002134
- Intel、次世代省電力コア「Tremont」でシングルスレッド性能を改善 ~マイクロアーキテクチャを公開 - PC Watch
- 2019年9月18日 Linux 5.3がリリース,「AMD Navi」「Intel Speed Select」のサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
- 10nmプロセスがようやく。 インテルの2021年までのCPUロードマップがリーク
- Intel Atom® Processor based on Tremont Microarchitecture Instruction Throughput and Latency - intel-atom-tremont-microarchitecture-throughput-and-latency.pdf
- ASCII.jp:Ice Lake-SPは2021年第1四半期に遅延、Elkhart Lakeの機能追加に仰天 インテル CPUロードマップ (3/3)
- ASCII.jp:最後のAtomとなるChromebook向けプロセッサーのJasper Lake インテル CPUロードマップ (3/3)
- Intel、前世代からGPU性能が78%向上した「Jasper Lake」CPU - PC Watch
- FadisさんはTwitterを使っています 「誰も使っていないプラットフォームのサポートの大掃除を進めるLinuxでIntelのMoorestown及びMedfieldマイクロアーキテクチャのサポートが廃止が決定したらしい。これらはAtomの中でも特に省電力を重視したSoCで、IntelがまだスマートフォンでARMと戦う気があった時代の産物 https://t.co/KlKx8M0ug6」 / Twitter
- Linux Says Farewell To Intel's Smartphone Attempts With Clearing Out Moorestown / Medfield - Phoronix
- FadisさんはTwitterを使っています 「「誰も使っていない」と判断した理由が「ここ数年このプラットフォームでLinuxが動かなくなるような変更が入った際にIntel以外から不具合の報告が上がったためしが無い」(つまりIntelは今もしっかり保守しているけどこのSoCを使っているユーザは存在しない)なのが哀愁漂ってる」 / Twitter
- 北森瓦版 - “Jasper Lake”を搭載する第11世代NUC―“Atlas Canyon”
- 製品の開発コード名 Elkhart Lake
- 【イベントレポート】Intel、次世代10nm CPUと22nm Atomを積層した混載CPU「Lakefield」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelが3D積層のヘテロジニアスマルチコアCPU「Lakefield」の技術を発表 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】2020年代のIntel CPUのカギとなる新2.5D/3D積層技術 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】チップレットレースで静かに突き進むIntelのパッケージ技術 - PC Watch
- Samsung、異種混在CPU“Lakefield”搭載のモバイルノート「Galaxy Book S」 - PC Watch
- 【笠原一輝のユビキタス情報局】CoreとAtomを両搭載するIntelの新CPU「Lakefield」 - PC Watch
- Products formerly Lakefield
- InstLatX64さんはTwitterを使っています 「5-Core #Intel Core i5-L16G7 (#Lakefield) 806A1 CPUID dump added - Supported: SSE4.2, GFNI, CLWB, HYBRID - Unsupported: MOVDIR*, WAITPKG, CLDEMOTE, AVX, FMA, BMI, HTT, LZCNT, ADX, X2APIC, PAGE1GB, X2APIC, MPX, SGX https://t.co/f2lANECbdu https://t.co/0Lvti67aSq」 / Twitter
- リークされたWindows 11のビルドは、IntelのハイブリッドCPU「Lakefield」のパフォーマンスを向上させます。 - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - “Ice Lake-U”、“Commet Lake-U”、“Lakefield”がEnd of Life (EOL) へ
Ice Lake
- Ice Lake (client) - Microarchitectures - Intel - WikiChip
- Sunny Cove - Microarchitectures - Intel - WikiChip
- 製品の開発コード名 Ice Lake
- 価格.com - CPU世代:第10世代 Core iシリーズのノートパソコン 人気売れ筋ランキング
- herumiさんのツイート: "Cascade Lake-AP https://t.co/MdOLsFwmDv >プログラマーはMKL-DNNの最新版を利用することで、VNNIに自分のソフトウェアを対応させることができる。 Xbyakも1年以上前からVNNIに対応してます。というかMKL-DNNはXbyak経由でvpdpbusdを使ってるともいう。 https://t.co/x2N8zFJOE9"
- mkl-dnn/jit_avx512_core_gemm_s8u8s32_kern.cpp at master · intel/mkl-dnn
- Intel、次世代CPUアーキテクチャ「Sunny Cove」の概要を明らかに ~Willow Cove、Golden Coveと進化予定、Atomのロードマップも更新 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelの次世代CPUマイクロアーキテクチャ「Sunny Cove」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelの10nm世代CPUコア「Sunny Cove」のカギとなるAVX-512 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelが10nmプロセスの「Ice Lake」を正式発表 - PC Watch
- 【笠原一輝のユビキタス情報局】Intelが新CPUを製品コードネームではなくマイクロアーキテクチャ名で説明したその背景 - PC Watch
- Intel、10nmの第10世代Coreを出荷開始。プロセッサー・ナンバー変更 - PC Watch
- 【笠原一輝のユビキタス情報局】Intel、第10世代Core発表。10nmプロセスで、L1が1.5倍、L2は倍増に - PC Watch
- 【イベントレポート】次世代ノートPCでは1秒復帰/薄型狭額縁/AI機能/Core i5以上が標準に ~Intelのモダン化規格「Project Athena 1.0」を公表 - PC Watch
- 「Project Athena」でユーザーの声を汲み上げたモバイルPCを提供するIntel - PC Watch
- 【笠原一輝のユビキタス情報局】第10世代Coreの複雑怪奇なプロセッサナンバーを理解する - PC Watch
- 第231回 Intelの新プロセッサ「第10世代Coreプロセッサ」3つの特徴をざっくり検証:頭脳放談 - @IT
- インテル® Adaptix™ テクノロジーが実現する自動チューニング
- Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 1
- Intel® 495 Series Chipset Family On-Package PCH Datasheet Vol. 2
- 10th Gen Intel® Core™ Processor Families Datasheet, Vol. 1
- 10th Gen Intel® Core™ Processor Families Datasheet, Vol. 2
- IntelがIce Lake世代のCPUに施した「目立たないパワーアップ」とは? - GIGAZINE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ネタ自体は面白いけど、GIGAZINEさん自身は bit と byte をあちこち混同して説明してるな。 ---- 「32bitを1単位として、「ymm1」レジスタの値をメモリに書き込んで」 「256bit分の領域を値で埋めることができたら…次のループに備えています。… add rax, 256」 https://t.co/6Zfi4RC5pl」 / Twitter
- IntelのIce Lake世代CPUは「命令の種類による最大クロック制限」が緩和されている - GIGAZINE
- InstLatX64さんはTwitterを使っています 「The only non-Core #SunnyCove, the Pentium 6805 also supports #AVX512: https://t.co/mrQjdBqlkV Source: https://t.co/WtIwBkuCx4 Well done! https://t.co/lmZFwjiWqO」 / Twitter
- Intel® Pentium® Processor 6805 (4M Cache, up to 3.00 GHz) Product Specifications
- Asus Laptop X515JA-BR661 Pentium 6805 тест с комментариями - YouTube
Tiger Lake
- Willow Cove - Microarchitectures - Intel - WikiChip
- Intel、新GPU「Xe」内蔵の「Tiger Lake」プロセッサを2020年投入 - PC Watch
- 【イベントレポート】Intel、10nm+のTiger LakeとXeアーキテクチャの単体GPU「DG1」を実機デモ - PC Watch
- Intel次期CPU“Tiger Lake”にアーキテクチャレベルでセキュリティ機能追加 - PC Watch
- Intel、次世代モバイルプロセッサ「Tiger Lake」の詳細を明らかに ~L2/L3が大幅増加、96EUのXe-LPを内蔵、LPDDR5やPCIe Gen4などに対応 - PC Watch
- Intel、第11世代Coreプロセッサーを正式発表。「Intel Evo platform」のブランドも導入 - PC Watch
- 第11世代Core「Tiger Lake」の新要素まとめ - PC Watch
- 北森瓦版 - 今後のIntel製品にはどの10nmプロセスが使われるのか?
- Intel、“AMDのノートはバッテリ駆動時に性能が大きく低下”と指摘 - PC Watch
- Intel Sunny Cove - Agner's CPU blog
- InstLatX64さんはTwitterを使っています 「#Intel #Celeron 6305 (#TigerLake-UP3) 806C1 (#AVX512 enabled, #AVX512_VP2INTERSECT, MOVDIRI, MOVDIR64B, CLWB, RDT_A) CPUID dump Thx, @ccc00911! https://t.co/9y3gXcmKJW https://t.co/KqURzj8psd」 / Twitter
- InstLatX64さんはTwitterを使っています 「#Intel Ark seems wrong regarding SIMD support of #Pentium Gold 7505 and #Celeron 6305: https://t.co/YuspuMvlHQ https://t.co/wIUSyAIE0A」 / Twitter
- Intel® Product Specification Comparison
- Intel、最大8コアになったゲーミングノート向け第11世代Core - PC Watch
- Intel、TDP 35Wの高性能CPU「第11世代Core H35シリーズ」を発表。VAIOの次世代ハイエンドノートと思しきマシンがチラ見せ - PC Watch
- PC=職場という新しい認識にマッチした第11世代vPro搭載ノート - PC Watch
- Intel、第11世代Coreプロセッサの技術詳細を語る:新技術「SuperFinテクノロジー」採用(1/3 ページ) - EE Times Japan
- Intelが6~8コア対応のノートPC向けプロセッサ「Tiger Lake-H」シリーズを正式発表、搭載ノートPCも続々登場 - GIGAZINE
- 北森瓦版 - 最大8-coreの“Tiger Lake-H45”が正式発表される
- インテル、8コアのTiger Lake-Hプロセッサを発表:より強力に、より低いクロックで|自作.com
- Intelの低電圧モデル「Tiger Lake-U」から最大5GHzの「Core i7-1195G7」「Core i5-1155G7」が登場 - GIGAZINE
- 2021年のComputexでのインテル。新しいTiger Lakeプロセッサ、Beast Canyon NUC、5Gチップ|自作.com
- インテル Core i7-1195G7、GeekbenchシングルコアCPUベンチマークで1700ポイントを獲得 - 自作ユーザーが解説するゲーミングPCガイド
AlderLake
- Alder Lake-P のブートログ | Coelacanth's Dream
- ALDERLAKE_L と Alder Lake-P/M | Coelacanth's Dream
- Alder Lake-M 関連のパッチが Coreboot に投稿される ―― ADL-M は ADL-P の I/O 縮小版か | Coelacanth's Dream
- Alder Lake-P/M のステッピング、PL1/PL2 参考値 | Coelacanth's Dream
- 低消費電力コアにもかかわらず、インテルのAlder LakeモバイルはTDP115Wまで押し上げられる|自作.com
- 北森瓦版 - Mobile向け“Alder Lake”のSKU―TDP5Wから55Wまでで展開される
- Alder Lake-P/M の PL4 参考値と Brya の設定値 | Coelacanth's Dream
- 第12世代Alder Lake Mobility CPUのロードマップで、14コアのAlder Lake-Pと10コアのAlder Lake-Mを確認、DDR5をサポートする最初のノートPCを発表 - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - “Alder Lake-P”がロードマップ上に出現―DDR5, PCI-Express 5.0に対応
Arrow Lake
- AMD Zen 5およびAppleの次世代SOCに対抗するIntel Arrow Lake-P CPU、14個のCPUコアと2560個のXe GPUコアを持つハイブリッド・チップレット・デザインを採用との噂 - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - 第15世代Core相当の“Arrow Lake-P”は14-core + 320 EU iGPUとなる?
- 【スペック一覧】モバイル向けIntelプロセッサー・ナンバー一覧表 - PC Watch
- パソコン/タブレット/スマートフォン ノートパソコン Acer - PC Watch
- PCパーツ ベアボーン Intel - AKIBA PC Hotline!
- 専用ベンチではRyzenが高性能でも、ゲーム性能ではCoreが勝つ理由とは ~Intelがベンチマーク説明会を開催 - PC Watch
- 北森瓦版 - Intel ノートPC形状のNUC M15 Laptop Kitを発表
レガシー
Pentium Pro
- ASUS P/I-XP6NP5 - Specs | BIOS | Drivers | Manual | Download
- ASUS 日本
- Pentium Pro - Wikipedia
- P6マイクロアーキテクチャ - Wikipedia
- Socket 8 - Wikipedia
- I2O - Wikipedia
- I2O - Wikipedia
- Dynamic Random Access Memory - Wikipedia
Ivy Bridge
- Westmere - Microarchitectures - Intel - WikiChip
- Sandy Bridge (client) - Microarchitectures - Intel - WikiChip
- Ivy Bridge - Microarchitectures - Intel - WikiChip
- 「第3世代Coreプロセッサ・ファミリ」はどこが進化したのか - @IT
- Intel Core i3-3220 - CM8063701137502 / BX80637I33220 / BXC80637I33220
- GA-H77M-D3H (rev. 1.0) スペック | マザーボード - GIGABYTE Japan
- Desktop 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 1
- Desktop 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
- Desktop 3rd Generation Intel® Core™ Processor Family: Spec Update
- Mobile 3rd Gen Intel® Core™ Processor Family: Datasheet, Vol. 1
- Mobile 3rd Generation Intel® Core™ Processor Family, Mobile Intel® Pentium® Processor Family, and Mobile Intel® Celeron® Processor Family - Datasheet, Volume 2
- Mobile 3rd Generation Intel® Core™ Processor Family: Spec Update
- Intel® 7 Series / C216 Chipset Family Platform Controller Hub (PCH) - Datasheet
- Intel® 7 Series / C216 Chipset Family Platform Controller Hub (PCH) Family - Datasheet Specification Update
Haswell
- Haswell - Microarchitectures - Intel - WikiChip
- Intel Core i5-4200U Mobile processor - CL8064701477702
- Intel® Core™ i5-4200U Processor (3M Cache, up to 2.60 GHz) 仕様
- E1-572-A54D_H1 - E1-572-A54D_201306.pdf
- 製品サポート
- 価格.com - Acer Aspire E1 E1-572-A54D スペック・仕様
- Intel® Core™ Processors (M/H-Processor Lines) Datasheet, Vol. 1
- Mobile 4th Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
- Mobile 4th Gen Intel® Core™ Processor Family I/O: Datasheet
- Mobile 4th Gen Intel® Core™ Processors Spec Update
- Desktop 4th Gen Intel® Core™ Processors Datasheet, Vol. 1
- Desktop 4th Gen Intel® Core™ Processor Family: Datasheet, Vol. 2
- Desktop 4th Gen Intel® Core™ Processors Spec Update
- Haswell世代のCPUにエラッタが見つかる、Haswellの新機能「TSX」を無効化へ | スラド IT
- Intel® 8 Series/C220 Series Chipset Family Platform Controller Hub (PCH) - Datasheet
- Intel® 8/C220 Series Chipset Platform Controller Hub: Update
- 14nmの不足の中で、Intelは22nm Pentium G3420に命を吹き込みます - 自作ユーザーが解説するゲーミングPCガイド
- Intel Celeron G1840 - CM8064601483439 / CM8064601562181 / BX80646G1840
- インテル® Celeron® プロセッサー G1840 (2M キャッシュ、2.80 GHz) 製品仕様
- 価格.com - 東芝 dynabook Satellite R35 R35/M PR35MGAD423AD71 価格比較
- Intel Core i3-4005U Mobile processor - CL8064701478404
Broadwell
- Broadwell - Microarchitectures - Intel - WikiChip
- H97-PRO | マザーボード | ASUS 日本
- Intel Core i5-5675C - CM8065802483201 / BX80658I55675C
- 製品の仕様情報 - Intel® Core™ i5-5675C Processor (4M Cache, up to 3.60 GHz)
- 5th Generation Intel® Core™ Processor Family Datasheet Vol. 1
- 5th Generation Intel® Core™ Processor Family Datasheet Volume 2
- Desktop 5th Gen Intel® Core™ Processor Family Datasheet, Vol. 1
- Desktop 5th Gen Intel® Core™ Processor Family Datasheet, Vol. 2
- Desktop/Mobile 5th Gen Intel® Core™ Processor Family Spec Update
- Intel® 9 Series Chipset Family Platform Controller Hub (PCH) - Datasheet
- Intel® 9 Series Chipset Platform Controller Hub Spec Update
- MSI、Intel 9シリーズマザーのBIOS更新でNVM Expressに対応 - PC Watch
Skylake
Intel
- Intel® Core™ i3-6100 Processor (3M Cache, 3.70 GHz) 仕様
- 6th Generation Intel® Core™ Processor Family Datasheet, Vol. 1
- 6th Generation Intel® Processor Datasheet for S-Platforms — Datasheet – Volume 2 of 2
- 6th Generation Intel® Processor Family
- 6th Generation Intel® Processor Family Uncore Reference Manual
- 6th Generation Intel® Core™ Processor I/O Datasheet, Vol. 1
- 6th Generation Intel® Core™ Processor I/O Datasheet, Vol. 2
- 6th Generation Intel® Core™ Processor Family Datasheet, Vol. 1
- 6th Generation Intel® Core™ Processor Family Datasheet, Vol. 2
- Intel® 100 Series Chipset Family PCH Datasheet, Vol. 1
- Intel® 100 Series Chipset Family PCH Datasheet, Vol. 2
- Intel® 100 Series Chipset Family PCH Specification Update
Errata
- Skylake CPUで複雑な処理を実行させるとPCがフリーズするバグが確認される | スラド IT
- IntelのSkylakeプロセッサに複雑な計算プログラム実行でシステムフリーズするバグが見つかる - GIGAZINE
- 【PC】Intel Skylake/Kaby Lakeに深刻な欠陥 Hyper-Threadingでシステムが予測不能な動作、データ損失などの可能性 すべてのOSに影響 | LH MAGAZINE
- [WARNING] Intel Skylake/Kaby Lake processors: broken hyper-threading
- Skylake/Kaby LakeプロセッサのHTTに不具合 | スラド Linux
- IntelのSkylake&Kaby Lake世代のCPUにはハイパースレッディング有効でデータ欠損やプログラムエラーにつながる重大なバグがあると判明 - GIGAZINE
- Skylake/Kaby Lakeでシステムクラッシュを引き起こすエラッタが発見。BIOS更新が必要 - PC Watch
- 北森瓦版 - “Skylake”と“KabyLake”にHyperThreading周りのエラッタが発見される
- 2017年6月29日 Debian開発者,Intel Skylake/Kaby Lakeユーザにハイパースレッディング無効化を警告:Linux Daily Topics|gihyo.jp … 技術評論社
News
- 北森瓦版 - “Skylake”で導入された“Speed Shift technology”
- 【CPU】 Skylakeの機能、Speed Shift TechnologyがWin10で有効に : ニッチなPCゲーマーの環境構築
- 質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (1/2) - ITmedia PC USER
- 第 6 世代インテル® Core™ プロセッサー (開発コード名 Skylake) の概要
- 古田雄介のアキバPickUp!:Skylakeに低GPU内蔵のPモデルが登場! (1/4) - ITmedia PC USER
- Hot Chips 28 - Inside Skylakeと題したIntelの発表 (1) 消費電力管理に改良が施されたIntelのSkylake | マイナビニュース
- 【特集】「Skylake」完全攻略!!(追加検証) - 内部解析で第6世代Coreの謎に迫る | マイナビニュース
- Intel、SpectreパッチでのOS再起動問題に対処したSkylake向けファームウェアを提供 - PC Watch
- Intel microcode updates
- Microsoft Update カタログ
- マザーボード | H170-PRO | ASUS 日本
- J10812_H170-PRO_web_only.pdf
- Intel® Management Engine の重要なファームウェア・アップデート | サポート 公式 | ASUS 日本
- Skylake (client) - Microarchitectures - Intel - WikiChip
- Core i3-6100 - Intel - WikiChip
- Intel Core i3-6100 - CM8066201927202 / BX80662I36100
Kaby Lake
- GA-Z270X-UD5 (rev. 1.0) | マザーボード - GIGABYTE Japan
- Kaby Lake - Microarchitectures - Intel - WikiChip
- Core i3-7100 - Intel - WikiChip
- Intel Core i3-7100 - CM8067703014612 / BX80677I37100 / BXC80677I37100
- インテル® Core™ i3-7100 プロセッサー (3M キャッシュ、3.90 GHz) 製品仕様
- Datasheet, Vol. 1: 7th Gen Intel® Processor Family for S Platforms
- Datasheet, Vol. 2: 7th Gen Intel® Processor Family for S Platforms...
- Datasheet, Vol. 1: Intel® 200 and Z370 Series Chipset Families PCH
- Datasheet, Vol. 2: Intel® 200 and Z370 Series Chipset Families PCH
- Intel® 200 and Z370 Series Chipset Families PCH Spec Update
- Intel、Core 2 Duoなど旧CPUの「Spectre」対策を中止 - PC Watch
- 1502494_PC_AT_Technical_Reference_Mar84.pdf
- Chromeは15年以上前のプロセッサではまもなく機能しなくなります|自作.com
- 化石レベルの古いCPUは切り捨て ~「Google Chrome 89」でx86版はSSE3命令が必須に - やじうまの杜 - 窓の杜
- Flash対応を廃止。「Electron 12」が正式リリース ~SSE3命令が必須に - 窓の杜
GPU
その他
- Intel Graphics - ArchWiki
- drivers/gpu/msd-intel-gen - Git at Google
- Makoto Kato ︎︎さんのツイート: "先週聞いた面白バグでDXGI_USAGE_SHADER_INPUTを使うかどうかでIntel GPUが激速くなるって話があったんだけど、これのRoot cause知りたい https://t.co/VgdEMJsdZA"
- 1528865 - Blitting picture cache tiles seems slower on Windows/ANGLE for the same hardware.
- グラフィックボード・ビデオカードのビデオBIOSとGOPドライバについて - DXR165の備忘録
- Intel Processor Graphics 調査メモ - DXR165の備忘録
- 実機でIntel Processor Graphicsメモリ検証 - DXR165の備忘録
- Windows 10プレビューに“外部GPUの安全な取り外し”機能追加 - PC Watch
- Windows 10プレビュー版、iGPU/dGPUを任意に切り替え可能に - PC Watch
- 【イベントレポート】Intel、ノートPC向けディスプレイの消費電力を削減する新技術 - PC Watch
- CURD: A Dynamic CUDA Race Detector
- FadisさんはTwitterを使っています 「初期のPC向けGPUは座標変換をCPUに任せていたけど、それだと座標変換で詰まるって事で座標変換もGPUで行うようになった。その後GPUがプログラマブルになると頂点計算する演算器とピクセル計算する演算器をパイプラインを止めない割合で積むのが難しくなり、両方を共通のプロセッサで行うGPUが登場した」 / Twitter
- FadisさんはTwitterを使っています 「一方SGIのワークステーションは、浮動小数点数の計算が超速いDSP積んだからそこで全部なんとかしろ、というハードウェアだったので、PCのGPUは試行錯誤の末にSGIと同じ形にたどり着いた感がある」 / Twitter
- Intel GPUドライバ、PCメーカー版と相互入れ替え可能に - PC Watch
- Intel、内蔵GPUによるウイルスチェック機能を実装。チップ消費電力を半減 - PC Watch
- 統合型GPUでメモリ内のマルウェアをスキャン。Intelがセキュリティに関する新技術や取り組みを発表 - 4Gamer.net
- IntelがマルウェアスキャンにGPUの使用を開始
- Intel、Lakefield の GPU Programmer's Reference Manuals を公開 | Coelacanth's Dream
Driver
- グラフィックドライバーを更新してハードウェアアクセラレーション機能と WebGL を使用する | Firefox ヘルプ
- インテル® ドライバー & サポート・アシスタント
- AMD Radeonの公式ソフトウェアおよびドライバー
- NVIDIAドライバダウンロード
- ドット絵を引き伸ばしてもボヤけない機能、Ice Lakeの内蔵GPUにも実装 - PC Watch
Intel
- Hardware Specification - PRMs | 01.org
- VAAPI | 01.org
- Hardware Accelerated H.264 Video Encoding using VAAPI on the Intel® Atom™ Processor E6xx Series
- インテル® プロセッサー・グラフィックス | iSUS
- Intel® Processor Graphics | Intel® Software
- インテル® グラフィックス・コントローラーの識別
- Identify Your Intel® Graphics Controller
- Quick Reference Guide for Intel® Core™ Processor Graphics | Intel® Developer Zone
- Using hardware video decode on Mobile Internet Devices | Intel® Developer Zone
- 01org/intel-hybrid-driver
レガシー
Clarkdale
- 【多和田新也のニューアイテム診断室】CPU+GPUを統合したClarkdaleこと「Core i5-661」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】BecktonからClarkdaleまでの実態が明らかに - PC Watch
- 【後藤弘茂のWeekly海外ニュース】IntelがMoorestownとClarkdaleの新情報を公開 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Westmere系CPUのラッシュとなるIntelの2010年ロードマップ - PC Watch
Sandy Bridge
- Intel Fanboy Blog: いまさらSandy Bridge 2: RWT Graphics編
- Intel Fanboy Blog: Agner氏の最適化manualが更新された
- Intel Fanboy Blog: いまさらSandy Bridge 1: RWT編
- Intel Fanboy Blog: Sandy Bridgeの最適化マニュアル
- Intel Fanboy Blog: 駄文: uop長とuop cache
- Intel Fanboy Blog: 単一uopで128b/256bのLoadを実現するSandy Bridge
- 【後藤弘茂のWeekly海外ニュース】今どきのGPUコアへと生まれ変わるSandy Bridge - PC Watch
Ivy Bridge
- 【後藤弘茂のWeekly海外ニュース】Ivy Bridgeの強化ポイントはGPUアーキテクチャの改革 - PC Watch
Haswell
- 【後藤弘茂のWeekly海外ニュース】HaswellのGPUコア「Iris」はなぜ強力なのか - PC Watch
- 【後藤弘茂のWeekly海外ニュース】次世代CPU「Haswell」の2倍強力なGPUコア - PC Watch
Broadwell
- 【後藤弘茂のWeekly海外ニュース】IDFでIntelが14nmプロセス世代の「Broadwell」を公開 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelがデスクトップ/eDRAM版を含めた「Broadwell」ファミリを説明 - PC Watch
Skylake
- COOL Chips XIX - コンピューティングの新たなフロンティア (1) SkylakeのGPUが示したIntelの新たな方向性 | マイナビニュース
- COOL Chips XIX - コンピューティングの新たなフロンティア (2) SkylakeのGPUの構造 | マイナビニュース
- 歴代Intelグラフィックの劇的進化が第6世代Intel Coreプロセッサ「Skylake」のGPU詳細から浮き彫りに - GIGAZINE
- 【後藤弘茂のWeekly海外ニュース】Intelがチラ見せする「Skylake」世代のCPUの姿 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelの次世代マイクロアーキテクチャ「Skylake」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Skylakeは14nmプロセスに合わせたマイクロアーキテクチャか - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Skylakeアーキテクチャの謎 その2 ~5命令デコーダと6命令uOPキャッシュ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】実行モデルを変更したSkylakeのGPUコア ~より汎用的なGPUコンピューティングに向いた設計へ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】GPUコンピューティング機能を強化したSkylakeのGPU ~タブレットの応答性が向上 - PC Watch
Kaby Lake
- Intel、Kaby Lakeこと第7世代Coreプロセッサを正式発表 ~Skylakeからビデオエンジンが強化 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelの「Kaby Lake」は“+”プロセス世代初のCPU - PC Watch
Ice Lake
- 【イベントレポート】Intel製Gen11 GPUは、ユニット3割増で1080pゲームも可能に。Adaptive-Syncにも初対応 - PC Watch
- Intelの次期内蔵GPUは1TFLOPSの性能で3Dゲームにも対応 - PC Watch
- 西川善司の3DGE:第10世代Coreプロセッサに統合されたGPUの正体。性能はRyzen 7 3700Uの内蔵Vegaとほぼ同等で,Variable Rate Shadingにも対応 - 4Gamer.net
Tiger Lake
- 【やじうまPC Watch】Tiger Lake内蔵のXe GPUで「バトルフィールドV」がプレイ可能 - PC Watch
- 薄型ノートでゲーミングを可能にするIntel Xe GPUまとめ 〜ゲーム認証プログラムが日本国内でも開始 - PC Watch
Alder Lake
- Linux Kernel に Intel Alder Lake-P をサポートするパッチが投稿される ―― ディスプレイエンジンに "XE_LPD" | Coelacanth's Dream
Xe GPU
DG1
- 【後藤弘茂のWeekly海外ニュース】IntelがディスクリートGPUのプロトタイプを発表 - PC Watch
- 【イベントレポート】Intel、同社初の単体GPU「DG1」搭載ビデオカードを初披露。開発者向けボードは第1四半期中に出荷 - PC Watch
- 【PR】Architecture Dayに見た、Intelの底力と変貌【新GPU「Xe」編】 ~GPUでもトップ性能を狙うIntelの秘技とは- PC Watch
- Intel、22年ぶりのディスクリートGPU「Iris Xe MAX」を正式発表 - PC Watch
- Intel、ゲーミング向けXeとなるXe-HPGの存在を明らかに ~Xe-HPGは外部のファウンダリで製造され、2021年に市場投入 - PC Watch
- Xe LP採用ビデオカード「DG1-4G」スペック公開。対応マザボは2種類限定 - PC Watch
- i740以来のIntelビデオカードがついに登場。まずASUSから - PC Watch
- 新しいインテルDG1ディスクリートGPUが登場。D-Sub出力とロープロファイルデザインの融合|自作.com
- インテルの「Iris Xe DG1」は1080p対応の格安ゲーミングGPU|自作.com
Intel Arc
DG2
- 2つの非同期パイプラインが追加される XeHP EU | Coelacanth's Dream
- Intel Xe-HP EU に追加されるパイプラインと増加するスレッド、レジスタファイル | Coelacanth's Dream
- Linux Kernel に Intel Xe-HP SDV, DG2 をサポートする最初のパッチが投稿される | Coelacanth's Dream
- intel Xe-HPG ゲーム ディスクリート グラフィック カード DG2 GPU を備えた詳細 - 4096 コア、16 GB の VRAM と 6 つのモデルまで - 自作ユーザーが解説するゲーミングPCガイド
- 512個のEU、4096個のコア、12GB GDDR6 VRAM、最大1800MHzのクロックを備えたIntel Xe-HPG DG2フラッグシップゲーミングGPUを発見 - 自作ユーザーが解説するゲーミングPCガイド
- インテル® Xe-HPG DG2グラフィックスカードのPCBがリーク - 4096コア、16GB VRAM、NVIDIA RTX 3080に迫るゲーム性能を実現 - 自作ユーザーが解説するゲーミングPCガイド
- インテルのフラッグシップGPU「Xe-HPG DG2-512」は、AMD Navi 22やNVIDIA GA104よりも大きく、ダイサイズは約396mm2。 - 自作ユーザーが解説するゲーミングPCガイド
- インテルが確認。Xe HPGゲーミンググラフィックスカード「DG2」の試作品をサンプリング開始 - 自作ユーザーが解説するゲーミングPCガイド
- 2022年のCESで発売が噂されるDG2 GPU搭載のインテルXe-HPGグラフィックスカード - 自作ユーザーが解説するゲーミングPCガイド
- インテルのGPU「DG2」のリーク仕様には重大な可能性が秘められている|自作.com
- IntelのRaja Koduri氏が512個のEUを搭載したゲーミングGPU「Xe-HPG」を披露|自作.com
- インテル、Xe-HPG GPUでAMDのFidelityFX SuperResolutionを実現する可能性あり|自作.com
- インテルのDG2 GPU、初期のベンチマークでGTX 1050並みの性能を発揮|自作.com
- 北森瓦版 - Gaming向けとなるDG2は最大512基のExecution Unitを搭載する
- 北森瓦版 - 128 EUのXe-HPGのボードダイアグラム―Xe-HPGの登場は'21年末?
- 北森瓦版 - Raja Koduri氏が512 EUのXe-HPG (DG2) を明らかに
- 北森瓦版 - Intel DG2の性能はGA104やNavi 22と同程度?
- 北森瓦版 - Xe-HPG (DG2) はCES 2022でローンチされるらしい
- 北森瓦版 - Intel DG2 はRadeon RX 6700 XT, GeForce RTX 3070を対抗製品とする
- Xe-LP/HP より大きな命令キャッシュを持つ Xe-HPG | Coelacanth's Dream
- Intel、ゲーマー向け次世代GPU「Arc」をチラ見せ。ハイエンドまで対応可能な伸縮アーキテクチャ - PC Watch
- Intelが高性能グラフィックスブランド「Intel Arc」を発表、次世代以降のアーキテクチャのコードネームも明らかに - GIGAZINE
- Intel Arc & Ponte Vecchio Update - HotChipsで公開されたIntel GPUの詳報 (1) | マイナビニュース
- Intel Arc発表:ディスクリートゲーミングGPU「Alchemist」が2022年第1四半期に登場|自作.com
- インテルが「Arc Alchemist Discrete」グラフィックスカードをプレゼント|自作.com
- インテル、Arc GPUドライバにオーバークロック機能を追加予定|自作.com
- Raja Koduriが、IntelがGPU製造をTSMCにアウトソーシングした理由を説明|自作.com
- 北森瓦版 - 【Intel Architecture Day 2021】Xe-HPGこと“Arc”の情報
- 北森瓦版 - Xe-HPGはオーバークロックが可能となる模様
- 北森瓦版 - Raja Koduri氏が明かした“Arc Alchemist”がTSMC N6を使用した理由 他
- 北森瓦版 - Xe-HPGことArc Alchemistの話題―デスクトップ向けSKUは3種類 他
- 北森瓦版 - SOC2 (DG2-128) を搭載するArc Alchemistは6GBのメモリを搭載する?
- Intel Xe HPG「Alchemist」GPUの詳細を発表。TSMC 6nmで製造され、2022年第1四半期に出荷予定 - 自作ユーザーが解説するゲーミングPCガイド
- インテル、2022年第1四半期にデスクトップPCとノートブックPCに搭載されるAlchemist GPUのArcグラフィックスラインアップを発表 - 高性能ゲームとレイトレーシングのデモを実施 - 自作ユーザーが解説するゲーミングPCガイド
- インテル、ARC Alchemist GPUを語る。TSMC 6nmは製造能力の関係でIntelのFabを超える、XeSS後方互換とパートナーの「カスタム」グラフィックスカード - 自作ユーザーが解説するゲーミングPCガイド
- Intel ARC Alchemistグラフィックスカードに主要GPU AIB3社が参加【更新情報】 - 自作ユーザーが解説するゲーミングPCガイド
- Intel ARC Alchemistグラフィックスカードは噂によると、ハイエンドおよびエントリーレベルのゲーミング市場に向けた3つのGPUが登場し、トップダイはRTX 3070 Tiに近いものになるとのことです。 - 自作ユーザーが解説するゲーミングPCガイド
- DG2-128 GPUを搭載したIntel Arcグラフィックスカードに6GBメモリが搭載されるかもしれないとリーク写真が示唆。 - 自作ユーザーが解説するゲーミングPCガイド
- Intel Arc GPUが命名されました。Alchemist aXXX、Battlemage bXXX、Celestial cXXX - 自作ユーザーが解説するゲーミングPCガイド
- NVIDIA A100の倍以上の性能となるIntelのモンスターGPU「Ponte Vecchio」。FP32で45TFLOPSを実現 - PC Watch
- Intel、Display13 改め "XE_LPD" をサポートするパッチを投稿 ―― 今後は独立して各 IP が更新されるように | Coelacanth's Dream
- Intel XeSS AIベースのスーパーサンプリング技術は成熟したらオープンソースになる - 自作ユーザーが解説するゲーミングPCガイド
- Intel Iris Xeグラフィックスは、3DMarkのサンプラー機能テストにおいて、サンプラーフィードバックを有効にした場合、24%の性能向上を示した。 - 自作ユーザーが解説するゲーミングPCガイド
Wikipedia
- Intel HD Graphics - Wikipedia
- Intel HD and Iris Graphics - Wikipedia
- Intel GMA - Wikipedia
- Intel Extreme Graphics - Wikipedia
- Intel 845 - Wikipedia
- Intel 830 - Wikipedia
- Intel 815 - Wikipedia
- Intel 810 - Wikipedia
- Intel 740 - Wikipedia
- Intel740 - Wikipedia
- Accelerated Graphics Port - Wikipedia
- 実行ユニット - Wikipedia
- High-bandwidth Digital Content Protection - Wikipedia
MIMD/SIMT
- Hideyuki Tanakaさんのツイート: "てか僕はいまだにMIMDでなんでNVIDIAと同じぐらいの面積当たり演算性能出せてるのかがいまだに謎(´・_・`)いやまあ若干低いけど、それがそこまでのコストになんないならなんでNVIDIAがSIMTにこだわる必要があったんだろうとか。"
- 青子守歌さんのツイート: "@tanakh GPUだから・・・"
- Hideyuki Tanakaさんのツイート: "@aokomoriuta そりゃまあそうですね…"
- Hideyuki Tanakaさんのツイート: "結局クソでかいレジスタファイルは用意しないといけないし、面積インパクトとして独立したIPもってデコードして云々はそんなにでかくもなかったというのがアレなのかなあ。"
- Jun Makinoさんのツイート: "フルデコードの倍精度浮動小数点演算器1つに比べてプロセッサコアは「小さい」のでMIMD にすることのシリコン面積的なオーバーヘッドはせいぜい 30%(数字は適当) という議論はまさに2014年3月にTさんとした。"
AMD
TAGE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「2レベル適応型分岐予測で知識が止まっていて、TAGE知らなかった。 見た感じ、2レベル適応型をベースに、履歴ビット長を級数別で用意みたいな雰囲気…?なぜオカルト派的な話が出るのか不思議。 https://t.co/hqKVDOoXjX https://t.co/2l4pAU6FJa」 / Twitter
- 【後藤弘茂のWeekly海外ニュース】AMDがZen 2で採用した現在最強の分岐予測「TAGE」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUコア「ZEN」のニューラルネットワーク分岐予測機能 - PC Watch
- R. ShioyaさんはTwitterを使っています: 「「原理的には相関がある分岐がロジカルに見つかるはず」なデジタル派と「分岐予測ってのは,とどのつまり流れなわけよ流れ」とか言ってるオカルト派みたいに分かれて話してた https://t.co/vgXW8DNZqx」 / Twitter
- hrk先生さんはTwitterを使っています: 「@r_shioya TAGEは巧みな方法ですが、動作内容を理解してない人が多すぎ。オカルトと思っているのじゃないかな?分岐予測論文で比較対象として実装して提案手法の優位性をしめしている論文の少なくない割合の論文では実装が間違っている。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔々「2レベル適応型分岐予測」を知った時に、もう十分賢いから改善余地無さそうと思っていたけど、最後の数%ミスで数10%のパフォーマンス影響とは…」 / Twitter
- R. ShioyaさんはTwitterを使っています: 「TAGE 自体に興味ある方は,BATAGE という改良版のこの論文が過去の予測器の経緯とかも含めてコンパクトにまとまってると思いますので読んでみてはと. https://t.co/ovCGPq4jkk https://t.co/WVYvMPQIwb」 / Twitter
- An Alternative TAGE-like Conditional Branch Predictor
- R. ShioyaさんはTwitterを使っています: 「@shirouzu オカルトについては別に書いた通りなんですが,今日日だと「1サイクル8命令フェッチ × 予測ミス判明まで最短15サイクル=120命令取り消し」みたいのが,2レベル適応型だと1000命令あたり10回ぐらいはおきるので,実質半分以上無駄に実行してるみたいになって,これでは全然精度たりないみたいな感じです」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@r_shioya ご説明ありがとうございます。まさにそこが判らなかった点でした。 (パイプライン10数段のペナルティ=10数命令破棄だけのはずでは、と) なるほど、そういうことなのですね。とても興味深いです。」 / Twitter
- Branch Prediction and the Performance of Interpreters - Don't Trust Folklore
PC Watch
Zen
- 【後藤弘茂のWeekly海外ニュース】AMDが次世代CPU「Zen」アーキテクチャの概要を発表 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの次世代コア「Zen」などの概要が明らかに ~「Hot Chips 28」セッションにて、IBM製CPU「Power9」の概要も - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUコア「ZEN」のニューラルネットワーク分岐予測機能 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの次世代CPUマイクロアーキテクチャ「ZEN」の命令デコード - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの次世代CPU「ZEN」の整数ユニットはBulldozer系と全く異なる - PC Watch
- 【後藤弘茂のWeekly海外ニュース】相対的に大人しい設計のAMD次世代CPU「ZEN」の浮動小数点/SIMDユニット - PC Watch
- 【後藤弘茂のWeekly海外ニュース】ISSCCで明らかにされたAMD Zen CPUコアの実装 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDが次世代CPU「Ryzen 7」ファミリを3月2日から発売 ~最上位のRyzen 7 1800Xで59,800円 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDが新CPU「Ryzen 7」を発売。続けて「Ryzen 5」と「Ryzen 3」も投入へ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMD「Ryzen 7」の半導体チップの姿 - PC Watch
Zen 2
- 【後藤弘茂のWeekly海外ニュース】AMDがチップレットアーキテクチャのクライアント版Zen 2を投入へ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDが16コアRyzen 9を含むZen 2の概要とアーキテクチャを発表 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMD Zen 2の高い性能効率を支えるフロントエンドアーキテクチャ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDがZen 2で採用した現在最強の分岐予測「TAGE」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMD Zen 2は実行パイプライン拡張で浮動小数点性能が2倍に - PC Watch
- 【後藤弘茂のWeekly海外ニュース】処理能力が2倍に拡張されたAMD Zen 2のAVXユニット - PC Watch
- 【後藤弘茂のWeekly海外ニュース】ZEN 2ベースの64コアCPU「Rome」はなぜCPUとI/Oを分離したのか - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの7nmプロセス「ZEN 2」CPUコアのマイクロアーキテクチャ拡張 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMD、7nmで最大64コアの「ZEN2」とNVIDIA Voltaを上回る「Radeon Instinct M60」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMD、“Renoir”ことZen 2ベースAPU「Ryzen Mobile 4000シリーズ」の概要を明らかに - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMD Zen 2 CPUコアの物理的な姿が明らかに - PC Watch
Zen 3
- 【後藤弘茂のWeekly海外ニュース】AMD Ryzenの「Zen 3」と「Zen 4」アーキテクチャ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】7nmプロセスに最適化したAMDのRyzen 4000 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】7nmで作られた第3世代Ryzenのトランジスタ密度が低い理由 - PC Watch
- 【笠原一輝のユビキタス情報局】「Ryzen 7 5800U」はApple M1を上回る性能で、Intel並みの長時間駆動を実現 - PC Watch
- AMD、Zen 3採用のデスクトップ向けAPUを発表。従来比50%高速なノート向けGPUも - PC Watch
- AMD、Zen 3アーキテクチャに刷新したGPU内蔵の「Ryzen 5000G」 - PC Watch
- 「Ryzen 7 5700G」と「Ryzen 5 5600G」が6日に国内発売 - PC Watch
- 【Hothotレビュー】Zen 3コアとなり、リテール版も用意された「Ryzen 7 5700G」と「Ryzen 5 5600G」をテスト - PC Watch
- 【笠原一輝のユビキタス情報局】AMD PROで国内法人PCシェア倍増を目指すAMD ~チャネル市場向けAMD PROの計画も明らかに - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDやIBM、Armが「Hot Chips 31」でCPUアーキテクチャを公開 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDが目指すマルチダイ統合最初の一歩“ZENのMCMアプローチ” - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDのマルチダイ戦略の先駆けとなるZeppelinアーキテクチャ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDがISSCCでZENベースSoC「Zeppelin」の詳細を明らかに - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDのチップ設計手法を変えたInfinity Fabricのコントロールファブリック - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDの2017年以降の全チップの土台となる「Infinity Fabric」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDが12nmプロセスの第2世代Ryzenファミリを正式発表 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】AMDが第2世代RyzenやAPU版Ryzen、モバイル版Vegaなどを一挙発表 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】ZEN+Vegaとなった「Ryzen Mobile」ファミリの詳細 - PC Watch
- 第3世代Ryzen向けの新電源プラン、アイドル/低負荷時の問題が解消 - PC Watch
- Ryzen 5000などにSpectreに似た投機実行の脆弱性 - PC Watch
- AMD、高速L3キャッシュでゲーム性能を15%向上させる3D積層技術 - PC Watch
- 【笠原一輝のユビキタス情報局】AMD RyzenがIntelより優位な理由。プロセッサの競争軸を変えていく「3Dパッケージング技術」とは? ~AMDが3D Chiplet Technologyを発表 - PC Watch
- AMD、Re-Size BAR対応のRyzen 5000シリーズ向け新BIOSを2月に公開 - PC Watch
GIGAZINE
- 「AMDのRadeon用ドライバー」はLinuxカーネル全体の1割を占めていることが判明 - GIGAZINE
- 最新グラボから旧式グラボまで対応の超解像技術「AMD FidelityFX Super Resolution」をAMDが解説 - GIGAZINE
自作ユーザーが解説するゲーミングPCガイド
- AMD FidelityFX Super Resolution(FSR)が6月22日に正式に公開、RadeonとGeForceのGPUが対応 - 自作ユーザーが解説するゲーミングPCガイド
- AMD、BIG/LITTLEプロセッサ間のタスク移行方式の特許を取得 - 自作ユーザーが解説するゲーミングPCガイド
- AMDはデスクトップ用CPUおよびGPUよりもサーバーおよびノートブック用CPUを優先する - 自作ユーザーが解説するゲーミングPCガイド
- AMD CPUの脆弱性が発見され、管理者以外のユーザーのパスワードを漏らしてしまう - 自作ユーザーが解説するゲーミングPCガイド
自作.com
- AMDのCPU「Zen 3」にSpectre類似の脆弱性が存在|自作.com
- AMDはRyzen USB接続の問題の可能な修正を提案します|自作.com
- AMD Ryzen 5000G Cezanne APU:現在OEM向けに出荷中、年内にDIY向けに発売予定|自作.com
- AMD Zen 4プロセッサはより多くのSKUで統合グラフィックスを提供する可能性がある|自作.com
- Researchers Disclose Meltdown-like Vulnerability for AMD Processors (Updated) | Tom's Hardware
- レポート:AMD Zen 4 "Raphael" CPU、熱対策と電源管理が強化される|自作.com
- AMD社製チップセットの脆弱性によりパスワードが流出、パッチを提供|自作.com
北森瓦版
- 北森瓦版 - ASUS, MSIが“Zen”や“Zen 2”でResizeable BARに対応?
- 北森瓦版 - AMD Smart Access Memory (Resizable BAR) をRyzen 3000系でサポートへ
- 北森瓦版 - Ryzen 5000G seriesのレビューが解禁される―販売は8月6日19時から
Coelacanth's Dream
- Aldebaran/gfx90a への対応を進める ROCmソフトウェア | Coelacanth's Dream
- AMD の次世代モバイルプラットフォームでは人感センサーをサポート | Coelacanth's Dream
Twitter
AGESA
- suzakiさんはTwitterを使っています 「メモ。AMDのUEFI以前にPSP(Platform Security Processor) とAGESA(AMD Generic Encapsulated Software Architecture )が行っていることについての記事。 AMD UEFI Inside: What is really behind AGESA, the PSP (Platform Security Processor) and especially Combo PI? https://t.co/4bUtwxGeXR」 / Twitter
- AMD UEFI Inside: What is really behind AGESA, the PSP (Platform Security Processor) and especially Combo PI? | igor'sLAB
- suzakiさんはTwitterを使っています 「AMDのAGESA(AMD Generic Encapsulated Software Architecture )インターフェース仕様 AMD Generic Encapsulated Software Architecture (AGESA™) Interface Specification https://t.co/cxmRjqmYZ9」 / Twitter
- AMD Generic Encapsulated Software Architecture (AGESA™)Interface Specificationfor Arch2008 - 44065_Arch2008.pdf
OpenBMC
- suzakiさんはTwitterを使っています 「メモ。AMDで進むオープンソースのファームウェア。まず、OpenBMCから ”AMD Is Making Progress On Open-Source Firmware - Initially With OpenBMC” https://t.co/dpY5gqjWv2 Open-Source Firmware Conference (OSFC 2020)での発表で水ども公開さ入れている。 https://t.co/2QDUUsdDJX」 / Twitter
- AMD Is Making Progress On Open-Source Firmware - Initially With OpenBMC - Phoronix
- AMD's Journey towards Open Source OpenBMC firmware :: Open Source Firmware Conference 2020 :: pretalx
- Fumihiro MatsuiさんはTwitterを使っています: 「そういえば某社CPUのRDRAND命令の起動後エントロピー少ない場合の挙動あれじゃね?の件どうなったんだろうっていまググったら既にパッチ(マイクロコードアプデ?)で対応されたみたいだった」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨完治しましたたが筋肉まだです)さんはTwitterを使っています: 「@MikeHommey あえて空冷にしました。 https://t.co/LLDs9ArmPV 見た目よりも大きいので、PCIeスロットがソケットに普通より近いモデルではグラフィックカードと干渉します。また、高さもあるのでケースも選びます。私はLEDを設定するためのUSBケーブルが、グラフィックカードと干渉して付けられませんでした。」 / Twitter
- Cooler Master: Wraith Ripper
- うーさんはTwitterを使っています: 「もしやと思ってIA32_STAR[48:63]に設定する値(アプリ用のスタックセグメントセレクタ)に3を足してみたら(RPL=3)GPが出なくなった。多分AMDのCPUのバグだこれ。」 / Twitter
- うーさんはTwitterを使っています: 「いや,バグじゃない。仕様通りだ。IntelのCPUで例外にならずAMDのCPUで例外になるというのが仕様通り。やられた。」 / Twitter
- FadisさんはTwitterを使っています: 「AMDの少し古いCPUでLinuxカーネルから得るCPU情報を「乱数生成器なし」にする提案がなされている。対象のCPUは乱数生成器を持つが、このCPU向けの一部のBIOSがサスペンドから復帰する際に乱数生成器を正しく初期化せず、復帰後予測可能な値が出てくる問題が指摘されていた https://t.co/CmBOGEFq84」 / Twitter
- AMD Bulldozer/Jaguar CPUs Will No Longer Advertise RdRand Support Under Linux - Phoronix
- Takuto NaitoさんはTwitterを使っています 「AMD CPU BIOS の脆弱性の解説。What's SMM から始まって SMRAM の書き換え→SMMで任意のコード実行→任意のメモリ書き換え→HVCIのセキュリティを突破と Step by Step で説明してあって良記事 Code execution in SMM is a game over for all security boundaries.https://t.co/b4811g1NEJ」 / Twitter
- Attacking the Golden Ring on AMD Mini-PC - danny odler - Medium
- Kota Mizushima (on a diet)さんはTwitterを使っています 「「安定性はIntel」って言葉を(自作かじってるくらいの人が言ってるのを)未だにちょくちょく見かけるけど、どういう意味なのだろう?Intel 系にしかない命令セット使ったなら、そりゃIntelでしか動かないと思うけど、安定性とは如何に……」 / Twitter
- け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu クリエーター系のツール群をA社が出してますが、3世代目になったA社のR CPUでも若干不安定という話もあるので、ハードのみならずソフトウェアの互換性でもその言葉に意味はあるかも。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@keisuke_n 若干不安定て https://t.co/7E7es9Ta4q 辺りでしょうか?ただ、これくらいしか、落ちる系の話見当たらないんですよね。「安定」って何かを考えた時に、デバイスドライバはまあ、M/Bとかも絡むので、ともかくアプリケーションレベルだと、安定しなかったらCPUの不具合だと思うのです……」 / Twitter
- AMD・Ryzenに対してAdobeのソフトウェアは最適化されておらず相性が悪いというのは本当か?
- け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu プレミア(映像編集)あたりで特によく落ちるということなのでSIMD関連(SSE/AVX)が一番の問題だったのかと思います。3000番台になってから特にSIMD関連のチューニングされたらしいとのことです。 ただ業務だと敏感になるところなのでIntelにしておきたいという本音はあるかと思います」 / Twitter
- け:【ご視聴有難うございました】第5回IoT勉強会in岡山さんはTwitterを使っています 「@kmizu 追記:3000番台になって落ちにくくなった。 CPUの挙動は結構バラバラ(特にタイミング)なのでたぶんA社がかなりクリティカルなアセンブリなコードを書いていてそれで意図しない動作になってしまっているのかと思います。まぁ実際はApple Siliconでは動いているようですけど(^^;。」 / Twitter
- InstLatX64さんはTwitterを使っています 「My #Zen3 expectations -Documented non-Zen2 feats:#VAES,#VPCLMUL, PKU, PCIDE -Dual int store -300+ ROB -Better L1,L2 latency to compensate bigger L3 -4x256b, more symmetrical FPU (2x256b (v)shift, store, perm, div) -fewer ucoded insts -0 crosslane penalties My Zen2 complaint list https://t.co/j78IT9NdQx」 / Twitter
- InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer’s Manual Volume 1: Application Programming" with shadow stack support https://t.co/5MgdnLZ0gg https://t.co/uZpXkdmLEH」 / Twitter
- InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer's Manual Volume 2: System Programming" 24593.pdf to 3.36 with shadow stack support https://t.co/gzSS39wm69 https://t.co/oKqqTdz0wJ」 / Twitter
- InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions" 24594.pdf to 3.31 with new features for #Zen3 https://t.co/tQvRMvLG86 https://t.co/f92iS17RQ2」 / Twitter
- HXLさんはTwitterを使っています 「Zen 4 Support AVX512? https://t.co/ZwNql3MPxL」 / Twitter
- 北森瓦版 - “Zen 4”はAVX3-512とBFloat 16をサポートする
- InstLatX64さんはTwitterを使っています 「#AMD released the Supervisor Entry Extensions 0.50 pdf with Enhanced SYSCALL/SYSRET (#ESC), Reserved Supervisor Shadow Stacks (#RSSS) and Re-Entrancy Protection https://t.co/QKShUOqs56 https://t.co/7O2CxXhjZS」 / Twitter
- AMD Supervisor Entry Extensions, 57115 - 57115_0.50.pdf
- InstLatX64さんはTwitterを使っています 「#AMD refreshed the "AMD64 Architecture Programmer's Manual Volume 2: System Programming" 24593.pdf to 3.37 with #X2APIC, #APERF, SPEC_CTRL, PRED_CMD MSRs, etc. https://t.co/nndFzrwnqA https://t.co/sJGJtv7lGb」 / Twitter
- AMD64 Architecture Programmer’s Manual, Volume 2: System Programming - 24593.pdf
- Rui UeyamaさんはTwitterを使っています 「しかしx86エコシステム全体からみてみると、x86がIntelオンリーだったら今ごろTSMC製造のARMチップと性能差がつきすぎて、真剣にARMへの移行を検討するクラウドベンダとかが出てきたかもしれないから、AMDが存在しているのはIntelにとってもよかったのかもしれない。」 / Twitter
- Ryzen - Wikipedia
- Developer Guides, Manuals & ISA Documents - AMD
- GPUOpen - GPUOpen
- Welcome to ROCm Platform — ROCm Documentation latest documentation
- ASRock > FM2A68M-HD+
- AMD A6-Series A6-7400K - AD740KYBI23JA / AD740KYBJABOX
- 本の虫: AMDのZen 2でRDRANDが-1を返すので最近のGNU/Linuxがブートできない問題
- AMDプロセッサーにも脆弱性みつかる。Ryzen 7 / Threadripperまで2011年以降全CPU - Engadget 日本版
- security-analysis-predictive-store-forwarding.pdf
- AMD Programmer Manual Update Points To PCID Support, Memory Protection Keys - Phoronix
- AMD Prepping PCID/INVPCID Support For KVM Guests On Zen 3 EPYC - Phoronix
- AMD64 Architecture Programmer’s Manual, Volume 2: System Programming - 24593.pdf
- swayからi3へ移行しました - w_o’s diary
Apple
Apple
ソフトウェア
- 各OSのリリース日とサポート終了日を表にまとめてみた - Qiita
- iOS 12 のアップデートについて - Apple サポート
- iTunes で iPhone、iPad、iPod が認識されない場合 - Apple サポート
- iTunes の USB 関連の警告を解決する - Apple サポート
- Use zsh as the default shell on your Mac - Apple Support
- Apple ID - Apple サポート
- Apple IDの復旧 - Apple (JP)
- Apple ID の 2 ファクタ認証 - Apple サポート
- セキュリティと Apple ID - Apple サポート
- Apple ID のデバイスリストを調べて Apple ID でサインインしているデバイスを確認する - Apple サポート
- 定期購読内容を表示・変更・解約する - Apple サポート
- プライバシー - Apple(日本)
- Apple セキュリティアップデート - Apple サポート
- Apple security updates - Apple Support
- Apple Pay に対応しているアジア太平洋地域の銀行とカード発行会社 - Apple サポート
- WebKit Downloads | WebKit
- Getting the Code | WebKit
- WebKit/webkit: Unofficial mirror of the WebKit SVN repository
- Bugzilla Main Page
- iTunes Store で購入したコンテンツの再生時に iTunes からコンピュータの認証を求められる場合 - Apple サポート
- iTunes Store で -45054 エラーが表示される場合 - Apple サポート
- iTunes でコンピュータの認証を解除する - Apple サポート
- アップル、157ページに及ぶ詳細なセキュリティガイドを公開 - ZDNet Japan
- Apple Platform Security
- 「+メッセージ(プラスメッセージ)」をApp Storeで
技術仕様
- iPhone 6 Plus - 技術仕様
- iOS UPnP/SSDP Multicast over USB Tethering | Apple Developer Forums
- usb endosope | Apple Developer Forums
- Tethering over USB protocols? | Official Apple Support Communities
修理
- 保証状況と修理サービスオプションについて - Apple サポート
- 製品の保証状況とサービス期間を確認する - Apple サポート
- iPhone、iPad、iPod touch を修理に出す準備をする - Apple サポート
- 「iPhone を探す」のアクティベーションロックを無効にする - Apple サポート
- 修理 - Apple サポート 公式サイト
サポート
- Welcome - Apple Support
- ビンテージ製品とオブソリート製品 - Apple サポート
- ARM ベースおよび Intel CPU の投機的実行の脆弱性について - Apple サポート
- iPhone、iPad、iPod touch でメッセージを送受信できない場合 - Apple サポート
- [HD] Steve Jobs - iPhone Introduction in 2007 (Complete) - YouTube
- Appleプラットフォームのセキュリティ - apple-platform-security-guide-j.pdf
- Apple(日本)
- iCloud
- 復旧キーを生成する方法 - Apple サポート
- Apple ID を管理
- apple id 削除 サインアウトできない - Google 検索
- iPhone、iPad、iPod touch を売却、譲渡、下取りに出す前にやっておくべきこと - Apple サポート
- Apple - Support - System Status
- MFi Program - Apple Developer
- バッテリー - サービスとリサイクル - Apple(日本)
- 電源&ケーブル - iPhoneアクセサリ - Apple(日本)
- USB-C - Lightningケーブル(1 m) - Apple(日本)
- 環境 - Apple(日本)
- iOS 14 や iPadOS に対応しているデバイス - Apple サポート
blog
- Windows10でiPhone・iPadとiTunesが連携しない|Tascal PCサポート情報
- Windowsにおいて、iTunesをインストールせずiPhoneイーサネットドライバのみをインストールする方法(USBテザリング可能に) – Luna Blanca
- iPhoneで有線LAN接続はできる?
- iPhone/iPadを有線LAN(Ethernet)で接続しよう | 毛流麦花
- 【知ってた?】iPhoneが勝手に「弱Wi-Fi」を拾わないようにする方法(iOS 11新機能) | できるネット
- スティーブ・ジョブズは自分の子どもにiPadを禁止したのか?|中植正剛|note
- 「iOS 15」 「iPadOS 15」 対応機種まとめ。初代iPhone SEもサポート継続 | CoRRiENTE.top
- SMSを利用したフィッシング詐欺「スミッシング」から身を守るには | GMOグローバルサインブログ
- それを作れば彼らはやってくる:Appleが開く世界的な監視・検閲へのバックドア | P2Pとかその辺のお話R
- Apple File Systemの下にはEFI driverが埋まっている - Blog posts by @retrage
GIGAZINE
Hardware
- 「AppleやAmazonは電子廃棄物の津波を引き起こしている」という批判 - GIGAZINE
- 「iPhone 11/11 Pro」は非正規のディスプレイ交換サービスを利用すると警告が出る - GIGAZINE
- Appleがサードパーティーの修理業者にも正規の部品&修理ツールを供給 - GIGAZINE
- AppleはiPhoneのバッテリーをロックして非正規プロバイダーが交換できないようにしている - GIGAZINE
- 「修理する権利」を保証する法律をイギリスが施行、ただしスマホやノートPCは対象外 - GIGAZINE
- スマートフォンメーカーに「7年間のソフトウェアアップデートおよび修理サポート」をドイツ政府は求めている - GIGAZINE
- Appleは純正以外のワイヤレス充電器の速度を半分に制限している - GIGAZINE
- iPhone 12 miniのみMagSafe充電器での出力が12Wに制限されることが明らかに - GIGAZINE
- Appleの「ロスレスオーディオ」はAirPods ProやAirPods Maxでは利用できない - GIGAZINE
- iPhoneのカメラはバイクの振動などで壊れる可能性があることをAppleが警告 - GIGAZINE
- iPhone 13はサードパーティーの修理業者に画面修理を依頼するとFace IDが機能しなくなる可能性 - GIGAZINE
- 第6世代「iPad mini」は画面スクロール時に表示が崩れる「ゼリースクロール」が生じる - GIGAZINE
- 電源オフのiPhoneでも「探す」機能で位置を特定できるのはなぜか? - GIGAZINE
セキュリティ
- 警察はiPhoneのパスコードをわざわざ破らなくてもあっさりiPhoneに侵入できるとの指摘 - GIGAZINE
- iPhoneの強固なセキュリティがハッカーの隠れ蓑になってしまっているという指摘 - GIGAZINE
- Appleが新しくSafariに追加した「Face IDやTouch IDによるウェブサイト認証機能」はこんな感じで動作する - GIGAZINE
- Appleがパスワード不要でFace IDやTouch IDだけでウェブサービスにログインできる「パスキー」機能を開発中 - GIGAZINE
- WindowsでiCloudキーチェーンのパスワード管理が可能&EdgeでiCloudが使えるようになったので実際に導入してみた - GIGAZINE
- iOS 15にある3つのゼロデイ脆弱性をセキュリティ研究者が公表、理由は「Appleのバグ報酬プログラムが機能していないから」 - GIGAZINE
- いかにしてマルウェアアプリはApp Storeに侵入するのか? - GIGAZINE
- Appleの落とし物トラッカー「AirTag」の紛失モードを悪用したフィッシング攻撃が可能であるという報告 - GIGAZINE
- iPhoneには「認証なしでApple Payでの支払いが可能になる脆弱性が存在する」とセキュリティ研究者が指摘 - GIGAZINE
- Appleが「iOS 15.0.1」でロック画面をバイパスできてしまう脆弱性を修正、しかしバグ報奨金を支払っていないとの指摘 - GIGAZINE
プライバシー
- iPhoneユーザーのほとんどがiOS 14.5で有効になったATTからアプリによるユーザー追跡を拒否していることが明らかに - GIGAZINE
- AppleがiPhoneの写真やメッセージをスキャンして児童の性的搾取を防ぐと発表、電子フロンティア財団などから「ユーザーのセキュリティとプライバシーを損なう」という抗議の声も - GIGAZINE
- iOS15の性的虐待画像の検出「誤解を解く説明必要」ソフトウェア担当副社長語る - iPhone Mania
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Appleによる写真監視システムの詳細。iCloudにアップロードされた写真は、NCMECによる児童虐待画像データベース (CSAM) と比較される。iMessageで送られた画像はデバイス内蔵のデータベースと比較され、人間のレビューを経て、違反と認定されたユーザアカウントは抹消される。 https://t.co/KUSmtdhoAA」 / Twitter
- Apple's Plan to "Think Different" About Encryption Opens a Backdoor to Your Private Life | Electronic Frontier Foundation
- 世界中から猛反発を受けるAppleの「iPhone内の児童ポルノ検知システム」には大きな穴があることが判明 - GIGAZINE
- 90の人権団体らが「iPhoneの写真やメッセージのスキャン」に抗議する公開書簡を発表、かえって子どもの権利が侵害されるとの懸念 - GIGAZINE
- 物議を醸しているAppleの写真スキャンで「偶然の一致」の実例が報告される - GIGAZINE
- AppleはiCloudメールの添付ファイルを2019年からスキャンしていた - GIGAZINE
- Appleが「iPhoneの写真やメッセージをスキャンする施策」の延期を発表 - GIGAZINE
- 「ロンドン新技術憲章」で顔認識技術の扱いはどうなるのか? - GIGAZINE
- Appleの児童ポルノ規制はかえってリスクの増加を招くという指摘 - GIGAZINE
App Store
- AppleがApp Store以外からアプリを入手できないようにしているのは「ユーザーの安全のため」とするレポートを発表 - GIGAZINE
- 「フォートナイト」開発元のEpic GamesがAppleを提訴 - GIGAZINE
- Apple対Epic Games訴訟の対審がスタート、ティム・スウィーニーCEOも発言 - GIGAZINE
- Googleがフォートナイトの開発元・Epic Gamesの買収を目論んでいたことが明らかに - GIGAZINE
- iOS版フォートナイトアプリの再リリースを予定しているとEpic Gamesが発表 - GIGAZINE
- AppleとEpic Gamesの訴訟で「App StoreはApple以外の支払い方式も認めるように」との判決が下る、一方でAppleの勝利という声も - GIGAZINE
- Epic GamesがAppleとの訴訟の判決を不服として控訴 - GIGAZINE
- Appleが「アプリ内でアカウント削除を可能にすること」を必須に、開始時期は? - GIGAZINE
- 無料&広告なしで圏外でも使えるオープンソースの地図アプリ「Organic Maps」を使ってみた - GIGAZINE
- AppleがNFCチップ関連でEUの独占禁止法違反の罪に問われる可能性、Apple Payのような非接触決済が他サービスにも開放か - GIGAZINE
News
- iCloudキーチェーンのパスワード管理がWindowsでも可能に - PC Watch
- 中古スマホでいまだ「iPhone 8」「iPhone 7」が売れている理由 - ITmedia Mobile
- Apple、「iCloud for Windows 12.5」を公開 ~「Microsoft Edge」ともパスワードを同期可能 - 窓の杜
- Apple、「iCloud for Windows 12.5」を公開 - iPhone Mania
- Apple Storeで一括購入したiPhoneになぜかドコモのネットワーク利用制限が () - AKIBA PC Hotline!
- アップル純正のMagSafeバッテリーが登場、AirTagアクセサリーの新色も - ケータイ Watch
- “シャッター音が消せない”日本のiPhone、海外に持っていけば鳴らない設定可能に iOS 15で - ITmedia NEWS
- Apple、App Storeの「問題を報告」ボタンは詐欺アプリ対策のためと認める - iPhone Mania
- 【悲報】iPad mini 6でディスプレイの歪み・変色問題が報告される - ソフトアンテナブログ
Wikipedia
- iOS version history - Wikipedia
- History of iTunes - Wikipedia
- Safari version history - Wikipedia
- Apple motion coprocessors - Wikipedia
- Secure Enclave - Wikipedia
- iPhone - Wikipedia
- iPhone 7 - Wikipedia
- Apple A10 - Wikipedia
- IPhone 8 - Wikipedia
- Apple A11 - Wikipedia
Twitter
- トワイライト - Le☆S☆Caさんのツイート: "iOSのSafariは更新マーク長押しでPCレイアウトに出来る、っていうの人に教わるまでずっと知らなかった https://t.co/LsEfkYZZav"
- Tsuzuさんのツイート: "多分USB/Bluetoothテザリングに限ると思うけど"
- Tsuzuさんのツイート: "待って、iOS12ってiPhoneはWi-Fiに接続しながらPCはテザリングとかいうやばいことができるようになってるんですか すごいですね(誰得"
- まちカドおるみんさんはTwitterを使っています 「macOS が安定しているという意見を散見するんだけど、マジかって感じです。たぶんそれ環境が不安定になるまえにハードウェア換えるから不安定なの踏まないだけだよ、サポート中でもサポート終わりかけのときは Windows とは比べものにならないぐらい不安定になる。まあはよ買い替えろだけど」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「iMac 2011 は High Sierra までサポートされてたけれど、Mojave や Catalina 出る前から不安定だった。3 回に 1 回くらいは cold boot コケるし。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「macOS で sudo nvram boot-args="-v" すると splash screen の皮が剥れて黒背景に白文字のなんの色気もない verbose な boot log が画面に出てくるけれど、こっちのほうがまだコケたところわかるから安心できる」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「たぶん大多数のユーザーは黒地に見慣れない白文字がダーッて吐かれたら不安なことこの上ない、というのはわかる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Google Docs のスライドに、自分の話しているところをオーバーレイして、動画にしたいことって、あるじゃないですか。QuickTime Viewerのビデオ録画ウィンドウをスライドの前に配置して、QuickTime Viewerでスクリーンキャプチャ動画を録画すれば、簡単にできるというのが、今日の学びです https://t.co/wmd0DkQ8nL」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「フフフ… そんなローテクな方法で合成してるとは、誰も気づくまい」 / Twitter
- KOBA789さんはTwitterを使っています 「macOS だと開発がハードモードなもの、iOS または macOS 向けアプリ以外すべて、という雰囲気になってきたよな」 / Twitter
- カナやん@みかん本重ね合わせ中さんはTwitterを使っています 「@KOBA789 SIP導入されたあたりから、少しずつ使い勝手が悪くなってきている印象ありますね。最近だとYosemiteあたりが一番使いやすかった。」 / Twitter
- hikaliumさんはTwitterを使っています 「macOS上のQEMUで、-smp cores=2にしてもEFI_MP_SERVICES_PROTOCOLが1コアしかないぞって言ってきており悲しい(むずかしい)。 https://t.co/SUORcbo5Xw」 / Twitter
- hikaliumさんはTwitterを使っています 「kvm有効にしたLinuxホスト上なら4コア見えることが確認できた。結局kvmかあ〜(たぶんみんな-enable-kvmの状態しかテストしてない/使っていないんだと思う)。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「iOS 15では iPhoneが完全にシャットダウンされていてもデバイスが「発見」可能である。これはメインのプロセッサと独立して AOP (Always-on Processor) と呼ばれる電源管理チップとBluetoothチップが動作し、シャットダウン直前に暗号化キーを転送することにより行われる。 https://t.co/gq1vAxbxbc」 / Twitter
- Always-on Processor magic: How Find My works while iPhone is powered off
- BCNランキング - BCN+R
- 中古スマホ・タブレット販売の【イオシス】|けっこう安い。
- 株式会社デジフォース
- The Official Bluetooth SIG Member Website
- 【mį】iPhone6PlusのBluetoothは何台まで同時接続出来るの!? | ミヤチャンブログ
- libimobiledevice - A cross-platform software library and tools to communicate with iOS devices natively
- libimobiledevice/libplist: A library to handle Apple Property List format in binary or XML
- Diego Giagio :: Personal Website - iPhoneEthernetDriver
- dgiagio/ipheth: iPhone USB Ethernet Driver
- M1RACLES: M1ssing Register Access Controls Leak EL0 State
USB
USB4
その他
- USBプロモーター・グループがUSB4仕様を発表:時事ドットコム
- 最大転送速度は40Gbps、USB 4ではThunderboltとUSBが完全統合 | TechCrunch Japan
- 「USB4」の仕様が発表、より高速かつスマートな転送が可能に - CNET Japan
- USBの次世代仕様「USB4」が発表。Thunderbolt 3ベースで最大転送速度は40Gbpsに - 4Gamer.net
- 「USB4」が普及すれば、規格乱立という問題が今度こそ解決する(かもしれない)|WIRED.jp
- USB4は転送速度40Gbpsに100W給電対応!アレと同じ! - ハイパーガジェット通信 | SIMフリースマートフォン/iPhone/タブレット/充電器/便利グッズ
- 「USB4」でカオス状態が解消される!?「USB」の気になるアレコレを徹底解説! - 価格.comマガジン
- USB 4はバスのプロトコルトンネリングをサポートし、40 Gbpsの転送をサポートします - 自作ユーザーが解説するゲーミングPCガイド
- USB4とは?—Thunderbolt 3(DP・PCIe)を内包した新規格を事前予習|8vivid
- USB 3.xでプラグをゆっくり挿すとUSB 2.0で接続されてしまうという話 | Interface – CQ出版
- 【USBコラム13】USB認証とUSB機器間認証は別物 | Interface – CQ出版
- AMD の USB4 ホストルーターをサポートするパッチが投稿される | Coelacanth's Dream
Thunderbolt
Thunderbolt
- Thunderbolt Technology Community
- IDF Session Presentation Template
- Intel Presentation Template Overview
- Thunderbolt 3 Overview Slides_Web_v3
- Thunderbolt3_TechBrief_FINAL.pdf
- PowerPoint Presentation
DP Alternate Mode
- DisplayPort - Wikipedia
- DisplayPort - Wikipedia
- Snapdragon 835はDisplayPort Altモードに対応、USB Type-Cからの画面出力が可能 | ガジェット通信
- VESA、8K解像度を見据えた映像出力インタフェース規格「DisplayPort 2.0」を発表 (2019年6月27日) - エキサイトニュース
- DisplayPort 2.0 Published For 3x Increase In Data Bandwidth Performance - Phoronix
- 最大帯域幅77.4Gbpsで16KディスプレイやVRをサポートする「DisplayPort 2.0」が発表される - GIGAZINE
- 16K解像度に対応した新規格「DisplayPort 2.0」が重要な理由 | ギズモード・ジャパン
- VESA、ケーブル1本で16K 60Hz/HDRの伝送が可能な「DisplayPort 2.0」 - PC Watch
- 次世代USB「USB4」ではDisplayPort出力対応が“必須要件” ~DisplayPort 2.0はThunderbolt 3並の速度へ - PC Watch
- VESA、DisplayPortコネクタのフェードアウトを示唆。将来的にはUSB Type-Cに集約 ~DisplayPort 1.4規格の現況を報告 - PC Watch
- FadisさんはTwitterを使っています 「USB端子を通してDisplayPortの信号を吐くDisplayPort Alternate Modeの規格がバージョン2.0になったらしい。この変更でUSB4 Type-Cの端子が生えている場合にDisplayPort 2.0相当のレートで信号を吐けるようになり、8Kを超える画面や高解像度のHDRに対応できるようになる https://t.co/cuP50cq9oL」 / Twitter
- DisplayPort Alt Mode 2.0 Brings Interoperability With USB4 - Phoronix
- USB4互換で16K HDR対応の「DisplayPort Alt Mode 2.0」 - PC Watch
- DisplayPortやUSB Type-Cで8K伝送、VESA「HBR3」。製品の早期開発用に認定プログラム - AV Watch
- とみながたけひろさんはTwitterを使っています 「@n_soda @k_nitadori @DIME_HACKS USB-CのAltModeでDP使う場合、最大4lane使えるので、DP1.4(HBR3)流せば8.1Gbps*4流せます。まあそれでも4laneで4k*2k*60fps*30bpp*2あたりが限界ですが、いいやつだといまどきはDSC使っての圧縮ができるので更に頑張れます」 / Twitter
- 可食さんはTwitterを使っています 「USB Type-CハブのUSB Type-Cポートから映像出そうとして失敗してる人たまに見かけるけど、仕様で禁止されているのでどのハブを使っても無理 https://t.co/CaD9TNQD2Q」 / Twitter
ストレージ
- 日本サムスン、Thunderbolt 3対応の超高速ポータブルSSD - PC Watch
- 【レビュー】Thunderbolt 3接続ポータブルSSD「Samsung Portable SSD X5」実機レビュー - PC Watch
- デル、世界最速/最小Thunderbolt 3 SSD。最高速度2,800MB/s - PC Watch
- パナソニック、Thunderbolt 3対応のポータブルSSD - PC Watch
- グリーンハウス、Thunderbolt 3接続の高速SSD - PC Watch
- センチュリー、Thunderbolt 3接続の500GB~2TBポータブルSSD - PC Watch
- Thunderbolt3 Portable NVMe SSD 512GB [CPNVTB3-512] |秋葉館.com Mac専門店
- USB, ストレージ | GH-SSDTB3A | GREEN HOUSE グリーンハウス
- Thunderbolt 3接続の高速外付けM.2 SSDケース - PC Watch
Intel
- TB-TechBrief-02.indd
- Thunderbolt™ Controllers Product Specifications
- 製品の開発コード名 Alpine Ridge
- 製品の開発コード名 Titan Ridge
- Introducing Thunderbolt 4: Universal Cable Connectivity for Everyone | Intel Newsroom
AMD
- AMD XConnect™テクノロジー | AMD
- AMD,Thunderbolt 3接続の外付けGPU技術「XConnect」を正式発表 - 4Gamer.net
- AMD、外付けGPUとノートPCをThunderbolt 3でつなぐ「AMD XConnect」 | マイナビニュース
- AMD、Thunderbolt 3経由でノートPCに外部GPUを接続する技術「XConnect」 ~再起動不要で着脱可 - PC Watch
GIGABYTE
- 反撃の狼煙を上げるGIGABYTE、「ビデオカード部門とマザーボード部門の統合」で何が変わるのか? - AKIBA PC Hotline!
- GC-ALPINE RIDGE (rev. 1.0) | マザーボード - GIGABYTE Japan
- GC-ALPINE RIDGE (rev. 2.0) | マザーボード - GIGABYTE Japan
- GC-TITAN RIDGE (rev. 1.0) | マザーボード - GIGABYTE Japan
- GC-TITAN RIDGE (rev. 2.0) フォトギャラリー | マザーボード - GIGABYTE Japan
- GC-MAPLE RIDGE (rev. 1.0) 主な特徴 | マザーボード - GIGABYTE Japan
- GIGABYTEからThunderbolt 4増設ボード「GC-MAPLE RIDGE」が登場
- GIGABYTE、7万円超のハイエンドIntel Z390搭載マザーボード ~X299マザーやThunderbolt 3増設カードも - PC Watch
- GIGABYTE、Thunderbolt 4を2基増設できるPCIe 3.0 x4接続の拡張カード - PC Watch
- GC-TITAN RIDGE (rev.1.0): どてやの戯れ言
- Thunderbolt3 AIC 一覧 (2019年12月版): どてやの戯れ言
- USB4製品の登場と次期Ryzenなど: どてやの戯れ言
- Thunderblt AIC: どてやの戯れ言
PC Watch
- 【PR】【パソコン実験工房PC Watch出張所 - Supported by パソコン工房】今後要注目のThunderbolt 3にも対応できるDAW向けマシン - PC Watch
- 【イベントレポート】ASRock、Mini-ITXケースに入る世界初のThunderbolt 3ネイティブビデオカード - PC Watch
- 【イベントレポート】Intel第10世代Coreは、Thunderbolt 3をオンダイ統合 - PC Watch
- Thunderboltに数分でハッキング完了可能な脆弱性。2011年以降のPCが対象 - PC Watch
- Intel、USB4準拠の「Thunderbolt 4」を次期CPUに搭載 ~単体のIntel 8000シリーズのコントローラも - PC Watch
- 【山田祥平のRe:config.sys】ゆくポートくるポート - PC Watch
- ベルキン、ACアダプタ不要のThunderbolt 3ドック - PC Watch
- OWC、4K/60Hzの2画面出力が可能なThunderbolt 3ドック - PC Watch
- OWC、Thunderbolt 3対応NVMe SSDケース「Envoy Express」 - PC Watch
- Club 3D、USB4認証で40Gbps転送可能なケーブル - PC Watch
- OWC、100W給電やUSB4にも対応のThunderbolt 4ケーブル - PC Watch
- M1 Macにも対応した3ポートThunderbolt 4ハブが入荷、USB Type-Aもあり - AKIBA PC Hotline!
GIGAZINE
- Thunderboltポート経由でPCのシステムメモリを直接読み書き可能となる脆弱性「Thunderclap」 - GIGAZINE
- 数分でPC内のデータにアクセス可能なThunderboltの脆弱性が判明、ソフトウェアによる修正は不可能 - GIGAZINE
- IntelがUSB4に準拠したThunderbolt 4の概要を発表、次世代Intel CPUが対応予定 - GIGAZINE
- ノートPCでの快適なゲーム環境を実現する「WD_BLACK D50 Game Dock」レビュー、周辺機器をThunderboltケーブル1本に - GIGAZINE
- Thunderbolt - Wikipedia
- Thunderbolt (interface) - Wikipedia
- 分かりづらいThunderbolt 3とUSB Type-Cの違いについてまとめた | HANPEN-BLOG
- Thunderbolt3 AIC 一覧 (2019年12月版): どてやの戯れ言
- Amazon.co.jp: 【USB-IF 認証済み】Cable Matters Thunderbolt 3ケーブル (20 Gbps) サンダーボルト3ケーブル/ USB-C 3.1 Gen 2 (10 Gbps) ケーブル USB2.0 / 3.0 / 3.1 対応 2m(ブラック): 家電・カメラ
- More information on Thunderclap
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第15回 PCIパススルーその1「PCIパススルーとIOMMU」
- 日記 (2019 年 3 月上旬)
- iommu - Google 検索
- MSIのZ77A-GD80でThunderboltを試す | 日経 xTECH(クロステック)
- Fadisさんのツイート: "Thunderclap: 多くのOSでデバイスがアクセスできるメモリを制限するIOMMUの扱いがMMUほど徹底されておらず、悪意あるデバイスがDMAを使ってメモリ上の触ってはいけないデータを読み書きできるよ、という脆弱性 https://t.co/W1OCHgK14b"
- Thunderclap
- Fadisさんのツイート: "Thunderclapはハードウェアに物理的なアクセスを要する脆弱性ではあるけど、最近のPCはThunderbolt3とかいうPCI-Express(もちろんDMA付き)が充電端子として生えている為「悪意ある充電スタンドが任意のコードを実行できる」というシナリオが容易に想像できるあたりが問題を深刻にしてるっぽい"
- ASCII.jp:その名はTiger Lake、IntelがノートPC向け最新CPUを発表:CES 2020|CES 2020レポート
- Kernel DMA Protection for Thunderbolt™ 3 (Windows 10) - Microsoft 365 Security | Microsoft Docs
- More information on Thunderbolt™ security research published by Eindhoven University
- ASCII.jp:IntelがThunderbolt 4の詳細要件とIntel 8000シリーズコントローラーを発表
- ASRock > Thunderbolt 4 AIC
- Thunderbolt 4 AIC:ASRock Thunderbolt™ 4 増設ボード | CFD販売株式会社 CFD Sales INC.
- hanpenさんはTwitterを使っています 「@uchan_nos Thunderbolt 3コントローラーにはAlpine Ridge(古)とTitan Ridge(新)の大きく2種類があるんですが、Alpine Ridge採用デバイスはThunderbolt 3ホストにしか対応していません。USB接続は不可です。Titan Ridge採用デバイスはUSBホストとThunderbolt 3ホストの両方で使えます。」 / Twitter
- Thunderbolt™ 3 Controllers Product Specifications
- Thunderbolt 4について解説。USB4やThunderbolt 3と何が違うのか
- Thunderbolt 5、PAM-3変調により80 Gbpsの帯域幅を実現か - 自作ユーザーが解説するゲーミングPCガイド
- Thunderbolt 5の仕様が明らかに?有効帯域幅が2倍、転送速度は80Gbps - iPhone Mania
- Thunderbolt 5の転送速度は「80Gbps」と現行の2倍となる可能性 - GIGAZINE
- Thunderbolt 5は80 Gbpsに達する可能性がある、とリークされた画像が示す|自作.com
- Club 3D、3ポート増設できるThunderbolt 4 Hub - PC Watch
USB Type-C
PC Watch
- 【山田祥平のRe:config.sys】転ばぬ先のType-C - PC Watch
- 【山田祥平のRe:config.sys】Type-Cポリスの憂鬱 - PC Watch
- 【山田祥平のRe:config.sys】何がなんでもType-C - PC Watch
- 【笠原一輝のユビキタス情報局】DisplayPort/Thunderbolt/ACアダプタを飲み込んだUSB Type-C ~5年後ノートPCの専用アダプタは消滅する? - PC Watch
- 【特集】USB Type-Cの挙動を探る(ディスプレイ編) ~Type-C搭載ディスプレイの映像出力&給電機能をチェック - PC Watch
- 【特集】ケーブル選びに失敗しないための「USB Type-C」基礎知識 - PC Watch
- 【山田祥平のRe:config.sys】ありがちのType-C、まさかのType-C - PC Watch
- Cypress、USB4とPD 3.0対応のUSB Type-Cコントローラをサンプル出荷 - PC Watch
- 【藤山哲人と愛すべき工具たち】USB Type-C壁コンセントの組み込み手順を紹介。LAN付きテーブルタップへの改造も - PC Watch
- 【特集】「USB Type-C」と「Thunderbolt」って同じもの?よく分かる最新コネクタ解説 - PC Watch
- 【山田祥平のRe:config.sys】Type-C、ややこしいのはポートの仕様 - PC Watch
- 【山田祥平のRe:config.sys】USB Type-C以外のレガシーポートはなくても困らない - PC Watch
blog
- 規格的にアウトなUSB Type-C変換アダプタが売られている話 | HANPEN-BLOG
- USB-C – イヤホンジャックの変換アダプタは2種類あるので要注意
- 日本で買えるUSB-IF認証済みUSB Type-Cアクセサリのリスト
- USB Type-C プラグがゆるくなったときの対策と直す方法|What to do when USB-C become loose. | フレークの素 | Web制作・システム開発のCreativeFlakeブログ
- Thunderbolt 3とUSB Type-Cの関係性について調べた | HANPEN-BLOG
- USB-TypeCで、地獄をみた話。 | モテモテテクノロジーブログ
- 「USB Type-C」問題と安全に使える製品のまとめ―規格の解説やチェック方法など | AndMem
- プロフィール
- USB 3.0/3.1/3.2の違い—速度・形状・4つの注意点を簡単にまとめたよ!|8vivid
- 仕様違反のUSB Type-C変換アダプターが売られている話
Twitter
- finoさんのツイート: "USB Type-Cくんのまとめ、拡散されちゃったんでアレだけど一応書きもらしとかツッコミあったやつ追記したらもっと長くなりました https://t.co/JWOg9xwFAi"
- Fadisさんのツイート: "Type-C登場以前から電源周りに関してUSBの規格は無視され続けているが、問題はそこから供給される電力が大きなものになってきて、昔のようにいいかげんなままにしておくと危険なものになってきた事なんだよな"
- UTiCd/うちかどさんのツイート: "USB PDのデュアルロール持ってるデバイスは、強制給電-自動選択-強制受電 くらいのスイッチ(もしくは内部設定)を付けておいてくれればって話よね・・・ 特にモバイルバッテリとノートPCを繋いだときにどっち方向に給電されるのか分からないの勘弁して欲しい"
- 岡田哲哉さんのツイート: "Mac同士をUSB-Cで繋ぐと「給電ガチャ」が楽しめますw(実験済み)… "
- Kazuho Okuさんのツイート: "レビュー削除以前の話として、USB-C規格に不適合な製品を「USB-C対応」として販売することに法律上の問題はないのかな / “Amazonにステマレビュアー扱いされてレビューを全て削除された話 - すり身ライフ” https://t.co/ojX1JV4IDH"
- Amazonにステマレビュアー扱いされてレビューを全て削除された話 - すり身ライフ
- しめじさんのツイート: "Type-C、なんでレセクタプル側の内部に薄い基板付ける構造にしたのか、本当に分からん。折れたら機器の修理、交換だぞ… "
- 伯爵格雷 ✌️🐸✌️さんのツイート: "・モバイル版Chromeはアドイン出来ないし広告ブロッカー外付けだし何の価値ですか? ・どうせW1チップ搭載機に取り込まれるのだ諦めよ ・TypeCは中のベロが腐る ・高い(わかる)"
- なかのん&マジックさんのツイート: "適度に故障からの買い換え需要を狙ってるのでは……microBでもデバイスのコネクタがグラグラしてくるからどっちみちって気もする。"
- とみながたけひろさんのツイート: "規格上、ハブ通すとPDやaltモードが使えなくなって色々と不便(PDは使えたかも、自信なし)、というのを理解してもらうコストが高いとかかなあ… "
- かごめPはマスタリング講座始めましたさんのツイート: "教えて偉い人! USB Type-cのハブが欲しいなあとぼんやり思っているんですが、市販のハブで「USB Type-CをUSB Type-C複数口に分配するハブ」が無いんです。USB Type-Cを複数口出せるハブが欲しいんだけど、そういうのって無いんです?規格上の問題?"
- はんぺんさんのツイート: "PCメーカー各社はマジで ・USB 2.0 / 3.1 Gen.1 / 3.1 Gen.2 のどれなのか ・USB PDで充電できるのか ・何W以上のUSB PDなら充電できるのか ・DisplayPort Alt Modeの有無 ・最大の解像度とフレームレート ・DisplayPort MSTの有無 ぐらいは詳細スペックのどこかに書いといてほしい"
- monochromeさんはTwitterを使っています 「規格上は遅くなることはないが、規格に準拠していない粗悪品があって、それだと実際に遅くなることがあるという話らしい」 / Twitter
- 也田嗔/旧式P [焼]さんはTwitterを使っています 「USB TYPE-Cはどっち向きでも挿せるけど、端子の並びは完全対称ではないので、実は表裏が存在する。 そのため、データの転送速度がなんか遅いなって時は表裏を変えると改善する場合がある。 #新年だからみんなに役立つこと言うぞ選手権 https://t.co/ZdggXFCaWq」 / Twitter
- HiguchiさんはTwitterを使っています 「@latentacle @yumori0305 外部から失礼&書き足したい補足説明 皆さん勘違いされてますけどUSBの企画に準拠したtype-cは転送速度が遅くなることはありません。企画に準拠していない粗悪品では遅くなる可能性がある、というだけで、間違えた知識になりませんように。」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「「1本のケーブルで全てを接続」、聞こえはいいけど何らかの不具合の時にHDD等がそれ経由で刺さっていると「試しに抜き差ししてみる」という手段が取りにくいのが厄介」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「どうせ据え置きで使うのだし、Type-Cしか挿さらないMacBook Proにドッキングステーション経由で色々繋いで使うよりは、アダプターなしでUSB Type-AやEthernetやHDMIが繋がるMac miniを使った方が良い気がするな」 / Twitter
- hanpenさんはTwitterを使っています 「建前:USB Type-Cは裏表どっちで挿しても動く 現実:仕様書を読まないで作ると普通に片面でしか動作しないUSB Type-C製品が爆誕する」 / Twitter
- USB Type-Cケーブルにはなぜたくさんの種類があるのか、どうやって見分ければいいのか? - GIGAZINE
- 「USB-C」が本領発揮できる環境が、ようやく整ってきた|WIRED.jp
- 100均(ダイソー)で売ってたUSB Type-Cのケーブルやアダプタをたくさん分解してみた:ウェブ情報実験室 - Engadget 日本版
- USB Type-Cに「表裏」を取り戻させる悪魔のデバイスが爆誕 - GIGAZINE
- USB Type-CをDisplayPortに変換するハブはどのように選べばよいのか? - GIGAZINE
USB 3.2
- 転送速度を2倍に引き上げた「USB 3.2」が策定 - PC Watch
- USBの新仕様「USB 3.2」は対応端末ならマルチレーン動作可能で最大速度はUSB 3.1の2倍に - GIGAZINE
- マルチレーンにより2倍の転送速度を実現する「USB 3.2」 | マイナビニュース
- USB 3.2の仕様が正式公開 - PC Watch
- 北森瓦版 - USB 3.2の規格策定が完了―Dual-laneで最高20.0Gbpsに対応可能に
- 一ノ瀬 いろはさんのツイート: "“「USB 3.2 Gen.1x1」と書けば、USB 3.0と同じシングルレーンの5Gbps転送にしか対応しないのに「USB 3.2」と記載できる” / “「USB 3.2」で何が変わる? 知っておきたい2018年のPC注目技術…” https://t.co/Et6I5QlmTw"
- 「USB 3.2」で何が変わる? 知っておきたい2018年のPC注目技術 (1/3) - ITmedia PC USER
- 一ノ瀬 いろはさんのツイート: "USB-IF はわざと混乱を起こそうとしているのでは無いか。"
- 期待がすごい。20Gbps/sの激速なUSB 3.2、年内に対応製品登場へ | ギズモード・ジャパン
- 20Gbpsの転送速度を誇るUSBの次期規格「USB3.2」は2019年中にPCへの搭載が始まる見通し - GIGAZINE
- 20Gbpsに対応したUSB 3.2、2019年後半にデスクトップPC向けに登場予定 - Engadget 日本版
- ASCII.jp:USB 4の発表で、USB 3.2はどうなった? (1/5)|ロードマップでわかる!当世プロセッサー事情
- 【イベントレポート】ASMedia、転送速度20Gbpsの「USB 3.2 Gen2x2」コントローラを展示 - PC Watch
- 【イベントレポート】JMicron、microSD Expressリーダなど「USB 3.2」関連製品 - PC Watch
USB Power Delivery
EPR
- 「USB Type-C Revision 2.1」では240Wと現行の倍以上の電力が供給可能に、PCやモニターをUSBで使えるようになる可能性も - GIGAZINE
- naitakuさんはTwitterを使っています 「EPR (Extended Power Range) Mode なるもので240Wまで供給できるようになるっぽい?5/25に仕様書更新されたみたい https://t.co/cTRM7baDXT」 / Twitter
- USB Power Delivery | USB-IF
- hnpnさんはTwitterを使っています 「USB Type-C Revision 2.1と今後公開される新しいリビジョンのUSB PDを組み合わせると最大240Wの電力供給が可能になるらしい」 / Twitter
- hnpnさんはTwitterを使っています 「- 240W = Extended Power Range (EPR) - 電流は最大5Aのままで電圧が50V (正確には48V) になる - ケーブルのeMarkerを確認するので、EPR非対応のケーブルに48Vが掛かることはない - EPR対応ケーブルはEPRロゴの表示が必須なので見た目で区別できる」 / Twitter
PowerIQ
- 第692回:PowerIQとは - ケータイ Watch Watch
- Anker、急速充電の新技術「PowerIQ 3.0」発表 USB PD互換に - Engadget 日本版
- Anker PowerPort Ⅲ Duo レビュー – すまほん!!
- USB Type-AとType-Cを両方搭載、最大出力45WでノートPCも充電できるUSB PD充電器 - ケータイ Watch
Quick Charge
- 【山田祥平のRe:config.sys】QuickChargeがUSB Power Deliveryを包み込む将来 - PC Watch
- Qualcomm、従来より低温で35%充電速度が向上した「Quick Charge 3+」 - PC Watch
- Qualcomm、「Quick Charge 4+」でさらなる充電速度向上と温度低下を実現 - PC Watch
- 第812回:Quick Charge 4/Quick Charge 4+とは - ケータイ Watch
- Qualcomm、4倍高速で100W超の充電可能な「Quick Charge 5」規格 - PC Watch
PC Watch
- Anker、30WのUSB PD給電対応で低価格化した5ポートUSB充電器 - PC Watch
- 【山田祥平のRe:config.sys】USB PD時代のチャージャー選び - PC Watch
- ASUS、USB PDやQC 3.0対応のモバイルバッテリ2種 - PC Watch
- TI、200W給電対応のUSB Type-C/PDコントローラ ~USB接続で端末の急速充電から“電動工具”まで対応 - PC Watch
- 【山田祥平のRe:config.sys】USB Type-C充電統一への道遙か - PC Watch
- 【特集】複数の規格が入り交じるUSB Type-C。その挙動を探る【PC給電編】 ~MacBookとThinkPadで各社のケーブルをチェック - PC Watch
- 【特集】複数の規格が入り交じるUSB Type-C。その挙動を探る【スマホ編】 ~Type-C搭載スマホの充電速度をチェック - PC Watch
- 日本初のUSB-IF認証取得USB PD対応ACアダプタ - PC Watch
- 「Type-C=USB PD対応」ではない。高速充電には認証済みType-Cケーブルも必要 ~USB-IF認証取得の充電器「Energear」発表会レポート - PC Watch
- 【特集】これで失敗しない、USB PD充電器選び(解説編) - PC Watch
- 【山田祥平のRe:config.sys】世界中の電源プラグをUSB Type-Cに置き換えるサイプレスの野望 - PC Watch
- 【特集】これで失敗しない、USB PD充電器選び(ノートPC編) ~ThinkPadとMacBook Proで検証 - PC Watch
- 【特集】【特集】これで失敗しない、USB PD充電器選び(タブレット/スマホ/ゲーム機編) ~iPad ProとPixel 3、Nintendo Switchで検証 - PC Watch
- 【特集】これで失敗しない、iPhone/iPadを高速充電できるUSB PD充電器選び ~8製品×7アダプタの組み合わせでチェック - PC Watch
- Anker、100W給電可能なUSB PD×2搭載の急速充電器 - PC Watch
- 【山田祥平のRe:config.sys】理想のマルチポートPDチャージャーを考える人間のわがまま - PC Watch
- AnkerのUSB充電器で発煙の報告。回収へ - PC Watch
- 【山田祥平のRe:config.sys】それでもType-C、やっぱりType-C - PC Watch
- 【特集】ノートPCを充電できるUSB PDモバイルバッテリ、失敗しない選び方はこれだ! ~容量10,000mAh以上/最大出力30W以上の6製品を検証 - PC Watch
- 【山田祥平のRe:config.sys】Type-C PD、怖いながらもNew Normal - PC Watch
- 【山田祥平のRe:config.sys】Type-CがさらにややこC - PC Watch
- 【特集】徹底解明。VAIOが電源オフでもバッテリを使っている真の理由 ~VAIO開発者が語るUSB PD設計の難しさ - PC Watch
- Anker、Type-C搭載で直接スマホを充電できる電源タップ。30W USB PD対応 - PC Watch
- USB Type-Cの給電能力を240Wに引き上げる「USB PD EPR」 - PC Watch
- 【山田祥平のRe:config.sys】30WアダプタはUSB PD充電の新定番 - PC Watch
- 【特集】イマドキの急速充電機能「USB PD」って知ってる?スマホ/タブレット/ノートPCで即役立つ充電の必須知識 - PC Watch
blog
- 多機能USB電力メーター AVHzY CT-2を使ってみた
- USB Power Delivery Analyzer of MediaLogic
- LightningなiPhone・iPadでUSB PD充電に失敗する場合がある
- USB PD Revision 3.0のドキュメントがサイレント修正されていたらしい
- USB PD 60W対応Anker PowerPort Speed PD 60 暫定レビュー
- USB Power Deliveryの規格について調べた | HANPEN-BLOG
- Nintendo Switchの純正ACアダプタはUSB PDの規格に準拠していないという話 | HANPEN-BLOG
- 乱立するスマホ向け急速充電の規格について調べた | HANPEN-BLOG
- USB-IF認証済み Anker PowerPort I PD レビュー | HANPEN-BLOG
- 誰でも出来る? USB Type-Cケーブルや充電器が規格に適合しているか安価に調べる方法 - AndroPlus
- Apple純正品の仕様をコピーしているサードパーティUSB PD製品の話
- USB Type-CとUSB PDの仕様がアップデート 240Wまで受給電可能に | Interface – CQ出版
- ThinkPadなどのノートPCが一部のUSB PD ACアダプターで充電できない話
- USB PD非対応のUSB Type-Cケーブルは仕様上存在しない
- Ankerのモバイルバッテリーに付属してきた変換アダプターが最悪だった
- Amazon | USB Power Delivery アナライザ DTW2U3 (PDワットみるC) | メディアロジック (Media Logic, corp.) | USBフィギュア 通販
- しっかり分かる“USB パワーデリバリ”入門:ついにやってきたUSB Power Delivery(USB PD)とは (1/3) - EDN Japan
- (3)規格が守るUSP PDの安全性 偽造品を見逃さない機器間認証(C-AUTH) | ルネサス エレクトロニクス
- USB-IF、USB-C向け認証プログラムを発表。粗悪な充電器などを排除 - Engadget 日本版
- 【USB】第6回 USB充電を大きく変える新規格、USB PDとは? (1/3):ITの教室 - @IT
- AnkerのACアダプターをバラバラに分解、玉石混交のACアダプターでも「良品」はこうなっている - GIGAZINE
- 第840回:VOOC とは - ケータイ Watch
- 最新モバイルバッテリーの価格破壊がアツい!! PC派待望「5000円でUSB-C 45W」製品も(橋本新義) - Engadget 日本版
- TPS65987DDH and TPS65988DH Host Interface Technical Reference Manual (Rev. B)
- aroe(Yoshio Nomura)さんはTwitterを使っています 「USB PDのコントローラーIC、最初は各社バラバラに作ってて制御方法もバラバラだったけど最近はUSB-IFが制定したTCPI(Type-C Port Interface)という名称の規格で統一されてきてる。I2Cスレーブとして動作してレジスタの配置も決められてるので、共通のコードで動作するようになってる https://t.co/AnE3CrGZ8H」 / Twitter
- aroe(Yoshio Nomura)さんはTwitterを使っています 「微妙に間違えてた。正しくはTCPCI(Type-C Port Controller Interface)である。対応した製品として FUSB307B(On),TUSB422(TI),PTN5110(NXP)がある 対応したMCU向けライブラリとしてはSTMicroのX-CUBE-USB-PDがある。これは一応FUSB307Bに作られてるけど他にも使えるっぽい」 / Twitter
- 葛城玲さんはTwitterを使っています 「@uchan_nos PDパススルーはアクセサリーの電力を横取りするので、容量がギリギリだと上手く動きません。 また、ただでさえ相性問題多発のPD充電器に機器を2台も繋ぐと色々起こります」 / Twitter
- GIGABYTE、100W給電が可能なUSB3.1 Type-Cフロントパネル「GC-USB 3.1 BAY」など2種 - エルミタージュ秋葉原
- FadisさんはTwitterを使っています: 「USB機器はホストに自分が何mA使うつもりか申告していて、ホストはその情報に基づいて必要な電流を供給できない場合デバイスを拒否できる、というのはもう少し知れ渡ってほしい」 / Twitter
- 最大20W出力が可能なモバイルバッテリー兼急速充電器「Anker PowerCore Fusion 10000」と薄さ1.5cmのモバイルバッテリー「Anker PowerCore Slim 10000 PD」レビュー - GIGAZINE
- 日本産業規格(JIS)を制定・改正しました(2021年5月分) (METI/経済産業省)
- JIS C 62368-3:2021 オーディオ・ビデオ,情報及び通信技術機器―第3部:通信ケーブル及び通信ポートを介する直流電力伝送の安全性要求事項 | 日本規格協会 JSA Group Webdesk
- コンパクトかつ最大45WでスマホからノートPCまで充電可能な「Anker Nano ll 45W」レビュー - GIGAZINE
- Gloture、合計150Wまでの給電に対応する4ポートUSB PD充電器 - PC Watch
- iPhoneのUSB電源アダプタを分解したら中身はこんな感じ、Apple純正は一体何が違うのか? - GIGAZINE
日経 xTECH(クロステック)
- USB4の実像に迫る | 日経 xTECH(クロステック)
- USB4とThunderbolt 3は似て非なるもの、PCIeはなぜオプションに? | 日経 xTECH(クロステック)
- USB4で採用した3つの新機能、高速化には「あの部品」が不可欠に | 日経 xTECH(クロステック)
- 高速化だけじゃない、USB4はここが違う | 日経 xTECH(クロステック)
- USB4の実像に迫る | 日経 xTECH(クロステック)
- USB4が40Gbpsの超高速を実現した技術とは | 日経 xTECH(クロステック)
- 11年ぶりの大幅アップデート、USB4の真の価値とは | 日経 xTECH(クロステック)
- USB4とThunderbolt 3は似て非なるもの、PCIeはなぜオプションに? | 日経クロステック(xTECH)
ギズモード・ジャパン
- USB 4が発表。ややこしい規格が統一されてほしい | ギズモード・ジャパン
- 新規格「USB4」発表。何がどう変わるか、今知っておくべきこと | ギズモード・ジャパン
GIGAZINE
- 最大40Gbpsの転送速度を想定した新規格「USB4」の暫定仕様が発表される - GIGAZINE
- 最大転送速度40GbpsでUSB 3.0の8倍速い「USB4」の技術仕様をUSB-IFが正式に公開 - GIGAZINE
- 新旧入り交じり混乱を極めるUSB規格をスッキリ解説 - GIGAZINE
- PCがUSBデバイスを認識した時に何が起こるのか? - GIGAZINE
PC Watch
- Thunderbolt 3が「USB4」として登場へ - PC Watch
- エレコム、業界初のUSB-IF認証取得済みUSB4対応ケーブル - PC Watch
- ケイデンス、業界初のUSB4検証IP - PC Watch
- 【特集】「USB 3.0」=「USB 3.1 Gen 1」=「USB 3.2 Gen 1」? すぐ分かるUSBの「Gen」表記ルール - PC Watch
- 【山田祥平のRe:config.sys】USB4の高速ポートをどう使う - PC Watch
- 【特集】Amazonの安いThunderbolt 4/USB4ケーブルは大丈夫なのか?ケーブル10種で4K×2同時出力・100W充電・データ転送を試してみた - PC Watch
- VIA、USB4ドッキングステーション向けコントローラ「VL830」 - PC Watch
ITmedia
- 「USB4」発表 「Thunderbolt 3」ベースでデータ転送速度は40Gbps - ITmedia NEWS
- USB 4がついに船出 Thunderbolt 3ベースで最大40Gbpsを実現 - ITmedia PC USER
iPhone Mania
- USB4の仕様が発表。2021年までは製品化されない? - iPhone Mania
- ややこしい?「Thunderbolt 4」は「3」よりも転送速度は速くない - iPhone Mania
Twitter
- 確定未申告さんのツイート: "あー、現状のTB3ポートはUSB 3.2の2レーン動作をサポートしてないから、Thunderbolt 3ポート ≠ USB 4ポートか あと、現状のTB3アクティブケーブルはUSB 3.XやTB以外のModal Operationをサポートしてないから、USB 4にTB3が取り込まれればそれが解決するな"
- す~さんはTwitterを使っています: 「USB 4はUSB 2.0のバスを使いつつ、USB 4のレーンを別で使うのでUSB 2.0と互換性がある。 USB 4の電源はType-C, PDの定義に従うためUSB 4では定義されない。 USB3/DisplayPort/Host2Hostトンネルをサポート。 PCIeトンネル/Thunderbolt3/Alternate Modeはオプションサポート https://t.co/15HEztQExD」 / Twitter
- す~さんはTwitterを使っています: 「USB4ではUSB2.0バスを制御用バスとして生かして、高速データ転送のために別レーンでGen 2(10Gbps),3(20Gbps)と高速化、さらに帯域稼ぐのにレーンを多重化してGen 2x2, Gen3x2として行く。 USB3/4は互いに物理層での互換性がないため物理的にUSB3/4を用意してMUXする」 / Twitter
- FadisさんはTwitterを使っています: 「linux-5.6でUSB4のサポートがバニラカーネル入りする見通しらしい。USB4は最大40Gbpsの次世代USBとして今年の夏に標準化された規格。Thunderbolt3をUSBの規格に取り込んだような物で、USBケーブル上でPCI-Express Gen3 x2レーンを喋るEnhanced Super Speedモードが追加される https://t.co/cN8Ns9gYTj」 / Twitter
- USB4 Support Being Introduced With Linux 5.6 Kernel - Phoronix
- 🍭さんはTwitterを使っています 「今まではeMarkerが無かったり全部のピンが結線されてない仕様違反ケーブルでも問題なく使えちゃうケースもあったけど、USB4からはeMarker必須でFull-Featuredじゃないとうまく動かん (はず) なので、昔買った仕様違反ケーブルが原因でUSB 3.xケーブルなのにUSB4で使えないみたいなことが増えそう」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「プライバシー保護という観点からは、AndroidもiPhoneも50歩100歩という研究結果。どちらのデバイスも (ログインしなくても) 4~5分に1回の頻度でデータを送信する。データの量ではAndroidのほうがiPhoneより10倍以上多いが、iPhoneは周辺のデバイスに関する情報も送っている。 https://t.co/c4R79eb85J」 / Twitter
- New study reveals iPhones aren't as private as you think | Tom's Guide
FIDO
MS
- YubikeyでLinuxサーバへの二要素認証sshログインを行う | 俺的備忘録 〜なんかいろいろ〜
- YubiKey Personalization Tools | Yubico
- OpenSC/OpenSC: Open source smart card tools and middleware. PKCS#11/MiniDriver/Tokend
- Home · OpenSC/OpenSC Wiki
- 秘密鍵、管理してますか? YubiKeyで鍵の一元管理とSSH接続、2段階認証の高速化を試す - Qiita
- Yubikey (スマートカード)に入れた秘密鍵を使ってSSHにログインする | n10の個人的なメモ
- Yubikey 4 にSSHの秘密鍵を格納する | n10の個人的なメモ
- Windows Hello and FIDO2 Security Keys enable secure and easy authentication for shared devices - Windows For Your BusinessWindows For Your Business
- YubiKey for Windows Hello を入手 - Microsoft Store ja-JP
- YubiKey Edge で 2段階認証 ~ Windows10編 - Qiita
- IdM実験室: [Windows Hello]Yubikeyを使ってWindows 10 PCにサインインする
- 指紋認証は高精度な偽の指紋なら成功率80%で突破可能 - GIGAZINE
- ASCII.jp:Windows 10、パスワードなしの世界へ一歩前進 (1/2)
GIGAZINE
- 指紋認証システムは機械学習で生成した「マスター指紋」でも突破可能だと判明 - GIGAZINE
- 3Dプリンターで作った石膏の「顔」でスマホの顔認証は突破される危険性あり - GIGAZINE
- GmailやYahoo!メールの2段階認証を無効化するフィッシング詐欺が横行している - GIGAZINE
- Google Chrome70からブラウザ上での顔認識や指紋認証が可能になる見込み - GIGAZINE
- Googleの安全な2段階認証を構築し不正アクセスを防ぐ物理キー「Titan セキュリティ キー」が日本で登場 - GIGAZINE
- iPhoneに物理的に挿入するだけで二段階認証が可能なセキュリティトークン「YubiKey 5Ci」 - GIGAZINE
- GitHubがWebAuthn対応で物理セキュリティキーによる二段階認証を正式にサポート - GIGAZINE
- Googleの2段階認証を構築する「Titan セキュリティ キー」にUSB Type-Cタイプが登場 - GIGAZINE
- 物理セキュリティキーの「YubiKey」でついに生体認証が可能となることが判明 - GIGAZINE
- スマホでもPCでも使えるUSB Type-CとNFCを搭載した物理セキュリティキー「YubiKey 5C NFC」レビュー - GIGAZINE
- 2020年アメリカ大統領選でメール流出がなかったのは「物理的なセキュリティキー」の採用による可能性 - GIGAZINE
- Googleの物理キー「Titan セキュリティ キー」がサイドチャネル攻撃により突破される - GIGAZINE
- 「セキュリティリスクが高い」のにパスワードが認証方法として使われ続ける理由とは? - GIGAZINE
- GoogleのTitanセキュリティキーがNFCを広くサポートへ、Bluetooth対応は廃止 - GIGAZINE
Publickey
- GitHubがWebAuthn対応を開始。MacのTouch IDやWindows Helloの指紋認証などを使いパスワードレスでログイン可能に - Publickey
- LINEがオープンソースで「LINE FIDO2 Server」公開。パスワード不要でログインできる「FIDO2/WebAuthn」を実現 - Publickey
Qiita
- YubiKeyを実用面から機能別レビュー - Qiita
- YubiKey+Pageantでらくらく秘密鍵管理 on Windows - Qiita
- 秘密鍵、管理してますか? YubiKeyで鍵の一元管理とSSH接続、2段階認証の高速化を試す - Qiita
- Yubikeyを使って、Githubのcommitをverifyする - Qiita
- 今さら聞けない2段階認証の話いろいろ - Qiita
- YubiKey NEO で Linux でも 2段階認証しよう! - Qiita
- FIDO(ファイド)に準拠した認証セキリティデバイス | 飛天ジャパン
- Fingerprint USB Dongle - PQIグループ- モバイル向け周辺機器の総合メーカー [Apple アクセサリ, モバイルアクセサリ, モバイルバッテリー, USB フラッシュドライブ, Wi-Fi ストレージ, 充電器]
- Compare YubiKeys | Strong Two-Factor Authentication for Secure Logins | Yubico
- Basic YubiKey Troubleshooting : Yubico Support
- USB-based YubiKey Now Boosts Security for iPhones Running iOS 11 | Digital Trends
- YubiKeyストア
- Fingerprint reader
- Sign in if you’re locked out on iOS 12.3 - Google アカウント ヘルプ
- FadisさんはTwitterを使っています 「ちなみにWebUSBは、フィッシングサイトがFIDO U2FのドングルとWebUSBで直接お話して2要素認証を台無しにする脆弱性 が見つかったあと多くの主要なデバイスクラスのデバイスをWebUSBから使えなくする変更が入った為、楽しむのは難しいAPIになった」 / Twitter
- A Side Journey to Titan - NinjaLab
- Yubikeyを使う:OpenPG編 | κeenのHappy Hacκing Blog
- YubiKeyをLinuxの「鍵」にする | κeenのHappy Hacκing Blog
- FIDO U2F/PKCS#11対応で4つの鍵が管理できるセキュリティキー - PC Watch
- Keisuke KATOさんはTwitterを使っています 「YubiKey Bio は OpenPGP に対応していない?そろそろ自分も SSH は GnuPG をやめて FIDO2 resident key に切り替えたい… が,git の署名がまだ GPG か… ssh-keygen -t ed25519-sk -O resident」 / Twitter
FeliCa
- Sony Japan | FeliCa | 個人のお客様 | 製品情報 | RC-S380
- ソニー、次世代型FeliCaチップ開発 クラウド連携機能を追加 - ITmedia NEWS
I/F
- GC-USB 3.1 BAY (rev. 1.0) | Motherboard - GIGABYTE Global
- REX-PCIU3製品仕様[RATOC]
- 玄人志向 | USB2.0V-P4-PCI:VIA社製 VT6212L搭載 USB2.0 外部x4 内部x1 ※合計4ポートまで同時使用可 インターフェースボード(PCI接続)
- 玄人志向 | USB3.0R-P2-LPPCI:Renesas社製 μPD720202搭載 USB3.0×2 インターフェースボード(PCI接続)
- 玄人志向 | USB3.1C-P2-PCIE:ASMedia社製 ASM2142搭載 USB3.1 Type-C x2 インターフェース(PCI-Express x4接続)
- USB 3.1 Gen 2対応コントローラは搭載チップにより性能が異なる!? ASMedia ASM1142 / Intel DSL6540 : AKIBAオーバークロックCafe
- 「1mのケーブル長さ制限を克服」とうたうUSB 3.1カード - AKIBA PC Hotline!
- GIGABYTE、世界初のUSB3.2 Gen.2×2拡張カード「GC-USB 3.2 GEN2X2」 - エルミタージュ秋葉原
Hub
- USB2.0ハブ 4ポートタイプ|株式会社バッファロー BUFFALO
- Inateck - Portable Mini 4-Port USB 3.0 Hub HBU3VL2-4
- Anker 4-Port Ultra-Slim USB 3.0 Hub|USBハブの製品情報 | Anker (アンカー) Japan公式サイト
- USB Type-Cハブ(USB3.1 Gen2/Gen1・USB3.0/2.0/1.1・USB PD・4ポート・バスパワー・セルフパワー対応・ACアダプタ付き・ブラック) 400-HUB075BKの販売商品 | 通販ならサンワダイレクト
- USB Type-Cハブ(4ポート・USB3.1 Gen2・セルフパワー・ブラック)400-HUB061の販売商品 | 通販ならサンワダイレクト
UART
- FTDI Chip launches USB 3.1 evaluation modules
- ラトック、USB Type-C接続のシリアルポート変換ケーブル - PC Watch
- 定番USBシリアルコンバータのUSB Type-Cバージョン RS-USB60FC [RATOC]
- てんまにちゃんヾ(๑╹◡╹)ノ"さんはTwitterを使っています 「懐かしのInterlinkでシリアル転送したいのですが、左のクロスケーブルを買ったけどぜんぜんつながりませんでした… 結線が違う右のやつを見つけたのですが、これだといけるの?? ていうか両方ともクロスケーブルって言って売ってるのに何が違うの???? シリアルケーブルくわしいニキ助けて!>< https://t.co/lDtEjXaQDZ」 / Twitter
- てんまにちゃんヾ(๑╹◡╹)ノ"さんはTwitterを使っています 「よくみたら右のにはヌルモデムケーブルって書いてありました。 Interlinkの説明に「クロスケーブル(ヌルモデムケーブル)」って書いてあるから、やっぱり右のじゃないとダメなのかな… ヌルモデムってなんぞ… おねえさん17歳だからわからない><」 / Twitter
- ZilfhumさんはTwitterを使っています 「@HentaiThird ヌルモデム=クロスケーブルという認識で良いかと。モデムを経由せずにテレタイプ端末同士を接続できるというのが語源らしいです。」 / Twitter
- てんまにちゃんヾ(๑╹◡╹)ノ"さんはTwitterを使っています 「@zilfhum_power そうすると左の自称「クロスケーブル」はなんなんでしょ?」 / Twitter
- ZilfhumさんはTwitterを使っています 「@HentaiThird 対応してないんですかね。DTR、RTS、CTSあたりは正しく繋がってないとダメかもしれません。無視して強制的に送るようなソフトあるんでしょうかね?」 / Twitter
- ZilfhumさんはTwitterを使っています 「@HentaiThird 左のはフロー制御用の信号がクロスしてないのでは(わからん)」 / Twitter
- Y8LさんはTwitterを使っています 「@HentaiThird 2ピン3ピンのみのクロスは運しだいのレベルで繋がりますって感じで、Winでは下のがPC間のクロスケーブル、PC-98用ってのは、7と8がショートして反対の1ピンへ行くのもあったかと。」 / Twitter
- だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@HentaiThird RS232Cは25ピンと決まっててIBM-PCの9ピンは規格外。クロス接続も規格外。フロー制御もIBM-PCの8250系とPC98の8251で仕様が違う。全部規格外なので正解は無く、クロスケーブルは窓から投げ捨ててUSBメモリかイーサLANでデータ転送しましょう。」 / Twitter
Debug
USBケーブルチェッカー
- USBケーブルチェッカー | LimePulse
- LimePulse USBケーブルチェッカー 機能解説 - YouTube
- aroerina/LimePulse_USB_cable_checker: LimePulse USB cable checker schematic
- 【やじうまミニレビュー】USB Type-Cケーブルなどの素性を一発チェックできる必携アイテム「USB CABLE CHECKER2」 - PC Watch
- USB ケーブルの性能を明らかにする「USB CABLE CHECKER 2」 | Bit Trade One, LTD
- USB CABLE CHECKER 2 | ビット・トレード・ワン 公式オンラインショップ 【 BTOS (ビートス) 】
- USBで接続してPCをロジック/プロトコルアナライザにできる「ポケアナ」 - PC Watch
- NET20DC-USB / Hi-Speed USB 2.0 Host-to-Host Debug Device | 海外ハードウェアの購入なら「ユニポス」
- USB 3.0 Super-Speed A/A Debugging Cable -- DataPro
- 見た目はUSBケーブル、中身はハッキングツールの悪用厳禁ケーブル「O.MG Cable」がLightningに続きUSB Type-Cバージョンなども販売開始 - GIGAZINE
- USB Native Debug Class (DbC) Cable
- USB3 debug port — The Linux Kernel documentation
- 開発ツール(インテルデバッガー) – フラットーク株式会社
- naitakuさんはTwitterを使っています 「唯一規格にあるのはこちらのVBUSが繋がってないデバッグ用ケーブルではないかと思います。 https://t.co/kxOnzOIatZ」 / Twitter
- USB 3.0 Super-Speed A/A Debugging Cable -- DataPro
- Dan KogaiさんはTwitterを使っています 「実は規格違反🙅♂️「※USBの規格には、USB Aオス-USB Aオスケーブルの規格はありません。本ケーブルは特殊な規格なので、ご使用前に、各機器の使用方法を確認の上ご利用ください」 https://t.co/5bPrGrZiTr」 / Twitter
- KU-RAA05【両面挿せるUSBケーブル(A-Aタイプ)(0.5m・ブラック)】USB Aコネクタの向きを気にせず挿せるA-A ケーブル。0.5m・ブラック。 | サンワサプライ株式会社
- Dan KogaiさんはTwitterを使っています 「なぜ規格違反かというと、元々USBはホストと周辺機器の向きが決まってたから。Aは必ずホスト側、周辺機器はBだったのが、ケータイ(スマフォに限らず)のコネクターにMicro-Bが使われるようになったあたりから曖昧になり、公式に表裏だけではなくホストゲストも双方向になったのはUSB-Cから」 / Twitter
LAN
ASIX
所有
- ETX3-US2 | LANアダプター | IODATA アイ・オー・データ機器
- LAN-TXU2C - ロジテック株式会社
- ESXi 向けUSB NICにオススメが増えた
- 玄人志向 | GbE-USB3.0S2:ASIX社製 AX88179搭載 1000Base-Tイーサネットアダプター(USB接続)
- Plugable USB 3.0 10/100/1000 ギガビット対応イーサネット・アダプタ - Plugable
- Plugable USB Type-C 10/100/1000 ギガビット対応イーサネット・アダプタ - Plugable
- AX88179 - USB 3.0 to Gigabit Ethernet (GbE,GigE) | ASIX
- ASIX ESXI - Google 検索
Aquantia
- Aquantia、ノートPCで5Gbps有線LANを実現するUSB LANアダプタ用ICチップ - PC Watch
- AQtion Chips - Aquantia Corp
- AQtion AQC111U & AQC112U - Aquantia Corp
- 5GBASE-T対応LANアダプター、QNAP「QNA-UC5G1T」、USB 3.0接続 - INTERNET Watch
- USB-LAN100R|PLANEX
- USB-LAN1000R|PLANEX
- Realtek
- 2015816232439101951.pdf
- USB-C to Ethernet Adapter - Thunderbolt 3 Compatible | Cable Matters
- プラネックス、USB 3.0接続の2.5Gbps対応Ethernetアダプタ - PC Watch
- 4480円で2.5GBASE-T、USBの高速LANアダプターをプラネックスが発売、「USB-LAN2500R」 - INTERNET Watch
- 4500円で有線LANが2倍速くなる! プラネックスの2.5Gbps対応USB LANアダプター「USB-LAN2500R」【イニシャルB】 - INTERNET Watch
- USB-LAN2500R
- プラネックス、USB 3.0 Type-C接続の5GbE/2.5GbE対応有線LANアダプタ - PC Watch
- 5Gで1.5万円、2.5Gは6000円弱のUSB Type-C接続LANアダプター「USBC-LAN5000R/2500R」、プラネックスが発売 - INTERNET Watch
- USBC-LAN2500R
- USBC-LAN5000R
- バッファロー、2.5GbE対応のUSB LANアダプタ - PC Watch
- LUA-U3-A2G/C : LANアダプター | バッファロー
- アイ・オー、2.5GbE対応のUSB有線LANアダプタ - PC Watch
- ETQG-US3 | LANアダプター | IODATA アイ・オー・データ機器
Audio
1.0
- USBオーディオ変換ケーブル(USB A to 3.5mmステレオミニプラグ)|株式会社バッファロー BUFFALO
- PCM2704 ステレオ、USB 1.1、DA コンバータ、ライン出力およびS/PDIF 出力付、バス/セルフ・パワー(外部ROM インターフェイス) | TIJ.co.jp
- ヘッドフォンアンプ付 USB-DAC LXU-OT2
- Amazon.co.jp: Flameer PCM2704 サウンドカード ボード 3.5mm アナログ出力 デコーダ USB DAC-S / PDIF 高品質: カメラ
- Amazon.co.jp: Dovewill PCM2704 USB DAC→ S/PDIF サウンド カード デコーダ ボード 3.5mm アナログ 出力 F/PC アクセサリー: カメラ
- Amazon.co.jp: IPOTCH PCM2704 USB DAC→ S/PDIF サウンド カード デコーダ ボード 3.5mm アナログ 出力 F/PC 交換性 便利性: カメラ
2.0
- exaSoundの「PlayPoint」、USB Audio Class 2.0接続したDACを操作可能に - AV Watch
- 【藤本健のDigital Audio Laboratory】Windows 10がついに「USB Audio Class 2.0」対応へ? ドライバ無しでハイレゾ再生 - AV Watch
- K3 – Fiio Japan
- USB-DAC | アムレック
- E10K Type-C – Fiio Japan
3.0
- PCからも3.5mmミニジャックが消える日が近い。USB Audio Device Class 3.0仕様が策定 - PC Watch
- USB Type-Cを次世代オーディオの標準端子に。「USBオーディオデバイスクラス3.0」発表 - PHILE WEB
- USB-IF、USB Type-C経由のオーディオ再生を可能にする「USBオーディオデバイスクラス3.0」を発表 | ガジェット通信 GetNews
- スマホのイヤホンジャックを廃してUSB Type-Cをオーディオケーブル代わりにしようとIntelが新規格策定中 - GIGAZINE
- 「音声端子はステレオミニからUSB Type-Cへ」。USB Audio Device Class 3.0発表 - AV Watch
- モバイル機器からヘッドホン端子が消える日は来るか。インテルがUSB-Cにオーディオサポート拡張を提案 - Engadget Japanese
- iPhoneに続いてPCの音声端子もなくなる? 知っておきたい2017年の注目技術 (1/4) - ITmedia PC USER
- ASCII.jp:Xperia XZ3も含めた「イヤホン用アダプター増えすぎ問題」|Xperia XZ3ロングランレポート
- 「ヨンナナ」プラグについて | g200kg Music & Software
- Creative BT-W2 - パソコンやMac、PlayStation®4とUSB接続可能なUSBオーディオBluetootnアダプター - Creative Technology (日本)
- まちカドおるみんさんはTwitterを使っています 「@yuki424zti ハイレゾ,可聴域が広がることよりもサンプリングポイントが増えることと bit 数が増えてダイナミクスレンジが大きくなることのほうがキモなので」 / Twitter
- uint256_tさんはTwitterを使っています 「ハイレゾだろうと酷い波形もあるので世界は厳しい」 / Twitter
キーボード
Wikipedia
- Computer keyboard - Wikipedia
- キーボード (コンピュータ) - Wikipedia
- FITALY - Wikipedia
- IBM PC keyboard - Wikipedia
- Keyboard layout/chart - Wikipedia
- Latin-script non-QWERTY keyboards - Wikipedia
- キー配列 - Wikipedia
- Scancode - Wikipedia
- スキャンコード - Wikipedia
- Altキー - Wikipedia
- Japanese language and computers - Wikipedia
- PS/2コネクタ - Wikipedia
- PS/2 port - Wikipedia
- Owltech キーボード OWL-KB104SFD/E
- Microsoft キーボード:Wired Keyboard 600 (ワイヤード キーボード 600) | Microsoft Hardware
- USB 切替器 キーボード 切替機 プリンタ 切り替え機 USB 手動切替器
- テキストエディタ「vi」の開発に使われた端末「ADM3A」には現代のキーボードにはない「HERE IS」というキーがあった - GIGAZINE
- CNN.co.jp : ビル・ゲイツ氏、「Ctrl+Alt+Delete」を後悔
- ビル・ゲイツ、Ctrl+Alt+Deleteについて語る | スラド ハードウェア
- Apple、キーボードへのホコリ侵入を防ぐ特許 - PC Watch
- パソコンのキーボードは,なぜABC順・五十音順ではないのですか | ことばの疑問 | ことば研究館
- 1877年3月のフランス向けレミントン・タイプライターのキー配列 | yasuokaの日記 | スラド
- はじめてのにき(2018-08-07)
- 日記 (2018 年 12 月下旬)
- Microsoftは「Office専用キー」をキーボードに追加することを検討中 - GIGAZINE
- 【悲報】Realforce R2はキーボードじゃなかった。 - チラシの裏の走り書き はてなブログ版
- Retr0bright でキーボードを漂白する | IIJ Engineers Blog
- 【山田祥平のRe:config.sys】拡張が「ない」を「ある」に変える - PC Watch
マウス
- 有線レーザーマウス(5ボタン・チルトホイール) - M-LS15ULBK
- なかのん&マジックさんのツイート: "ハイエンドに近いマウスを使ってると、いい加減にWindowsもホイールのmomentumスクロールをOSレベルで扱って、アプリから識別できるようにして欲しい。たとえば、ホイール回した後にCtrlキーを押して、ズームとして扱われてしまうのを回避できるようにして欲しい。"
- なかのん&マジックさんのツイート: "今のところ、本当にユーザの操作の結果としてのホイールイベントなのか、UXやスムーズスクロールのための予備的に発火されたイベントなのか見分ける手段がなさげ。"
- 対応機種 | サービス・機能 | NTTドコモ
- USBホスト| Android(TM) 技術情報 | au
- 「USBに裏表がある理由」をUSBの開発者が明かす - GIGAZINE
- 「USB 3.0機器はゆっくり差すと2.0、素早く差すと3.0として認識される」って本当? →メーカー「本当です」 - ねとらぼ
- USBが誕生したのは「奥さんのプリンタをつなげる手間にキレたから」 USBの設計当時を振り返る:“PC”あるいは“Personal Computer”と呼ばれるもの、その変遷を辿る(1/6 ページ) - ITmedia NEWS
- SATA3.0 SSDより速いUSBメモリ、Patriot「Supersonic Rage Prime」 - エルミタージュ秋葉原
- USB Type-C/PD給電対応のPC切替器、サンワサプライから - PC Watch
- USBメモリの耐久性をテストした結果とは? - GIGAZINE
- USB-IF、給電能力を示す新しい認定USB-Cケーブル・ロゴ発表、USB4ロゴも更新 | マイナビニュース
- 最大40Gbps転送のUSB4と240W給電可能なUSB PD EPRに合わせた新しいUSBの認証ロゴが発表される - GIGAZINE
- 新しいUSBロゴは最大240Wの充電機能を示す|自作.com
- USBに新ロゴ。USB4および240W PD向け - PC Watch
PCIe
- slankdevさんのツイート: "PCのMBがPCIe x16なのに内部がx4という原因で3時間溶けた。勉強になった"
- DMA(Direct Memory Access)関連調査メモ - DXR165の備忘録
- ACPI DMARメモ - 睡分不足
- VFIOによるデバイス操作 - 睡分不足
- 【特集】ビデオカードはPCI Express x16接続が必須かどうかを検証してみた - PC Watch
- PCI-SIG、16GT/sを実現するPCI Express 4.0規格Ver 1.0を公開 - PC Watch
- PCI-SIG、4.0の2倍の転送速度を実現する「PCI Express 5.0」規格を策定 - PC Watch
- PCI-SIG、x16で256GB/sの高速転送を実現する「PCI Express 6.0」 - PC Watch
- Intel、PCIe 4.0/Optaneメモリに対応したFPGA「Stratix 10 DX」 - PC Watch
- PCI-Express Gen 6.0仕様策定は2021年までに完了する - 自作ユーザーが解説するゲーミングPCガイド
- CCIX vs CXL(4) CCIXとよく似た別のモノ「CXL」とは何なのか? | マイナビニュース
- Download the Specification | Compute Express Link
- なぜPCI Expressはエンベデッド・クロック方式を採用した? - パソコンの選び方と買い方
- FadisさんはTwitterを使っています 「来年の完成を目指すPCI-Express 6.0の最初のドラフトが出たらしい。PCI-Express 6.0はようやく製品が出てきたPCI-Express 4.0の次の次の規格で、PCI-Express 5.0の倍となる64GT/sでの通信が可能 https://t.co/RzuauPNu2b」 / Twitter
- PCI Express 6.0 Reaches Version 0.5 Ahead Of Finalization Next Year - Phoronix
- FadisさんはTwitterを使っています 「PCI-Express、規格としてはどんどん速くなるんだけど、正しく動くための要件もどんどん厳しくなっててハード屋さんが乗り気じゃなくなってるんだよな」 / Twitter
- 【連載】CCIX vs CXL | マイナビニュース
- 北森瓦版 - PCI-Express 6.0 ver. 0.7がリリースされる―2021年の規格策定完了を目指す
- PAM4採用で速度2倍の「PCI Express 6.0」仕様が確定 - PC Watch
- FadisさんはTwitterを使っています 「CXL 2.0のinitialなサポートがLinuxカーネルに入りそうらしい。CXLはPCI-Express 5.0上でメモリ一貫性プロトコルを喋る規格で、GPUのようなアクセラレータやストレージがデバイス側に持っているキャッシュとCPUのキャッシュの間でキャッシュのInvalidateが出来るようになる https://t.co/IdaU8WyT8L」 / Twitter
- CXL 2.0 Support Steps Closer To The Mainline Linux Kernel - Phoronix
- 20210320
ストレージ
その他
blog
- SSDについて勝手に語る : sside.net
- ベルQ(手動RTbot)さんのツイート: "【SSD】 大きなファイルの書き込み速度目当てでTLCのSSDを買うとき、CrystalDiskMarkのベンチマーク結果は参考にしない方が良い - ニッチなPCゲーマーの環境構築 https://t.co/1SclTqPQaR 1年前の記事だけど まぁ大容量書き込みする人がそんなに居ない現実もある"
- 【SSD】 大きなファイルの書き込み速度目当てでTLCのSSDを買うとき、CrystalDiskMarkのベンチマーク結果は参考にしない方が良い : ニッチなPCゲーマーの環境構築
- SSD 周りの用語まとめ(M.2,PCIe,SATA,AHCI,NVMe) - uchan note
- 北森瓦版 - Western DigitalのPenta Layer Cell NANDは2025年以降
- Storage Reviews - CNET
- VIOPS10: SSDの基本技術と最新動向
- AIF-06 | Ainex
- SSD ドキュメント | タイプ別 Download | サポート | Samsung Semiconductor Global Website
- 個人向けSSD | 製品別 Download | サポート | Samsung Semiconductor Global Website
- SSD ツール&ソフトウェア | タイプ別 Download | サポート | Samsung Semiconductor Global Website
- Data degradation - Wikipedia
- WD、2020年に世界最大容量の20TB HDD投入 ~CMR方式の18TB HDDも - PC Watch
- トリムの概要
- FadisさんはTwitterを使っています 「erase block sizeを公表しないSSD屋、やる気が足りないのでは」 / Twitter
- キオクシア、Ethernet接続型のNVMe-oF対応ストレージ - PC Watch
- 東芝、Ethernetから直接アクセスできる「NVMe-oF SSD」試作機を開発 ~ランダムリード1,600万IOPSを実現 - PC Watch
- ディスク障害時のRAID再構築時間を劇的に短縮する技術「dRAID」とは? - GIGAZINE
- ✿sat❀さんはTwitterを使っています 「SSDは内部的にいろいろ隠蔽してくれていて「ぷるぷるぷる…ぼくは速いだけで他はHDDとは変わらないブロックデバイスだよ」という顔してるけど中身は「ファイルシステムとブロック層をフルセットで持っとるやんけ!」なところがある。しかも各社独自実装」 / Twitter
- SSDの読み書きはどのように行われるのか - GIGAZINE
SD
PC Watch
- 最大985MB/sを実現する高速SDカード規格「SD Express」 ~最大128TBの「SD Ultra Capacity」も策定 - PC Watch
- PCIe/NVMeで最大転送速度985MB/sを実現する「microSD Express」 - PC Watch
- 【イベントレポート】実測で888.5MB/sを実現するPCIe/NVMe SDカードの仕様が公開 ~WDがいち早くデモを実施 - PC Watch
- 【イベントレポート】JMicron、microSD Expressリーダなど「USB 3.2」関連製品 - PC Watch
- 東芝メモリ、ほぼmicroSDサイズで最大8GB/sのリムーバブルメモリ「XFMEXPRESS」 - PC Watch
- PCI Express 4.0採用で最大4GB/sを実現した「SD 8.0」規格 - PC Watch
- 偽物SDカードの見分け方教えます!買ったら最初にチェックすべき4つのポイント - AKIBA PC Hotline!
- SSD ツール&ソフトウェア | タイプ別 Download | サポート | Samsung Semiconductor Global Website
GIGAZINE
- microSDカードの「A2規格対応」にパフォーマンス向上の意味はないとエンジニアが主張 - GIGAZINE
- microSDカードのA1規格対応品は最低基準の2倍の性能を発揮しA2規格対応品を超えることがある - GIGAZINE
- microSDカードより小さい「NMカード(ナノメモリーカード)」をHuaweiが発表 - GIGAZINE
- SDカードの新規格「SD 8.0」が登場、PCI Express 4.0採用で最大4GB/sの転送速度を実現 - GIGAZINE
- FlashAir Developers - upload.cgi
- PQI Air Card - PQIグループ- モバイル向け周辺機器の総合メーカー [Apple アクセサリ, モバイルアクセサリ, モバイルバッテリー, USB フラッシュドライブ, Wi-Fi ストレージ, 充電器]
- SDA、Ver 6.0仕様のA2規格とLVS仕様を追加 - EE Times Japan
- 第789回:Application Performance Class 1(A1)とは - ケータイ Watch
- 第882回:SDUCカード とは - ケータイ Watch
- 転送速度985MB/秒の高速SDカード「SD Express」発表。128TBのSDUCも - AV Watch
- ぉゅぅさんはTwitterを使っています: 「あるある... SD hostのレジスタなんかは規格で一緒のはずなのに ベンダ依存とか ソコを使うためのお膳立てが違うのよね. 最悪なのは続いてるツイートのような ほかの機能と混ざってるようなところとか怪しい挙動... SoCベンダが大きく情報を出してくれないと推定もアタリもつけるのが大変よぬ... https://t.co/pz07dLD9WJ」 / Twitter
- ぉゅぅさんはTwitterを使っています: 「まぁなによりもベンダが提供してくれないってところがアレなんですがねぇ... (あっちからしたら 数量出ないのに面倒見てられるかよってことなのかもしれないけれど #何の話だ」 / Twitter
- 1TBのMicroSD及びSDカードについて - 自作ユーザーが解説するゲーミングPCガイド
- 高速なSDカードについて - 自作ユーザーが解説するゲーミングPCガイド
- FadisさんはTwitterを使っています 「SPI mode、SDカードが本来のプロトコルではなく、3ピンだけを使ってSPIをしゃべるようになるモード。SPI対応のマイコンで読む時とかに便利。SDカードのプロトコルにはライセンスまわりの面倒があるが、この方法なら回避できる。ただし遅い #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「SDカードの新しい規格SD 8.0が完成したらしい。端子が2列から3列になり、SD ExpressでPCI-Expressを喋る時に2レーンで通信できるようになる。これに加えてPCI-Express 4.0に対応することで、従来のSD Expressの約4倍となる4GB/sでのデータ転送を実現する https://t.co/rUkaSR9Ij6」 / Twitter
- SD 8.0 Specification To Allow 4GB/s Transfer Rates By Leveraging PCIe 4.0 - Phoronix
- FadisさんはTwitterを使っています 「SD 7.1のSD Expressは帯域を最大まで使えるデバイスが登場すると「お前のSATA SSDはSDカードより遅い」が発生するデバイスだったけど、SD 8.0のSD Expressは「お前のNVMe SSDはSDカードより遅い」が狙えるデバイスになるのか…」 / Twitter
- SDカードのSecure Eraseの方法 (Linux向け)
- FadisさんはTwitterを使っています 「Linux 5.14では更にSDカードのPower-off通知にも対応するらしい。SD 4.0以上に対応するSDカードはもうすぐ電源が落ちるのにガベージコレクションを始めてしまうような事態を避ける為にホストからの「もうすぐ電源切るぞ」通知を受け取るようになっている」 / Twitter
- Linux 5.14 Bringing SD Cache Ctrl Support, Other SD Card Support Improvements - Phoronix
- FadisさんはTwitterを使っています 「Linux 5.14からSDカードのキャッシュ制御に対応するらしい。SD 6.0以上に対応するSDカードはカード側にキャッシュメモリを持っている事があり、有効にするとflushを明示的に要求されるまで書き込み要求がキャッシュにかけた時点で完了するようになる https://t.co/T29IZPjlc6」 / Twitter
SATA
HDD
SATA I
- Samsung HM020GI 1. Specification Summary
SATA II
- Toshiba MK6034GSX Specs - CNET
512
- Toshiba MK3276GSX Specs - CNET
- Amazon | 東芝 512セクター 2.5インチ SATA接続ハードディスク 5400rpm 320GB MK3276GSX | 東芝(TOSHIBA) | 内蔵ハードディスク 通販
- 3.5インチHDD、内蔵と外付けで消費電力を計測しその差を確認してみた - みこぼね
- 東北大と京大、HDDの超高密度化が期待できる反強磁性体スピントルク磁気メモリを実証 - PC Watch
- Fadisさんのツイート: "SSDの陰であまり注目される事はないけど、ハードディスクもじわじわ速くなってて、Intel SSDが最初に注目された頃は120MB/s出せるハードディスクは優秀だったのに、今では200MB/s超えてきたりするんだよな"
- Fadisさんのツイート: "NVMeが3000MB/sとかやってる前では誤差のようなものかもしれないけど"
- 「2019年はPC用HDDの販売数が半減する」とHDD部品で世界シェア1位の日本電産が予測 - GIGAZINE
- ヘリウム充填HDDの中身が気になったので実際にバラバラ分解してみたレポート - GIGAZINE
- 【福田昭のセミコン業界最前線】HDD出荷金額は監視や仮想通貨特需で3年ぶりに拡大も、2.5インチは終息へ - PC Watch
Advanced Format
512e
- MQ04AB*** Series | 東芝 半導体&ストレージ製品
- Amazon | 東芝 HDD MQ04ABFxxx シリーズ ( 2.5インチ / SATA 6Gbit/s / 1TB / 5400rpm / 128MiB / 7mm / 512e エミュレーション ) MQ04ABF100 | 東芝(TOSHIBA) | 内蔵ハードディスク 通販
4K
- MG04ACA**** シリーズ | 東芝 半導体&ストレージ製品
- Toshiba MG04ACA500A Specs - CNET
- Amazon | Toshiba mg04aca500 a 3.5インチ5tb SATA 6 Gb / s 7.2 K RPM 128 MB 4 KNTomcatベア | 東芝(TOSHIBA) | 内蔵ハードディスク 通販
- MARSHAL/マーシャル 東芝製 3.5インチHDD 4Kネイティブモデル Ma series 5TB 7200rpm MG04ACA500ABOX [1523286254-21942] - 39,794円 :
- 東芝(TOSHIBA)製HDD_リテール品_MG04ACAxxxABOXシリーズ
- Advanced Format - Wikipedia
- HDDの512E、4Kセクター、AFT、非AFT、4Kネイティブの違い - ぼくんちのTV 別館
- アドバンスド・フォーマット4Kセクター・ハードディスク・ドライブへの移行|Seagate
- HDDのセクタサイズ~512セクタと4Kセクタ【パソコン購入術】
- アドバンスト・フォーマット | 東芝 ストレージ&デバイスソリューション社
- Advanced Formatの識別方法 - ハードディスク入れ替え13 FAQ
- ASCII.jp:Windows 8は2.2TB超の大容量HDDにどう対応しているのか? (2/3)|塩田紳二のWindows 8 IN-N-OUT
- Windows での 4K セクターのハード ディスク ドライブに関するマイクロソフトのサポート ポリシー
- 【HDD】4Kセクタって何?/4Kセクタの制限事項は?/Windows7でバックア...
SSHD
- Seagate Laptop Thin SSHD ST500LM000 Specs - CNET
- Amazon | Seagate 2.5inch Hybrid Laptop Thin SSHD ST500LM000 SATA 6Gb/s 500GB 5400rpm 64MB AF | SEAGATE | 内蔵ハードディスク 通販
- ゲーム1本60GB!大容量ゲーム時代に使う「SSHD」 ベンチマークにでない「体感」を試してみた - AKIBA PC Hotline!
SMR
- Seagate Mobile ST1000LM035 Specs - CNET
- Seagate Mobile ST2000LM007 Specs - CNET
- Amazon | [SEAGATE] シーゲート 2.5inch HDD 1TB SATA 6.0Gbps 5400回転 7mm厚 128MBキャッシュ ST1000LM035 [並行輸入品] | Mobile HDD | 内蔵ハードディスク 通販
- 価格.com - SEAGATE ST2000LM007 [2TB 7mm] 価格比較
- SMR(瓦書き方式)のHDDは避けるのがオススメ | Kanon好きさんの掲示板 | マイネ王
- 備忘録:8TB HDDは1年待とう:気が向いたら何か書くtetのブロマガ - ブロマガ
- 最安の8TB HDD「ST8000AS0002」をテスト、SMR技術を再確認 - AKIBA PC Hotline!
- “10TB時代”に向けた最新HDD技術「SMR」のポイントを Seagateに聞いてみた - AKIBA PC Hotline!
- 【福田昭のセミコン業界最前線】10TBの大容量HDDを実現した「SMR技術」登場の背景 - PC Watch
- SMR な HDD で記憶域パリティ備忘録
- 価格.com - 『このHDDはSMRです』 SEAGATE ST2000LM007 [2TB 7mm] のクチコミ掲示板
- 備忘録:8TB HDDは1年待とう:気が向いたら何か書くtetのブロマガ - ブロマガ
- 新技術『SMR』が可能にした低コストで省スペースな大容量HDD - Seagate Desktop HDD(8TB)のレビュー | ジグソー | レビューメディア
- ASCII.jp:ヘリウム充填HDDの8TB「WD80EFZX」を触ってみた (1/3)|最新パーツ性能チェック
- HDDのSMR技術とはなにか:T43p SATA化ブログ改めパソコン色々ブログ:So-netブログ
- 個人的にSSDを信用していない理由、そしてSMRが好きではないという理由。 – ひねもす庵
- DEIM.pdf
- WDの技術者ら、瓦記録方式HDDの開発で文部科学大臣賞を受賞 - PC Watch
- なかのん&マジックさんのツイート: "ランダムアクセスのテストが雑すぎて信頼できない。SMRは最初のArchiveHDDで(覚悟してた以上に)痛い目にあってるんで、抵抗あるんだよな。 https://t.co/KPI5PNCY7R"
- 最新HDDはどれだけ進化したのか、2011年の大人気モデルといろいろ比べてみた - AKIBA PC Hotline!
- ネットの論客にファイナルアンサー!? ~「もしかして……SMR!?」。最新2TBプラッタHDDをとことんイジメる - PC Watch
- 第556回 SMR方式のHDDでも実用できるか検証する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- WDのNAS向けHDD「WD Red」の記録方式が「RAIDに不向き」な仕様にこっそり変更されていたことが判明 - GIGAZINE
M.2
- 【パワレポ連動企画】実測1GB/sec超! M.2 PCI Express x4接続のSSD「Samsung XP941」を試す ~システム起動は要注意 - PC Watch
- 品川研究室@学生募集中さんのツイート: "AHCI は 1.3.1 までしか規定されてませんが、SATA 3.2 で 20 Gbps が定義されたので、そこで AHCI の拡張も定義されていたりするんじゃないですかね。仕様書が非公開で分かりませんが。… "
- 品川研究室@学生募集中さんのツイート: "AHCI の ISS は 4 ビットあるので、いかにも 0100 あたりが使われてそうです。BitVisor でフックして調べてみると面白いかもしれません。… "
- hiyohiyoさんのツイート: "SATA の規格書を読んでも AHCI + PCIe の組み合わせの速度を判定する機能がないようなので、CrystalDiskInfo では、PCIe のリンク速度とバージョンを表示しています。 1000MB/s を軽く超えるものの ATA コマンドでは判定する術がなさそうで・・・ 早く滅び去って欲しいところです。… https://t.co/9IJVXkUT80"
- OS自作 uchan_nosさんのツイート: "なるほど。実際に、コントローラのレジスタでは判断できない、規格無視した速度のデバイスが存在するんですね。… "
- hiyohiyoさんのツイート: "コントローラーのレジスタに直接アクセスするというよりは、IDENTIFY DEVICE コマンドの結果は SATA/600 対応なので、判別できないというのが正確ですね。 何らかの方法はあるのかもしれませんが・・・… "
- OS自作 uchan_nosさんのツイート: "なるほどー。やはり、ソフトウェアには適当な値を見せておいて、物理層ではその速度より速い通信をしてしまう、という仕組みなんですねえ。… "
- hiyohiyoさんのツイート: "手元にも 2 枚ほどありますが、過渡期の製品って感じで使い道は限られますねぇ~ 現在は、 M.2 + NMVe に統一されているのであまり気にする必要はないかと思います。 ただ、自作 OS 的には ATA コマンドで制御できる(既存OSと互換性あり)のは便利ですね。… https://t.co/xidMsAaGB6"
SATA Express
- ASCII.jp:SATA3.2の仕様策定で見えてきたSATA ExpressとM.2 (1/3)|ロードマップでわかる!当世プロセッサー事情
- ASCII.jp:WDがSATA Express接続の3.5インチHDDをCOMPUTEXで展示中|COMPUTEX TAIPEI 2014レポート
- 4Tバイトの「Caviar Black」をベースにしたSATA Express対応ハイブリッドドライブ最新版をWDが公開 - ITmedia PC USER
- シリアルATA - Wikipedia
- Serial ATA - Wikipedia
- HotSwap!
- Transcend SSD370S Specs - CNET
- SATA-III 6Gb/s SSD220
- 製品の仕様情報 - Intel® SSD 330 Series (180GB, SATA 6Gb/s, 25nm, MLC)
- CSSD-S6i256HG7V:CFD Intel®製3DNAND採用SSD 256GB | CFD販売株式会社 CFD Sales INC.
- Samsung 860 EVO MZ-76E250B - solid state drive - 250 GB - SATA 6Gb/s Overview - CNET
- 2.5/3.5インチHDD 各1台を5.25インチベイに簡単増設|オウルテック
- 玄人志向 | SATA3I2-PCIe:Marvell社製 88SE9128搭載 SATA3x2 インターフェースボード(PCI-Express x1接続)
- 玄人志向 | SATA3-PCIE-E2:Marvell社製 88SE9128搭載 eSATA インターフェースカード(PCI-Express x1接続)
- シンプルBOX2.5 USB3.0+eSATA SATA6G (CSS25EU3BK6G) ハードディスク(HDD)ケース - 株式会社センチュリー
- TK-ESATA-05【eSATAケーブル(0.5m)】eSATA3.0Gb/s対応ケーブル。0.5m。 - サンワサプライ株式会社
- ASCII.jp:mSATA SSDって、フツーのSSDとなにが違う? (1/3)|本命が続々登場!! mSATA SSDに大注目
NVMe
PC Watch
- WD、メインメモリのように使えるNVMe SSD ~仮想メモリでメモリ容量を8倍に拡張 - PC Watch
- 【イベントレポート】ついに4GB/s超え。世界初のPCIe 4.0対応SSDコントローラ登場 - PC Watch
- SSD価格、2019年末までに1GBあたり10円台まで下落の見込み ~SATA SSDとの価格差解消でPCIe SSDが主流に - PC Watch
- 【平澤寿康の周辺機器レビュー】2TBに到達したSamsung 「970 EVO Plus」SSD。1TBより高速 - PC Watch
- Samsung、書き込みも3GB/s超えのNVMe SSD「970 EVO Plus」2TBモデル - PC Watch
- 【イベントレポート】1,500万ドル超を投じて9カ月で完成させたPhisonの世界初PCIe 4.0 SSDコントローラ - PC Watch
- 【イベントレポート】Realtek、NVMe SSDのDRAMキャッシュ必要量を4分の1に低減 - PC Watch
- 【イベントレポート】ADATA、Silicon Motion製コントローラ採用のPCIe 4.0 SSDを展示 - PC Watch
- 【イベントレポート】GIGABYTE、リード5GB/s超えのPCIe Gen4接続SSD ~実測値15GB/sの超高速PCIeカードSSDも - PC Watch
- 【イベントレポート】PCIeの高速化と3D NANDの低速化による性能ギャップがSSDで顕在化 - PC Watch
- 【イベントレポート】Samsung、リード最大6,500MB/sのPCIe Gen4対応M.2 SSD「980 PRO」 - PC Watch
- Samsung、PCI Express 4.0対応SSD「980 PRO」を10月中旬に発売 - PC Watch
- 【Hothotレビュー】7GB/s級の転送速度を実現したSamsung初のPCIe 4.0 SSD「980 PRO」を試す - PC Watch
- Marvell、14GB/sを実現した業界初のPCIe 5.0対応SSDコントローラ - PC Watch
Twitter
- なかのん&マジックさんのツイート: "NVMe SSDに関しては、自作PCで色々と試してる身からすると、ノートPCが薄型になることとと、「単純な」ファイルコピーが高速になるぞってこと以外に、2.5インチSATA SSDからのメリットが全く無くて、色々とアレです。… "
- なかのん&マジックさんのツイート: "NVMe SSDが高速で良いって言ってる人、たぶんベンチマークしか見てないか、単純なファイルコピーとかが日常作業で多い人だと思う。"
- なかのん&マジックさんのツイート: "Windowsでしか比較検証してないんで、他のOSだと知らない。"
- 一ノ瀬 いろはさんのツイート: "NVMe SSD の評価、私のTL だとサーバー用途に使う基準で話す人が多すぎてよくわからない感じに。 とりあえず熱がしんどいらしい。"
- なかのん&マジックさんのツイート: "放熱まではちゃんと検証できてないなぁ。あくまでも、860EVOについてる、ヒートシンクを兼ねたあのシールとのテストだけ。ただ、NVMe SSDにはファンの風を直接当てるようにしてて、空冷レベルではそれなりにやってる構成で確認してる。"
- Sadayuki Furuhashiさんのツイート: "2017年の資料だけども、NVMeは12us程度のレイテンシがあるのに対し、NVMDIMM(-N)は3us。 https://t.co/MQv4ABzgWB"
- Title of Presentation
- Kimihiro Nonakaさんのツイート: "へぇ | Ethernet接続型NVMe-oF™ SSD試作機の開発について | 東芝メモリ https://t.co/DHM3MX2kgt"
- Ethernet接続型NVMe-oF™ SSD試作機の開発について | 東芝メモリ
- Fadisさんのツイート: "我が家のNVMeにはCMBも仮想化支援も無いことが明らかになった。かなしい"
- Kazuo Moriwakaさんのツイート: "NVMe Firmware: I Need Your Data – Technical Blog of Richard Hughes https://t.co/afGViyrKEt Linux上でファームウェア更新基盤つくってる人がNVMeデバイスのID情報がほしいらしい。NVMeがついたLinux環境持ってる人は記事中にあるコマンドを打ってID情報送ってあげるとよさそう。"
- Fadisさんのツイート: "最近のNVMe SSDがどのメーカーも3400MB/sとかその辺で並び始めてるの、あれPCI-Express Gen3 x4の帯域の限界が近いんだよな。で、何でもっと太いPCI-Expressにしないかというと、NVMe SSDの一般的なフォームファクタになっているM.2のM keyからはPCI-Expressが4レーンしか出ていないんだ。"
- hiyohiyo (Noriyuki Miyazaki)さんのツイート: "Reference Guideを入手してから約半年、ついにIntel RST NVMe対応することができました! 動作確認ができたら正式版としてリリースします。"
- Reference Guide Intel RST - Google 検索
- Fadisさんのツイート: "cpの実装が残念でコピーが遅いという話。一度に読み書きするサイズが小さすぎる、一度しか読まないデータをpage cacheに乗せている、分散fsなら同時に複数箇所の読み書きをした方が良い、デバイスがコピー用の仕組みを持っているかも等が指摘されている(リンク先有料記事) https://t.co/onJY1Wtq8p"
- Fadisさんのツイート: "そういえば、良いNVMeだとデータをメインメモリに持って来ずにブロックのコピーが出来るよね"
- FadisさんはTwitterを使っています 「Fusion-io最速信仰はあれに救われた人間の多いソシャゲ畑には根強く残っているんだよな。酷い場合あれを作っていた会社はとうの昔に無くなっていることを知らない」 / Twitter
- FadisさんはTwitterを使っています 「NVMeがコントローラの気持ちを考えて使わないと性能ガタ落ちなのも問題をややこしくしている」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ なおすぐに思いつくのは、熱とSLC的キャッシュ領域とIOサイズあたりですが、他にも変な挙動とかありましたっけ?」 / Twitter
- FadisさんはTwitterを使っています 「@shirouzu 単位時間あたりに捌けるリクエスト数は多いですが、1リクエストあたりのレイテンシが大きいです。この為ioDriveからNVMeに移行するアプリケーションでは非同期I/Oで休みなくリクエストを投げ続ける事がより重要になります」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ それは知りませんでした。参考になります。 (そのレイテンシ差は、本質的には何に起因するのかなぁ…)」 / Twitter
- FadisさんはTwitterを使っています 「なんかナウめのNVMe SSDが既に「PCI-Express 4.0では帯域が足りない!!」みたいな性能で並び始めてて激しい」 / Twitter
- SSD市場の主流に躍り出るNVMe SSDストレージ、なお残る課題は? - TechTargetジャパン サーバ&ストレージ
- ASCII.jp:いまさら聞けないIT用語集 RAIDのボトルネックを解消するVROC (1/3)|ロードマップでわかる!当世プロセッサー事情
- NVMe SSDの外付けケースもカバー ~ディスク健康管理ツール「CrystalDiskInfo」v7.7.0 - 窓の杜
- 第5世代V-NANDの優位が歴然! PCI Express SSDの新定番「970 EVO Plus」の爆速性能を確かめる(ITmedia PC USER) - Yahoo!ニュース
- M.2 SSDをPCIeスロットから交換可能にするリムーバブルケース「ICY DOCK ToughArmor MB840M2P-B」レビュー - GIGAZINE
- Crucialの新型NVMe SSD「P5」がデビュー、最大2TBまで計4製品 - AKIBA PC Hotline!
- won't fix: キオクシアのNVMeを買ったらハマった
- DRAMレスとHMB採用でコスト競争力を高めたNVMe SSD「Samsung SSD 980」を試す(1/3 ページ) - ITmedia PC USER
- 北森瓦版 - Marvell PCI-Express 5.0に対応するNVMe SSDコントローラを発表
- サムスン、PCIe 5.0 SSDの発表を予告:2022年第2四半期に登場|自作.com
- NVMe 2.0、「未来のストレージの需要に対応」:NVM Expressが発表 - EE Times Japan
- サムスンもSSDのパーツを交換|自作.com
- Kioxia、PCIe Gen 5.0 SSDプロトタイプの性能を発表 - Gen 4.0 SSDと比較して最大14,000 Mbpsの読み込み速度と約2倍のIO性能を実現 - 自作ユーザーが解説するゲーミングPCガイド
- 北森瓦版 - Koxia PCI-Express 5.0 x4対応のSSDを試作―Sequential Readは14GB/sに
- 北森瓦版 - Phison PCI-Express 5.0に対応するE26コントローラを2022年に出荷予定
- Phison、PCIe 5.0 SSD向け新コントローラ。採用製品は2022年後半に登場 - PC Watch
- Phison社の次世代コントローラ「E26」を搭載したPCIe Gen 5.0 SSDを2022年に出荷開始、最大16GB/sの高速化を実現 - 自作ユーザーが解説するゲーミングPCガイド
NVMe 1.1
- MZVPV128HDGM - Client SSD | Samsung Semiconductor Global Website
- Samsung Electronics Now Producing Industry’s First M.2 NVMe PCIe SSD for the PC Market – Samsung Global Newsroom
- Samsung、世界初のNVMe対応M.2 SSD「SM951」を量産開始 ~PCI Express x4(3.0)対応で最大2,260MB/sec - PC Watch
- 価格.com - サムスン SM951 MZHPV128HDGM スペック・仕様
- コストパフォーマンスが良いのでは? - SM951 256GB M.2 PCIe Gen3 8Gb/s x4 SSD MZHPV256HDGLのレビュー | ジグソー | レビューメディア
- [画像] NVMeとAHCIの違いを理解する ~SSDのインターフェースを理解する 3~(5/7) - AKIBA PC Hotline!
- リード2GB/s超えのM.2 SSD「SM951」に安価なNVMeモデルが登場 - AKIBA PC Hotline!
NVMe 1.2
- SSD 960 EVO M.2シリーズ | Samsung SSDシリーズ
- 【詳報】Samsungの新SSD 960 PRO/EVOは10月発売。価格も明らかに - PC Watch
- 価格.com - サムスン 950 PRO M.2 MZ-V5P256B/IT スペック・仕様
NVMe 1.3
- 【レビュー】Samsung、第3世代のNVMe/PCIe SSD「970 PRO」、「970 EVO」 - PC Watch
- Samsung、読み込み3,500MB/sのNVMe SSD「970 EVO」、「970 PRO」 - PC Watch
- Silicon Motion、読み書きとも3GB/sを実現するNVMe SSDコントローラ - PC Watch
- 【イベントレポート】Silicon Motion、PCIe 3.0 x4/NVMe 1.3対応SSDコントローラ新モデルを展示 ~搭載製品は2017年第3四半期以降に登場予定 - PC Watch
- 64層3D NANDで生まれ変わった、Intelの最新NVMe SSD「SSD 760p」検証 - エルミタージュ秋葉原
- 価格.com - インテル SSD 760p SSDPEKKW256G8XT スペック・仕様
- 製品の仕様情報 - Intel® SSD 760p Series (256GB, M.2 80mm, PCIe 3.0 x4, 3D2, TLC)
- Intel® Solid State Drive 760p Series Product Brief
- ASCII.jp:M.2 SSDの新定番か!? 安くて速い「Intel SSD 760p」 (1/2)|最新パーツ性能チェック
- 東芝メモリ、約3GB/sのライト性能を実現した業界最速クラスのSSD - PC Watch
- 【レビュー】Samsung、前モデルから50%以上高速化したM.2 SSD「970 EVO Plus」 - PC Watch
- Samsung、最新V-NAND採用で高速化したNVMe SSD「970 EVO Plus」 - PC Watch
NVMe 1.4
- NVM Express Set for Busy 2018 | EE Times
NVMe 2.0
- FadisさんはTwitterを使っています 「NVMeの最新の規格NVMe 2.0が出たらしい。2.0ではNamespaceにTypeが追加され、Zoned Namespaceのような通常のブロックデバイスとしてアクセスしない領域を同一のデバイスに混載できるようになる他、コントローラの先に繋がっているのがHDDだった場合の為の機能が追加される https://t.co/rxuuQo9ZMN」 / Twitter
- NVMe 2.0 Released As A Library Of Specifications With ZNS, Simple Copy + More - Phoronix
- FadisさんはTwitterを使っています 「NVMe 2.0ではZoned Namespace(ZNS)とKey-Value(KV)がNVMeの規格の一部に加わる。これらは従来のブロックデバイスと異なる機能を持ったストレージを表現するもので、ZNSはNANDフラッシュメモリの制約をより直接ソフトウェアに見せる事でソフトウェアに工夫を要する代わりにコントローラの負担を軽減する」 / Twitter
- FadisさんはTwitterを使っています 「KVはSSDのコントローラが行う処理の本質がKey-Value Storeである事に着目して、ハードウェアをそのままKey-Value Storeとして使ってしまおうという物。一度ブロックデバイスに見せかけて、ブロックデバイスの上にソフトウェアでKey-Value Storeを実装する事によるオーバーヘッドの回避を目的とする」 / Twitter
NVMe/TCP
- FadisさんはTwitterを使っています 「linux-5.14でカーネルにNVMe/TCP Offloadをサポートする為のパッチが入りそうらしい。NVMe/TCPはNVMeをTCP/IP上で喋る事でリモートのマシンからNVMeストレージを読み書きできるようにする規格。この変更でNICが対応している場合NVMe/TCPの処理をNICに丸投げするようになる https://t.co/DL6Llrcf5u」 / Twitter
- NVMeTCP Offload Bits Coming For Linux 5.14 To Lower CPU Utilization, Better Latency - Phoronix
- FadisさんはTwitterを使っています 「NVMe/TCPは素直にソフトウェアで実装するとストレージとネットワークに対してCPUが遅すぎて性能が出ないが「TCPスタックとNVMe/TCPを喋る為の実装を丸ごとハードウェア化すれば性能が出る!」というクレイジーなNICがMarvellから出ており、これを使うとCPU負荷とレイテンシを大きく改善出来るらしい」 / Twitter
Fake RAID
- Linuxキーワード - フェイク・レイド:ITpro
- One Foot: CentOS 7 で Fake RAID を使用した RAID 構成
- 穀風: Ubuntu で FakeRAID/1
- RAID - ArchWiki
FDD
- sakohitiさんのツイート: "え、ふとアクセスしたら、ワイ・イー・データの事業統合に伴う合併で、会社と一緒にHPも消えちゃうのか・・・ しれっと3.5インチFDD製品の仕様pdf類が転がっていて、検索からならアクセスできたり、カードリーダーのドライバ類も置いてあったりと、重宝していたのですが。 orz… https://t.co/uni4AtUXOD"
- sakohitiさんのツイート: "そういえばYD-702Dのページ https://t.co/PA9DxCeD4W (なぜかYD-702Jで検索すると出る)から拾える仕様書のpdfが2つと、普通に検索すると出てくるYD-702J-6639Dの仕様書のpdfの合計3つも回収対象ですね。 FDDメーカーの公式サイトに残っているほぼ最後の日本語資料だっただけに、これは惜しいです。"
- sakohitiさんのツイート: "ちなみにドライバ類へは、トップページからのリンクが切られたまま放置されている情報マルチメディア事業のページから行く必要があるので、メモとして貼っておきます。 https://t.co/Q6TFl9KXNM"
- マルチメディア_Internal Half-inch FDD_株式会社 ワイ・イー・データ
- 製品仕様書
- 528028.PDF
- Z529020_A2.PDF
- にわかに“ゼロSATA”構成が人気を集めている理由 (1/4) - ITmedia PC USER
- Latency で見る Intel 3D Xpoint SSD - Fixstars Tech Blog /proc/cpuinfo
- QLC NANDのtRを調べる - Fixstars Tech Blog /proc/cpuinfo
- SSDの性能を比較する上で考慮すべき3つのポイント - GIGAZINE
- HDD・SATA SSD・NVMe SSD・Optane SSDで「レイテンシ」にどれほど差があるのか? - GIGAZINE
LAN
その他
- HP ProLiant White Paper:イーサーネットRDMAテクノロジ:RDMAの概要/RDMA over TCP | HPE 日本
- MACアドレスに関する注意事項
- LANケーブルの正しい使い方 - LANケーブルの信号線がねじられている本当の理由:ITpro
- LANケーブルの正しい使い方 - LANケーブルは規格値を超えたスピードで通信したらどうなる?:ITpro
- MACアドレスについて教えてください。MACアドレスが消えてしまって... - Yahoo!知恵袋
- Tech TIPS:ネットワーク・インターフェイスのMACアドレスを変更する - @IT
- 現代PCの基礎知識(11):現代のPCには欠かせない!ネットワーク | Think IT(シンクイット)
- 【新製品】 日本向けクイックコネクタ仕様の「G.Fast」も開発・発売|株式会社アイタス・ジャパンのプレスリリース
- セイコーソリューションズ、NTPサーバーと同期するネットワーク型時計「NTPクロック」を販売開始 - クラウド Watch
- Marvell、業界初の50GbE対応16ポートPHYトランシーバ - PC Watch
- なかのん&マジックさんのツイート: "10GbEでもマルチギガには対応してないってパターンもやはりあるのかな? (全く分かってない)"
- dynamis (でゅなみす)さんのツイート: "徐々に減っていくのかもてすが、あります。 必ずしも上位互換で全対応ではないです。… "
- 一ノ瀬 いろはさんのツイート: "あくまで別の規格、かつ 10Gbase-T より 2.5/5 Base-T の方が後の規格ですからね。 実装上の差分は小さいのでこれから作る分には対応しない理由は少ないですが、 10Gbase-T として作られた製品は後続の規格には対応出来ない事も多いはず。… https://t.co/99A9q2G78d"
- Kazuho Okuさんのツイート: "あーなんか良く知ってる環境な気がするー… "
- Fadisさんのツイート: "1500バイトのパケットが100GbEで流れてくる時、1パケットの処理に使える時間は120nsで、DRAMに何かを読みに行くとそれだけで50nsから100nsくらい持っていかれる為「CPUのキャッシュに当たらなければ即死」というマゾプログラミング環境が誕生するらしい"
- Kazuho Okuさんのツイート: "真面目な話すると、そういう環境だとマルチスッドレ化するのが最善だしみんな割とそうしてるんじゃないの? それでもいろいろチャレンジがあって面白いと思うけど"
- 【知識】コンセント経由でネットにつながる「PLC」って今どうなってるの? | &GP
- 高梨陣平さんはTwitterを使っています: 「DARPAが現在のNWの性能を100倍にする目標でプロジェクトFastNICを立ち上げ。現在のボトルネックはインターフェイスにあるとしてNICを捨て、NWスタックを一から作り直すという。また当然SWも新規開発が必要だとしている。ここでFastNICで開発されるSWはOSSになる予定だ。 https://t.co/L3CyFofo1A」 / Twitter
- FadisさんはTwitterを使っています: 「夢のある話だけど、現代のネットワークのボトルネックって「性能が良くなくても互換のある方法を取らざるを得ないインターネットの古さ」と「現代の通信速度を想定して作られていないAPIに今尚依存するソフトウェア」であって、NICは順調に伸びてると思うんだ…」 / Twitter
- 800Gbpsを実現する有線LAN仕様「800GBASE-R」が発表 - PC Watch
- 光ファイバー盗聴・侵入を5秒でできるか実験してみました - DARK MATTER
- 【光Ethernetの歴史と発展】IEEE標準ではない光Ethernetの各規格、100G/400G/800Gですでに登場【ネット新技術】 - INTERNET Watch
- 「管理者権限でログインできるバックドアアカウント」が10万台以上のZyxel製ネットワーク機器で見つかる - GIGAZINE
- 第665回 ホワイトボックススイッチのインストール環境であるONIEを仮想マシンに構築する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 【特集】よく分かるLANケーブルの選び方。CAT.6でも10Gbps対応可能。CAT.8まで速度差を検証 - PC Watch
- 6G→9Gbpsに! 10GbE NICで遅いならUEFIでPCIeリンク幅を固定しよう【イニシャルB】 - INTERNET Watch
Intel
- インテル® PRO/100 デスクトップ・アダプター
- インテル® PRO/1000 MT デスクトップ・アダプター・シリーズ
- インテル® PRO/1000 PT デスクトップ・アダプター・シリーズ
- インテル® ギガビット CT デスクトップ・アダプター シリーズ
- 製品の仕様情報 - Intel® Ethernet Converged Network Adapter X540-T1
- 製品の仕様情報 - Intel® Ethernet Server Adapter I210-T1
- 製品の仕様情報 - ギガビット・イーサネット・アダプター
- 北森瓦版 - Intel 低価格な2.5Gbps Ethernet PHYであるi225-V―“Foxville”を準備中
- I225 2.5GbeのZ490を含むIntel 400シリーズのチップセットには、ネットワークのバグがありますが、2020年下半期にされます。 - 自作ユーザーが解説するゲーミングPCガイド
- Intel、「Killer NIC」で知られるRivet Networksを買収 - PC Watch
- ホ タ テ ラ スさんはTwitterを使っています 「天下のいんてりゅさんでも、phy の ip が買い物だったりするのかなぁ」 / Twitter
- msaitohさんはTwitterを使っています 「@misasagi64 元々昔からPHYの半分は Marvell ほぼそのままだし。igp と言われるやつが独自なのかどこかから買ったかは不明。82578 は Attansic (->Atheros -> QCA)です。MII OUI が Attansic そのもので、最初はボケて他社の OUI 使ったのか と思ったのですが、ベンダ依存レジスタ部分が AR8021 と同一。10G(文字数」 / Twitter
- msaitohさんはTwitterを使っています 「@misasagi64 10G は、ixgbe ドライバ内で TN と言われてるのは OUI が Teranetics だけど、これは外付け PHY かな。」 / Twitter
- msaitohさんはTwitterを使っています 「Intel I225の不具合が話題ですが、どういう問題を議論しているのかよくわかんないけどPHY作るのがヘタクソ(というか他からIP買ってそれが元々ダメなのかそれとも改造した時にヘマこいたのか・・・)なのは昔からですよね。僕はまだI225持ってません。 ところでこれは何ですか? https://t.co/WElAT06PEh」 / Twitter
- dpdk - Data Plane Development Kit
- msaitohさんはTwitterを使っています 「低消費電力にしないといけなくて多方面で改善しないといけなくて大変なのはよくわかる(てゆーかドライバ書く側も大変なのよん)。」 / Twitter
- msaitohさんはTwitterを使っています 「てゆーか、2.5G とか 5G が ethtool から見えないドライバを長期放置しておいておめーらどんなテストしt(以下略」 / Twitter
- IntelがIPUの具体的な製品計画を発表 Arm CPUを搭載したMount Evansなど3製品を投入 - クラウド Watch
- Intel NICを搭載したLinuxサーバのLLDPが正しく動作しない問題 - show log @yuyarin
Realtek
- 玄人志向 | GbE-PCIe4:Realtek社製 RTL8168搭載 1000Base-Tイーサネットボード(PCI-Express x1接続)
- SD-PEGLAN-S2(ジーノ2世)
- Realtek
- ETG3-PCI | LANアダプター | IODATA アイ・オー・データ機器
- LANアダプタ|LGY-PCI-TXD
- Realtek、世界初のシングルチップ2.5G Ethernetコントローラ ~ヒートシンク不要 - PC Watch
- 3500円で2.5GBASE-Tへアップグレード、プラネックスのPCIe接続アダプター「GPE-2500T」を試す【イニシャルB】 - INTERNET Watch
NIC
- 玄人志向 | GbE-PCIe:MARVELL社製 88E8053搭載 1000Base-Tイーサネットボード(PCI-Express x1接続)
- Broadcom 5751 Netxtreme Gigabit PCIe NIC
- PCでも使えるQNAPのNAS用10GbEカード「QXG-10G1T」が発売 - AKIBA PC Hotline!
- 10/5/2.5/1GBASE-T対応のマルチギガ有線LANカード「EDB-10GMPE4T」、エレコムが発売 - INTERNET Watch
- 1万円を切る10GBASE-T対応LANカード、LR-LINK「LREC6860BT」、アユートが販売 - INTERNET Watch
- 2018年に普及の兆し!? 10GBASE-T対応製品コレクション - INTERNET Watch
- アユート、税別1万円を切る10Gigabit Ethernet対応PCIe LANカード - PC Watch
- 10Gbps通信の普及を阻んだ「高過ぎるエラー率」問題 (1/2) - TechTargetジャパン ネットワーク
- Shirouzu Hiroaki(白水啓章)さんのツイート: "同じ40Gb NIC対応でも Mellanox MCX313A-BCBT は PCIe3.0 x8レーン、MCX415A-BCATは PCIe3.0 x16レーンなのはなぜかしらん?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gbit搭載マザーボードも徐々に増えているし、10Gbitが徐々に一般にも広がりつつある感じ。また、10Gbitなら今時のCPU&メモリバスで問題ない。 これが、40Gbitになると、あちこちネックが出てきて、普通に使うと15~20Gbit程度で引っ掛かりやすい印象。… https://t.co/ZzKRsXWlbK"
- 4千円を切る2.5GbE対応PCIe LANカード、プラネックスが発売 - INTERNET Watch
スイッチ
- スイッチ|CentreCOM GS908M/GS916M/GS924M
- ギガビット8ポート アンマネージプラス・スイッチ(VLAN, QoS) GS108E | 9,500 円 | ネットギア【NETGEAR】
- Tag VLAN を利用の環境でスイッチの管理画面にアクセスできません。 《対象機種》 GS108Ev3(GS108E-300JPS) GS108PEv3(GS108PE-300AJS) | ネットギア【NETGEAR】
- 【清水理史の「イニシャルB」】 VLANやLAGも可能な管理機能付きスイッチが3000円以下で TP-Linkイージースマートスイッチ「TL-SG105E」 - INTERNET Watch
- LANケーブルの入れ替え不要、2.5/5GBASE-T対応スイッチがバッファローから - AKIBA PC Hotline!
- DSAS開発者の部屋:Brocade VDX NOS 7.0 は Python が動く!
- BSH-10G08 仕様 | スイッチ | IODATA アイ・オー・データ機器
- SODA Noriyukiさんのツイート: "リピーターHUBって、100BASE-Tまでの製品しかないと思ってた、驚いた>FXG-05RPT でもなんか怪しい挙動する→ https://t.co/MHl7ah6Zdy ので、実は物理的にはリピーターじゃなくてブリッジでで、学習機能を省いて全ポートにミラーリングしてるだけだったりして?"
- リピーターハブ(ネットワークタップ)|FXG-05RPT|PLANEX
- IzNoMaさんのツイート: "今回いろいろ見てて気がついたんですけど、今時のGbEのばかHUBって実はばかじゃなくて、プリアンブルを再生成するんですね。プラネックスのばかハブ通すと6だったのが7オクテットに戻るという不思議。そんなものなの?"
- Fadisさんのツイート: "スイッチングハブなら他所のMACアドレス宛てのパケットは見えないというのは全く期待できなくて、一度もパケット受信した事がない宛先への通信は全ポートに流すし、受信した事があってもテーブルを溢れさせて忘れさせるのは割と簡単だったりする"
- ASUS、2基の10Gigabit Ethernet搭載スイッチングHub - PC Watch
- バッファロー、約24,000円で全ポート2.5Gbps対応の5ポートHub - PC Watch
- 手のひらサイズで爆速10Gbps&冗長電源まで備える格安ルーター「MicroTik CRS305-1G-4S+IN」レビュー - GIGAZINE
- エレコム、5ポート全てが2.5G対応のファンレススイッチングHub - PC Watch
- 1万円を切る2.5GbE 5ポートスイッチ「FX2G-05EM」、プラネックスが発売 - INTERNET Watch
- ついに2.5Gbpsスイッチが税込1万円以下! 熱対策も万全なプラネックス「FX2G-05EM」【イニシャルB】 - INTERNET Watch
- バッファローが10G/2.5Gをコモディティ化! 2万円切りのスイッチや、3.4万円で10G×2ポート+2.5G×4ポートのスイッチを試す【イニシャルB】 - INTERNET Watch
- 10GbE×2+2.5GbE×4で3万円以下! ホームネットの高速化に最適なQNAPのお手軽スイッチ「QSW-2104-2T」【イニシャルB】 - INTERNET Watch
PLC
- 【トピック】コンセントに挿すと通信できる「PLC」、再び注目の理由とは? 電波法改正で新たな用途- 家電 Watch
- Kazuho OkuさんはTwitterを使っています 「HD-PLC、なんでUDPよりTCPが遅くなるんだろ、って思ったんだけど、L2で壊れたパケット「だけ」再送するのか。これがパケットの到達順を破壊しちゃうんだろうか。だとすると、到達順を利用する再送制御との相性悪そう https://t.co/8OJS94NLh5 https://t.co/jdMZ59SlmE」 / Twitter
- 高速電灯線通信(HD-PLC)「どこでもリンク《 - hdplc_white_paper_complete.pdf
- Kazuho OkuさんはTwitterを使っています 「転送順序を維持するために無駄なバッファリング行わないという方針だとして、それ自体は技術的に正しい。エンドポイントの再送制御やってる側としては、タイムベースの再送制御に切り替える仕組みはあるので、理オーダの頻度観測すればいいんだろうか。実機がほしいなぁ」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho communication protocol specialist の血が騒ぐ?🤭」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@objectxplosive 僕は詳しくないですけど、ロス率が高い区間があるとして、 * その区間独自に再送と順序性回復を行うか * 再送も順序性回復も行わないか * 再送だけをやるか みたいな話は、業界的にも論争があるんですよ。これ、ちゃんと標準化してほしい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@objectxplosive 僕の朧げな知識では、 * 無線は割と再送と順序性回復の両方をやってる。遅延にセンシティブなアプリ書いてる側としては、これはやめてほしい * 両方の回復をL3でやろうという標準化提案は昨年あったが、反対意見が強く頓挫した (cf. LOOPS BoF @ IETF 108) * 再送のみやるL2の存在は初耳」 / Twitter
- 眼力 玉壱號さんはTwitterを使っています 「@kazuho 変数沢山ある😮… latency が変数に入るとツラソー」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「んー詳しい論文 (https://t.co/D8hgDGOOoX) を見つけたから読んだけど、リオーダによる低下とかじゃなくて、半二重回線でデータとackが競合する問題だった。QUIC だと ack frequency extension でだいぶ解決しそう」 / Twitter
- 147425895.pdf
- Kazuho OkuさんはTwitterを使っています 「HD-PLCのTCPのがUDPより遅い問題、電力線ネットワークだから半二重で、半二重だからackと帯域の奪い合いになるだろ、って言われたら、そりゃそうですなってなるけど、ぱっと思い当たらないあたりL2の知識が足りない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Wi-fi も同様の問題ありそうだな、と思って調べたら、ちょっと古い論文だけど 802.11a で ack 圧縮してパフォーマンス改善するって報告があった https://t.co/JLBtQDkh5Q https://t.co/MKCnprIe1s」 / Twitter
- atc14-paper-salameh.pdf
- Kazuho OkuさんはTwitterを使っています 「なるほど Wi-fi の全二重通信は次世代である Wi-fi 7 で入るかもと https://t.co/WDACjgngD9」 / Twitter
- Wi-Fi 7: The Next Generation of Wi-Fi Technology | u-blox
無線
その他
- 「技適」の話をあらためて整理する (1/3) - ITmedia Mobile
- 無線LANデバイスが技術適合証明を受けなければならない理由 | Noisefactory
- M.2 の NGFF 形状 WiFi モジュールと繋ぐケーブル
- AC-8260NGW
- NTTと東工大、テラヘルツ帯での100Gbps無線伝送に成功 - PC Watch
- 技適取得済み機器の検索APIを総務省が公開中、技適取得の有無のほか機器情報も取得可能【やじうまWatch】 - INTERNET Watch
- 技適の無い海外端末の合法的利用について | かくいちさんの掲示板 | マイネ王
- Cell Phone Unlocking | Federal Communications Commission
- 「なぜ無線通信で用いられる周波数帯域は2.4GHzなのか」調査中の学生の前に立ちはだかった最後の巨大な壁 - GIGAZINE
- 【速報】「技適」のない機器の実験利用が可能に、電波法改正で11月20日から:教育とICT Online
- 家に届いた「NEXT! 700MHz」のチラシ、これは何? - AV Watch
- MacとiPadを横に並べるだけで直接連携が可能になる「ユニバーサルコントロール」の仕組みとは? - GIGAZINE
- 【悲報】電池が1年持つ無線マウスを導入して、5か月経った結果
- 【マジか!】マウスのチャタリングがたった10秒で直った!その方法とは…?
- チャタリングを直したマウスのその後
Bluetooth
その他
- 成熟Bluetoothチップ市場に吹く新風 (1/4) - EE Times Japan
- 渋川よしきさんのツイート: "Bluetoothを青歯って書く人いるけど、中国語の藍牙のほうが中二病感あってカッコイイと思う。簡体字だと蓝牙。ピンインだとlanyaで変換できます。"
- Anker Soundsync A3341 - .mjtの日記復帰計画
- 低電力Bluetoothチップの多くに存在するリモートアクセスを可能にする脆弱性「BleedingBit」の存在が明らかに - GIGAZINE
- (1)「マルチペアリング」や「マルチポイント」で手軽になったBluetooth | 日経 xTECH(クロステック)
- 【小寺・西田の「金曜ランチビュッフェ」】AirPodsから考えるBluetoothの「切り換え」問題
- AndroidスマホのBluetoothに重大な脆弱性、攻撃者が任意のコードを実行可 - Engadget 日本版
- Google、Bluetoothデバイスを初回から自動接続できるFast Pairの詳細を公開 - PC Watch
- Bluetoothデバイスの接続に潜む新たな脆弱性を用いたなりすまし攻撃「BIAS」が発見される - GIGAZINE
- Bluetoothデバイスの認証キーを攻撃者が上書きできる脆弱性「BLURtooth」が発見される - GIGAZINE
- スマホやPCなど無数のBluetoothデバイスが乗っ取られてしまう脆弱性「BLESA」が発見される - GIGAZINE
- 2020年10月20日 Linux 5.9.1がリリース,Bluetoothの脆弱性を突いた「BleedingTooth」に対応:Linux Daily Topics|gihyo.jp … 技術評論社
- 第681回 BluetoothヘッドセットでHD Voiceを使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Sniffer
- 「Bluetooth Low Energy BLE 4.0 nRF51822」に該当する海外通販 - セカイモン
- 2269 Adafruit Industries LLC | RF/IF and RFID | DigiKey
- DSAS開発者の部屋:技適マークつき BLE パケットスニファを入手する
- DSAS開発者の部屋:BLE デバイス間の通信内容をパケットレベルで読み解いてみる
ケータイ Watch
- 第660回:iBeaconとは - ケータイ Watch Watch
- 第679回:ポータブルSIM とは - ケータイ Watch Watch
- 第718回:Eddystone とは - ケータイ Watch Watch
- 第720回:ジオフェンシング とは - ケータイ Watch Watch
- 第832回:完全ワイヤレスステレオ(TWS) とは - ケータイ Watch
- 第859回:eMBB、URLLC、mMTC とは - ケータイ Watch
FIDO
- ユーザーは改良版への交換を。GoogleがBluetooth版Titanセキュリティキーをリコール - Engadget 日本版
- Google Online Security Blog: Advisory: Security Issue with Bluetooth Low Energy (BLE) Titan Security Keys
- パスワードの不要な世界はいかにして実現されるのか - FIDO2 と WebAuthn の基本を知る: Tender Surrender
Audio
LE Audio
- ASCII.jp:Bluetooth「LE Audio」の技術的な詳細は? ソニー講演から探る
- クアルコム、次世代規格「Bluetooth LE Audio」に対応したミドルクラスSoC「QCC305x」 - PHILE WEB
- 【本田雅一のAVTrends】次世代Bluetooth音声“LE Audio”は、ワイヤレスイヤフォンのなにを変えるか? - AV Watch
- Bluetooth SIG、新音声規格「LE Audio」のコーデック仕様書を公開 - ITmedia PC USER
- ASCII.jp:混沌としたBluetoothの高音質コーデック、新標準LE Audio/LC3の立ち位置は? (1/2)
- 「Bluetooth LE Audio」に対応したコーデックを提供開始:組み込み開発ニュース - MONOist
- 次世代Bluetooth「LE Audio」は高音質LC3採用、ワイヤレスでシェアも - AV Watch
- Bluetoothの新音声規格「LE Audio」、新コーデック「LC3」採用やマルチストリーム・ブロードキャストに対応 - ケータイ Watch
- Bluetooth SIG、ブロードキャストにも対応する「LEオーディオ」を発表 - ケータイ Watch
- Bluetoothの次世代音声規格「Bluetooth LE Audio」が発表される、低電力で高品質ながら複数機器での再生も可能に - GIGAZINE
- LE オーディオ |ブルートゥース®テクノロジーウェブサイト
- Bluetooth SIG Unveils LE Audio, the Next Generation of Bluetooth Audio – Bluetooth® Technology Website
- Bluetooth SIG、音質が抜本的に改善したLE Audio用新コーデック「LC3」 - PC Watch
- LEオーディオの仕様|Bluetooth®テクノロジーウェブサイト
- Low Complexity Communication Codec - LC3_Specification_v1.0.pdf
- とみながたけひろさんはTwitterを使っています 「そういえばBluetoothのLC3コーデック仕様書が公開されたのでhttps://t.co/SWndAk9WSM (PDF) つらつらと見ているんだが、リサンプリング検出器があるのが面白かった。これはVoice系の8kHzサンプリングされた音声を48kHzに変換したんだな、てのを認識したときに特別扱いするっていう」 / Twitter
- とみながたけひろさんはTwitterを使っています 「あとはまあウィンドウ長を時間固定にするとか、プリエコー対策でもウィンドウサイズ変えないとか、エントロピーコーディングはVQと算術符号とか、なるほど計算量減らしつつ効率上げるならこのへんかー、今時だなーという感じ」 / Twitter
- とみながたけひろさんはTwitterを使っています 「直交変換の窓函数が変態形状である。これはvorbisからあったしそれほど最新ではないのかもだけど、あんまり他では見た事ない気もする」 / Twitter
- Masami HIRATAさんはTwitterを使っています 「@takehiro_t @yohhoy それって、モノラル音声のストリームを 6 本束ねて 5.1ch みたいな用途を想定していて、LFE に特化しているツールが用意されてるみたいな感じなんですかね?」 / Twitter
遅延対策
- Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi @beepcap Android って動画の場合 SBC のでかい遅延に合わせて映像ずらしてくれるから気にならないんですよね。まぁ macOS もそうなんですけど。操作音みたいなやつは画面更新遅らせるわけに行かないから露骨にずれますね。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@hdk_2 @beepcap なんか動画だとリップシンクうまくやってくれるらしいですね。OS が対応してなくても VLC なんかはたいてい音声のオフセット設定とかできるし,まあなんとかなる印象」 / Twitter
- Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi Android と macOS で試して、あぁー今時のオペレーティングシステムはこうなんだーいいじゃんって思って、それから Windows を触った時の絶望感...」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@hdk_2 Android も macOS も A2DP の接続コーデック確認とかもできるんですが Windows はそれすらも出来ない(とはいえ標準のソフトウェアスタックで aptX に対応したり進歩はしているのですが」 / Twitter
- Hideki EIRAKUさんはTwitterを使っています 「@kotatsu_mi まぁなんか、Bluetooth オーディオは闇なので、自宅では PC 同士を PulseAudio で飛ばすことにしました...」 / Twitter
- kanamonoさんのツイート: "左右独立したイヤフォンは音がずれることがないのかなと思っていたが、昨日ついにズレが発生した。電源切るまで直らなかった"
- kanamonoさんのツイート: "ズレは1秒未満でしたが、ズレると物凄く不快なので実用に堪えない感じになります… "
- 耳を塞がないイヤホンambieを一ヶ月でぶっ壊してしまった話 - にせねこメモ
- 【藤本健のDigital Audio Laboratory】iPhoneからBluetoothで聴くと音質はどう変わる? 波形で比較した-AV Watch
- 【藤本健のDigital Audio Laboratory】BluetoothのaptX音質をテストしたら、謎の結果が出てしまった-AV Watch
- 【藤本健のDigital Audio Laboratory】BluetoothのaptX音質を再び検証。SBCとの違いを波形で比べた-AV Watch
- Logicool Bluetooth Audio Receiver for Wireless Streaming
- 【笠原一輝のユビキタス情報局】Microsoftのノイキャンヘッドフォン「Surface Headphones」をレビュー ~PC&スマホの同時に利用に便利。日本でもまもなく発売 - PC Watch
- 高音質なワイヤレス体験!24bit Bluetooth DUAL DAC搭載。バランス接続対応ワイレスレシーバー『EarStudio』 | 株式会社フリーウェイ
- SBC XQ - Google 検索
- Qualcommが高品質&低遅延の次世代ワイヤレスオーディオ技術「Snapdragon Sound」を発表 - GIGAZINE
- とみながたけひろさんはTwitterを使っています 「BTのaudio, あまりにも罠が多すぎて、電話が祖先の機材(スマートフォン)はともかく、CS対応考えると一般人向けゲーム機では対応しないのが正解!みたくなってるよな(XBOX1はBTそのものがない、PS4/5, Nintendo SwitchはBTあるけどAudio使えない、XBOX X|SはAudioも対応してる、だったかな…)」 / Twitter
- Qualcommが高音質コーデック「aptX Lossless」を発表、CD音質の音楽を無劣化でワイヤレス再生可能に - GIGAZINE
MIDI
- nRF51でBLE MIDIをアドバタイズする - Qiita
- BLE-MIDI : 藤本健の“DTMステーション”
- kshoji: Android用のBLE MIDIライブラリのご紹介
- kshoji/BLE-MIDI-for-Android: MIDI over Bluetooth LE driver for Android 4.3 or later
- Downloads | KORG BLE-MIDI Driver - Bluetooth MIDI Connection Guide E | KORG (USA)
- ble-midi - npm
- Bluetooth LE MIDI Specification
- Microsoft Word - rp52.doc
- Bluetooth LE MIDI Specification
- Midi over BLE
- MIDI 2.0、始動 今も使われる電子楽器規格が38年後のバージョンアップ - ITmedia NEWS
- MIDIが38年ぶりのバージョンアップでMIDI 2.0に。従来のMIDI 1.0との互換性を保ちつつ機能強化 | | 藤本健の "DTMステーション"
- 【藤本健のDigital Audio Laboratory】Bluetooth MIDIは本当に遅延が大きい? 測定して比べてみた-AV Watch
マウス
- Bluetooth 4.0 レーザーマウス - M-BT13BLBK
- EX-G Bluetooth BlueLEDマウス - M-XG4BBBK
- 【PR】接続も充電もワイヤレスなCorsair製マウス「DARK CORE RGB SE」を試す。ケーブルに縛られないゲームライフはとことん快適だ - 4Gamer.net
- Corsair、Qi無線充電が可能な2.4GHz無線/BT/有線対応ゲーミングマウスなど2機種 - PC Watch
I/F
- BIOS 画面でもBluetooth LE な無線キーボードを使いたい | tech - 氾濫原
- Releases · cho45/hid2hcix
- HID API for Linux, Mac OS X, and Windows
- Bluetooth Ver.4.0+EDR/LE対応 小型USBアダプター|PLANEX
- Bluetooth(R) USBアダプター(Class2) - LBT-UAN05C2
- Nintendo Switchでワイヤレスイヤフォン/ヘッドフォンを使用可能にするドングルが発売 - GAME Watch
- Nintendo Switch™をワイヤレスで楽しもう!世界初、ワイヤレスヘッドホンを可能にするドングル『Genki』
au
- 仕様 (スペック) | Bluetooth(R) | au
- 仕様 (スペック) | Bluetooth(R) | au
- 機能説明 | Bluetooth(R) | au
Bluetooth 5
- 【ニュース・フラッシュ】ケイデンス、Bluetooth 5の検証IPを提供開始 - PC Watch
- 「Bluetooth 5」に対応したスマートフォンが認証の取得を開始 | ガジェット通信
- 新規格登場のBLE、非モバイルに浸透へ - 日経テクノロジーオンライン
- Bluetooth SIG責任者が今だから語る、Bluetooth 5仕様の真実 - TechTargetジャパン ネットワーク
- 速度2倍、到達距離4倍になったBluetooth 5 - PC Watch
- Bluetooth 5 通信距離「従来比4倍」の仕組み (1/4) - EDN Japan
- Bluetooth 5 対応スマートフォンをサムスンとアップルが製品化 (プレスリリース) - エキサイトニュース
- 新しいiPhoneの「Bluetooth 5.0」で何が変わる? - いまさら聞けないiPhoneのなぜ | マイナビニュース
- 【解説】誤解していませんか?「Bluetooth 5対応」の真の意味とは - PHILE WEB
- Bluetooth 5でオーディオは進化するの? - いまさら聞けないiPhoneのなぜ | マイナビニュース
- 方向検知機能が追加された「Bluetooth 5.1」 ~位置測位もセンチメートル単位で可能に - PC Watch
- Core Spec Version 5.2の新機能について|Bluetooth®テクノロジーウェブサイト
- 「Bluetooth 5.2」、3つの新機能を理解する:注目される「アイソクロナスチャネル」など(1/2 ページ) - EDN Japan
- Bluetooth 5.2はどう進化した?バージョン5.1との違いと新しく追加された仕様を解説! | マクリン
- Bluetoothの『バージョン』とは?5.2の進化ポイント「オーディオ機能」などを解説|TIME&SPACE by KDDI
- 【1.0-5.2】Bluetoothバージョン別の特徴まとめ | BableTech
Bluetooth mesh
- Bluetoothがメッシュネットワークをサポート ~数千デバイスの相互ネットワークを実現 - PC Watch
- 第817回:Bluetooth Meshネットワーク とは - ケータイ Watch
- 低エネルギー: メッシュ | Bluetooth Technology Website
- Low Energy: Mesh | Bluetooth Technology Website
- 数千ノードのメッシュネットワークを構築できる「Bluetooth mesh」 ~大規模デバイスネットワークの基礎を目指す - PC Watch
Bluetooth Low Energy
- はじめに | 基礎知識 | ROHM TECH WEB
- AndroidでBluetoothヘッドホンのバッテリー残量インジケーター表示のサポートが行われる見込み - GIGAZINE
- Shiki Okasakaさんのツイート: "Bluetooth SmartとBluetooth Smart Readyマークは2016年いっぱいで廃止されている、というのはどれくらい周知されているのだろう? https://t.co/vJFGi6WCBf https://t.co/ZhY3hOw3Z0"
- ネット環境不要で広域通信可能な「BLEルーター」、IoTデバイス開発のBraveridgeが提供 - INTERNET Watch
- Bluetooth LEにWindows PCやiOS/macOSなど対応デバイスを識別/追跡できる脆弱性 - PC Watch
- popets-2019-0036.pdf
- Appleデバイスの位置を第三者が確認できる抜け穴 - PC Watch
- Bluetooth Technology Website
WiMAX
- UQ、WiMAX 2+対応のUSBアダプタ「URoad-Stick」 - PC Watch
- stick_linux_info_v1.0.pdf
- URoad-Stick |UQWiMAX|超高速モバイルインターネットWiMAX2+
- データ通信カード | UQ WiMAX|超高速モバイルインターネットWiMAX2+
- WiMAX製品一覧|UQWiMAX|超高速モバイルインターネットWiMAX2+
- テザリング機能|UQmobile|格安スマホ・格安SIMのUQmobile
- Linux機にWiMAX機器をUSB接続して使う - 海馬のかわり
- Huawei WiMAX 2+モデムをLinuxで使う
- USBケーブルを使用してノートPCのネット回線をアンドロイド端末共有
- WiMAX2+ 接続方式による通信速度の違いを検証してみた USB接続編 : ガジェッとぅ
- 【西川和久の不定期コラム】ネットワークコンサルティング「Mobile Cube」 ~コンパクトで起動も速いWiMAX Wi-Fiルーター - PC Watch
- LinuxカーネルがWiMAXのサポートを段階的に廃止 - GIGAZINE
- FadisさんはTwitterを使っています 「Linux 5.11では以前から削除が提案されていたWiMAXのサポートがstagingになるらしい。これはPCの内蔵WiMAXモデ厶でWiMAXを喋る為の物で、近年殆ど使われておらず保守が難しいことが指摘されていた。WiMAXルータを介してWiMAXを喋るケースにはこのドライバは関係ない https://t.co/ZyZ8W4wt7C」 / Twitter
- WiMAX Support Officially Demoted In Linux 5.11 - Phoronix
LTE
- LTE対応USBドングル PIX-MT100 | 株式会社ピクセラ
- PIX-MT100を接続するとWindowsの反応が悪くなる - ぷろじぇくと、みすじら。 - Misuzilla.org
- ピクセラ、LTE対応USBドングル「PIX-MT100」がファームアップデート - CNET Japan
- 法人向けSIM・高速モバイル通信サービスのIIJモバイル | IIJ
- 520BU | 端末情報 | IIJモバイル サポートサイト
- 520BU | 端末情報 | サプライ | IIJモバイル サポートサイト
- AMP520 - SORACOM 認定デバイス
- M2Mに挑戦するAM Telecom
- 相互接続性試験(IOT) IOT完了済みメーカーブランド通信モジュール・製品 | ドコモビジネスオンライン | NTTドコモ
- modulelist.pdf
- 品質 4G LTE モジュール & 3G 変復調装置モジュール 製造元
- 第839回:PS-LTE とは - ケータイ Watch
- 第853回:EVS とは - ケータイ Watch
- Enhanced Voice Services - Wikipedia
- Enhanced Voice Services - Wikipedia
- スマホの通信規格「4G/LTE」「5G」でユーザーになりすまして通信に介入できる脆弱性が見つかる - GIGAZINE
- ピクセラ、LTE対応のUSBモデムを秋に発売 - PC Watch
- LTE対応 USBドングル(PIX-MT110) - 仕様 | 株式会社ピクセラ
5G
- 報道発表資料 : (お知らせ)5G標準仕様策定が完了 | お知らせ | NTTドコモ
- 【笠原一輝のユビキタス情報局】MWC 18で見えてきた5Gを巡るIntelとQualcommの熱いつばぜり合い - PC Watch
- NOKIA、5G特許で端末1台につき3ユーロのライセンス料 - PC Watch
- 【やじうまPC Watch】豪政府、Huawei/ZTE両社を5Gネットワーク供給から排除 - PC Watch
- トランプ大統領、米連邦政府機関でのZTEおよびHuawei製品使用禁止令に署名 - ITmedia NEWS
- ドコモの3Gは2020年代半ばに終了へ 5Gで2023年までに1兆円を投資 - ITmedia Mobile
- Rockridgeさんのツイート: "5Gについて、「(TCP輻輳制御方式として)CUBICの方がBBRよりも一般には高速で通信可能」「HTTPはTCPセッション数を増やすと速くなる」「QUICは帯域を限界まで使える可能性があるが不明な挙動も」。 / “HTTP a…” https://t.co/4W2uBcH5Rh"
- 【イベントレポート】FibocomがIntel製5GのM.2モジュールを年末までに出荷 ~次世代Xeon Dの開発コードネームはHewitt Lake - PC Watch
- 【山田祥平のRe:config.sys】5Gネットワーク始動、その万感の想い - PC Watch
- AppleとQualcomm和解で、Intelがスマホ向け5Gモデムから撤退 - PC Watch
- いろいろ世界初。MediaTeckの5G対応チップはQualcommの良きライバルになりそう | ギズモード・ジャパン
- Intelが5Gモデム搭載ノートPCの実現に向けMediaTekと協業 - PC Watch
- 中国が「Huaweiと5G契約しないと貿易協定を締結しない」と外国の首脳を脅迫していたと判明 - GIGAZINE
- 次世代通信「5G」に通話の傍受や位置情報の特定が可能になる脆弱性が発覚 - GIGAZINE
- MediaTek、Intel PC用の5Gモデム「T700」 - PC Watch
- 5G携帯のはなし(1)|Wireless・のおと|サイレックス・テクノロジー株式会社
- 5G携帯のはなし(2)|Wireless・のおと|サイレックス・テクノロジー株式会社
- 5G携帯のはなし(3)|Wireless・のおと|サイレックス・テクノロジー株式会社
6G
- NTTが「6G」向け通信技術を開発、5G超え「シャノン限界」まで高速化 | 日経 xTECH(クロステック)
ケータイ Watch
- 第604回:「ucode」 とは - ケータイ Watch Watch
- 第765回:デュアルスタンバイ とは - ケータイ Watch
- 第796回:デュアルアクティブ とは - ケータイ Watch
- 第816回:UDCとは - ケータイ Watch
- 第824回:プロビジョニングとは - ケータイ Watch
- 第826回:0AB~J番号 とは - ケータイ Watch
- 第845回:RCS(Rich Communication Services) とは - ケータイ Watch
- 第847回:iSIMとは - ケータイ Watch
- 第849回:マルチプロファイルSIMとは - ケータイ Watch
- 第856回:+メッセージ とは - ケータイ Watch
- 第868回:クラウドSIMとは - ケータイ Watch
- 電波法改正案、電波利用料を大幅見直し - ケータイ Watch
- 電波法改正案、技適なしでも試験利用は可能など一部緩和 - ケータイ Watch
Wi-Fi
Wi-Fi 6(IEEE802.11ax)
- 【NW未来予想図01】無線LANは11axが主流に。光並み20ギガWi-Fiも | ビジネスネットワーク.jp
- 第848回:IEEE802.11ax とは - ケータイ Watch
- 速度は11acの倍、11ax対応のWi-Fi子機向けチップ「WCN3998」、Qualcommが発表 - INTERNET Watch
- 802.11axの呼称が「Wi-Fi 6」に、11acは「Wi-Fi 5」、11nは「Wi-Fi 4」 - INTERNET Watch
- 次世代高速無線LAN規格「11ax」について
- 【Wi-Fiルータ】次世代規格IEEE 802.11axの無線通信に対応した機器まとめ - 踊るびあほりっく
- 無線LANに11axが必要になった理由 | 日経 xTECH(クロステック)
- IEEE 802.11ax - Wikipedia
- _pdf
- 最新規格「IEEE802.11ax」がやってきた!最新無線LAN事情 - IT、IT製品の情報なら【キーマンズネット】
- IEEE802.11ax | IoT
- Wi-Fi 6(11ax)搭載拡大へ、2023年にWi-Fiチップ出荷の約3分の1に達すると予測 - INTERNET Watch
- CES 2019で見かけた「Wi-Fi 6」(802.11ax)対応製品【CES 2019】 - INTERNET Watch
- 無線LANも2.4Gbpsに。Intel、Wi-Fi 6モジュールを出荷開始 - PC Watch
- 【周波数帯を拡張するWi-Fi 6E】Wi-Fi 6Eの6GHz帯、2019年後半に欧米で免許不要利用にメド【ネット新技術】 - INTERNET Watch
- 6GHz帯の無免許利用をFCCが承認、高速な無線LAN新規格「Wi-Fi 6E」が使用可能に - GIGAZINE
- アイ・オー、1万円切りのWi-Fi 6対応無線LANルーター - PC Watch
- 免許なしで使える6GHz帯まで拡張した「Wi-Fi 6E」の認定プログラムがスタート - GIGAZINE
- 世界初のWi-Fi 6対応のUSB接続子機、ASUSとD-Linkが発表【CES 2021】 - INTERNET Watch
- 10GのSFP+はどれぐらい高速なのか?Wi-Fi 6対応ルーターASUS「RT-AX89X」使ってみた&速度実測レビュー - GIGAZINE
Wi-Fi 7
- Kazuho OkuさんはTwitterを使っています 「HD-PLCのTCPのがUDPより遅い問題、電力線ネットワークだから半二重で、半二重だからackと帯域の奪い合いになるだろ、って言われたら、そりゃそうですなってなるけど、ぱっと思い当たらないあたりL2の知識が足りない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「Wi-fi も同様の問題ありそうだな、と思って調べたら、ちょっと古い論文だけど 802.11a で ack 圧縮してパフォーマンス改善するって報告があった https://t.co/JLBtQDkh5Q https://t.co/MKCnprIe1s」 / Twitter
- atc14-paper-salameh.pdf
- Kazuho OkuさんはTwitterを使っています 「なるほど Wi-fi の全二重通信は次世代である Wi-fi 7 で入るかもと https://t.co/WDACjgngD9」 / Twitter
- Wi-Fi 7: The Next Generation of Wi-Fi Technology | u-blox
IEEE802.11ay
- IEEE802.11ay | IoT
- IEEE 802.11ay - Wikipedia
- www.ieee802.org/11/Reports/tgay_update.htm
- IEEE 802.11ay、802.15.3eで何が変わる?ミリ波帯超高速無線通信 - IT、IT製品の情報なら【キーマンズネット】
- 多様な周波数帯を活用した性能拡大に向けた取り組み
- 000168907.pdf
- 研究会 - IEEE802.11ayに向けたCMOSミリ波トランシーバーに関する研究
Mesh
- 「Wi-Fi CERTIFIED EasyMesh」発表、異なるベンダー間でもメッシュを構築できる製品を認証 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第1回)Wi-Fiにおけるメッシュネットワークの必要性【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第2回)Wi-Fiメッシュネットワーク標準規格「IEEE 802.11s」、策定までの流れと採用技術【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第3回)Wi-Fiメッシュで通信コストを最小化する仕組み、「IEEE 802.11s」の採用技術【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第4回)Wi-Fiメッシュネットワーク標準規格「IEEE 802.11s」、策定までの流れと採用技術【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第5回)Wi-Fiメッシュの主流はQualcomm「Wi-Fi SON」へ、「IEEE 802.11s」に準拠せず【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第6回)続々登場するQualcomm「Wi-Fi SON」採用製品は相互非互換、Wi-Fi Allianceは「EasyMesh」を発表【ネット新技術】 - INTERNET Watch
- 2017年度のベスト5wifiメッシュネットワークシステムに関してお読みください
- 最高のメッシュWi-Fiルーター 2018版
- メッシュ ネットワークとは - Google Wifi ヘルプ
- Google Wifi を使用したメッシュ ネットワークの仕組み - Google ストア
- Google Wifi vs. deco M5 メッシュ対応Wi-Fiルーター徹底比較 (1/6) - ITmedia PC USER
- ASUSのメッシュルーター「Lyra mini」で自宅Wi-Fi環境が改善するかテスト:旅人目線のデジタルレポ 中山智 - Engadget 日本版
- 【メッシュWIFIシステム】Google WiFiと中継機やルーターとの違いを比較。おすすめ機種も。 | モノログ.fun
- メッシュWi-Fiの基本的な仕組みと特徴を理解しよう|MacFan
- 「メッシュWi-Fi」で家中どこでも快適Wi-Fi環境を実現
WPA3
Twitter
- Eijiro Sumiiさんのツイート: "本当に(←そればっか)、「無線LANの暗号化意味ない」は広まってほしい… "
- アナネコさんのツイート: "WPA-PSKでL2レベル暗号化していても、パスワードを共有している場合は簡単にそれぞれのセッション鍵を計算することができてL2レベルの暗号化が無意味になるんですよ。って研修でやるのに買ったやつ。"
- Eijiro Sumiiさんのツイート: "本当に(略)、「https (SSL/TLS)使う」のほうがはるかに重要 https://t.co/IessKQmFmc"
- アナネコさんのツイート: "ちなみにL2の暗号化が破られるから危険!という主旨ではなく、L2の暗号化なんてあてにならんのだから重要な通信は上のレイヤーで暗号化して改竄検知しましょう!というお話をしました。"
- Eijiro Sumiiさんのツイート: "パスワード共有してたら暗号云々以前に偽アクセスポイント立てればもっと簡単に盗聴・改ざんし放題だし。"
- Eijiro Sumiiさんのツイート: "https://t.co/kuRAuKXj8Q 「利用者を特定少数に制限したい場合」「管理者側にとっては」無線LANに暗号化パスワードつける意味あります。念のため。"
- Eijiro Sumiiさんのツイート: "誤解している例:https://t.co/M05PCQqkZz"
- Eijiro Sumiiさんのツイート: "HTTPSを使うとかブラウザをアップデートするとか本当に必要な対策ではなく、「暗号化されていないWi-Fiがある」から「利用を控える」は、被災者に誤った不便を強いる呼びかけでは… https://t.co/IjWX8QuTih"
- Eijiro Sumiiさんのツイート: "https://t.co/1eL3b1FhHT 記事が消えてた。熊本県警の「呼びかけ」。"
- 第863回:WPA3 とは - ケータイ Watch
- Wi-Fi Alliance、次世代無線セキュリティ「WPA3」 - PC Watch
- Wi-Fi Alliance、Wi-Fiセキュリティの新規格「WPA3」発表 | マイナビニュース
- Wi-Fiパスワードを破る新たな攻撃手法が見つかる--「WPA」「WPA2」を無効に - ZDNet Japan
- Wi-Fiは将来的に「WPA3」必須に、Wi-Fi Allianceが新たな認定制度をスタート - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第7回)Wi-Fi最初の暗号化規格「WEP」、当初の目論見は“有線LAN同等のセキュリティ”【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第8回)Wi-Fiの暗号化は「WPA」から「802.11i」を経て「WPA2」へ【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第9回)2003年までの実装が必須だった「WPA」で採用された「TKIP」の4つの特徴【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第10回)暗号化方式に「AES」を採用した「IEEE 802.11i」や「WPA2」、11n普及とともに浸透【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第11回)WPA/WPA2の脆弱性“KRACKs”、悪用のハードルは?【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第12回)WPA3は「SAE」採用で鍵の推測が不可能に、KRACKsで悪用の穴ふさぐ、2018年末から登場?【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第13回)SSID&パスフレーズをボタンを押してやり取りする標準規格「WPS」、各社規格の乱立に終止符?【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第14回)ボタンを押すとSSID&パスフレーズはどうやってやり取りされる? 「WPS」の接続手順【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第15回)SSID・パスフレーズ交換の標準規格「WPS 2.0」、「WPS 1.0」の脆弱性を解消【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第16回)認証不要でWi-Fi通信の傍受を不可能に、フリーWi-Fi向け新規格「Wi-Fi Certified Enhanced Open」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第17回)フリーWi-Fi向け新規格「Wi-Fi Certified Enhanced Open」、盗聴の恐れがある通信路で秘密鍵を安全に共有【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第18回)Passpointの仕様である「Hotspot 2.0」のベースとなった標準規格「IEEE 802.11u」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第19回)国内キャリアも採用のホットスポット提供指標「WISPr」、「IEEE 802.11u」と一本化へ【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第20回)ホットスポットでの認証の問題を解消した「HotSpot 2.0」、IEEE 802.11uやWISPr 1.0/2.0に欠けた要素を追加【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第21回)Wi-Fiホットスポット接続規格「Passpoint」、高速なLTEの普及で拡大せず【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第22回)スマホでQRコードを読み取り、ほかの機器をWi-Fi接続する「Wi-Fi Easy Connect」、画面やカメラがない機器を接続可能に【ネット新技術】 - INTERNET Watch
- Wi-Fiセキュリティの新規格「WPA3」に脆弱性が発見される - GIGAZINE
- Wi-Fiセキュリティ新規格「WPA3」に脆弱性、登場から1年経たずに発見される - INTERNET Watch
- Dragonblood: Analysing WPA3's Dragonfly Handshake
- Wi-Fiセキュリティ新規格「WPA3」にWi-Fiのパスワードが漏れる新たな脆弱性が発見される - GIGAZINE
- Wi-Fi 6の認定プログラム「Wi-Fi CERTIFIED 6」開始。WPA3が必須に - PC Watch
INTERNET Watch
- Wi-Fiルーターのサポート期間っていつまで? 国内メーカー4社に聞いてみた - INTERNET Watch
- 無線LANの5.2GHz帯(W52)、屋外利用を可能に、電波法施行規則を改正へ - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第23回)Wi-Fiを利用してVoIPを実現する音声伝達向け規格「Wi-Fi CERTIFIED Voice-Personal」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第24回)Wi-Fi子機同士を直接接続する「Wi-Fi Direct」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第25回)高精度の屋内測位機能を提供する「Wi-Fi CERTIFIED Location」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第26回)Wi-Fiで100μs精度の時刻同期ができる「Wi-Fi CERTIFIED TimeSync」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第27回)公衆Wi-Fiアクセスポイント向けの「Wi-Fi CERTIFIED Vantage」、11ac+PassPointから拡充へ【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第28回)「Wi-Fi CERTIFIED Agile Multiband」、ネットワーク内の移動に伴うローミングなどの対応をまとめて規定【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(第29回)ESSIDの異なるWi-Fiへの接続を高速化する「Wi-Fi CERTIFIED Optimized Connectivity」【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(番外編1)11acから11axへの移行は2019年末から2020年初頭~Ruckus Networksインタビュー【ネット新技術】 - INTERNET Watch
- 【利便性を向上するWi-Fi規格】(番外編2)11axはCBRSとあわせて伸びる分野、その先には5Gも~Ruckus Networksインタビュー【ネット新技術】 - INTERNET Watch
脆弱性
FragAttacks
- FadisさんはTwitterを使っています 「FragAttacks: 同一のWiFiネットワーク内にいる攻撃者が対象とアクセスポイントの間が暗号化されていても対象に平文のパケットを食べさせる事が出来る脆弱性。WiFiの仕様上の問題と多くの機器で見られる実装の問題の合わせ技で、WPA3を含む全ての暗号化を乗り越えられる https://t.co/u5ACPdHR6k」 / Twitter
- FragAttacks: New Security Vulnerabilities Affecting WiFi Devices, 12 CVEs Issued - Phoronix
- FadisさんはTwitterを使っています 「今日のWiFiは性能向上のために小さいパケットを束ねて送るframe aggregationを備えているが、束ねているかどうかを示すフラグは完全性の対象になっておらず攻撃者が書き換え放題で、これにいろんな状況で平文パケットを機器が受け取ってしまうバグが組み合わさって攻撃者がパケットを挟めるようになる」 / Twitter
- FadisさんはTwitterを使っています 「平文でやりとりするしかないハンドシェイクにいきなりframe aggregationでデータのパケットをくっつけて送るとデータが平文でも食べちゃう機器が結構あるの、面白い」 / Twitter
- 事実上ほぼ全てのWi-Fiデバイスに内在する脆弱性「FragAttacks」が公開される、ユーザー名やパスワードの流出、PCの乗っ取りも可能 - GIGAZINE
- FadisさんはTwitterを使っています 「FragAttacks、攻撃の足掛かりになってるのがWiFiの仕様自体の問題だから、WiFi全部ダメだー!みたいに言われてるのが散見されるけど、これだけだと暗号化されたパケットを捏造できないと攻撃できないので、平文食べちゃうWiFiデバイスの方が何とかなったらとりあえず脅威ではなくなりそう」 / Twitter
- FadisさんはTwitterを使っています 「雑なIoT機器もWiFi喋ってる時代にそれをやるのが結構大変な話ってのはあるだろうけど」 / Twitter
- Wi-Fi通信を盗み見る脆弱性「Kr00K」が発見。MacやiPhone、Raspberry Piなど多くのデバイスが対象に - PC Watch
- iPhoneやGalaxyなど10億を超えるWi-Fi端末に通信を傍受される脆弱性「Kr00k」が存在すると判明 - GIGAZINE
- スマホ・PCなどほぼすべてのWi-Fi機器に影響があるWPA2自体の脆弱性「KRACK」とは、そして対策は? - GIGAZINE
- mjg59 | Wifi deauthentication attacks and home security
- 無線LANルーター|MZK-MF300HP2|PLANEX
- WN-AX1167GR | Wi-Fi(無線LAN)ルーター | IODATA アイ・オー・データ機器
- TL-WPA4220KIT | 300Mbps AV600 PLC Wi-Fiエクステンダーキット | TP-Link Japan
- 第880回:Wi-Fi CERTIFIED Vantage とは - ケータイ Watch
- 第881回:Wi-Fi 4/5/6 とは - ケータイ Watch
- KRACKのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- WoWのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- アイ・オー、4,000円を切る一人暮らし向けの無線ルーター - PC Watch
- アイ・オー、税別5,500円のIEEE 802.11acルーター - PC Watch
- 無線LANのスペクトルを6GHz帯に拡張した「Wi-Fi 6E」 - PC Watch
- Wi-Fiのパスフレーズを「パケットを食べる」ことで解析する電子ペットキット「Hash Monster」 - GIGAZINE
- 約15年前の「無線LANルーター」が今でも販売され続けている理由とは? - GIGAZINE
- ランダム ハードウェア アドレスを使う理由と方法
- わかめ@毎日猫がいるさんはTwitterを使っています: 「Pixel 4になってからなぜか会社のシステムにMACアドレス登録してもWi-Fi打刻できなくなってて ??? ってなってたんだけど、MACアドレスをAPごとにランダマイズする機能がAndroid 10からデフォルトオンに…! https://t.co/Fxtih3NiZn」 / Twitter
- Privacy: MAC Randomization | Android Open Source Project
- わかめ@毎日猫がいるさんはTwitterを使っています: 「ていうかMACアドレスがソフトウェア的にランダムに変わるのってすげーな。いいのか?(プライバシー保護的にはOKなんだろうけど)」 / Twitter
- そな太@Swift始めましたさんはTwitterを使っています: 「@vvakame MACアドレスはブロードキャストが届く範囲でユニークであれば良いので問題ないです(ブロードキャストドメインを超えて利用されることはないため) 仮想環境のMACアドレスも本物ではなかったりしますよね」 / Twitter
- わかめ@毎日猫がいるさんはTwitterを使っています: 「@sonatard たしかに。なるほどなぁ。」 / Twitter
- FadisさんはTwitterを使っています 「物理的に何かを所有していることを利用者が本物であると考える根拠としてWi-Fiの利用者を制限したい場合、EAP SIM認証というのがあってな」 / Twitter
- Virtual WiFiとSoftAP - Google 検索
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「無線アクセスポイント(AP)で 2.4GHz「デュアルチャネル機能」を有効にすると、古め2.4GHz 11n対応機器から全てのAPが見えなくなる現象発生…Atermのヘルプにも出ていた。 https://t.co/pG1gCpAFyx」 / Twitter
- デュアルチャネル|機能詳細ガイド
Raspberry Pi
Wi-Fi
- Raspberry Pi Zero Wをアダプタ不要でセットアップする - Qiita
- USB OTGを使ったRapsberry Pi Zero WH のセットアップ - Qiita
- OTG(On-The-Go)化した Raspberry Pi zeroをインターネット接続する! - Opensourcetechブログ
- Raspberry Pi ZeroをUSBケーブル1本で遊ぶ | Japanese Raspberry Pi Users Group
- RaspberryPiZeroをUSBケーブルでセットアップ
- DSAS開発者の部屋:USBポートに挿すだけでインターネット接続を乗っ取るガジェットを作ってみた
- ヘッドレスRaspberry Pi Zero w(h)のネットワーク初期設定やコンソールやUSB Gadget/Ethernetなどについてメモ - uzullaがブログ
- Windows 10でCANDY Pi LiteとRaspberry Pi Zero... | CANDY LINE Blog
- Raspberry Pi Zero /W で USB ケーブルで Windows に接続 | sakisan's cafe
- Raspberry Pi 4の「特定の解像度でWi-Fiが不安定になる」問題を実際に検証してみた - GIGAZINE
- Raspberry 3B+でWi-Fiルータを作った - Plonk123の日記
News
- 【西川和久の不定期コラム】「Raspberry Pi3 Model B」で遊んでみよう! Part 1 ~OSのインストールから環境構築まで軽く試す編 - PC Watch
- 【西川和久の不定期コラム】「Raspberry Pi3 Model B」で遊んでみよう!Part2 ~GPIO入門1。ポートのオン/オフとステータス取得編 - PC Watch
- IEEE 802.11acやGbEをサポートした「Raspberry Pi 3 Model B+」、35ドル ~SoC改良により高負荷継続時の性能も向上 - PC Watch
- ケイエスワイ、技適取得の「ラズパイ3 Model B+」を販売開始 - PC Watch
- SDカードなしで運用できるRaspberry Pi最新モデル発売 | マイナビニュース
- Raspberry Pi用のvSphere ESXi仮想化ハイパーバイザ、VMwareがプロトタイプを発表 - Publickey
- 25ドルの「Raspberry Pi 3 Model A+」が発表 - PC Watch
- Raspberry Pi 4 Model Bリリース! | Japanese Raspberry Pi Users Group
- USB 3.0初搭載の「Raspberry Pi 4 model B」が登場 - PC Watch
- Raspberry Pi 4 Model Bを見る! | Japanese Raspberry Pi Users Group
- 技適対応の「Raspberry Pi 4 Model B 4GB版」が発売 - PC Watch
- 8GBのRAM搭載で64ビット対応のRaspberry Pi 4が登場、標準OSも64ビット版がリリース - GIGAZINE
- Raspberry Pi 4ベースの「Compute Module 4」発売 - PC Watch
- 1日数十円から試せる“IoT用AIアプリのApp Store”拡大へ、Ideinが20億円調達 | DIAMOND SIGNAL
- Ubuntu 20.10がRaspberry PiでLinuxデスクトップを提供
- 第646回 Raspberry PiをIoTデバイスとして活用できるUbuntu Core:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- Ubuntu 20.10がフルデスクトップとマイクロクラウドをRaspberry Pi4上で実現
- 30W給電のPoE+に対応した「Raspberry Pai PoE+ HAT」 - PC Watch
落合陽一
- エヌユルさんのツイート: "亀ツイートだけど 落合陽一がPEZY擁護で金子を叩いてたが HPC素人の私でもRaspberry Piを繋いて並列処理キタコレとか言ってた人と同じサイドに立ちたくないので早く落合陽一がはPEZYを叩く側に回ってほしい"
- 闇ときどき豚さんのツイート: "@tanakh これです https://t.co/v85M6OV0CB"
- 落合陽一/Dr.YoichiOchiaiさんのツイート: "ラズベリーパイゼロは今年の衝撃ランキングでもだいぶ上位だったな.1GHz・512MBメモリの600円.10台買っても6000円,100台で6万円.1000台買えば,メモリだけで500GBだし,CPU1000個.並列処理キタこれな感じ.授業で配れる価格だし,これはステージ変わるわ."
- Hideyuki Tanakaさんのツイート: "ま、まじかあ…(´・_・`) https://t.co/yVyoCrvh2m"
- opensorterさんのツイート: "#人工知能にとても詳しい落合陽一… "
- アムダールの法則 - Wikipedia
- Amdahl's law - Wikipedia
- Raspberry Pi - Teach, Learn, and Make with Raspberry Pi
- Raspberry Pi - Wikipedia
- Raspberry Pi - Wikipedia
- Raspberry Pi3を無線LANコンバータにする -blog SkyofFantasy-
- Raspberry Piでイーサネットコンバータを作る
- Raspberry Piで無線LAN
- Raspberry Pi ZeroとUSBオンリーでLチカまで - akimachoのはてなブログ
- Raspberry Pi でパケット遅延器
- Fadisさんのツイート: "RasPiが使ってるCortex-A7やCortex-A53というARMプロセッサは元々「高速なARMプロセッサの横にくっつけて、速い(けど消費電力がでかい)方のプロセッサを動かす程ではない処理はこのプロセッサで片付ける」ことで主にシステムの待機時の消費電力を抑える為に作られたプ… https://t.co/RQk0AYxBVJ"
- Fadisさんのツイート: "このためこれらのプロセッサは高速なARMプロセッサから急に切り替わっても大丈夫なように高速なARMプロセッサの全命令を一応受け付けられるようになってる。ただ、それらを高速に処理できるように実装しているとは一言も言っていない。SIMD命令とか処理するデータ数に比例して時間がかかる"
- Fadisさんのツイート: "ところがCortex-A7やA53「だけ」を積んだSoCを作ると小さいダイでフルなLinuxが(全く性能は出ないが)動くSoCが作れてしまう為、これらを単体で積んだSoCがたくさん出てきた。イマドキの破格のARM Linuxボードの実現にはこうした斜め上のSoCが大きな役割を果た… https://t.co/RsHsRvP49E"
- Raspberry Piに最適な小型ディスプレイ「Quimat 3.5インチタッチスクリーンディスプレイ」を素のRaspbianからセットアップする方法 - karaage. [からあげ]
- Raspberry Pi で使えるポータブルモニタの決定版が出てた(タッチスクリーン付き、GPIOを占有しない、ケース付き、約3000円) - nomolkのブログ
- Fmstrat/diy-ipmi: A DIY IPMI / IP KVM system utilizing the Raspberry Pi
- Raspberry Pi 4のUSB Type-Cポートが規格に沿っていない話の詳細
- A.Amag🌧️さんはTwitterを使っています: 「ラズパイの初期設定のときにHDMIのモニタが要るけど、そんなことのためだけにHDMIモニタ用意するの面倒だし、なんかいい手はないかなと思って、HDMIをUSBでキャプチャするやつを買ってみた。ノートPCのウインドウの1つがHDMIモニタになる。これ便利だわ。」 / Twitter
- t157さんはTwitterを使っています: 「後輩が担当しているラズパイ案件で相談を受ける。 SPI1を使った通信においてMODE1の通信が出来ないとの事。 色々と調べてみると、どうもCPUのバグ(エラッタ)引っかかったっぽい。 またかよ。ラズパイ。 orz」 / Twitter
- t157さんはTwitterを使っています: 「どうしてこうも、ブロードコムは、I2Cでもバグを抱えて、SPIでもバグを抱えてたりと、色々と問題を抱えているのに修正しないのかね? コミュニティのログを見るとブロードコムの部署を解散済みにしているようで、そんな所の製品を使うっていうのもどうしようもねえ製品だよな。と思ったり。」 / Twitter
- norio@ゆるふわ系(希望)さんはTwitterを使っています: 「UrJTAGなるUSB Blaster (+Raspberry pi)で使えるフリーの JTAGバウンダリースキャンツールがあるみたい。 お手軽でいいかな https://t.co/zAob4g6JtJ https://t.co/DyqQ6zgk7E」 / Twitter
- UrJtagを使う - PukiWiki
- UrJTAG raspberry blaster - Google 検索
- Makoto Kato ︎︎さんはTwitterを使っています: 「やっぱりRasberry Pi 4でもARM Crypto extensionは入ってないのね。ライセンスフィーの話だろうけど」 / Twitter
- Raspberry Pi Shop by KSY
- 日本で出たRaspberry Pi 4と電源問題とファームウェアの件 - あっきぃ日誌
- Raspberry Pi 4が起動しない(モニタが映らない)場合の設定方法 - Qiita
- BCM2711について - Qiita
- BareMetalで遊ぶ Raspberry Pi 4 - GIC v2編-/BareMetal Raspberry Pi 4 - GICv2 - - Speaker Deck
- FadisさんはTwitterを使っています 「初期のRasPiに使われているSoCの割込みコントローラはマルチコアに対応できる作りになっていなかった為、マルチコアになったRasPi2では割り込みコントローラが複数のっていた #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「これがRasPi4では複数のプロセッサと対面できる単一のGICv2に統合された #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「ベアメタルでRasPiを使う為にGICv2の初期化を手でやりたい → UART入力の割り込みを取れる状態を目指す #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「GICはSGI PPI SPIの3種類の割り込みをまとめて扱う石で、割り込み番号は3種類の割り込みの中でユニークな値を使う為、PPI SPIが使う割り込み番号は0から始まっていない #kernelvm」 / Twitter
- Idein Ideas — GPGPUの観点から見る VideoCore VI と VideoVore IV の違い
- RaspberryPiのVideoCore IV(GPU)を使ってOS無し(ベアメタル)からポリゴン出して遊ぶ - Qiita
- 1万円以内でPCをOS起動前から遠隔操作できるシステムを構築する方法 - GIGAZINE
- 第624回 Raspberry Pi 4にデスクトップ版Ubuntuをインストール:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第643回 Raspberry Pi 4でデスクトップ版Ubuntu 20.10を使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- Raspberry Pi 4 のセットアップをしてみた - uchan note
- Raspberry Piは本当に壊れやすいのか
Li-Fi
- FadisさんはTwitterを使っています 「LinuxカーネルにLi-Fiデバイスのドライバが入りたがっている。Li-FiはPLCに繋がったLED電球が光OFDMで変調された信号を可視光でデバイスに届ける事で下り1Gbpsの通信を行う無線通信技術。殆ど回折しないが電球は部屋中に光が届くように置かれている事を期待している https://t.co/KkawaLyTXC」 / Twitter
- Linux Patches Updated For Light-Based Networking With pureLiFi Driver - Phoronix
TPM・Microsoft Pluton
- だんぼーだよさんはTwitterを使っています 「みんな TPM なんか付いてないって言ってるけど、UEFI で有効にできる場合あるから確認してね。独立チップのイメージでいると思うけど、最近は Firmware TPM が Intel PTT / AMD GuardMI で使えるよ。マザーボードの TPM 用ピンヘッダは埋めなくていいです。BTO で選択肢なくても設定で有効化できます。 https://t.co/1VsuaXJoFY」 / Twitter
- 🎒♨️ 👀(6★)さんはTwitterを使っています 「Intel PTTを有効にすると通るな、ほんとは対ダンパ性とかでファームウェアで鍵保存しちゃいけない気がするけど https://t.co/k0eTe8en6T」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「まあ Intel PTT も論理ロジックだけで TPM 実装してるわけでもないんだろうから、そういう意味では Intel も AMD も独立したサブプロセッサでファームウェア的に TPM 機能を実装してる、という温度感ではだいたい同等なのかな。」 / Twitter
- TPMのファームウェアバージョンを確認する方法 - FMWORLD(法人):富士通
- microsoft/ms-tpm-20-ref: Reference implementation of the TCG Trusted Platform Module 2.0 specification.
- 【特集】Windows 11で必須になった「TPM 2.0」って何?TPMの役割や確認方法を紹介 - PC Watch
- Microsoft、TPMに代わるCPU内蔵型セキュリティチップ「Microsoft Pluton」 ~AMD、Intel、Qualcommと共同開発 - PC Watch
- MicrosoftがWindows搭載PCを保護する新型セキュリティチップ「Microsoft Pluton」を発表 - GIGAZINE
- 一部PCは「TPM 2.0をサポートしていないのにWindows 11がインストールされている」と判明、中国やロシア向けの製品か - GIGAZINE
- MicrosoftがWindows 11で必須にしている「TPM」とは?なぜ必須なのか? - GIGAZINE
- 次のPC買い換えはPluton搭載CPUが鍵か - 阿久津良和のWindows Weekly Report | マイナビニュース
- Windows 11のTPM要件はPCビルダーを驚かせたが、BIOSで有効にすることができる|自作.com
- Windows 11、"Special Purpose "システム向けにTPMの必要性を排除して出荷|自作.com
- Windows 11からの排除される:TPMの要求により多くのPCが除外される|自作.com
- Windows 11に必須な「TPM」で保護されたPCから情報を盗み出す手口をセキュリティ企業が解説 - GIGAZINE
- daem0nc0reさんはTwitterを使っています 「ちょっと前にWindows 11で話題になったTPM 2.0ですが、数少ないTPM 2.0の専門書のPDFデータとEPUBデータをApressが公式に公開してくれているので、気になる人はダウンロードして熟読するといいですよ https://t.co/adAGiZrrJA」 / Twitter
- A Practical Guide to TPM 2.0 | SpringerLink
- YurikaさんはTwitterを使っています 「Windows11 セキュリティの話のブログ Plutonが表舞台にどんどん出てきてます https://t.co/jS8vBPU90H」 / Twitter
- Windows 11 offers chip to cloud protection to meet the new security challenges of hybrid work - Microsoft Security Blog
- suzakiさんはTwitterを使っています 「メモ。 MicrosoftセキュリティチップPlutonが2022からPCに付くアナウンス。 Pluton付いたら買うぞ! Windows 11 Security Book: Powerful security from chip to cloud https://t.co/B2o5SvFCOU The Microsoft Pluton security processor will ship with select new Windows PCs starting in 2022.」 / Twitter
- YurikaさんはTwitterを使っています 「Windows 11 Security Book https://t.co/k8TxJRnjAn」 / Twitter
- Windows 11 Security Book_01Oct2021.pdf
ディスプレイ
その他
- LG ディスプレイに貼り付けされていない PC リサイクルマークを無料で申請してみた – What I Know ~ワッタイナ
- LG、第11世代Core搭載PCで発生していた液晶の表示不具合を改善 - PC Watch
- 4K/HDR液晶を使うならWindows 10、Sandy Bridgeの時には難しかった高解像度環境が身近に - AKIBA PC Hotline!
- 4Kの基礎知識① RED社の4Kテクノロジーの変遷 | 4K入門 高精細映像の世界 | Shuffle by COMMERCIAL PHOTO
- 手軽につなげて高性能:時代を先取り! 「USB Type-C拡張機能」対応の新型デバイスを選ぶ (1/2) - ITmedia PC USER
- ITmedia流液晶ディスプレイ講座III:HiDPIやRetinaを誤解してない?――4K時代のディスプレイ選びに欠かせない「画素密度」を理解する (1/4) - ITmedia PC USER
- ドットバイドットとは|dot by dot - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- 【解説】ディスプレイケーブルのコネクタについて - ELECOM WEB SITE!
- 最新ディスプレイ講座――HDMI、DislplayPortから先進のUSB Type-Cまで映像入力インタフェース徹底解説 | EIZO株式会社
- Shirouzu Hiroaki(白水啓章)さんのツイート: "有機EL「テレビ」は、白色発光+カラーフィルタ、主流なのね…RGB発光と思い込んでいた。 3色フィルタは効率1/3=消費電力が大きい理由の一つかな? (白色を含む4色フィルタというのもあるらしい)"
- SODA Noriyukiさんのツイート: "サイズが小さいものはRGB発光、大きいとRGB発光のものは実用化できてなくてすべてがLG電子の白色+カラーフィルタと、サイズによって完全に住み分けされてるっぽいですよね。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "みたいですね。 有機ELなのにカラーフィルタって、やや騙された感がありました(笑)… "
- 16K/60p HDR対応の「DisplayPort 2.0」'20年認証開始。DisplayHDRは有機EL/microLEDにも - AV Watch
- 目を痛めずに作業できる25.3インチの巨大な電子ペーパー製モニターが登場 - GIGAZINE
- 小型・軽量でピクチャーインピクチャー機能やストリーム配信機能を搭載したプロダクションスイッチャー「ATEM Mini Pro」を使ってみた - GIGAZINE
- ファーウェイ、3,840×2,560ドット表示対応でフレームレスの28.2型液晶 - PC Watch
- 24kHz / 15kHz 対応液晶ディスプレイ調査 : まごころせいじつ堂
マルチディスプレイ
- Z87-PRO:オンボード出力とグラフィックカード出力の同時利用(マルチディスプレイ)について
- マルチディスプレイのまとめスタイル修正: Intel IGP
- マルチモニター(マルチディスプレイ)を活用する【液晶モニタの基礎知識】
- マルチディスプレイの方法 パソコン初心者講座
- マザーボードでマルチディスプレイ パソコン初心者講座
- Windows TIPS:ノートPCでデュアルディスプレイの表示設定を変更する - @IT
- 業務効率が一気に上がる、実践!マルチディスプレイ - 余ったディスプレイをつなげばすぐにできる、マルチディスプレイの基本:ITpro
HDMI
HDMI CEC
- ビエラリンク - Wikipedia
- ブラビアリンク - Wikipedia
- Nintendo Switch発売、ソフト更新でHDMI CEC対応。FB/Twitter投稿も - AV Watch
- デジモノ家電を読み解くキーワード:「HDMI CEC」――AV機器メーカーによる囲い込みポイント - ITmedia LifeStyle
- HDMI CECとはテレビやレコーダーなどの機器間で制御信号をやり取りするリンク機能 | ホームシアターナビ
- HDMI - Wikipedia
- HDRフォーマットの伝送に対応したHDMI 2.0aが発表 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】GPUの真の性能を活かすHDRに、2016年からRadeonが対応へ - PC Watch
- HDMI Licensing、2.0規格で定められた新機能を解説 - PC Watch
- HDMI Forum、次期HDMI規格2.0を発表 ~4K@50/60、32オーディオチャンネルなどに対応 - PC Watch
- WQXGA/48bitカラーをサポートした「HDMI 1.3」説明会
- <CES>新規格「HDMI 2.1」を策定メンバーに聞く。 “48Gbps”の意味とは? いまのケーブルは使える? - Phile-web
- [CES 2017]「HDMI 2.1」が規格化。“HDMI版Adaptive Sync”な「Game Mode VRR」や8K/60Hz,4K/120Hz表示などが目玉に - 4Gamer.net
- 「HDMI 2.1」が発表 - 8K/60Hzに対応、新たにゲームモードも | マイナビニュース
- HDMI ケーブルのイーサネット対応と非対応の違い
- 「HDMI 2.0」から「HDMI 2.1」になると一体何が変わるのか? - GIGAZINE
- ARC対応ってなに?
- Fadisさんのツイート: "HDMIにはロゴを表示すると最終製品のロイヤリティが下がる、という決まりがあって今日多くのHDMI対応製品がロゴを表示してるわけだけど、スーパーファミコンにHDMIって書かれてるのじわじわくる https://t.co/vlqJdNajIN"
- 10Kまで対応する「HDMI 2.1」が公開。ゲーム向け同期機能など搭載 - PC Watch
- 【西川善司の大画面☆マニア】HDMI 2.1とは何か。8K/60Hzや動的HDRだけでない、次世代ディスプレイにもたらす変化-AV Watch
- 【西川善司の大画面☆マニア】8Kだけじゃない! ブラックアウト回避やeARC、あなたの知らないHDMI 2.1の世界-AV Watch
- 4K/8K映像対応で“曲げても踏んでもOK”なHDMI光ケーブル。56Gbps伝送も - AV Watch
- 「HDMI 2.0」で一体何が新しくなって大幅に強化されるのかまとめ - GIGAZINE
- 対応テレビの準備も完了? 「HDMI 2.1」最新動向をHDMI Licensing CTOに聞く - PHILE WEB
- HDMIサラウンド音声フォーマットを手動で設定した場合の挙動の調査 - .mjtの日記復帰計画
- SD-HDSPRL【Kyo-ons SEPARATOR】
- Dolby Digital Live を手作りしたい実験 - Qiita
- 取り回ししやすい「HDMI 2.1」対応ケーブルはどれなのか一斉比較レビュー - GIGAZINE
- FadisさんはTwitterを使っています 「HDMI 2.1は仕様をHDMI Adoptersのメンバー以外に公開することを認めておらず、オープンソースドライバを実装する事は間接的に仕様を公開していると判断される恐れがあることから、FreeSync等のHDMI 2.1で利用できる筈の機能をオープンソースドライバに実装できない問題の話 https://t.co/iF1NHthY9m」 / Twitter
- HDMI Forum Closing Public Specification Access Is Hurting Open-Source GPU Drivers - Phoronix
- FadisさんはTwitterを使っています 「特に現行のAMDGPUのLinuxドライバは全てオープンソースになっているから、Linux+AMDGPUの組み合わせではHDMI 2.1の機能は使えんので諦めてDisplayPortで繋いでください状態になっている、と」 / Twitter
- HDMI業界の閉鎖体質がオープンソースのGPUドライバーに悪影響を及ぼしているとの指摘 - GIGAZINE
Adaptive-Sync/FreeSync
- GPUとディスプレイを自動同期する機能がDisplayPortに実装 ~テアリングを解消し、消費電力も削減 - PC Watch
- ゲームがよりなめらかに、FreeSyncで最高の描画品質を楽しむ - AKIBA PC Hotline!
- 西川善司の3DGE:AMD,HDR対応の「FreeSync 2」を発表 - 4Gamer.net
- NVidia、ついにAdaptive-Sync/FreeSyncに対応 | スラド ハードウェア
- NVIDIA,「G-SYNC Compatible Monitors」プログラムを開始。Adaptive-Sync対応ディスプレイ12製品でG-SYNCの利用を可能に - 4Gamer.net
- Announcing G-SYNC Compatible Monitors and BFGD Pre-Orders
- GeForce G-SYNC Monitors: Manufacturers & Specs
- AMD、FreeSync Premium ティアを発表、FreeSync 2 HDRをPremium Proにブランド変更 - 自作ユーザーが解説するゲーミングPCガイド
RGBW
- RGBWとは - IT用語辞典 Weblio辞書
- Sony Japan | ニュースリリース | デジタルカメラ向け新開発「RGBW方式」の3型VGA液晶モジュール“WhiteMagic™ ”(ホワイトマジック)※1を商品化
HDR
HDR10+
- HDR10+ License Program
- HDR新規格「HDR10+」対応製品がまもなく。パナやSamsung、ワーナーも対応 - AV Watch
- 【本田雅一のAVTrends】一見地味なHDR新規格「HDR10+」が、多くの消費者に魅力的な体験をもたらすかもしれない - AV Watch
- パナソニックとフォックスがSamsung提案のHDR方式「HDR10+」を推進へ - AV Watch
- SamsungとAmazon Video、HDRの拡張規格「HDR10+」発表。今年後半にコンテンツ配信 - AV Watch
- サムスンとAmazon Video、「HDR10」を拡張した新規格「HDR10+」を発表 - Phile-web
- <IFA>「HDR10+」とは何か、パナソニックがなぜ推進するのか。サムスンと手を組んだねらい - PHILE WEB
DisplayHDR
- Vesa Certified DisplayHDR™
- VESA Defines New Standard to Help Speed PC Industry Adoption of High Dynamic Range Technology in Laptop and Desktop Monitor Displays | VESA
- VESA、DisplayHDR対応確認アプリをMicrosoft Storeで公開 - PC Watch
- VESAがHDR標準「DisplayHDR」策定 PCディスプレイの性能を底上げ - ITmedia NEWS
- VESA,HDR対応液晶ディスプレイの標準規格「DisplayHDR」を発表。対応製品は早ければ2018年に登場か - 4Gamer.net
- VESA、HDRに関する標準規格「DisplayHDR」を策定 ~輝度やコントラスト比などを厳密に規定 - PC Watch
- Samsungの49型ゲーミングディスプレイが、業界初のDisplayHDR 600認定 - PC Watch
- 日本初HDR 1000液晶モニタや4K放送チューナ、痛4K中継車も。「4K・8K機材展」 - AV Watch
- 【PR】1,000nitの高輝度とHDRでゲームはここまで変わる! PhilipsのDisplayHDR 1000対応液晶を西川善司氏が徹底解剖- PC Watch
- High-dynamic-range video - Wikipedia
- Rec. 2100 - Wikipedia
- Hybrid Log-Gamma - Wikipedia
- よくわかる、HDR徹底解説! ガンマカーブの違い | EIZO株式会社
- UHDTV HDR,HLG & WCGを理解する by LightIllusionに関する製品情報|クリエイティブサポートカンパニー Edipit
- 4Kテレビ選びの重要ワードHDR=「HDR10」「Dolby Vision」「HLG」って何? - 価格.comマガジン
- 4K HDRとDolby Visionはどう違うのか? (1) CES 2016で見たホームエンターテインメントの進化 | マイナビニュース
- Dolby Vision方式のUltra HD Blu-rayが'17年発売。ワーナー、ユニバーサルなど - AV Watch
- いま注目の高画質化技術「HDR」とは何か? ドルビーの真野ディレクターに聞く - Phile-web
- HDR10とは? ゾーンとは? Blu-ray Copyはどうなる?「Ultra HD Blu-ray」の詳細を聞く(後編) (1/4) - Phile-web
- 【イベントレポート】NVIDIA、65型の4K/HDR/120Hz/G-SYNC対応となるBig Format Gaming Displaysを提唱 ~8コアCarmel CPU+512CUDAコアのVolta GPUとなるXavierも発表 - PC Watch
- ソニー、Microsoftらがゲーム向けにHDRガイドライン団体「HGiG」を発足 - PC Watch
- Razer PhoneがNetflixのHDR再生に対応 | ガジェット通信 GetNews
- Rec.2020とBT.2020の違いとは
- PCとモニターがHDRへ対応しているかの判別方法
- 【プレイバック2018】液晶テレビ“視野角問題”に終止符? HDR動向とこれから by 本田雅一-AV Watch
- SODA Noriyukiさんのツイート: "HDR は 何nits まで要求するかが大問題ですね… 1000nits のモニターっていうと PG27UQ と UP2718Q の2機種しか候補が残らないような気が…(正しい?)… "
- Fadisさんのツイート: "こっちで探した時もその辺しか見つかりませんでしたね… "
- FadisさんはTwitterを使っています: 「4K HDRで画面が暗くなる問題、以前は扱える色の範囲が狭すぎるからテレビ側で信号に厚化粧してたのが、広範囲の色を扱えるようになったからテレビは信号通りの色を出すようになったけど、撮影設備、放送設備その他の対応が出来てなくて狭い範囲の色がそのまま画面に反映されてるって話なんだよな」 / Twitter
- HDR Ecosystem Tracker update fall 2019
- 半導体/周辺機器 液晶ディスプレイ - PC Watch
- BCNランキング - BCN+R
- 60B4RAR6JP | モニター ThinkVision | 製品情報 | Business with Lenovo
- BenQ 23.8型アイケアディスプレイ GW2480 | BenQ Japan
- 地上・BS・110度CSデジタルハイビジョン液晶テレビ TH-L19C3 詳細(スペック) | テレビ/シアター | Panasonic
- 三菱 ディスプレイ
- 今すぐやるべき「ディスプレイの設定」と「4K以上の高解像度ディスプレイ」に買い替たほうがいい理由 - GIGAZINE
- USB-C対応のモニターが増えているのは何故? | ギズモード・ジャパン
- 【2019年版】USB PDで電源供給!USB-C対応ディスプレイ全75製品まとめ!最強ディスプレイはどれなんだ……? | makkyon web
- Dell、世界初のカラーキャリブレータ内蔵27型4K液晶 - PC Watch
- デル、USB Type-Cで65W供給可能な27型4K液晶 - PC Watch
- LG、ディスプレイ位置が自在に調節可能な4K液晶など2020年モデルを発表 ~4K/144Hz/1ms対応ゲーミング液晶や、Thunderbolt 3搭載製品も登場 - PC Watch
- LG、最大96W給電も可能なUSB Type-C接続対応の31.5型4K液晶 - PC Watch
- LG、HDMI 2.1搭載で4K/120Hz/VRR対応の27型144Hz駆動ゲーミング液晶 - PC Watch
- 【Hothotレビュー】モバイルディスプレイにもE Ink電子ペーパーの波が到来!13.3型の「BOOX Mira」を試す - PC Watch
- BooxのノートPC用E-Ink外付けモニターが発売、25インチが登場|自作.com
プリンタ
ブラザー
- プリンター | ブラザー
- インクジェットプリンター - プリンター | ブラザー
- 【インクジェット/レーザー プリンター】(Windows)今まで印刷できていたのに、突然印刷できなくなった|ブラザー
- 使用済みトナーカートリッジ/ドラムユニット回収リサイクル|サポート情報|ブラザー
- HL-L2360DN | レーザープリンター・複合機 | ブラザー
- MFC-L2750DW | レーザープリンター・複合機 | ブラザー
- 消耗品・オプション | MFC-L2750DW | レーザープリンター・複合機 | ブラザー
- MFC-J960DN-B/W MFC-J960DWN-B/W | インクジェットプリンター・複合機 | ブラザー
- cv_bcld100_jpn_usr_led253047_a.pdf
- 2021-07-27 A4インクジェットプリンター「PRIVIO」12機種新発売|ブラザー
- MFC-J939DN/DWN | インクジェットプリンター・複合機 | ブラザー
- 消耗品・オプション | MFC-J939DN/DWN | インクジェットプリンター・複合機 | ブラザー
- 2019-01-17 「ファーストタンク」シリーズ1機種も追加! 電話機付きインクジェットプリンター「PRIVIO」5機種新発売|ブラザー
- MFC-J1605DN | インクジェットプリンター・複合機 | ブラザー
- MFC-J1605DN | 日本 | ブラザーサポート
- 製品マニュアル | MFC-J1605DN | 日本 | ブラザー
- 消耗品・オプション | MFC-J1605DN | インクジェットプリンター・複合機 | ブラザー
- cv_bcld120k_jpn_usr_c.pdf
- How to obtain Brother SNMP MIB information
- NetDiscover MIB/OID - BROTHER-MIB.mib
- MIBViewerProbes/BROTHER-MIB.txt at master · richb-intermapper/MIBViewerProbes
- BROTHER-MIB
- Free BROTHER-MIB SNMP MIB Download - Free MIB Download - Search MIBs - OiDViEW
- Ruby + Sinatra + SNMPでPX-105のインク残量を取得・表示する - メモ的な思考的な
- 第806回:Mopria とは - ケータイ Watch
- “Google クラウド プリント”が来年末で廃止 ~10年間ベータ版のまま終息 - 窓の杜
- Chromebookが複合機からの直接スキャンなどをサポート - PC Watch
- マイクロソフト、「Universal Print」のパブリックプレビュー開始。プリンタサーバをクラウド化し、プリンタドライバのインストールを不要に - Publickey
- マイクロソフト、「Universal Print」を発表。プリンタサーバをクラウド化し、プリンタドライバ不要、集中管理へ。キヤノンと対応プリンタを共同開発中 - Publickey
- Microsoft、印刷スプーラーのゼロデイ脆弱性に対処するためWindowsの既定動作を変更 - 窓の杜
- 印刷スプーラー脆弱性「PrintNightmare」対策に、ドライバインストール時に管理者権限必須に - PC Watch
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「最近のネットワークプリンタは $ nc printer 9100 < file.pdf だけで印刷できる。CUPSよさようなら。 https://t.co/5ptdbr1saH」 / Twitter
- Bye CUPS: Printing with netcat - by William Blankenship - retrohacker
- 【山田祥平のRe:config.sys】見えるeMarker - PC Watch
- ラベル作りに必要な機能をこれでもかというほど搭載し「ケーブル用ラベル」の作成法も秀逸なテプラの究極形 「『テプラ』 PRO SR-R980」レビュー - GIGAZINE
- 2021年8月16日 "The Universal Operating System"をめざして ―Debian 11 "bullseye"がリリース:Linux Daily Topics|gihyo.jp … 技術評論社
メモリ
News
PC Watch
- 【メモリ屋社長のちょっとタメになるメモリ話】Ryzenで話題になった、メモリの”Rank”って何のこと? - PC Watch
- 【メモリ屋社長のちょっとタメになるメモリ話】メモリモジュールに“SPD”という情報があるのを知っていますか? - PC Watch
- 【メモリ屋社長のちょっとタメになるメモリ話】SPDとマザーボードの関係性 - PC Watch
- DDR4メモリのSPD情報を編集できるツールが発売、センチュリーマイクロ製 - AKIBA PC Hotline!
- JEDEC、低消費電力版DDR5メモリ「LPDDR5」規格を公開 - PC Watch
- 【イベントレポート】Samsung、次世代モバイルDRAM「LPDDR5」で7.5Gbps/ピンの超高速伝送を達成 - PC Watch
- 【福田昭のセミコン業界最前線】NANDの10倍、Intel Optaneの2倍の速度を実現するMRAM SSD - PC Watch
- 東芝メモリ、10月1日より「キオクシア」へ社名変更 - PC Watch
- Intel、クライアント向けPersistent Memoryの実現に向けてMicrosoftと協力 - PC Watch
- JEDEC、次世代DRAM「DDR5」の標準規格を公開 - PC Watch
- SK Hynix、世界初のDDR5 DRAMを発売 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】広帯域と大容量にフォーカスした“第2世代”のHBM2メモリ - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelなどプロセッサベンダーがけん引するHBM3規格 - PC Watch
- SK hynix、1anmプロセス/EUV採用の8Gbit LPDDR4 DRAMを量産開始 - PC Watch
GIGAZINE
- 50年以上前のコンピューター黎明期を支えた「磁気コアメモリ」とは? - GIGAZINE
- メモリの脆弱性を利用してデータを盗み読む「RAMBleed攻撃」が発見される - GIGAZINE
- SSDなどのストレージへの連続アクセスで権限を奪取できる「Rowhammer攻撃」類似のサイバー攻撃が可能 - GIGAZINE
- メモリとストレージの性質を兼ね備える夢のデバイス「ユニバーサルメモリ」がついに実現か - GIGAZINE
- 次世代メモリの標準規格「DDR5」の最終仕様をJEDECが発表、DDR4から何が進化したのか? - GIGAZINE
- Linuxを生み出したリーナス・トーバルズがIntelを厳しく批判、理由は「ECCメモリを死に至らせているから」 - GIGAZINE
- 爆速メモリ技術「3D XPoint」の開発からMicronが撤退、Intelは開発継続の意向を示す - GIGAZINE
- Samsungが業界初となる512GBのDDR5メモリを開発 - GIGAZINE
- DRAMに保存されたデータを改ざんする「Rowhammer」攻撃の対象範囲がメモリ小型化で広がっているとの指摘 - GIGAZINE
- More information on RAMBleed
- ロウハンマー - Wikipedia
- Row hammer - Wikipedia
- 20210313
- NVDIMM Protocol Expands Non-Volatile Memory Options | EE Times
- グーグルの研究が示すメモリエラーの真実--明らかになった高い発生率 - CNET Japan
- 20210522
- Unisantis Unveils Advances in Dynamic Flash Memory - EE Times Asia
- DRAMの代替品を開発。4倍の集積度で高速・低消費電力化を実現|自作.com
- DDR5は2023年までにメインストリーム市場に登場する見込み|自作.com
- ADATA、12,600MTpsの超高速DDR5モジュールを発表|自作.com
- ADATA、DDR5メモリやUSB4対応外付けSSDなど投入 - PC Watch
- サムスン、DDR5-7200 512GB RAMを公開|自作.com
- ZeroPoint Technology AB、ハードウェアベースのRAMデータ圧縮で250万ドルを獲得|自作.com
Twitter
histric-1
- suzakiさんのツイート: "ECC無しの1ペタバイトメモリではsilent errorが 90分ごとに起こる。"
- Fadisさんのツイート: "memtestしたら1bit壊れてるのが見つかった → 1bit壊れてるメモリなら今にも壊れそうなbitがまだあるかもしれない → ヒートガンでメモリを加熱しながらmemtest → ほらさらに3つ出てきた その発想はなかった"
- Fadisさんのツイート: "で、壊れてたbitと壊れそうなbitが限られたアドレスの範囲に入るようにメモリを並べ替えてGRUB2で使ってはいけないアドレスの範囲を指定してデバッグを再開、と つよい"
- Ahmet Alp Balkan (🍖KubeCon)さんのツイート: "This guy heated up his RAM with a heat gun to debug a @golang runtime bug. https://t.co/KKSA7vqfr8 I hereby nominate him to most persistent… https://t.co/glga0uPchs"
- FFFumihiro MMMatsuiさんのツイート: "DRAMのリフレッシュ(抜けていく電荷の補充)ってあるけど確かに人間も風呂入ってリフレッシュしたらなんか電荷がチャージされる感じするな。あれはなかなか的確な名前だな"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "稼働中だったDRAMを液体窒素保存した後、別マシンに挿して、BitLocker、dm-crypt、TrueCryptの鍵を取り出すって、凄いけど誰得な感じも…NSAあたりが使う想定なのかしらん?… "
- Ryota Shioyaさんのツイート: "この論文だと、メモリを引っこ抜いて液体窒素に漬け込んで一時間後に戻したらデータが化けてたのは0.17%だったとかで、思ってた以上に冷やすとデータのこるんだなと言う話もhttps://t.co/xdAjRMdqzA"
- Ryota Shioyaさんのツイート: "この論文だと,エアダスターとかのスプレーで冷やして実行しても結構うまくいってたので,あとはメモリ配置を割り出すあたりを誰かが自動化してしまうと結構お手軽に誰でも実行できてしまって怖いなって気はします… "
- Lest We Remember: Cold Boot Attacks on Encryption Keys | Center for Information Technology Policy
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「DRAMを4KB単位でI/Oしたものと同等性能って話っぽい? 4KB I/O はキャッシュライン単位としては大きいので、巨大VLIWの登場とか無い限り、メインメモリとしては厳しいのかな? それでも、NVDIMM-Pみたいな無理筋よりはずっと良さそう。 ---- https://t.co/nAlXpI2GD6」 / Twitter
- 【イベントレポート】東芝メモリ、DRAMと同等性能のSSDを披露 - PC Watch
- FadisさんはTwitterを使っています: 「NVDIMMが従来の二次記憶と大きく異なるのはそれがブロックデバイスではなくバイト単位での読み書きが出来るという点。NVDIMMはDRAMと同じアドレス空間にマップされ、同じように読む事ができる。書いた内容が永続化された事を保証するには、CPUのキャッシュをflushして、メモリバリアで完了を待てば良い」 / Twitter
- FadisさんはTwitterを使っています: 「NVDIMMはDRAMのように書けるが、DRAMのように書くのは得策ではない。永続化されるという事はデータは書いている最中にアプリケーションがクラッシュしたり電源が落ちたりしても正常であり続ける必要がある為、FSのジャーナルに似た手順でいつ処理が止まってもデータを壊さないようにする必要がある」 / Twitter
- FadisさんはTwitterを使っています: 「NVDIMMのDAXで必要になる処理をまとめたPMDKは複数のライブラリで構成されている。libpmemはOS非依存のmmapとmsyncを提供し、libpmemobjはジャーナルで指定した範囲の値をトランザクショナルに書く仕組みを提供する。libpmemblkはNVDIMMブロック単位でload/store仕組みを提供する」 / Twitter
- FadisさんはTwitterを使っています: 「NVDIMMではファイルの読み書きをユーザ空間で片付けるFilesystem DAXが使えるため、カーネルがオーバーヘッドだからデバイス丸ごとカーネルから奪い取るSPDKと異なり、PMDKによる読み書きとカーネル経由のファイル操作は同じファイルシステム上で共存できる」 / Twitter
- FadisさんはTwitterを使っています: 「mmapしたファイルをflushするにはmsyncするのが普通だが、FS DAXの場合カーネルは変更箇所を知らない為効率の悪いflushしかできない。更に必要な操作はclflushoptだけなのでカーネル空間に行きたくない。結果ユーザ空間で勝手にflushしてFSのメタデータの変更が放置されて壊れる世紀末が生まれた、と」 / Twitter
- FadisさんはTwitterを使っています: 「で、ストレージが百nsオーダーで応答しないと困る人達はこれを「カーネルが俺の知らないところでFSのメタデータなんか書くからデータが壊れるのだ」と捉え、カーネルがデバイスを一切触らなくなる(=ユーザ空間プロセスが把握している変更だけflushすればデータは壊れない)Device DAXが誕生した、と」 / Twitter
- FadisさんはTwitterを使っています: 「NVDIMMに関するLinuxの対応の歩み「直接仮想アドレス空間にマップできるデバイスによってmmapは神になる。読み書きはユーザ空間で片付いてボトルネックは解消され …ると思ったのにCPUキャッシュ、お前、お前…!」みたいな感じで大変アレ」 / Twitter
- FadisさんはTwitterを使っています: 「もしかして、linuxでmmapしたファイルに書くだけの処理でも、それがsparseで書いてる先がブロックの割当がまだ無い所だった場合、メタデータが書き変わるわけだからmsyncじゃなくてfsyncが必要になるんじゃなかろうか…」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「@fadis_ こういう場合メタデータの書き換えは常に最後なのでは?(msyncのタイミングでメタデータの書き込みになるのでは)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@beepcap @fadis_ 現状、ファイル用mmapでsparseページ宛に memcpy等しようとすると、命令トラップ&disk領域割り付けが走り、万一disk-full等で割り付け失敗するとSIGBUSで落ちます。 なので、メタデータ操作が後とは思えないですねぇ。」 / Twitter
- FadisさんはTwitterを使っています: 「x86_64 linuxのページサイズが4KBなのに対して、NVDIMMが64Bのキャッシュライン単位でflush出来る為、ページ単位でしかdirtyな部分を知らないカーネルは1箇所の書き込みに対して64倍のflushを行う羽目になり、これがdirtyなデータをユーザ空間で管理したい大きな理由になっているっぽい」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ただ、backendの不揮発部分は4KBよりずっと大きそう。 行列とかで疎な書き込みが発生すると厳しいとか無いのかな? https://t.co/IAKNMrLrmc」 / Twitter
- Yasunori GotoさんはTwitterを使っています: 「まあ、RAMについても昔は夢でしか無かったんですけどね。 DIMMとCPUが載ったシステムボードを複数搭載して、そのボードを丸ごと抜くという技で抜けるようにしたPrimeQuestって製品があるんですけどね。 RAMはpage migrationの機能でカーネルがこっそりデータを移動する。NVDIMM+DAXはそこが課題よね… https://t.co/27ObKDwOAM」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「@YasunoriGoto1 あれ、結局primary boot processorがhotplugできない問題って解決したんでしたっけ?」 / Twitter
- Yasunori GotoさんはTwitterを使っています: 「@mhiramat そこはまだなんですけどね」 / Twitter
- FadisさんはTwitterを使っています: 「Linuxでは1ページ64バイトのpage構造体でメモリのページを管理しているけど、1TiBのNVDIMMを4KiBページで利用する場合page構造体が7.85GiBになって、これをメインメモリに置くとページの情報でメモリが埋め尽くされるから、NVDIMMのpage構造体はNVDIMM自体に確保したスーパーブロックに置くらしい」 / Twitter
- FadisさんはTwitterを使っています: 「このスーパーブロックは必要なサイズ以上になるページサイズの倍数の容量で確保される為、1GiBページを使っていると1GiB単位のサイズになる。結果、2GiBのNVDIMMを1GiBページで利用すると1GiBがスーパーブロックで1GiBが唯一のページという、ページとは何かについて考えさせられる使い方がなされる」 / Twitter
- FadisさんはTwitterを使っています: 「SCSIはiSCSIを使うことでネットワーク越しにマウントする事ができる。NVMeもNVMe-oFを使うことでネットワーク越しにマウントする事ができる。これに対してNVDIMMは「全部アドレス空間に転がってるんだから、そのままRDMAすれば良いじゃろ」なのシンプルで大変良い」 / Twitter
- だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@kuwaccho0711 組込みならBIOSとかIPL等のプログラムを書いたりしない? メモリを初期化するのにSPD情報を読もうとすると、何もしてない(書いても読んでもいない)のに、迂闊なI2Cアドレスをバスに出すだけで、メモリに以上電圧が掛かって燃えるで。」 / Twitter
- だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@kuwaccho0711 ×以上 ○異常」 / Twitter
- Yasunori GotoさんはTwitterを使っています 「FPGA、NVDIMM共にユースケース(を見つけるの)が難しい2大巨頭と言われた事がある…。 まぁ、実際そう思う…。」 / Twitter
- FadisさんはTwitterを使っています 「SCSIにはiSCSIがあり、NVMeにはNVMe-oFがあり、ではNVDIMMなストレージをネットワーク越しにマウントするにはどうすれば良いか、に対する答えがRDMAなのほんと好き」 / Twitter
- FadisさんはTwitterを使っています 「SCSIにiSCSIがあり、NVMeにNVMe-oFがある。ではNVDIMMをネットワーク越しに使うプロトコルは? という問いに対して「RDMAでええやん」ってのは割とガチらしくて、PMDKにはRDMAでアクセスできるリモートのNVDIMMを使う場合用のライブラリが用意されてる」 / Twitter
- Samsung、DDR5型DRAMのDIMM向けにPMICを発売 | 日経クロステック(xTECH)
- (๑╹◡╹๑)さんはTwitterを使っています 「えーっと、これなんですが、DDR4では駆動電圧が1.2Vだったんですが、DDR5では1.1Vまで下がります。ここまで下がると、マザーボード上からの電源供給だと電圧が低すぎて安定的に供給できないので、DIMMモジュールへは5Vで供給してPMICで1.1Vに変換する必要が出てくる。かなりのコストアップですな。」 / Twitter
- (๑╹◡╹๑)さんはTwitterを使っています 「PMICは、SoCの旺盛な需要や8インチプロセスのキャパシティ不足から深刻な供給不足が続いているんですが、サムスン自信がPIMCを手掛ける、しかも90nmノードで生産するというのは、PMICの供給がネックになってDDR5の立ち上げがつまづくのを防ぐという意味合いもあるのかな、と」 / Twitter
- (๑╹◡╹๑)さんはTwitterを使っています 「90nmノードなので多分12インチプロセスを使うんでは、という感じもしてる。8インチは増産余地が小さいので、ディスクリート半導体や車載用途では12インチへの転換を進めてるところもあるけど、コスト的にはかなり上がってしまうので、量産規模を確保出来たらよい話だと思う。」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「https://t.co/fVnyNlVXbR NVDIMM 勉強しててこれ読んだけど、なかなか巧妙だった。特定のパターンの処理では Non-Temporal store → Temporal store という順番になり、後者の方が永続化に時間がかかるので sfence なくてもほぼ永続化の順序は変わらないから省いて性能を稼ごうというアイデア。」 / Twitter
- (Almost) Fence-less Persist Ordering | IEEE Conference Publication | IEEE Xplore
- DRAMeXchange - World leading DRAM and NAND Flash market research firm, with more than a decade of most authoritative database
- 自作PCをよくするワザ、教えます(5) ~メモリ編~ - AKIBA PC Hotline!
- ASCII.jp:メモリモジュールオーバークロック指南 (1/7)|Windows 7で行なうオーバークロック
- DDR4-2400以上のメモリはDDR4-2133で動作するか? : AKIBAオーバークロックCafe
- シングルランクとデュアルランク、どちらのメインメモリーを使う方が良いのか
- Rowhammer問題私的まとめ | @knok blog
- NVDIMMとACPI - 睡分不足
- Persistency for synchronization-free regions
- 不揮発メモリ(NVDIMM)とLinuxの対応動向について
- Linuxの不揮発メモリ(NVDIMM)対応動向について(2018年版) - Qiita
- 自作OSでできる!NVDIMMのつかいかた - /var/log/hikalium
- 電源を切っても消えないメモリとの付き合い方 - Speaker Deck
- CK16GX4-D4UE3200 | 288pin DDR4 SDRAM | ECC | サーバー用メモリ | PCパーツと自作パソコン・組み立てパソコンの専門店 | 1's PCワンズ
- 不揮発メモリ(NVDIMM)とLinuxの対応動向について(for comsys 2019 ver.)
- Native 3200MHz DRAM搭載 32GB メモリーモジュール各種を発表 | センチュリーマイクロ株式会社
- Linuxの不揮発メモリ(NVDIMM対応について(2019年版 補足編) - Qiita
- 【メモ帳】メモリー階層レイテンシー - fortran66のブログ
- Linuxの不揮発メモリ(NVDIMM)対応について(2020年版) - Qiita
電源
ATX12VO
- 自作PCのケーブル取り回しや電源効率改善の可能性を秘めたIntel発の新規格「ATX12VO」とは? - GIGAZINE
- インテル、第12世代Alder Lake CPU向けにATX12VO電源コネクタを推進中|自作.com
- ベンダーは、インテル第12世代Alder Lakeのリリースに先立ち、ATX12VOマザーボードを準備します。|自作.com
- インテルは、安価なAlder Lake-SマザーボードでATX12VO規格が普及することを望んでいる - 自作ユーザーが解説するゲーミングPCガイド
- インテルがATX12VO仕様で電源の未来を変える理由 - 自作ユーザーが解説するゲーミングPCガイド
UPS
- UPS選定ツール|製品選定|OMRON 無停電電源装置(UPS)
- 電源障害時に複数のサーバ・パソコンをシャットダウンするにはどうしたらよいでしょうか。|FAQ/よくあるご質問|OMRON 無停電電源装置(UPS)
- 無停電電源装置(UPS)のプロトコル公開について|製品情報|OMRON 無停電電源装置(UPS)
- BW120T/BW100T/BW55T/BW40T 仕様|製品情報|OMRON 無停電電源装置(UPS)
- BWB120T|製品情報|OMRON 無停電電源装置(UPS)
バッテリー
- JBRC会員企業リスト | 小型充電式電池のリサイクル 一般社団法人JBRC
- 【特集】いざという時に困らないために……モバイルバッテリの処分方法まとめ - PC Watch
- 電動工具の互換バッテリーを分解、検証してわかる安さの理由 | VOLTECHNO
- リチウムイオン電池の10倍の速さで充電できる新型電池登場、火災の危険性が低く環境への悪影響も控えめ - GIGAZINE
ワイヤレス
- スマホのワイヤレス充電は超絶非効率、有線充電と比べて電力消費量がおよそ1.5倍と判明 - GIGAZINE
- 新しいワイヤレス充電の規格が策定される、その内容とは? - GIGAZINE
- 第843回:Qi 1.2とは - ケータイ Watch
- Xiaomi、部屋のどこにいてもスマホを充電できる無線給電技術 - PC Watch
- 5Gネットワークを「ワイヤレス電力網」化するためのアンテナが開発される - GIGAZINE
- 東北大ら、Wi-Fiの電波を使って発電できる素子を開発 - PC Watch
- Wi-Fiの電波で発電する技術を東北大学などが開発 - GIGAZINE
NVIDIA
- 北森瓦版 - NVIDIAの12-pinコネクタは既存の8-pinコネクタと同程度の大きさとなる
- 北森瓦版 - NVIDIAの12-pinコネクタへの対応が準備されている
- 北森瓦版 - “Ampere”では12-pinの補助電源コネクタが使われるかもしれない?
- PSUメーカーは、NVIDIAのGeForce RTX 30シリーズアンペアグラフィックスカード用の12ピンマイクロフィットコネクタを準備しました - 自作ユーザーが解説するゲーミングPCガイド
- 12ピン電源コネクタの不思議な事実:それは現実であり、NVIDIA Ampere GPUに搭載される - 自作ユーザーが解説するゲーミングPCガイド
- NVIDIA、Ampereで新しい12ピンのPCIe補助電源コネクタを採用か - PC Watch
- FadisさんはTwitterを使っています 「NVIDIAの新しいGPUの補助電源コネクタはGND 6ピン、12V 6ピンで、6ピンの補助電源コネクタを2つくっつけたようなピン配列、と https://t.co/ckrNFldrRR」 / Twitter
- The Curious Case of the 12-pin Power Connector: It's Real and Coming with NVIDIA Ampere GPUs | TechPowerUp
- FadisさんはTwitterを使っています 「GPUの補助電源コネクタ、たくさんピンがあるけど電圧全部同じ12Vで、ピンがたくさんある理由が「複数の電圧を供給するため」じゃなくて「ケーブルの断面積と端子の表面積を少しでも稼いでより大きな電流を、ATX電源が供給できる最大の直流電圧でGPUに突っ込むため」なの、いつ見てもパワみがある」 / Twitter
Wikipedia
- ATX電源 - Wikipedia
- Power supply unit (computer) - Wikipedia
- 80 PLUS - Wikipedia
- 80 Plus - Wikipedia
- 玄人志向 | KRPW-L5-400W/80+:80PLUS STANDARD取得 ATX電源 400W
- 玄人志向 | KRPW-L5-500W/80+:80PLUS STANDARD取得 ATX電源 500W
- 玄人志向 | KRPW-N500W/85+:80PLUS BRONZE取得 ATX電源 500W
- 玄人志向 | KRPW-SS350W/90+:80PLUS GOLD取得 ATX電源 350W
- 玄人志向 | KRPW-PT500W/92+ REV2.0:80PLUS PLATINUM取得 ATX電源 500W
- 玄人志向 | KRPW-TI500W/94+:80PLUS TITANIUM取得 ATX電源 500W
- サージプロテクター対応の電源タップは3〜5年で買い替えが必要 | ライフハッカー[日本版]
- 第874回:モバイル充電安全認証 とは - ケータイ Watch
- 日記 (2018 年 9 月下旬)
- DOS/V POWER REPORT | Impress Japan
- マザーボードのフェーズの話 - PC Watch
- 【イベントレポート】充電事情はPDよりもワイヤレス? - PC Watch
- 何故プラグイン式PC電源ユニットのコネクタは規格統一されていないのか? - Togetter
- 次はGeForce RTX 3090! そして訪れるキロワット時代 (1/4) - ITmedia PC USER
- DSAS開発者の部屋:電子工作での AC 給電制御と米国製「IoT Relay」のこと
- Bluetoothワットチェッカー RS-BTWATTCH2[RATOC]
- ATX規格でUSBピンから各種情報を取得できる冗長電源「FSP Twins 700W」レビュー - GIGAZINE
- 無限に電力を生成できる可能性がある回路が開発される - GIGAZINE
- Cybeneticsが電源の電源効率及び、ノイズレベルの認証バッジを発行 - 自作ユーザーが解説するゲーミングPCガイド
- Desktop operating system market share in Japan | StatCounter Global Stats
- Desktop browser market share in Japan | StatCounter Global Stats
- https://www.netmarketshare.com/welcome
- 日本のPCの搭載メモリは他国と比べて少ないのか? Chrome開発チームのグローバル調査で分かる、各国のパソコンやスマホ事情 - Publickey
Intel
その他
MP
- Modern Embedded Computing: Designing Connected, Pervasive, Media-Rich Systems - Peter Barry, Patrick Crowley - Google ブックス
- Go Parallel | Dr. Dobb's | Booting an Intel Architecture System, Part I: Early Initialization | December 26, 2011
- Using SSG Templates
- edk2/MpService.h at master · tianocore/edk2
- Multiple ProcessorとIO APIC - mrtska's blog
日記
- 日記 (2012 年 12 月中旬)
- 日記 (2014 年 9 月下旬)
- 日記 (2016 年 8 月上旬)
- 日記 (2016 年 8 月中旬)
- 日記 (2016 年 8 月中旬)
- 日記 (2016 年 8 月中旬)
- 日記 (2016 年 8 月中旬)
- 日記 (2018 年 2 月上旬)
- 日記 (2018 年 9 月下旬)
- 日記 (2018 年 10 月下旬)
借り初めのひみつきち
- x86の割り込みが遅いワケ - 借り初めのひみつきち
- 地獄のデバッグ - 借り初めのひみつきち
- Nerry さんのツイート: "Surface 3でNXビットが落ちる件、これのせいだった… "
- IA32_EFER ‐ 通信用語の基礎知識
- NXビット ‐ 通信用語の基礎知識
- ロングモードと64ビットモードの違い - 借り初めのひみつきち
- EFER.LME と EFER.LMA - 借り初めのひみつきち
- 新しい自作 OS 始めました - 借り初めのひみつきち
- 誰も教えてくれない AMD64 と Intel64 の違い (ページング編) - 借り初めのひみつきち
blog
- Linuxブート時のcpu数認識の処理を読む - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Intel 100/200 PCH Primary to Sideband Bridge について - DXR165の備忘録
- 【後藤弘茂のWeekly海外ニュース】スモールコアCPU「Avoton」で明らかになったIntelのローパワーCPU戦略 - PC Watch
- [coreboot] Disabling hyper-threading on Ivy Bridge
- 投機実行とOut of Orderはつよいというはなし - なるせにっき
- x86のCPUIDについて - めもちょー
- 20190413
- cpuidでAVX2に対応しているか調べる - 睡分不足
- x86におけるメモリアクセス権のルール - 睡分不足
- 【雑記】CPUID の Family と Model、表示する一部ソフトウェアの問題点 | Coelacanth's Dream
- Intel Kaby Lake 周りの CPU Stepping を整理するパッチ | Coelacanth's Dream
スライド
- プログラムを高速化する話
- ハイパースレッディングの並列化への影響
Qiita
- [Linux] CPU Hotplug の変更 (動的にCPUの特定coreの有効化/無効化) - Qiita
- 8086命令セット - Qiita
- 技術資料 | iSUS
- インテル® 64 および IA-32 アーキテクチャー最適化リファレンス・マニュアル参考訳
- x86-64 - OSDev Wiki
- hikaliumさんのツイート: "はい、バグが取れたので円周率をやっていきましょう(syscall処理中に割り込みが発生するとスタックがユーザモードから切り替わらないのにCR3だけ変更されるのでにゃーん化していたのが原因だった)。… "
- 2.7. turbostat - Red Hat Customer Portal
- Intel CPUs: P-state, C-state, Turbo Boost, CPU frequency, etc.
- msr 演算 intel - Google 検索
- Intel core disable msr - Google 検索
- x86 アーキテクチャの不可解な「仕様」 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
- POP SS デバッグ例外 - CVE-2018-8897 [中程度] & CVE-2018-1087 [重要] - Red Hat Customer Portal
- A Complete Formal Semantics of x86-64 User-Level Instruction Set Architecture - FSL
- kframework/X86-64-semantics: Semantics of x86-64 in K
- 486のセグメントデスクリプタが直感的に読めないようになっている理由 - Yabu.log
- 割り込み「ベクタ」と呼ぶ理由 - uchan note
- Linux / x86_64の割り込み処理 第4回 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社
- 20200620
- Guidance for Enabling FSGSBASE
- 2020年10月26日 Linux 5.10-rc1が登場,正式リリースは2020年末の予定:Linux Daily Topics|gihyo.jp … 技術評論社
Intel
- NAKAMURA Minoru's Diary (2009年10月)
- The x86 NMI iret problem [LWN.net]
- Non Maskable Interrupt - OSDev Wiki
- Intel Cannonlake Added To LLVM's Clang - Phoronix
- QuarkSocPkg/QuarkNorthCluster/Smm/Dxe/SmmRuntime/SmmRuntime.c - pub/scm/linux/kernel/git/jejb/Quark_EDKII - Git at Google
- a4lg.com | x86 ファミリーとモデル一覧
- ドライバーおよびソフトウェア
- melancholic afternoon
- Positive Technologies - learn and secure : Intel ME: The Way of Static Analysis
- システムマネジメントモード - Wikipedia
- System Management Mode - Wikipedia
- Sandsifterはプロセッサーの隠れ命令を見つける、それは未来の凶悪犯かもしれない | TechCrunch Japan
- Sandsifter checks your processor for secrets | TechCrunch
- xoreaxeaxeax/sandsifter: The x86 processor fuzzer
- x86/x64最適化勉強会6 レポート - Cybozu Inside Out | サイボウズエンジニアのブログ
- Floating-Point Reference Sheet for Intel® Architecture | Intel® Software
- OpenVINO™ toolkit | 01.org
- Flexible Return and Event Delivery (FRED) Draft Specification - 346446-flexible-return-and-event-delivery.pdf
MP
- uchan 『ゼロからのOS自作入門』好評発売中!みかん本と呼んでねさんはTwitterを使っています 「@PG_MANA_ @Wagahaiha_toto マルチコア初期化は興味あります!マルチコアの起動って、やっぱり16ビットからのモード遷移コードをアセンブラで書く必要があるんですか?」 / Twitter
- PG_MANAさんはTwitterを使っています 「@uchan_nos @Wagahaiha_toto そうですね、Methylenixでは16bitからのブートコードを書いてます。 自分はあまりUEFIを使ってないのでそうしましたが、UEFIにはMpService Protocolというのがあるらしいので、それを使うと書かなくてもいいのかもしれません....」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「@PG_MANA_ @uchan_nos @Wagahaiha_toto MpServiceでAPを立ち上げて処理を走らせることはできますけど、制御をUEFIに返さないとアボートされます。なのでこのケースのようにAPの永続的な管理を得たい場合は使えないですね(Boot ServicesなのでOSからは使えないですし)。 しかしFull Rust素敵です。Rust勉強の参考にさせていただきます。」 / Twitter
- PG_MANAさんはTwitterを使っています 「@SatoshiTanda @uchan_nos @Wagahaiha_toto 情報ありがとうございます。 なるほど、あくまでUEFIアプリケーションで並列処理をしたい時に使うような感じなのですね...参考になります。 OS&Rustの勉強も兼ねて書いているOSですが、Rustでのベアメタル入門として参考にしていただけるなら大変嬉しく思います。」 / Twitter
- PG_MANA@FUKさんはTwitterを使っています 「SDMに書いてある初期化手順は一斉にStartupIPI出してセマフォ取りながら初期化していく方式だけど、BSD系列見る限りではAPIC IDリストアップして個別に初期化してるのでそれに従っている」 / Twitter
ME
- イスラエルエリカちゃん #StayAtHomeさんはTwitterを使っています 「これってMEの話であってUEFIとは別だと認識してたんだがちがうのか…?」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@syuu1228 いや ME の話で合ってると思います」 / Twitter
- Masanori KusunokiさんはTwitterを使っています 「そういえばUEFIの奥底で動くMinix 3はその後どうなったんだろうか?Minix3のリポジトリをみるとこの数年あまり動きがなさそうだけどな / “インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている…” https://t.co/Ky8XyIS9J8」 / Twitter
- インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている - Publickey
microcode
Linux
Arch Linux
- マイクロコード - ArchWiki
- Microcode - ArchWiki
- Intel Microcode Updateの設定 | 普段使いのArch Linux
Debian
- Microcode - Debian Wiki
- Debian -- jessie の intel-microcode パッケージに関する詳細
- Debian -- wheezy の intel-microcode パッケージに関する詳細
- kanamonoさんのツイート: "@itoooon 多分同じURLにたどり着かれたと思いますが、Debianでは次のURLで議論されておりました。 https://t.co/kirM719eGY"
- #886367 - intel-microcode: coming updates for meltdown/spectre - Debian Bug report logs
Ubuntu
- How to update Intel microcode properly? - Ask Ubuntu
- Ubuntu Manpage: update-intel-microcode - download current Intel processor microcode
- Ubuntu改造日記 x86高速化 Intel&AMD 最新Microcodeアップデート編 その7: Kapperのブログ 新館
- https://www.kernel.org/doc/Documentation/x86/early-microcode.txt
- linux - What is Intel microcode? - Stack Overflow
- Building Intel CPU Microcode Updates Directly into the Linux Kernel - DOTSLASHLINUX
- Intel microcode - Gentoo Wiki
- drivers - Should I enable the intel-microcode (Linux Mint 18)? - Unix & Linux Stack Exchange
- LinuxでCPUのマイクロコードをアップデートする方法 | マイナビニュース
- LinuxのリーダーLinus TorvaldsがIntelのMeltdown/Spectre対策を“完全なごみ”と酷評 | TechCrunch Japan
- Linuxカーネルがx86 microcodeを扱う処理について - Qiita
Twitter
- 高梨陣平さんのツイート: "CPUのマイクロコードは企業の独自技術で良く知られていない。マイクロコードは更新は可能だが最新のCPUは暗号技術で防いでいる。しかし2013年レベルのCPUはカスタマイズが可能だ。マイクロコードをリバースエンジニアリングで解析し自らのプログラムを記述した詳細を公開。解析には電子顕… https://t.co/FA4AzYVxky"
- Hacker News 100さんのツイート: "An introduction to reverse-engineering x86 microcode and writing it https://t.co/QmRjk0SmNj (https://t.co/mY2Hh7cEXg)"
- media.ccc.de - Everything you want to know about x86 microcode, but might have been afraid to ask
- An introduction to reverse-engineering x86 microcode and writing it | Hacker News
- まさみさんは語りたいさんのツイート: "なんだ、マイクロコードのファイルを開いたら、releasenoteにインストールの仕方が詳しく書いていた。"
- Hiromichi Itouさんのツイート: "お、4.15.2出てる https://t.co/JLkHHhwM9S 問題のあるmicrocodeを排除する仕組みがマージ x86/cpufeature: Blacklist SPEC_CTRL/PRED_CMD on early Spectre v2 microcodes"
- LKML: Greg KH: Linux 4.15.2
- suzakiさんのツイート: "マイクロコードの更新は、 1.64bit仮想メモリの特定領域に更新フォーマットに従ったコードを置く。 2.MSRに0xc0010020をセット。 3.wrmsr 命令で更新。5,000 cyclesで終了。"
- 高梨陣平さんはTwitterを使っています 「研究者がIntelの秘密鍵を暴いた。 IntelによるCPUのマイクロコードの更新等が復号可能に。パッチがどのように修正しているか等が明らかに。」 / Twitter
- LobstersさんはTwitterを使っています 「In a first, researchers extract secret key used to encrypt Intel CPU code https://t.co/7f81XS08m1 #crypto #hardware #security https://t.co/8qfgsmXAxw」 / Twitter
- In a first, researchers extract secret key used to encrypt Intel CPU code | Lobsters
- In a first, researchers extract secret key used to encrypt Intel CPU code | Ars Technica
- Liran AlonさんはTwitterを使っています 「https://t.co/XqsW3wY07b Intel reveals XuCode: Code loaded as part of BIOS early microcode update, stored on DRAM (PRM protected) and implements subset of SGX instructions. CPU executes XuCode in special XuCode-mode which include macro-ops translating to uops outside of x86 ISA.」 / Twitter
- XuCode: An Innovative Technology for Implementing Complex Instruction...
- Download Linux* Processor Microcode Data File
- 2015 年 6 月付の Windows 用インテル CPU マイクロコード更新プログラム
- Update Intel CPU Microcode | dereenigne.org
- microcodeって、何 ? | (まだ無題 ; そのうち変更するかも)
- 本の虫: Intelのドキュメント化されていないマイクロコードアップデート用のバイナリの考察
- 第132回 CPUマイクロコードのアップデート方法(FreeBSD):BSD界隈四方山話|gihyo.jp … 技術評論社
- Microcode Update Guidance
- Mitigation strategies for JCC microcode
- Loading Microcode from the OS
- chip-red-pill/uCodeDisasm
- Intel CPUのマイクロコードを変更可能な2つの未公開インストラクションが発見された
分岐予測
- ムーアの法則の終わり、そして最近の分岐予測について - なるせにっき
- そして最近の分岐予測について2 - なるせにっき
- NAKAMURA Minoru's Diary (2010年4月)
- 分岐予測の簡単な歴史 – Part 1 | POSTD
- 分岐予測の簡単な歴史 – Part 2 | POSTD
- 分岐予測の簡単な歴史 – Part 3 | POSTD
- ムーアの法則の終わり、そして最近の分岐予測について - なるせにっき
- そして最近の分岐予測について2 - なるせにっき
BIOS
- Option ROM - Wikipedia
- Power-on self-test - Wikipedia
- Power On Self Test - Wikipedia
- Tips BIOSブート仕様その1 概要と用語
- Tips BIOSブート仕様その2 IPLデバイス
- Tips BIOSブート仕様その3 IPL優先度
- Tips BIOSブート仕様その4 BCV優先度
- Tips BIOSブート仕様その5 POSTシーケンス処理
- Tips BIOSブート仕様その6 データ構造と補足説明
- satさんのツイート: ""BIOS"という言葉自体の初出はCP/Mのはず。意味はIBM PCのそれとは全然違うんだけど"
vPro
- 【Intel vPro レビュー:第1回】リモートワークにvProを活用!個人で環境を作ってみた - INTERNET Watch[Sponsored]
- 【Intel vPro レビュー:第2回】PCの電源をリモートでオン!……はあっさり成功 - INTERNET Watch[Sponsored]
- 【Intel vPro レビュー:第3回】「PCがフリーズしてしまった!」をリモート復旧、しかもネット越しに! - INTERNET Watch[Sponsored]
- 【Intel vPro レビュー:第4回】ネット越しの「OS再インストール」もやっぱり簡単 - INTERNET Watch[Sponsored]
Lord of the Ring(s)
- FadisさんはTwitterを使っています 「Intel CPUのプロセッサ間を結ぶリングバスをリバースエンジニアリングして、あるプロセッサで観測したバスのレイテンシの時間変化から、同じバスに繋がる他のプロセッサが何をやっているかを予想するサイドチャネル攻撃が現れたらしい https://t.co/0Uy03jAfyq」 / Twitter
- Researchers Discover Intel CPU Ring Interconnects Vulnerable To Side Channel Attack - Phoronix
- FPSG-UIUC/lotr: Source code of the paper "Lord of the Ring(s): Side Channel Attacks on the CPU On-Chip Ring Interconnect Are Practical"
- [2103.03443] Lord of the Ring(s): Side Channel Attacks on the CPU On-Chip Ring Interconnect Are Practical
本の虫
- 本の虫: x86のmov命令はチューリング完全
- 本の虫: x86のMMUはチューリング完全である
マイナビ
- IDF 2012 - 次期Intel Core「Haswell」の内部構造を探る - 拡張命令(AVX2/TSX)編 (1) AVX2について | マイナビニュース
- Intelプロセッサに回避困難な脆弱性、研究者ら指摘 | マイナビニュース
- HPC性能が大幅に強化されたHaswell(前編) -各コアに256bit長のFMAを2個装備 | マイナビニュース
- HPC性能が大幅に強化されたHaswell(後編) - HPCとして通用する性能を実現 | マイナビニュース
- 新Xeonで何が変わったか - 内部構造を解説 (2) | マイナビニュース
POSTD
- モジュロ演算の替わりとなる高速処理 | コンピュータサイエンス | POSTD
- CPUマスク | プログラミング | POSTD
Qiita
- x86_64での再帰ページマッピング - Qiita
Twitter
その他
- tanakmura🌛さんのツイート: "https://t.co/k7h93oJ0kp これの話してもいいかな。紹介と、正しい値を取るための細かいテクニックとか。知ってる人は知ってるだろうけど、一覧にしてあれば、どれか知らない人にヒットするかもしれないし、一回ぐらいちゃんと説明したい気がする。"
- tanakamura/instruction-bench: instruction-bench
- Kazuho Okuさんのツイート: "SkylakeでPAUSE命令が14倍遅くなってスピンロックやばいって話 / “Why Skylake CPUs Are Sometimes 50% Slower – How Intel Has Broken Existing …” https://t.co/6yus862byg"
- Why Skylake CPUs Are Sometimes 50% Slower – How Intel Has Broken Existing Code – Alois Kraus
- InstLatX64さんのツイート: "#Intel released the 68th edition of the Software Developer’s Manuals with V2 Extended Topology Enumeration Leaf in CPUID.1Fh for Module/Tile/Die levels https://t.co/qh7jNcQQFN… https://t.co/WthEDZNp0Y"
- 高梨陣平さんはTwitterを使っています 「Intel CPUの隠し命令を探すお話。Intelのドキュメントの貧弱さを嘆きつつ、過去に起こった問題をさらい、最大15byteに及ぶ命令空間を全部実行するのは無理なので戦略が必要との解説。optesterが公開されている。 https://t.co/RWH8b5nYuz」 / Twitter
- Hacker News 100さんはTwitterを使っています 「Undocumented CPU Behavior: Analyzing Undocumented Opcodes on Intel x86-64 https://t.co/ITvc94IBfE (https://t.co/6rglM7O3r4)」 / Twitter
- undocumented-cpu-behavior.pdf
- Undocumented CPU behavior: analyzing undocumented opcodes on Intel x86-64 (2018) [pdf] | Hacker News
- Satoshi TandaさんはTwitterを使っています 「Intel SDM added the Ice Lake specific MSRs. Ice Lake introduced the concept of the access level to lock the configuration registers as the 2nd line of defense. Once the DONE bit is set, they are automatically RO. @CHIPSEC detects it if the bit is not set https://t.co/fFoB1y7Dnw https://t.co/vo0yBgY2mE」 / Twitter
- Add ICL support · chipsec/chipsec@35a614c
- (1) Satoshi TandaさんはTwitterを使っています 「Happy to see the platform-level improvement to reduce a chance of shipping devices without proper security configurations (eg, setting lock bits individually).」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「Linus Torvalds on how AMD and Intel are changing how processor interrupts are handled https://t.co/ggkdgU7EFH @ZDNet & @sjvnから AMDとIntelが長年蓄積されたx86の例外周りのおかしな仕様を何とかしようとしてる。」 / Twitter
- Linus Torvalds on how AMD and Intel are changing how processor interrupts are handled | ZDNet
- Makoto Kato ︎︎さんはTwitterを使っています 「Houdini: run Arm 32-bit and 64-bit applications on an x86_64 system https://t.co/aPKWdCzIGf」 / Twitter
- Houdini: run Arm 32-bit and 64-bit applications on an x86_64 system – random blog
- Naoya HoriguchiさんはTwitterを使っています 「multi-tiered memory 論文 https://t.co/bkd51I0FOM、最近メインラインにマージされた Intel の実装よりもうまく最適化しているようだけど、ページごとに 32byte 管理領域が必要になるからちょっと厳しそうですね。」 / Twitter
- Exploring the Design Space of Page Management for Multi-Tiered Memory Systems | USENIX
- Naoya HoriguchiさんはTwitterを使っています 「どっちの実装も AutoNUMA を前提にしているから、色々知ってないと手が出ないなあ...」 / Twitter
users
@hisak
- Hisaki Oharaさんのツイート: "SkylakeとGoldmontがArchitectural Performance Monitoring version 4ってのをサポートしているのか。いつのまにこんなにversionが上がっていたとは。もうよく分からん。。 #IntelSDM"
- Hisaki Oharaさんのツイート: "Intel SDM Vol.3 8.2節 MEMORY ORDERING をみて、何言ってんだこいつってなった人には大変お勧めだった RT Memory Reordering Caught in the Act https://t.co/Z1JZiXvcti"
- Hisaki Oharaさんのツイート: "いま 48-bit長 CR3 -> PML4E (9-bit) -> PDPTE (9-bit) -> PDE (9-bit) -> PTE (9-bit) -> 12-bit offset"
- Hisaki Oharaさんのツイート: "将来 57-bit長 CR3 -> PML5E (9-bit) -> PML4E (9-bit) -> PDPTE (9-bit) -> PDE (9-bit) -> PTE (9-bit) -> 12-bit offset"
- Hisaki Oharaさんのツイート: "GAする前にPCOMMIT命令が消え去った経緯がまとめられてるw https://t.co/mexxGMsIDw"
- Hisaki Oharaさんのツイート: "CLWB命令の記述はInstruction Set ExtensionsからSDM Vol.2に移動してた"
- Hisaki Oharaさんのツイート: "Intel SDM rev.64を斜め読みしたけどVol.3はminor updateが多いかなあ。IOMCAの記述でPCIeのspecに触れているのは珍しかった。 https://t.co/WNOD1I9XRN"
@uchan_nos
- OS作れないマン WalB担当さんのツイート: "Intel SDMの9.10.2にあるSTARTUP.ASMが全然本文のアップデートに追随できてなくてワロタ。"
- OS作れないマン WalB担当さんのツイート: "保護モードからIA-32eモード(64ビットモード)に遷移するためにはLMA=1にする必要があるが、LMAは読み取り専用ビットだから、4レベルページングを有効化する手順を行うことで間接的に1にするしかないらしい。64ビットモードではページングが必須と言われるゆえん。"
- ファッション自作OSマンさんのツイート: "カノニカルアドレスは僕もやられた https://t.co/qq4LEbmGYd"
- c - Canonical address - Stack Overflow
- 技術書典4 け-51 x86-64-128さんのツイート: "Interrupt ID でもふつうに通じるよねっていう話。… "
- uchanさんはTwitterを使っています 「これ,まさか,stiの直後にcliしているから,stiの特例によってまったく割り込み許可状態にならないまま永久ループしておるのか?」 / Twitter
@deep_tkkn
- Deep(Ph.D Go player)さんのツイート: "smp_affinityもいじったし、MSIのdest_modeもlogicalになるようにしてみたけど、割り込みが1コアに集中するのなんで"
- Deep(Ph.D Go player)さんのツイート: "CONFIG_HOTPLUG を無効にしろみたいな記事みたから無効にしたが効果ない"
- Deep(Ph.D Go player)さんのツイート: "intremap=off しないと MSI の dst-mode が physical になるからそれもやった"
@liva_jy
- Livaさんのツイート: "@utshina2 なるほど、ありがとうございます!つまり、カーネルコード側のセグメントを事前にチェックしておいて、システムコールの度に毎回チェックするのを避けるという事ですよね。確かにそれはかなり早くなりそうです。"
- Livaさんのツイート: "一回くらい自分でfastcallとint $$の性能比較をした方が良さそう。 #liva_notebook"
@NerryN3
- 光宙🌟さんのツイート: "#DB(Debug Exception)っていつの間にReservedになってたの"
- 光宙🌟さんのツイート: "https://t.co/wCoBYm7kPW"
- Nerry@求職中さんのツイート: "x86のpush命令のFF /6エンコーディングと一見対になりそうなFF /7はずっと未定義命令で、実際に対になってるpop命令の8F /0エンコーディングの/0以外はずっと未定義っていう謎の組み合わせ"
- Nerry@求職中さんのツイート: "よく調べたら8Fの/0以外はAMDのXOPプレフィックスに使われてた"
- Fadisさんのツイート: "Intel、10nm世代のプロセッサでECCエラーなどのハードウェアの異常を検知する(EDAC)ドライバ、i10nm_EDACをLinuxカーネルに追加。新しいマイクロアーキテクチャの呼び名、それで良いんだ… https://t.co/NvFJYUJ53F"
- I10nm Is Intel's New EDAC Linux Driver For Icelake Server CPUs - Phoronix
RISC-V
- IntelがRISC-VアーキテクチャのCPUコアを同社のプラットフォームに採用 - iPhone Mania
- Miura HidekiさんはTwitterを使っています 「RISC-V、確かに興味深いが、バイブル的な本を読むとものすごく独善的で大丈夫かしらん?という気分になる。あと、アセンブラ・ディスアセンブラは作りにくそうだなという命令ビットパターンですわね」 / Twitter
- Miura HidekiさんはTwitterを使っています 「経験則から、独善的な物言いをする技術は大体短命(その間に熱狂的な支持を受けるわけだが」 / Twitter
- Miura HidekiさんはTwitterを使っています 「逆にものすごくたくさんの既存技術を集めて、徹底的に研究して既存技術で優れたものは評価したうえで取り込んだような技術はものすごく強い」 / Twitter
- hrk先生さんはTwitterを使っています 「@miura1729 横から失礼します。RISC-Vについて一番懸念しているのは、Specificationベースでバリエーションを許している点です。なにかT〇〇〇プロセッサのことが思い起こされます。想像される将来像はRISC-Vベースシステムなのに互換性がないものが多種あるというものです。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@Prof_hrk RISC-Vがある程度のシェアを取るようなことになれば、シェアの大きい実装かキラーアプリケーションに合わせて事実上必須の拡張機能が決まってくるような気がします。掛け算のないRISC-V CPUでトースターの制御をするとか本当にありえるのかな?とも思います。」 / Twitter
- hrk先生さんはTwitterを使っています 「@miura1729 そこが今後の課題と思います。コンソーシアムのメンバーであっても、本質的には競合社のあつまりなので他社の仕様に従うインセンティブはないと思っています。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@Prof_hrk いまCPUメーカが独裁的に行っている仕様の決定を民主的に出来るかというはなしですね。インターネット技術関連では上手く行っていますけど、スーパーコンピュータから組み込みまで幅が広いですからね。」 / Twitter
HT
- Shirouzu Hiroaki(白水啓章)さんのツイート: "HT初搭載のPentium4だと、パイプラインの深さもあって演算器がスカスカになりやすかった。 なので、手動で依存関係を減らす順序にするだけで(シングルスレッドでも)改変blowfishの速度が4倍になった記憶。 https://t.co/jmWuRKkHU7 (その時の簡易メモ)… https://t.co/ctaTpf3pLh"
- 私的メモ(2003年12月版)
- Kazuho Okuさんのツイート: "典型例以外で重要なケースとしては、レイテンシの大きな命令の実行中に別スレッド動かせるとか。AES-NIがこのパターンなのでウェブサーバではHT有効にすべきという理解 参考: https://t.co/zYqvz1KJp5… "
- Kazuho Okuさんのツイート: "あー正確に言うと、最近のAES-GCM実装は並列処理がんばってるからHTオフでもいいけど、昔ながらのAES-CBCやパケット番号暗号化が入るQUICではAESNIのレイテンシが問題になるケースがあり、従ってryというところです"
- Kazuho Okuさんのツイート: "っていうかHTはメモリレイテンシの隠蔽というより、空いてる演算器を埋める仕組みとしての側面が大きかったような気もしてきた"
- ts4さんのツイート: "Hyper-Threading Technology Benefits の節にそういった記述ありますし、Utilization of Processor Resources の節にも、NetBurstのころCPUのリソースぜんぜん使えてなかった的な記述がありますんで、そのへんの稼働率を上げるのが目的だったのではないかと https://t.co/MSakkBQaGk… https://t.co/LOl4zG2r3v"
- Hideyuki Tanakaさんのツイート: "HTTの効果がでかいのは典型的にはメモリのランダムアクセスしまくりでストールしまくりの演算器遊びまくりみたいな時で、実際こういうケースだと倍近くまで速くなることがあったけど普通のアプリだと限定的だし、CPU側からするとOoOを頑張ってIPCを稼げば稼ぐほど効果が少なくなるというジレンマ(´・_… https://t.co/KoJ0OZUdjs"
- まさきはるか(Usk)さんのツイート: "実際、HTに効果があるのかないのかが、ベンチマーク人とサーバー人の発言しかなくて全くわからない。コア数少ないときは効果ある気がしてるけど…… "
- Hideyuki Tanakaさんのツイート: "2年ぐらい前の人に、インテルが8コア8スレッドのi7を出しそうとか言うと、どんな顔するかな(´・_・`)99割ぐらいの人はガセだと思うだろうけど"
TSX
- FadisさんはTwitterを使っています 「IntelがTSX拡張命令を使えなくするマイクロコードの更新を用意している話。Transactional Synchronization Extensions(TSX)はトランザクションの開始から終了までの間に行われた複数のメモリ操作が他のCPUによる操作とぶつかった場合に開始前まで戻って処理をやりなおす機能 https://t.co/iE8FNFEg7s」 / Twitter
- Intel To Disable TSX By Default On More CPUs With New Microcode - Phoronix
- FadisさんはTwitterを使っています 「TSXはSkylakeで登場した当時、複数のCPUが同時に触ってもスケールするデータ構造を作りやすくする夢の機能と考えられていたが、同一ホストの別のCPUで実行されるプロセスがTSXの実行時間を観測する事でサイドチャネル攻撃が可能になる脆弱性(CVE-2019-11135)が報告されていた」 / Twitter
NMI
- 品川 高廣さんのツイート: "「BitVisor 2018年の主な変更点」では、BitVisor における NMI 処理の問題が述べられています。パススルー型 VMM でハードウェア仮想化支援機構を使ったとしても、NMI を本当に正しく処理するのはとても難しそうだと実感させられます。https://t.co/h2grTghKus"
- BitVisor Summit 7「2. BitVisor 2018年の主な変更点」
SMI
- まさみさんは語りたいさんのツイート: "あるある(笑)SMIの処理が強烈に遅くて、「OSに問題があるんじゃないか?」と言われたこともあった。… "
- Yasunori Gotoさんのツイート: "コードギアスR2で時間を止める能力を持っていたキャラがいたけど、主人公が「心の中でカウントしていた数」と「実際の時計の時間」に差があることに気が付いて、その能力を見破るシーンがあったよね。 SMIはOSの中でリアルにそれが起きるんだよね。"
- Yasunori Gotoさんのツイート: "SMIはカーネル(というか割り込まれたCPU)から見ると、時間停止の魔法みたいなものに見えるんだよね。ファームが必要だと判断したら、そこでSMIとして割り込んで、その間ファームがゴリゴリと動くという仕組み。"
- Yasunori Gotoさんのツイート: "昔のカーネルは一定時間内にカウントして、あるハードの能力を図るといったコードが結構あったけど、その間にSMIが入るとOSはカウントできなくなってしまうので、本来のでるべき値に対して実際のカウントの値が異なってしまい、カーネルが異常な動作をするというトラブルが結構あった。"
- Yasunori Gotoさんのツイート: "このため、SMI=トラブル=コードギアスという関係が自分の中で出来上がってしまい、SMIの文字を見るたびに主役のルルーシュ君の声が脳内を駆け巡ってしまうのである。"
- まさみさんは語りたいさんのツイート: "ちなみにSMIはサーバHWのファームウェアの処理なのでOSは関与しません。濡れ衣だー"
Alder Lake
- InstLatX64さんはTwitterを使っています 「How could I miss this ??? So there is a plan for #AVX512 definitely. Maybe it is restricted to ADL-S or 8 bigCore or top SKU (like per-core HyperThreading on #CometLake and Adaptive Boost Technology on #RocketLake) Thx, @PerforatedBlob!」 / Twitter
- HXLさんはTwitterを使っています 「intel Alder Lake 8 big core+8 small core=disable AVX-512 8 big core=AVX-512 https://t.co/LGFkKJWuI1 https://t.co/Vku742CGsh」 / Twitter
- Marco ComerciさんはTwitterを使っています 「@InstLatX64 @PerforatedBlob I thought of a solution to leave power hungry features enabled: a processor driver that migrates the threads that need that instructions on the big cores: the little cores will issue an #UD exception on unsupported features and the kernel will tag and migrate the threads...」 / Twitter
UD発生関数
- tnさんはTwitterを使っています 「わたし「lock; nopでシステムコール発行してるっぽいとこがあるのですがこれなんですか……?」 hikaliumさん「これは意図的にundefined opcodeの例外起こすやつですね」 fadisさん「x86でよくみるやつ」 わたし「えぇ……?」」 / Twitter
- tnさんはTwitterを使っています 「s/システムコール発行/関数呼び出し/」 / Twitter
- とみながたけひろさんはTwitterを使っています 「この手のいかに高速にthunkというかゲートというかを実現するハック、最近は安全性とかに考慮しつつもハイパーバイザー呼び出しで同じように各種ハックがあると聞いて笑っている」 / Twitter
UD0の命令が更新
- まさみさんは語りたいさんのツイート: "ちょうまって、これは酷い。"
- まさみさんは語りたいさんのツイート: "UD0の命令が更新されて変わってしまっている@最新のSDM 0F FF /r UD0 r32, r/m32 Some older processors decode the UD0 instruction without a ModR/M byte. じゃねーよ!"
- まさみさんは語りたいさんのツイート: "これIntelが互換性を捨てましたっていうことじゃないですかーやだー。"
- まさみさんは語りたいさんのツイート: "なあIntel-san、どのプロセッサからこれ変わったんだ・・・?そしてobjdumpはどうバイナリをダンプすればいい・・・?"
- まさみさんは語りたいさんのツイート: "いずれにしてもカーネルの中にテストコード仕込んでおいてよかった感。"
- UD — Undefined Instruction
red zone
- ファッション自作OSマンさんのツイート: "IA32eモード(64ビットモード)でのOSプログラミングのハマりどころ ・アセンブリで関数を書く際、スタックを16バイト整列しないといけない ・red zoneの存在"
- Red zone (computing) - Wikipedia
- 書籍の補足情報
- x64 Assembly Language
- GNU CとUNIXシステムコールだけで実行時アセンブラ ( ソフトウェア ) - 一人一党党 - Yahoo!ブログ
コードレビュー
- Kazuho Okuさんのツイート: "今日はコードレビューで、ファストパスはインライン展開できるようにしつつ、スローパスはコードの密度が問題にならないようextern関数に追い出して下さいという話をして、それは一般論としては正しいんだけど最近の分岐予測の発達したIntel CPUでどうなのか誰か定量的なコメントくだしあ"
- Kazuho Okuさんのツイート: "マイクロベンチで関数展開しない方が速くなるケースがあるのは知ってる"
x64
- るくすさんのツイート: "@liva_jy すみません。超基本的な質問なんですけど、x64のiretq命令実行時のスタックって、rip,cs,rflags,rsp,ssを全部*64bit*でスタックから降ろしてくるんでしたっけ...."
- satさんのツイート: "x86_64の初見殺し仕様です Architecture defines a 64-bit virtual address. Implementations can support less. Currently supported are 48- and 57-bit vir… https://t.co/Om2VjPitlS"
- まさみさんは語りたいさんのツイート: "君らが聖典としているintel SDMもバグってることが多いから注意な。"
- まさみさんは語りたいさんのツイート: "SDMのopcode mapを読むと色々見えてくる。特に最初の命令セットは結構キレイに並んでる。… "
- るくすさんのツイート: "x86もだ。意外と知らなかった超基礎知識。 いやバラバラに並べる意味なんてそりゃあないんだけど。 x86 architecture condition codes https://t.co/NMGe3Mv79a"
- sandpile.org -- x86 architecture -- condition codes
- パーフェクト・鳥頭・ジュニアさんのツイート: "@uchan_nos 確認は出来てないですが、push ax ってオペランドサイズプレフィックス付いてて、push cs には付いて無くないですか?"
- ロボ太さんのツイート: "YMMのシャッフル系命令がいつもごちゃごちゃになるのでチートシート作ってみた。 https://t.co/4kv02PA6uf"
- 中村 実さんのツイート: "Intel先生やべえよ。アフィン変換用の命令を追加するつもりだ。その上、VMMの制御で4KBページを128バイトのサブページ単位に区切って各サブページ毎に書き込み保護を出せるようにするとな。 https://t.co/Tm0IoW8ZHV"
- くまぎさんのツイート: "ハードウェアトランザクショナルメモリは人類にはまだ少し早過ぎる。トランザクション中はprintfもログもデバッガでのトラップも出来ないし、アボート要因の情報が限られるので最終的にはエスパーしかない。あと僕の使い方が悪いのか意外と速くない。"
- とみながたけひろさんのツイート: "整列例外ですね。ロードストア命令でアクセスするアドレスの下位何ビットか(命令や特権レジスタの設定によって異なる)が0じゃないときにでます。x86でもがんばればだせますが普通はでないやつ… "
- moraさんはTwitterを使っています 「動的にバイナリにパッチを当てようとすると、x86の場合当該箇所がpop raxみたいな1バイト命令だとjmp xxxに変えられず困るが、強引にpop raxをjmp命令(e9)にしてしまい「jmp 謎アドレス」に飛ばした上でその「謎アドレス」をmmapしてそこにパッチバイナリを置く手法があるらしい(instruction punning」 / Twitter
- moraさんはTwitterを使っています 「ところで「謎アドレス」が既に使われていたり確保できない場所だったりする場合にはうまくいかないが、jmp <固定アドレス>とする代わりにnear jump命令に書き換えることで問題を先送りにし、near jump先で同様の手続きをするようにすると、ほとんどのバイナリでパッチができるらしい https://t.co/SfYIURRxHY」 / Twitter
- moraさんはTwitterを使っています 「pwnみたいで面白い https://t.co/MF5lM9apTE」 / Twitter
Ring1, 2
- 品川 高廣さんのツイート: "x64 (x86_64) の long mode では ring protection は廃止されて user mode と kernel mode しか無いと思い込んでいたけど、ちゃんと segment 定義して call gate 経由で呼び出せば 64 bit の ring 1 も ring 2 も使えるのね。"
- Nerry さんのツイート: "リング1やリング2が使えてもセグメントベースやセグメントリミットでアクセス制限かけれないしページ属性的にはカーネル扱いなので使い道がない気がします… "
- 品川 高廣さんのツイート: "遅ればせながら、ACM CCS 2018 のこの論文(の動画)を見て、使い道を知ったのですよ。https://t.co/uRVxKJDme7… "
- Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86 - YouTube
- Nerry さんのツイート: "あとで動画見てみます… "
- Lord of the X86 Rings: A Portable User Mode Privilege Separation Arch…
- 品川 高廣さんのツイート: "2018年にもなって Intel x86 のリング保護を使った論文が出るとはね。SOSP '99 の Palladium とどう違うのかとも思ったけど、普段は 64bit で動いて一時的に 32 bit に戻してセグメント&リング保護を有効にしたり、Ring 1 でゲートを作ったり、結構複雑にはなっているんだな。https://t.co/dEQGO5VyI1"
- [1805.11912] Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86
- 品川 高廣さんのツイート: "ACM CCS 2018 の論文はこちら。Hojoon Lee, Chihyun Song, and Brent Byunghoon Kang. Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86. In Proc. 2018 ACM SIGSAC Conference on Computer and Communications Security (CCS '18). https://t.co/oxAe4bBkWz"
- Lord of the x86 Rings
Microkernel・LibraryOS
L4 以降
- L4 - Wikipedia
- L4 microkernel family - Wikipedia
- L4 ‐ 通信用語の基礎知識
- マイクロカーネル - Wikipedia
- Microkernel - Wikipedia
- 代替OS (PC用) | Netsphere Laboratories
- 2011年11月24日 Linux&Linusにモノ申す!? あのTanenbaum教授が久々にメディアに登場:Linux Daily Topics|gihyo.jp … 技術評論社
- マイクロカーネル - マイクロカーネルの概要 - Weblio辞書
- Microsoft Word - shousai.doc
- L4 · oraccha/omicron Wiki
- An Introduction to Drawbridge(ja) // Speaker Deck
- 品川 高廣さんのツイート: "「Secure Enclave は、Apple がカスタマイズした L4 マイクロカーネルを実行します。」って知らなかった。https://t.co/NBXlx0OfKn"
- iOS_Security_Guide.pdf
- yuYabu☕️さんのツイート: "L4の仕様がまとまってるl4hqというサイト https://t.co/Ig7Z5bzxLn #osdev_moku2"
- L4HQ - The L4 Headquarters
- ぬるぽへさんのツイート: "組み込みではモノリシックなライブラリOSを提供することが多い #osdev_moku2"
- ぬるぽへさんのツイート: "最近のトレンドだと「メモリ空間管理はカーネル空間に持たすことが多い」と表現するらしい、ポリシーはユーザー空間で制御するがマッピングはカーネルでやることを指して > マイクロカーネル #osdev_moku2"
- L4Android
- 社会人でもOSを作りたいさんのツイート: "今日の自作OSもくもく会の発表はほんまに濃かった。L4マイクロカーネルって全体をアセンブリ言語で書くことにより高速化したっていう話、コンパイラの限界を感じる。"
- Takeharu KATOさんのツイート: "正確にはL4の前身のL3がアセンブラでL4の世代は部分的にCで書かれて後々C++になったと思います(C++になった当たりからはちゃんと追ってないのですが)。… "
- ぬるぽへさんのツイート: "唐突に気づいてしまったんですが、マイクロカーネルには厳密にはプロセスという概念はないのに、実行プリミティブ間通信をIPCと呼ぶとはこれいかに"
- HermiTux | A binary-compatible unikernel
- ssrg-vt/hermitux: A binary-compatible unikernel
- unikernelのruntimejsを試してみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Shinichi MiyazawaさんはTwitterを使っています: 「形式検証済みのマイクロカーネルといえば、seL4が有名。 https://t.co/zli9rN7cXA」 / Twitter
- Home | seL4
- The seL4 Microkernel – An Introduction - seL4-whitepaper.pdf
- mumumuさんはTwitterを使っています 「Evolution of the PikeOS Microkernel VMMもMicrokernelの一種という思想で,L4から派生した自分たちのOS(VMM)の上にRTOSとGPOS,そのた実行エンジンを載せて,組込み環境で使おうぜ,みたいな主張.jailhouseとかQuest-Vとかの源流.07年の論文だが,プロ時ジェクトは現存https://t.co/H1sQyYTBmS」 / Twitter
- PikeOS Certified Hypervisor - SYSGO - Embedding Innovations
Unikernel
- MirageOS のインストールから Hello World までを試す - Qiita
- MirageOS Unikernel の概要 - Qiita
- 11se252.pdf
- cetic/unikernels: Unikernel and immutable infrastructures
- A Binary-Compatible Unikernel
- unikernelのruntimejsを試してみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- unikernelの最新人気記事 30件 - はてなブックマーク
- Docker ContainerとUnikernelの比較 - コードログ
- atc18-zhang-yiming.pdf
- Unikernelについての現状調査 - Fixstars Tech Blog /proc/cpuinfo
- ガラスボーさんはTwitterを使っています 「Rust製UnikernelのRustHermitの紹介 https://t.co/WY5OnHkGEu HermitCoreについては以前自分のブログで紹介した論文があるのだけど、同じ研究グループがやっているっぽい? https://t.co/n4jRpDYlBU」 / Twitter
- The RustyHermit Unikernel | Rust OSDev
- ガラスボーさんはTwitterを使っています 「RustHermitを使った論文もVEE '20にあったらしい。追えていなかった https://t.co/qa6ZOCMxZF」 / Twitter
- Intra-Unikernel Isolation with Intel Memory Protection Keys - vee20-mpk.pdf
- FadisさんはTwitterを使っています 「Unikernel: ひとつのアプリケーションとそのアプリケーションを動かすのに必要最小限のカーネルをセットにした物。その実装の一つがMirageOS #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「unikernel systems社: Dockerに買収されたケンブリッジ大学発のベンチャー。MirageOSは彼らによって開発されている #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「unikernelではOSのイメージは書き換えが保存されないようにする。ユーザのコンセプトも必要ないので捨てる。このように必要ないものを削って小さなフットプリントにする。さらにシンプルなブート方法だけをサポートする事で起動を高速にする #kernelvm」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「Linux をそのまま unikernel にするものとして UKL や UniLinux はちょっと古くて、最近は Lupine や LKL というかんじです #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「小さいカーネルを手に入れる方法には、スクラッチから必要最小限の機能を持った小さいカーネルを作る手法と、既存の大きいOSからいらないものを削って小さくする方法の2つがあって、ネットワークスタックみたいな再実装したくない物が絡んでくると後者が美味しく見えてきちゃうんだよな…」 / Twitter
- retrageさんはTwitterを使っています 「UKLはRedHatのinternのプロジェクトでやってHotOSで出てきた話だけど,結局ちゃんとした実装になってなかったはず #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「unikernelは必ずしもハイパーバイザの上で動かなくても良いが、ホストに抜けられると困るのハイパーバイザを通す事もある。同等の効果を期待してseccompを絞る事もある。ハイパーバイザが相対的に大きいのでunikernelに必要最小限のハイパーバイザを作る事もある、と #kernelvm」 / Twitter
- 2015年5月14日 フロッピーの呪いがクラウドに!? 久々の大型脆弱性「VENOM」の影響範囲:Linux Daily Topics|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「ハイパーバイザが使いもしないデバイスをサポートしていると、アタックサーフェスが増える。たとえばVENOM(CVE-2015-3456)ではQEMUのフロッピーディスクドライブのエミュレーションのバグを突いてハイパーバイザの外で任意のコードを実行する、と #kernelvm」 / Twitter
Solo5
- retrageさんはTwitterを使っています 「今日ちょうどSolo5の話をまとめようとしてたところなのでタイムリー」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「process の isolation でも hardware assisted な VMM 並に強力な isolation が可能であるという主張はどちらかといえば container より(libOS とは関係ない)picoprocess そのもののアイディアに近い」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「picoprocess はもともと Xax というブラウザのプラグインを sandboxing するための仕組み(“ Leveraging Legacy Code to Deploy Desktop Applications on the Web”)」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「container があくまで kernel shared でかつ 300 以上の syscall が許容されてるのに対して,unikernel の single address space や libOS といった性質上 hypercall がたかだか 4,5 のままで既存のアプリのコードが使えてるのは強みなので,この設計構造を潰さないまま process isolation に」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「持っていくと,アプリコードはそのままでも syscall は数個のより narrow な attack surface しか持たない process になるので,同じアプリを動かすにしても secure だし,性能の劣化が unikernel より少ないし,gdb 噛ましたり簡単になるし,いいことだらけだぞっていうのが彼らの主張」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「ほかにも ASLR やメモリの dedup が効くだとか,ブート周りや MMU 周りのアーキテクチャ依存が減ってより minimum なコードになるぞとかいろいろ恩恵があるのは 3.4 節の other benefits を参照のこと。」 / Twitter
- retrageさんはTwitterを使っています 「LKL+muslなlibOSをSolo5に移植してPythonとか動くようにした retrage/frankenlibc at solo5 https://t.co/uRlNV4YizR」 / Twitter
- retrage/frankenlibc at solo5
- retrageさんはTwitterを使っています 「これ、実装よりの細かい話とか書こうとしてるんだけどまだ自分の中でまとまった知見とかがあるわけじゃなくてやるだけ、みたいな気持ちになっているので筆が進まず」 / Twitter
- Unikernels as Processes | Proceedings of the ACM Symposium on Cloud Computing
- 212-Williams
- retrageさんはTwitterを使っています 「そういえばシステム系の論文に出てくるコードって大抵発表されたあと放置されることが多いけど、これはちゃんとメンテされていてすごい。 Solo5/solo5: A sandboxed execution environment for unikernels https://t.co/o8rXWxLfDf」 / Twitter
- Solo5/solo5: A sandboxed execution environment for unikernels
- まちカドおるみんさんはTwitterを使っています 「@retrage “Unikernels as Processes” とかの研究の実装にも利用されているので、研究が一発ネタで終わらずそれを叩き台にした後続が居る、というのも強みなんだと思う。HermitCore → HermiTux、RustyHermit なんかもそうだし、OSv も Mikelangelo Project とか Iso-UniK とかあるし。」 / Twitter
- retrageさんはTwitterを使っています 「@kotatsu_mi なるほど。後続が作れるほど発展性のあるテーマを後の研究のベースにできるぐらいちゃんとしたコードが書かれているということでもあるのでやっぱりすごいと思う。」 / Twitter
- retrageさんはTwitterを使っています 「これとか参考にしつつSolo5のI/F拡張したら面白そう。 Faasm: Lightweight Isolation for Efficient Stateful Serverless Computing | USENIX https://t.co/n8XnZpVgAg」 / Twitter
- Faasm: Lightweight Isolation for Efficient Stateful Serverless Computing | USENIX
HarmonyOS
- huawei-iot/HarmonyOS: 鸿蒙系统资料。Docs about HarmonyOS.
- Shinichi MiyazawaさんはTwitterを使っています: 「Harmony OSで面白い点の一つは、形式検証を使っている点。 https://t.co/xJzy2mK95d」 / Twitter
- Harmony-OS-Huawei-Developer-Conference-14-1.jpg (1170×540)
Rump Kernel
- Rump Kernelをつかってみる
- おるみんちゃんさんのツイート: "Rump Kernel が実は論文や学術雑誌以外に本の形でドキュメント化してたのに気がついて Mendeley に放り込んだ"
- おるみんちゃんさんのツイート: "のはいいんだけど,このタイトルページを Mendeley が OCR してこうなるの完全に謎。何をどうしたんだ……?(本の最初のほうに書いてある git の revision がなにかの ISBN にひっかかったとか?… "
- おるみんちゃんさんのツイート: "https://t.co/siYxJuyJjn"
- The Design and Implementation of the Anykernel and Rump Kernels
- おるみんちゃんさんのツイート: "おそらく,Rump Kernel の作者 Antti Kantee の博士論文の改訂ですね。"
- おるみんちゃんさんのツイート: "博論はこれ https://t.co/QKhIrddQ1c"
- Flexible Operating System Internals: The Design and Implementation of the Anykernel and Rump Kernels
- Linux kernelをUnikernelのライブラリ化する - めもちょー
- まちカドおるみんさんはTwitterを使っています: 「Unikernel というか Library OS の源流には Exokernel が居るんだけど,その上流には SPIN や Chorus,V や Amoeba,Accent といった第一世代の Microkernel/Distributed OS が居るし,Exokernel と Unikernel の間にも Xen や kvm,QEMU だけじゃなくて Nemesis や Libra が居る」 / Twitter
- Unikernel - Wikipedia
- Unikernelな情報 (in Japanese) - Qiita
- FadisさんはTwitterを使っています 「「コンテナならユーザ空間だけ立ち上げるからはやーい」から 「コンテナのセットアップするやつに脆弱性があるとやばーい」になって「やっぱりVMで隔離したーい」になって「でも起動に時間がかかるのやだー」になってUnikernelにたどり着くのか #kernelvm」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@syusui_s マイクロカーネルの IPC が遅くてパフォーマンスが……は定説でしたが最近は IPC も十分速くできる,という研究がぽつぽつあります。https://t.co/fG6NokSb5J」 / Twitter
- YCSB-A_Zircon.eps - skybridge-eurosys19.pdf
- コンテナ目線で考えるUnikernelとmicroVM / MicroVM and Unikernel in the container world - Speaker Deck
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば、昔は現代的OSというとマイクロカーネルだったけど、結局実用上はカーネル・リビルドなしにドライバ動的ロードできれば、ユーザ的にはもう十分だった感(笑)」 / Twitter
- microkernel-book.pdf
- CとRustで一から作るマイクロカーネルOS
- mumumuさんはTwitterを使っています 「正しくはATCでした(suzaki先生ありがとうございます. この研究,色々なことをやってて研究として綺麗かと言われるとよくわからんのですが(超上から目線),できること全部突っ込んだ感があって純粋に読み物として面白いかも」 / Twitter
- mumumuさんはTwitterを使っています 「Harmonizing Performance and Isolation in Microkernels with Efficient Intra-kernel Isolation and Communication [OSDI '20] Microkernelのサーバ間の新しいIso.としてMPKによる手法を提案.そのためにKernelメモリをUserメモリとしてMapしていたり色々ヤバイことやってる.オタクは是非読んで」 / Twitter
- FadisさんはTwitterを使っています 「RedLeaf: Rustで実装されたマイクロカーネルOS。ドメイン間通信のための共有メモリを多用する→ RRef<T>型で共有メモリをラップしてRustに共有メモリの抱え落ちを防がせる https://t.co/9fI2XusVxf #kernelvm」 / Twitter
- mars-research/redleaf: RedLeaf Operating System
- FadisさんはTwitterを使っています 「一般的なOSの機能、MS-DOSとマイクロカーネル原理主義みたいなヤツらとライブラリOS系のやつらで積集合を取ると、一般的なOSの機能とは空集合の事であるみたいな結論が得られそう」 / Twitter
- FadisさんはTwitterを使っています 「MS-DOS: タスク管理やプロセスの空間の分離は別にOSに必須じゃないかもしれないよ マイクロカーネル: デバイスドライバやファイルシステムは別にOSに必須じゃないかもしれないよ ライブラリOS: ハードウェアの上でブートローダから起動される事は別にOSに必須じゃないかもしれないよ」 / Twitter
- natsutanさんはTwitterを使っています 「@fadis_ 組込系のOSだと、ファイルシステムもメモリ保護も標準入出力も無く、割り込みはタイマー以外自力で処理みたいなのもあるので、一般的なOSって難しい。」 / Twitter
仮想化
その他
- 英SophosがWindowsサンドボックスの「Sandboxie」を無償化、将来はオープンソースに | OSDN Magazine
- Chapter 10. Technical Background
睡分不足
APIC, MSI-X
- MSI/MSI-Xとx2APIC - 睡分不足
- x2APICとinterrupt remapping - 睡分不足
- I/O APICについて - 睡分不足
- Local APICについて - 睡分不足
- MSI/MSI-Xとx2APIC - 睡分不足
- X540のMSI-X設定 - 睡分不足
QEMU/KVM
- KVMの準仮想化機能 - 睡分不足
- KVMにおけるcpuid命令の取り扱い - 睡分不足
- KVM GPUパススルー設定 - 睡分不足
- QEMU/KVM上のゲストのハイパーコールをQEMU側に渡す方法 - 睡分不足
- QEMUコードリーディングメモ - 睡分不足
VMM
- Bareflankを使ってみる - 睡分不足
- クロスプラットフォームなハイパーバイザ Intel HAXM - 睡分不足
- VMWare Fusionメモ - 睡分不足
- virshのvcpupinとvcpuinfoで表示されるaffinityの違い - 睡分不足
- Ownership is theft? TockのTakeCellについて - 睡分不足
- x86におけるメモリアクセス権のルール - 睡分不足
- perf, ftraceのしくみ - 睡分不足
- VFIOによるデバイス操作 - 睡分不足
- 複数の仮想ページに同じ物理ページをマッピングする方法 (Linux) - 睡分不足
- x86_64 Linuxでの仮想アドレス/物理アドレス - 睡分不足
- 仮想アドレスから物理アドレスを求める - 睡分不足
- per cpu data シンボルのアドレス - 睡分不足
MS
- MyIgnite - OS internals: Technical deep-dive into operating system innovations
- ネットワーク コントローラーの高可用性 | Microsoft Docs
- 仮想化ベースのセキュリティ (VBS) | Microsoft Docs
- Windows セキュリティでのデバイス保護
- 拡張ファームウェア インターフェイス (UEFI) - Windows drivers | Microsoft Docs
- 【笠原一輝のユビキタス情報局】Windwos 11はなぜTPMが必要で、CPU制限が厳しいのか? その理由を詳しく説明 - PC Watch
- 箱を開けた状態で“Windows史上最強の安全性”が実現されている「Secured-Core PC」をじっくり解説 ~大企業はもちろんIT専任者がいない中小企業でも手軽に安心して使える設計- PC Watch[Sponsored]
- 「VirtualChecker」仮想化支援機能に関するCPUの対応状況を手軽にチェックできるツール - 窓の杜
- AMD CPUに待望の“Nested Virtualization”対応 ~プレビュー版「Windows 10」で - 窓の杜
- とみながたけひろさんはTwitterを使っています 「@retrage @mhiramat 最近はUEFIがバグってる(悪意のあるハードウェアが繋がってると色々やられてしまう)ことがあるので、できるだけ早くhv上げてその下でUEFIというかハードウェアの初期化するなども聞きます」 / Twitter
- retrageさんはTwitterを使っています 「@takehiro_t @mhiramat そうですね,話せなかったんですが,WindowsだとVirtualization Based Security (VBS)というHVベースのセキュリティ機構がOS Loader(winload.efi)の段階で立ち上がったりします.」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@retrage @takehiro_t なるほど、x86だとそういうことも可能ですね。armだと実行レベルは一方通行だから、最初にvmmを起動するとkvmが使えなくなってしまうんですが。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「@retrage @mhiramat win11で必須になるとゆーやつですね。どんどん生のハードに触れなくなっていく、、、😀」 / Twitter
- カーネル DMA 保護 (Windows 10) - Microsoft 365 Security | Microsoft Docs
- WSL2とHyper-Vの関係 - Qiita
- Windows10 HomeにDocker for Windowsをインストールする (WSL2を利用) - Qiita
- Hyper-V APIs | Microsoft Docs
- Host Compute System Overview | Microsoft Docs
- Windows Hypervisor Platform API Definitions | Microsoft Docs
- Virtdisk.h header - Win32 apps | Microsoft Docs
- Host Compute Network (HCN) service API for VMs and containers | Microsoft Docs
- Windows Hypervisor Platform Instruction Emulator API Definitions and Support DLLs | Microsoft Docs
- VM Saved State Dump Provider API | Microsoft Docs
- Microsoft VPSはWindows 11のゲームパフォーマンスを低下させる - ソフトアンテナブログ
Intel TDX
- Intel® Trust Domain Extensions
- tdx-module-1eas-v0.85.039.pdf
- Intel® Trust Domain CPU Architectural Extensions - intel-tdx-cpu-architectural-specification.pdf
- Intel® Trust Domain Extensions - SEAM Loader (SEAMLDR) Interface Specification - intel-tdx-seamldr-interface-specification.pdf
- Architecture Specification: Intel® Trust Domain Extensions(Intel® TDX) Module V0.931 - tdx-module-1.0-public-spec-v0.931.pdf
- Guest-Host-Communication Interface (GHCI) for Intel® Trust Domain Extensions (Intel® TDX) - intel-tdx-guest-hypervisor-communication-interface-1.0-344426-002.pdf
Intel VT
- MSI/MSI-Xとx2APIC - 睡分不足
- syuu1228/howto_implement_hypervisor: Software Design誌の連載「ハイパーバイザの作り方」の原稿公開用リポジトリ
- ハイパーバイザの作り方
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第5回 I/O仮想化「割り込み編・その2」
- BitVisor Updates in 2016
- Intelの仮想化支援機能「Intel VT」とは? - @IT
- 22.9. BIOS で Intel VT-x と AMD-V の仮想化ハードウェア拡張を有効にする - Red Hat Customer Portal
- Intel Virtualization Technology - 自作パソコン入門
- 第6期末セミナー2006-1rev1.ppt
- スライド 1
- KVM PCIパススルー (PCI PassThrough) | nexia inc
- VT-x を有効にしたく て 3 日程できなかったのだが、Windows が余計なお世話をしてた件 | ピックワールド(PIC World)
- VT-d 割り込み再マッパーが無効になっていると ESXi IO 接続の問題または PSOD が発生する (2149592)
- 仮想マシンのプロセッサ設定の構成
- dmamapping.pdf
- sec 1-48 - Willmann2008.pdf
- Satoshi's note: Introductory Study of IOMMU (VT-d) and Kernel DMA Protection on Intel Processors
- iommu.c - drivers/iommu/iommu.c - Linux source code (v5.12.4) - Bootlin
- Hideki EIRAKUさんはTwitterを使っています 「センシティブ命令といっても VMEXIT につながらない命令もあるから厄介」 / Twitter
- 【仮想化道場】サーバープロセッサのターニングポイントになる? 「Xeon Scalable Processor」(前編) - クラウド Watch
- コード整合性に対する仮想化ベースの保護を有効にする - Windows security | Microsoft Docs
- Sapphire Rapids Update - HotChipsで公開された次世代Xeon SPの新情報 | マイナビニュース
- ASCII.jp:Ice lakeとはまるで異なるSapphire Rapidsの構造 インテル CPUロードマップ (1/4)
VPID
- イスラエルエリカちゃんさんのツイート: "VPIDって、TLBにVM番号のタグ付けたいって理解でいいよね。Nehalem以前はVMentry/exit時にTLB全フラッシュ必要ってIntelが言ってるけど、それって透過的に行われてたのかな、自分でやるのかな。VPID有効時はINVVPIDで選択的にFlashで良いのかな。"
- VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful
- 最近の話題 2008年4月5日
- 最近の話題 2008年8月23日
- SMP環境下でのTLB Consistencyについて - syuu1228's blog
準仮想化
- Linux KVM上でSEIL/x86を使う
- 3.4. 仮想化ハードウェアデバイス - Red Hat Customer Portal
- 第10章 KVM 準仮想化 (virtio) ドライバー - Red Hat Customer Portal
- Virtioについてのまとめ - Qiita
- KVMの準仮想化機能 - 睡分不足
- KVM - ArchWiki
- QEMU - ArchWiki
- Fadisさんのツイート: "virtioを介してホストとゲストで共有されるファイルシステムvirtio-fsを作ろうとしている人の話がLWNの記事になってる。ネットワークを介さずvirtioでホストのfsを共有する事でホストとゲストでページキャッシュとロックの共有が可能になるのが利点らしい https://t.co/tEyrwt9S6x"
- Subscription required [LWN.net]
- virtio virtualbox - Google 検索
- Makoto Kato ︎︎さんはTwitterを使っています: 「virtio-fsか」 / Twitter
- まちカドおるみんさんはTwitterを使っています: 「virtio を hardware で実装してしまうハナシ。確かにどの OS も driver 持ってるしなあ(xv6 でさえ!)>> Virtio without the "virt" [https://t.co/4Z5bszp3QR] https://t.co/gG1Sfcx37N」 / Twitter
- まちカドおるみんさんはTwitterを使っています: 「註・xv6 は元々 IDE driver を持つが RISC-V 版から virtio に切り替わっている」 / Twitter
- virtiofsについて - Qiita
- FadisさんはTwitterを使っています 「virtio-videoドライバがバニラカーネルに入りたがっているらしい。virtio-videoはホストのカメラやキャプチャデバイスからの入力をゲストが直接読む機能と、ホストの動画エンコード、デコードの為のハードウェアをゲストが利用する機能を提供する準仮想化デバイスのドライバ https://t.co/EHbOncnBy0」 / Twitter
- VirtIO Video Driver Coming Together For The Mainline Linux Kernel - Phoronix
- ガラスボーさんはTwitterを使っています 「準仮想化ってXenが最初だと思いこんでいたのだが、どうやらDenaliっていうプロジェクトが初出だったらしい。ずっと勘違いしていた」 / Twitter
- FadisさんはTwitterを使っています 「VirtIO SoundのドライバがLinux 5.13でバニラカーネルに入りたがっているらしい。VirtIO Soundは「パススルーのようにデバイスを占有せず」「Intel HDAのエミュレーションより軽量かつホストがマルチチャネルをハードウェアで処理できる場合それに乗れる」準仮想化デバイス https://t.co/uv7avXPNZL」 / Twitter
- VirtIO Sound Driver Coming For Linux 5.13 - Phoronix
- FadisさんはTwitterを使っています 「linux-5.15からvDPAソフトウェアエミュレーションなデバイスをホストのユーザ空間に実装できるVDUSEが使えるようになるらしい。ユーザ空間プロセスに対してdata path用の共有メモリがマップされ、のcontrol pathからの要求が届くようになる。5.15時点ではvirtio blockのみ対応 https://t.co/xTlp5BAOF6」 / Twitter
- Linux 5.15 Adds VDUSE For vDPA Devices In User-Space - Phoronix
- FadisさんはTwitterを使っています 「vDPAはvirtio互換のバッファを持つハードウェアのバッファ(data path)をゲストに直接見せ、デバイスの制御(control path)をホストのカーネルがvirtioに変換してゲストに見せる事でゲストに生のハードウェアを見せないまま、高速なデータの受け渡しを実現する」 / Twitter
- FadisさんはTwitterを使っています 「vDPAはSR-IOVと組み合わせて複数のゲスト環境にホストの単一のNICをできるだけワイヤーレートに近い性能で提供する為によく用いられる。このような状況ではハードウェアのバッファにゲストから直接書きたいが、1つのゲストにハードウェアの完全な制御を与えるわけにはいかない」 / Twitter
- FadisさんはTwitterを使っています 「s/のcontrol/virtioのcontrol/」 / Twitter
libkrun
- Red Hatのエンジニアが作り始めた新しいVMM「libkrun」 コンテナに特化したミニマリストな実装とは - ログミーTech
- 10分で理解したかったlibkrun / I wanted to understand libkrun but - Speaker Deck
- FadisさんはTwitterを使っています 「libkrun: Red Hatが作り始めた新しいVMM。KVMの上で動く。デバイスのエミュレーションはvirtioを中心に最低限を実装 https://t.co/ULiNjSC3cD #kernelvm」 / Twitter
- containers/libkrun: A dynamic library providing Virtualization-based process isolation capabilities
- Yoshikazu GOTOさんはTwitterを使っています 「・最低限のデバイスエミュレーションとC APIを備えたRust性のMicroVM →virtio-console, virtio-fs, virtio-vsockなどを実装 →Firecrackerなどkらコードを拝借しているらしい #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「・C APIを提供しているのでライブラリとしても使える ・ネットワークコンポーネントにvirtio-netは使わず、vsockベースのTSIという「革新的な方法」で自前実装 #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「・ランタイムの分離レベルがVMなので、いわゆるサンドボックス型のランタイムに分類できる #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「inductorさん:既存のVM型ランタイムとの違い: ・既存の実装は、namespaceをPodごとに分割 ・VMがnamespaceごとなのでコンテナ感では共有のVMを使う →コンテナプロセスはKVMの子プロセスの一つに #kernelvm #kernelvm_tw」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「inductorさん: ・これが ・VMをが分かれていても、同じコンテキストで処理が行われる #kernelvm #kernelvm_tw」 / Twitter
- Hiroshi ShimamotoさんはTwitterを使っています 「PodとVMの内包関係が逆になっているのか #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「QEMUを使ったコンテナのサンドボックス化では同一のPod内の複数のコンテナは同一のQEMUの中で実行される。libkrunはPodの中でコンテナ毎に軽量なVMMを動かす事でよりよい分離を提供する #kernelvm」 / Twitter
Confidentail VM
- suzakiさんはTwitterを使っています 「Googleが発表したデータを暗号化したまま処理する「Confidentail VM」はAMDのSEV: Secure Encrypted Virtualizationが使われています。 SEVではハイパーバイザー非依存でVMイメージに復号をCPUが行います。鍵はリモートアテステーションを使って渡されます。 CCS19論文が詳細 https://t.co/lG0BS0a298」 / Twitter
- Insecure Until Proven Updated:Analyzing AMD SEV's Remote Attestation - 1908.11680.pdf
- suzakiさんはTwitterを使っています 「「Confidentail VM」の説明で紹介したCCS19で発表された論文名は Insecure Until Proven Updated: Analyzing AMD SEV’s Remote Attestation でリモートアテステーションを行うファームウェアに脆弱性につての論文。」 / Twitter
- PublickeyさんはTwitterを使っています 「Google、データを暗号化したまま処理する仮想マシン「Confidentail VM」発表。Google Cloud Next '20:OnAir https://t.co/yUZ1vl0M1y」 / Twitter
- Google、データを暗号化したまま処理する仮想マシン「Confidentail VM」発表。Google Cloud Next '20:OnAir - Publickey
- suzakiさんはTwitterを使っています 「Confidentail VMにはGoogleのAsyloがベースになっている。SGX対応は知っていたがAMD SEVも対応していた。 私の知識はOPEN-SOURCE ENCLAVES WORKSHOP (OSEW 2019)で止まっている? https://t.co/iRts3FY11y Asylo’s unified enclave identity framework (Anna Sapek) ビデオ https://t.co/rFcy1h0WAN」 / Twitter
- Open Source Enclaves Workshop: July 2019
- suzakiさんはTwitterを使っています 「思い出したけど、AMD Secure Encrypted Virtualization (SEV) を活用したTEEはRedhatが開発しているEnarxがある。 これはIETF106のTEEPでも紹介さ入れた。 https://t.co/AxO7d5lW7l https://t.co/Yvh5DDSSke」 / Twitter
- slides-106-teep-sessa-enarx-a-teep-use-case-00.pdf
QEMU
TCG
- msyksphinz_devさんはTwitterを使っています 「もちろん、QEMUのドキュメントや論文にはかなり目を通しました。しかし、やはりコードに触って、デバッグして、書き直して、車輪の再発明をしないと、理解できなかったんですよね。 例えば、「3.4 Direct block chaining」だけ読んで、Block Chainingのイメージを理解できる人が、どれだけいますか?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「Direct block chainingの所、mrubyのJITでそっくりなことをやっているので理解できました。問題は、PCだけではなくCPUの状態でも次のブロックが変わりうると思うのだけど、直接チェックなしでジャンプしちゃっていいのか?と思う。まあ、大部分は問題ないと割り切っているんだろうけど。 >RT」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ここでいうPCはプログラムカウンタね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「qemu、mrubyのJITとよく似た構造なので技術をぱくりたいと思って調べたけど、意外と最新版の詳細が見つからない。ソースがでっかいのでソースを読むにもどこを読んだらいいものか...」 / Twitter
- Miura HidekiさんはTwitterを使っています 「qemu tcgのソースコードあった https://t.co/bKskd4vGNt」 / Twitter
- tcg · master · QEMU / QEMU · GitLab
- Miura HidekiさんはTwitterを使っています 「qemuのTCGの最適化処理を見つけた。定数の畳み込みとかやっている https://t.co/o8Xdul48fH」 / Twitter
- tcg/optimize.c · master · QEMU / QEMU · GitLab
- Miura HidekiさんはTwitterを使っています 「マシンコードレベルで畳み込みとかって効果あるのかしらん?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「READMEに全部書いてあった https://t.co/3YrCVi1PS1」 / Twitter
- tcg/README · master · QEMU / QEMU · GitLab
m68k
- FadisさんはTwitterを使っています 「Linuxカーネルに謎の高性能m68kマシンで動くようにするパッチが現れた話。謎のm68kマシンはCPUこそ古のm68kだが、Android emulatorで使われるGoldfishデバイスが生えており、更にvirtio-gpuやvirtio-9pを含む豊富なvirtioデバイスが生えている https://t.co/hDBxPN953g」 / Twitter
- Linux Kernel Patches Sent Out For A More Powerful Virtual M68k Machine - Phoronix
- FadisさんはTwitterを使っています 「勿論このマシンは実在する訳ではなく、QEMUに実装された仮想のm68kマシン。最も高性能な物理m68kマシン(Quadra 800、1993年)でもメモリを1GBより多く積むことができず、I/Oも貧弱で、「今尚m68k向けにパッケージを作っているディストリ等が苦行を強いられる」問題を解決するために作られた物らしい」 / Twitter
- henrichさんはTwitterを使っています 「ちなみにPortingしてる当のdistro開発者の一人、Amigaかなんかを山積みで貰って嬉々として車に積んでたなー」 / Twitter
- https://twitter.com/toshi_kd/status/1374682701609922569
- QEMU, a Fast and Portable Dynamic Translator | USENIX
- x86 - Where are local APIC addresses in QEMU? - Stack Overflow
- QEMU Developer’s Guide — QEMU 5.1.0 (v5.1.0-11824-g8699890d91-dirty) documentation
- QEMU 5.1.0 Documentation
- QEMU for Windows – Installers (32 bit)
- QEMU for Windows – Installers (32 bit)
- フルスクラッチから作って理解するQEMU (Rust編) - FPGA開発日記
- Rustで作るフルスクラッチQEMU型エミュレータ - Speaker Deck
- uchan 『ゼロからのOS自作入門』3/22発売予定さんはTwitterを使っています 「QEMU(qemu-system-x86_64)でUbuntu 20.04 Desktop版のインストーラを起動しようとしたら、10分くらい待ってもCPUファンがうるさくまわりつづけ、すごいゆっくりとしか処理が進まないんだけど、これはインストーラが重い?あるいはメモリ2GB、CPUは1コアしか割り当ててないのが原因?」 / Twitter
- uchan 『ゼロからのOS自作入門』3/22発売予定さんはTwitterを使っています 「KVMを使ってないからでは?と教えてもらって、-accel kvmを付けたらCPUファンも回らなくなったし普通の速度で動くようになった。もしかしたら自作OSもKVM有効にして動かしたらもっと省エネになるかも。」 / Twitter
- Yoshikazu GOTOさんはTwitterを使っています 「msyksphinz さん:エミュレーションの方法: ・インタプリタ型 →ゲスト命令を1命令ずつ解釈 →実装が簡単だが遅い ・バイナリ変換型 →ゲスト命令をホスト命令に変換 →速い #kernelvm #kernelvm_tw」 / Twitter
- FadisさんはTwitterを使っています 「QEMUはバイナリ変換型で、ゲストの命令セットとホストの命令セットの間に中間言語TCGを持っており、TCGで最適化も行われる、と #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「自作QEMUが動的に生成したコードをgdbから漁れないのでデバッグが辛い→自作QEMUを本物のQEMUの上で実行すれば全ての動きが追いかけられる! #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「QEMUは命令を「分岐にぶつかるまで」のブロック単位でTCGに変換する。→分岐にぶつかった時、分岐後のジャンプ先は大抵固定のアドレス→一度ジャンプ先に飛んでジャンプ先のTCGが出来たらジャンプ元に生成したジャンプ先のアドレスを埋め込んでジャンプ先を別ブロック扱いしなくて良くする #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「QEMUがやっているような事をそのままRustで書くとRustが知らない所で生成するコードが山ほど出てきてunsafe祭りになる、と #kernelvm」 / Twitter
- 無料のWindows仮想マシンをQEMUで動かす - Qiita
- 第592回 QEMUでGPUの3Dアクセラレーションを利用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第572回 GNOME Boxesを使用する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- QEMUのトレース機能でOSのデバッグを支援する - uchan note
- 第679回 LXD上にWindowsをインストールする:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
Disk Images
- IMG (file format) - Wikipedia
- Disk Images - OSDev Wiki
- ISOイメージ - Wikipedia
- ISO image - Wikipedia
- Apple Disk Image - Wikipedia
- Disk Images — QEMU 5.0.92 (v5.1.0-rc2) documentation
- virtualization - RAW disk image and .Img format, Difference? - Super User
- 第11章 QEMU-img および QEMU ゲストエージェント Red Hat Enterprise Linux 6 | Red Hat Customer Portal
- 14.12. qemu-img でサポートされる形式 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
- 28.3. qemu-img の使用 Red Hat Enterprise Linux 5 | Red Hat Customer Portal
- GitHub - libarchive/libarchive: Multi-format archive and compression library
- libarchive - C library and command-line tools for reading and writing tar, cpio, zip, ISO, and other archive formats @ GitHub
- libarchive-3.2.0
- LIBARCHIVE-FORMATS(5) - File Formats - YOS OPENSONAR
コンテナ
Kubernetes
スライド
- チェシャ猫さんはTwitterを使っています 「本日 Infra Study Meetup の登壇資料です。#InfraStudy Kubernetes の拡張性を活かし、エッジに延伸するためのプロジェクト @KubeEdge 。単なる軽量化版かと思いきや、調べてみたら普通の Kubernetes とは一味違った仕組みが隠されていました。 猫でもわかる KubeEdge https://t.co/Ksfu0uMkrz」 / Twitter
- 猫でもわかる KubeEdge #InfraStudy / Infra Study Meetup 7th - Speaker Deck
- 拡張性の高い CNI プラグイン Coil v2 の紹介 - Speaker Deck
- 2020 年の秋、改めて学ぶ Scheduling Framework #k8sjp / Kubernetes Meetup Tokyo 35th - Speaker Deck
技術評論社
- 第641回 LXDとmicrok8sでシングルサーバーをKubernetesクラスターにする:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 2020年12月4日 AWS,Kubernetesディストリビューション「Amazon EKS Distro」をオープンソースで公開:Linux Daily Topics|gihyo.jp … 技術評論社
- 第670回 Kubernetes IDEであるLensをMicroK8sで使う:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
infoQ
- Kubernetes Operatorの深層
- マイクロサービスを正しい方法で監視する
- ConfluentがConfluent for Kubernetesを一般向けに提供することを発表
- SUSEがHarvester v0.2.0をリリース
- Kubernetesに異を唱えるAbly
- "分散システムの8つの嘘”を振り返る
- NSAとCISAがKubernetes強化ガイダンスを公開
Publickey
- 軽量でインストールも簡単なシングルバイナリのKubernetesディストリビューション「k0s」、Mirantisがオープンソースでリリース。LinuxとWindowsに対応 - Publickey
- Kubernetes上でVMのライブマイグレーション、バックアップ、PXEブートなど可能に。ハイパーコンバージドインフラを実現する「Harvester」、Rancher Labsがベータ公開 - Publickey
- KubernetesのノードとしてWebAssemblyランタイムを用いる「Krustlet」、CNCFのサンドボックスプロジェクトに申請 - Publickey
- VMware、無償のKubernetesディストリビューション「VMware Tanzu Community Edition」リリース。AWS、Azure、ローカルマシンなどに導入可能 - Publickey
blog
- Kubernetes Internal #1を開催しました - bells17 - Medium
- BuildKitを使ってKubernetes上でイメージをビルドする [KubeCon EU発表レポート] | by Akihiro Suda | nttlabs | Medium
- Kubernetes 用 CNI プラグイン Coil v2 の紹介 - Cybozu Inside Out | サイボウズエンジニアのブログ
- Neco の宣言的なサーバー全台再起動の仕組み - Cybozu Inside Out | サイボウズエンジニアのブログ
- Flaky Testとの戦い - Cybozu Inside Out | サイボウズエンジニアのブログ
- 【暫定版】 Kubernetesの性能監視で必要なメトリクス一覧とPrometheusでのHowTo - kashionki38 blog
- Kubernetes 1.20からDockerが非推奨になる理由 - inductor's blog
- Dockerは非推奨じゃないし今すぐ騒ぐのをやめろ - Cloud Penguins
- あなたの知らないKubernetesのServiceの仕組み | IIJ Engineers Blog
- 【動画あり】Kubernetesで利用するストレージはどんなことを考える必要がある? | IIJ Engineers Blog
- 電子手帳とKubernetes | IIJ Engineers Blog
- たった60秒でKubernetes環境を構築できる「MicroK8s」にHAクラスター機能が追加 - GIGAZINE
- How to Schedule Machine Learning Workloads Nicely In Kubernetes | CloudNative Days Tokyo 2020
- チェシャ猫さんはTwitterを使っています 「正直、Kubernetes で Docker が非推奨になって影響を受けるのはクラスタをセットアップする側だけで、大多数の Kubernetes を使う側の人間には大して影響ないと思うが何故こんなに盛り上がってるんだ…。」 / Twitter
- qwerty2501さんはTwitterを使っています 「そういえば同僚氏がk8sやってGAEやCloud Runのほうが断然良いって言ってたの思い出した」 / Twitter
- App Engine アプリケーション プラットフォーム | Google Cloud
- Cloud Run: コンテナを秒単位で本番環境にデプロイ | Google Cloud
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「「Kubernetes は現代の Multics だ!」 https://t.co/tT48exlsMR」 / Twitter
- Summer Blog Backlog: Distributed Systems
Kata Container
- コンテナランタイムKata Containersの実行検証 - Qiita
- Kata Containers Home | Kata Containers
- コンテナの軽量さと仮想マシンの堅牢さを兼ね備えた新しいコンテナ実装「Kata Containers」、OpenStack Foundationが発表 - Publickey
- コンテナを軽量VMで隔離するKata Containersがついにv1.0をリリース | TechCrunch Japan
- runC vs. cc-runtime vs. kata-runtime?コンテナランタイムの内部構造と性能比較 | Think IT(シンクイット)
- カタコンテナはいかにしてDockerコンテナのセキュリティを強化しているのか | S-Port|鈴与シンワート
- Kata Containers
- Why Kata Containers doesn’t replace Kubernetes: – Kata Containers – Medium
- Kata Container – Kata Containers – Medium
- OpenStack発のコンテナ実装「Kata Containers 1.0」リリース | OSDN Magazine
- Firecrackerはコンテナランタイムなのかという話 - inductor's blog
システムコール
- FadisさんはTwitterを使っています 「linuxによそのプロセスのアドレス空間で処理を実行するprocess_vm_execを追加する提案の話。この関数は引数で指定したpidのプロセスのアドレス空間で引数で指定したレジスタの状態から実行を開始する。シグナルやシステムコールの呼び出しが起こると呼び出し元に戻ってくる https://t.co/AXlfb1pShG」 / Twitter
- FadisさんはTwitterを使っています 「コンテナ型仮想化はホストとカーネルを共有している為1つの脆弱性がホストに通る攻撃に繋がりやすい。一方ハイパーバイザ型はオーバーヘッドが辛い。そこでgVisorは、コンテナ内からのシステムコールをカーネルではなくカーネルのふりをするユーザ空間プロセスに処理させる https://t.co/cmTRZXyMNw」 / Twitter
- google/gvisor: Application Kernel for Containers
- FadisさんはTwitterを使っています 「gVisorは現状「システムコールをユーザ空間プロセスで受ける」というマジックをptraceで実現している。ptraceは汎用すぎて性能が良くないので、より効率よくユーザ空間でシステムコールを受ける手段としてprocess_vm_execが役に立ちそう、と」 / Twitter
- Shinji KonoさんはTwitterを使っています 「コンテナはプロセスに対するメタ操作として定義されるべき」 / Twitter
blog
- dockerと称するもの | IIJ Engineers Blog
- 我らの時代のコンテナデプロイ – Nomad, Consul, Vault | IIJ Engineers Blog
- Project Zero: Who Contains the Containers?
- コンテナレジストリの可用性を高める取り組み - Cybozu Inside Out | サイボウズエンジニアのブログ
- 分散ストレージCephのオーケストレータRookのデータ破壊バグを修正しました - Cybozu Inside Out | サイボウズエンジニアのブログ
- 軽量Dockerイメージに安易にAlpineを使うのはやめたほうがいいという話 - inductor's blog
- コンテナのデザインパターンを学べる論文「Design patterns for container-based distributed systems」を読んだ - kakakakakku blog
- Docker rootlessで研鯖運用 - drgripa1
- Java 8ランタイム・コンテナ・イメージの作成とデプロイ - 赤帽エンジニアブログ
- Docker(コンテナ型仮想化)と Kubernetes についての簡単な紹介 – ゆびてく
- 【Podman v3】ルートレスモードでdocker-composeを実行する - 赤帽エンジニアブログ
- 今の私が持っていないskillを考える · drumato.com
Publickey
- Docker Hub、6カ月使われていないコンテナイメージの削除計画を保留に。従量課金ベースの料金プランを検討へ - Publickey
- AWSがDocker Hubの代替サービスを発表予告。パブリックにコンテナイメージを公開可能で50GBまで無料、AWSからなら何度でもプルし放題に - Publickey
- Docker Hubの無料プランにおける利用制限、オープンソースのプロジェクトは適用外にするとDocker社が発表 - Publickey
- コンテナランタイムの仕組みと、Firecracker、gVisor、Unikernelが注目されている理由。 Container Runtime Meetup #2 - Publickey
- GitHubによるDockerコンテナレジストリ「GitHub Packages Container registry」が正式サービスに - Publickey
- 「Docker Dev Environments」発表。Dockerコンテナを使ってコードと同様に開発環境をバージョン管理、共有、再現可能に - Publickey
- Docker Desktop 3.6正式版リリース。Dockerを用いて開発環境のバージョン管理ができるDev Environments機能など搭載 - Publickey
- Kubernetesは、ITを「チケットドリブン」から「インテントドリブン」へ変えていく。Cloud Operator Days Tokyo基調講演 - Publickey
- Dockerコンテナをサーバレス化する「Google Cloud Run」で、非同期処理やバックグラウンドタスクなどが実行可能に - Publickey
- コンテナ標準のOCI対応、クラウドネイティブなWebAssemblyランタイム「WasmEdge」が、CNCFのサンドボックスプロジェクトに採用 - Publickey
GIGAZINE
- 無料のLinux向けAndroidエミュレーター「Anbox」レビュー、カーネルをホストと共有するコンテナ方式 - GIGAZINE
- DockerコンテナやKubernetesクラスタをGUIで管理できる「Portainer」レビュー - GIGAZINE
GitHub
- flouthoc/vas-quod: Minimal linux container runtime.
- rrreeeyyy/container-internship
- うたもくさんはTwitterを使っています 「Rustの自作コンテナランタイムを公開しました!🎉🎉 コンテナ界隈に入門したかもしれない。 devcontainerで実行できるのでvscodeとかを使って簡単に開発環境を構築できるのでぜひ試してみてください。 反応が良かったらゼロから作るコンテナランタイムとか書きたい。 https://t.co/wkfeYansug https://t.co/8Lc32LKk4f」 / Twitter
- utam0k/youki: Rust experimental implementation of the oci-runtime
- うたもくさんはTwitterを使っています 「Dockerで動かせるのでぜひぜひ遊んでみてください。そしていっぱい壊れると思います…」 / Twitter
- R. ShioyaさんはTwitterを使っています 「Docker で外部からマウントしたディレクトリへのアクセス時に root とか Docker 内のユーザー ID になってしまうので困る問題,verilator の Dockerfile に模範解答があった.単にユーザー ID 指定で起動してマウントしたディレクトリに直に行けば良いだけだった・・・ https://t.co/JhFXsbognf」 / Twitter
- verilator/ci/docker/run at master · verilator/verilator
- R. ShioyaさんはTwitterを使っています 「あらかじめ内部にユーザーを作っておいて後から外部のユーザーと ID を同期させるとか考えるから話がややこしいのであって,ユーザーもホームディレクトリも作らずいきなりユーザー ID 指定でマウントしたポイントから起動すればいいだけだったわ・・・」 / Twitter
技術評論社
- LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術:連載|gihyo.jp … 技術評論社
- 第678回 distrobuilderでLXD/LXC用のカスタムイメージを作成する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第683回 LXDコンテナ上にUbuntuのフルデスクトップ環境を構築する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- 第686回 Bubblewrap/bwrapを使って管理者権限なしで非特権コンテナーを作る:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
infoQ
- Dockerがイメージの有効期限の適用を一時停止し、サブスクリプションプランを発表
- Docker Hub公開イメージ400万の半数に重大な脆弱性が見つかる
- Sysdig: コンテナセキュリティのシフトレフトとDocker利用の減少
- Docker Engine 20.10リリース:cgroups v2とデュアルロギングをサポート
- Docker、AWS ECSおよびMicrosoft ACI用Composeのオープンソース化を発表
- 悪意を持ったコンテナイメージを直接ホスト上に構築する攻撃手法が明らかに
- Compose仕様コミュニティに関するQ&A
- AWS App Runnerについて - AWSコンピュータサービスVPのDeepak Singh氏とのQ&A
- Googleがコールドスタート低減のために最小インスタンスを導入
Zenn
- Docker 20.10のリリースノートを眺める
Twitter
- R. ShioyaさんはTwitterを使っています 「今まで Docker を使ったことなくて触ってみたのだけど,とりあえずクロスコンパイラを中にいれて外部ディレクトリをマウントしてポータブルなコンパイラを… というのが内部のユーザー ID と外部の ID を動的に一致させるきれいな方法がなくていきなりつまずいた」 / Twitter
- R. ShioyaさんはTwitterを使っています 「Mac だとなんか勝手に外部のユーザー ID の権限に変換してくれるみたいだし,Windows も大丈夫くさいのだけど,Linux は内部の ID のままの権限で書き込むようで,結構大事なところだと思うんだけど挙動が揃ってなくていいんだろか」 / Twitter
- Akso de la MalbonoさんはTwitterを使っています 「ホストのディレクトリを bind mount して Docker コンテナ内から書き出したファイルをローカル側から見ると owner が root になることに対する怨念が蓄積していくことで世界は急速に滅亡の道を辿っている.」 / Twitter
- FadisさんはTwitterを使っています 「@Cryolite 雑要約: その問題を解決するためにいくつかの方法が提案されてきたが、バニラカーネル入りを果たした物はまだ無い https://t.co/XJSKVk0VpH」 / Twitter
- mumumuさんはTwitterを使っています 「FreeFlow: Software-based Virtual RDMA Networking for Containerized Clouds [NSDI '19] コンテナから,Portabilityを保ったままやRDMAを使うために,仮想的なRDMAモジュールが実際のRDMAをinterceptする.その際のメモリ構造をどうするか(ポインタの意味の扱いや性能劣化防止)といった問題に対処」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「コンテナの中でさらにnamespace使ってリソース制限するのって可能なのかしら」 / Twitter
- 神速さんはTwitterを使っています 「フロントエンドに限らず、開発環境でDockerを使わない方が速いのは、それはそう。 Dockerを使うのは日常の開発速度じゃなくてコントリビュートの敷居を下げる(=開発環境の初期構築を早くする)必要があるかどうかの違いだと思ってる。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そうなんだけど、ディスクが余った & capability が制限できるようになった & overlayfs が使えるようになった、の3要素が揃ったからこそ、ようやく使い物になったというのもあって」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「linux、一時期はサーバOSとしての「マインドシェア」あったけど、最近は「コンテナのランタイム」であってホストOSなんか気にしなくなりつつイメージ」 / Twitter
- uint256_tさんはTwitterを使っています 「docker system prune したら 70GB くらい減った...」 / Twitter
- OCI Distribution Specification v1.0 - Open Container Initiative
- opencontainers/distribution-spec: OCI Distribution Specification
- About · Container Security Book
- とほほのDocker入門 - とほほのWWW入門
- ASCII.jp:Windows 10にはコンテナーがいっぱい (1/2)
- 第47回 非特権コンテナの可能性を広げるseccomp notify機能:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- 日本と世界のDockerコミュニティ
- podman docker 違い - Google 検索
- podman - Google 検索
メモリバルーニング
- メモリバルーニング【仮想化】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- メモリ (バルーン)
- ESXiでのバルーニングはいつ起こるのか - Qiita
- メモリのバルニーングについて - NETWORK ENGINEER BLOG
- VMware ESXにおけるメモリ管理(8) - バルーニング - Simple is Beautiful
- 仮想化におけるメモリー管理テクニック | 仮想(VMware & Hyper-V)/クラウド・エンジニア技術ブログ
- メモリバルーニング(メモリの動的追加) – VirtualBox Mania
- VMwareの監視を始めてみませんか - SiteScope技術情報 | アシスト
- Linuxエンジニア日記 VMware ESXのメモリバルーニング
- ゲスト OS の物理メモリが大量に使われている
- 5.2. クラスターのタスク Red Hat Virtualization 4.1 | Red Hat Customer Portal
- メモリ (バルーン)
- Dynamic Memory使用時に仮想マシンでは何がおきているのか / 開発者向けブログ・イベント | GMO Developers
- macos — バルーニングOSX kernel_taskと有線メモリ使用量を診断する方法は?
- バルーニングOSX kernel_taskと有線メモリ使用量を診断する方法は? | MACOS 2021
- Kazuho OkuさんはTwitterを使っています 「paravirt、メモリバルーニングがあるようにタスクバルーニングもあればいいのに(意訳: VMで並列ビルドしているせいでTwitterが重い)」 / Twitter
/var/log/hdk.log
- 日記 (2014 年 4 月中旬)
- 日記 (2014 年 4 月下旬)
- 日記 (2014 年 4 月下旬)
- 日記 (2015 年 1 月下旬)
- 日記 (2015 年 2 月上旬)
- 日記 (2015 年 2 月上旬)
- 日記 (2015 年 10 月上旬)
- 日記 (2016 年 12 月下旬)
- 日記 (2017 年 1 月下旬)
- 日記 (2017 年 1 月下旬)
blog
- サーバレスの次は「ストレージレス」の実現へ。NetAppがストレージレスを実現する新サービス「Spot Storage」を発表 - Publickey
- KVMのなかみ(KVM internals) - るくすの日記 ~ Out_Of_Range ~
- https://www.kernel.org/doc/Documentation/virtual/kvm/api.txt
- KVMみたいなハイパーバイザを作った
- 「なぜか最初のDHCP DISCOVERに返信がこない」バグ
- 仮想マシンのメモリを、ネットワーク経由でほかのサーバから拝借して増やせる「VMware Cluster Memory」、VMwareが開発中 - Publickey
- 山市良のえぬなんとかわーるど: AMD CPU で Nested Virtualization!(Windows Server 2022 と Azure Stack HCI 21H2 の Preview の話)
- Google、訂正不可能なメモリエラーによるクラッシュを回避する「Memory Poisoning Recovery」をGoogle Cloudで提供へ - Publickey
- RFC8365 Ethernet VPN(EVPN)を使用したネットワーク仮想化オーバーレイのソリューション - show log @yuyarin
- RFC7209 Ethernet VPN(EVPN)の要件 - show log @yuyarin
- VMware vSphere 7 Update 3発表。NVMe over TCPサポート、KubernetesによるvSANのトポロジー対応、仮想化GPU付き仮想マシンの起動など新機能 - Publickey
- VMwareが「Project Capitola」発表。vSphereでDRAMや不揮発性メモリを階層化し低コスト大容量メモリ実現、メモリプールとして利用可能に。VMworld 2021 - Publickey
スライド
- Hypervisor.framework(HVF)の中身 - Speaker Deck
Wikipedia
- 仮想化 - Wikipedia
- 仮想機械 - Wikipedia
- ハイパーバイザ - Wikipedia
- x86仮想化 - Wikipedia
- インテル バーチャライゼーション・テクノロジー - Wikipedia
- LPAR - Wikipedia
- PPAR (曖昧さ回避) - Wikipedia
- PowerVM - Wikipedia
GitHub
- intel/haxm: Intel® Hardware Accelerated Execution Manager (Intel® HAXM)
- bao-project/bao-hypervisor: Bao, a Lightweight Static Partitioning Hypervisor
- jovanbulck/0xbadc0de: A Tale of Two Worlds: Assessing the Vulnerability of Enclave Shielding Runtimes
- ARM向け自作ハイパーバイザーT-Visorを公開しました | 己の不学を恥じる
Zenn
- IOMMUについての調査
- EPTについて
- ちょっと詳しいEPT
- 割り込みと仮想化について
- VMMとコンテナの歴史とか
Qiita
- めくるめくLinuxカーネルじゃないLinux実装の世界 - Qiita
- VirtualBoxの仮想マシンの時計がずれるのを防ぐ - Qiita
- ハイパーバイザを作ってみた - Qiita
- Windows Hypervisor Platform (WHP) の使い方 - Qiita
- BitVisor の IOMMU の話 - Qiita
- VT-xとHyper-VとVirtualBoxの関係についてのメモ - Qiita
Twitter
histric-1
- ぬるぽへさんのツイート: "あとあれですね、ファイル共有とメモリの割り当てだけは鬼門なんだけどwsl2はどうするんだろ、前者は9pで普通にsharedやるってちらっと見たけど後者は?hyper-vと同じhot plugで削除はホストOS側から無理やりスワップ?"
- るくすさんのツイート: "単純な興味なんですけど、メモリ割り当てが鬼門になる状況ってどういう時があるんですか? ゲストがOS程行儀よく振る舞ってくれない故ですかね… "
- ぬるぽへさんのツイート: "今回はゲストが本物のlinuxカーネルなので、wsl1と違って一度linux側に割り当てたメモリを解放後にホストに返すのがゲストにだいぶ手を加えないと難しいのでは?という… "
- るくすさんのツイート: "なるほど。恐らくXenのVMコントロールチャンネルみたいな機構があるのかなと思いますが、いずれにせよ多少の準仮想化は必要になるでしょうね MSがこれからオープンにすると言っているオレオレLinuxパッチはその手のドライバかと… "
- ぬるぽへさんのツイート: "ですかねー、まぁやる気とリソースさえあればやればいい話っすからね… "
- るくすさんのツイート: "MSのパワー半端ないすね… "
- SODA Noriyukiさんのツイート: "これって、linux/drivers/hv/hv_balloon.c にある Hyper-V 用 balloon ドライバでは機能が足りないって意味なんでしょうか?もしそうだとするとどのあたりが足りないんでしょう?… "
- ぬるぽへさんのツイート: "実は良いかもしれませんがあまりうまく行った思い出がなく言及し忘れてました... 4年くらい前にhyper-vを使ってた時、バルーニングは全然メモリをホストに返てくれなかった思い出があります(数百MBくらいしか返してくれなかった) 今の状況が改善していればまんま動いてくれるかもしれません… https://t.co/xedpDkniEz"
- SODA Noriyukiさんのツイート: "なるほど、ありがとうございます!… "
- 品川 高廣さんのツイート: "Technion 相変わらず頭のおかしいことやってるなぁ(SMTを使ったNested Virtualizationの高速化: https://t.co/eg0fAMv8Ac)。低レイヤ大好き企業だな。… "
- Using SMT to accelerate nested virtualization
- hrk先生さんのツイート: "次はイスラエルのテクニオンから。SMTを使ってネストされた仮想マシンを高速化する。Hyperviser+VMon VM of cloud environment, etc. 下から、Host Hypervisor, Guest VM, Nested VM etc. VMどうしのスイッチが増えるOverheadを押さえるためSMTの同時実行を使う。"
- hrk先生さんのツイート: "ただアプリが全コアをフルに使うならばコンテクストスイッチの機会が増え、結局オーバーヘッドの減少が限定される。それを解決するため、SVT(実行は1本だがコンテクスト多重をする)を提案。凄くあたらしくはないが、良く考えられている良い結果に見える。ただHWを改造するので現実性はない。"
- Takashi KawasakiさんはTwitterを使っています: 「WindowsでほぼHyper-Vが必須コンポーネントになってしまったので、VMwareもVirtualBoxも使えなくなってしまって、実のところ従来よりも不便になっているのは事実なんだよなぁ。金で解決できない不便さ。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています: 「@kthrtty Hyper-V、使いにくい上に機能も足りないですが、仕方がない部分もありますよね。」 / Twitter
- だよもんフレンズは転職したいさんはTwitterを使っています: 「@masaru0714 @n12i @BsdHacker 仮想環境はXenとかでも同様に、ユーザドメインのOSがLinuxでも*BSDでも同様に、時刻が狂いますね。倍速で遅れたりするのでntpdで同期が間に合わない。性能測定でtimeコマンドが信用できなくて困る。」 / Twitter
- FadisさんはTwitterを使っています 「ハイパーバイザ型のVMでコンソールから電源を落とすだけの為にゲストのlinuxがACPIイベントを正しく処理してユーザ空間のacpidに投げて、ってやるのアホっぽいって事で、電源ボタンのイベントだけを拾ってinitに直接シグナルを投げるtiny power buttonドライバが出来たらしい https://t.co/ooGrKrrhfi」 / Twitter
- Linux 5.7 Getting A "Tiny Power Button" Driver - Phoronix
- [PATCH 0/2] ACPI: Tiny power button driver - Josh Triplett
- retrageさんはTwitterを使っています 「Nabla Containers触ってたときに思ったけどコンテナでもプロセス生成以外にいろんなところが走るので結構遅いんだよね。runncだとコンテナイメージからISO作ったりしてるし」 / Twitter
- だんぼーだよさんはTwitterを使っています 「結構誤解されているぽいですが、最近のハードで Windows 10 を動かしている場合、CPU から見た OS は Hyper-V のハイパーバイザーで、Windows 10 は Hyper-V の上にいることが多いです。意識していないと思いますがセキュリティのため仮想化されています。msinfo32 を昇格して実行すると確認できます。 https://t.co/4g1RgKDjID」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「1960 年代から 2020 年までの仮想化の歴史と分類と特徴をまとめた最高のサーヴェイ論文が 5 月に出たのでみんな読もう #arm_study >> The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers: ACM Computing Surveys: Vol 53, No 1 https://t.co/2aW7emmj0i」 / Twitter
- The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers: ACM Computing Surveys: Vol 53, No 1
- suzakiさんはTwitterを使っています 「@kotatsu_mi ACM Computing Surveysは有料ですが、同じ著書によるarXiv版があります。こちらはPDFが無料。 The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers https://t.co/raeoWNkaGK ちゃんとJournal referenceにComputing Surveysが書かれています。」 / Twitter
- [1904.12226] The Ideal Versus the Real: Revisiting the History of Virtual Machines and Containers
- suzakiさんはTwitterを使っています 「「めくるめくLinuxカーネルじゃないLinux実装の世界」 https://t.co/a0ZnkgGUGJ カーネル/マイクロカーネル/ライブラリOSのAPI互換、市スコールエミュレーション、アプリケーションレベル互換の話。 TEEのABIの脆弱性を解析したA tale of two worlds[CCS19]を思い出した。 https://t.co/h6IR1xjRmT」 / Twitter
- Shinji KonoさんはTwitterを使っています 「VMの中でVMを上げるのは初期に研究があって、sensitive instructions をすべて実装とか言う条件があれば良い。当たり前だが、それを書くのが論文。実際にはCPUがそれようの機能を持ってるかどうかが大きかった。なくてもなんとかしてたが。」 / Twitter
@oshibori_vmm
histric
histric-1
- おしぼりさんはTwitterを使っています 「CPUIDの[bit5]を調べてVMXがEnableなことは確認できた。その後cr4のvmxeビットを1にしてvmxonして例外発生してないが、これはOKなのだろうか。vmxonしてるかどうかを示すフラグとかあれば良いんだけど。」 / Twitter
- おしぼりさんはTwitterを使っています 「0x1F0番portへのioハンドリングできた。 (つまりin命令を正常にハンドリングできるようになった) xv6のkernelとxv6.img をhexdumpしてバイナリ見まくった。たのしー。」 / Twitter
- おしぼりさんはTwitterを使っています 「あ、ちょっと間違い。0x1F0番目のread commandが動くようにしただけなので、ioハンドリングというか本当にin命令が動くようにしただけ。(write commadはまだなので。)」 / Twitter
- おしぼりさんはTwitterを使っています 「これをやる前は.imgの構造について全然理解してなかったけど、hexdump -s 512 -n 4 -C xv6.imgしてkernelのELFファイルのマジックナンバーを見つけたのは結構感動したし理解が深まった気がする。」 / Twitter
- おしぼりさんはTwitterを使っています 「理解も何もただのバイナリだけど。」 / Twitter
- おしぼりさんはTwitterを使っています 「mmioはバイナリをデコードしてオペコードとオペランドを取り出してエミュレートしなけゃダメっぽい。stosb命令でこれが発生している。」 / Twitter
- おしぼりさんはTwitterを使っています 「mp floating pointerのlapic addresからmp configuration tableを参照してlapicのmemory mapped adressをゲットする、というのがxv6のマルチプロセッサ初期化処理で最初にやってること。」 / Twitter
- おしぼりさんはTwitterを使っています 「kvmのAPIC Virtualizationではゲストのlapic 物理アドレスへのアクセスをVMCS経由で予め用意した仮想的なlapicアドレスへリダイレクトする。VMExitが発生しないためオーバーヘッドが小さくなる。」 / Twitter
- おしぼりさんはTwitterを使っています 「というのは分かったが、lapic addressにはそもそも何が置かれているのか、その中身もkvmが初期化してくれるのか、書き込み、読み込みのインターフェースはあるのか、みたいな所をさらに調べないといけない。」 / Twitter
- おしぼりさんはTwitterを使っています 「ちなみにこれは確保したゲスト用メモリサイズがxv6のメモリレイアウトで必要になるサイズ(4G)よりも小さかったので範囲外のメモリアクセスがMMIOとして認識されてただけというオチ」 / Twitter
- おしぼりさんはTwitterを使っています 「ホスト仮想アドレス→ゲスト物理アドレス→ゲスト仮想アドレスと辿る必要がありちょっと混乱するな。ゲストはIdentity Mappingにしてくれというお気持ちになる。(そもそもゲストのメモリ仮想化手法が常に既知とは限らないので、ゲストに割り当てたメモリへの書き込み自体KVMインターフェースを介さずに」 / Twitter
- おしぼりさんはTwitterを使っています 「やるべきではないんだろうな。」 / Twitter
- おしぼりさんはTwitterを使っています 「とはいえSeaBIOSを動かすのちょっと面倒だしなぁ。でもframeBufferとかまでこちらで仮想化する手間を考えるとちゃんとBIOSから起動させた方が早い気もする。」 / Twitter
- おしぼりさんはTwitterを使っています 「KVMのAPIドキュメントが結構overview的な範囲しか網羅してなくて、実際にコード読まないと厳しい気がしてきた。」 / Twitter
- おしぼりさんはTwitterを使っています 「SeaBIOSの仕様調べるの重いなぁ LAPICのエミュレート飛ばして動かせるか考えてみるかぁ( ˙-˙ )」 / Twitter
- おしぼりさんはTwitterを使っています 「mmioを一旦後回しにしてuartを動かすようにした。 とりあえず外部ファイルに「xv6...」を出力するところまではできた。(qemuみたいに別ウィンドウを出してそこにconsole出力させたいのだけど、やり方がわからない)」 / Twitter
- おしぼりさんはTwitterを使っています 「xv6(のmmioを完全に排除してシングルコア前提に書き換えたやつ)が自作VMMが動かすVM上で動いた。 まずは画面出力しないとな…。」 / Twitter
- おしぼりさんはTwitterを使っています 「最終的にはちゃんとlsなどのコマンドが実行出来るようにして、かつSeaBIOSから既読させるようにしたい。」 / Twitter
- おしぼりさんはTwitterを使っています 「mmioを機能させるには、EBA(一部)を正確にエミュレート or SeaBIOSを動かすのどちらかが必要なんだけど、今のところ前者の方が良さげ。(SeaBIOSの中身を知らなすぎる)」 / Twitter
- おしぼりさんはTwitterを使っています 「EBDAの間違い」 / Twitter
- おしぼりさんはTwitterを使っています 「とりあえずLAPICもI/O APICもBDAから取ってきてることはわかった。 1. モックで動かす 2. BDAにちゃんと置く の順番でいけるだろうか…」 / Twitter
- おしぼりさんはTwitterを使っています 「KVMにLAPICの仮想化支援機能があることはわかってるのだけど、VMM側で何をすればいいのかわからん。」 / Twitter
- おしぼりさんはTwitterを使っています 「@tenpoku1000 そうですね、情報量はかなり少ない気がします。 以下の記事を読むと、ring0レベル(BitVisorやKVM)ではVMCSを用いたVMExitを発生させない方法 or EPT Violationによる例外フックのどちらかでAPICを仮想化してそうです。 https://t.co/yvN2NkD792」 / Twitter
- 今週の進捗 - bitvisor-summit-5-3-tomita.pdf
- おしぼりさんはTwitterを使っています 「基本的にはKVMは全てのMMIOをフックしてるんかな。(APIの利用者がどこまでフックしたいかを事前に知る術がないため)」 / Twitter
- おしぼりさんはTwitterを使っています 「メモ: qemu-kvmのコード読めばなんかヒント得られるのでは?(kvmから見たらqemuはユーザランドのVMMなので、今僕がやっているようにAPIでやり取りしているはずなので)」 / Twitter
- おしぼりさんはTwitterを使っています 「ソフトウェア割り込みはin-kernelの割り込みコントローラでハンドリングされるのでVM Exitしないっぽい。 (user-spaceで割り込みコントローラを独自エミュレートしたい場合は指定のAPIを叩いてKVMにそれを伝えればOK)」 / Twitter
- おしぼりさんはTwitterを使っています 「問題はPITだ…。 デバイスをKVMに作る時に設定を渡すのだけど、どんな値を渡せばいいのかAPIドキュメントを見てもさっぱりわからん。」 / Twitter
- おしぼりさんはTwitterを使っています 「タイマー割り込み動いた… 嬉しすぎる……!!」 / Twitter
- おしぼりさんはTwitterを使っています 「色々と悩んで調べた結果、「LAPICとIO APICのbase addressを正しく設定すればVM Exitするまでもなくkvmがよしなにやってくれる」が答えだったのはちょっと残念だが…。」 / Twitter
- おしぼりさんはTwitterを使っています 「まだ不備はあるものの、とりあえず内部割り込みと外部割り込みを動かすことは出来た。vmmからkvmに割り込みを依頼する方法があるはずなので、それを使ってデバイスアクセスの完了を通知する割り込みとかを実装できる気がする。」 / Twitter
histric-2
- おしぼりさんはTwitterを使っています 「最終目標がシェルを動かすことなので、そのために必要なことを整理しよう。」 / Twitter
- おしぼりさんはTwitterを使っています 「ioapicについて理解が進んだ」 / Twitter
- おしぼりさんはTwitterを使っています 「タイマー割り込みが1回だけ動いているので、『LAPICは正常なのでPIC/IOAPICからの割り込みの受信は行えていて、PIT -> PICへ割り込みが送られているので一度だけ割り込みを受信するけどIOAPICによるEOIの書き込みが失敗しているので2回目以降は割り込みが発生しない』なのか?」 / Twitter
- おしぼりさんはTwitterを使っています 「EOIが正しく書き込まれていない事を考えると、やっぱりIOAPICへのmmio全般が失敗している気がする。」 / Twitter
- おしぼりさんはTwitterを使っています 「ちょっと勘違いしていた。xv6ではlapicwriteを使ってtrap内でEOIを書き込んでいるので、lapicへの書き込みが失敗している可能性を考えなくてはいけないのか。 (lapicへの書き込みとioapicへの書き込み, 読み込みあたりが正しく動いていない気がする)」 / Twitter
- おしぼりさんはTwitterを使っています 「kvmのmmioをハンドリングしている部分を読まないとわからないな。lapicもioapicもin-kernelでエミュレートするならこちらからすることはほとんどないと思っていたけど、何かしら設定しないといけないのかも。」 / Twitter
- おしぼりさんはTwitterを使っています 「>KVM emulates 82093AA datasheet (with in-kernel IOAPIC implementation) which doesn't have EOI register naruhodo」 / Twitter
- おしぼりさんはTwitterを使っています 「kvmのコード読むめっちゃ学びがある。(最初からAPI仕様書に書いて欲しいけど)」 / Twitter
- おしぼりさんはTwitterを使っています 「r = kvm_pic_init(kvm); if (r) goto create_irqchip_unlock; r = kvm_ioapic_init(kvm); if (r) { kvm_pic_destroy(kvm); goto create_irqchip_unlock; } ??????」 / Twitter
- おしぼりさんはTwitterを使っています 「なぜdestroyするのだ…」 / Twitter
- おしぼりさんはTwitterを使っています 「しかもこの後irq_routingを設定するとioapicもdestroyしてる」 / Twitter
- おしぼりさんはTwitterを使っています 「お、ioapicのredirection tableは設定出来ている。(でもベクタ番号が32~55の24個になっている) ベクタ番号は0から24じゃないのかな」 / Twitter
- おしぼりさんはTwitterを使っています 「0から23、だ」 / Twitter
- おしぼりさんはTwitterを使っています 「execの中ののnameiの中のnamexの中のilockの最後の方でpanicしてる。 そもそもsuper blockの情報を見るとinodeの数が0とかになってるのでそこからおかしいのか?」 / Twitter
- おしぼりさんはTwitterを使っています 「どうやらディスク読み込みを通知する割り込みが機能していないみたい。」 / Twitter
- おしぼりさんはTwitterを使っています 「IOAPICをuser-spaceでエミュレートしないといけない気がしてきた。 どう頑張っても今使っているAPIだとPICを一緒に作っちゃうので外部割り込み出来ない。(MSIとかは分からないけど)」 / Twitter
- おしぼりさんはTwitterを使っています 「ioapicのエミュレートを自分でやる場合はPITをin-kernelで作るか検討しないといけない。」 / Twitter
- おしぼりさんはTwitterを使っています 「もはやLAPICをin-kernelでやる意味を見いだせなくなりつつある…。 user-spaceに作るかぁ…。」 / Twitter
- おしぼりさんはTwitterを使っています 「いい感じに割り込みをpendingしておく仕組みさえ作れば普通に動作する気はする。」 / Twitter
- おしぼりさんはTwitterを使っています 「in-kernelなLAPICを引退します」 / Twitter
- おしぼりさんはTwitterを使っています 「とりあえず割り込みのエミュレートが上手くいってユーザプロセスが動くようになったらブログ書きたい。」 / Twitter
- おしぼりさんはTwitterを使っています 「雑にLAPICをuser-spaceでエミュレートした。」 / Twitter
- おしぼりさんはTwitterを使っています 「PITもエミュレートしないといけないやんけ(絶望)」 / Twitter
- おしぼりさんはTwitterを使っています 「とりあえずuser-spaceから外部割り込みをinjectしてxv6のtrap(割り込みハンドラ)を呼ぶことに成功した。」 / Twitter
- おしぼりさんはTwitterを使っています 「xv6のpanicもちゃんと消えた。」 / Twitter
- おしぼりさんはTwitterを使っています 「uartのエミュレートもやる事はわかってるので後はやれば行ける気がする (今はwriteだけを前提に雑にやってるのをちゃをreadされても良いようにデータを保持すればよいはず)」 / Twitter
- おしぼりさんはTwitterを使っています 「ちゃを→ちゃんと」 / Twitter
- おしぼりさんはTwitterを使っています 「人に発表したりブログを書くとなると、そもそもどうやって非64bit環境向けにコンパイルされたバイナリを実行しているのかちゃんと知らないといけない。 ホストで実行は普通に無理なはずなので、qemu使ってるのかな…。」 / Twitter
histric-3
- おしぼりさんはTwitterを使っています 「自分とは全く違うやり方だったのでとても参考になる。」 / Twitter
- かずみんさんはTwitterを使っています 「はてなブログに投稿しました #アドベントカレンダー2020 ホスト型ハイパーバイザー の作り方 part.1 - KazuminEngine https://t.co/TnDIJAulWt」 / Twitter
- ホスト型ハイパーバイザー の作り方 part.1 - KazuminEngine
- エミュレーターの作り方(はりぼてOSが動く) - KazuminEngine
- kazuminn/EEMU: toy Emulator to hariboteOS and xv6 and toy hypervisor
- おしぼりさんはTwitterを使っています 「年末に自作VMM(と言ってもKVMを使ったホスト型)のここまでの進捗をブログに書くぞ(多分)」 / Twitter
- おしぼりさんはTwitterを使っています 「せっかくなのでuserプロセスがちゃんと起動する(シェルはまだ使えない)ところまで実装したいけど、今週そこまでいけるか微妙」 / Twitter
- おしぼりさんはTwitterを使っています 「割り込みの(正確な)エミュレート、難しすぎるな…。 KVM側の仕様も理解していかないと厳しそう…。」 / Twitter
- おしぼりさんはTwitterを使っています 「fs.imgを正しい場所にロードすれば今の問題は解決する気がするんだよなぁ。うーん。(ファイルシステムのメタ情報などはdisk1にあって、kvmmはまだdisk0しか仮想化できていなかった)」 / Twitter
- おしぼりさんはTwitterを使っています 「こいつのコードリーディングをやりたいと思っているが、「いや、まずはKVM読めよ」というもう1人の自分がいる・・・。(読んではいるけどまだまだ理解が浅い) https://t.co/oFspcpIVkh」 / Twitter
- google/novm: Experimental KVM-based VMM for containers, written in Go.
- おしぼりさんはTwitterを使っています 「そもそも32bit環境向けにコンパイルしたバイナリを実行しようとした場合はqemuに投げてIntel VT-xは使ってないと思ってるんだけど合ってるのかな。」 / Twitter
- おしぼりさんはTwitterを使っています 「自作VMMでxv6のコマンド待ち受けらへんまで動いた。(正確には"$"を出力する所まで。その後panicする)」 / Twitter
- おしぼりさんはTwitterを使っています 「コマンドの実行までいけなくとも、コマンド待機する所まではいきたいな〜っと思ってたので目標達成できた。」 / Twitter
- おしぼりさんはTwitterを使っています 「うーん、lockされてちゃいけないinodeがlockされてるっぽい?」 / Twitter
- おしぼりさんはTwitterを使っています 「直ったかも…?🙄 (怪しさを感じるところを直したらpanicしなくなったものの全く自分で説明できないし納得感もない顔)」 / Twitter
- おしぼりさんはTwitterを使っています 「sleep内にデバック用で挟んでたcprintfを削除したらpanicしない。 何回か試したけどちゃんと再現性はある。」 / Twitter
- おしぼりさんはTwitterを使っています 「ブログはまだ書けてないけど、一足先にREADMEなどをちょっと整えました。(ちゃんとリポジトリを整えるのが初めてなので、間違いやアドバイスなどあれば指定して頂けると嬉しいです)https://t.co/nBSr658PDh」 / Twitter
- tomoyasuzuki/kvmm: kvmm is a type2 hypervisor that uses the Linux Kernel Virtual Machine(KVM).
- おしぼりさんはTwitterを使っています 「ライセンス等はまだ自分がちゃんと理解出来ていないので、調べてからちゃんと記載するつもりです。」 / Twitter
- おしぼりさんはTwitterを使っています 「実装はカスなんだけど、コードは全部main.cに書いてあるし700行くらいしかないので、kvm使いつつハードウェアエミュレーションまでやってるリポジトリの中ではめっちゃ小さくて理解しやすいと思います(可読性がい良いとは言っていない)」 / Twitter
- おしぼりさんはTwitterを使っています 「動作環境はUbuntu18.04です。 他の人の環境で動かすにはxv6のパスを書き換えなくちゃいけないのはいつか直します…。(とはいえコード見れば秒で終わる修正です)」 / Twitter
- ykskb/dax86: xv6-runnable x86 Emulator
- おしぼりさんはTwitterを使っています 「ホストのSerial PortをVMのSerial Portへマップするにはどうしたらいいのだろう。QEMUとかが実現しているので可能なはずなんだが…。」 / Twitter
- おしぼりさんはTwitterを使っています 「僕に必要なのはキーボード割り込みではなくUART割り込み+ホストとVMのSerial Portのconnectなんだ、って事までは分かった。あとは実現方法がわからん…。」 / Twitter
- おしぼりさんはTwitterを使っています 「ホストのSerial Portへの書き込みは普通に出来るはずで、問題はそれをどうやってゲストのVMに繋げるかなんだよな。」 / Twitter
- おしぼりさんはTwitterを使っています 「確かこれをuchanさんがサラっと言っていた気がするんだけど、ちゃんと実現方法まで聞いとけばよかったな。」 / Twitter
- おしぼりさんはTwitterを使っています 「なんとなくイメージは出来たかも(?) ホストのPortへread/writeできれば、ホストからの入力をちゃんとVMの方にセットしてuart割り込み発生させればいける、気がする。」 / Twitter
- おしぼりさんはTwitterを使っています 「/dev/ttyS0は見えてるのにInput/Output errorとやらが出るな」 / Twitter
- おしぼりさんはTwitterを使っています 「見えてるけど setserial すると UART: unknownになるな。」 / Twitter
- おしぼりさんはTwitterを使っています 「標準入力をUARTにマップしてxv6側で出力させるとこまで出来たのだけど、なぜかコマンドが実行できない。」 / Twitter
- おしぼりさんはTwitterを使っています 「しばらく悩んで時間かかりそうだったらMP対応からやるかなぁ…。」 / Twitter
histric-4
- おしぼりさんはTwitterを使っています 「BitVisorはvmxon_region用のメモリを動的確保しているけど、(後で修正するとしても)今はグローバル変数でいいかも。とにかくステップバイステップで進めたい。」 / Twitter
- おしぼりさんはTwitterを使っています 「VT-xの有効化はcr0とcr4あたりのビット立てたりしてvmxonするだけなので、まずはvmxonで例外が投げられないことが目標だと思う。その次に仮想CPUのセットアップ、vmcsのセットアップと続くのかな・・。」 / Twitter
- おしぼりさんはTwitterを使っています 「例外は全部シリアル通信でやる様にしてたのでやっぱ先にシリアル通信だろうか。一時的に例外ハンドラを書き換えればprintデバッグでも問題ないけど・・・。」 / Twitter
- おしぼりさんはTwitterを使っています 「kvmが提供するAPIをつかってVMMつくる方針のほうがまだ現実味ある気がしてきたな。Intel VT-xの機能はkvmから提供されるのでエミュレートの方がメインになるけど。 (Type1をいきなりつくるのが厳しすぎる)」 / Twitter
- おしぼりさんはTwitterを使っています 「Type2ハイパーバイザでまともに動くのもそんなに多くないし頑張れば新規性出せるのでは (願望)」 / Twitter
- おしぼりさんはTwitterを使っています 「とても参考になる。本当にminimalって感じだ。 https://t.co/JptDUJpQOF」 / Twitter
- dpw/kvm-hello-world: A minimal kvm example
- おしぼりさんはTwitterを使っています 「もうちょっと大きい https://t.co/Zk1o6BolrZ」 / Twitter
- kvmtool/kvmtool: Stand-alone Native Linux KVM Tool repo
- おしぼりさんはTwitterを使っています 「memo https://t.co/5Wj0zkNv4i」 / Twitter
- sparkler/main.c at master · shuveb/sparkler
- mumumuさんはTwitterを使っています 「xMP: Selective Memory Protection for Kernel and User Space [S&P '20] Data-Orientedな攻撃のMitigationというコンテキストで,VUMFUNC/EPTを活用することで細かくメモリの権限を制御(Excutable-onlyや存在するがアクセスできない)したドメインの作成・遷移プリミティブを実装」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「Intel VT-x/Intel VT-d/Intel EPT に対応する AMD 用語、それぞれ AMD-V/AMD Vi/AMD RVI なんだけど、いっつも後者は AMD-V までしか覚えてない」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「あとこれを確認しようとして、IA-64 の Intel VT 技術が Intel VT-i、SR-IOV のようなネットワーク I/F の仮想化とかそこらへんは Intel VT-c の一部、ということをさっき把握した。」 / Twitter
- てらモス♋️さんはTwitterを使っています 「> NIC は SRIOV 経由で VM に渡されるため、ネットワーク トラフィックがハイパーバイザーをバイパスできます。 その結果、標準の Mellanox OFED ドライバーが、ベアメタル環境と同様に HBv3 VM にロードされます。 https://t.co/CWpyJGzi8P」 / Twitter
- HBv3 シリーズ VM の概要、アーキテクチャ、トポロジ - Azure Virtual Machines - Azure Virtual Machines | Microsoft Docs
- おしぼりさんはTwitterを使っています 「Intelの場合VMCSへのアクセスがvmread, vmwriteなどの特権命令でしか行えないのがNested Virtualizationにおいてはつらいっぽいな。AMD だとVMCBへのアクセスは普通のメモリアクセスなのでguest hypervisorからのexit回数が段違いっぽい。」 / Twitter
- おしぼりさんはTwitterを使っています 「まあ実際hypervisorのexit handlerでほぼ確実に複数回のVMCSへのアクセスが必要になるのでこれはつらい。準仮想化する or 動的バイナリ変換で通常のメモリアクセスを行う命令に変換する研究もあるっぽい。」 / Twitter
- おしぼりさんはTwitterを使っています 「Software Techniques for Avoiding Hardware Virtualization Exits [USENIX ATC'12] VMExitにおける時間的なローカリティ(あるexitの近くにexitがある)を利用して、exitを起こす連続した命令をまとめることでexitの回数を減らす。面白かった。」 / Twitter
- おしぼりさんはTwitterを使っています 「仮想化とバイナリ変換は結構関連の深い分野なんだなー (QEMUとかを念頭に置くとそれはそう、という気もしなくはない)」 / Twitter
- おしぼりさんはTwitterを使っています 「とりあえずx86がnested virtualizationに向いていないことはわかったよ...」 / Twitter
- おしぼりさんはTwitterを使っています 「キャッシュ汚染や割り込み終了時のEOIで発生するオーバーヘッドに関しては、VPIDやAPIC virtualizationである程度解決できる部分ではあるのかな。」 / Twitter
- おしぼりさんはTwitterを使っています 「SDMを読んでてVMCS shadowingとVMREAD/VMWRITE bitmapなるものを知った。ちゃんと対策してきているんだなあ...(古い論文を読んでいると古い知識を仕入れたちなので、定期的にSDM読むの大事だなと思った)」 / Twitter
- おしぼりさんはTwitterを使っています 「バイナリ計装でいい感じに任意の行にデバックコードを挿入する、みたいな方法とかツールないのかな。 QEMUにgdb繋いだらゆーて似たようなもんか…?」 / Twitter
- おしぼりさんはTwitterを使っています 「VMMの開発をしているとVMで動かすコードの挙動を追いたいことが結構あるのだけど、KVMとかを使うType2だとKVMの提供するタイミングでしかExitできないので柔軟性が微妙な気がする。となると動かすバイナリに自体にデバッグコードを挿入してprintデバッグしたくなるみたいな…。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@oshibori_vmm CPUID 命令(の、空き領域)をデバッグ用途で埋め込んでおけば、そのタイミングで vm_exit してくれるかもとか、思いました: KVMにおけるcpuid命令の取り扱い - 睡分不足 https://t.co/9BqJVvcKPp」 / Twitter
- おしぼりさんはTwitterを使っています 「@tenpoku1000 似たようなやり方でio命令でexitさせことは簡単に出来るのですが、あくまでexitするだけでデータが渡しにくいのが悩みですね…。 ポインタを無理やり書き換えて未割り当て領域へのアクセスをmmioでexitさせる、とかは割とアリな気がします。(これもちょっと面倒な気もしますが)」 / Twitter
- おしぼりさんはTwitterを使っています 「mmioでexitさせると最大8バイトまでデータを渡せるのが嬉しい。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@oshibori_vmm CPUID 命令で渡せるのは EAX, EBX, ECX, EDX の各レジスタなので、ゲストのアドレスを渡すことは可能だと思います。(ホスト側からゲストの空間が見えるなら)データを引っ張って来れるかなと」 / Twitter
- 市川 真一さんはTwitterを使っています 「@oshibori_vmm 訂正:EAX と ECX ですね」 / Twitter
- おしぼりさんはTwitterを使っています 「標準出力がバッファリングされてしまってうのはfflushで解決できた。 あとはユーザーの入力と同じ出力が繰り返されてしまう問題。(標準入力の値を仮想UARTにバッファリングして割り込みを起こしているけど、xv6の割り込みハンドラでも出力してしまう為)」 / Twitter
- おしぼりさんはTwitterを使っています 「入力を監視してコマンド実行プロセスを起こすのも割り込みハンドラがやっているので、割り込みは必須だし値を渡さないといけないのも必須なんだよなぁ。1番簡単なのは、xv6のコードを書き換えて割り込みハンドラ内で出力だけさせないようにする。」 / Twitter
- おしぼりさんはTwitterを使っています 「うん、これは理想通りの挙動をするな。本来OSがやることをホスト側でやってるのだから、OSに若干手を加えないといけないのは当たり前か。」 / Twitter
- おしぼりさんはTwitterを使っています 「なんかコマンド動かないなと思ったけど、単純にコマンド用のバイナリがルートに置かれているので、新しく作ったディレクトリでコマンド実行できないな。(qemuでも同じ挙動なので仕様か)」 / Twitter
- おしぼりさんはTwitterを使っています 「@t9jyc termiosが何かすらよく分からなかったので調べてみました。エコー関係の設定とはc_iflagフラグに設定するECHO,ECHOE 等のことで、今回の文脈では標準入力をエコーしないように設定すればよい、という話でしょうか?」 / Twitter
- おしぼりさんはTwitterを使っています 「@t9jyc termiosも知らなかったので勉強になりました。出来るだけOS側は書き換えたくないので、このやり方でやってみます。 ありがとうございました!!」 / Twitter
- おしぼりさんはTwitterを使っています 「@t9jyc c_lflagでしたね。僕の勘違いでした。」 / Twitter
- おしぼりさんはTwitterを使っています 「自作VMMでコマンドによるVMの操作ができるようになった。ブレークポイント貼ったりもできます。」 / Twitter
- おしぼりさんはTwitterを使っています 「今はアドレスでしかブレークポイント貼れないので、それを関数名で貼れるようにELFの解析もしていくぞ。」 / Twitter
- おしぼりさんはTwitterを使っています 「VMM経由で自作OSに簡単にネットワーク機能を実装できるようにする、を次の次の目標くらいにしたい。 とりあえずはデバッグ機能やトレース機能をもう少し充実させるところから。」 / Twitter
- おしぼりさんはTwitterを使っています 「プロトコルスタック自作したりvirtioに対応させたりするのは面倒すぎるので、VMMで用意した独自のレジスタへのread, writeだけでネットワーク通信できるようにする、みたいのが理想(できるかは本当にわからないので半分妄想みたいなものだけど)」 / Twitter
- VMMを自作してみた - おしぼりの日常
- おしぼりさんはTwitterを使っています 「VM外からゲストOSのシステムコールを呼び出してセマンティックギャップを解決するのはそれなりに一般的な手法だと思うのだけれど、lsやpsなどのコマンドの出力先を良い感じにいじらないと情報が得られない気がするな...(うまく言語化できない)」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「@oshiborii アンチパターンなはずです。VMM -> Non VMM call out は脆弱性になります。ゲスト内エージェントがVMMに情報を送るか、VMMがメモリを解析してゲストに戻らずゲストの状況を把握するのが一般的かと」 / Twitter
- おしぼりさんはTwitterを使っています 「@SatoshiTanda アンチパターンだったんですね、割とメジャーな手法だと思ってたので意外でした(どの論文もセキュリティリスク自体には触れていたので当然といえば当然かもですが...)。VMMからメモリを解析する場合、生のメモリから意味のある情報を得るのは難しかったりするのでしょうか?」 / Twitter
- Satoshi TandaさんはTwitterを使っています 「@oshiborii 簡単ではないはずですが、メモリーフォレンジックの分野と重複しているので、そちらを利用することで実用レベルになっています。LibVMIが代表で、メモリーフォレンジックのフレームワークであるVolatilityと統合して動作しますね」 / Twitter
- おしぼりさんはTwitterを使っています 「@SatoshiTanda LibVMIについてもちょっと調べてみます!ありがとうございます!」 / Twitter
@mumumu_vm
- mumumuさんはTwitterを使っています 「Directvisor: Virtualization for Bare-metal Cloud [VEE '20] ベアメタルクラウド向けのVMMで,性能とManageabilityの両立をがんばる.高性能化のため,HW(既存手法IOデバイスが主だがこの研究はIPIやTimerも含む)を直接OSに見せる.MigrationはGuest Agentに手伝って貰い仮想HW経由で行う等工夫.」 / Twitter
- mumumuさんはTwitterを使っています 「Reducing World Switches in Virtualized Environment with Flexible Cross-world Calls [ISCA '15] 現在のHWはApp->OS(syscall), VM -> VMM(vmcall)などの遷移のみサポートしているが,アドレス空間と権限を一般化したWorldという単位を導入してVM1'App->VM2'OS等の遷移もサポートしようという提案」 / Twitter
- mumumuさんはTwitterを使っています 「vSlicer: Latency-Aware Virtual Machine Scheduling via Differentiated-Frequency CPU Slicing [HPDC '12] VM環境でIO-boundなApp性能が低い原因の1つがVCPU Sched.であることを指摘し,より短いタイムスライスでより頻繁に動作させることでFairnessを保ちつつ性能向上」 / Twitter
- mumumuさんはTwitterを使っています 「Gleaner: Mitigating the Blocked-Waiter Wakeup Problem for Virtualized Multicore Applications [ATC '14] VMMでマルチスレッドなAppを動かしたときに性能が劣化する問題のあまり知られていない原因(BWW, よく知られたLHPの双対問題)を紹介し,そのMitigation(トレードオフが厳しい)を提案している」 / Twitter
- mumumuさんはTwitterを使っています 「vTurbo: Accelerating Virtual Machine I/O Processing Using Designated Turbo-Sliced Core [ATC '13] 各VMがある特定のvCPUにIO処理(IRQ Handling)を割り当て,VMMはそれらのvCPUをまとめてあるコア上で短時間(0.1ms~)でスケジューリングすることで,VMM上のIO性能改善.vSlicerの発展版.」 / Twitter
- mumumuさんはTwitterを使っています 「Micro-Sliced Virtual Processors to Hide the Effect of Discontinuous CPU Availability for Consolidated Systems [MICRO '14] VMM上のIOやMultithreadなAppが遅いことは既知だが,その対処の一つとしてタイムスライスを短くすることがあげられる.その際の性能変化の様子がたくさん載っている」 / Twitter
- mumumuさんはTwitterを使っています 「Preserving I/O Prioritization in Virtualized OSes [SoCC '17] 仮想環境下でIOが遅い理由として「既存のOSでうまくIO処理を*優先*していた手法が,仮想環境でうまく動作しない」から,という事実を実験的に示し,仮想環境でも十分優先度を高めるための手法xBalloonを提案.」 / Twitter
- mumumuさんはTwitterを使っています 「Towards a lightweight embedded virtualization architecture exploiting ARM TrustZone タイトルの通り.組込み向けVMMの文脈でGPOSをNon-Secureで,RTOSをSecure Worldでそれぞれ動作させる.ここでのRTOSは周期タスクと割り込みさえ最優先で対応すればよくて,その思想はTrustZoneに合う気もする」 / Twitter
- mumumuさんはTwitterを使っています 「XtratuM: a Hypervisor for Safety Critical Embedded Systems 航空機の安全の基準を満たす組み込み向けVMMの実装.いわゆるマイクロカーネルっぽいアーキテクチャで,「普通のOS + App」と「VMMコンポーネント」をスケジューリング. https://t.co/WqdXQMehaj」 / Twitter
- XtratuM Hypervisor - fentISS
- mumumuさんはTwitterを使っています 「Bobtail: Avoiding Long Tails in the Cloud [NSDI '13] EC2(のXen)におけるNWのTail Latencyの原因はNWそのもではなくNodeであることを突き止め,さらに実験で pCPUの数より CPU-boundなvCPUの数が多いと問題があることを結論づけた.Nodeの良しあしの判定方法も提案. https://t.co/DErHOv8kI0」 / Twitter
- Bobtail: Avoiding Long Tails in the Cloud | USENIX
- mumumuさんはTwitterを使っています 「GiantVM: A Type-II Hypervisor Implementing Many-to-one Virtualization [VEE '20] Scale-upからScale-outを目指す中で,分散OS的な「一つのOSが複数の物理マシンで動く」ことを仮想化技術を用いて実現する.Type-2なVMMで実現することで,HWサポートやデプロイが容易に. https://t.co/oks2mGCjdD」 / Twitter
- GiantVM | Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments
- mumumuさんはTwitterを使っています 「そういえばInterfaceの低レイヤ号よんだんだけど,ハイパーバイザの話で「仮想化は,完全仮想化が必要とされることが多くあります」って記述としてどうなんだろう.組込みとかならそうなのかもだけど,クラウドでは基本的に程度の差あれ準仮想化じゃない?」 / Twitter
- mumumuさんはTwitterを使っています 「Paravirtual Remote I/O [ASPLOS '16] VMExitを避けるために仮想環境IO時に共有メモリ経由で隣のコアに処理をオフロードする手法を発展させて,SRIOVでDirect-IOしたNICの先に繋がるデバイスまでIOをオフロードしたときの性能評価.性能は多少悪化するが,コスト面でアド. https://t.co/a0QJwRWuDC」 / Twitter
- vrio-asplos-2016.pdf
- mumumuさんはTwitterを使っています 「Analyzing the Impact of CPU Pinning and Partial CPU Loads on Performance and Energy Efficiency [CCGrid '15] 仮想環境における性能Isolationの文脈で,NUMA,SMT環境でのCPUの配置(Pinningによる)がCPU-boundなAppの速度にどのような影響を与えるかを調査. https://t.co/wa89OkaBi8」 / Twitter
- Analyzing the Impact of CPU Pinning and Partial CPU Loads on Performance and Energy Efficiency - IEEE Conference Publication
- mumumuさんはTwitterを使っています 「vIOMMU: Efficient IOMMU Emulation [ATC '11] タイトルどおりIOMMUをVMMがSWでエミュレーションすることで仮想化.性能を犠牲に無修正OSのDMAに関するメモリ情報等を確認することができるなどのメリット.セキュリティを差し出して性能を得るやべぇ最適化とかもやってる.https://t.co/RXO99llMZf」 / Twitter
- vIOMMU: Efficient IOMMU Emulation | USENIX
- mumumuさんはTwitterを使っています 「Towards Fair and Efficient SMP Virtual Machine Scheduling XenのVM間のunfairnessがper-pCPUのvCPUスケジューラによることを指摘し,モニタしたCPUの実行状況からFairnessを満たせるように各vCPUのスケジューラをフィードバックで制御.並列計算の性能劣化も防ごうとした https://t.co/njhlcHL4WA」 / Twitter
- PPoPP2014.pdf
@utshina2
- 品川@学生/共同研究募集中さんはTwitterを使っています 「国際会議 OSDI 2020 に Rust で書いた OS の話が2つある。Theseus は全てのコンポーネント間の厳密な隔離を目指した実験的OS(単一アドレス空間、単一特権レベル、no POSIX)、RedLeaf は主にデバイスドライバ等の一部のドメインの隔離を目指した設計(POSIX subset)。https://t.co/iEzuC0zAyP」 / Twitter
- OSDI '20 Technical Sessions | USENIX
- 品川@学生・共同研究募集中さんはTwitterを使っています 「文脈的に Bitrise → BitVisor じゃないかな。」 / Twitter
- ログミーTech|エンジニア向け書き起こしメディアさんはTwitterを使っています 「[新着記事]けしからんSoftEther VPNを作ったら怒られた 登大遊氏のVPN構築ソフトを日本政府が配布停止した理由 情報科学若手の会とは、情報科学に携わる学生、若手研究者、エンジニアのディスカッションと交流の会です。NTT東日本特殊局員の登氏が政府に配布停止要請さ… https://t.co/nP3vPsaMTn https://t.co/a8s19Vp5HA」 / Twitter
- けしからんSoftEther VPNを作ったら怒られた 登大遊氏のVPN構築ソフトを日本政府が配布停止した理由 - ログミーTech
- 品川@学生・共同研究募集中さんはTwitterを使っています 「もともとは TypeII 的な VMM も想定されていて FreeBSD をベースにする案もあったけど、私がこれでやりたいと言って2007年春頃に故山口英先生と交渉しに行った。最初は Single VM に難色を示されたけど、最終的には認めていただいて誕生したのが今の BitVisor の準パススルー型アーキテクチャ。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「なので登さんが VPN モジュールを作った頃は、まだ VMM のアーキテクチャは決まっていなかった。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「この間の BitVisor Summit 9 で話すネタが無くて、BitVisor の歴史をしゃべったら、研究室の学生ですら初めて知った話だったらしく、時代の流れを感じた。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「どこかに BitVisor の歴史を記録としてまとめて書いておいた方がいいのかな。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「そういえば私の博士課程の研究は「細粒度保護ドメイン」というプロセス内に保護ドメインを作る話だったんだけど、私の教え子ですら保護ドメインというOSの教科書に載ってる用語を知らなかったりするので、時代の流れと指導力不足を感じる。」 / Twitter
- 品川@学生・共同研究募集中さんはTwitterを使っています 「BitVisor の「保護ドメイン」は、一般名詞を固有名詞的に使っている形です。」 / Twitter
- retrageさんはTwitterを使っています 「VT-xとか使ったシステムのCI、どうするのがいいんだろうか。普通のCIサービスだとNested Virtualizationに対応してなさそうだし自前でCI runnerを持っておく必要がありそう」 / Twitter
- FadisさんはTwitterを使っています 「Bareflank: ハイパーバイザは仮想マシン以外にも色々な応用が可能だけど、既存の実装は仮想マシンを念頭に置いている事が多く、それ以外の応用はまず自力でハイパーバイザを実装することから始まりがちなので、部品として使えるハイパーバイザを作った、というC++ライブラリ https://t.co/PDjXx5LjeB」 / Twitter
- Bareflank/hypervisor: lightweight hypervisor SDK written in C++ with support for Windows, Linux and UEFI
- FadisさんはTwitterを使っています 「Linux 5.13にVirtIO Bluetoothのドライバが入りたがっているらしい。VirtIO Bluetoothを使うとホスト環境から見えるBluetoothデバイスをゲスト環境からペアリングできるようになる https://t.co/p0kggoBZz1」 / Twitter
- VirtIO Bluetooth Driver On The Way To The Linux Kernel - Phoronix
- Kazuo MoriwakaさんはTwitterを使っています 「@fadis_ low latencyな実装を求めるとvirtioほしくなりそうですね。BTはリアルタイム用途も狙ってるらしいのでvirtio生やすのも納得……。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「paravirt、メモリバルーニングがあるようにタスクバルーニングもあればいいのに(意訳: VMで並列ビルドしているせいでTwitterが重い)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「DMAとキャッシュ関連の話、IRIXでDMA転送完了しても一瞬だけ旧CPUキャッシュが見える問題を思い出したり。 (=ページ境界に揃えずDMA転送というミスが原因だった) https://t.co/cTjPt1CsNu」 / Twitter
- marsee101さんはTwitterを使っています 「@ciniml 当たりです。 ありがとうございました。 ハードウェアDMAを行う前はXil_DCacheFlush();ですが、ハードウェアDMA後はXil_DCacheInvalidate();でした。 最初はキャッシュに書いた値をメモリにフラッシュで、次はメモリに書かれたので、キャッシュをインバリデートしてメモリをキャッシュに読み込むですね」 / Twitter
- AMD Zenの「Secure Encrypted Virtualization」に関する別の脆弱性が研究者によって実証される|自作.com
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「信頼できない環境でVMを実行できるAMD SEVに対する攻撃。チップへの電圧を異常に変化させることでSecure Processorに任意のファームウェアを実行させることができ、さらにこの技術を使ってVM内のendorsement keyを抽出できた。つまり正当なVMとしてなりすましが可能になった。 https://t.co/HI0itiP7pf」 / Twitter
- [2108.04575] One Glitch to Rule Them All: Fault Injection Attacks Against AMD's Secure Encrypted Virtualization
- (๑╹◡╹๑)さんはTwitterを使っています 「で、最後なんだけど、1台に複数の区画を集約するとめちゃくちゃ早くなるという点。まぁこれは、IAやクラウドでも同じだけど、同一筐体で稼働する仮想マシン間だと、ネットワーク通信はメモリ上で完結する(IBMはHyper Socketと呼んでる)ので、集約化のメリットは絶大。」 / Twitter
ページャ/TLB/キャッシュ管理
その他
GIGAZINE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「まだこの手の気休めソフトが存在するのね。 https://t.co/OU7VMY9AZN (再利用が期待されない)バックアップ的なコピー(=ファイルキャッシュ)で他の仮想ページ追い出さない、といった「事前に汚さない」機能にしないと意味がないのだけれども。」 / Twitter
- 放置しておくだけでメモリの使用を激減させてくれるフリーソフト「Reduce Memory」 - GIGAZINE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「4~16KB単位で読んでの比較とか、あまり意味ない。 I/Oサイズ1MB以上で、Direct I/O + Async I/O でユーザバッファに直接DMA転送するのが一番速い。 (Async I/O で重畳できない時は 4MB以上が望ましい) https://t.co/wITXWqQPrF」 / Twitter
- rryu🕳さんはTwitterを使っています 「まさかのAVX。mmapの方が速いのはバッファ等への余計なコピーが発生しないとかだと思っていたが… / “プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは? - GIGAZINE” https://t.co/qnNovvTeGU」 / Twitter
- プログラムのファイル読み書きで「mmap」を使うと速度が向上する理由とは? - GIGAZINE
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「同じPCIブリッジにぶら下がったNVMe間でダイレクト転送(PCI P2P DMA)という実験的パッチの話。 https://t.co/thzgoKJgCi https://t.co/jOdFaW1kz6」 / Twitter
- Experimental Linux Patches Allow User-Space Peer-To-Peer DMA Between NVMe Drives - Phoronix
- PCI Peer-to-Peer DMA Support — The Linux Kernel documentation
- セキュリティ・キャンプ2016で使用した、熊猫のテキストを公開しました。: 熊猫さくらのブログ
- The OOM CTF
- Implementing cooperative multitasking in Rust
- pmap ソースコードリーディング
- pmap でプロセスのメモリマッピングについて調べる
- DSAS開発者の部屋:最近のPython-dev(2017-08)
- Chapter 10. Linux® Binary Compatibility
- 2010年10月7日 Linuxバイナリ互換機能の仕組みの紹介:FreeBSD Daily Topics|gihyo.jp … 技術評論社
- 2012年5月31日 Linuxバイナリ互換機能にDTrace:FreeBSD Daily Topics|gihyo.jp … 技術評論社
- フルボッコのリソース制限値(limit)の修正をした話 | Developers.IO
- 【翻訳】goroutine の仕組み - まるまるこふこふ
- FastContainerアーキテクチャ構想 - 人間とウェブの未来
- 実行環境の変化に素早く適応できる恒常性を持つシステムアーキテクチャと今後の課題 - 人間とウェブの未来
- Rump Kernelのreadが遅くてハゲかけたので調査 - livaの雑記帳
- 第二回 #wsa研 でHTTPリクエスト単位でコンテナを再配置する仮想化基盤の高速なスケジューリング手法について発表しました - 人間とウェブの未来
- 次期Windows 10、タスクマネージャーのメモリ報告が変更 - PC Watch
- プロセスイメージ (Sun Studio 12: パフォーマンスアナライザ)
- セキュリティキャンプと自作Slab allocator SLOBA - 空き地の資料室
- atsisy/sloba: Simple and fast slab allocator using slob interface
- こんなところに増えたコアが効く ~【2018年度版】マルチコアCPUはこう使え! - PC Watch
- 詳解xv6 Page tables 2
- x86_64での再帰ページマッピング - Qiita
- 自作OSのから見たメモリ管理概論 - Qiita
- 自作OSにDemand Pagingを実装した話 - むむむ日記
- xv6-riscv のメモリ管理方法 - daikimiuraの日記
キャッシュ
false sharing
- Livaさんのツイート: "anderson lockの論文実装だとx86の64Bのキャッシュラインに乗ってしまって、false sharingが起こるという話の事 だね! #liva_notebook https://t.co/FL6aqBf1Su"
- slankdevさんのツイート: "True/False SharingとC++について https://t.co/JlMlZT4kqg #liva_notebook #slankdev > . @liva_jy 氏の排他制御の話が参考になった"
- C++1z false sharingとtrue sharingの制御 - Faith and Brave - C++で遊ぼう
- 今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
- false sharingの整理 - yoskhdia’s diary
- C++1z false sharingとtrue sharingの制御 - Faith and Brave - C++で遊ぼう
- Ryzen1800xでfalse sharing - Qiita
- とみながたけひろさんのツイート: "フォールスシェアリングですね。単純に見えるデータ構造ほど、意外なはまりがあってつらい(ポインターのサイズが変わってて違う環境で激しく遅くなった、とか)… "
- マルチスレッド開発ガイド: 3.4 スレッド間のフォルス・シェアリングの回避と特定 | iSUS
フラッシュと無効化
- Tips IA32(x86)命令一覧 Wから始まる命令 WBINVD命令
- Tips IA32(x86)命令一覧 Iから始まる命令 INVD命令
- Linuxメモ : キャッシュ操作(Invalidate、clean、flush)の意味
- 用語の意味を教えてください。 Cache Flushといった時、それによ… - 人力検索はてな
- tsujamin/comp3300-cache-disable-kmod: cpu cache disabling kmod for linux ~3.8
- [SOLVED] Disabling CPU caches
- Linuxでユーザー空間で動作するプログラムとハードウェアがメモリを共有するためのデバイスドライバ(キャッシュのフラッシュと無効化を追加) - Qiita
- 先日U-Bootに投稿したARMv7MのLinux起動時にデータキャッシュを無効にするパッチについての備忘録 - /home/tnishinaga/TechMEMO
- ストリーミング SIMD 拡張命令 2 のキャッシュ操作
- x86 に 3 オペランド論理演算命令と新キャッシュフラッシュ命令が追加 - 教育は参考ブログ
DMA
- DMAとキャッシュの関係 | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
- DMA対応と言われたら(2) | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
- 夜でもアッサム: [クイズ]DMAをする時に、いつcacheを操作するか
Ryzen
- satさんのツイート: "Ryzen1800xは - 8コア16スレッド - 4コアごとにCCXという一塊になってる - L1~L2キャッシュはコアごとに持つ - L3はCCXごとに持つ と、PC用の石としては比較的複雑な構成です。そいつらの性能を事細かに測ってた途中に天使が降りてきて「それ本に要るんか、締め切りいつや」と言われたのでほぼ捨てた"
- まさみさんは語りたいさんのツイート: "L3をCCXごとにまとめるところがAMDらしいなあ。IntelだとL3は全部共有が基本だし。… "
- satさんのツイート: "こういう構成のおかげで初心者用の本に「CCX」という単語が載ってます。でないとL3なんでこんなところで切れてるの、という説明ができなかったから… "
- まさみさんは語りたいさんのツイート: "L3の影響まで測ってるんだ・・・・… "
- Fomalhaut Weisszwergさんのツイート: "同人誌として出版というのはいかがでしょうか… "
- satさんのツイート: "そのうちやるかもです。一般に売れなさそうなのとか、売れるかわかんないものを、これまで同人誌に投入してます… "
ACPI
- まさみさんは語りたいさんのツイート: "ACPIにはPPTTというのが入って、これでキャッシュ階層を定義できるらしいぞ。 https://t.co/NMaZUdHMnd"
- [RFC,3/4] ACPI/PPTT: Add Processor Properties Topology Table parsing - Patchwork
blog
- キャッシュは諸刃の剣 | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
- beagleboard を触ろう - CPU キャッシュ:組み込みエンジニアの週記:So-netブログ
- Linuxエンジニア日記 ページキャッシュの効率化
- ファイルアクセスを高速化する方法を調べてみた - a9bのブログ
- CPU とキャッシュのはなし - graphics.hatenablog.com
- ADCX, ADOX, PERFETCHW, RDSEED 命令が追加 - 教育は参考ブログ
- Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
- perf statでL1,L2(,L3)キャッシュミス測定 | 俺とお前とlaysakura
- 2のべき乗サイズの配列は危ないという話 via 行列積 - elkurin’s blog
Qiita
- Linuxのdrop_cachesにwriteした時の動きを追う - Qiita
- キャッシュメモリの恩恵をてっとりばやく体感する - Qiita
Wikipedia
- キャッシュメモリ - Wikipedia
- Windows SuperFetch - Wikipedia
- Windows ReadyBoost - Wikipedia
Twitter
ヒット・ミス率
- Naoya HoriguchiさんはTwitterを使っています 「キャッシュのヒット・ミス率って取れたとしてどう利用するのが普通なんだろうか...」 / Twitter
- satさんはTwitterを使っています 「@nhoriguchi ハード増強、CPU pin、isolation、ソフト改善のなどなどの動機付けですかね。」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「@satoru_takeuchi キャッシュヒット率って傾向が変わってもすぐ異常と判断できるのかなというのがあり、現実的に何に使えるのかなというのがありました。たぶん、異常検出というより、他の指標と合わせて原因特定に役立てる的な使い方なのかなと思いました。CPU pin やチューニングするときの判断には使えそうですね。」 / Twitter
- satさんはTwitterを使っています 「@nhoriguchi そうですね。あとこいつをもとにチューニングするのは最後の雑巾のひとしぼりのとき、という感覚はありますね。普通はこれより先に別のところがボトルネックになるので」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「@satoru_takeuchi 「雑巾のひとしぼり」いい表現ですね。私はシステムチューニングとかやったことないのですが、重要で技術的難度高くて面白そうですね。」 / Twitter
- satさんはTwitterを使っています 「@nhoriguchi はい。こういうときOSカーネルやってた経験はかなり役立ちます。他の人が持ってない引き出しがあることが多いので」 / Twitter
電力
- とみながたけひろさんはTwitterを使っています: 「最近のタブレットやノートPCは動画再生時間とかで電池の持ちが書かれてるけど、CPUはほぼ負荷なし、限界まで最適化されてしまったHW動画デコーダーの電力はどの製品もほぼ同じ、なのでCPUの最小パワー状態の電力と、画面とWiFiチップの電力ベンチ状態な気がしてならない…」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「@nminoru_jp @satoru_takeuchi ヒットしないであろうwayにクロック供給しないという、回路規模は増えるけど性能は落ちない仕組みはかなりまえからありましたが、電源まで切ってしまう、しかも性能落ちるのに勝手に、というのは割とビックリしました(と言う意味ですげーな、とわたしは思った」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「最近のCPUはクロック下げると勝手にL2$のwayがへる(電源オフになる)らしいが、これ、こういうベンチとか向けなんやろな。まあいつでも10並列とかでコンパイルしてるわけちゃうからやるのが当然なんやけど」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「なおインテルは「製造ばらつきの関係で電力を多目に使う」wayを優先的に電源オフにするとかいう仕組みをいれてるらしい。工場で電力を測る行程があるんだろうけど、よくやるなあ」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「温度とか一定にしてそれなりの時間かけて測定しないといけないはずなので、理論上は動くけど実際にわかるぐらいの成果を出すのは大変そうなんだよねえ」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「参考資料(これはAppleのA11,A12プロセッサの比較で出てきたもの) https://t.co/Raza8z0vSy より >The conclusion is here is that Apple is employing partial cache power-down in what seems to be per-bank granularity.」 / Twitter
- The Apple A12 - First Commercial 7nm Silicon - The iPhone XS & XS Max Review: Unveiling the Silicon Secrets
- 中村 実さんはTwitterを使っています: 「@satoru_takeuchi @takehiro_t ソフト屋さんから見ると一見凄そうに見えるのですが、CPU側からするとN-way cacheってそういうハードがあるわけじゃなくて1-wayつまりdirect cacheがN枚あって、N個の結果をセレクターで選んでるだけなんですよね。2のべき乗でないwayとかも割と簡単に作れます。」 / Twitter
- 中村 実さんはTwitterを使っています: 「@satoru_takeuchi @takehiro_t キャッシュ読み込みはN-wayの中でデータを持っている1-way分のdirect cacheがラインを返しているんじゃなくて、N個のdirect cacheが同時にラインを返してセレクターが選ぶので、N-1個のキャッシュは毎回無駄に動作しているんですな。」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「@nminoru_jp @satoru_takeuchi ヒットしないであろうwayにクロック供給しないという、回路規模は増えるけど性能は落ちない仕組みはかなりまえからありましたが、電源まで切ってしまう、しかも性能落ちるのに勝手に、というのは割とビックリしました(と言う意味ですげーな、とわたしは思った」 / Twitter
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "キャッシュラインを意識すると、処理性能が2~5倍くらい変わることがある話。 カメラ画像90度回転処理で、簡単に例示してみる…「分かり易い」と思ってもらえると嬉しいけれど、さて? https://t.co/X5UIyCl0nH… "
- キャッシュラインの意識は大事という話 // Speaker Deck
- INADA Naokiさんのツイート: "これで重要なのはキャッシュラインサイズではなくて、何本のキャッシュラインにメモリへのライトバックなしに同時に書き込めるかだと思います。 例えば8wayキャッシュなら下位アドレスが一致するラインを8本しか持てない。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "アドバイスありがとうございます。 L1についても考えると、結構この辺に肝がある可能性が高いかもしれません。 ともあれ、もう少し追試してみねば…… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、キャッシュライン+AVX2版だと、8K画像(120MB)の回転 = 合計120MB read + 120MB write を 22msで完了=合計240MB/22ms = 10.65GB/s でメモリアクセスできている計算。なかなかすごいな。 https://t.co/X5UIyCl0nH"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "INADAさん(@methane)に n-Wayセットが原因では?という示唆を頂いた。 確かに有りそうと思って、同時アクセスするアドレスを極力被らない形にしたところ、見事に64byte~128byteが最速となった。 最後の疑問は、なぜAVX2 gatherではその影響を受けなかったか、という点。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "キャッシュライン版は図示した通り、srcを1ライン読み取ってscatter I/O的にdstに分散配置している。だが、AVX2にはgatherしかないため、dst 1ライン分をsrcからgather的にかき集めている点が違う。 だがentryの同一wayへの被り方という意味では、どちらも大差ない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "逆に言えば、キャッシュライン版も gather I/O的な配置に逆転させると、もっと安定して高速化する可能性がある? (entryを極力被らない形にするとAVX2版とキャッシュライン版の差は2倍→1.5倍程度に近づいた)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにエントリが被る場合も、dirtyなentryを無効化するよりも、cleanなentryの無効化するほうがずっと軽いはず。 そっか、ではキャッシュライン版はgather版にしたほうが良さそうだ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "あとでスライドも変更しておこう。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "やはり、scatter ではなく gather にすることで、エントリが被る場合のペナルティが圧倒的に減った。常にAVX2 gather に肉薄する速度に。(性能差は概ね10%以内)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、個人的には、 「(メモリアクセスで)scatterとgather、どちらでも使えるなら、gatherを使え」 という教訓を得た。(wayが重なった時のペナルティが圧倒的に軽い)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "実験前の目論見では「64byte単位最速に見えるけど、128byteにするとお隣の先読みも発生してさらに多少高速になるよ」というおまけストーリーを付与するつもりだった。 むしろ32byte最速でおや?となったのだが、ともあれn-Way補正後判明したのは、今回は先読みによる実数値改善はほぼ無かったこと。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "いずれにせよ、実験・実測は大事。 (一方で、特定環境・特定条件による一側面結果、ということも忘れずに)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「キャッシュラインの意識は大事」のスライドを更新。 (32byte最速の原因は競合性ミス、その影響をscatter→gather形にすることで改善し、理論通り 64byte/line~128byte/line が最速となった例で説明) https://t.co/X5UIyCl0nH… https://t.co/IwUfDhIBIQ"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "githubに置いたテストコードも更新。 https://t.co/0YE3TThEO2 ともあれ、スライドのアップロード&公開は初体験だったが、レベルの高い低レベルな方々?にも見て頂けているようで良かった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「scatterによる競合性ミス」と結論したところ、ヘネパタにi7について、こんな記述があった。本当にラインサイズ未満の書き込みで競合性ミスが出るのか、単に10エントリのwriteバッファ数を超えたためなのか、再調査が必要になった。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "たしかにscatter版だと、32byte/line扱いで同時8ラインへの追記、64byte/line扱いで同時16ラインへの追記、が発生していて、10エントリのwriteバッファ数の境界となるため、状況証拠としてはこちらが原因である可能性も小さくない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "一方、それだと素数*32などの画素数で改善する話と整合しないところはある。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ソフトでもハードでも、キャッシュ機構を要所に入れれば威力抜群。 だが同時に、複雑度増大(改変が大変に・バグも混入しやすい)、コヒーレンス解決に手を焼く、といった問題を抱えるので、バランス大事と。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(…とキャッシュ機構を入れて、少し手を焼いたので書いてみた)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のCPUも、メモリアクセスがL1並みの帯域/レイテンシが出来てキャッシュ不要の単一階層になったら、どれだけシンプルになるのかしらん?とか、ふと思ったり。」 / Twitter
@mhiramat
- ひらナツさん@散文家さんのツイート: "はー、なる。MSRを使って処理しているからタスクスイッチングのところでマスクをクリアしてやれば、そのタスクが使っていたL2/L3のエントリは別に使うことができるようになるわけか。#linuxcon"
- まさみさんは語りたいさんのツイート: "キャッシュラインで配列舐める話はprefetchの使い方まで考えるとバラエティが増えるし、実は2のべき乗単位でないほうがいい時もある、という話を15年ぐらい前のYLUGで聞いた。吉岡さんがPMU使って測ってた気が。"
- まさみさんは語りたいさんのツイート: "あれ?だれかNかFの人が発表して、吉岡さんがPMU使うとキャッシュミス測れていいですよ、みたいなコメントしたんだっけ?"
- まさみさんは語りたいさんのツイート: "あと当時のintelプロセッサはキャッシュ先読みアルゴリズムが結構複雑でコロコロ変わるので、世代によって最適なやり方が違うとか聞いた気がする。"
- まさみさんは語りたいさんのツイート: "「キャッシュメモリからレジスタにアクセスする際のレイテンシ」は、「キャッシュメモリからレジスタに読み出す際のレイテンシ」でいいと思う。。前者だとキャッシュが主体的に動いてるみたい。"
@fadis_
- Fadisさんのツイート: "clflushがマニュアルではフラッシュの完了を待たないことになってるけど、Intelさんがフェンス忘れても大丈夫なように実際には完了を待つようにしてたら、不揮発メモリ用に高速なフラッシュが必要になってマニュアル通りの挙動のclflushoptを追加する羽目になる話面白い"
- Fadisさんのツイート: "gcc-4.9はskylakeで追加されたCLFLUSHOPT XSAVEC XSAVESが吐けないみたいだけど、ユーザ空間でこれ使って嬉しい状況そうそう無さそうだし4.9でemerge続けるか…"
- Fadisさんのツイート: "イマドキのNICはL3キャッシュに直接DMAしてくるからCPUからデータが見えるようになった時点ではまだflushされていない、と #kernelvm"
- Fadisさんのツイート: "clflushopt、clflushが同期的に動かないかもしれない事になってるけどみんな同期的に動くことを期待するから、同期的に動くようにしてたけど、NVMMするのにあたってそれでは困る状況になったから作った「本当に同期的に動かないclflush」だっけ #kernelvm"
- Fadisさんのツイート: "@uchan_nos x86_64の多くのプロセッサはスヌープ方式でキャッシュ一貫性を保っている。ただスヌープ方式は単一のバスが混雑してスケールしないためコア数が多いプロセッサでは使いにくく、そういったプロセッサではディレクトリ方式が併用される"
- Fadisさんのツイート: "キャッシュ一貫性が保たれる複数のCPUのうち1つが書き込みを行うと、一般には他のCPUが持っている同じ位置のキャッシュは破棄される。これはキャッシュラインの長さ単位で行われるため、隣接する2つの値に別々のCPUが読み書きしていると、同じ値を触らなくてもキャッシュの捨て合いが生じることがある"
- Fadisさんのツイート: "これはC++ではvectorのように隙間なく並んだ値を複数のCPUで処理する場合L1 cacheの長さ単位で同一CPUに処理させないと性能が落ちる可能性があるという話なので、C++17から同じL1 cacheに乗らない為に十分な幅を表す定数 std::hardware_destructive_interference_sizeが用意されている(n4659 §21.6.5)"
- Fadisさんのツイート: "正しく綴ることが難しいstd定数選手権で上位狙える"
@hisak
- Hisaki OharaさんはTwitterを使っています: "Intel MPX, Cache Allocation TechnologyにCode and Data Prioritizationを追加、Intel Processor Traceに大幅な追記、あたりがrev.55での差分かな。今回は結構でかいですね。"
- Hisaki Oharaさんのツイート: "IntelのCache AllocationってL2も対象になったってマジか #linuxcon"
- Hisaki Oharaさんのツイート: "ちなみにcache monitoringはHaswellからで、allocationはBroadwellから。どのSKUが持っているかは知らん。 #linuxcon"
- Hisaki Oharaさんのツイート: "Haswell-EPも一部のSKUはCAT持ってるらしい。ガチャだ。 https://t.co/aS0zkAL1No https://t.co/LL8Pqv0twy"
- Hisaki Oharaさんのツイート: "LinuxConで聞いたIntel Cache Allocation TechnologyがL2にも適用できる件、調べてみたら今年4月に出たIntel SDMのDocumentation Changeに記載されていた。すっきり。"
@satoru_takeuchi
- sat@引退さんのツイート: "端的にいうと(ID,キャッシュの範囲)の組があって、IDはどう使っても良い。タスクでもコンテナでもVMでも。IDごとに独立したキャッシュを割り当てる"
- satさんのツイート: "linux豆知識: /sys/devices/system/cpu以下を見ると、各CPUがどのノードに属しているかとか、どのCPUとキャッシュを共有しているかとかがわかるよ"
@KuniSuzaki
- suzakiさんのツイート: "CAT:Cache Allocation TechnologyではL3のキャッシュをアプリケーション(CPU?)毎に分け、Noisy applicationからのキャッシュアクセスを封じ込める。L3_QoS_MASKで実現。"
- suzakiさんのツイート: "L2 Cache用にもL2_QoS_MASKがMSRにあって、L3と同じことができる。"
@tanakmura
- tanakmuraさんはTwitterを使っています: "CLFLUSHOPT の謎がとけた。 http://t.co/xBQA5WkDmI の CLFLUSH と https://t.co/nQS8eDg7Kl の CLFLUSHOPT の挙動を比べても CLFLUSHOPT のほうが改善される理由が不明だったが、"
- tanakmuraさんはTwitterを使っています: "「CLFLUSHは実はこれまでの全CPUで順序付けてたから、MFENCEはいらなかったよ。順序が必要ないときは、CLFLUSHOPTを使って、最後にSFENCEしてね。」と、いうようなことが、7.5.6 CLFLUSH Instruction に書いてある。"
- tanakmuraさんはTwitterを使っています: "CLFLUSH は、3A, 2A では、「CLFLUSH命令間では順序保証しないから、順序付けるならMFENCE入れろよ」と書いてあるが、最適化マニュアルには、"
- Tsukasa #01さんはTwitterを使っています: "【Intel SDM 更新】 Revision 055 での主要な変更点は、Intel MPX と PT にマトモなドキュメントがついたことと、Skylake 以降のアップデートですかね。キャッシ
- なかがわがくたろうさんのツイート: "Intelのプロセッサにcache QoS機能があるの知らなかった https://t.co/6xd26SENze"
- naoさんのツイート: "挙動のおかしいドライバーが最適化を外すと動く場合、ちゃんとvolatile宣言が入ってるか、キャッシュの一貫性は保たれてるか、100回チェックしてからコンパイラのバグを疑え、というのが家訓。"
- Kazuho Okuさんのツイート: "特に最近のCPUだとキャッシュや分岐予測あてるの重要だから選べるところではlinked listやハッシュよりarray使うんだけど、arrayは末尾以外の挿抜ができないから使いづらいことも多いよね #マジレス"
- InstLatX64さんのツイート: "Useful Prefetch* chart… "
- みやた二進いちろうさんのツイート: "webサーバでcpu 1次キャッシユのどのラインがホットかを計測して、Cの構造体の中の順序を変えるnetflixと比べればヌルいのでは。… "
- mattnさんはTwitterを使っています 「CPU キャッシュを生かすなら配列インデックスに気を付けろという話。Go に限らないあるあるな話。 #golang https://t.co/9jIYNXkqer」 / Twitter
- Go and CPU Caches - Teiva Harsanyi - Medium
- satさんはTwitterを使っています 「CPUのキャッシュメモリにおける大きな問題の一つ、スラッシングについて、実際に問題を発生させて凄まじい性能劣化が起きる様を確認した記事です。高級プログラミング言語ではこういうのがいいかんじに隠蔽されてたりします キャッシュのスラッシング|sat https://t.co/J7FFZm252r #zenn」 / Twitter
- キャッシュのスラッシング | Zenn
- 青子守歌さんはTwitterを使っています 「D$とI$って書いて「データキャッシュ」「インストラクションキャッシュ」と読ませるのはまぁ確かに界隈が狭すぎるか…。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Intel64にはキャッシュ予告コマンドがあるのだが、それは計測でちゃんと差が出た。それを出すようなコンパイラがあるのかどうかは知らないのだが。」 / Twitter
- x64 - Wikipedia
- Shinji KonoさんはTwitterを使っています 「一応、CPU/IO Burstとかはやるわけなんだが、それが何を意味するのかはわからないものだよな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「キャッシュや仮想メモリの性能の問題、つまり hit率=性能 も、問題は解けても、それが何を意味するのかを理解してるかどうかとは別。自分でも学部生の頃、おんなじようなこと言われた。 この問題はなんのために用意されてるのか ってことね。先生の顔色を読んで欲しいわけじゃない。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そういうイベント、スワップのないスマホとかにしかないイメージ。スワップのあるOSだと、キャッシュはファイルに書く!が正しいんだと思ってる。ファイルに書くことでOSが必要に応じてメモリにキャッシュしたり追い出したりしてくれるし再起動にも対応できるので…」 / Twitter
- 渋川よしきさんはTwitterを使っています 「GCというか、OSからのメモリ開放プレッシャーを受け取るイベントハンドラがあればキャッシュの実装には良いきがするのだけどねぇ。GCだとメモリあるのにタイマーで勝手にキャッシュが消えちゃうとかだとキャッシュ効率下がりそう #tng36」 / Twitter
- CPUID : キャッシュメモリの大きさ - 研究日誌。
- Intel SDM version 049 | Hisak's Tumblr
- インテル-CMT-猫マスターで/ README・01org /インテル-CMT-猫
- キャッシュ制御組み込み関数
- VTune でキャッシュのヒット/ミス回数を取得するには | インテルソフト あるある情報局
- intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap12.pdf
- コンピュータアーキテクチャの話 (184) キャッシュコヒーレンシ | マイナビニュース
- 今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
- Dragon protocol - Wikipedia
- DMA リソースの管理 - デバイスドライバの記述
- バスの仕様 - デバイスドライバの記述
- プログラムの動作が異常に遅い原因は「ランダムアクセス」かもしれない - GIGAZINE
- Intel 64ビットマシンでキャッシュを有効/無効にする:CDビットは常に設定されていますか?
TLB
コヒーレンシ取られない
VPID
- しゅううGXさんはTwitterを使っています: "VPIDって、TLBにVM番号のタグ付けたいって理解でいいよね。Nehalem以前はVMentry/exit時にTLB全フラッシュ必要ってIntelが言ってるけど、それって透過的に行
- なかみりさんはTwitterを使っています: "“VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful” http://t.co/cAaAHyJxSx"
- VMware ESXにおけるメモリ管理(3) - メモリに関する仮想化支援機能(Intel EPT/VPID, AMD RVI/Tagged TLB) - Simple is Beautiful
- 最近の話題 2008年4月5日
- 最近の話題 2008年8月23日
- Fadisさんのツイート: "TLBはハードウェアがコア間でコヒーレンシをとらない → 1つのコアでEPTエントリを追っていた為よそのコアのTLBで立っていたdirtyページを見逃す → 一部のメモリが古い状態でマイグレーション先が動き出してしまう #kernelvm"
- NOKUBI Takatsugu野首貴嗣さんのツイート: "修正 EPTEを読む前に全コアでTLB shootdownをする コードにすると数行 これで2〜3ヶ月を無駄にした #kernelvm"
- 蟹の赤ちゃんVS蛸の赤ちゃんさんのツイート: "別々のCR3を持っているのでTLBのキャッシュコヒーレンシが維持されない #kernelvm"
- _さんのツイート: "一部のdirty bitはTLBからまだメモリに落ちてきてなくて情報が古い #kernelvm"
- るくすさんのツイート: "dirty bitまでTLBキャッシュに載るのやばくない... #kernelvm"
- _さんのツイート: "EPTはコア間でコヒーレンシーが取られない #kernelvm"
- Deep(Ph.D Go player)さんのツイート: "@RKX1209 EPTを全てクリアすれば、次のメモリアクセス必ずViolationします。 もししないなら、TLBに乗ってるマッピングを使われてるか、別コアからアクセスされているかだと思います。"
- EPT と TLB でしくじった話
- とみながたけひろさんのツイート: "ページテーブル、マルチコアでコヒーレンシとられないほか、投機実行で勝手にTLB載るのも辛いんだよね。超ハマりパターン、、、 https://t.co/4n6S3WeOxZ"
DPDK
- NOKUBI Takatsugu野首貴嗣さんのツイート: "DPDKのその他の高速化手段 Hugepages: TLB missを避ける CPU affinity: 特定のCPUにスレッドをはりつける SSE, AVXなど使えるものは全部使う #kernelvm"
- NOKUBI Takatsugu野首貴嗣さんのツイート: "Hugepageでのメモリ割付 OSはhugepageが常に有効 #kernelvm"
PCIDs
- Hisaki OharaさんはTwitterを使っています: "Haswellで入ったのはinvpcidという命令のことではなかったっけ。それまではただのpcidでTLB selective invlは出来なかったから非常にいまいちだったという。"
- なまえだよさんはTwitterを使っています: "FreeBSD 10ではIntel CPUのProcess-context identifiersに対応するパッチにより、コンテキストスイッチの度にTLB全体をフラッシュする必要がなくなったのでコンテキストスイッチのレイテンシも改善されるようですね…"
- Tsukasa #01さんはTwitterを使っています: "oO( ってことは、最新の Intel CPU における TLB ってエントリ当たり 24 ビットものタグがついてるのか……。いや、どれほどのオーバーヘッドなのか知らんけど。 )"
- Tsukasa #01さんはTwitterを使っています: "@hisak 調べてみると PCID 自体は Westmere (Sandy Bridge の 1 個前) まで遡れました。"
- Tsukasa #01さんはTwitterを使っています: "@syuu1228 だいたいそんな感じみたいですね。付け加えて言うと、タグ付き TLB に相当するような機能は Intel 製プロセッサだと VPID と PCID の 2 種類が存在
- 品川 高廣さんのツイート: "INVPCID命令ですね。CR4の読み書きによるflushよりINVPCID命令の方が217ns速いのでLinux起動時にINVPCID命令を呼ぶようになったけど、BitVisorはINVPCID命令に対応してなかったので落ちたという話だそうです。 https://t.co/oQmyPQXrb4"
- 凍ってない方のアカウントさんのツイート: "x86、何故にtagged tlb実装(= PCID)したのがめちゃくちゃ最近なんだろう、ないと普通に性能落ちない…? VPIDでどうせtaggedになるから載せるか、みたいな話なんかしら(正確な登場時期も含めよく分かってない"
- Ryou Ezoeさんのツイート: "@syuu1228 Linuxカーネルが対応したのが4.14で多くのVMがゲスト側に見せてないので現状だと割と使用不可(AWSだと半々)という実情と書いてあって不思議な気持ちになっている。 https://t.co/5dPE6uZbaM"
- 中村 実さんのツイート: "@syuu1228 PCIDがSDMに登場したのが2011年10月の040版からですな。 https://t.co/pC1mrC8s33 もともとi386がコンシューマ向けでサーバー向けにこんなにガリガリ使われることを想定してなかったからコンテキストスイッチでTLBフラッシュでOKOKのお気楽仕様に… https://t.co/K0OfETdyvC"
- Hisaki Oharaさんのツイート: "PCIDはWestmereからで、invpcid命令はHaswellからだった気がする"
- Hisaki Oharaさんのツイート: "VPIDとPCIDは異なるもので、PCIDのOS enablingはめちゃ遅れていたことは知っておいて良いと思う"
- Hisaki Oharaさんのツイート: "そもそもbit長が違う。VPIDは16-bitだけどPCIDは12-bitだ。たったの12-bit !?と驚くと思う。自分は驚いた。。"
- suzakiさんのツイート: "@hisak 確かに。意味を考えると、VPID(Virtual-processor ID)が16-bitで、PCID(Process-Context Identifiers)が12-bitと変な気がしますが、PCIDはCR3 registerなのに対して、VPIDはメモリ上のVMCS fiel… https://t.co/13C2tsw2hF"
- Gil Teneさんのツイート: "PCID is now a critical performance/security feature on x86 - Google Groups https://t.co/NuL7UXGHNG"
- PCID is now a critical performance/security feature on x86 - Google グループ
- Vladimir Danylevskiyさんのツイート: "lshw -C cpu | grep -oiw pcid for Linux users. If you a regular user, don't panic, the patch will be shipped with a new update for your OS/… https://t.co/PgidcInc7M"
- Dan Guidoさんのツイート: "If you have an Intel CPU with the "PCID" feature, then the security fix for Spectre/Meltdown will have less performance overhead. On macOS,… https://t.co/XlAgqQne1z"
- Nasir Zubairさんのツイート: "@msgeekuk @epakskape Seeing the same thing on Dell systems with microcode update as well as MSFT patches. All green except for PCID Optimization. Can someone she… https://t.co/s5BqVGSwpb"
- Martijn Brantさんのツイート: "Good to hear the PCID is not related to security. Was seeing a lot of results with false. Be sure to patch microcode though! https://t.co/oyasPYiRs6"
- Hisaki Oharaさんのツイート: "PCIDについてはこの記述が気になるんだよな "To make matters worse, past attempts to use all 12 PCID bits have resulted in slowdowns instead of speedups."… https://t.co/5oavpdYYut"
- Linux_4.14 - Linux Kernel Newbies
- Intel64 and IA-32 アーキテクチャ仕様書が改訂 - 教育は参考ブログ
INVLPG
- TLB · oraccha/omicron Wiki
- Tips IA32(x86)命令一覧 Iから始まる命令 INVLPG命令
- 悪魔のツール“ルートキット”最前線 - 第7回 メモリー上のデータを見えなくする(後編):ITpro
- Linux カーネル 3.8 では i386 がサポート外に | スラド Linux
TLB shootdown
RAR
- Anderson NascimentoさんはTwitterを使っています 「Experimental Features Feedback Forum Remote Action Request (RAR) based TLB Shootdowns https://t.co/NFan9uTPBX https://t.co/MmskgAwWg0」 / Twitter
- Experimental Features speedup TLB shootdowns
- 341431-remote-action-request-white-paper.pdf
- るくすさんのツイート: "linuxのTLB shootdownは割り込みベクタに専用の関数追加して中でflush_tlbしてるみたいだ"
- 無視できないフラグメンテーション問題への解答は?(2/2) - @IT
- /proc/interruptsに関するメモ - お菓子食べる部
- SMP環境下でのTLB Consistencyについて - syuu1228's blog
- BitVisorの仮想メモリーマップ - Qiita
- EuroSys 2020さんはTwitterを使っています 「#EuroSys20 Best Paper Award: “Don’t shoot down TLB shootdowns!” by Nadav Amit, Amy Tai and Michael Wei (VMware Research Group) — congratulations! https://t.co/fGsBrN8cAj https://t.co/6wky5sCZ2V」 / Twitter
- Don't shoot down TLB shootdowns! | Proceedings of the Fifteenth European Conference on Computer Systems
- Kazuho OkuさんはTwitterを使っています 「マルチスレッドプログラムにおいてmmap, munmapが間接的に呼び出されるケースでは、freeのほうが圧倒的に重たいという理解して(tlb shootdownのため)」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「一昔前の「malloc より free の方が重い」という通説が今でも真なのかも私にはよくわからんし、この辺は本当にちゃんと実装をおっかけてないとわかんねーんだなこれが。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「malloc/freeの重さは実装や条件によって変わるから、前提なしに色々言うひとの意見は無視するぐらいでいい」 / Twitter
Twitter
- Deep(Ph.D Go player)さんのツイート: "Ryzen 案件、BIOSの設定でコア数一つにして試してみてほしい"
- Deep(Ph.D Go player)さんのツイート: "TLB周りならそれで発生しなくなるから一つの切り分けになりそう"
- EPT と TLB でしくじった話
- NAKAMURA Minoru's Diary (2013年2月)
- x86-64-128さんのツイート: "QEMUで自作OSを動かし、そこでページングの実験をしているんだけど、ページディレクトリエントリのPresentビットを0にしてアクセスしてもPage Faultが発生しないように見える。"
- x86-64-128さんのツイート: "ページディレクトリエントリを更新したら何かCPUに教える必要あるのかな。メモリを書き換えるだけで行ける?"
- Fadisさんのツイート: "本題の前にまずFacebookの人が「バイナリ内の実行頻度が高い関数8MB分を1箇所に集めてHugePageに乗せる事でTLBミスを回避して5~10%の性能向上」とかやってて、Webサービスの性能向上の努力が極まりすぎている事に定評のあるFacebookが平常運転で安心した(リンク先有料記事) https://t.co/4fi5TzNv91"
- ロボ太さんはTwitterを使っています: 「malloc動画といえば、「京」でハイブリッドとflat-MPIで等価な計算してるはずなのにハイブリッドの方がが有意に遅いのに悩んでて、後で直接の原因がTLBスラッシングとわかるんだけど、その理由がわかんなくて、malloc動画で勉強したら、アリーナの大きさが違うのが原因とわかってなるほどな、と。」 / Twitter
- ロボ太さんはTwitterを使っています: 「これ、最初は完全にスレッドまわりが原因と思って調べてて、でもプロファイル見てもそうは見えなくて、ある日ポスターで話したら筑波大の朴先生が「TLBじゃないかな」って言って、その時は「まさか」って思ったんだけど、その数年後にTLBスラッシングが原因とわかって、プロってすごいなと。」 / Twitter
- トランスレーション・ルックアサイド・バッファ - Wikipedia
- HPC性能が大幅に強化されたHaswell(中編) - TLBミスによる性能低下を減少 | マイナビニュース
- 本の虫: Linus Torvalds、Microsoftが「ジャンプしてみろよ」と言えばIntelとAMDはジャンプする
- 0から作るOS開発 ページングその1 ページとPTEとPDE
- ハードウェアキャッシュとTLBの制御 - 詳解Linuxカーネル Wiki*
- ASCII.jp:仮想メモリーを支えるもうひとつのキャッシュ TLB (1/3)|ロードマップでわかる!当世プロセッサー事情
- 仮想メモリ方式の分類
- イケてるエンジニアになろうシリーズ 〜メモリとプロセスとスレッド編〜 - もろず blog
- スケジューラの挙動は三巨頭会談で決まるのだ?(1/2) - @IT
- 2章 Linuxカーネル - メモリ管理1
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第2回 Intel VT-xの概要とメモリ仮想化
- [BitVisor-devel:88] Re: [PATCH] Re: Ubuntu 16.10 beta2 (linux 4.8.0-17) が BitVisor 上で動作しない
- インテル® トランザクショナル・シンクロナイゼーション・エクステンション (インテル® TSX) プログラミングの注意事項
- ASCII.jp:仮想メモリーを支えるもうひとつのキャッシュ TLB (1/3)
- 日記 (2020 年 12 月)
メモリ保護
その他
- 特権分離 (Privilege Separated) OpenSSH
- ラージページについての考察 | iSUS
- メモリーリマッピング
- 「実在には存在しない情報」をメモリキャッシュに埋め込むというセキュリティ対策 | スラド セキュリティ
- Shuffler: Fast and Deployable Continuous Code Re-Randomization の紹介 - 脱力系日記
- Linuxなどのスタック管理機構において権限昇格が可能な脆弱性が発見される。多くのLinuxディストリビューションに影響 | スラド オープンソース
- glibcにStack Guard Page迂回の脆弱性(CVE-2017-1000366) — | サイオスOSS | サイオステクノロジー
- linux kernelにStack Guard Page迂回の脆弱性( CVE-2017-1000364 ) — | サイオスOSS | サイオステクノロジー
- 続・サンドボックスの透明性 | 一生あとで読んでろ
- サンドボックスの透明性 | 一生あとで読んでろ
- はりぼてosにページング機能を追加する - Qiita
- MIT、プロセッサ性能を犠牲にせず「Meltdown/Spectre」脆弱性を解決する新手法 - PC Watch
- 418.pdf
- suzakiさんのツイート: "NDSSソフトウェアセキュリティ5つ目。User After Freeなど本来存在してはいけないメモリへの攻撃を検出するRedzone-based memory error detectionのMEDSの発表。MEDSではpage aliasing を使い、物理メモリを割り当てずにvirtual memory の空間を見るmemory allocation mechanism (MEDSALLOC)で管理"
- デダルスユメノ 技術書典6・う38さんのツイート: "ページサイズは伝統的に4KBが使われてきたけど64ビットシステムでは2MBページでいいんじゃね?と一瞬思うけど、遅いストレージを考慮するならダーディページの書き戻しが2MBだときついかも。HDDを対象にするならページキャッシュの部分は4KBのままがいいか。"
- mumumuさんはTwitterを使っています 「Thwarting Memory Disclosure with Efficient Hypervisor-enforced Intra-domain Isolation [CCS '15] OSやAppを乗っ取られてメモリDiscloseされる脅威のMitigationとして,予めユーザが定義したメモリ領域secretと動的・静的解析で検出したそれを操作する関数をVMFUNCでIsolationするSeCageを提案.」 / Twitter
- mumumuさんはTwitterを使っています 「No Need to Hide: Protecting SafeRegions on Commodity Hardware [Eurosys '17] Deterministic(=ASLR等 確率的なものでない)なIntra-ProcessのMemory Isolation手法について,既存手法の分類と性能評価.そのためにMPK,MPX(SFI), VMFUNC等を用いて評価ツールMemSentryを実装https://t.co/xD7u4nTyGV」 / Twitter
- memsentry_eurosys17.pdf
Intel
EPT-Based Sub-Page Permissions
- 品川 高廣さんのツイート: "EPT-Based Sub-Page Permissions が消えてる… https://t.co/k9qDDRAHEb"
- 品川 高廣さんのツイート: "と思ったら SDM 本体の方に入ったのか。ということはもうすぐ実装が出てくる?"
- VT-x に128バイトサブページ単位の書込み保護が導入される予定 - 教育は参考ブログ
- 東京大学 品川研究室さんはTwitterを使っています 「品川研究室を卒業した小澤洋介君の論文が国際会議 2021 IEEE 14th International Conference on Cloud Computing (IEEE CLOUD 2021) に short paper として採択されました。128バイトのサブページ単位で書き込み保護を出来る Intel SPP を用いたライブマイグレーションの話です。」 / Twitter
5-Level Paging
- 5-Level Paging and 5-Level EPT white paper
- 5-level paging [LWN.net]
- Fadisさんのツイート: "5 level paging: x86_64の既存の4段のページングでは扱いきれない巨大なメモリを持つマシンの為に将来的にIntelプロセッサで採用されることになっている拡張。Linuxの場合4段ページングでは64TiBを超えるメモリを扱えないが、5段ページングでは4PiBまで対応することができる"
- Fadisさんのツイート: "Linuxの5 level pagingは実装されたばかりで、ドキュメントには「将来的にはブート時に4段と5段を切り替えられるようにしたい」と書かれているが今のところそうした仕組みは無い為、5段を有効にしてビルドしたカーネルは4段しか扱えないプロセッサで実行するとコケる"
- Fadisさんのツイート: "LKMLに投げられているのパッチの説明によると、既に一部のサーバが64TiBのメモリを実際に積んでおり、この問題は喫緊の課題になっているらしい… "
- FadisさんはTwitterを使っています: 「@d_kami こういう巨大なメモリを持つマシンって大体小分けにしてクラウドサービスを提供するためのマシンだったりして、今日クラウドサービスが無くてはならない物になっていることを考えると、どちらが特殊なのかな感はある」 / Twitter
- ちくわさんのツイート: "以前にそれについての記事を書いたのでよろしければどうぞ https://t.co/uhEkuOHv9J… "
- Linux kernelの5-Level Paging有効化部分を読んでみる - めもちょー
CET(Control-flow Enforcement Technology)
- インテル、ROP攻撃をチップレベルで阻止する新技術を発表 - ZDNet Japan
- R.I.P ROP: CET Internals in Windows 20H1 – Winsider Seminars & Solutions Inc.
- 新しいオプション
- qcf-protection、Qcf-protection
- 20160611
- 品川 高廣さんのツイート: "CPUレベルで shadow stack と control flow integrity を入れるのか。https://t.co/NuHzLftmFe"
- Control-flow Enforcement Technology Preview
- 品川 高廣さんのツイート: "VMX, SMM, TXT, SGX にも影響を与える複雑な変更だな。"
- 品川 高廣さんのツイート: "shadow stack は call 時に shadow stack pointer (SSP) が指すところにリターンアドレスだけを積んで、ret 時にスタックの値と一致してなかったら exception が発生するという感じか。"
- 品川 高廣さんのツイート: "indirect branch tracking は jmp 先が ENDBRANCH 命令(未対応プロセッサではNOP相当)でなかったら exception ということでいいのかな。命令列の真ん中に jmp するような ROP chain は組み立てられなくなるわけか。"
- 品川 高廣さんのツイート: "AMD も EPYC でメモリ暗号化とか入れてるし、アーキテクチャの拡張競争みたいにもなってる。AMD と Intel のアーキテクチャがズレていくのはシステムソフトウェア屋的にはつらそうだけど。"
- Intel Releases New Technology Specifications to Protect Against ROP attacks | Intel® Software
- るくすさんのツイート: "Intel CET With Indirect Branch Tracking & Shadow Stack Land In Glibc https://t.co/fjIJnqPpxt"
- Intel CET With Indirect Branch Tracking & Shadow Stack Land In Glibc - Phoronix
- まさみさんは語りたいさんのツイート: "https://t.co/341S8w5ovM うーむ、これROPとかJOP対策だと思うけどkprobes jump optimizationの存続に関わる問題っぽいぞ・・・。"
- Control-flow Enforcement Technology Preview
- まさみさんは語りたいさんのツイート: "ARM pointer authentication https://t.co/lZ87vSuU9t ARMはポインタとして使われるアドレスを符号化して検証する命令を追加してROP対策しているというわけか。このあたり、明示的に機能を使わせるARMと、バックグラウンドで検証するIntelの思想の違いか・・・?"
- ARM pointer authentication [LWN.net]
- まさみさんは語りたいさんのツイート: "多分Intel CETは(Spectre v2の時にも言及したが)投機的実行の効率化のために用意したシャドウスタックをセキュリティに転用しました、ということなんだろうなあ。つまり投機的分岐実行の失敗=脅威発見とみなす、という。"
- Fadisさんのツイート: "glibcにIntel CETのサポートが入った模様。 CET対応のプロセッサではSHSTK(一部の命令だけが書ける第二のスタックにリターンアドレスを積んでROPを検知)とIBT(着地命令以外のアドレスにジャンプ出来なくしてジャンプ先の書き換えを検知)をユーザ空間のプロセスで使えるように https://t.co/247IN0psYI"
- Intel CETをサポートした「GNU C Library 2.28」公開 | OSDN Magazine
- Fadisさんのツイート: "LLVM、リターンアドレスだけが積まれる第2のスタックでROPを検知するShadow Call Stackを廃止。x86_64用の実装が遅くてinsecureだったのが理由。最近のIntel CPUには同様の事をハードウェアで行うCETが備わっているが、LLVMの実装はソフトウェアでそれとは無関係 https://t.co/RnKlqj2wey"
- LLVM Drops Its Shadow Call Stack Support For x86_64 - Phoronix
- Intelがマルウェア攻撃をチップレベルで防御する新技術「CET」を次世代モバイルプロセッサ「Tiger Lake」に搭載 - GIGAZINE
- 実に15年ぶり、インテルがCPUへ追加するマルウエア対策機能の実力 | 日経クロステック(xTECH)
- WhitepaperCSME - intel-csme-security-white-paper.pdf
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ntel TigerLake から Shadow Stack が実装(Intel CET)されていたのね。 ただC++での仮想関数TBLの書き換え系には無力だよねと思っていたら、"indirect branch tracking" も含まれていて、飛び先がENDBR命令以外は例外という、(やや弱そうな)防御が追加されていた。 https://t.co/NAIiq8S8Lc」 / Twitter
- 【pwn 36.0】Intel CETが、みんなの恋人ROPを殺す - newbieからバイナリアンへ
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ShadowStack での exception/longjmp は return が同じ値になるまで、ShadowStack を popしつづけるのが定番らしい。 https://t.co/TfSryDB2RP」 / Twitter
- Shadow stack - Wikipedia
- 巧妙な攻撃もシャットアウト! Windows版「Google Chrome 90」にハードウェアによるスタック保護が導入 - 窓の杜
UMIP
- Intel User-Mode Instruction Prevention Support Revised For The Linux Kernel - Phoronix
- るくす(Ren Kimura)さんのツイート: "Intelの次のプロセッサからSMEPならぬUMIP(User-Mode Instruction Prevention)という、ユーザーモードで実行できる命令をさらに制限するセキュリティ機構が追加されるらしい。 これはカーネルエクスプロイトかなりしんどくなるぞ… https://t.co/aLr5CtSr3P"
- ka0ruさんのツイート: "@RKX1209 これそんなに強いですかね〜"
- るくす(Ren Kimura)さんのツイート: "@infvhj まあ理屈としてはそんなに強くないんですが、肌感覚でしんどくなりそうな気はします。というのも、AAWでカーネル内の関数ポインタを書き換えてユーザー空間からの操作でそいつをtriggerする流れで、このtriggerはなるべく他に副作用を与える操作であってほしくないんですよね。"
- るくす(Ren Kimura)さんのツイート: "@infvhj 余計な操作が多い複雑なシステムコールとかをtriggerにすると、RIP奪う前にカーネルクラッシュしたりとか。で、このパターンが少ないのがGDT/LDTみたいなユーザー空間から参照できてかつprivmitiveな物をtriggerにした時なので結構重宝するんですよ。これができない… https://t.co/JlBLhxcqVX"
- ka0ruさんのツイート: "@RKX1209 Linuxは余り詳しくないのでアレですが、カーネルのwriteプリミティブ持ってるならそのSMEPとかで使うaddr_limit的なのも同時にいじれるかなぁっていうのとret2usrは楽というのは最もですがPTE弄ってカーネルにシェルコードをいれるーとかでもありなんじゃないすかね"
- るくす(Ren Kimura)さんのツイート: "@infvhj あいや、というかRIPをそもそも奪う前にクラッシュする事があって、例えばfops->iops->openを何かのコードの先に書き換えるためにfake iopsとか作ってopenシステムコール呼ぶと、関係ない別の所でiopsの他のメンバ触られてクラッシュとか"
- るくす(Ren Kimura)さんのツイート: "@infvhj 要するにシステムを正常に動かしつつ、特定の関数ポインタだけexploit codeに飛ばすというが難しくて、この両立がしやすいのがGDT/LDT書き換えとかですね。メモリアクセスなんて他に邪魔されずすぐに発生してくれるのでスッとtriggerしてくれる"
- るくす(Ren Kimura)さんのツイート: "@infvhj あとSMEPのONOFFはレジスタが管理してるので、OFFにするには直接writeプリミティブでは難しくて、レジスタいじるROP gadgetみたいなコード実行に一度飛ばしてやる必要がありますね"
- るくす(Ren Kimura)さんのツイート: "@infvhj ring0のアドレス範囲addr_limitを書き換えるというのはGDT書き換えにあたると思います。"
- イトー君さんのツイート: "@RKX1209 一般ユーザーにとってこれはgoodなの?badなの?"
- るくす(Ren Kimura)さんのツイート: "@TaKeZo_I 一般ユーザー的にはおそらく良い方向だと思いますねー これを追加して何か不具合が起きるというのはそんなに無さそう"
- イトー君さんのツイート: "@RKX1209 待つほど価値があるもの?"
- るくす(Ren Kimura)さんのツイート: "@TaKeZo_I あー そこまでではないと思います。比較的高度な攻撃に対する対策技術なので、そもそも一般ユーザーで特にWindows環境以外をお使いならそんなに遭遇しないかなぁと"
- イトー君さんのツイート: "@RKX1209 了解です、ありがとう"
- 2018年1月29日 Linux 4.15が正式リリース, Meltdown/Spectreにフルパッチ対応:Linux Daily Topics|gihyo.jp … 技術評論社
- x86: enable User-Mode Instruction Prevention [LWN.net]
- Linuxカーネル4.15リリース、Meltdown/Spectreへの対処が組み込まれる | OSDN Magazine
- InstLatX64さんのツイート: "QuadCore #Intel Celeron J4105 (#GoldmontPlus) 706A1 CPUID dump added - according to this, Goldmont+ supports SGX, SGX_LC, UMIP, RDPID features, and also the 3 #Spectre/#Meltdown mitigation features (#IBPB/#IBRS, #STIBP, IA32_ARCH_CAPABILITIES) in: https://t.co/37mJQ4r9bT… https://t.co/y8zSIn9c80"
- Intel 80286 - Wikipedia
Memory Protection Keys
- Memory Protection Keys (MPK) Submitted For Linux 4.6 - Phoronix
- Memory Protection Keys Support Finished Up In Linux 4.9 - Phoronix
- LLVM Begins Looking At PKU Memory Protection Keys Support - Phoronix
- [RFC] x86: Memory Protection Keys [LWN.net]
- Linuxカーネル4.6が登場 | OSDN Magazine
- Linuxカーネル4.9リリース、Greybusのサポートや各種ドライバの強化などが行われる | OSDN Magazine
- x86 の仮想ページに Protection Key が付いた - 教育は参考ブログ
- 品川 高廣さんのツイート: "Intel MPK 流行ってるな。VMFUNC も良く見かける。保護ドメイン系は永遠のテーマだな。"
- retrageさんはTwitterを使っています 「ちょっと前までSGX使ったシステムの論文が雨後の筍のごとく出てて、その後SGXへの攻撃手法が出てSGX使われなくなったような感じがあった」 / Twitter
- retrageさんはTwitterを使っています 「今アツいのはMPKなのかな」 / Twitter
- mumumuさんはTwitterを使っています 「Hodor: Intra-Process Isolation for High-Throughput Data Plane Libraries [ATC '19] Kernel BypassなIOを提供する等重要なライブラリの安全性を担保するためにPKUを用いてIsolation(Appの制御が奪われる脅威を想定).ローダがバイナリを走査しデバッグレジスタを用いて意図しないpkruの変更を検出」 / Twitter
- mumumuさんはTwitterを使っています 「libmpk: Software Abstraction for Intel Memory Protection Keys (Intel MPK) [ATC '19] MPKのサポートはすでにLinuxに実装されているが,それらを改良し既存のSWが使用しやすく(mprotectのプロセスレベルアクセス管理のSemanticsを再現やPkeyの仮想化),Securityの強化等を実装した研究.」 / Twitter
- Intel MPKについて - Google スライド
- FadisさんはTwitterを使っています 「ライブラリOSはOSとアプリケーションが単一のメモリ空間で動くのが性能を稼ぐ上で強みだが、それはセキュリティとのトレードオフになっているためMPKを使ってライブラリOSをより堅くしたい、と #kernelvm」 / Twitter
- プロセス内のメモリアクセス権限を効率的に制御 「Intel MPK」はコンテキストスイッチがいらなくて高速 - ログミーTech
SMEP
- 【仮想化道場】IDF北京から、2013年のIntelサーバープロセッサのロードマップを見る - クラウド Watch
- Tsukasa #01さんはTwitterを使っています: "@yuzuhara x86 の PAE にあるような NX ビット (ARM での XN ビット) に加えて、ページ毎に Ivy Bridge の SMEP ができる PXN ビットというのがページテーブルに存在
- 本の虫: カプコンのPC版ストリートファイター5にチート対策として誰でもカーネルモードで任意のコードを実行できるルートキットが仕込まれている問題
- Windows カーネルモードの脆弱性「CVE-2014-4113」を検証 | トレンドマイクロ セキュリティブログ
SMAP
- x86 の新しいメモリ保護機能 Supervisor Mode Access Prevention(SMAP) - 教育は参考ブログ
MPX
- 技術者見習いの独り言: Intel Memory Protection Extensions (MPX)
- るくすさんのツイート: "Intel MPXというポインタの値をランタイムにチェックするskylake以降のセキュリティ用拡張命令があるんだけど、GCCが次のバージョンからサポートを打ち切るそうな。 https://t.co/gH1sQz0EmT"
- GCC Developers Potentially Deprecating Intel MPX - Phoronix
- Richard Biener - Re: [PATCH][www] Deprecate MPX for GCC 7
- www.ffri.jp/assets/files/monthly_research/MR201502_Intel_Memory_Protection_Extensions_JPN.pdf
- るくすさんのツイート: "うわー ついにIntel MPX(Memory Protection Extensions)のサポートがLinuxからも消えるってよ... 結局gccもサポート切ったし、セキュリティ支援機構なんて使われなきゃ意味ないよなぁ https://t.co/Vl4ZUoxbvK"
- The Linux Kernel Might Drop Memory Protection Extensions Support - Phoronix
- x86 に AVX-512、SHA Extensions、Memory Protection Extensions(MPX)、Processor Trace(PT) が追加 - 教育は参考ブログ
- suzakiさんのツイート: "3E4-1: ヒープ領域に対するソースコード不要のIntel MPX命令適用手法 ◎ 加藤 周良(名古屋工業大学) メモリの領域チェックを行うIntel Memory Protection Extensions(MPX)命令はコンパイラで適用されるのが一般的だが、PINによる動的バイナリ解析からヒープにも適用する。"
SGX
Intel
- Intel SGX - セキュリティ
- Intel® Software Guard Extensions SDK | Intel® Developer Zone
- WebHelp
- ISCA 2015 tutorial slides for Intel® SGX
- ISA Extensions Intel SGX | Intel® Developer Zone
- Introducing the Intel® Software Guard Extensions Tutorial Series | Intel® Software
- Intel SGX Homepage | Intel® Software
SGAxe
- SGAxe.pdf
- DynaomoREA - slides.pdf
- s-81: Hardware - YouTube
- LayerX Newsletter for Tech (2020/11/30-12/06) - LayerX Labs Newsletter
MSDN
- InitializeEnclave function (Windows)
- CreateEnclave function (Windows)
- IsEnclaveTypeSupported function (Windows)
- LoadEnclaveData function (Windows)
- ENCLAVE_INIT_INFO_SGX structure (Windows)
- ENCLAVE_CREATE_INFO_SGX structure (Windows)
Firmware Security
- Signal use of Intel SGX | Firmware Security
- Monotonic Counter in Intel SGX and ME | Firmware Security
- EnclaveDB: A Secure Database using SGX | Firmware Security
- Upcoming Intel SGX Features Explained: Improved Virtualization, Configuration Management, and Key Sharing | Firmware Security
FPGA開発日記
- Intel Software Guard Extensionのチュートリアルを読む(1. SGX Foundation) - FPGA開発日記
- Intel Software Guard Extensionのチュートリアルを読む(2. Application Design) - FPGA開発日記
- Intel Software Guard Extensionのチュートリアルを読む(2. Design an Application) - FPGA開発日記
- Intel Software Guard Extensionのチュートリアル サンプルプログラムを実行(Part-3 PasswordManagerCore) - FPGA開発日記
Twitter
- Leon Anaviさんのツイート: "#Intel SGX can leak #crypto keys tested on #Thinkpad T460S with #Ubuntu 16.10 https://t.co/Zxl0ySkj9H"
- NOKUBI Takatsugu野首貴嗣さんのツイート: "これはACCS 2.0もアカンのでは…"
- Tsukasa #01 [要出典]さんのツイート: "えーっと、サイドチャネル攻撃か。Intel は元々 SGX におけるサイドチャネルは注意事項として挙げてあったような、と思って検索してみたら、もっと直接的な言及をしているページを発見。 SGX and Side-Channels https://t.co/JlBBQiJ1BZ"
- NOKUBI Takatsugu野首貴嗣さんのツイート: "UHD-BD対応のソフトウェアプレイヤーがSGX必須になってるけど、結局それだけじゃ意味ないんだな"
- Takekazu OmiさんはTwitterを使っています: "Haven は、Windows 版Dockerなのかと思ったら、「SGX を使うと、hypervisor ではなくてコンテナでも高いisolation を実装できるぜ」って話しらしい、面白い。intel頑張るなあ"
- 品川 高廣さんはTwitterを使っています: "OSDI 2014 の Best Paper 3つ目は Haven. Intel SGX を活用して既存のWindowsアプリをクラウド上で安全に実行する。クラウド業者やVMM、物理層による攻撃にも耐えられる(CPU=Intelさえ信用すれば良い)。"
- DJ MISONIKOMIUDONさんはTwitterを使っています: "Intel SGX拡張を使うマルウェアの可能性について。へー / Virus Bulletin : SGX: the good, the bad and the downright ugly https://t.co/11GXY6TtQ5"
- NOKUBI Takatsugu野首貴嗣さんはTwitterを使っています: "Intel SGX Enclave Page Cache Mem 暗号化されて外部からメモリ空間が見られない機構 #kernelvm"
- royさんはTwitterを使っています: "ていうかその界隈の人はもう考えてるんだろうけどIntel SGXがまともに使われ始めたらメモリフォレンジック非常に困難では。プロセスごとに同じ空間で動くエージェント挿入するとかしないと解析できないのでは。"
- suzakiさんのツイート: "ハードウェアⅡ三つ目。クラッシュやリブートしてもIntel SGXが提供するProtected Module Architectureを保証するために不揮発メモリを用意して状態保存するAriadneの発表。No Rollback, Continuous, Livenessを保証。"
- suzakiさんのツイート: "OSDI OS-I四つ目。Forkでプロセスを作る代わりに、rollbackやreference monitorを考慮し、且つ効率的に処理を可能にする新しい抽象LwC: Light-Weight Contextsを導入する話。"
- suzakiさんのツイート: "LwC論文ではIntel SGXで再設計する話が出てきている。こちらにも興味あり。"
- suzakiさんのツイート: "質問にもあったけど、プロセスのisolationではキャッシュの攻撃やマルチスレッドを使った攻撃も考慮する必要がありますね。その意味でもSGXは重要か。"
- suzakiさんのツイート: "明日のOSDIで発表される”SCONE: Secure Linux Containers with Intel SGX”の方がIntel Clear Container https://t.co/5OJRSIVzEi よりセキュアと思うのは気のせい?"
- suzakiさんのツイート: "NDSS TEE五つ目。TEEは小さくと言われているがハイパーバイザーもカーネルも大きい。SGX にLibOSの技術を使い、Systcall,スレッド,イベントハンドラ, Forkなどのサポートしつつ小さいTEE(20K行)を保つPanopyの発表。Multi-Enclaveあり"
- suzakiさんのツイート: "ハードウェアⅡ一つ目。Intel’s Software Guard Extensions (SGX)と同じ機能を提供するハードウェア拡張Sanctum (RISC-V上で実装) の発表。セキュアなサンドボックス(ここではSecure containerと呼んでいる)を提供する。"
- suzakiさんのツイート: "security一つ目。ベストペーパ。Intel SGXを使ったサンドボックスのRyoan。SGXのenclave内のmoduleが用意され、秘密情報を管理。秘密情報はサンドボックス化による出ることはない。moduleは処理が終われば廃棄。"
- suzakiさんのツイート: "ASPLOS メモリ2セッション3つ目。Intel SGXが使えるメモリEPC:Enclave Page Cache は128 MBに制限されているため、これ以上をつかうためにはnon-EPCにSwap-out/inする必要がある。しかし、MAC Integrityなどのオーバーヘッドのために40K サイクルかかる。(続く)"
- suzakiさんのツイート: "SGXのメモリ拡張のオーバーヘッド問題を解決するためにUnified SGXで使われるデータ管理木を可変にしたVAULT: variable arity unified treeの提案。"
- suzakiさんのツイート: "EuroSysストレージ2つ目。SGXにKVS: Key-Value Storageを作るとEPC (Enclave Page Cache 128MB)でSGXのPage Outが起こるので遅い。この性能低下を防ぐため、Sematic Aware Protectionを提案。独自に暗号してEnclave外のProtected Memory に保存するShieldStore。Enclave内にはKVSのSubTreeのRootのみ。"
- suzakiさんのツイート: "ハードウェアセキュリティ4つ目。Intel SGXを実際に使い、その経験の発表 by 富士通。Trust領域とNonTrustの領域の通信が遅いのが問題。"
- suzakiさんのツイート: "Dark ROPの肝は暗号化されているEnclave内でpop命令を見つける方法。コードのある領域はわざとPage faultを起こして見つける。次にENCLU命令(Enclaveで暗号化された命令を復号する命令)を見つけ、(EEXIT命令も使って?)popが使うレジスタを推定。"
- suzakiさんのツイート: "これは知らなかった。 PC Watch 2017/03/07『Ultra HD Blu-rayの著作権保護機能である「AACS2.0」は従来のBDよりもはるかに強固なセキュリティを実現するため、PCでの再生においてはプロテクト解除のために「SGX対応」が必須とされているのだ。』 https://t.co/yWt59i8u4n… https://t.co/dK9pwD3Guy"
- PCで4K&HDRなUltra HD Blu-rayを観るにはどうすればいい? 世界初の対応ドライブ パイオニア「BDR-S11J」の動作環境などをチェック!
- suzakiさんのツイート: "【緩募】WindowsあるいはLinuxでAACS2.0対応のUltra HD Blu-ray再生アプリって何があるのでしょうか。"
- suzakiさんのツイート: "裏が取れないのだけど、「DVDFabがAACS2.0の解除機能を実装」https://t.co/bhaHfQx8C6 ってIntel SGXを突破したってこと?"
- DVDFabがAACS2.0の解除機能を実装 | E.i.Z
- Intel SGXをコアとしたコンフィデンシャルコンピューティングの実現 - ITmedia エンタープライズ
- Intel CPUの「Plundervolt」の欠陥が電圧操作を介して秘密を流出 - 自作ユーザーが解説するゲーミングPCガイド
- retrageさんはTwitterを使っています 「ちょっと前までSGX使ったシステムの論文が雨後の筍のごとく出てて、その後SGXへの攻撃手法が出てSGX使われなくなったような感じがあった」 / Twitter
- retrageさんはTwitterを使っています 「今アツいのはMPKなのかな」 / Twitter
- suzakiさんはTwitterを使っています 「メモ。 ざっとしか見てないがSGXの解説が良さそう。 Trust is in the Keys of the Beholder: Extending SGX Autonomy and Anonymity [Master Thesis 2017] https://t.co/4hkOFnQASV」 / Twitter
- Trust is in the Keys of the Beholder — Extending SGX Autonomy and Anonymity - jackson-msc-thesis.pdf
- suzakiさんはTwitterを使っています 「RAID 2020の採択論文には色々興味深いものがある。 https://t.co/eUWLwO0RiK SGX関連が2件、 A Framework for Software Diversification with ISA Heterogeneity や Dark Firmware: A Systematic Approach to Exploring Application Security Risks in the Presence of Untrusted Firmware も惹かれる」 / Twitter
- Accepted Papers – RAID 2020
- suzakiさんはTwitterを使っています 「AnonifyのTEEが気になった調べた。 ブロックチェーンにおける次世代のプライバシー保護技術「Anonify」の ホワイトペーパー及びソースコードをLayerX R&D部門が公開 https://t.co/A4sP3lLhg6 TEEにはIntel SGXを想定しているようだ。 ホワイトペーパもよく書けていそう。 https://t.co/QmdJmA8BCF」 / Twitter
- ブロックチェーンにおける次世代のプライバシー保護技術「Anonify」の ホワイトペーパー及びソースコードをLayerX R&D部門が公開 | LayerX
- anonify.pdf
- suzakiさんはTwitterを使っています 「メモ。 RusTEE: Developing Memory-Safe ARM TrustZone Applications[ACSAC20] メモリセーフ言語Rustを活用してARM TrustZoneのセキュリティを強化するRusTEE。アイデアは単純だが、RustはTEEシステムをサポートしていないため、Rustコンパイラを拡張した。 TEE研究にツールチェーンの重要性を示した」 / Twitter
- suzakiさんはTwitterを使っています 「メモ。 Faulty Point Unit: ABI Poisoning Attacks on Intel SGX[ACSAC20] KU Leuvenの研究者が発見したx87(FPU)およびSIMD拡張命令(SSE)の制御および状態レジスタがIntel SGXで常に適切にサニタイズされるとは限らないことを活用した攻撃についての発表。TEE内のサニタイズについての示唆を与えた」 / Twitter
- suzakiさんはTwitterを使っています 「メモ A Memory Encryption Engine Suitable for General Purpose Processor, 2016 https://t.co/bb1ZG25I2N Intel SGXで使われているメモリ暗号エンジン MEE: Memory Encryption Engineの論文。」 / Twitter
- 2016-204.pdf
- インテル® SGX 命令とデータ構造の概要 | iSUS
- ダウンロード Windows* 用インテル®ソフトウェア・ガード・エクステンションズ (インテル® SGX) ドライバー
- Intel CPUのセキュリティ機構「SGX」にマルウェアを隠すことでセキュリティソフトで検出できない危険性、概念実証用のプログラムも公開済み - GIGAZINE
- sgxrop/sgxrop: The code to the SGX-ROP paper
- Intel SGXからのデータ奪取手法が開発 - ごった日記
- Intel SGX のアップデート、および認証キーのリカバリー
- wolfSSL FIPSのIntel® SGX対応 – wolfSSL:Blog
- WolfSSLとWolfCryptのベンチマーク | wolfSSL
- 本当の進化とはこういうこと:質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (2/2) - ITmedia PC USER
- マイクロソフト、クラウド上のアプリを隔離する新技術「Haven」を開発 - CNET Japan
- 北森瓦版 - 【Intel】“Skylake”でSoftware Guard Extensions (SGX) を有効化へ
- 204.pdf
- 跳ね橋を叩いて渡る An introduction to DrawBridge まとめ #kernelvm - by shigemk2
- www.dell.com/support/manuals/us/en/19/latitude-e5570-laptop/LatitudeE5570_OM/Intel-Software-Guard-Extensions-画面オプション?guid=GUID-5D0F897B-F35D-45E9-8B65-F4B2CF32F5E7&lang=ja-jp
- インテルSkylakeプロセッサのリビジョン!I7 / I5 / E3フルリニューアル@goodchinabrand.com
- 2016年2月24日のtwitterセキュリティクラスタ – twitterセキュリティネタまとめ
- 48146462.pdf
- Teechanの決済プロトコル - Develop with pleasure!
- マネーロンダリングなどの不正利用を防ぐインテルCPUのセキュリティ技術「SGX」 ~Intelがなぜデータセンターで強いのか? その包括的な製品群を徹底解剖- PC Watch[Sponsored]
TME
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ディスクやメモリの暗号化では、XTSというブロック暗号モードが最近の定番、という点を初めて知った。 https://t.co/AlgOrzHujH… "
- Disk encryption theory - Wikipedia
- Fomalhaut Weisszwergさんのツイート: "Intel 製 CPU にもメモリ暗号化機能。Intel TME (Total Memory Encryption) なる機能が追加されました https://t.co/Z5orBwxmY2"
- Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linu… · torvalds/linux@9e1909b
- Shirouzu Hiroaki(白水啓章)さんのツイート: "昔、サーバで暗号化してのファイル保存が必要になった際、CBCだとランダム書込みができず、CTRだとランダムな上書き(=事実上NONCE再利用状態)で脆弱性発生で、解決に頭を悩ませた記憶。 XTSという手を知らなかったので、別途NONCE配列(1ブロック=1NONCE)を設ける手しか浮かばなかった。… https://t.co/x76fuJuhga"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "CTRだとランダムな上書き(=事実上NONCE再利用状態)で脆弱性というのは、「ある時点でのスナップショットを取り、変更後にもう一度スナップショットを取る」という操作で、スナップショット差分=元内容と上書き内容のビットパターン差分が見えてしまう、という意味。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、XEX/XTSの後段のXORは、どういう効果があるのか良く判らない…気休め程度にも見えるのだけど。"
TDX
- Intel® Trust Domain Extensions - tdx-whitepaper-v4.pdf
- InstLatX64さんはTwitterを使っています 「This #Intel #TDX pdf has a comprehensive list of CPUID bits on p.116-123. It mentions a few new one (at least for me): FZM, MPRR, SGX_TEM, SGX_KEYS, ULI, DEDUP, HRESET, Fast REP*s, and - according to the XFAM bits - #AVX512-related #FP16 and #ADL_VNNI https://t.co/cRvQtcgU2A https://t.co/WeXCJgWl5m」 / Twitter
- Architecture Specification: Intel® Trust Domain Extensions(Intel® TDX) Module - intel-tdx-module-1eas.pdf
- https://twitter.com/InstLatX64/status/1306525230379290627
- https://twitter.com/InstLatX64/status/1306530044584644609
- 本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
- Hisaki Oharaさんのツイート: "よくまとまってる。最後のCETっての知らなかった。。Intel CPU security features https://t.co/zKazJKnSY5"
- Intel CPU security features · huku-/research Wiki
- x86におけるメモリアクセス権のルール - 睡分不足
- 社会人でもOSを作りたいさんはTwitterを使っています: 「きっとx86-64のOSを自作してる人なら誰もが持ってる思うけど,4階層ページングの仮想アドレスを各部分(PML4,PDP,PD,PT)に分割する,または逆に各部分の値から仮想アドレスを作るツールを作ってみた。 https://t.co/aaAXYAS1lz」 / Twitter
- x86-64 Virtual Address Composer
- NT カーネルのページング基礎 - Qiita
ページキャッシュ
- Linuxのメモリキャッシュを削除する | 俺的備忘録 〜なんかいろいろ〜
- OSキャッシュの便利な利用方法|サイバーエージェント 公式エンジニアブログ
- Linuxでページキャッシュを確認・解放してみた - Qiita
- Windowsカスタマイズ - キャッシュを極める
メモリ管理
- Linux のメモリー管理(メモリ-が足りない?,メモリーリークの検出/防止)(Kodama's tips page)
- 6. システムがパフォーマンスを維持するためのメモリ管理について
- 4.メモリ使用率(第5章 パフォーマンス管理~上級:基本管理コースII)
- Windows OS入門:第4回 メモリ管理 - @IT
- freeコマンドで確認するOSのメモリ情報 - SHOYAN BLOG
- 【RHEL】linuxのメモリ使用率(利用率)の計算方法 - のぴぴのメモ
- linuxにおけるメモリと関連コマンド(free, vmstat, top, sar) - 銀色うつ時間
- Linuxにおけるメモリ管理 - MogLog
- どうしてメモリはスワップするのか!? - インフラエンジニアway - Powered by HEARTBEATS
- Rui Ueyamaさんのツイート: "このミニOSにページングを実装する課題かなり目処がついて来た。最初は若干途方に暮れていたけど少しずつ作れば難しくはなかった。まずmmap()をやっつけで実装、そのあとスタック拡張も実装、そのあとページアウトも実装、みたいな。"
Meltdown:Variant 3: rogue data cache load (CVE-2017-5754)対策:Kernel page-table isolation
- meltdown.pdf
- kaiser.pdf
- Kernel page-table isolation - Wikipedia
- python sweetness — The mysterious case of the Linux Page Table...
- The mysterious case of the Linux Page Table Isolation patches : linux
- The mysterious case of the Linux Page Table Isolation patches | Hacker News
- Linux page table isolation is not needed on AMD processors | Hacker News
- The mysterious case of the Linux Page Table Isolation patches | Hacker News
- Kernel page-table isolation merged [LWN.net]
- The current state of kernel page-table isolation [LWN.net]
- The current state of kernel page-table isolation [LWN.net]
- The current state of kernel page-table isolation [LWN.net]
- 「Intelの脆弱性情報の開示が遅すぎた」ことでLinux開発者が大変な目に遭っていたことが発覚 - GIGAZINE
- CPU脆弱性Meltdownのパッチ適用でベンチマークスコアが25%低下した - Qiita
- Meltdown cpu脆弱性カーネルアップデートでほんとに性能ダウンした - Qiita
- Meltdown - Wikipedia
- Meltdown (security vulnerability) - Wikipedia
- satさんのツイート: "Meltdownを使った攻撃のいろんな派生 https://t.co/7eZjlerhKN"
- meltdown/libkdump.c at master · IAIK/meltdown
- Microsoft Windows: Kernel Virtual Address (KVA) Shadow: mitigating Meltdown | Firmware Security
- Windows 7のMeltdown対策パッチに脆弱性 ~セキュリティパッチがより深刻な問題を生む結果に、3月で修正済み - PC Watch
- Hideyuki Tanakaさんのツイート: "インテル去年だけで16ビットレジスタを分割して使うときの不具合とか、中で変なOSが動いてる問題が発覚するとかいろいろあったのに、これはそれとは比べ問にならないぐらいまずそうだけど(´・_・`)"
- KVA Shadow: Mitigating Meltdown on Windows - Microsoft Security Response Center
- Rogue System Register Read
- Instructions Affected by Rogue System Register Read
Foreshadow(L1 Terminal Fault(L1TF)) - CVE-2018-3615, CVE-2018-3620, CVE-2018-3624
その他
- Intel CPUの投機実行にサイドチャネル攻撃による新たな脆弱性が発見 - PC Watch
- インテルのプロセッサに新たな脆弱性「Foreshadow」--仮想化環境に対する大きな脅威 - CNET Japan
- Intel製CPUのセキュリティ機能“SGX”に情報漏洩の脆弱性 ~“Foreshadow”が発表 - 窓の杜
- Intelが発表、キャッシュタイミングを利用したサイドチャネル攻撃の脆弱性「L1TF」:仮想化利用時に課題あり - @IT
- Microsoft、2018年8月のセキュリティ更新プログラムを公開 ~OSの最大深刻度は“緊急” - 窓の杜
- インテルのプロセッサに新たな脆弱性「Foreshadow」--仮想化環境に対する大きな脅威 - ZDNet Japan
- HW由来の脆弱性 (L1 Terminal Fault (L1TF) / Foreshadow: CVE-2018-3615, CVE-2018-3620, CVE-2018-3646) – 脆弱性情報ブログ(仮)
- L1 端末の障害から保護するための Windows Server ガイダンス
- インテルCPU脆弱性「Foreshadow」の影響をまとめる - orangeitems’s diary
- “L1TF”脆弱性への対策を盛り込んだ「VMware Workstation」「VMware Fusion」最新版 - 窓の杜
- IntelのCPUで新たに発見された脆弱性「Foreshadow」の解説ムービーをRedHatが公開中 - GIGAZINE
- 【CPU】 Intel CPUに新たな脆弱性『L1 Terminal Fault(L1TF)』。2018年8月度のWUで緩和策を実装 : ニッチなPCゲーマーの環境構築
- herumiさんのツイート: "社内勉強会用のメモ Foreshadow L1FT https://t.co/43HbIRyzv3 TLBleed https://t.co/RZ8wHm7IDl LazyFP https://t.co/er6rVg2V7F"
- misc/security/L1FT at master · herumi/misc
- Microsoft、Spectre V3a/4とL1TF脆弱性対策のIntel CPU向けマイクロコード更新を公開 - 窓の杜
- 2018年8月24日号 LXDの.deb→snapパッケージ移行,続Spectre・“L1TF”(Foreshadow/Foreshadow-NG)への対応:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- 2018年8月27日 Linux 4.19-rc1が登場,「L1TF」脆弱性にも対応:Linux Daily Topics|gihyo.jp … 技術評論社
- MS、インテルのマイクロコード更新プログラム公開--「Spectre」「Foreshadow」対策 - CNET Japan
- 【セキュリティ ニュース】MS、「Foreshadow」対策でアドバイザリ - アップデートや追加対応策の実施を(1ページ目 / 全3ページ):Security NEXT
- Intelが新たな投機的実行脆弱性"L1 Terminal Fault"を公表
@mhiramat
- まさみさんは語りたいさんのツイート: "L1Dから読めちゃう問題というか仕様、昔からlock prefix付けないとL2が変わってもL1から読めるだけ読んじゃうって動作だったように思うんだけども。"
- まさみさんは語りたいさんのツイート: "なんかbusy waitのバグを再現しようとして、フラグをatomicにするのを忘れてループ回したら、片方のCPUの演算結果が受け取れなくてL1Dは更新されないんだー、へーっていくのを実際にやった覚えがある。"
- まさみさんは語りたいさんのツイート: "L1TF問題、armではどうなるんだっけか。"
- まさみさんは語りたいさんのツイート: "L1TFって実際に書き込み出来るバグなの?"
- Tsukasa #01 [要出典]さんのツイート: "No. Spectre 類似攻撃で、投機実行パスでメモリ保護機能の一部が無効になっていることを悪用して情報を "読む" ことがメイン。概要だけ抜き出したら Spectre や Meltdown と違う部分がなくなってしまいましたが、変種ということで……。… "
- まさみさんは語りたいさんのツイート: "やはり読むだけですよね。いくら投機実行できるとは言え、投機的に書き込む場合コミットできるかどうか確認してからでないとメモリに書き込みは出来ないですよね。… "
- Tsukasa #01 [要出典]さんのツイート: "はい。逆説的に言えば、その点さえ守ってれば投機的実行パスで何してもいいだろ的に色々やり過ぎたのが最悪の形で暴かれてしまってるのではないかと。… "
- まさみさんは語りたいさんのツイート: "なんかこう、投機的実行とか先読みとかのせいで、Intel CPUを使うメリットだった強い一貫性のあるメモリモデルが一転して信じられなくなってる上、ISA上確認できないしコントロールも出来ないので最悪だなーっていう話になってきているな。"
- まさみさんは語りたいさんのツイート: "そもそもメモリモデルがある程度弱い一貫性とかキャッシュを自前である程度制御しないといけない、という話だと、それに対応する命令ややり方があるんだけど、ソフトウェアの外側にある投機的実行や先読みが勝手にキャッシュしたりすると、制御する術がないか、あるけど牛刀になるという・・・。"
- まさみさんは語りたいさんのツイート: "うーん、非常に嫌な話が出ていて、ページテーブルを共有する複数のコアで、1つのコアが一部のPTEを変えた場合、他のコアで勝手にそれがTLBにロードされているかもしれないっていう話。そしてそれを明示的にshootdownできない(他のコアなので)ので危険かもと。"
- まさみさんは語りたいさんのツイート: "もはやTLB shootdownとは()という話だな。これどうしようもないなら、全部のコアでページテーブルを共有してはいけないっていう話にならないか?"
- beepcap@HTTPSの強制には反対さんのツイート: "最近「まさかそんな実装になってるんけないやろwwww」みたいなのが、サイドチャネル攻撃のお陰で次々あらわになって笑えるし、MIPSの正しさが示される"
- まさみさんは語りたいさんのツイート: "現状の予想 ・とりあえずカーネルのページテーブルは共有 ・微妙な操作をする場合に専用スレッドを立て、専用ページテーブルを利用する(カーネルスレッドだけど少し違うメモリ空間になる)"
- まさみさんは語りたいさんのツイート: "これが他のspectreと違って厄介なのは、TLBエントリが勝手に追加されてしまった場合、その後のメモリアクセスは投機実行だけでなく、実際にコミットされうるところだな。つまりRWマップしていたら、書き込みも可能になると。"
- まさみさんは語りたいさんのツイート: "このTLBのspeculative read-ahead(というのが適切に思う)の問題は、本質的には他のプロセッサでも起きる可能性がありそうなんだけど、どうなんだろう?"
- まさみさんは語りたいさんのツイート: "処理の途中でswitch_mmしちゃう(専用スレッドは作らない)方向になった。まあ、その方が簡単だけども。"
@utshina2
- 品川 高廣さんのツイート: "10秒で分かるForeshadow: まずenclave内の秘密のデータをL1に乗せさせてアクセスするコードのout-of-order実行を可能にしつつ、pageを読み書き禁止にしてpage faultを発生させてダミー値への置き換えを防ぎ、page walk中にMeltdown的なside-channel攻撃でL1上の秘密のデータを読み出すって感じかな。"
- 品川 高廣さんのツイート: "page walk には時間がかかるのだけど、その間に同じページのデータが既にL1キャッシュに乗っていたら、次の命令が out-of-order で投機的に読めてしまうのが問題らしい。インテルが L1 Terminal Fault と呼ぶのはそういうことかな。"
- 品川 高廣さんのツイート: "page table entry の present bit が 0 (存在しない)の場合、本来残りのビットはOSが自由に使っていい領域なのだけれど、物理アドレス部分が(たまたま)キャッシュされている内容と一致していれば、次の命令で投機的に読めてしまうらしい。えーっ"
- 品川 高廣さんのツイート: "page table entry の物理アドレス部分がたまたま有効な値であれば、ユーザ空間から本来アクセス権がないOSや他プロセスのデータを読めてしまう可能性がある。キャッシュを共有しているVM間であれば、ゲストOSで適当に page table entry を設定すれば他VMのデータを読めてしまう可能性がある。"
@kazuho
- Kazuho Okuさんのツイート: "PTEのPresentビットが立ってなくても、格納されている物理アドレスをspeculativeに利用しちゃうから副作用があるのかー / “deep-dive-intel-analysis-l1-terminal-fault” https://t.co/qKY8UK7vcv"
- Kazuho Okuさんのツイート: "L1TF はゲストOSが信頼できないとなると hyper-threading をオフにする必要があって、それってつまり vps とかそういう系にはとても大きなパフォーマンスインパクトがあるってことになるからなぁ https://t.co/sgvOGMIqnv"
- Intel Side Channel Vulnerability L1TF
- https://software.intel.com/security-software-guidance/insights/deep-dive-intel-analysis-l1-terminal-fault
@jovi0608
- Shigeki Ohtsuさんのツイート: "今度は Intel SGX を狙った L1 Terminal Fault か。 / “Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-…” https://t.co/aPzuaSE1j1"
- Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution
@KuniSuzaki
- suzakiさんのツイート: "新たな投機的実行の脆弱性 "Foreshadow"(Intelでの命名はL1TF: L1 Terminal Fault)はIntel SGX、SMM、VMMまで影響を及ぼす。これはUSENIX Sec18で発表される。 https://t.co/2isrd8lko8 USENIX SecのHP https://t.co/uylwnCo89D"
- Intel CPUの「SGX」機能に新たな脆弱性、仮想マシンなどにも影響 - ITmedia エンタープライズ
- suzakiさんのツイート: ""Foreshadow"論文はまだUSENIX Sec18のHPからは公開されていないが、著者らのHPからダインロードできる。 https://t.co/0wpfRoXaXx"
- foreshadow.pdf
- suzakiさんのツイート: "投機的実行の脆弱性 "Foreshadow"脆弱性は、 SGX関連 CVE-2018-3615(CVSS 10.0) OS/SMM関連 CVE-2018-3620(CVSS 7.1) VMM関連 CVE-2018-3646(CVSS 7.1) だそうだ。 共通脆弱性評価システム(CVSS)最高値は10.0なので影響が心配。 https://t.co/2isrd8lko8"
@masami256
- このコード、オシャカルトっ!さんのツイート: "PTEからPFNを調べるところでprotnone_mask()って関数が追加されてPビットのチェックが入ったり。https://t.co/eNCpazBHtG"
- kernel/git/torvalds/linux.git - Linux kernel source tree
- このコード、オシャカルトっ!さんのツイート: "記事にも書いてあるけど、実際のpatchを見るとkvmの方が対応がめんどくさいな"
- このコード、オシャカルトっ!さんのツイート: "https://t.co/6MfwZRO9gaのMeltdown strikes back: the L1 terminal fault vulnerabilityってまた新しい手法か?まだ読んでない。"
- このコード、オシャカルトっ!さんのツイート: "Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution https://t.co/qBXFHNqfL1"
- Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution
- このコード、オシャカルトっ!さんのツイート: "PTEのPビットが0ならページが存在しないんだから、ページフォルトが起きた時にPTEのPFNは読む必要ないんだけど、Intel CPUは先読みしちゃうのでL1キャッシュにデータがあると読み出せてしまうって感じかな。"
- このコード、オシャカルトっ!さんのツイート: "データがL1に存在する必要があるとか条件は面倒そうだ。"
- このコード、オシャカルトっ!さんのツイート: "コメントが細く書かれてるな https://t.co/eNCpazBHtG"
- kernel/git/torvalds/linux.git - Linux kernel source tree
- このコード、オシャカルトっ!さんのツイート: "(´-`).oO(カーネルも脆弱性対応で変数にアクセスするにもちょっとひと手間加える必要があったりするし、セキュリティはそこまで気にしないシンプルな実装の学習用のカーネルというものの需要はあるだろうな。"
- satさんのツイート: "これよいですよ https://t.co/yd2t2H5LpE… "
- このコード、オシャカルトっ!さんのツイート: "Meltdown strikes back: the L1 terminal fault vulnerability のpteの説明でpfnに46bit使ってるところはSDM Vol3のTable 4-19. Format of a 4-Level Page-Table Entry that Maps a 4-KByte Pageだと物理アドレスとなってるので違いがあるのか。 https://t.co/qO6Fm4kZpy"
- Meltdown strikes back: the L1 terminal fault vulnerability [LWN.net]
- Foreshadow (security vulnerability) - Wikipedia
- Analysis and mitigation of L1 Terminal Fault (L1TF) - Microsoft Security Response Center
- L1 Terminal Fault
- INTEL-SA-00161
- Processors Affected: L1 Terminal Fault
- Deep Dive: Intel Analysis of L1 Terminal Fault | 01.org API
MDS
- Microarchitectural Data Sampling - Wikipedia
- Fadisさんのツイート: "MDS: 一部のIntelプロセッサ内のStore Buffer(メモリ書き込み予定表)、Fill Buffer(L1 cacheへのロード待ち表)、Load Port(メモリからの読み出し待ち表)が完了後にクリアされておらず、これらを踏む命令で見えない位置にあるはずの値の存在を確認できるサイドチャネル脆弱性 https://t.co/10QjZh7YJC"
- 【CPU】 Intel CPUに新たな脆弱性『Microarchitectural Data Sampling (MDS)』。AMD CPUは影響なし : ニッチなPCゲーマーの環境構築
- Intel CPUの投機実行機能に新たな脆弱性「MDS」 ~サーバーは緩和策によるストレージ性能への影響あり - PC Watch
- 2011年以降のほぼすべてのIntel製プロセッサに影響する脆弱性「MDS」の存在が明らかに - GIGAZINE
- Intel製CPUに新たな脆弱性「ZombieLoad v2」が発見される、Cascade Lakeにも影響あり - GIGAZINE
- 2019年5月17日号 Meltdown/Spectre/Foreshadowの後の世界:“MDS”攻撃への対応,WSL2のFAQ:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- 2019年11月22日号 Meltdown/Spectre/Foreshadowの後の世界・“TAA”, “MCEPSC”への対応:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- ZombieLoad: Cross-Privilege-Boundary Data Sampling
- New ZombieLoad v2 Attack Affects Intel's Latest Cascade Lake CPUs
- Microarchitectural Data Sampling
- Processors Affected: Microarchitectural Data Sampling
- Intel Side Channel Vulnerabilities: MDS and TAA
- Deep Dive: Intel Analysis of Microarchitectural Data Sampling
- Deep Dive: Intel® Transactional Synchronization Extensions (Intel® TSX) Asynchronous Abort
Rowhammer
- shinichiro hamajiさんのツイート: "#misreading https://t.co/m82S1poS4x Rowhammerは仕事のタイミング的にすごく困った。clflush禁止→無くても、ARMとかでもできた→JSからでもできた(https://t.co/nuwXNhlHqZ)と案の定悪化していった。基本ハードウェア上の処置(頻繁にリフレッシュとか)しかないという理解で、そのへんは面白みが無い"
- Episode 18 – Exploiting the DRAM Rowhammer Bug to Gain Kernel Privileges – Misreading Chat
- 1507.06955.pdf
- Project Zero: Exploiting the DRAM rowhammer bug to gain kernel privileges
- kim-isca14.pdf
Page Cache Attacks
- ハードウェア非依存の新たなサイドチャネル攻撃“Page Cache Attacks”が発表 - 窓の杜
- [1901.01161] Page Cache Attacks
Google
- 米Google、WebKitベースの新レンダリングエンジン「Blink」を発表、Chromeでの導入を視野に | OSDN Magazine
- Google Developers Japan: プロセス外 iframe で Chrome 拡張機能のセキュリティを向上
- Rockridgeさんのツイート: "Chrome 56以降、エクスプロイト攻撃への対策として、拡張機能の設定ページなどで用いられるiframeを拡張機能のプロセスから分離し、セキュリティを強化した。 / “Chromium Blog: Improving exte…” https://t.co/45P64PWoZj"
- Chromium Sandbox を用いた保護モード - NyaRuRuが地球にいたころ
Mozilla
WebExtensions
- Rockridgeさんのツイート: "WebExtensions拡張機能の別プロセス化は、contentプロセスの複数化とは別の話である。contentプロセスが4つ埋まっていても、拡張機能向けのプロセスは別途設けられる。 / “Out-of-process Web…” https://t.co/q6gGS6PDPX"
- Rockridgeさんのツイート: "WebExtensionsの別プロセス化とサンドボックス化について、実装時期は未定だが開発は進行しているとのこと。参照:https://t.co/8DrgHzDhHy / “WebExtensions in Firefox 51…” https://t.co/uJICsXuEIU"
- Rockridgeさんのツイート: "WebExtensionsからSpiderNodeを別プロセスで起動させる実験が行われている。このプロセスはサンドボックス化されることが想定されている。参照:https://t.co/u7RAcFgA7Z / “Node and…” https://t.co/5MhRCjTwro"
- Rockridgeさんのツイート: "ローカルファイルを読み書きするシステムをWebExtensions向けにどのように実装するか検討中。サンドボックス化されたプロセスと整合性のある実装が求められる。参照:https://t.co/yYPsAl35af / “Web…” https://t.co/t0U4WcPAI4"
5x
52
- Rockridgeさんのツイート: "Fx52:Linux版におけるプロセスのサンドボックス化が強化され、原則としてcontentプロセスにおいてファイルシステムへの書き込みは禁止されるようになった。参照:https://t.co/lkLuRqHfsI / “Gar…” https://t.co/fqlvHTovZc"
55
- Rockridgeさんのツイート: "Fx55:Windows/macOS版でcontentプロセスのサンドボックス化が常時有効化。最低限のサンドボックスが偶然に無効化されることを防ぐ。 / “1358223 - Hard code the lowest allow…” https://t.co/AGCUlQaEJA"
- Rockridgeさんのツイート: "Fx55:GPUプロセスにも最低限のサンドボックスが適用されるようになった。 / “1347710 - Enable sandbox protections for the Windows GPU process” https://t.co/JP5oODpbBj"
- Rockridgeさんのツイート: "Fx55:サンドボックス機能を実装するために使うChromiumのコードが、Chromium 56ベースのものにアップデートされた。前回はFx51でChromium 49ベースのコードが導入されていた。 / “1337331 -…” https://t.co/nzmPvITBKo"
56
- Rockridgeさんのツイート: "Fx56:Windows版Nightlyで、contentプロセスのサンドボックス化が従来よりも強化された。 / “1366694 - Enable Windows level 3 content process sandbox…” https://t.co/lU3hKqxwNh"
- Rockridgeさんのツイート: "Fx56:Mac版でcontentプロセスのサンドボックス化が強化され、そのままデフォルト有効で投入される。参照:https://t.co/OKJU6oOYr9 / “1377522 - Let the Level 3 cont…” https://t.co/WJQReMCVn2"
57
- Rockridgeさんのツイート: "デスクトップ版Firefox 57はプラットフォームを問わずファイルシステムのアクセスがプロセスサンドボックス内に限定されるようになった。Windows向けFx58ではサンドボックスがさらに強化されるという。 / “Firefo…” https://t.co/kUV49pletZ"
59
- Rockridgeさんのツイート: "Fx59:Chromiumから取り込んでいる、プロセスのサンドボックス化に関するコードがアップデートされた。Chrome 62と同等か。参照:https://t.co/kz6ENgKo7p / “1366701 - Update…” https://t.co/FjTyMfiFby"
- Rockridgeさんのツイート: "Firefoxはプロセスのサンドボックス機能を実装するにあたりChromiumのコードを利用している。ところがChromiumがWindows XP/Vistaのサポートを打ち切ったため、Chromium 50以降の新しいものを使… https://t.co/a1lsFDKzck"
- Rockridgeさんのツイート: "Windows版Firefoxのビルドにおいて、Windows 10 SDKのバージョン10.0.10586以降が必須となる。プロセスのサンドボックス化に関するChromiumのコードを取り込むのに必要な措置だという。 / “P…” https://t.co/Zq1gPwfZrW"
- PSA: Making Windows 10 SDK version 10.0.10586 the minimum for building Firefox - Google グループ
- Rockridgeさんのツイート: "Fx58:contentプロセスにおけるサンドボックスのセキュリティ水準を強化した。 / “1415250 - Let level 4 for the Windows content sandbox ride again.” https://t.co/PUIKKXCNJr"
6x
60
- Rockridgeさんのツイート: "Fx60:macOS版で、contentプロセスのサンドボックスが強化され、ディスクの書き込みに例外なく制約がかかるようになった。今後はWindows版やLinuxにもこの措置を適用していく。参照:… https://t.co/mwZ8F8D5Kr"
- Rockridgeさんのツイート: "サンドボックス化の対象となるFirefoxの各種プロセスについて。 / “Security/Sandbox/Process model - MozillaWiki” https://t.co/QxYBng4ADa"
- Rockridgeさんのツイート: "近日中にWindows/macOS版Nightlyでcontentプロセスのサンドボックスが強化される予定。 / “Enabling filesystem read-restrictions for content proces…” https://t.co/hTx048KnbY"
- Rockridgeさんのツイート: "Firefoxに実装され、あるいは将来実装予定のサンドボックス機能について、概要を説明した文書。Compositorプロセスの導入がFirefox 53になりそうだという話も。 / “Security/Sandbox/Archi…” https://t.co/GGOo0nXJhE"
- Rockridgeさんのツイート: "MozillaはFirefoxのサンドボックス化されたプロセスが破られた場合に、被害を最小化する仕組みについても検討している。参照:https://t.co/nKOqk4k2rm / “Hardening the Firefox…” https://t.co/oQAY9QD8x4"
- Rockridgeさんのツイート: "MozillaはWindows版Firefoxのサンドボックスを強化する"win32k lockdown"について検討中だが、2019年3月以降の導入になりそうだ。Chromeは導入済み。参照:… https://t.co/otgOjeezZK"
- Security/Sandbox/2018-04-12 - MozillaWiki
- Rockridgeさんのツイート: "Mozillaは、将来的にサイト単位のプロセス分離を導入するため、1つのプロセスが消費するメモリを減らす取り組みを続けている。2018年11月現在、7~8か月前と比べて3分の2以下になっている模様。 / “Project Fis…” https://t.co/3mHR3xsA81"
Linux
eBPF
睡分不足
- SpectreとeBPF - 睡分不足
- LinuxのBPF : (1) パケットフィルタ - 睡分不足
- LinuxのBPF : (2) seccompでの利用 - 睡分不足
- LinuxのBPF : (3) eBPFの基礎 - 睡分不足
- LinuxのBPF : (4) ClangによるeBPFプログラムの作成と,BPF Compiler Collection (BCC) - 睡分不足
- LinuxのBPF : (5) eBPFによるLinux Kernel Tracing - 睡分不足
blog
- ブログ: Linux Enhanced BPF (eBPF)トレース・ツール
- Berkeley Packet Filterの基礎と応用 - Part 1
- LinuxのBPFとbccでデバッグする - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxカーネルの新機能 XDP (eXpress Data Path) を触ってみる - yunazuno.log
- eBPF命令セット - Packets are too Fast
- ubpfで遊んでみる - livaの雑記帳
- Linux eBPF Tracing Tools
- eBPF: One Small Step
- How to send/receive raw packets on Linux
- Persistent eBPF map object with bcc - yunazuno.log
- eBPF tail call 使い方メモ - yunazuno.log
- gRPCが遅すぎる?eBPFでカーネル内で動かす!. gRPCの高速化への飽くなき追求(具体的な目標や目的なし)を続けてきましたが、ま… | by FUJITA Tomonori | nttlabs | Medium
スライド
- BPFの現在 - SSSSLIDE
- eBPF関連用語メモ - Speaker Deck
- eBPFをFreeBSDにポーティングしようとしている話 - Speaker Deck
- eBPF verifier - Speaker Deck
GitHub
- susanow/bpf: BPF Implementation using Xbyak JIT Assembler in Userland
- bpf-docs/eBPF.md at master · iovisor/bpf-docs
- IO Visor Project
- eBPF – IO Visor Project
Twitter
- Kentaro Ebisawaさんのツイート: "Linux 4.10 に IPv6 Segment Routing 入ったんだ。VRFもいろいろ拡張されてる。あとは BPF for lightweight tunnel encap か。 https://t.co/N4EmE5IcmI"
- Yojiro UOさんのツイート: "「イマドキのBPF復習しとかなきゃ」っていろいろみてたら、見つけた。更新されてるし網羅性も高い? Dive into BPF: a list of reading material https://t.co/C0PDApgWGZ"
- Dive into BPF: a list of reading material
- るくすさんのツイート: "まあ普通の使い方じゃなくて、各ソケット一つに付随してるBPF JITコードを延々と増やしてJIT sprayするためという、明らかに攻撃者始点の使い方。"
- まさみさんは語りたいさんのツイート: "あー、これはBPFとフレームワークを共有しているからか。"
- まさみさんは語りたいさんのツイート: "netmapはNICのパケットバッファをユーザ空間にmmapする。VALEはカーネル空間にmmapして、スイッチングロジックをカーネルモジュールで書ける。ただしこのモジュールを書くのは非常に難しい。"
- まさみさんは語りたいさんのツイート: "VALE-BPFということでBPFでVALEモジュールを書けるとのこと。"
- まさみさんは語りたいさんのツイート: "VALE-BPFはXDPよりも2%ほどパフォーマンスが良くなる"
- まさみさんは語りたいさんのツイート: "個人的にはeBPFを勘違いしていて、バイトコードをある程度自由にカーネル内から構成できると思っていたんだけど、実際にはユーザ空間から渡されたコードをVerifyしたりする結構面倒な手続きを飛ばせないと言われたのが最近のeBPFの記憶のハイライト。"
- 品川 高廣さんのツイート: "Spectre は Intel だけでなく AMD や ARM の CPU でも実行できるけど、読み取りたいメモリへのアクセス権限をもったある種のコードが必要。Google は eBPF を使ってるし、この論文では ROP 的な手法を使っている。攻撃は簡単じゃないけど防御も一筋縄… https://t.co/nwCuRhOvnr"
- 品川 高廣さんのツイート: "とりあえず、eBPF は無効にした方がいいんじゃないか。"
- るくすさんのツイート: "bpf JITと言うと、grsecurityが昔bpf JITでJIT sprayして権限昇格やるkernel exploitやってた気がする(SMEP bypass可"
- shinichiro hamajiさんのツイート: "#misreading ep.6 は完全に俺得回でした。依存関係解析はAndroidでやったことがあって、straceをseccomp-bpf使って改造高速化して入出力全部調べるという一般的な手法だった https://t.co/Kkg9qXGo5R 実際これでかなりたくさんのぶっこわれてる依存見つけて、修正の例としては https://t.co/rFVCOdqVFZ"
- https://www.kernel.org/doc/Documentation/networking/filter.txt
- Berkeley Packet Filter - Wikipedia
- BPF for lightweight tunnel infrastructureについて調べてみた - Qiita
- 2018年8月14日 Linux 4.18がリリース ―AMDGPUサポートの拡充,BPFILERフレームワークなど:Linux Daily Topics|gihyo.jp … 技術評論社
- 「LLVM 3.7」リリース、eBPFサポートがマージされターゲットとして選択可能に | OSDN Magazine
seccomp
- mode 2 seccompの話 - yuzuharaの日記
- Linuxカーネル3.5リリース、ファイルシステムやネットワーク、ドライバ関連で多くの強化が行われる | OSDN Magazine
- Berkeley Packet Filterの基礎と応用 - Part 3
- seccompめも( ..)φカキカキ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linux 3.19はkernelからX.509証明書をロード(IMA)するらしい - つれづれ日記2015年05月
- 本の虫: ChromiumがLinuxカーネル3.17より前のサポートを打ち切り
- Rockridgeさんのツイート: "Linux版Firefoxにおけるプロセスのサンドボックス化にはSeccomp-bpfを利用しており、Linux 3.5(2012年7月21日リリース)以降がその動作環境となる。 / “Security/Sandbox - Mo…” https://t.co/NJBc9k8kRI"
- OSレイヤでWebサーバが起動時に実行するシステムコールを監視し起動完了直前のプロセスをイメージ化する - 人間とウェブの未来
SELinux
- SELinuxの現在の動向 — | サイオスOSS | サイオステクノロジー
- SELinuxのCIL (Part1) — | サイオスOSS | サイオステクノロジー
Firejail
- Firejail - ArchWiki
- Linuxカーネルモジュールでret2usrによる権限昇格をやってみる - ももいろテクノロジー
- LinuxカーネルモジュールでStackjackingによるSMEP+SMAP+KADR回避をやってみる - ももいろテクノロジー
- wiki/linux-boot-process.md at master · hfm/wiki
- Linuxカーネルの基本機能 - 第5回 カーネル・メモリー管理:ITpro
- kmem_cacheさんはTwitterを使っています: "linuxのpage allocatorでcompactinoの実行を管理するのはcompact_zone()か。実際にpageを移動させたりはmigrate_pages()とかになる。 http://t.co/ilEruADd0M"
- 平田豊ひらたゆたか🐬さんのツイート: "Linuxのカーネル空間では、ヌルポアクセスすると、ページフォルト処理の延長でOopsに遷移します。下記メッセージ(ARMの場合)が表示されます。 "Unable to handle kernel %s at virtual address %08lx\n" https://t.co/Qxae8BVGut"
- るくすさんのツイート: "SMAF(Secure Memory Allocation Framework)がLinux4.10から入りそう。 Webカメラって案外IOMMUがないらしく外部のIPからDMA attackができるらしいがそれの防止もできるとか https://t.co/moS8t8y7Fy"
- NsJail
- google/nsjail: A light-weight process isolation tool, making use of Linux namespaces and seccomp-bpf syscall filters (with help of the kafel bpf language)
- 革命の日々! transparent hugepage considered harmful
- www.ffri.jp/assets/files/monthly_research/MR201404_Building secure Linux application with privilege separation_JPN.pdf
- 2016年5月13日 ヤバめのアプリはまず"火の檻"で ―サンドボックス「Firejail」がX11に対応へ:Linux Daily Topics|gihyo.jp … 技術評論社
- 2017年9月25日 AppArmorをDebianでもデフォルトに!? ―Tails開発者が提言:Linux Daily Topics|gihyo.jp … 技術評論社
- Linuxカーネル4.16リリース | OSDN Magazine
- 2018年4月4日 Linux 4.16がリリース ―Jailhouseハイパーバイザのサポート,usercopyホワイトリストなど:Linux Daily Topics|gihyo.jp … 技術評論社
- 第40回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[4]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- KOSAKI Motohiroさんのツイート: "Turing Complete FM #31 聞いてる。Linuxだとsuper pageからnormal pageからのdemoteは行っていない。なぜならfreebsdに入れたときよりだいぶあとに入ったので、デスクトップPCの平均メモリ量がかわってしまい、ふつう全部2Mページでも困らないぐらいだし、いらない、という意思決定をした"
- KOSAKI Motohiroさんのツイート: "transparent hugepageで面白かったのは、いらなくなったときに2M単位でスワップアウトするか、その時点で4kに分解して、ちょびちょびスワップアウトするかで議論して、平均性能よりも性能劣化を最小化するほうがリアルワールドで受け入れてもらうために重要だろうという話をして、4kに分解することに"
- suzakiさんのツイート: "1998年か。「スタックを非実行領域にするLinux向けのパッチ(修正差分)は,1998年には既にOpenwallプロジェクトなどが提供していた。しかし,Torvalds氏はこれを無意味だとしてパッチの取り込みを拒否している」https://t.co/1GyILfaHq8"
- Windows XP SP2の新セキュリティ機能,Linuxでも標準装備を(2ページ目) | 日経 xTECH(クロステック)
- Fadisさんのツイート: "Linux 5.0までのページ管理はページの参照数を32bit符号付整数のatomic値で保持していて0になるとページを捨てるようになっており、多くのコンパイラは符号付整数が最大値を超えた時最小値からカウントするコードを吐く為、約42億箇所から参照されるページの参照が減るとページが消えてしまうらしい"
- Fadisさんのツイート: "ただし、リソースを大食いせずに、ulimitの制限も回避しながらユーザ空間で1つのページに対して42億もの参照を作るのは容易ではなく、この不具合が悪用される可能性は極めて低いとされている"
- Fadisさんのツイート: "32bit整数が一周するほど参照する方法とか、Linux 5.1でどうしたのかとかの詳細はLWN(リンク先有料記事) https://t.co/q6MImoJmMs"
- Subscription required [LWN.net]
- suzakiさんのツイート: "セキュアメモリ二つ目。同じアドレスを複数回t叩くRowHammerをPTE に適用し、権限昇格を行う攻撃がある。 これに対して現在のDRAMでは01のロジックが逆のCell (True-Cells, Anti-Cells)を組み合わせいる。 True-Cellのみが使われるようにするCell Type Aware (CTA) memory Allocationの提案。"
- suzakiさんのツイート: "LinuxではPage Tableの割り当てにZONE_PTPを使つっているので、これを活用。"
- suzakiさんのツイート: "Security I 二つ目。 すべてのメモリアクセスにCapabilityが付く命令セットCHERI: Capability Hardware Enhanced RISC InstructionsでPointer Provenanceを保証する仕組みを導入した話(Best paper, SRI)。 (論文ではProvenanceの意味をcorrect operationと定義している)"
- suzakiさんのツイート: "ライブラリはソースコード(sbrk, mmap, and shmat? )の変更が必要だが、通常のアプリは大抵不要。 元々入っていたFAT PointerをProvenance更に付加した?"
- 複数の仮想ページに同じ物理ページをマッピングする方法 (Linux) - 睡分不足
FreeBSD
- はっきり見えてきたFreeBSD 10の行方(2/3) - @IT
- CAPSICUM(4) - 特殊ファイル - YOS OPENSONAR
- 【レビュー】新しいセキュリティモデル「Capsicum (キャプシカム)」を知る | マイナビニュース
- FreeBSDのCapsicumとは(その1) - Qiita
- 2011年11月8日 新セキュリティ「Capsicum」:FreeBSD Daily Topics|gihyo.jp … 技術評論社
- 第9回 カーネル内部のセキュリティを強化,ネストカーネルでメモリ区画化:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第10回 セキュリティを大幅に強化するCheriBSD:BSD界隈四方山話|gihyo.jp … 技術評論社
OpenBSD
- OpenSSLのフォーク「LibreSSL」を含んだ「OpenBSD 5.6」がリリース | OSDN Magazine
- 20周年を迎えたOpenBSD、「OpenBSD 5.8」を公開 | OSDN Magazine
- 「OpenBSD 6.0」が公開 | OSDN Magazine
- 「OpenBSD 6.2」リリース、カーネル保護機構などを強化 | OSDN Magazine
- 第25回 OpenBSD 5.8登場 - sudo(8)を廃止してdoas(1)を導入:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第29回 OpenBSD 5.9の新しいセキュリティ機能pledge(2):BSD界隈四方山話|gihyo.jp … 技術評論社
- 第35回 OpenBSD pledge(2)システムコール,5.9で正式登場:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第108回 OpenBSD,KARLセキュリティ機能を開発:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第111回 BSDカーネル脆弱性調査:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第112回 OpenBSDに新しいセキュリティ機能「RETGUARD」:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第120回 OpenBSD 6.2登場:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第122回 OpenBSD新セキュリティ機能KARL:BSD界隈四方山話|gihyo.jp … 技術評論社
- 第128回 OpenBSD pledge(2)システムコール進捗報告:BSD界隈四方山話|gihyo.jp … 技術評論社
NetBSD
- このコード、オシャカルトっ!さんのツイート: "設計の内容が説明されてるので良い感じ( ̄ー ̄)bグッ! GSoC 2018 Reports: Kernel Address Sanitizer, Part 3 NetBSD Blog https://t.co/cRb87HEGnx"
- NetBSD Blog
- このコード、オシャカルトっ!さんのツイート: "NetBSDのKASANの説明記事はLinuxはこんな感じでNetBSDではこうしたよって形の説明の仕方なのでちょっとお得 😊"
ASLR
- Yamamoto, Hirotakaさんのツイート: "ASLR が性能にこんなにインパクト与えることあるのか。 https://t.co/qpep0x0CaX"
- Øystein on MySQL Optimizer: Improving the Stability of MySQL Single-Threaded Benchmarks
- ASLR回避技術とChromeのsandboxの突破exploit | Scene Research Station
- Address Space Layout Randomization in Windows Vista – Michael Howard's Web Log
- Address Space Layout Randomization - NyaRuRuが地球にいたころ
- Tsukasa #01 [要出典]さんのツイート: "ところで、セキュリティキャンプ 2018 の本番中に (参加者のフィードバックに応じて) ファイルやデータのエントロピー計算をやるのを (講師として) 突貫で勉強して突貫で実装したわけですが、あれって凄くシンプル (かつ条件によっては騙しやすい) ものだったんですね。"
- Tsukasa #01 [要出典]さんのツイート: "早い話が 0x00 - 0xff の頻度表を作ってそこからエントロピーを計算するもの (実装の違いとしては "どこから" データを取るか、くらいか) で、00 01 02 03 .. FE FF な超規則的なバイナリデータでもエントロピー 8 (最大) になるよね、という話をしていました。"
- OSセキュリティチュートリアル
- ASLR – 研究室の裏庭 – Medium
- Windows 10: 強化された脆弱性緩和技術で攻撃のコストを上げる – 日本のセキュリティチーム
- JVNVU#91363799: Windows 8 およびそれ以降のバージョンにおいて、アドレス空間配置のランダム化が適切に行われない脆弱性
- 「Windows 8」以降のセキュリティ機能に脆弱性 - CNET Japan
- ページング方式 - Wikipedia
- メモリ保護 - Wikipedia
- chroot - Wikipedia
ページテーブルのランダム化
- suzakiさんのツイート: "システムセキュリティ1。4つ目。Page Tableはpermissionもあり、変更されるとデータがコードになる。これを防ぐためにPage TableをランダムにするPT-Randの提案。ランダマイゼーション情報はLeakage resilientなDebugレジスタに隠す。"
- まさみさんは語りたいさんのツイート: "Page Tableをランダムにするにはハードウェアの補助が必要な気がしますが、ソフトウェアだけで処理ですか?(Page tableに割り付けるページをランダムに選ぶ?)… "
- suzakiさんのツイート: "発表を聞いていた範囲ではpage walk中にはソフト割り込みを禁止するなど説明しており、特別なハードウェア機能を使わないようでした。… "
サンドボックス
- サンドボックスとは?標的型攻撃への定番対策の仕組みと課題
- 巧妙なマルウェアに対抗する最先端のサンドボックス技術 | トレンドマイクロ セキュリティブログ
- 合法マルウェアで実感「リアルとサンドボックスの違い」 (1/3):マルウェアの視点で見るサンドボックス - @IT
- ASCII.jp:検知を回避するマルウェアが使用するメカニズムを徹底解説
- 今更聞けない!サンドボックスの基本を徹底解説! | CodeCampus
- ASCII.jp:サンドボックス型製品すらも回避、最新の標的型攻撃事情
- ウォッチガード、次世代サンドボックスによるマルウェア検知・自動レスポンスを機能拡張 – UTM/NGFWでマルウェア・標的型攻撃対策|ウォッチガード・テクノロジー
- サンドボックス機能|機能紹介(FortiSandbox)|日立ソリューションズがお届けするFortinet Products
- 「サンドボックスだけでは標的型攻撃を防げない」――フォーティネットが提唱する3つのステップとは? | ビジネスネットワーク.jp
- Project Zero: You Won't Believe what this One Line Change Did to the Chrome Sandbox
- Project Zero: FF Sandbox Escape (CVE-2020-12388)
- Site Isolation 及び Web のセキュリティモデルの更新 | blog.jxck.io
- オリジン全体にポリシーを適応するOrigin PolicyをChromeで試す - ASnoKaze blog
- 品川 高廣さんはTwitterを使っています 「iOS の sandbox はパス名ベース。TOCTTOU 攻撃には弱そうだな。#arm_study」 / Twitter
- iOSとmacOSでiMessageを強固にするためのサンドボックスとその他の手法
セキュリティ
Intel
サービス拒否攻撃
- ページサイズ変更によるマシンチェックエラー: CVE-2018-12207 - Red Hat Customer Portal
- Deep Dive: Machine Check Error Avoidance on Page Size Change
- Processors Affected: Machine Check Error Avoidance on Page Size Change
SPOILER
- Intel製CPUに見つかった新たな脆弱性「SPOILER」はまたもシリコンレベルでの再設計による修正が必要 - GIGAZINE
- まさみさんは語りたいさんのツイート: "CPUのOut of Order実行をしている時にストア命令とロード命令の実行順序が投機的に入れ替わるのを利用。ロードはストアを追い越すが、実行後に直前のストアが終わっていないことが分かったらやり直す。これを利用するとロードにかかる時間が変わることを利用してどこをアクセスしてるか推測できる。"
- まさみさんは語りたいさんのツイート: "問題はこのロードとストアの衝突の検知のため物理アドレスを比較するときに、アドレスのごく一部のビットだけ利用しているということ(またリソースケチったのかよ・・)。このため、全く違うアドレスをストアでスキャンするとロード命令に影響が出るらしい。"
- まさみさんは語りたいさんのツイート: "これだけだとASLR破りに使えそうだなという印象。ロード命令はどこにでもあるから・・・。"
- CPUの新たな脆弱性 SPOILERの論文を読む - FPGA開発日記
- More Information on Spoiler
L1D Eviction Sampling
- Intel製CPUの新たな脆弱性「L1Dエビクションサンプリング」を利用してデータを引き出す攻撃「CacheOut」が報告される - GIGAZINE
- L1D Eviction Sampling
- Processors Affected: L1D Eviction Sampling
Vector Register Sampling
- Vector Register Sampling
- Processors Affected: Vector Register Sampling
HT
TLBleed
- Intel CPUの脆弱性「TLBleed」は修正困難 - OpenBSD開発者 | マイナビニュース
- TLBleed - Wikipedia
- iTWire - OpenBSD chief de Raadt says no easy fix for new Intel CPU bug
- suzakiさんのツイート: "マイナビ『SperctreやMeltdownを根本から防ぐSafeSpec』https://t.co/MFqNVS83Tw 投機実行で見えてしまう情報をシャドウキャッシュやシャドウTLBで隠す提案。 オリジナル論文はhttps://t.co/Pq7yQ1jjc8 ツイートしたTLBleedにも関連しそうだが、BlackHat、USENIX Secで発表なので待たないといけない。"
- SperctreやMeltdownを根本から防ぐSafeSpec(2) Spectre/Meltdownを防ぎ、安全な投機実行を可能にするSafeSpecの考え方 | マイナビニュース
- [1806.05179] SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation
- suzakiさんのツイート: "ちなみにオリジナルのarXiv論文のタイトルは SafeSpec: Banishing the Spectre of a Meltdown with Leakage-Free Speculation https://t.co/Pq7yQ1jjc8 PDFを確認したところ、さすがにTLBleedは論文で言及されていない。"
- まさみさんは語りたいさんのツイート: "インテルのCPUに新たな脆弱性「TLBleed」--インテルは有効性を否定 https://t.co/2xZrIOECow @zdnet_japanから crypto処理をhugepage上で実行するだけで防げたりして…。"
- インテルのCPUに新たな脆弱性「TLBleed」--インテルは有効性を否定 - ZDNet Japan
- Shigeki Ohtsuさんのツイート: "さんざん噂になってた TLBleed ですが、ようやく発表者からのアブストとpaperが出てきましたね。17秒で256bit EdDSAを98%の確率で秘密鍵を取得できるのか。こりゃすごい。 HTをdisableするしか対策がない… https://t.co/KgtRGrODUQ"
- TLBleed - VUSec
- Fadisさんのツイート: "EdDSAの特定の実装に対するローカルからのサイドチャネル攻撃で鍵を特定できました、と。よかった、Curve25519も信用ならねぇとかぞういう話ではなかった"
- Fadisさんのツイート: "Intel CPUのHyperthreadで1つのプロセッサを共有する複数のスレッドが同じTLBキャッシュを見ているのを利用して、同じプロセッサ上で動く別のスレッドの動きを覗く話っぽい。EdDSAの署名をするサーバで隣でそれを覗くプロセスを動かすことで、EdDSAの秘密鍵を短時間で特定できる程度まで絞り込めた、と"
- まさみさんは語りたいさんのツイート: "TLBleed、intelのSMT実装ミスみたいなものなんじゃなかろうか。リソースはたしかに減らせるんだけども。他のSMTプロセッサではどうなってるのか気になる。"
- Kazuho Okuさんのツイート: "TLBleed が定数時間アルゴリズムのバグの指摘でないという論拠がわからんというか、秘密鍵の値によって TLB の触り方が変わるプログラムは定数時間アルゴリズムとは呼べないよね?"
- Shigeki Ohtsuさんのツイート: "Intelはこれを脆弱性と認めてないんだよね。Intel IPPライブラリはconstant timeだからそれを使えと。 / “TLBleed : Trasnlation Leak-aside Buffer の論文を読む - …” https://t.co/LclZUq4PNA"
- TLBleed : Trasnlation Leak-aside Buffer の論文を読む - FPGA開発日記
- TLBleedはTLB上でスヌーピングすることで、CPUからの暗号鍵を漏洩できる
- misc/tlbleed.md at master · herumi/misc
PortSmash
- 20181103
- PortSmash attack punches hole in Intel's Hyper-Thread CPUs, leaves with crypto keys • The Register
- IntelのCPUで新たな脆弱性「Portsmash」が発見される、ハイパースレッディングに関する2つ目の脆弱性 - GIGAZINE
- Hyper-Threading搭載のIntel CPUに新たな脆弱性 ~“PortSmash”が明らかに - 窓の杜
- Hyper-Threading有効時にスレッド上の情報が盗まれる「PortSmash」 ~Intel製品のほかRyzenにも影響か - PC Watch
- Hiromichi Itouさんのツイート: "締切に追われているけど、気分転換で、PortSmashのPoCコードを動かしてみた。ちゃんと動いてタイミンググラフも取得できた。タイミング情報から秘密鍵を探すのは、過去の手法と同じなのかなー https://t.co/K8Kj96Nqe4"
- bbbrumley/portsmash
- まさみさんは語りたいさんのツイート: "Portsmash、解決する方法としてはsensitive sectionを開始したらsiblingの他のスレッドの動作を一定時間停止するシステムコールかなにかを使うしか無いのでは(SMT_lockみたいな)。それか運用で逃げる。"
- CVE-2018-5407 - Red Hat Customer Portal
- まさみさんは語りたいさんのツイート: "今年はIntelにとっては厄年だなあ。PortsmashのコードがWebブラウザから実行できたら、影響は個人レベルに及ぶので、もうHTは完全に廃れていくのではないか。"
- PortSmashで学ぶ高性能プロセッサの同時マルチスレッディング - FPGA開発日記
- 「Linux 4.20」性能問題、原因はSpectre v2対策STIBPの有効化--トーバルズ氏が変更を要求 - ZDNet Japan
- More Information on PortSmash
- IntelのSkylake&Kaby Lake世代のCPUにはハイパースレッディング有効でデータ欠損やプログラムエラーにつながる重大なバグがあると判明 - GIGAZINE
- Major Hyper-Threading Flaw Destabilizes Intel Kaby Lake, Skylake CPUs - ExtremeTech
- ハイパースレッディングに深刻な脆弱性が報告される | スラド
- OpenBSD、セキュリティ優先でハイパースレッディング機能を無効化 | マイナビニュース
- Hiromichi Itouさんのツイート: "OpenBSDがIntel Hyper-threadingをデフォルトで無効にするそうだ。脆弱性が見つかった訳ではなく予防的に行う措置の模様 https://t.co/qXlwlB0lXg"
- CVS: cvs.openbsd.org: src
- Makoto Kato ︎︎さんのツイート: "HyperThreadの実行効率の向上って、初期実装時(Pentium 4)は10%から20%くらいなので、今のCPUでHyperThreadが無効になっても、クロックを10%上げられれば、まぁ実行時間は変わらなくなるのではとは思うだけど"
- 一つのCPUで複数のスレッドを実行する技術「SMT」が合理的でなくなってきているとの指摘 - GIGAZINE
- More information on SMoTherSpectre
デバッグ
- 本の虫: Intelの古いマニュアルを誤読したために生じた脆弱性
- WindowsやmacOSなど主要OSに共通する深刻な脆弱性が発覚、原因はOSベンダーによるCPUアーキテクチャの仕様解釈ミスか - GIGAZINE
- Ryou Ezoeさんのツイート: "信じられん。OpenBSDではユーザースペースにハードウェアブレイクポイントの利用を許可していないため今回のIntelのスタックレジスタ書き換え時の割り込み遅延の脆弱性の影響は受けない。 https://t.co/edGk31XuQg"
- 'Re: CVE-2018-8897' - MARC
- 本の虫: OpenBSD、1985年に追加されたIntelの最新の誇大広告された機能を使わないことにより脆弱性を華麗に回避
- 日記 (2018 年 5 月下旬)
- Shiro Kawaiさんのツイート: "#tcfm 第20回。ハードウェアブレークポイントって、メモリアクセスを捕まえたい時は有用と思うけど、実行を捕まえるのにソフトウェアより有利な点て何があるんだろう?(デバッグレジスタ直接使ったこと無い人。) 既にROMに焼かれてるプログラムを調べなきゃならない時とか? https://t.co/Oc3IpHPSCE"
- Miura Hidekiさんのツイート: "H/W開発とか初期のファームウエアを開発するときはデバッガの実装が簡単になるので嬉しそうです… "
- Shiro Kawaiさんのツイート: "textエリアの書き換えが面倒な実機上では確かに便利だと思います。普通の汎用マシンのデバッガでもそれ使ってたのはなんでかなあと。最近はOSも共通だし区別しない方が普通なんでしょうか。… "
- Miura Hidekiさんのツイート: "すみません、頓珍漢なリプライをしてしまったようです。gdbにあるH/WブレークポイントはやはりROMのデバッグ用って書いてあります https://t.co/VdTNhIBGrw… "
- Debugging with GDB: 5.1.1 ブレイクポイントの設定
- Shiro Kawaiさんのツイート: "pop ssの脆弱性の話は、別に普通にデバッガが利用するからじゃなくて、アーキテクチャによって有用だからと用意されたシステムコールが予想外に利用されたと理解すればいいんでしょうかね。… "
- Shiro Kawaiさんのツイート: "アーキテクチャによって、というより、使われるシステムによって、ですね。… "
- Miura Hidekiさんのツイート: "ちょっと調べてみましたらMSでdllのデバッグに便利という記述がありました。確かにこれはH/Wじゃないと無理だと思います https://t.co/13x27QnxzO… "
- ブレークポイント
- Shiro Kawaiさんのツイート: "「読み込み時に通知を送る~」のくだりがわからないんですが、dllを実際にマップする以前に(アドレスが判明した時点で)BPを仕掛けたいというシナリオがあるんでしょうか。… "
- Miura Hidekiさんのツイート: "dll中で落ちるソフトウエアのデバッグで、ソフトウエアの実行前にブレークポイントを仕掛けておけるのではないかと思います。ソフトウエアブレークポイントでは命令列を書き変えてもdllロードで無効になってしまいます。… "
- Miura Hidekiさんのツイート: "dll中のどこかにブレークポイントを仕掛けたいシナリオです… "
- Shiro Kawaiさんのツイート: "あ、なるほど。gdbだとmain実行前にdso内の関数にBPしかけようとするとpending on future shared library loadになりますね。… "
- Miura Hidekiさんのツイート: "確かにgdbだとそんなメッセージが出ますね。Cygwinだと確かうまく動かないので無視していましたけど…… "
I/O bitmap
- 高梨陣平さんのツイート: "これはカーネルハッカーで386以来のx86の機構に詳しい方なら爆笑できそう。30年物のセキュリティホールがOpenBSDに発見された。切っ掛けは32bit版のOSのみがクラッシュする問題。調べる内に一般ユーザがI/Oポートを読み書き可能なセキュリティホールが発見された。ここから怒涛の懇切丁寧な説明が続く… https://t.co/KhB6rWVVwH"
- Hacker Newsさんのツイート: "The History of a Security Hole: https://t.co/EDUYnJ7sW3 Comments: https://t.co/3djgXHwKPD"
- The History of a Security Hole | OS/2 Museum
- The History of a Security Hole | Hacker News
- Hideki EIRAKUさんのツイート: "I/O bitmap はそもそもアクセスサイズ分取らなきゃいけない仕様が変だよね。CF8h の 32bit アクセス (PCI configuration) を許したかったら CF9h のバイトアクセス (システムリセットなど) も許さないといけないなんて。"
未定義命令
- x86 アーキテクチャに潜む脆弱性、未定義命令実行後の挙動 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
- Black Hat USA 2017 | Briefings
- まさみさんは語りたいさんのツイート: "x86の未定義命令(UD以外の定義されていない命令)がたくさんあるのは、opcode mapを書いたことがある人なら誰でも知ってる公然の秘密(笑)。 arch/x86/lib/x86-opcode-map.txt に詳しい。(そして最近でも新しいのが見つかる)"
TXT
- インテルTXTによるトラステッド・コンピューティング:第1回 インテルTXTが実現する真のセキュアなプラットフォーム - ITmedia エンタープライズ
- 仮想化の技術&製品トレンド - 仮想環境のセキュリティを高めるインテルTXT:ITpro
- invisiblethingslab.com/resources/2011/Attacking_Intel_TXT_via_SINIT_hijacking.pdf
- Intel TXT and vSphere
- Intel、vProをアップデート | スラド
- Windows adds TXT-supported MLE to boot security | Firmware Security
ME
Firmware Security
- Finnbarr on state of Intel ME hacking tools | Firmware Security
- PTSecurity on Intel ME | Firmware Security
- coreboot and Intel ME | Firmware Security
- More on INTEL_SA-00086 (Intel ME update) | Firmware Security
- a bit more on INTEL-SA-00068 (Intel ME) | Firmware Security
- more on Intel-SA-00068 (Intel ME) | Firmware Security
- System76 to disable Intel ME (Dell as well) | Firmware Security
- Intel ME coverage from BHEU | Firmware Security
- BHEU slides on Intel ME vuln uploaded | Firmware Security
- Tanenbaum: more comments regarding Intel ME | Firmware Security
- more on Intel-SA-00068 (Intel ME) vuln | Firmware Security
- AMI response to Intel-SA-0068 (Intel ME vuln) | Firmware Security
- Matthew’s 2nd blog on Intel ME vuln | Firmware Security
- Pepijn on Apple use of Intel ME | Firmware Security
- more on Intel-SA-00068 (Intel ME) | Firmware Security
- Intel ME research paper | Firmware Security
- Intel ME at CCC | Firmware Security
- ME Analyzer 1.42.0 released | Firmware Security
- PTSecurity: how to run code in Intel ME | Firmware Security
- Intel-SA-00068 updated (Intel ME) | Firmware Security
mjg59
- mjg59 | The Intel ME vulnerabilities are a big deal for some people, harmless for most
- mjg59 | Potential impact of the Intel ME vulnerability
Skylake・Kaby Lake・Coffee Lake
- Download Intel-SA-00086 Detection Tool
- Intel製CPUに特権の昇格の脆弱性、公式チェックツールがWindows/Linux向けに公開 - 窓の杜
- Intelプロセッサの重大な脆弱性(SA-00086)に対処してみた話 – 内向型人間の知恵ブログ
- インテル®マネジメント・エンジンの重要なファームウェア・アップデート (intel-sa-00086)
- 第6〜8世代Coreプロセッサなどに脆弱性、Intelがチェックツールを公開 | スラド セキュリティ
- Intel,第6~第8世代Coreプロセッサ搭載システムに関する重要な脆弱性情報を公開。脆弱性の有無を調べる検出ツールもリリース - 4Gamer.net
- Intel Management Engineなどに8個の脆弱性が発見 ~第6世代Core以降が影響、ThinkPadなどがすでに対策開始 - PC Watch
- Intel、第6~第8世代Coreなどの脆弱性情報公開、対策はファームウエア更新 | マイナビニュース
- OS停止時でも攻撃可能?Intel マネジメント・エンジンの脆弱性への対策 | トレンドマイクロ セキュリティブログ
- インテルの「Management Engine」などに複数の脆弱性--ファームウェアを修正 - CNET Japan
MINIX
- インテルx86マシンの奥深くでは人知れず「MINIX 3」が動作しており、脆弱性を作り出している。Googleらはそれを排除しようとしている - Publickey
- Google、ユーザーの知らないところで動くUEFIの脆弱性に警鐘 ~オープンソース化で回避を提唱 - PC Watch
- Hiromichi Itouさんのツイート: "Intel Management EngineでMINIXが動くようになったのは、Intel ME 11を搭載しているIntel 100 Series Chipsets(2015年)以降なので、世界で一番の稼動OSではないと思われる。(とマジレス)"
- Minixを使用していると言われているIntel ME、BSDライセンス違反の疑い | スラド
企業向けのみに存在する脆弱性
- Download INTEL-SA-00075 Detection and Mitigation Tool
- Intelのここ10年内に登場したCPUに潜むリモート操作される脆弱性に緊急パッチがリリースされる - GIGAZINE
- IntelのCPUのセキュリティ問題について電子フロンティア財団が指摘 - GIGAZINE
回避困難な脆弱性?
- Intel x86プロセッサに含まれている遠隔管理システムに危険性? | スラド セキュリティ
- インテルMEの秘密 - チップセットに隠されたコードと、それが一体何をするかを見出す方法 - by イゴール・スコチンスキー - Igor…
- Intelプロセッサに回避困難な脆弱性、研究者ら指摘 | マイナビニュース
- Intel製CPUの「修正済み」脆弱性が実は修正不可能であったことが判明、特権によるコード実行やDRMの回避などが可能 - GIGAZINE
- インテルのCSMEバグは当初の予想より深刻の可能性--セキュリティ専門家が指摘 - ZDNet Japan
- INTEL-SA-00213
無効化
- Intel ME 11を無効化する方法が公開される - GIGAZINE
- Intel MEの脆弱性を発見し保護システムを無効化した方法をセキュリティ研究者がBlack Hat Europe 2017で発表すると告知 - GIGAZINE
- NSAが開発した隠し機能でIntel MEを無効化する動きがPCメーカーに広がる - PC Watch
- platomav/MEAnalyzer: Intel Engine Firmware Analysis Tool
- 【やじうまPC Watch】米国ではじめてATM遠隔攻撃が確認 ~Intel MEの脆弱性が利用される可能性も - PC Watch
- Intel® Product Security Center
- デュアルソケット・ザ・ワールド ME-HECI ME Subsystem とは何か?
- Introduction to the Intel Management Engine OS (Part 1) | Peter Bosch’s website
- Introduction to the Intel Management Engine OS (Part 2) | Peter Bosch’s website
- 高梨陣平さんはTwitterを使っています 「Google Working To Remove MINIX-Based ME From Intel Platforms https://t.co/lajfCP20m6 Intelがほぼ全てのCPUの中でMinixを動かしているのは有名になったがGoogleがそれを削除させる方向で動いているとの記事。IntelのMEはclosedなMinixだがHWに完全なアクセスが可能で攻撃の入口として最適との話」 / Twitter
- Google Working To Remove MINIX-Based ME From Intel Platforms | Tom's Hardware
AMT
- mjg59/mei-amt-check: Check whether AMT is enabled and provisioned under Linux
- Intel AMT Checker for Linux | Hacker News
- インテルが開発したリモートコントロール技術 - 第三の謎 インテル® アクティブ・マネジメント・テクノロジーとは?のレビュー | レビューメディア「ジグソー」
- mjg59 | Intel AMT on wireless networks
- mjg59 | Intel's remote AMT vulnerablity
- Embedi on Intel AMT vulnerability | Firmware Security
- Intel AMT Upgradable to Vulnerable Firmware | Firmware Security
- new Windows UEFI security protections deciphered | Firmware Security
- Intel AMT developer documentation updated | Firmware Security
- NVD - CVE-2017-5698
- Intelのここ10年内に登場したCPUに潜むリモート操作される脆弱性に緊急パッチがリリースされる - GIGAZINE
- インテルの「AMT」や「ISM」に脆弱性--緩和策など公開 - ZDNet Japan
- リモート管理機能「Intel AMT」、リモートから任意のコードが実行可能な権限昇格の脆弱性 -INTERNET Watch
- 笠原一輝のユビキタス情報局
- シリアルオーバー LAN(SOL) ホワイトペーパーインテル®サーバーボードシステム
- Intel vPro テクノロジを使用するコンピューターには、Windows 7 のデバイス マネージャーで認識されないデバイスが搭載されていることがある
- AMTを利用した全盲ユーザのBIOS操作について(DQ45CB編)
- Intel AMT (5)PC: リモートから情報取得、遠隔操作する方法(Intel AMT 10編)
- Intel MeshCommander (AMT tool): now available for Mac and Linux (not just Windows) | Firmware Security
- F-Secure: new Intel AMT security issue | Firmware Security
- パスワード「admin」で簡単にIntel AMTに入れ、リモートアクセスできる問題が発覚 - PC Watch
- Lenovo: Intel AMT MEBx Access Control Bypass | Firmware Security
- Intel製品に複数の脆弱性、修正版が一斉公開 ~最大深刻度は“CRITICAL” - 窓の杜
- 20180721
DCI
- Intelの新型CPUにUSBポート経由でシステムのフルコントロールが奪われるデバッグの仕組みがあることが判明 - GIGAZINE
- そうだ、Intel DCIをしよう! | J’s Lab
- そうだ、Intel DCIをしよう! | J’s Lab
- Intel DCI 続編(資料まとめ) | J’s Lab
- Intel® System Studio | Intel® Software
- RU.EXE + RU.EFI
- Enable DCI debugging on Gigabyte-BKi5HA-7200
- blog/section.txt at master · JP3BGY/blog
- USB View - Google 検索
- Setting Up Kernel-Mode Debugging over a USB 3.0 Cable Manually - Windows drivers | Microsoft Docs
- Publications/2018/DEFCON26 at master · eclypsium/Publications
SMM
- 1997年から2010年までのIntel製CPUに脆弱性? | スラド セキュリティ
- 1997年から2010年までのインテル製CPUに脆弱性、ルートキット埋め込み可能で対策はほとんどなし - Engadget Japanese
- https://www.blackhat.com/docs/us-15/materials/us-15-Domas-The-Memory-Sinkhole-Unleashing-An-x86-Design-Flaw-Allowing-Universal-Privilege-Escalation-wp.pdf
- My aimful life: Building reliable SMM backdoor for UEFI based platforms
- Cr4sh/SmmBackdoor: System Management Mode backdoor for UEFI
- My aimful life: February 2016
- 1997年から2010年までのIntel製CPUに脆弱性? | スラド セキュリティ
- Embedi SMM_USBRT_POC: CVE-2017-5721 UsbRt SMM EoP | Firmware Security
- Intel Sytem Debugger on debugging UEFI and SMM | Firmware Security
- SMM rootkits: a new breed of malware | Firmware Security
- mjg59 | Creating hardware where no hardware exists
- Intelのプロセッサの脆弱性を利用したNetCAT攻撃はSSHセッションの入力内容や通信内容の窃取が可能 - GIGAZINE
- Intelのプロセッサ内蔵GPUに脆弱性、ドライバ/カーネル更新を推奨 - PC Watch
- INTEL-SA-00314
- Side Channel Methods – Analysis, News, and Updates
- Software Guidance for Security Advisories
- Host Firmware Speculative Execution Side Channel Mitigation
- Refined Speculative Execution Terminology
MS
その他
- Windows 10のシステム呼び出しとカーネル内部セキュリティー対策
- Windows 10 1703/1709、セキュリティー、CPU問題
- Windows 8 Enterprise Flexible Workstyle Full Deck RP (To Customer)
- Windows10とコルタナのデフォルト設定の脆弱性を報告
- ランサムウェア対策が「Windows 10 Fall Creators Update」に追加! さっそくトライ - やじうまの杜 - 窓の杜
- なかのん DAYS''さんのツイート: "Windowsはいい加減、管理者権限が必要なexe以外を、管理者以外が書き込めるフォルダからは実行できないようにするオプションを提供して欲しい。"
- 「C:\Temp」「C:\Intel」フォルダーは不正ツールが設置されやすい? 標的型攻撃に類似点~J-CRAT報告 - INTERNET Watch
- 「Windows 10」に新たなセキュリティ機能「InPrivate Desktop」が追加か - CNET Japan
- Microsoft、「Windows Defender」をサンドボックスで実行する機能を追加 - 窓の杜
- 未認証のワクチンですけど試してみませんか?――Windows Defenderのサンドボックス化の話 (1/2):山市良のうぃんどうず日記(140) - @IT
- エクスプロイトを書きつつ学ぶWindowsセキュリティー機能 ~Arbitrary Code Guard~ « 他人の空似
- Heap spraying攻撃の手順と原理解説 – 他人の空似
- YurikaさんはTwitterを使っています: 「数々のMS製品の0Dayを発表しまくってましたSandbox Escaperさんが、MSに入る前に(NDAにサインする前に)その手法を世に公開しまくるということでブログが公開されてますよ。https://t.co/ZFeRteMcHp」 / Twitter
- Place where polar bears dwell: Chasing polar bears: part one
- Windows 10の脆弱性を諜報機関の「NSA」が報告したことを専門家が重視する理由とは? - GIGAZINE
- 楠 正憲さんはTwitterを使っています: 「だいぶヤバい脆弱性では?→ ECDSA署名と曲線領域パラメーターの制御を考えると、元の署名秘密鍵を知らなくても、元の公開鍵と一致する2番目の秘密鍵を作成するのは簡単 / “From a conversation with Thomas Pornin, a plausible explanation given the detail... | Hacker…” https://t.co/huOVOpL8ww」 / Twitter
- From a conversation with Thomas Pornin, a plausible explanation given the detail... | Hacker News
- Shigeki OhtsuさんはTwitterを使っています: 「WindowsのECDSAの脆弱性 CVE-2020-0601 の証明ってこんな感じでいいんですかね? 間違いあればどなたかご指摘ください。 https://t.co/hNkOqt7lyw」 / Twitter
- Windows 8やWindows 10でウェブサイトのライブタイル提供に使われていたサブドメインが放棄された状態に - ZDNet Japan
- ファイルレス攻撃を阻止するエクスプロイト防止機能の概要
- the-backdoor-factory – シェルコード付きPE、ELF、Mach-Oバイナリパッチ(未サポート) – GitHubじゃ!Pythonじゃ!
Vulnerability & Exploit Database
- Vulnerability & Exploit Database | Rapid7
- Microsoft Windows - Assembly Execution (MS12-005)
- Exploiting a 64-bit buffer overflow – bytes > bombs
- Windows x64 Shellcode | McDermott Cybersecurity
- TeamViewer 11 < 13 (Windows 10 x86) - Inline Hooking / Direct Memory Modification Permission Change
- Exploit Development-Everything You Need to Know « Null Byte :: WonderHowTo
- Pentest Tips and Tricks – EK
- gynvael/asmloader: Simplified Assembly Loader - a small tool to run (headerless) machine code.
- Windows x64 and x86 kernel shellcode for eternalblue exploit
- m4ll0k/Awesome-Hacking-Tools: Awesome Hacking Tools
- 0xAX/asm: Learning assembly for linux-x64
- GDSSecurity/Windows-Exploit-Suggester: This tool compares a targets patch levels against the Microsoft vulnerability database in order to detect potential missing patches on the target. It also notifies the user if there are public exploits and Metasploit modules available for the missing bulletins.
- Infosec_Reference/Exploit Development.md at master · rmusser01/Infosec_Reference
TechNet
- 「Emotet」の大規模感染を阻止した人工知能のしくみ – 日本のセキュリティチーム
- 挙動監視と機械学習で大規模な「Dofoil」によるコイン マイニング攻撃を阻止 – 日本のセキュリティチーム
- Windows Administration: Inside the Windows Vista Kernel: Part 3
Windows Blog
- Windows 10 のエンドツーエンドのセキュリティ機能を紹介 - Windows Blog for JapanWindows Blog for Japan
- 次世代型のマルウェア対策機能を提供する Windows Defender ウイルス対策の本当の実力とは? - Windows Blog for JapanWindows Blog for Japan
- Windows Defender ウイルス対策が企業で最も採用されている理由 - Windows Blog for JapanWindows Blog for Japan
- マイクロソフトのセキュリティ エクスペリエンスを共有 - Windows Blog for JapanWindows Blog for Japan
@IT
- Windows 10はEMETに頼らずとも安全?:山市良のうぃんどうず日記(58) - @IT
- Windows 10に組み込まれた多層かつ高度なマルウェア対策機能:企業ユーザーに贈るWindows 10への乗り換え案内(10) - @IT
- ユーザーアカウント制御(UAC)の奇妙な体験――デスクトップは暗転しない?:その知識、ホントに正しい? Windowsにまつわる都市伝説(101) - @IT
- Windows 10の新しい「電卓」と「ビルトインAdministrator」に見る“セキュリティの落とし穴”:山市良のうぃんどうず日記(72) - @IT
- 本当は怪しくない(?)Windows 10の“不明なアカウント”の正体は……:その知識、ホントに正しい? Windowsにまつわる都市伝説(99) - @IT
- システム監査対決! Windowsコマンドライン監査 vs. Sysmon:山市良のうぃんどうず日記(27) - @IT
- EMETからExploit Protectionへの乗り換え案内――Windows 10 バージョン1709の新しいセキュリティ機能 (2/3):企業ユーザーに贈るWindows 10への乗り換え案内(14) - @IT
- パスワード時代の終わりはくるのか? Microsoftが新しいセキュリティやAIのサービスを発表:「Microsoft Ignite 2018」で発表された新サービスとは - @IT
サンドボックス
- Windows XP/7/8/10のプロセス間親子関係とサンドボックス
- AppContainer 導入による Windows 開発への影響 - NyaRuRuが地球にいたころ
- 整合性レベルに基づく保護モード - NyaRuRuが地球にいたころ
- Rockridgeさんのツイート: "Anniversary Update後のMicrosoft Edgeはプロセスのサンドボックス機能も強化されている。なお、拡張機能やFlashはそれぞれ独立したプロセスを割り当てられてサンドボックス化されている。 / “Stre…” https://t.co/KGw32AYYMd"
- Windows 10 Creators Updateで強化されるEdgeのサンドボックス機能 - 阿久津良和のWindows Weekly Report | マイナビニュース
- Strengthening the Microsoft Edge Sandbox - Microsoft Edge Dev BlogMicrosoft Edge Dev Blog
- 次期Windows 10ではアンチウイルスソフトは保護されたプロセスでの実行が必須に - PC Watch
- 山市良のえぬなんとかわーるど: 保護されたプロセス(Protected Process)か否かの確認方法
- Windows 10 の保護プロセスを jailbreak してデバッガーをアタッチする方法 - Qiita
- Windows 10プレビューに“サンドボックス”機能。隔離環境でEXEファイルを実行可能に - PC Watch
- AppContainerでデスクトップアプリを起動してみた « 他人の空似
- AppContainer関連API情報まとめ « 他人の空似
- AppContainer関連サンプル紹介 « 他人の空似
- PrivateNamespaceを使ったAppContainerとのプロセス間通信 « 他人の空似
権限
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsのsymlinkは、パス読み取りに特権が必要だったり、symlink自体のアクセス権も必要、という謎仕様。 前者は開発者モードで解除できるようになったものの、何を懸念してその仕様にしたのか理解不能…junctionと違い、symlinkはユーザの手打ちと等価(=クライアント側再解釈)のはず。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Edgeでリンク実行を選ぶと AppData\Local\Packages\Microsoft.MicrosoftEdge_xxx¥TempState\Downloads で実行されるが、このフォルダは、管理者昇格のためのShellExecute(verb=runas)がコケる縛りがある様子。 (ファイル移動すればコケないので、副次Streamによる信頼リージョンの話ではなさそう)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コケるフォルダは、Edge配下のTempState, LocalCache, LocalState の3つ。 このフォルダに置くと(Edge非経由)一般権限でもコケるので、VirtualStoreのような何らかの特殊フォルダ登録でもあるのかしらん? ただ、右クリックで初手からの管理権限起動は可能という謎。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "これらのフォルダには Low Mandatory Level という整合性レベルがSASLに設定されていた。この場合、ShellExecute(verb=runas) がコケる動作をする様子。 (低整合性レベル=IE等のsandbox動作でアクセス可能なので、この挙動自体は理解できる。一般権限実行でも拒否は厳しめだけど)… https://t.co/LW0BSRLz4u"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "低整合性レベルなディレクトリ(EdgeのDownloadフォルダ等)から起動したプロセスは、一般フォルダへの書き込み権限がなくなる+昇格リクエスト(verb=runas)もリジェクトされる。 低整合性レベルから起動された場合、「別フォルダに移動して起動する」ようにユーザに促すしか手がない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「Integrity Level」の訳が「整合性レベル」。 低整合性=矛盾がある、みたいな語感があると思うのだが。 なお、integrity の一般的な訳は「高潔、誠実、清廉、完全な状態、無傷」らしい。"
マルウェア対策ソフトウェア
- Shirouzu Hiroaki(白水啓章)さんのツイート: "アンチウイルスソフトのヒューリスティックでの誤検出されやすさ経験。 シマンテック >> カスペルスキー > ESET > Windows Defender (シマンテックは何度ホワイトリスト登録しても、次のバージョンで誤検出されるという…)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "その後、シマンテックはホワイトリスト申請制度自体を止めてしまったが。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "カスペルスキーとESETさんは、ホワイトリスト申請用FTPサイトがあって、そこに載せれば自動的に検査される仕組み。 (前者の場合、最初に物理的な契約書を取り交わした後、FTPサイトのアカウントが通知される流れ) ちなみにどちらのFTP転送も、モデム接続なみに遅い(笑)"
MIC
- 必須整合性コントロール - Wikipedia
- Mandatory Integrity Control - Wikipedia
- Mandatory Integrity Control (Windows)
- What is the Windows Integrity Mechanism?
- MIC
- Mandatory Integrity Control in Windows 10/8/7
- Windows Server:システム管理者の視点 - 正式に認められた「Whoami」コマンド:ITpro
- Windowsコラム - 【TechEd】悪意のある攻撃に強くなるWindows Vista:ITpro
- 【レビュー】ファイルやフォルダーの“整合性レベル”をチェックできるGUIツール「MicEnum」 - 窓の杜
- 管理者でも削除できないフォルダ・ファイルを作る - イグトランスの頭の中
- Windows版FireFox、MICを利用したセキュリティ対策 - Qiita
- Windows用インストーラのセキュリティ問題 - Qiita
- 情報セキュリティ技術動向調査(2009 年下期):IPA 独立行政法人 情報処理推進機構
- アプリケーションを管理者に昇格させながらのAllowDrop: DOBON.NETプログラミング掲示板過去ログ
- Vistaのセキュリティ対策が抜け穴に――Symantec、2つ目の報告書 - ITmedia NEWS
- 管理者権限での実行を制限するユーザー・アカウント制御UAC(後編)(3/3) - @IT
- 漢(オトコ)のコンピュータ道: 新たなOSX安全神話の検証:Sandboxでウィルススキャンは不要になるか?
Arbitrary Code Guard
- Microsoft Edge での任意のネイティブコード実行の影響の緩和 | Microsoft Edge Japan
- Microsoft Edge概要 物江氏
- 変わるWindows、変わる情シス:第4回 「Windows 10」は情報漏えいをどう防ぐ? (2/2) - ITmedia エンタープライズ
- Microsoft Edgeのセキュリティ機能「ACG」の未修正脆弱性、Googleが公表、 - INTERNET Watch
- 高梨陣平さんのツイート: "GoogleのProject Zeroが再びMicrosoftのEdgeブラウザの脆弱性を修正前に公開。JITの使用するメモリ空間の位置が事前に予測可能なためリモートからの任意コード実行が可能に。GoogleはIntelのSpectreとMeltdownに関しては90日ルールを自ら破っている。… https://t.co/ZGAyZswisg"
- 1435 - Microsoft Edge: ACG bypass using UnmapViewOfFile - project-zero - Monorail
- 2018-02-18 セキュリティニュースまとめ: Microsoft Edge にメモリ保護機能 ACG (Arbitrary Code Guard) をバイパス可能な脆弱性 - 拡張頭蓋 | Extended Cranium
HeapEnableTerminationOnCorruption
- Rockridgeさんのツイート: "Fx55:Windows版で、chromeプロセスにおいてHeapEnableTerminationOnCorruptionを有効化し、エクスプロイト攻撃に対するセキュリティを強化した。 / “805173 - Consider…” https://t.co/5EIJuBWrzl"
- 805173 - Consider enabling Windows' HeapEnableTerminationOnCorruption for browser and plugin-container
- HeapSetInformation function (Windows)
- Direct2D SDK コーディング規則 (Windows)
- HeapSetInformation function (Windows)
- HEAP_INFORMATION_CLASS enumeration (Windows)
- Brief Q&A on the HeapEnableTerminationOnCorruption heap information flag – The Old New Thing
- Windows における例外ハンドリングとか 64-bit プロセス固有のあれそれとか - NyaRuRuが地球にいたころ
- Windows-classic-samples/CustomLayout.cpp at master · Microsoft/Windows-classic-samples
- Windows-classic-samples/UiaCleanShutdownHost.cpp at master · Microsoft/Windows-classic-samples
Windows Sandbox
- 品川 高廣さんのツイート: "こういうのずっと欲しかった。Windows 全体を fork して sandbox しているようなイメージかな。https://t.co/881nADf623"
- Windows Sandbox - Microsoft Tech Community - 301849
- マイクロソフト、Windows Sandbox発表。デスクトップアプリを分離した環境で安全に実行可能に - Publickey
- “使い捨て”のアプリ実験環境「Windows Sandbox」を追加 ~「Windows 10 19H1」Build 18305 - 窓の杜
Windows Information Protection
- Microsoft Intune での Windows Information Protection 設定 - | Microsoft Docs
- Windows Information Protectionを簡単に使い始める方法 | Always on the clock
- 2つの情報保護技術、クラウドのAIPとWindows 10のWIP(その3):企業ユーザーに贈るWindows 10への乗り換え案内(13) - @IT
- 情報を保護するWindows 10の「BitLocker」と「WIP」 (1/2):Windows 10が備えるセキュリティ機能(4) - @IT
- 第11回 新機能「Windows Information Protection」の登場で、BYODを安心して活用できるように - 中堅・中小企業のためのWindows 10講座:日経 xTECH Active
- Dropbox Business と Windows Information Protection – Dropbox
- Windows Information Protection - YouTube
- Windows Information Protectionのデバイスポリシー
- 【連載】MS ゆりか先生が教えるWindows 10 セキュリティのアレコレ [6] OSレベルで個人/企業データを切り分け「Windows Information Protection」|セキュリティ|IT製品の事例・解説記事
- Windows Information Protection(WIP) | MobiConnect(モビコネクト)
Windows Defender Advanced Threat Protection
- Windows Defender Advanced Threat Protection の機械学習: 未知の侵入アクティビティの検出 – 日本のセキュリティチーム
- Creators Updateを控え、大幅強化されるWindows Defender ATP - PC Watch
- Windows Defender ATP の新機能でエンドポイントのセキュリティの有効性と堅牢性をさらに強化 - Windows Blog for JapanWindows Blog for Japan
- Windows Defender ATP Advanced Hunting の概要 - Windows Blog for JapanWindows Blog for Japan
Windows Defender Application Guard
- Windows Defender Application Guard で Microsoft Edge を最もセキュアなブラウザーに – 日本のセキュリティチーム
- Microsoft Edge のための Windows Defender Application Guard の紹介 | Microsoft Edge Japan
- Microsoft Edge向けのセキュリティ保護機能「Windows Defender Application Guard」 -INTERNET Watch
- 【マイクロソフト研究所】Windows 10 Creators Updateの企業向け機能 - クラウド Watch
- Windows Defender Application Guardで実現するセキュアなブラウジング環境――Windows 10の新しいセキュリティ機能(その2):企業ユーザーに贈るWindows 10への乗り換え案内(15) - @IT
- 山市良のえぬなんとかわーるど: Windows Defender Application Guard を VM と日本語環境で使う
- 次期Windows 10“RS4”が更新、“Windows Defender Application Guard”を強化 - 窓の杜
- Windows 10のキオスクモードとWDAGの導入がより簡単に、より柔軟に:企業ユーザーに贈るWindows 10への乗り換え案内(39) - @IT
Windows Defender Exploit Guard
- Windows Defender Exploit Guard: 攻撃表面を縮小して次世代型マルウェアに対抗する – 日本のセキュリティチーム
- EMETからExploit Protectionへの乗り換え案内――Windows 10 バージョン1709の新しいセキュリティ機能:企業ユーザーに贈るWindows 10への乗り換え案内(14) - @IT
Windows Defender Application Control
- Windows Defender Application Control の紹介 – 日本のセキュリティチーム
- 山市良のえぬなんとかわーるど: Device Guard = Windows Defender アプリケーション制御?
- 脅威からPCを守るWindows 10の「Device Guard」と「Edge」:Windows 10が備えるセキュリティ機能(2) - @IT
- 「Device Guard」はWindows 10 Enterpriseの“限定”機能か、否か?:その知識、ホントに正しい? Windowsにまつわる都市伝説(91) - @IT
- 【特別企画】Windows 10 November Update 2015のエンタープライズ向け機能 - クラウド Watch
- デバイス ガードの概要 (Windows)
- デバイス ガード: 進化してきた脅威に対抗、Windows 10 のセキュリティ機能 – 日本のセキュリティチーム
- Device Guardで保護されているデバイスでのアプリの実行 (Windows)
- Device Guard の署名を使ったコード整合性ポリシーへの署名 (Windows 10) | Microsoft Docs
- Windows Defender Application Control (WDAC) (Windows 10) | Microsoft Docs
EMET
- エメット(EMET)、していますか?:山市良のうぃんどうず日記(3) - @IT
- お手柄、エメット(EMET)さん!:山市良のうぃんどうず日記(5) - @IT
- 新しいエメット(EMET)さんにご用心!:山市良のうぃんどうず日記(14) - @IT
- エメット(EMET)さん、破れたり:山市良のうぃんどうず日記(17) - @IT
- さらに新しいエメット(EMET)さんにもご用心!:山市良のうぃんどうず日記(20) - @IT
- もっと新しいエメット(EMET 5.2)さん、リ・リリース:山市良のうぃんどうず日記(29) - @IT
- 現行エメット(EMET)さんはWindows 10非対応、最新版はまだベータ――導入する、しないはあなた次第:山市良のうぃんどうず日記(50) - @IT
- EMET サポート終了 – Windows Defender Exploitation Guard へ移行を – 日本のセキュリティチーム
- お疲れさま、そしてサヨウナラ、エメット(EMET)さん:山市良のうぃんどうず日記(133) - @IT
- 山市良のえぬなんとかわーるど: あすたらびすたエメットさん
FFRI
- www.ffri.jp/assets/files/monthly_research/MR201207_browser_treat.pdf
- www.ffri.jp/assets/files/monthly_research/MR201208_Windows8Security_Overview.pdf
- Black Hat 技術報告 前編│セキュリティ・リサーチのFFRI(エフエフアールアイ)
- www.ffri.jp/assets/files/monthly_research/MR201209_Windows8_Exploit_Mitigation.pdf
- www.ffri.jp/assets/files/monthly_research/MR201210_Window 8_AppContainer_Sandbox.pdf
- www.ffri.jp/assets/files/monthly_research/MR201308_Understanding bypassing ASLR by a pointer at a fixed address_JPN.pdf
- www.ffri.jp/assets/files/monthly_research/MR201312_History and Current State of Heap Exploit_JPN.pdf
- http://www.ffri.jp/assets/files/monthly_research/MR201503_Windows_10_Technical_Preview_Security_Overview_JPN.pdf
- スライド 1
- Monthly Research 「Microsoft Threat Modeling Toolの利用例」│セキュリティ・リサーチのFFRI(エフエフアールアイ)
- www.ffri.jp/assets/files/research/research_papers/SystemCall.pdf
- windows10_security_ja.pdf
- windows10_セキュリティ評価支援報告Phase2
Log.i53
- デバッガ検出技術:Debugger Process - Log.i53
- Anti-Debug カテゴリーの記事一覧 - Log.i53
- Unpack カテゴリーの記事一覧 - Log.i53
- Art-of-Unpacking カテゴリーの記事一覧 - Log.i53
Project Zero
- Project Zero: Dude, where’s my heap?
- Project Zero: Internet Explorer EPM Sandbox Escape CVE-2014-6350
- Project Zero: Virtually Unlimited Memory: Escaping the Chrome Sandbox
- Project Zero: Escaping the Chrome Sandbox with RIDL
- Project Zero: Windows Sandbox Attack Surface Analysis
- Project Zero: A Shadow of our Former Self
- Project Zero: Did the “Man With No Name” Feel Insecure?
- Project Zero: In-Console-Able
- Project Zero: Injecting Code into Windows Protected Processes using COM - Part 1
- Project Zero: Injecting Code into Windows Protected Processes using COM - Part 2
- Project Zero: Windows Exploitation Tricks: Spoofing Named Pipe Client PID
- Project Zero: Down the Rabbit-Hole...
- Project Zero: Windows Kernel Logic Bug Class: Access Mode Mismatch in IO Manager
DKOM
- Direct kernel object manipulation - Wikipedia
- tfairane/DKOM: Direct Kernel Object Manipulation _EPROCESS
- DKOM - おなかすいたWiki!
- bh-us-04-butler-jamie 1.ppt
- Final_WP_BalanceRiskManagement.pdf
- 悪魔のツール“ルートキット”最前線 - 第5回 ルートキット実装の2大手口(その2):ITpro
Wikipedia
- ユーザーインターフェイス特権の分離 - Wikipedia
- ユーザーアカウント制御 - Wikipedia
- データ実行防止 - Wikipedia
- Kernel Patch Protection - Wikipedia
@shirouzu
偽装
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windowsだと偽装(impersonate)APIがあり、特権プロセスは(例えばnamed pipe経由で)一般プロセスと通信で、その接続元(権限)に成りすます仕組みがあって、 (例えばユーザモード・プリンタサービス(特権)がPDF生成の際、ユーザ側権限の範囲でファイル作成など) https://t.co/lrlbxFpmB9 https://t.co/UEuGMJTkN2」 / Twitter
- Impersonating a Named Pipe Client - Win32 apps | Microsoft Docs
- Ryosuke Matsumoto / まつもとりーさんはTwitterを使っています 「新しい研究ネタについて書いた / クライアントプロセスのオーナ情報によるTCPを介した透過的な権限分離 - 人間とウェブの未来 https://t.co/sragt1m9vZ」 / Twitter
- クライアントプロセスのオーナ情報によるTCPを介した透過的な権限分離 - 人間とウェブの未来
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(続)偽装の分散システム版イメージっぽい印象。ただ偽装はNT3.1時代からあるが、サービス系の一部で使われているだけの地味な存在…TCP/IP&分散システム拡張だと違ってくるのかよくわからない。 (コンテナ云々はまあそうなんだろうけど、プロセスから見たシームレス度みたいな部分も大事そう)」 / Twitter
- 🦀葛城玲🦀さんはTwitterを使っています 「@shirouzu webサーバーでも管理プロセスだけ特権ポート開いて起動したら、権限降格して稼働するみたいなの有りましたね… suexecでしたか。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Windowsのグローバルフック、64bit環境+64bitDLLで実行すると、32bitプロセスでは、SetWindowsHookExを発行したプロセス内のコールバックで実行される。 なので、32bitプロセス内へのDLL注入を前提にしたコードの場合は、別途、32bit版DLL+32bitフック実行が必要となる。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、SetWindowsHookExとかCreateRemoteThread等、能動的な他プロセス侵入の枠組みを公式に用意とは豪快だなぁ、といつも思う。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "うーん、署名を入れてもProgram Files下に入れても、EdgeにSetWindowsHookExが効かないな…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Injection自体は出来るようになっていた。(要署名、manifest、ProgramFiles) UWPとWin32Appとの通信をどうするかという話に。 https://t.co/prPu53VXxK"
- App-to-app communication - Windows UWP applications | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんのツイート: "整合性レベルは6種類。 (なお、AppContainerは独立した整合性レベルではなく、Lowに含まれる、という話) Windows Internals 7th から。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そもそも、AppContainerの開発コード名は「LowBox」だったという話。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "PSECURITY_DESCRIPTORは、SECURITY_DESCRIPTOR * と思いきや void * なので、それをメンバに持つ SECURITY_ATTRIBUTES.lpSecurityDescriptor への代入には型チェックが働かない。(そのため1時間無駄にしてしまった)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPとデスクトッププロセス間でmutexやmmapを共有できることを確認できた。 ただしかなり面倒。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPはアプリ毎にSIDを持つが、それはUWPパッケージ名をSHA-2ハッシュにしたものがベースらしい。へぇ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UWPをWin32でフックして確認。 ・カーネルオブジェクト(mutex等)の名前空間は、UWPアプリ毎のサブ名前空間に変換。 (chroot的イメージ) ・Win32からはUWP名前空間はサブ空間に過ぎないが、普通アクセス権が無い。 しかし、プライベート名前空間を作ると(+要権限設定)、両者から参照できる。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "(つづき) ・UWPはIE保護モードと同じ低整合性で動作。 (多くのアクセス権限が無い) ・UWPマニフェストに応じて、一部API/アクセス権の有効/無効を切り替え。 (当然だが、フック側から生API発行しても無効) まさに AppContainer で動作、という印象。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "(つづき) Windows Internals 7版での、UWP と Win32アプリの比較表はこんな感じ。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UWP、たしかに(基本的にはライトなコンテナで)安全度が高いのはわかった。 マニフェストで許可された範囲以外では抜け穴は少なそう。 (ただ、例えばエディタだとマニフェストでの許可範囲自体が広い類は大丈夫かな。あとアプリ間は(名前分離はあるが)若干壁が弱い感じも)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "自分用に、IME ON状態をカーソルの緑色の丸で表示する「IME Cursor」という Win10用ソフトを作ったので、ご興味のある方はどうぞ。 (Program Files配下に置けば、アプリや管理者動作のソフトでも動きます) https://t.co/pHtbIkeDZ1"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "それにしても、Program Files に置いた署名付きソフトは、UAC下で起動しても(昇格不要で)特権プロセスにフック可能、というのは中々豪快な仕様。 (同様に、UWPアプリにもフック可能になるが、こちらはまだわかる)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "自分用ソフトながら、「もし使いたい人が居ればどうぞ」という位置づけです。 (今のところ、これ以上、大きな改良はしないと思います)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "下記の2つを満たせば、ストアアプリにもhookできます。 ・マニフェストで uiAccess=true ・Program Files配下にコード署名付きのバイナリを置く ただ、ストアアプリはsandbox動作なので、アプリ外にデータを吐き出す方が苦労します(笑)… https://t.co/xxZNrCGopA"
- uNagiさんのツイート: "そういえば、キーリマッパーの「のどか」が、ストアアプリの IME 状態が取れずに難儀していて、今もできなかったと思うんだけど、解決方法はあるんだなあ。… "
- 窓の杜さんのツイート: "IMEのONをマウスカーソル横の緑丸でお知らせするフリーソフト「IME Cursor」が公開/「FastCopy」「IP Messenger」の作者が開発 https://t.co/d2L6tMazcc… "
- IMEのONをマウスカーソル横の緑丸でお知らせするフリーソフト「IME Cursor」が公開 - 窓の杜
@t_toyota
- Takashi ToyotaさんはTwitterを使っています 「米Microsoft社はAI(とアルゴリズム)を前面に出している。アプリの「振る舞い」をモニターするにはデータが必要だ。どのデータだ?あるカーネル内部のデータを利用すると、「異様な動き」を効率良く検出できる。これは事実だ。驚いた! https://t.co/7JtMmmc5Ck」 / Twitter
- Windowsセキュリティーメカニズム
- Windows XP/7/8/10のセッションとプロセス
- Windowsシステム分析(3/4)
- Takashi ToyotaさんはTwitterを使っています 「何をどのようにモニターしているのか?モニター済みデータにはある固定値が加算されることがある。その固定値を減算すれば、元のデータに辿り着ける。」 / Twitter
- Windows 10 のセキュリティ機能を使用して脅威を軽減する (Windows 10) | Microsoft Docs
- SetProcessMitigationPolicy function (Windows)
- AppLocker (Windows 10) | Microsoft Docs
- セキュリティエンジニア向けツール(Windows編) - Qiita
カーネル
- カーネルエクスプロイト入門 - Linuxカーネル解析の基礎 - - るくすの日記 ~ Out_Of_Range ~
- カーネルエクスプロイト入門2 - 特権モードを利用した権限昇格の仕組み - - るくすの日記 ~ Out_Of_Range ~
- カーネル空間からのセキュリティ - SSSSLIDE
- カーネルエクスプロイトによるシステム権限奪取 // Speaker Deck
- カーネル空間からのセキュリティ - Speaker Deck
- 品川 高廣さんはTwitterを使っています: 「Linux カーネルは過去7年で基本性能がどんどん遅くなっているらしい。select() は2年前と比べて最大100%の性能低下。要因はセキュリティ強化、新機能、設定ミス。今年の SOSP で一番 OS っぽい話。https://t.co/zZjuALAkS6」 / Twitter
- An analysis of performance evolution of Linux's core operations
- 品川 高廣さんはTwitterを使っています: 「セキュリティ対策による性能低下は、Meltdown 対策の KPTI で recv() が最大63%、Spectre v2 対策の Retpoline でpoll() が最大89%、SLAB freelist dandomization で epoll() が最大41%、usercopy の強化で select() が最大18%。」 / Twitter
- 品川 高廣さんはTwitterを使っています: 「新機能による性能低下は、fault around(page fault 発生時に周辺ページもついでにマップする)で page fault が最大54%、cgroup で munmap が最大81%、transparent huge table デフォルト無効化で read() が最大83%、userspace page fault handling でfork()が4%。」 / Twitter
- 品川 高廣さんはTwitterを使っています: 「設定ミスによる性能低下は、forced context tracking(reduced scheduling-clock ticks 開発のためのデバック機能)無効化し忘れで最大100%、TLB layout change で munmap() が最大50%。CPU idle power-state support はHaswell上の select() で31%の性能向上があるが、LTS に backport されていない。」 / Twitter
- 品川 高廣さんはTwitterを使っています: 「上記の11個の要因中8つはカーネルの reconfiguration で、残り3つは簡単なパッチで回避可能。その結果、Redis, Apache, Nginx benchmark の性能がそれぞれ 56%, 33%, 34% まで改善した。」 / Twitter
- 品川 高廣さんはTwitterを使っています: 「パッチ1: Spectre 対策の retpoline は indirect jump を予測不能にするので、indirect jump をよく使う select や poll が著しく性能低下する。対策は、セキュリティに問題のない if文+ direct jump への置き換え。」 / Twitter
- 品川 高廣さんはTwitterを使っています: 「パッチ2: KPTI は TLB flush のコストが重い。PCID を使って最適化可能だが、それでも切り替えに 400-500 サイクルはかかる。PCID は CR3 に格納されており、CR3 の書き込み自体 200 サイクルかかる。」 / Twitter
- Linux Kernel CVE-2019-9857 の PoC を書いて検証・観察した - hibomaの日記
- Linux Kernel CVE-2018-5390 SegmentSmack の PoC を書いて分析・検証した - hibomaの日記
- Linux Kernel CVE-2017-18017 の Poc を書いて検証した - hibomaの日記
- Linux Kernel CVE-2018-12232 の Poc を書いて検証・観察した - hibomaの日記
- Linux Kernel CVE-2018-6554 の PoC を書いて検証・観察した - hibomaの日記
- Linux Rootkit Internalsという題でLTをしてきた - 脱力系日記
- 2019年11月26日 Linux 5.4がリリース,カーネルロックダウン,exFATサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
- 「Linuxカーネル5.4」公開、exFATサポートやハードウェアサポートの改善などが特徴 | OSDN Magazine
- Linuxカーネルのロックダウン機構を試してみる - Qiita
- DECAF meets The Sleuth Kit(TSK) - Speaker Deck
サイドチャネル攻撃
- サイドチャネル攻撃 - Wikipedia
- サイドチャネル攻撃(side-channel attack) | IoT
- 1011…L†[…‘†[…h
- サイドチャネル攻撃に対する安全性評価の研究動向とEMVカード固有の留意点
- サイドチャネル攻撃への耐性を備えた超低消費電力プロセッサ - 日本シノプシスホームページ - Synopsys
- 科学10月独立論文_崎山ほか.indd
- dwm009901050.pdf
- サイドチャネル攻撃とは - Weblio辞書
- PCの電位変化から暗号化データを復号する新手のハッキング手法が登場 - GIGAZINE
- サイドチャネル攻撃とは - IT用語辞典
- 平成28年秋期問10 タイミング攻撃の対策|情報処理安全確保支援士.com
- SCIS2013_1E2-5.pdf
- Work_5.pdf
- Microsoft Word - iokibe_ict-innovation-forum_2014.doc
- ir.c.chuo-u.ac.jp/repository/search/binary/p/5121/s/2510/
- スライド 1
- timing attack (タイミング攻撃、タイミングアタック) とは - 木木木
- icchyさんはTwitterを使っています: 「今日の #BitVisorSummit8 のスライドです 1: https://t.co/BIMzw9cMsc 2: https://t.co/El2O2qRqVQ」 / Twitter
- how to port * to BitVisor (2)
- icchyさんはTwitterを使っています: 「今回のポスター(?)です VMMを用いたタイミングベースサイドチャネル攻撃に対する緩和策 https://t.co/1GwSOI4lIv @SlideShareさんから」 / Twitter
- VMMを用いたタイミングベースサイドチャネル攻撃に対する緩和策
- icchy/tscjammer
- サイドチャネル攻撃に対して脆弱なGPU
脆弱性情報
CVE
- CVE - Common Vulnerabilities and Exposures (CVE)
- ASCII.jp:脆弱性情報のサイトでよく目にする「CVE」とは?
- CVE採番機関CNAの今/ウェブプライバシー保護技術の比較【海外セキュリティ】 - INTERNET Watch
- 2017年のサイバー攻撃に悪用された脆弱性トップ10/中CNNVDが脆弱性情報の公開日を改ざん?【海外セキュリティ】 - INTERNET Watch
- KasperskyがCVE採番機関として認定 ~脆弱性にIDを付与 - 窓の杜
- 【セキュリティ ニュース】「Bluetooth」に暗号化強度下げる「KNOB攻撃」が判明(1ページ目 / 全2ページ):Security NEXT
- Linuxの「sudo」コマンドに脆弱性 - PC Watch
- Big Sky :: sudo の特権昇格バグはなぜ起こったのか
- GitHubが脆弱性ワークフローを改善してCVE採番機関に
JVN
- Japan Vulnerability Notes
- JVN iPedia - 脆弱性対策情報データベース
- MyJVN API
- MyJVN APIを利用した脆弱性情報収集 | Developers.IO
- 10個のツールで学ぶ、備える!情報セキュリティの脅威と対策:「JVN iPedia」で公開の脆弱性対策情報を取得するWeb APIを活用せよ - ITmedia エンタープライズ
- 連絡不能開発者一覧
IPA
- NOKUBI Takatsugu野首貴嗣さんのツイート: "IPAの脆弱性ハンドリング、始まった初期は割と普通に2週間程度で自分は処理されていたので、だんだんおかしくなっていったんだと思う。まあ日本ではよく見る光景"
- ストラトさんのツイート: "「脆弱性を見つけたらまずIPAに通報すべき」とかいう脳内お花畑が一定数いる。彼らはIPAの通報手順がひどく煩雑で時代遅れで役人根性丸出しなクソっぷりであることを知っているのだろうか? もう通報前にグッタリするよこれ。 https://t.co/sXtzDH4tFp https://t.co/mOW0NHyD5K"
- AoiMoeさんのツイート: "そういえば、大昔IPAからお金もらってCodeBlogってのをやってて、そこでXサーバのコードを読んでたのだが、脆弱性見つけたのでIPAに報告したら、それがacceptされたの1年後でしたね"
Qiita
- セキュリティ脆弱性情報を最速でチーム共有する方法 - Qiita
- 脆弱性情報の収集→slack通知→backlog登録を自動化してみた - Qiita
- あなたのサーバは本当に安全ですか?今もっともイケてる脆弱性検知ツールVulsを使ってみた - Qiita
Twitter
- なかのん&マジックさんのツイート: "Mozillaでは、悪用が容易かもしれない場合はQAとかに必要な期間を考慮して(多分)、ギリギリまでツリーへの投入を待たされる。 / Microsoft、Google Chromeのパッチ提供方針を批判 | スラド セキュリティ https://t.co/qPvvKCevbu"
- なかのん&マジックさんのツイート: "前提条件が複雑な場合(特定の事をやってるアドオンがインストールされてるとか)や、ユーザに特定の操作を強いる場合は即時投入されるけど。"
- ひらナツさん@散文家さんのツイート: "Reactive とProactiveがある。CVEとかを調べたり、ログをとったりAuditしたりするのがReactive。Proactiveな方は強制アクセス制御などをつかって閉じ込める。SELinuxを使うのがいい(Montavista方式か?)#linuxcon"
- Fadisさんのツイート: "CVSS v3からAttack Vectorに「攻撃者が物理的にアクセスできる必要がある」タイプの脆弱性が表現できるようになってる。これで「攻撃者が物理的にシステムにアクセスできる場合にハンマーで可用性を損ねる事ができる脆弱性」とかも正しく分類する事ができるな"
- suzakiさんのツイート: "この一覧は有用!脆弱性が発見された順に並び、それらが実際に使われたか分かって有益な情報になっています。 Vulnerabilities and Attacks https://t.co/6Anrbzkitc Heartbleed、Shellshockが実際に使われていて、Rowhammer、VENOM、Meltdown、Spectre、Bleichenbacher's CATは使われていない。… https://t.co/HW4D6WtpVn"
- hannob/vulns: Named vulnerabilities and their practical impact
- オープンソースコンポーネントの積極的管理による大幅な改善の実現をSonatypeが報告
- 第44回 2018年3月~修正できない脆弱性対応,繰り返される歴史,そして「あたりまえ」を実践すること:インフラセキュリティの処方箋|gihyo.jp … 技術評論社
- ほぼ全ての最新ノートPCに脆弱性、コールドブート攻撃で情報盗まれるおそれ - CNET Japan
- エフセキュア、スリープ状態のPCの脆弱性に警鐘。盗まれたノートから情報を抜き出される可能性 - PC Watch
- Broadcom Wi-Fiの脆弱性「Broadpwn」詳細。ワームの悪夢再び ~Wi-Fiをオンにしているだけで突かれる可能性、Galaxy/Nexus/iPhoneなどが標的に - PC Watch
- 今度はMarvellのWi-Fiに脆弱性、オンにしているだけで攻撃可能 - PC Watch
- ディレクトリトラバーサル - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「セキュリティ目的のchrootは意味がない」 古い記事だけど知らなかった。 chrootした後、namei が mount point 跨りの ".." を特別扱いするのに似た処理はしてくれないね。 https://t.co/KXuoq7WImB"
- 仙石浩明の日記: chroot されたディレクトリから脱出してみる
- Trusted Execution Environmentの実装とそれを支える技術
オーバーコミット
- プラットフォーム特有の覚書
- Redisで発生したメモリ不足エラーの調査メモ | ソシャゲの作り方
- Linux プログラムのメモリ消費量を測る - Qiita
- Memory Overcommit | Siguniang's Blog
- IBM Knowledge Center - Solaris でのプロセス・フォークの失敗のために DataStage パラレル・ジョブを開始できない
- E.2.7 オーバーコミット
- mallocの落とし穴 - 組み込みLinuxでのmemory overcommit - 職業としてのプログラミング
- Linuxにおけるメモリ管理機構の利用に関する覚え書き · うさぎ小屋
- Bug #8711: 最近NoMemoryErrorが多い - Ruby trunk - Ruby Issue Tracking System
Linux
その他
- Linuxカーネル4.14リリース、x86_64環境でのメモリ上限が拡大される | OSDN Magazine
- 【お知らせ】メモリ枯渇時の挙動の安定性が改善された Linux カーネル 4.15 が公開されました | NTTデータ先端技術株式会社
- kslr linux - Google 検索
- A fork() in the road
- A fork() in the road を読んで.md
φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- memory cgroupとpageのLRUめも - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- 弄りながらなんとなく学ぶLinuxのスラブアロケーター - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linux4.14.12(x86_64)のPage Global Directoryの設定を見てみる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- ページングでメモリを割り当てる処理の動きを確認できるものを作ってみた - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- xv6のメモリ管理周りのコードリーディング - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- EPTの設定をbhyveで調べる - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxカーネル4.1のSLUBアローケータ(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxカーネル4.1のメモリレイアウト(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxカーネル4.1のvmalloc()(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Linuxカーネル4.1の名前空間(ドラフト) - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
cgroup
- Linux 4.14 で導入された Namespaced file capabilities(1) - TenForward
- Linux Kernel: cgroup v1 の制限下で slab_out_of_memory を発生させて観察する - hibomaの日記
- 第41回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[5]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- 第42回 Linuxカーネルのケーパビリティ[1]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- 第43回 Linuxカーネルのケーパビリティ[2]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- 第44回 Linuxカーネルのケーパビリティ[3]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- 2020年4月7日 Linux 5.7の新機能 ―親プロセスとは異なるcgroupへのプロセス生成が可能に:Linux Daily Topics|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「Systemd 247からsystemd-oomdが追加されるらしい。systemd-oomdは指定されたcgroups内のプロセスのメモリの使用状況を監視し、システムのメモリが逼迫したらカーネルより先にcgroups内のプロセスを潰す。カーネルのoomkillerがあまりにも公平に何でも潰す問題を解決する https://t.co/OHH5VJmTl7」 / Twitter
- systemd-oomd Looks Like It Will Come Together For systemd 247 - Phoronix
- 第45回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[6]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- 第46回 Linuxカーネルのコンテナ機能 ― cgroupの改良版cgroup v2[7]:LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術|gihyo.jp … 技術評論社
- Rustでもunshare(というか、Linux Namespaceの分離)したい! - ローファイ日記
- eBPF的な意味で使えるcgroup idを取る方法 - ローファイ日記
- cgroup v2の、BPFによるデバイスアクセス制御を試す - ローファイ日記
DAMON
- FadisさんはTwitterを使っています 「AmazonがLinuxカーネルにDAMONを利用した積極的なページアウトを実装している話。DAMONはLinuxカーネル内でページの利用状況をモニタリングする物で、新しいパッチはDAMONが集めた情報に基づいて長期間触られていないページを、メモリが足りていてもページアウトさせる https://t.co/Yddgzb6eCb」 / Twitter
- Amazon Working On New Proactive Memory Reclamation For The Linux Kernel - Phoronix
- FadisさんはTwitterを使っています 「Linuxの標準的なメモリ管理はページに割り当てられるメモリがなくなった時点でページアウトさせるページを選び始めるが、これは大きなレイテンシのスパイクを生むため、詰まると更に惨事になるようなサーバではしばしば「暇なときに先読みでページアウト」させたい、という需要がある」 / Twitter
- FadisさんはTwitterを使っています 「DAMONは今回の変更と同じくAmazonがLinuxカーネルに入れたがっている物で、メモリが割り当てられたページを稀にページフォルトさせる事でページの大雑把な利用状況を計測する。DAMONを使うことでプロセスのメモリのうちアクセスが多い部分とそうでない部分を見つける事ができる」 / Twitter
SysRq
- 汎用kumAGIさんのツイート: "windowsが辛い理由、自分がそもそもLinuxの上で走る物を最小の労力で作りたかったからLinuxに引っ越したわけだから、逆の立場ならWindowsに引っ越したと思う。でも何かプロセスを強制終了したくなった時にAlt+Ctrl+Delですら不可能な事がザラにある一方Linuxはkill -9がまず効くのがいい。"
- リベラル.3goさんのツイート: "LinuxでもSysRqが効かないことなんてしょっちゅうでしょ"
- 実は使いどころがわからないWindowsのキー、1位は「SysRq」 -INTERNET Watch Watch
- システムリクエスト - Wikipedia
- マジックSysRqキー - Wikipedia
- SysRqキー ‐ 通信用語の基礎知識
- 第5回「 SysRq ノススメ」 | NTTデータ先端技術株式会社
- magic SysRq keyについて | Miracle Linux Support
- SysRqキー(System Request key)とは - IT用語辞典
- マジック SysRq キー
- 一体何に使うのかわからないキーボードのキートップ10 - GIGAZINE
- sysrqキーでlinuxを再起動させたりcrashさせたり - うまいぼうぶろぐ
Stack Guard Page迂回
- [重要] Linux kernel、glibc および Apache httpd サーバーの脆弱性対応について | Movable Type ニュース
- Stack Guard Page迂回の脆弱性 : アジャイル株式会社
- 【注意喚起】glibcにStack Guard Page迂回の脆弱性について
- 【セキュリティ ニュース】Linuxにroot権限を取得される脆弱性「Stack Clash」(1ページ目 / 全1ページ):Security NEXT
- 複数のパッケージに影響するスタックガードページの回避 - Red Hat Customer Portal
memfd_secret
- FadisさんはTwitterを使っています 「Linuxでmemfd_createを使って他から見えないメモリを作る機能がバニラカーネルに入りたがっている話。この機能を使ってプロセスに割り当てられたメモリは他のプロセスからも、カーネルからも読み書きできなくなる。OpenSSLのsecure heapをよりsecureにするような用途で用いる https://t.co/kJuWlQDnmX」 / Twitter
- Secret Memory Areas For Linux Might Finally Be Ready With memfd_secret - Phoronix
- FadisさんはTwitterを使っています 「Linuxのプロセスのアドレス空間はプロセス毎に分離されているが、適切な権限を持ったプロセスが別のプロセスを覗き見する方法が複数存在する。故に攻撃者が強い権限を持っていたりカーネル空間で暴れている場合簡単に他所のプロセスが抱える鍵等を覗けてしまう。新機能はこうした状況への耐性を高める」 / Twitter
- FadisさんはTwitterを使っています 「よく読んだら、memfd_createにフラグつける方式じゃなくて、memfd_secretなる新しいシステムコールが生える方式になってる…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味深い…ただコードを読んでも、何故これでカーネルを覗ける強いプロセスからも守られるのか謎。 (仮想ページ範囲外となっている direct map が肝と…ただ root権限でioremapするデバドラ入れて全物理メモリ読むとかも防止できるのかな?) https://t.co/5iI1x52o8R https://t.co/o6W7w2lyUJ」 / Twitter
- tools/testing/selftests/vm/memfd_secret.c - pub/scm/linux/kernel/git/next/linux-next - Git at Google
KSM
- 第8章 KSM
- 7.3. KSM (Kernel Same-page Merging)
- IBM Knowledge Center - Kernel Same-page Merge (KSM) を有効にする
- mrwk update: KVMで複数VMを起動してVM間の相互作用を減らしたいときに考えること
Zswap
- Zswap - ArchWiki
- 【Linux】zswap は本当に速いのか - 解き放たれしソフトウェア
- 本の虫: Zswap: Linuxカーネルに圧縮付き仮想swap機能のパッチが提出される
- Linux カーネル 3.11 で性能と効率を強化
hugepage
- Linux の hugepage の開発動向
- FadisさんはTwitterを使っています 「hugepage: メモリは大容量になったのに仮想アドレスの変換単位であるページが小さすぎてページの情報が巨大になるし特定のアドレスに対応するページの情報を探すのに時間がかかりすぎる→ページをでっかくしようぜ! #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「hugetlb: 古くからLinuxにあるhugepageの対応。専用のメモリプールを使う(=アプリケーションが明示的に使う必要がある) thp: 普通のメモリ確保の裏で透過的にhugepageが使われる。アプリケーションが明示的に対応する必要は無いが動きが読みづらい為DB屋からの評判は良くない #kernelvm」 / Twitter
- suzakiさんはTwitterを使っています 「#kernelvm 昔、THP:Transparent Huge Pagesの性能問題を再現できるDockerを作りました。 最近のカーネルには試していないけど、動くのかな。」 / Twitter
- suzakiさんはTwitterを使っています 「@satoru_takeuchi @charsiuCat @rioriost メモがあった。 Dockerを使ったHP:Transparent Huge Pagesの問題の再現法。 $ docker run -it suzaki/rust-parallel bash # export PATH=$PATH:/root/.cargo/bin # time seq 1 10000 | parallel echo > /dev/null 昔のログではTHPがneverの場合は3秒程度、alwaysは9秒程度とあります。」 / Twitter
- FadisさんはTwitterを使っています 「Hugepage、swapが古典的なページサイズ単位で書き込むからswapに書く瞬間にエクストリームページ分割作業が発生する話があったなぁ #kernelvm」 / Twitter
- suzakiさんはTwitterを使っています 「@nhoriguchi ご指摘ありがとうございます 正しくは echo "always" | sudo tee /sys/kernel/mm/transparent_hugepage/enabled 結果は alwaysの場合 time seq 1 10000 | parallel echo > /dev/null real 0m31.957s neverの場合 real 0m1.687s kernel 5.6でTHP:Transparent Huge Pagesが30倍影響しました」 / Twitter
Wikipedia
- Security-Enhanced Linux - Wikipedia
- TOMOYO Linux - Wikipedia
- AppArmor - Wikipedia
- Linux Security Modules - Wikipedia
- grsecurity - Wikipedia
- PaX - Wikipedia
- Exec Shield - Wikipedia
posix_spawn
- Kazuho Okuさんのツイート: "posix_spawn、linuxだとエラー処理がまともにできなくて自分で再実装するハメになるからオススメできない https://t.co/H4uiG1BIXH"
- ケケモコソカメニハさんのツイート: "Linuxですとposix_spawnが失敗したかどうかはwaitpidしてみるまでわからないのに対し、BSDが即座にerrnoを返してくれるのはなぜでしょうどちらもvfork/execのはず、と思ったら、volatile変数経由してました https://t.co/shzoLYQ4Ek"
- ケケモコソカメニハさんのツイート: "https://t.co/piAAKLKVv1 いやしかしglibcでもパイプを使ってエラーコードを返してますね?手元ですとwaitpidするまでわからないんですが…… https://t.co/FMbT52rAo5 どうやら2017年06月に改善されたらしい"
- ケケモコソカメニハさんのツイート: "手元のUbuntuはglibcがまだ2.23ですのでこの変更が取り込まれていないようです"
- ケケモコソカメニハさんのツイート: "というわけでglibc2.26以降ですとちゃんとerrno返してくれるようですので、それまでどうするか……"
- ケケモコソカメニハさんのツイート: "https://t.co/pEWCQ6Nqb4 これがglibc 2.26から不要になるようです"
fork
- mumumuさんはTwitterを使っています 「A fork() in the road [HotOS '19] fork()が現代のOSにとっていかに有害か(代わりのものを使おうね,そう単純な話ではないけど)をこれでもかと論じている.著者らはfork()に親を殺されたのか?めっちゃ面白い. 日本語での解説をみつけた:https://t.co/0LG1GMPo0o https://t.co/0yplLA93f0」 / Twitter
- A fork() in the road を読んで.md
- A fork() in the road - fork-hotos19.pdf
- UNIX上でのC++ソフトウェア設計の定石 (3) - memologue
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「この fork disは、概ね正しく MSR所属は関係無さそう。 (30年近く前でも、自プロセス肥大後のsystem(3)はforkがメモリ不足でコケる可能性あるため、起動直後にsystem(3)依頼用子プロセス作る予防線張ったっけ。今どきはover commitあるとはいえ)」 / Twitter
バッファキャッシュ
- Kazuho OkuさんはTwitterを使っています 「えっ違うんだ見ないと」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「当初のUNIX「バッファキャッシュのみ」→SVR4で「mmap/ページキャッシュ導入だが、メタデータのみ旧式バッファキャッシュのまま」みたいな、歴史的経緯の話かと思ったら、ちょっと違っていた。 https://t.co/8lNIxa9UQt」 / Twitter
- 私的メモ(2004年02月版)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「興味ある方は「UNIXカーネルの魔法」の下記が参考になります。また「最前線UNIXのカーネル」にも記述あり。 ただ、どちらも古い本なので絶版かも…? (画像の歪みが大きかったので、gimpで補正して再ポスト) https://t.co/kDdn5ltKsa」 / Twitter
blog
- あなたの知らない time(1) の世界 - kuenishi's blog
- Kernel memory randomization and trampoline page tables – Medium
- Kazuho's Weblog: mmapを使ってファイルベースの巨大なバッファを確保する話
- ELF実行ファイルのメモリ配置はどのように決まるのか - ももいろテクノロジー
- 実行中プログラムのイメージを得る - @tmtms のメモ
- The mysterious case of the Linux Page Table Isolation patches | Firmware Security
- Proof of Concept: Linux カーネルモジュールで特定のディレクトリ以下の dentry キャッシュを破棄する - hibomaの日記
- Proof of Concept: Linux カーネルモジュールで特定のディレクトリ以下の dentry キャッシュを破棄する (2) - hibomaの日記
- per cpu data シンボルのアドレス - 睡分不足
- /proc/pid/pagemapの話 - 睡分不足
- 仮想アドレスから物理アドレスを求める - 睡分不足
- x86_64 Linuxでの仮想アドレス/物理アドレス - 睡分不足
- UNIX上でのC++ソフトウェア設計の定石 (3) - memologue
- Life with open mind: x86 Linux上で sysenter 命令を使ってシステムコールを呼び出す方法
- CoWはコウ可視化するんやで (aka. Rubyなどがforkした後のCoWを可視化してみる) - ローファイ日記
スライド
- FlexSC-Threadsの紹介 -プログラムの変更無しにマルチスレッドプロセスを高速化
- cgroup v2とgVisor - Speaker Deck
技術評論社
- 2016年12月21日 スワップパーティションはもういらない ―Ubuntu,Zapusでは"Swapfiles"に:Linux Daily Topics|gihyo.jp … 技術評論社
- 2017年11月14日 Linux 4.14がリリース,仮想メモリの上限が128PiBに:Linux Daily Topics|gihyo.jp … 技術評論社
- 2019年10月2日 Linux 5.4-rc1がリリース,議論となった「ロックダウン」機能も実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
- 2020年1月8日 Fedora 32がEarlyOOMをデフォルト実装へ,メモリ不足によるフリーズを回避:Linux Daily Topics|gihyo.jp … 技術評論社
- 2018年4月4日 Linux 4.16がリリース ―Jailhouseハイパーバイザのサポート,usercopyホワイトリストなど:Linux Daily Topics|gihyo.jp … 技術評論社
- 2020年5月1日 NVIDIA Jetson,GNOME 3.36,EarlyOOM ―Fedora 32が正式リリース:Linux Daily Topics|gihyo.jp … 技術評論社
Qiita
- ASLRとKASLRの概要 - Qiita
- open+fork+exitで無限ループすることがあるという話 - Qiita
- いまさら聞けないLinuxとメモリの基礎&vmstatの詳しい使い方 - Qiita
Twitter
histric-1
- yoh2さんのツイート: "直接のメモリ確保じゃないけど、メモリ不足により fork() 失敗という現象を踏んだことがある。あれは悩んだけど面白かった。 環境内の半分以上のメモリを確保済のプロセスをfork()しようとするとたとえCoWが有効でもダメ出しくらうという。 https://t.co/Wga3xBQ9Qm"
- linux - 大量のメモリを使用するプログラムからコマンドを実行する方法 - スタック・オーバーフロー
- Fadisさんのツイート: "x86_64のLinuxのユーザ空間、実行したバイナリは先頭の方に置かれていて、ヒープを猛烈に使わない限りそれ以外の多くの物はユーザ空間のアドレスの後ろの方に連なってるから、ライブラリではなく実行可能バイナリ本体を実行している時、そのスタックの境界はeasy 目grepableであるという知見を得た"
- Fadisさんのツイート: "試しにDirty COW(CVE-2016-5195)の対策が入る前のカーネル引っ張ってきてexploit動かしてみたら本当に一般ユーザでrootのファイルの書き換えが出来てウヒョーってなってる… "
- Fadisさんのツイート: "書き込み権限の無いファイルをMAP_PRIVATEでmmapして、MADV_DONTNEEDで「しばらく触らないから実メモリから剥がして良い」しながらこの領域に書き込みを行うと、本来変更内容はCoWでメモリに置かれてオリジナルを書き換えないはずが、オリジナルの方に書きにいってしまう不具合らしい"
- Fadisさんのツイート: "あ、これずっと昔に修正がカーネルに入っている不具合なんできちんとアップデートしてる各位は何も恐る必要は無いやつでござい。(アップデートしないで放置しているとどういう状態になるか、という話をする資料作るのに引っ張ってきた)"
- LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術:連載|gihyo.jp … 技術評論社
- shinichiro hamajiさんのツイート: "#tcfm linux kernelがenvpより深いスタックにauxvというkey/valueを送ってくれてて、その中のAT_RANDOMの2つ目が任意アドレス書き換えが即IP奪取にならないmitigationとして使われてるというトリビア https://t.co/1DcRYpG7p0 ちなみに1つ目はstack protector https://t.co/Ingenm5bbw"
- test/mangled_syms.c at master · shinh/test
- Fadisさんのツイート: "CONFIG_MULTIUSER: Linuxカーネルでマルチユーザをサポートするコンフィグ。普通は有効になっていて、切るとあらゆるプロセスはuid0(root)で実行されるようになり、UIDとGIDに関する全てのシステムコールはカーネルから削除されて使用できなくなる… https://t.co/PCcQdwSdcb"
- まさみさんは語りたいさんのツイート: "そもそもLinuxでも高性能出すならできるだけアプリには仮想ではないナマのメモリを与えるのが良さげだけど。"
- まさみさんは語りたいさんのツイート: "自動検出してくれないかなーという気にもなってる。… "
- Kazuo Moriwakaさんのツイート: "systemdは競合するサービスをConflict=で明示的に定義できるからntpd動いてるのにchrony動かそうとすると実際に競合する前に検出して失敗してくれるよ"
- まさみさんは語りたいさんのツイート: "それMINCSでもできるよ(ステマ… "
- Kazuo Moriwakaさんのツイート: "「linuxはcgroupでリソース制限かけてメモリ+swapの上限とか設定できる」それどうやって使うんだろうと思った人、systemdならサービス毎にcgroup作ってるから設定1行書くだけでできるよ"
- Fadisさんのツイート: "主記憶に対してハードディスクが遅くなりすぎて乗ったら負けみたいになってたlinuxのswapが、フラッシュメモリなストレージの目覚ましい性能向上によって実用的になってきて再び改良の対象になっているっぽい"
- Fadisさんのツイート: "fork bomb、Linuxならあるプロセスの下に作れる子プロセスの数をcgroupsで絞れるから、そういうものが投げつけられるコーディングのsandboxは絞っておくのがオススメ"
- suzakiさんのツイート: "NDSS攻撃2つ目。Linuxカーネル内で初期化せずに使われる変数への攻撃。Syscallを使い、スタックの固定領域にスプレー攻撃を行うDeterministic Stack Sprayingの発表。"
- suzakiさんのツイート: "NDSS攻撃3つ目。コード再利用攻撃。Code Pointerを直接ではなく、トランポリンを使うことでコード領域に直接ジャンプしないAddress-Oblivious Code Reuse (AOCR)攻撃。"
- Fadisさんのツイート: "Linuxに他所のプロセスのページテーブルの一部をコピーして、任意のアドレスの範囲をゼロコピーで共有できるようにするシステムコール process_vm_mmap を追加しようという提案がなされているが、ワイルド過ぎる機能にいろんな問題が出てきて揉めてる話(リンク先有料記事) https://t.co/ePSbzGAlc2"
- DrumatoさんはTwitterを使っています: 「insmodのリンク対象はディスクイメージではなくメモリイメージ,なるほどな. ディスクイメージに対して使用中カーネルのシンボルをリンクしてしまったら, それ以降再配置可能なオブジェクトファイルでなくなってしまう(厳密にはそうでもないんだけど)から, 常に使用中カーネルに追従するようにするのか.」 / Twitter
- FadisさんはTwitterを使っています 「systemdに新しいデーモンsystemd-oomdが提案されている。systemd-oomdはFacebookのoomdをsystemdに統合したようなもので、ホストのメモリが不足しているときにカーネルのOOM Killerがプロセスを止める前によりconfigurableな方法でプロセスを止める役割を果たす https://t.co/h5kYgkCd02」 / Twitter
- Systemd-OOMD Continues Coming Together For Better Linux Out-Of-Memory Handling - Phoronix
- FadisさんはTwitterを使っています 「Linuxのページ割り当てを速くするPG_zeroが提案されている。PG_zeroはページテーブルのフラグで、ページが既に0クリアされている事を表す。Linuxはページ割り当て時にページを0クリアするが、これを暇な時に行っておきPG_zeroを立てる事でページ割り当て時の0クリアを省略する https://t.co/bZSGQGqOcY」 / Twitter
- PG_Zero: Faster Page Allocation Proposed For Linux By Zeroing Out Pages Ahead Of Time - Phoronix
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Linux 5.8にコンテキストスイッチのたびにL1をフラッシュするオプショナルなセキュリティ機能が入った。将来のためという文言から陰謀論者はすでに脆弱性が存在しているのではないかと噂している。 https://t.co/Fgo7L9zk6H」 / Twitter
- Linux Hardware Reviews, Open-Source Benchmarks & Linux Performance - Phoronix
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「Linuxで小さなファイルを読むのに最適化したreadfile syscallが提案されている。中身はファイルをオープンしてバッファに読んでクローズするだけ。一度にカーネルスペースで行うので効率的だそうだ。いまさら? https://t.co/fwWTPFliKx」 / Twitter
- Linux Work Culminating On A "READFILE" Syscall For Reading Small Files Efficiently - Phoronix
- FadisさんはTwitterを使っています 「L1 cacheヒットを検知するサイドチャネル攻撃に備えてLinuxにコンテキストスイッチ毎にL1 cacheを消す機能(任意)を実装しようという提案にLinus氏が怒り爆発している。これが有効かは状況に依るが性能に影響を与えるのは明らかで、そんな判断をユーザに委ねるなという事らしい https://t.co/l1AZKG7zR4」 / Twitter
- Torvalds Blasts "Beyond Stupid" Flushing L1d On Context Switches - Reverts Code For Now - Phoronix
- suzakiさんはTwitterを使っています 「カーネルからプロセスのメモリを覗き見させないsecretmemfdシステムコールの提案は面白いが、暗号化はしないようで仮想化によるMemory Deduplication覗き見などは防げないように読める。 Linux Secret Memory "secretmemfd" System Call Remains Under Review https://t.co/gsW7llFUbk」 / Twitter
- FadisさんはTwitterを使っています 「Linuxに新しいシステムコールsecretmemfdが生えるらしい。secretmemfdで作ったfdでmmapするとその領域はsecretになる。secretなメモリはカーネルのdirect mappingから見えなくなり、カーネルを介して他所のプロセスのメモリを覗き見しようとする攻撃が難しくなる。 https://t.co/PyMjQknf2L」 / Twitter
- Linux Secret Memory "secretmemfd" System Call Remains Under Review - Phoronix
- Shinji KonoさんはTwitterを使っています 「Mojave で12GB配列をPerlで確保すると、11GBは圧縮仮想記憶に入れられてしまう。これを調べる課題にすると良いな。Linux は最近は圧縮仮想記憶持ってるの?」 / Twitter
- Shinji KonoさんはTwitterを使っています 「Zswap っていうのか。 https://t.co/EetCWPHkHa」 / Twitter
- Zswap - Wikipedia
- FadisさんはTwitterを使っています 「Linuxに新しいsyscall trusted_forを追加する提案。実行可能バイナリを置かない場所に実行権限付きの物を置けなくする事は攻撃者の選択肢を狭めるが、スクリプト言語の場合読めれば実行できる。これを防ぐためにインタプリタが「実行する為に読むが良いか」を確認する為の物 https://t.co/XaCLGcjgFU」 / Twitter
- FadisさんはTwitterを使っています 「Linuxではメモリ4KiBのページ毎にそのページの情報を持つ64バイトのpage構造体が作られる。この構造体はアドレスから高速に引けるように配列になっている為、HugePageを使う場合であっても4KiBページ換算での個数分のpage構造体が作られる。先頭のもの以外は先頭の位置が書かれたものが並ぶ」 / Twitter
- FadisさんはTwitterを使っています 「この配列は疎なメモリに効率よく対応する為にそれ自体がページングで必要な部分だけに物理メモリを割り当てている。そこで、HugePageで生じる先頭の位置が64個並んでいるだけのページが同じ物理アドレスを指すようにする事で必要なメモリを抑えよう、という提案がなされている https://t.co/kfmOBR2ouJ」 / Twitter
- FadisさんはTwitterを使っています 「Linuxの仮想メモリは赤黒木で管理されているが、赤黒木のバランスは複数の要素を一度に操作する為ロックが必須でカーネルのスケーラビリティを阻害する要因になっていた。そこでRCUで更新できるB-treeベースの新しい木構造MapleTreeで管理しよう、という提案がなされている https://t.co/wJzzTCNBud」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「page folio で pgbench が 80% 改善とか言っているけど、仕組みが知りたいな。これだけ差が出るならなんか明確な説明がつけられるはずなんだけどな。」 / Twitter
- PhoronixさんはTwitterを使っています 「Been running benchmarks of the Linux "folios" patches and will have out some interesting data tomorrow... #WeWantFolios」 / Twitter
- PhoronixさんはTwitterを使っています 「Memory #Folios Updated A 14th Time For Improving #Linux Memory Management https://t.co/nOgwCVOMWS」 / Twitter
- Memory Folios Updated A 14th Time For Improving Linux Memory Management - Phoronix
MS
IT談話館
- Windows 8/10とJobオブジェクト(基礎)
- Job Objects - Windows applications | Microsoft Docs
- Sandbox
- Windows 8/10のJobオブジェクト
- Windows 7/8/10、セキュリティー、Token、SD
- WinDbgとCPU
- WinDbgとWindowsセキュリティー(旧)
- WinDbgとWindowsセキュリティー
- SetProcessMitigationPolicy function (processthreadsapi.h) | Microsoft Docs
- UpdateProcThreadAttribute function (processthreadsapi.h) | Microsoft Docs
- WinDbgとWindowsカーネルアーキテクチャー
- WinDbg、WMI、システムロガー
NyaRuRuが地球にいたころ
- 必要最小ワーキングセット - NyaRuRuが地球にいたころ
- ウィンドウ最小化時のワーキングセット縮小 : Vista 編 - NyaRuRuが地球にいたころ
- Windows のヒープ管理 - Firefox3 のメモリ使用量 (2) - NyaRuRuが地球にいたころ
- デマンドページング - NyaRuRuが地球にいたころ
- プロセス終了時のページイン: 実験 - NyaRuRuが地球にいたころ
- アプリケーション終了時の大量のページイン - NyaRuRuが地球にいたころ
- ハードページフォールト - NyaRuRuが地球にいたころ
- ソフトページフォールト - NyaRuRuが地球にいたころ
- FILE_FLAG_SEQUENTIAL_SCAN フラグを使用しなかったため,意図せず「メモリの掃除」をしてしまった事例集 - NyaRuRuが地球にいたころ
- 十分に物理メモリを搭載しているにもかかわらずスワップアウトが発生する理由 - NyaRuRuが地球にいたころ
- 十分に物理メモリを搭載しているにもかかわらずスワップアウトが発生する理由 - 動画版 - NyaRuRuが地球にいたころ
- メモリ搭載量とパフォーマンス - NyaRuRuが地球にいたころ
- 資料紹介: オペレーティング システムおよび PAE のサポート - NyaRuRuが地球にいたころ
- Windows で Large Page は「使える」か? - NyaRuRuが地球にいたころ
- ホワイトペーパー: Windows のメモリ管理の進歩 - NyaRuRuが地球にいたころ
- 仮想メモリ戦略に関する大きな誤解 - NyaRuRuが地球にいたころ
- CLR Hosting : 仮想メモリ編 (1) - NyaRuRuが地球にいたころ
- UPX 圧縮するとメモリ使用量が増える事例 - NyaRuRuが地球にいたころ
- メモリ管理コスト - NyaRuRuが地球にいたころ
- Memory Performance Information - MSDN Library - NyaRuRuが地球にいたころ
- Swapfile.sys,スケーラビリティ,「多くの場合,最適化は直感に反する」の例 - NyaRuRuが地球にいたころ
- Windows OS入門:第3回 プロセスとスレッド (1/2) - @IT
- Win32API-プロセスとスレッドの概要
- ASCII.jp:Windowsのメモリー管理をx86の仕組みから読み解く (3/4)|基礎から覚える 最新OSのアーキテクチャー
- あなたの知らない“Windows 10のメモリ管理”の世界:その知識、ホントに正しい? Windowsにまつわる都市伝説(97) - @IT
- メモリを使用する、とは – kekyoの丼
- Project Zero: Windows Exploitation Tricks: Trapping Virtual Memory Access
- Project Zero: Understanding Network Access in Windows AppContainers
Apple
- mach_kernel はドライバ隔離用プロセス? - NyaRuRuが地球にいたころ
- なぜ Intel Mac のドライバには 64-bit 化の問題が起きなかったのか? - NyaRuRuが地球にいたころ
本の虫
- 本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
- 本の虫: fork()は失敗するんだぜ、覚えときな
- 本の虫: The Old New Thing: 実行ファイルのベースアドレスが0x00400000である理由
- 本の虫: GNU/Linuxにおけるプロセス
- 本の虫: Shebangという謎な事実上業界標準について
- 本の虫: DOOM 3 BFGの技術ノート
スライド
- 第6回 自作OSもくもく会 - Google スライド
- 第7回 自作OSもくもく会 - Google スライド
- 7/2 LT - Google スライド
- cpu_info // Speaker Deck
- TEEとIntel SGX入門 - Speaker Deck
- RustはOS界の銀の弾丸になりうるか - Google スライド
- Wayback Machine
ASCII.jp
- ASCII.jp:Go言語で知るプロセス(1)|Goならわかるシステムプログラミング
- ASCII.jp:Go言語で知るプロセス(2)|Goならわかるシステムプログラミング
- ASCII.jp:Go言語で知るプロセス(3)|Goならわかるシステムプログラミング
Wikipedia
- バックグラウンドプロセス - Wikipedia
- プロセス制御ブロック - Wikipedia
- LFUとは 「LFU方式」 (Least Frequently Used): - IT用語辞典バイナリ
- Least frequently used - Wikipedia
- ページ置換アルゴリズム - Wikipedia
- Page replacement algorithm - Wikipedia
- キャッシュアルゴリズム - Wikipedia
- Cache replacement policies - Wikipedia
- 侵入検知システム - Wikipedia
- 侵入防止システム - Wikipedia
- 強制アクセス制御 - Wikipedia
- 任意アクセス制御 - Wikipedia
- アクセス制御 - Wikipedia
- 必須整合性コントロール - Wikipedia
- セキュアOS - Wikipedia
- アドレス空間配置のランダム化 - Wikipedia
- Address space layout randomization - Wikipedia
- Return-to-libc攻撃 - Wikipedia
- Return-to-libc attack - Wikipedia
- オーバーレイ (コンピュータ用語) - Wikipedia
Twitter
その他
- Rockridgeさんのツイート: "Quantum DOMのコンセプトなどを説明した文書。関連するタブをグループ化(TabGroup)するとともにグループ内の同一オリジンのドキュメントもグループ化(DocGroup)し、スレッドを割り振る基準にするようだ。 https://t.co/itCiGJaysq"
- Quantum/DOM - MozillaWiki
- 七誌さんのツイート: "またBSoDの調査を依頼された。ページファイルに不良セクタがあって、ページアウトできずに落ちていたようだ。原因が分かって良かった。"
- 渋川よしきさんのツイート: "macOSみたいなプロセスのメモリの圧縮ってLinuxにはないのかな?"
- るくすさんのツイート: "Linuxカーネルのヒープを初期化後にRead-onlyにするpmalloc関数をHuaweiの技術者が作ったらしい https://t.co/JXzU6pAi3R"
- Huawei Continues Working On Protectable Memory Support For The Linux Kernel - Phoronix
- infvhjさんのツイート: "stackjackingってマイナーな手法じゃない?iOSで聞いたことない"
- Hideki EIRAKUさんのツイート: "fork(2) の性能差比較用 sh スクリプト: m=..;while n=0;do a="$b";while test "$a" = "$b";do b="`date`";n=`expr $n + 1`;done;test $m&&m=${m%.}||echo $n;done"
- AoiMoeさんのツイート: "伝統的にforkは遅いのだ。2BSDはvforkなるad hocなsyscallを作った。forkがそんなに遅くなくなったのはデマンドページングとCoWを組み合わせた4BSDからだが、現代では「ページテーブルのコピーが遅せえよ」という話になり、やっぱり遅い"
- СЮУ1228🏓さんのツイート: "4K pageで256TB - 128PBとかもうページサイズ増やしたほうがよくない…? TLB的にも"
- Fadisさんのツイート: "メモリをたくさん積みたい人に朗報なんだけど、最近Linuxカーネルにサポートが入ったIntelの5レベルページテーブルを使えば物理アドレス空間が64TiB分しかなくてそれ以上メモリを積めない問題が解消されるよ"
- ゆたかさん🐶さんのツイート: "Windows ServerのEnterprise版は割り込みベクタが255までしか取れないため、多数のデバイスが搭載できないけど、Datacenter版なら制限解除されている、というのがあります。 https://t.co/1ZfIGEVSgH"
- なかのん&マジックさんのツイート: "ふと疑問なんだけど、new/deleteの不一致でのメモリリークを起こすような現場、循環参照地獄とか無縁なんだろうか。それと、細かくプロセスを分離というか再起動というか、そういうOS頼みなメモリ周りのクリーンナップには頼らないんだろうか。"
- hikaliumさんのツイート: "特権ユーザー -> 非特権ユーザ -> capability(やれることを制限) -> cgroups(使えるリソースを制限)-> namespace(見えるリソースを制限・仮想化)-> でもまだAttack surfaceがでかい(権限昇格・ネットワークスタック)->というわけでgVisor #gcpug"
- 2018年もアロハシャツエンジニアさんのツイート: "kernelによるOOMキラーが発動する前に様々な条件でプロセスを殺すuserspace動作のoom killer daemon。プラグインによる拡張も可能。良さそう。facebookから。 / “Open sourcing o…” https://t.co/F2ypXue7MI"
- ロボ太さんのツイート: "あるテストのため、メモリを際限なく食いつぶすプログラムをMacで走らせていたのだが、top -o memで監視してるとあるところで使用メモリの増加が止まる。調べたら、MacはMavericksから圧縮メモリという機能がついており、それが働いていた模様。知らんかった・・・ https://t.co/7yiFxy8HL6"
- ロボ太さんのツイート: "Macで開発したコードが「メモリを際限なく食いつぶすコード」になっていることに気づかず、そのままスパコンに投げて速攻でメモリ枯渇起こして死んだんだけど、「あれ?この実行時間で死ぬなら、Macでテストしたときに気がつくはず」と思って調べてみたら、Macにはメモリ圧縮機能があったという……"
- Takashi Kawasakiさんのツイート: "スレッドの使い方って、典型的には投げっぱなしで結果だけもらう的な粒度の低い奴 or 粒度の高い奴超並列的な二択で世界の9割ぐらいの作業はこなせる感じだし、それ以外のパターンを闇に葬る or unsafe コンテキストでしか使わせないというのは一定の意味はあると思う。"
- 品川 高廣さんのツイート: "macOS は syscall() 関数を deprecated にしたけど、将来的に Windows みたいにシステムコール番号をカーネルのバージョンごとに変えたりするんだろうか。"
- Nerry さんのツイート: "非常に稀なケースだとは思うけど、ページフォルトが発生してCR2の値を読み取る前に別のページフォルトが発生したら、後の例外から回復したあと先の例外がうまく処理できなくて破綻するよね:;(∩´﹏`∩);:"
- Nerry さんのツイート: "意図的にこの状況を再現する事は可能だと思うけど、1回目のページフォルトと2回目のページフォルトが初期の段階で分岐して別々のページでCR2を読み取る必要がある 普通に設計したらページフォルトの処理中にページフォルトは発生しないし、そこで万が一例外が発生したら2回目の例外は回復できない"
- Nerry さんのツイート: "他にあり得るとしたらページフォルトが発生して例外ハンドラでCR2を読み取る直前にタイマー割り込みでコンテキストスイッチされて別のスレッド実行中にページフォルトで上書きされた時。これは割り込みゲート使えば起こり得ない。"
- ryoさんはTwitterを使っています 「しばらくx86のpmap見てなかったけどpmap_pageにmutexが足されてた。やっぱりpmap_page枚にmutex要るよね。間違ってなかった!」 / Twitter
- ryoさんはTwitterを使っています 「となるとやっぱりPMAP_PAGE_FINI()的なマクロが必要と思うんだけどもしかしてx86でもdrmkmsなドライバをdetach/unloadしたらmutex残ったまま?」 / Twitter
- ryoさんはTwitterを使っています 「adの人に聞いてみたら、LOCKDEBUGするにはページが多すぎるのでx86ではpmap_pageのmutexにはMUTEX_NODEBUGを付けてて、だからmutex_destroyも要らないんだ、と教えてくれた。なるほど納得。」 / Twitter
- mumumuさんはTwitterを使っています 「SpaceJMP: Programming with Multiple Virtual Address Spaces [ASPLOS '16] NVMの台頭などに備えて,従来プロセスと仮想メモリの関係を見なおし,OSが仮想メモリも第一級オブジェクトとして扱うことで,より柔軟なメモリ管理を実現する手法を提案してBarrelfishやDragon-Fly BSDに実装」 / Twitter
- mumumuさんはTwitterを使っています 「Direct Inter-Process Communication(dIPC): Repurposing the CODOMs Architecture to Accelerate IPC [EuroSys '17] CODOMというアクセス権限がページテーブルベースではなく命令ポインタの位置により決定される拡張アーキテクチャ上で,異なるプロセスの関数を同期的に呼び出す(IPC)手法を提案」 / Twitter
- とみながたけひろさんはTwitterを使っています 「まあそのときは意図的にディスクを遅くしてごまかしたのだが、最近、NVMeな環境で細かくメモリ使ってると、hugepageの分割とかでpagetableが増えるほかでswapoutが追いつかず、pagedaemonが回収するペースが追いつかなくてPANICするみたいなのを見て、歴史は繰り返すんだなーって思ったりした」 / Twitter
mmap
- SODA Noriyukiさんのツイート: "free()してもカーネルにメモリは返らないんぢゃよみたいな話も昔は確かにあったけど、それはmalloc()が内部的にmmap()を使ってなかった頃の話で、たぶん30年くらい前だと思う。"
- SODA Noriyukiさんのツイート: "昔のUNIXにはそもそもmmap()がなかったんぢゃよ...←老害"
- MAEKAWA Masahideさんのツイート: "「次は free() をすべきかどうかで争いがあった、とか言うんでしょ? そんなのはプログラム次第ですよ。」… "
- OGAWA, Tadashiさんのツイート: "mmap () はシングルストレージ OSである Apollo Aegis (Domain/OS) の優位点 (例えば某地図系ホニャララでの大規模画像データへの対応とか) だったとワカモノは伺っております… https://t.co/cWwJTO07e5"
- SODA Noriyukiさんのツイート: "ワカモノ..."
- AoiMoe a.k.a. しお兄Pさんのツイート: "あんまり関係ないが、UNIXのmmapは複数のmmapで連続したメモリをマップした後で、一度のunmapで全部ご破算にできるのだが、Win32のVirtualAlloc系では同じことができなくてな"
- Shiro Kawaiさんのツイート: "何だかTLにmmapのまめちしきが色々流れてきてためになる。自分あんまり深く使ったことないからネタがないけどそういえばmmapは高速なんだがmunmapが意外に重いというのに引っかかったことがあった気がする。"
- Shiro Kawaiさんのツイート: "もう詳細を忘れちゃったけど、数10GBという単位の追記オンリーのデータを複数CPUでread-onlyでmmapするんだけど、データに追加があったら一旦munmapして再map、ってやってた。チューニング時にボトルネックを調べてたらmunmapでべらぼうに時間食ってた(1sのオーダーじゃなかったかな)"
- Shiro Kawaiさんのツイート: "Linux限定だったのでmremapにして回避したんじゃなかったかなあ。いつも時間食うんじゃなくて特定の条件の時だったかもしれない。ただマルチCPUでワーカーが動いてるんだけどさすがに一個のワーカーがそんなにブロックするとあちこちつっかえて外から見て妙な動作になっていたんだった。"
ページサイズ
- 鯉江さんのツイート: "そういえば、なんでページサイズは4KiBなんだっけ?"
- SODA Noriyukiさんのツイート: "80386の時代にはそれくらいが手ごろだったってだけでしょう。同じくらいの時期でも8KBのCPUとかありました。… "
- 鯉江さんのツイート: "64bitにするときにページサイズを大きくしなかったのはなんででしょう? メモリ空間がひろがるけどトランジスタも増えるし微細化で速度も上がるし4Kのままでバランスとれるって判断だったんだろうか?… "
- SODA Noriyukiさんのツイート: "よく分かりませんが、32bit時代のバイナリを動かそうと思うと仮想記憶システムは最低ページサイズ4Kで動かさなければいけないし、だったら、まいっかみたいな判断ですかねえ?… "
- とみながたけひろさんのツイート: "昔の整列制限のままmmapできないとつらいから、でしょうね。しがらみ少な目のiOSは16KBとか聞いた気がします… "
- SODA Noriyukiさんのツイート: "なるほど。32bitから64bitへの移行で問題が生じるのは避けたいですもんね。… "
- KOSAKI Motohiroさんのツイート: "Linuxでも、もう32bit互換重要じゃないから16KBに変えようという議論、何回か出てるんですが、進みませんねえ、ほとんどのひとが出来るものならやってみろてきな冷笑的な態度で議論に参加するので… "
- SODA Noriyukiさんのツイート: "基盤となるソフトウェアでは、互換性に関して懸念のある変更って嫌われますからねえ… 世の中にあるソフトウェアが、すべてきっちり書いてあるのであれば互換性の問題も出ないんでしょうけど…… "
@kazuho
- Kazuho Okuさんのツイート: "read中に、その引数であるメモリ空間をmunmapすると何が起きるか? RT @unak: accept(2)の最中に、その引数であるfdを別スレッドでcloseすると何が起きるか?"
- Kazuho Okuさんのツイート: "direct i/oでdmaしてる場合とか何かおもしろいこと起きないのかなぁ"
- Kazuho Okuさんのツイート: ".@matsumotory プロセス内ならseteuidやsetrlimit等で十分だし、プロセス分離して「信頼できないコードを実行する」場合に現実的になる要件では、と思っています。インタプリタにsafeモードをつけるという観点だと違うかも"
- Kazuho Okuさんのツイート: "h2o の cgi 対応は、CGI の最大同時実行数分だけあらかじめマネジャーを fork しておくというモデルなので、CGI プロセス多すぎになる問題や fork の負荷問題は発生しないのでみんな h2o 使うといいと思う"
@uchan_nos
- OS作れないマン WalB担当さんのツイート: "Linuxのバディシステムは物理メモリ管理、スラブアロケータは仮想メモリ管理みたいな考え中でいいの?"
- OS作れないマン WalB担当さんのツイート: "vmallocはバディシステムで空いてしまった穴をつなぎ合わせて仮想メモリ空間で連続な領域を作る感じなのかな。ちょっとコード読んでみたいかも。"
- OS作れないマンさんのツイート: "やっぱりリクエストごとのforkはよろしくないしfcgiとかを使うのが正解じゃね >RT"
- CPU使用率100%のWebサーバをOSのチューニングだけでCPU使用率20%まで改善する - 人間とウェブの未来
- 特定条件下のclone(2)を4倍速くする - 人間とウェブの未来
- デダルス・ユメノさんのツイート: "32ビットページングだと,ページサイズは4KiBまたは4MiB。ちょうど2^10倍。4レベルページングだと,ページサイズは4KiB,2MiB,1GiB。2^9倍ですね。なぜこの違いが出るか分かりますか?"
- デダルス・ユメノさんのツイート: "これは4KiBで表現できるページの数が,32ビットページングでは2^10個,4レベルページングでは2^9個だからなんですね。4レベルページングではリニアアドレスが64ビット=8バイトに拡張されたので,4KiBの中に2^9個しかエントリを入れられなくなってしまったのです。"
@shirouzu
- SHIROUZU(白水啓章)さんのツイート: "ここ20数年、HDD速度の10~20倍の伸び(10MB/s→150MB/s等)&シーク速度向上(数倍?)に比べ、搭載DRAM量は100倍以上(16MB→4GB等)になったため、瞬間的なスパイク発生時の保険以外でのスワップ多用は(昔より必要時間が増え過ぎて)現実的でなくなった、という印象がありますね。… https://t.co/VXvx03aFxL"
- SHIROUZU(白水啓章)さんのツイート: "スワップを設定しなくてもいいというより、設定しても実用性の無い速度に落ち込んでしまう、という感じ。"
- SHIROUZU(白水啓章)さんのツイート: "SSDだと(寿命問題以外は)スワップを定義する価値がありそうで、その遠い延長に NVDIMM-P とかかな。 そういえば、NVMDIMM-PはOS/CPUに透過なメモリとして見せると、CPUストール多発しかねないから、DRAMヒットミス時に別スレッドに切り替え可能な仕組みを入れるのかな。後で調べておこう。"
- SHIROUZU(白水啓章)さんのツイート: "ただSSDにスワップを確保したとしても、(一般ユーザプロセスでも)搭載メモリサイズを少し超えるメモリを確保して、memsetをループさせるプログラムを動かすと、ほぼカーネルフリーズと言っていい状態に陥る。 (コンソールシェルはエコー反応のみ、sshは切断される状態。kernel3.4時代の実験)"
- SODA Noriyukiさんのツイート: "原理的には clean な file cache の物理ページはいつでも解放することができるはずで、回避策はあるような気がしてるんですが、そうなってないんですよね。FreeBSD/DragonflyBSD と Solaris は clean な file cache 専用の page queue があるので実は問題を解決してるかもしれません(←よく知りません… https://t.co/nOlgw8Lmzp"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、NTの開発初期に、カーネルデータは全て物理メモリに置く方針だったのに、ラシッド教授がページアウト可能な方法を示したところ、カトラーはマネをするのも癪だから別の方法でページアウト可能にした、みたいな逸話もあった気も。… "
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「自分用に ps コマンドに PSS/USS を追加表示するコマンドを go で書いたので、公開しておきました。 (VSZ と RSS表示の2つだけだと、実効的なメモリ使用量が調査しづらいため) https://t.co/yE6J4ZiTgm https://t.co/QRQmANANsl」 / Twitter
- shirouzu/pss: pss: ps command with PSS/USS information
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「簡単に言うと、smapsのPss/SwapPss と Private_Clean/PrivateDirtyを集計しています。 (PSS/USS以外も集計すると役立つ項目があったりするかしらん?)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「LinuxもNTのように、アドレス空間の予約領域とコミット領域を分離できると良いなぁ。 前者は仮想メモリ確保なし、VSSにも表れない。ページテーブルも使わずAS管理のみ行う(NTと同様)。 使う時は(brk(2)のように)予約領域(の一部)をコミット領域に変更する形。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「そういえば、mmap(MAP_NORESERVE)はあった。 (ただ昔実験した時にNTと同様の利用は出来なかった記憶が…) ともあれ、malloc標準だと1スレッド作る毎に128MBもVSZが増えて、必要メモリ予測がしづらいので、最初は空間予約のみにして欲しいところ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「pss(https://t.co/yE6J4ZiTgm)を作っても不十分な点は、直接mallocした領域(≒使う気満々)と、将来に備えた空間確保したいだけの領域を別表示できないことだよなぁ(≠実際に物理メモリが割り付けられた領域)。 これはライブラリ&プログラムがNONRESEVEを積極利用しない限り解決しない。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「Netflixがmincore(2)をヘビー利用していた話が興味深い。 リブート前に、DBの実メモリ部分をダンプし、再起動後にそれをロードして、再起動後の性能低下を低減していると。 https://t.co/VfNZtKpdUJ」 / Twitter
- Linuxのページキャッシュ攻撃対策の影響は大きく、長期化する見通し【翻訳】 - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FirefoxでYoutube Musicで動画付き再生したら、Firefoxがやたら重くなったので調べてみたら、Firefoxが14GBもコミット済メモリを確保していた。 https://t.co/KE8rPEvrFG」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「アプリのメモリ消費が気になるときは、コミット済みメモリ量を見るのが大事。 (ワーキングメモリ量は騙されやすい)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔からタスクマネージャは、デフォルトではコミット済みメモリを表示しない謎。 (それが「メモリ・クリーナー」的な、まじないソフトが出現した一因とも思うのだが)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみにこの時、Youtube music のタブを閉じても変化無く、Firefox自体を落とす以外ではメモリ解放は出来なかった。 (Firefoxって、タブ:プロセスの関係は m:nなのだっけ…?)」 / Twitter
@EzoeRyou
- Ryou EzoeさんはTwitterを使っています: "@shinh なるほど、ulimit -nがMacだと256、Ubuntuのデフォルトでも1024とfork bombを早期に避けるために極めて厳しいデフォルト設定になっているのですね。"
- Ryou EzoeさんはTwitterを使っています: "システムコールのコストを下げる方法。1コアをシステムコール専用にする。キャッシュ汚染はそのコアのみにとどまる。 https://t.co/WSROiUv0y0"
@nminoru_jp
- 中村 実さんのツイート: "Intel64は4-level pagingでも仕様上4PiB(52ビット)の物理メモリ空間を保証しているんだよな。ページテーブルの予約ビットを使えばマックスの16EiBも行ける。物理メモリ制限はチップセット側の仕様だよな。"
- 中村 実さんのツイート: "ただx86-64/Linuxは256TiBの仮想アドレス空間の半分をカーネルに割り当てて、カーネルの半分を物理メモリとのマッピングを使うので、そのまま64TiBを越える物理メモリを載せてしまうとx86/Linuxみたいな物理メモリを触る時にページ単位に仮想メモリにマッピングする方… https://t.co/joXxY6bXul"
@tociyuki
- MIZUTANI Tociyukiさんのツイート: "linux カーネルには、 まだ fs-uid が残っている。 デフォルトで無効にして、カーネル・コンフィグで有効にできないこともないけど利用非推奨で良いのではないかな。 setresuid (2) システムコールが使えるのだし。"
- MIZUTANI Tociyukiさんのツイート: "ざっと google で検索した印象では、 POSIX の実uid、実効uid、退避uidの3組でデーモンの実効uidを特権と非特権で交互に行き来するやりかたを日本語で解説しているページはないようだ。それ以前に退避uidの解説ページがないようだ。"
@satoru_takeuchi
- satさんのツイート: "とくにHDDだと、ちょっと負荷がかかると要求仕様を満たさない性能に落ちるレベルを突き抜けて、二度と応答がなくなるところまで一瞬で到達しますからね… "
- satさんのツイート: "ページテーブルがメモリを食うというのと、それがforkの計算量に効いてくる、という話は頻出だけどあまり知られてない"
@KuniSuzaki
- suzakiさんのツイート: "The history of documented Unix facilities でコマンドやシステムコールが導入された初期バージョンが示されて面白い。 https://t.co/rDDtchiU4M これを見てWindowsのシステムコールが有効なバージョンリストを思い出した。こちらも面白い。 https://t.co/FgsUg23Z3Y"
- The history of documented Unix facilities
- Microsoft Windows System Call Table (NT/2000/XP/2003/Vista/2008/7/8/10)
- ロボ太さんはTwitterを使っています 「CPUって、命令セットとか演算性能が注目されがちだけど、実際はキャッシュやメモリとの接続といった「足まわり」がアプリケーション性能に強く影響を与えてて、そこを解決してから演算まわりを考える感じなんだよね……」 / Twitter
- OSのデバッグ:メモリアロケーション講座 | POSTD
- メモリアロケーションを削減: T.Ishiiのソフト開発記
- 省メモリーに関するデザインパターン 2011.04.18
- スラブアロケータのfree list randomizationの実装について - Qiita
システムコール
- SODA Noriyukiさんのツイート: "CじゃなくてPythonで十分デスヨみたいな意味でCPUが速くなれば手を抜いても許されるようになるけど、コンテキストスイッチのオーバーヘッド自体はなくならないので、結局ユーザランドとカーネル境界を意識したプログラミングスタイルも残りますよ。… https://t.co/Ab3604T2Mq"
- 眼力 玉壱號さんのツイート: "返すのに syscall 呼んじゃうと呼んだ方が block する…のを嫌って bmalloc(Safari が内部的に使ってる allocator)は別の thread 起こしてそいつに返させていた…… "
- Shinji Konoさんのツイート: "なんか、今の時代になっても、system callのオーバヘッドとか言ってる不思議。CPU速くなったんじゃなかったのかよ…"
- SODA Noriyukiさんのツイート: "バンド幅は急速に向上しますがレイテンシの改善はゆっくりですし、アドレス幅が広がればドライブ能力が必要となりレイテンシが悪化するのでメモリ階層を増やして対応します。結果L1キャッシュの容量は30年経っても同レベルです。キャッシュ外せば途端に遅くなるのでコンテキストスイッチは遅いままです… https://t.co/aCHBrZRlwV"
- まさみさんは語りたいさんのツイート: "function failure injectionが拡張されてsyscallが片っ端からinjectableになっていた。"
- 虚無さんはTwitterを使っています 「Intel: 32ビットモードでsyscall/sysretをデコードせずsysenter/sysexitは32ビット/64ビットどちらでも使える AMD: 64ビットモードでsysenter/sysexitをデコードせずsyscall/sysretは32ビット/64ビットどちらでも使えるみたいな面白いやつも まあカーネル空間の話だからあまりユーザー影響ないですが」 / Twitter
- FadisさんはTwitterを使っています 「新しいシステムコールreadfileがLinux 5.13でのバニラカーネル入りを目指してrebaseされた話。readfileはファイルを開いく、指定されたバッファにバッファのサイズ分だけ読んむ、閉じるを1回の呼び出しでまとめて行う https://t.co/XyzGqiEQNv」 / Twitter
- READFILE System Call Rebased For More Efficient Reading Of Small Files - Phoronix
- FadisさんはTwitterを使っています 「システムコールの発行回数を減らせる(これは特に対策する必要があるCPU脆弱性の多いマシンで重要)為、このシステムコールは小さいファイルをたくさん読むシーン(例えばsysfsの中身を漁っている時とか)において性能向上に寄与するとされている」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「sendfile等と同様、uOP fusion ならぬ、syscall fusion という感じ。 将来、syscallを配列にして呼び出すメタsyscallができてctx sw削減とかあるのかな?」 / Twitter
- FadisさんはTwitterを使っています 「@shirouzu システムコールで作ったキューペアにユーザ空間からI/Oリクエストを書くとカーネル空間からそれを拾って行ってくれる「io_uring」がメタsyscall的なものと言えるかもしれません」 / Twitter
- FadisさんはTwitterを使っています 「Linux 5.13からカーネルスタックオフセットのランダム化が可能になるらしい。この機能はブートパラメータで有効/無効にする事ができ、有効な場合システムコール毎にカーネルスタックのベースアドレスが変化するようになる。 https://t.co/lahS5hv9TE」 / Twitter
- Linux 5.13 Poised To Allow Randomizing Kernel Stack Offset At Each System Call - Phoronix
- FadisさんはTwitterを使っています 「Linuxではシステムコールを起点としてカーネルのコードを実行する際にユーザ空間のスタックとは独立したカーネルスタックを使用する。カーネルスタックを壊せる脆弱性があるとカーネル空間で任意のコードを実行される恐れがあるが、開始アドレスが予測できなくなる事で、そうした攻撃が難しくなる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「linux の syscall(2) 使う時の定数、 SYS_xxx 使ってるコードと __NR_xxx 使ってるコードがあるけど、どっちが、より適切なんだろう」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「アプリからは SYS_ 使えってことっぽいな https://t.co/o5gAKmkeeW」 / Twitter
- c - What are the __NR_-prefixed symbols in glibc? - Stack Overflow
- 漢字変換の権を他人に握らせない🙅さんはTwitterを使っています 「これdockerみたいにsyscallのたびにfilter走るやつがはやくなってべんり。自力で全部closeするやつがおるから。 > On Linux, the close_range function has been added. It allows efficiently closing a range of file descriptors on recent kernels (version 5.9).」 / Twitter
- ファイル数が多すぎるフォルダで「ls」コマンドが遅くなってしまう問題の解決方法 - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Linuxカーネルにシステムコールを追加する手順。ドライバを書くよりはお手軽なので、カーネルに手を入れる演習としてはいいかも。 https://t.co/wcGNObC1cU」 / Twitter
- Tutorial - Write a System Call • Stephen Brennan
- FadisさんはTwitterを使っています 「IntelがLinuxカーネルにユーザ割込みをサポートする為の新しいシステムコール案を投げている話。ユーザ割込みはIntel CPUの新命令で、ring3で動いているCPUがring3で動いている別のCPUに割込みをかける仕組みで、カーネル空間を経由しない高速なプロセス間の通知に応用できる https://t.co/Ev3NoCpY6K」 / Twitter
- Intel Posts Initial Code For x86 User Interrupts On Linux - Shows Great Performance Potential - Phoronix
プロセス間通信
signal
その他
- だいありー
- LinuxC | シグナルの操作(2)
- スタックオーバーフローのハンドリング (Stack Overflow Handling)
- SIGSEGVとSIGILLのあいだ - Qiita
- SIG30-C. シグナルハンドラ内では非同期安全な関数のみを呼び出す
- Man page of EXIT
- c++ - What's the difference between _Exit() and _exit()? - Stack Overflow
- 2019年8月22日 Linuxデスクトップにレスポンシブなメモリ解放を提供する「Low-Memory-Monitor」:Linux Daily Topics|gihyo.jp … 技術評論社
- 情報学広場:情報処理学会電子図書館
- terminate - cpprefjp C++日本語リファレンス
- _Exit - cpprefjp C++日本語リファレンス
- quick_exit - cpprefjp C++日本語リファレンス
- ゆたかさん🐬さんのツイート: "シグナルハンドラで使用可能な関数は、下記サイトに記載されていますが、非常に少ないです。printf()やfopen()などがまず使えません。実際に誤って使用しても、それなりに動いてしまうので問題に気付きにくいです。 https://t.co/cvbnhTp8NZ"
- signal-safety(7) - Linux manual page
- ゆたかさん🐬さんのツイート: "シグナルハンドラで使える関数は決まっていて、思いのほか少ないのですが、その制約を守れていない実装が存外多く蔓延っています。BusyBoxのsyslogdの-mで使われているシグナルハンドラはシグナルセーフではないため、まれにデーモンが暴走することがあります。 https://t.co/mJ6z8u7b2g"
- Linux シグナルの基礎 - harasou.jp
- ぬるぽへさんのツイート: "マルチスレッドなら同じシグナルハンドラが普通に並行に走るな・・・(この動作ってPOSIX的にオッケーなんだっけ"
- ゆたかさん🐬さんのツイート: "killコマンドはプロセスに終了してね❤と通知するだけなので、実際にプロセスが死んだか別途確認する必要があります。 PIDは再利用されると、別プロセスが同じ番号を使うので存外難しい。 1.kill PID 2./proc/PID がない 3./proc/PID/exe を確認"
- Takanori Watanabeさんのツイート: "とりあえず、SEGVを割り込んで途中で止められるようにして欲しい。 (デバッグ中の数ギガクラスの巨大なイメージのプログラムのコアダンプを20分ほど待ちながら)"
- mattnさんのツイート: "SEGV は Segmentation Falut の略だよって人、なぜ Violation まで付けて説明しないのか。"
- Fadisさんのツイート: "/proc/<PID>/以下ににシグナルを送る為のファイルを作る提案がなされている。既存のシステムコールを使った方法ではPIDが再利用された場合間違ったプロセスにシグナルを送る恐れがあるが、作り直されたディレクトリは以前の物と区別される事を利用してこの問題を回避できる https://t.co/JiKCIwMyVq"
- New /proc/pid/kill Interface Proposed For Killing Linux Processes - Phoronix
- まさみさんは語りたいさんのツイート: "signalで実装するとsignalハンドラでキャッチした後スリープしてる本体のスレッドを叩き起こし、戻る必要があるが、signalfdで待っておけばepollですぐに本体で対応できる。"
- Fadisさんのツイート: "Linuxが新規プロセスに付ける番号(PID)は1から32767までの狭い空間の使用中でない値なので、短時間で終了するプロセスが大量に動くシステムで、PIDを指定してシグナルを送ると、それが既に終了していた場合、シグナルが意図したプロセスとは別のプロセスに届いてしまう事がある。"
- Fadisさんのツイート: "この問題を解決する為に、現在Linuxカーネルで対応が進められているのがpidfd。これは/proc/<PID>ディレクトリに対するfile descriptorで、/proc/<PID>が別のプロセスになっても、fd指定でシグナルを投げる事で古い方のプロセスに向かってシグナルを投げている事をカーネルに明示する事が出来る"
- ITが分からないbeepcap@HTTPSの強制には反対さんのツイート: "64bit環境では22bitほど割り当てられるので、比較的問題は小さくなる。… "
- Fadisさんのツイート: "ちなみにLinuxはnamespaceでPIDの空間を分ける事ができる(よその名前空間のプロセスは見えなくなり、よそではすでに使われているPIDが未使用になる)為、ものすごい勢いでプロセスを作って終了させるヤツを他のプロセスが属すPIDの空間から隔離する事は、古めのカーネルでもできる"
- FadisさんはTwitterを使っています 「errnoは誰もがerrnoの扱いに関するルールを守る限りにおいて正しく機能するが、君はerrnoを書き換えるかもしれない処理をするシグナルハンドラの最後でerrnoを以前の値に戻すのを忘れたことが無いのか?!」 / Twitter
- FadisさんはTwitterを使っています 「strace: ユーザ空間のプロセスが実行中に呼び出したシステムコールと、受け取ったシグナルを横から眺めるための仕組み。この関数は最終的にカーネルに要求を投げてる筈だけどどんなシステムコールを使ってるの?なんて時に調査が捗る #nekoi7yu_tech」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「UNIXプロセス周りのバグの何がやりづらいって並行性由来の非決定的動作がグローバルに連動して発生する点で、今回はvscodeでの編集中に型エラーが出たり消えたりする原因がツールチップのプリティプリンタ(ocamlformat)を呼ぶスケジューラのwait()とプリプロセッサ(PPX)を呼び出すsystem()の干渉だった」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「こういうの、わかる人にはわりと早い段階でピンとくるのかもしれないですが。前回 https://t.co/NkZNs4Cufk」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「かなり昔、TCP使ったミドルウェアで切断時の再接続が偶に発生しない障害に悩まされた。詳しく調べるとリモートに送っているはずのデータ列が突如/var/log/syslogにリダイレクトされていく怪現象。どうもsyslogのライブラリがSIGPIPEハンドラをセットしており、そこで同じ番号のfdが再確保されていた…」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「SIGPIPEハンドラから戻ってくると元のFDが生きてるように見えるのでその後のwriteでは例外が起こらずに再接続も発生しない。本来どうするのがベストプラクティスなのか忘れてしまったけど、当時すこし気が動転してランタイムのバグを疑ったりgdbでトレースしたりと人生ワースト5に入るバグだった」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「当時のコード(多分)を見つけた。ピアとの接続が切れた時のSIGPIPEが、syslogdとの接続が切れたのと誤認される→ピアとの古いFDが次のsyslogdとの接続に再利用され→ハンドラ終了後ピア向けの書き込みがsyslogdに流れる…のか?お作法がまずいのだろうか、プルリクを出そうね… https://t.co/YbZNXdbt4r」 / Twitter
- ocaml-syslog/syslog.ml at v2.0.2 · geneanet/ocaml-syslog
- Yasuhiro HayaseさんはTwitterを使っています 「@keigoi エラーが起きたfdを区別する仕組みがないのですよね.非同期実行のため,外部変数の読み書きや関数呼出しも制限されるため,速やかにexitする目的以外でSIGPIPEハンドラを使うと問題を起こしそうです.(リカバリしたい場合はwriteのEPIPEに対処せよとの記事を見付けました https://t.co/nGNzttgNJs )」 / Twitter
- c - Using signals and sigpipe - Stack Overflow
- Keigo ImaiさんはTwitterを使っています 「こんなの大昔からシステムプログラミングの定石がありそうだなと思うんだけど、何なんだろう…。単にSIGPIPEを無視してwriteの戻り値をチェックするように変えるのが良いのかな。 いずれにせよ、ライブラリ側で暗黙にシグナル操作をやられるとハマりそうではあります。」 / Twitter
- Keigo ImaiさんはTwitterを使っています 「やはり単にサーバープロセスはSIGPIPEを無視するのが定石のようで。元の文脈でいえば、その辺のライブラリを拾って適当に使う前に事前によく検討しよう、という結論のような気がする(当時もそう思った気がするが選定したのは私ではなくてあまり自信もなく、開発元にcontributeしないのもよくなかった」 / Twitter
Twitter
CAP定理
- TAKI, Yasushi (瀧 康史)さんはTwitterを使っています 「とりあえず、「分散すれば良い」と簡単に思ってる人は、拡張CAP定理について書いたので、読んでほしいな。 https://t.co/M9sXkaJ2m9」 / Twitter
- Shinji KonoさんはTwitterを使っています 「本質的にスケールするためにはCAP定理のどこかを諦める必要がある。どれかは明解。そうすれば自明にスケールして、ネット上の情報交換はほぼ無料になる。そして、インターネットは再び儲からないものになる。トランザクションを要求するものは別。」 / Twitter
- 時空に拡張されるCAP定理:落ちず、速く、確実なサーバをどう作るのか? - JUSTPLAYER インターネットサービス
UNIXドメインソケット
- Fadisさんのツイート: "mysqlはlocalhostに接続する時にmysqldが作ったUNIXドメインソケットを使おうとするが、この時mysqldのプロセスがあるかとかは見ていなくて、別のコンテナのmysqldが作ったソケットをbindマウントで持ってきて見える状態にすると、localhostにないmysqldにlocalhostで繋がる、という知見が得られた"
- syuu1228さんのツイート: "一般的にこういうアプリでUNIXドメインソケットでつなぐ前にプロセスの生存確認ってわざわざしない気がする(繋がらなければ生存してないとわかるし…"
@kazuho
- Kazuho OkuさんはTwitterを使っています: 「可用性が高く、メッセージへの参照を持つことができる、セキュアなメッセージキューがあります。各アプリケーションはメッセージキューの読み書きをすればよろしい、ってのはエンタープライズアーキテクチャには便利だわなぁ」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「スケーラビリティのためにはイベントドリブンプログラミングが必要だけど、単にイベントドリブンするとワークセットがでかくなってパフォーマンスが出なくなる問題」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「ちょっと具体的に言うと、ワークセットを小さくするにはイベントループに戻るケースを最小化すべき → 非同期になった場合と同期的に処理できた場合の両方を統一的にコーディングできるよう設計すべき → tail callが便利 → 返り値を返す関数とcbを引数にとる関数の峻別が必要」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「リソースロケータと読み書き手順の標準化による効率化、ってことなのかな。なるほどねぇ / https://t.co/AOSpdixnST」 / Twitter
- 中国で公共サービスのブロックチェーン導入進む。十数日かかる企業登記が3日に短縮 ~知的財産権訴訟の和解処理も大幅効率化 - 仮想通貨 Watch
- Kazuho OkuさんはTwitterを使っています 「一般論として、大量のパケロスが発生するような状況はキューの積み上がりと再送による遅延が激しくなるので、そこまでアグレッシブに送るメリットがないと理解しています。輻輳ギリギリを狙うのが吉」 / Twitter
- ReiOdairaさんはTwitterを使っています 「UDPの性能評価がよくわからん。UDPを生で(?)使ってる人にとってはレイテンシとパケット落ちない最大スループットが重要?パケット30%落ちるけどn Gbps出ます、みたいな領域でUDP使ってる人いるのか?でも最近はUDPの上に到達保障性のあるレイヤー重ねることも多いだろうからまた評価基準が変わるか?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「他のフローを追い出すとか邪悪なことをやりたいならともかく」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「規格統一の話とは少し違うけれど、A.タネンバウム先生の「分散システム」としてのMS DCOM評を思い出した。 「DCOMを批判することは難しくない。しかし何千万人が毎日使っているという意味で、CORBAや他のいかなる分散システムも遠く及ばない」 https://t.co/JJcrU5Ooub」 / Twitter
- 深津 貴之 / THE GUILDさんのツイート: "「エンジニアが1ピクセルの精度を軽んじる」っていうけど… デザイナも「エンジニアがミリ秒単位でチューニングしたレスポンスを、デカイjpeg貼って台無しに」とかするので、やっぱ相互理解が大事だよなぁと思いました"
- ねこさんはTwitterを使っています 「“システムの作り直しは失敗しやすく困難なので、しばしば悪い方針だと言われます。” そうなのかー…弊社内だとすごくよく見る https://t.co/KisyvzS6gG」 / Twitter
- 人気順検索のSolrはスケールのためにディスクを捨てた - クックパッド開発者ブログ
- ねこさんはTwitterを使っています 「これ,たぶんRPC protocolが統一されてて,micro service architectureと下層の状態が高度に隠蔽されているからな気がする(あと依存系の更新が頻繁に起こってdefacto standardがちょこちょこ変わるのもある」 / Twitter
- 検索インフラを安全に切り替えた話 - クックパッド開発者ブログ
- PC内のプロセス間通信に対する中間者攻撃--パスワードマネージャから情報流出も - CNET Japan
- In-Process コンポーネント技術の限界 - NyaRuRuが地球にいたころ
- 情報学広場:情報処理学会電子図書館
- Security Tips for IPC - The Chromium Projects
- 編集長の眼 - 若手が知らない昔の技術MQ、クラウドではホットだ:ITpro
- MSMQと.NET Core
- ウェブシステム内の待ち行列をMackerelで可視化してみる - ゆううきメモ
- 分散キューという名の苦しみ - Software Transactional Memo
- 分散システム処理モデルに関する動向について(MapReduceからBorgまで) - Yahoo! JAPAN Tech Blog
- プロセス間通信 - Qiita
- 本当は恐ろしい分散システムの話
- Oracle Cloud、マルチプラットフォーム対応の運用監視ツール「Oracle Cloud observability and management platform」発表。ログの一元管理から分析、分散トレーシングなど - Publickey
- gRPC、Ballerina、Go言語を使用したマイクロサービス開発の実例
- Microsoftの「マイクロサービス開発」を支援する分散アプリケーションランタイム「Dapr」がバージョン1.0に到達 - GIGAZINE
- KOBA789さんはTwitterを使っています 「分散システムの議論って必ず「まずは分散させるな」「それでも分散させなきゃならない理由は何だ」という話から始まるべきと思ってて、全然キラキラしてないけど一番大事なのはそこだよなっていう」 / Twitter
- ゼロコピーで瞬時にプロセス間の大規模データ通信を可能にする「Eclipse iceoryx」ミドルウェア、Eclipse Foundationが公開 - Publickey
同期 API
その他
- そろそろvolatileについて一言いっておくか
- ホイール欲しい ハンドル欲しい » Archive
- 5章 カーネルの同期処理 - iplab 2011
- DSAS開発者の部屋:並列プログラミング(その3)
- emcjp/ at master · herumi/emcjp · GitHub
- Thread/Synchronization 補足資料
- TheC10kProblem - 「C10K問題」(クライアント1万台問題)とは、ハードウェアの性能上は問題がなくても、あまりにもクライアントの数が多くなるとサーバがパンクする問題のこと
- データ競合(data race)と競合状態(race condition)を混同しない - Qiita
- スリープループによる消費電力とパフォーマンスの改善 | iSUS
- RCUの全面書き直しも! 2.6.29は何が変わった?(1/2) - @IT
- QCon New York 2017: システム内のイベントの順序付け
- x86 に Persistent Memory 用の命令が追加予定 - 教育は参考ブログ
- PCOMMIT 命令は廃止に - 教育は参考ブログ
- 状態機械を合成してデッドロックを検出できる Go 言語パッケージを作ってみました - チェシャ猫の消滅定理
- CPUスケジューリング - 13DeadLock.pdf
- SPIN モデル検査: 検証モデリング技法 - 中島 震 - Google ブックス
- 世界で闘うプログラミング力を鍛える150問: トップIT企業のプログラマになるための本 - Gayle Laakmann McDowell - Google ブックス
- Rustの `Arc` を読む(4): アトミック変数とメモリ順序 - Qiita
- x86 lock 特権 - Google 検索
- okamo(aged 5 yrs.)さんはTwitterを使っています 「なんか忘れてしまったけどcoherentかconsistentかみたいな話について似たような議論を繰り広げた記憶がある」 / Twitter
- アトミックな加減算命令 x86 - Google 検索
C
- 条件変数 Step-by-Step入門 - yohhoyの日記
- 条件変数とデッドロック・パズル(出題編) - yohhoyの日記
- 条件変数とデッドロック・パズル(解答編) - yohhoyの日記
- atomic型と整数型のサイズ - yohhoyの日記
- atomic変数間のatomicなコピー - yohhoyの日記
- restrictキーワードへの対応状況 - yohhoyの日記
- restrictキーワード - yohhoyの日記
- 続 restrictキーワード - yohhoyの日記
- volatile教、あるいはvolatile狂 - yohhoyの日記
- (抄訳)N4215 memory_order_consumeの利用と実装に向けて[§5-6のみ] - yohhoyの日記
- (翻訳)C/C++のStrict Aliasingを理解する または - どうして#$@##@^%コンパイラは僕がしたい事をさせてくれないの! - yohhoyの日記
メモリモデル
x86
- yohさんはTwitterを使っています: 「x86でもStoreLoadバリアが必要なケースあると思われ https://t.co/5a6rNpk6GX https://t.co/FtleEav5eP」 / Twitter
- Memory Reordering Caught in the Act
- キノコになりたい🍄さんはTwitterを使っています: 「x86-64のCPUはつよいメモリモデルを持つのでOoOでも結局volatileアクセス順序は保たれそう? シングルスレッドだけを見るならvolatileアクセスの逐次一貫性を保証するのに追加のバリアは要らないよねきっと・・・」 / Twitter
- omni 鳥頭さんはTwitterを使っています: 「@yohhoy @onihusube9 あれ?この引用されている記事は異なるメモリに対するお話ではないんですか?」 / Twitter
- キノコになりたい🍄さんはTwitterを使っています: 「@kariya_mitsuru @yohhoy 私としては、異なるvolatileオブジェクトのアクセス間でも結局x86ならmovで十分なのでは??? と考えていたので、この記事で見事に間違っていることが分かりました・・・」 / Twitter
- omni 鳥頭さんはTwitterを使っています: 「@onihusube9 @yohhoy あ~、それはダメですね…」 / Twitter
- yohさんはTwitterを使っています: 「@kariya_mitsuru @onihusube9 通常は異なるアドレス(変数)アクセス間のConsistencyが議論の対象ですね。ただ一部の超よわよわメモリモデルプロセッサだと、同一アドレスアクセスの順序すら入れ替わることがありえたり(Intel Itaniumのld命令とか)」 / Twitter
- yohさんはTwitterを使っています 「x86メモリモデルのままmany core化とか無理やったんや」 / Twitter
blog
- メモリモデル?なにそれ?おいしいの? - yohhoyの日記(別館)
- メモリモデル (プログラミング) - Wikipedia
- マルチコア時代に備えて本気でメモリモデルを理解しておこう - リオーダー & finalフィールド 編 - - かとじゅんの技術日誌
- 言語仕様とメモリモデル:柴田 芳樹 (Yoshiki Shibata):SSブログ
- C#のメモリモデル、スレッド処理 - tixture55’s diary
- プロセッサのメモリコンシステンシモデルについて - FPGA開発日記
- メモリコンシステンシについて
- std::atomic の挙動がメモリオーダーによりどう異なるか - uchan note
- データ競合と happens-before 関係 - uchan note
- C++ の release sequence の意味と役割 - uchan note
- メモリコンシステンシモデルとリトマステストについて (1. メモリコンシステンシモデルについて) - FPGA開発日記
- メモリコンシステンシモデルとリトマステストについて (2. リトマステストについて) - FPGA開発日記
- Javaの並行処理を理解する(入門編) - Qiita
- C#でマルチスレッドのベストプラクティスって何かある?(What are the best practices with multithreading in C#?) - Qiita
- 第 1 章 マルチスレッドの基礎 (マルチスレッドのプログラミング)
- C++ マルチスレッド 入門
- C# - マルチスレッド化でのC#メモリモデルの挙動|teratail
- atomic::compare_exchange_weak - cpprefjp C++日本語リファレンス
- yohさんはTwitterを使っています 「@uchan_nos https://t.co/pImzOF89xO TSOより強いsequential consistencyを実現するためにXCHG命令が使えますね。」 / Twitter
- c++ - Why does a std::atomic store with sequential consistency use XCHG? - Stack Overflow
- 逐次一貫性 - Wikipedia
- メモリコンシステンシモデル memory consistency model - ppt download
- yohさんはTwitterを使っています 「C/C++メモリモデル上はbit-fieldの扱い超ややこしくて、隣接するbit-field間は並行アクセスすると全部ぶっ壊れる可能性があった気がする(やや過激な表現)」 / Twitter
- yohさんはTwitterを使っています 「“Strong” and “weak” hardware memory models | Sutter’s Mill http://t.co/1HdfybmFRG SeqCstなメモリモデルでARMの新しいinstructionがいけてる(ようになる)みたいな記事があったな と」 / Twitter
- “Strong” and “weak” hardware memory models – Sutter’s Mill
- yohさんはTwitterを使っています 「AppleM1登場で ARM/x86 memory consistency modelのような超マイナー領域話題に日が当たってるのウケル」 / Twitter
- yohさんはTwitterを使っています 「今はなきItanium(IA-64)のよわよわメモリモデル https://t.co/GPalabvCVD 同一スレッドから同一メモリ位置を2回loadする順序ですらひっくり返る(ことがある)位だったらしいので凄い」 / Twitter
- [cpp-threads] Brief example ITANIUM Implementation for C/C++ Memory Model
- SPARCのメモリオーダリング: 竹下世界塔の計算機よもやま話
- yohさんはTwitterを使っています 「メモリアクセスのセマンティクスとApple siliconの裏技(?)について - yamasaのネタ帳 https://t.co/77SfsgR0Wi 続編!!」 / Twitter
- メモリアクセスのセマンティクスとApple siliconの裏技(?)について - yamasaのネタ帳
- yohさんはTwitterを使っています 「個人的にも "裏技" という印象が強いかなぁ... memory coherence制御ってマルチコアプロセッサの基礎的なレイヤのイメージがあるから そこをOS thread単位で変えられるとか聞くとびっくり(ハード寄り知識不足に起因した印象なのかもしれず)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「良い解説記事。他のメモリモデルをサポートすることは特に禁じられてないだろうし、裏技かどうかはともかく / https://t.co/b2PB8GfcRK」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「裏技かどうかは感覚の話であって記事の技術的正確性には関係ない話だけども。個人的には、より制限のきついtsoモードで動くのは仕様準拠である以上、フラグで制御できる省電力モード足すのと変わらん程度では感」 / Twitter
- やまささんはTwitterを使っています 「うーん、TSOをいまだに積極的に採用してるのってx86以外だともうSPARCくらいしか残ってないのでは……」 / Twitter
- 中村 実さんはTwitterを使っています 「(´-`).oO(世の中のプロセッサが概ねTotal Store Orderingに収束しているのは、マルチプロセッサの祖であるIBM System/370がTSOを採用したからだよな。S/370がもっと弱いオーダーリングを採用したら今頃のトレンドもそうなっていたと思うよ)」 / Twitter
メモリバリア
メモリバリア
- C++ Developer Guidance for Speculative Execution Side Channels | Microsoft Docs
- /Qspectre | Microsoft Docs
- NVD - CVE-2017-5753
- Analysis and mitigation of speculative store bypass (CVE-2018-3639) – Security Research & Defense
- Mitigating speculative execution side channel hardware vulnerabilities – Security Research & Defense
- SpectreBustersあるいはLinuxにおけるSpectre対策
- 本当にわかる Spectre と Meltdown
- 【図解】CPUの脆弱性[Spectre/Meltdown]と投機的実行の仕組み〜分岐予測とアウトオブオーダー実行〜 | SEの道標
- [SpectrePrime] [MeltdownPrime] とCPUのサイドチャネル攻撃 〜Evict-Time/Prime-Probe/Flush-Reload〜 | SEの道標
Twitter
histric-1
- Fadisさんのツイート: "小学生「おじいちゃん、今はCPUは書いた順に命令を実行なんてしないし、バリアも置かずにデータを覗き見したら何が読み出されるかわからないし、システムコールはint 0x80じゃないんだよ」 (つまりこういう事か"
- СЮУ1228さんのツイート: "おじいちゃんが、というか、初学者が読んだ参考資料が古すぎるために知識がこういう風にずれるのありそうだなぁと思った"
- Cocoaにおける同期 – ゴミ箱
- ゆたかさん🐬さんのツイート: "最近のプロセッサはOut of orderな動きもするので、volatileだけでは不十分で、メモリバリアも必要なケースもあります。特に、DMA転送する時とか。 https://t.co/QfytuYEgKg"
- 各種プロセッサのメモリオーダリングについて 竹下世界塔の計算機よもやま話/ウェブリブログ
- 中村 実さんのツイート: "ストア命令の順序はほとんどCPUで保証しますよ。x86でもSPARCでも。保証しないのはAlphaとIA-64ぐらいです。問題になるのはロード命令とストア命令の順序、ロード命令同士の順序ですな。… "
- whymb.dvi
- c - gcc memory barrier __sync_synchronize vs asm volatile("": : :"memory") - Stack Overflow
- まさみさんは語りたいさんのツイート: "PaulといえばメモリバリアとRCUというイメージがある。RCUの実装にはメモリバリアが避けられないから。"
- 日記 (2015 年 8 月下旬)
- 松本 亮介 / まつもとりーさんのツイート: "マルチスレッドなコード、コンパイラレベルでメモリバリアしてもCPUレベルでストアとロードの並べ替えがそれなりにおきて、それに起因して全体としての問題がたまに起きるし、それに気づくのに時間使いすぎるし人類には早過ぎるのだが僕は負けない。つまりmfenceしてやれば良いのだけど大変である。"
- 社会人でもOSを作りたいさんはTwitterを使っています: 「movとxchgの間のリオーダってどんな感じかな。」 / Twitter
- 赤提灯さんはTwitterを使っています: 「@uchan_nos メモリオーダリングの話でしょうか?もしそうなら、SDMのxchg命令とVol. 3Aの「8.2 MEMORY ORDERING」見る限りは、xchgの前のmovとxchgのオーダが入れ替わる可能性もあるので、順序保証のためにmfenceは必要かな。xchgだから特別というわけでもなさそうです。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin ありがとうございます。「8.2.3.1 Assumptions, Terminology, and Notation」に登場する「write」と「store」って何が違うんでしょう。もし同じ用語だとすれば,xchgは暗黙的にlockが付与されたread-modify-writeとして実装されているので,他のread/writeと入れ替わることはないような。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin 8.2.2にあるように,read同士,write同士はリオーダされないはずなので,read-modify-writeとして実装されているxchgは他のread/write命令とリオーダされないはず,という推論です。」 / Twitter
- tarosukeさんはTwitterを使っています: 「@uchan_nos スピンロックで使うメモリをA、レジスタをB、Aの初期値を0として... 1. 1をBに書く 2. BをAと交換 3. Bが0でなければ2に戻る(x86ならwaitしておくとベター) ...ロック内の処理... 4, ロックを抜けるときには0をAに書く ...だったかな?x86では交換がアトミックなのがミソ。」 / Twitter
- tarosukeさんはTwitterを使っています: 「@uchan_nos waitでなくてpauseだったか。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「@tarosukenet めっちゃ参考になります。pause以外はおっしゃる通りの実装をしていました。pauseしてみたらパフォーマンスが上がりました。とあるベンチマークが1.7秒→0.8秒くらいに。」 / Twitter
- 赤提灯さんはTwitterを使っています: 「@uchan_nos レス遅くなりました。writeとstoreは変わらないと思います。理由は、SDM 3A. の8.2 では「processor issues reads (loads) and writes (stores)」と書かれているため、同じ意味とみなしても良いと思います。」 / Twitter
- 赤提灯さんはTwitterを使っています: 「@uchan_nos レスありがとう!リオーダされないのは「個々の」プロセッサでのRead、Writeが範疇だと解釈しております。8.2.2のFigure 8.1に関する説明では・・・「but because of bus arbitration and other memory access mechanisms」により、複数プロセッサによるWrite順は毎回同じにならないかな、と思います。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「@akachochin 別々のプロセッサのwriteが同じ順にならないのは全然驚かないですね。それはリオーダとは呼ばないですよね。」 / Twitter
- yoh2さんはTwitterを使っています 「「このマルチスレッドプログラム、シングルコアCPUでないと動かないんだ」の経験があります。 複数スレッドから参照される変数には volatile 付けてるし、読み書きがアトミックに済むことも確認済なのに何故……と。コンパイラが順序を入れ替えなくてもCPUが入れ替えることを知らなかったあの頃……」 / Twitter
- yoh2さんはTwitterを使っています 「@yuki_shemale あるコアで行われたメモリ読み書きの順序が別のコアからは違った順序で行われたように見えるというものです。 例えば初期値0でx=1とy=1をこの順に行うとx=0かつy=1になる瞬間はないはずですが、他コアからはそう見えることもあるという。 ↓古いですが実験用プログラムです。 https://t.co/BWujQwqMit」 / Twitter
- ロード/ストア命令の追い越し例 | Yoh2の日記 | スラド
- Makoto Kato ︎︎さんはTwitterを使っています 「memory orderingをエンディアンと勘違いする人いるんだ。out-of-orderとかmuti-threadとかをまず理解すべきだよ」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「C/C++のコードはコンパイラとかCPUが実行順序を入れ替えるなんて想像してないんだろうな、そういう人」 / Twitter
- とみながたけひろさんはTwitterを使っています 「@kazuho (私はまだ使ったことがないんですが)LDAR/STAR命令などを使うとバリア命令が内包されるため、ほぼx86的なメモリオーダリングになるように見えるんですよね https://t.co/JFFvEvHc0S」 / Twitter
- yohさんはTwitterを使っています 「ARMのLDAR/STLRって 最近のseq_cst memory orderingをそのままHW実装(保証)した感じで x86のTSOよりも"便利"になってたきがしないでもない」 / Twitter
- ☕sat📷さんはTwitterを使っています 「@try_ymk アセンブリ言語で特殊なヒントを与えます。素直に命令をA,B,Cと並べるだけでは実行順序がハードによって入れ替えられたりするので。「やっぱりアセンブリ言語使ってるじゃん!」と言われたらそうなんですが、素直に書いたとおりには動かないということで」 / Twitter
- ☕sat📷さんはTwitterを使っています 「@try_ymk それがどこから来ているかというとCPUが実際に実行しているuopという命令の粒度がユーザに見えるアセンブリ言語レベルの命令より小さいから、だったりします。我々はuopの挙動に対するヒントは与えられますが、直接実行はさせられません」 / Twitter
- ytakanoさんはTwitterを使っています 「メモリバリアのrelaxed、acquire、releaseなどで、どういうアセンブリが生成されるかは、このページをみるとおおまかに把握出来る。 https://t.co/ZdGaITyGXd」 / Twitter
- C/C++11 mappings to processors
- メモリバリアを理解するために必要な3つのこと - yamasaのネタ帳
- yamasaのネタ帳
- Multithreading - x86 LFENCE、SFENCE、MFENCEの指示はいつ必要ですか? Assembly | サンプルコード [日本語]
- Assembly - x86 / x86_64プロセッサでLFENCE命令を使用するのは意味がありますか? X86-64 | サンプルコード [日本語]
- 全 x86 プロセッサにあるわけではない命令 (July 23, 2006)
- メモリオーダリング - Wikipedia
- アウト・オブ・オーダー実行 - Wikipedia
- メモリバリア - Wikipedia
- メモリーバリア ‐ 通信用語の基礎知識
- メモリバリア - C言語入門
- ロード/ストア命令の追い越し例 | Yoh2の日記 | スラッシュドット・ジャパン
- DSAS開発者の部屋:Go のライトバリアに関するバグを修正した話
- スレッド同期についてのエトセトラ
- スレッド同期のエトセトラ 第2回
- スレッド同期のエトセトラ 第3回
- Load-Link/Store-Conditionalを見直した
- 無視できないフラグメンテーション問題への解答は?(2/2) - @IT
- マルチスレッドとメモリ同期 - primitive: blog
- 次期C++に導入されるメモリバリアについて解説してみる - yamasaのネタ帳
- C++0xのメモリバリアをより深く解説してみる - yamasaのネタ帳
- 「強いメモリモデル」と「弱いメモリモデル」 - yamasaのネタ帳
- x86よくできてる点 - w_o’s diary
- linux/memory-barriers.txt at master · torvalds/linux
排他制御
- データの同時更新を防ぐための排他制御 (1/3):CodeZine(コードジン)
- 排他制御
- 排他制御のあれこれ - Qiita
- 排他制御(楽観ロック・悲観ロック)の基礎 - Qiita
- データベース利用時に自前で排他制御が必要か - プログラミングメモ
- 排他制御とは パソコン初心者講座
- 排他制御
- ユーザの設定による排他制御の変更
- [SQL] 11. トランザクション 2 | TECHSCORE(テックスコア)
- 一貫性/独立性を確保する「排他制御」を理解する (1/2):「データベーススペシャリスト試験」戦略的学習のススメ(23) - @IT
- 何故RISC-Vのアトミック操作命令はLR/SCでCASではないのか - FPGA開発日記
- 何故RISC-Vのアトミック操作命令はLR/SCでCASではないのか (2. LR/SCの条件) - FPGA開発日記
- 🎸 ライブロック 🎸について - ねぇうしくんうしくん
- PFLab | Graduate School of Information Science and Technology, The University of Tokyo
- 講義 | PFLab
- オペレーティングシステム - OS_04.pdf
- オペレーティングシステム - OS_05.pdf
Latch
- Concurrency Utilitiesを使った並列処理・マルチスレッドのおさらい - argius note
- FutureとPromise | Scala研修テキスト
- CountDownLatchを使って、複数スレッド間の同期を取る - Qiita
- [Android] 何人かの非同期処理を待ち合わせる | アドカレ2013 : SP #23 | DevelopersIO
- Java CountDownLatchは、ラッチをカウントダウンするthread.run()が例外を受け取ると、タイムアウト値を待ちます。 - コードログ
- CountDownLatch (Java Platform SE 8 )
- 7つのサンプルプログラムで学ぶRxJavaの挙動 - クックパッド開発者ブログ
- CountDownLatchを改造して、別スレッドの複数並列処理の結果に応じて処理する - 気まぐれな備忘録(仮)
- latch, barrier同期プリミティブ - yohhoyの日記
- タイムアウト Javaマルチスレッドでカウントダウンラッチはどのように使用されますか? - 初心者入門サンプル
ロック
Twitter
Intel_AMD
- まさみさん⋈語りたいさんはTwitterを使っています 「Intel SDMとAMD APMで超基本的な内容が矛盾してることが分かった。Intel SDMではLOCK-REPプレフィックスの組み合わせは許されていないのに、AMD APMでは許されている。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「Linuxで使っているinstruction decoderはIntel SDMに基づいて作っていたので、Legacy prefixは4バイト(4種類)まで、という理解で作っていたんだよね。ところがAMD APMは5バイト(5種類)までOKとか書いていて草」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「最大4バイトまでなんやな、ということでinsn_value_tをu32で定義しちゃってるんだよ。どうしようかこれ。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「違うわ。これはAMD APMの記述ミスや。REPとLOCKは使える命令が限られていて、お互いに違う命令をサポートしているから、どうやってもこの2つが同じ命令に対してかけられることがない。後半の説明にそう書いている。デコーダの説明がおかしい。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@diizuka 詳しくは下記メールを参照のこと・・・。 https://t.co/j5Nw5VcHbH LOCK-REPプレフィックス付けるとintelでは何が起きるのだろうか?(普通に動きそうだけど)」 / Twitter
- Re: [PATCH v2 1/3] x86/uprobes: Fix not using prefixes.nbytes for loop over prefixes.bytes - Masami Hiramatsu
- まさみさん⋈語りたいさんはTwitterを使っています 「@diizuka あっ、わかったこれはひどい」 / Twitter
lock poisoning
- ドッグさんはTwitterを使っています 「Rust の標準ライブラリ(Mutex や RwLock)は lock poisoning の仕組みを持ってるけど,panic の伝搬にはコストがかかるので,それを切り離して必要なときだけ使うようにしたいのか.そもそも lock poisoning とは?という解説もある | 'Launching the Lock Poisoning Survey' https://t.co/FAZHa0Acvc」 / Twitter
- Launching the Lock Poisoning Survey | Rust Blog
- monochromeさんはTwitterを使っています 「Rust、子スレッドのpanicを親スレッドに伝播させる方法はあるのだろうか」 / Twitter
- monochromeさんはTwitterを使っています 「子スレッドがバグると帰ってこなくなってしまうのが辛い」 / Twitter
Distributed RW lock
- ytakanoさんはTwitterを使っています 「Distributed RW lock。こんな単純な方法でスケールするの? https://t.co/crubUwVxmR」 / Twitter
- 1024cores - Distributed Reader-Writer Mutex
- ytakanoさんはTwitterを使っています 「これなら自分でも実装は出来そう」 / Twitter
- OS作れないマン WalB担当さんのツイート: "タスクの概念がないしカーネル空間でのロックなのでスピンロックで実装していたんが、そういえばハンドラの中からLock呼び出すとデッドロックするよなあ…というかデッドロックが発生したので、TryLockを実装した。"
- Community Blog - ファイルロックと新OFDロック
- Kazuho Okuさんのツイート: "RDBにおいてはデッドロックはリトライで解決するものという前提が抜けてる? / デッドロックを減らすパフォーマンスチューニング論としては面白い / “デッドロックおじさん戦記 - Mercari Engineering Blog” https://t.co/Aqdjx85hdA"
- デッドロックおじさん戦記 - Mercari Engineering Blog
- Kazuho Okuさんのツイート: "実際問題としてデッドロックの発生率があがると過負荷になってユーザにエラー返すことになるのはそのとおりだろうけど、その説明がないと、リトライしてないの???ってなる"
- ファッション自作OSマンさんのツイート: "割り込みハンドラから書き込んで,メインループで読みだすようなキューを競合から保護するには何使えばいいんだ?割り込みを禁止するのは簡単だけどマルチコア環境だと意味ないしな."
- ファッション自作OSマンさんのツイート: "ローカルCPUについてはcliで割り込み禁止しつつ,スピンロックで保護するのがお手軽な感じかな."
- satさんのツイート: "正解。linuxでいうところのspinlock_irq{,save}ですね… "
- ファッション自作OSマンさんのツイート: "LinuxはそういうAPIがあるんですね.saveって何をsaveする意味なんですか?… "
- PEN🍄海猫さんのツイート: "lock cmpxchg でぐるぐる?… "
- ファッション自作OSマンさんのツイート: "しかし、flagsを保存する関数のサフィックスがirqsaveなのはちょっと違う気がする。歴史的な命名だとは思うけど。masksaveとか。"
- Man page of SEM_OVERVIEW
- SODA Noriyukiさんのツイート: "先月、自前のロック作ったばかりなんだよなあ(といってもmutexと条件変数で作った)。 なんかLinuxのmutex/rwlock/POSIX semaphoreを生で使うと、公平性に難が出る(数~数十秒、特定のスレッドがロックを独占する)例に遭遇したんだよねえ。SolarisやNetBSDだとそこまで不公平にはならないんだけど。"
- SODA Noriyukiさんのツイート: "もちろん、元々の主旨(ふつうはシステムの提供するロックを使え)には全く同感。 最適化についても、速度に問題が出て、プロファイルでボトルネックを特定してからでいいよね。とはいえ、O(N^2)以上のコストがかかるアルゴリズムとかは使わないように最初から気をつけて書いたほうがいいけど。"
- まさみさんは語りたいさんのツイート: "libc由来のゆらぎなのかなあ?それともスケジューラがおかしいか。いずれにしてもmutex使ってるなら問題ないのでは。自前のspinlock(lock xchg)でなければ・・・・。… "
- SODA Noriyukiさんのツイート: "自前実装カーネルとかならともかく、いつCPUを失うか分からないuserlandで自前spinlockとかダメダメですよねえ。 原因がどこか全然調べてないです。1000行くらいの再現プログラム(もっと削れるけど、対処を優先してたので削ってない)はあるから、どこかに晒したほうがいいのかしら。… https://t.co/ydUpxMjhaJ"
- 中村 実さんのツイート: "POSIX mutexはもともとfairnessを無視する機構ですが、POSIX semaphoreにはfairnessに関する仕様上の規定があるような。 https://t.co/7MPUSV90Tu 私が昔調べた範囲ではLinuxのPOSIX semaphoreも守っていたはずです。… https://t.co/yhbdmI3Oom"
- NAKAMURA Minoru's Diary (2013年8月)
- 中村 実さんのツイート: "と思ったら、さらに昔の日記ではLinux上のPOSIX semaphoreがunfairな挙動をしていると自分でも書いていた。 https://t.co/RXeSd64RFm… "
- NAKAMURA Minoru's Diary (2007年9月)
- NAKAMURA Minoru's Diary (2004年4月)
- まさみさんは語りたいさんのツイート: "Linuxカーネル内のロックの選び方はかなり簡単で、割り込み延長の場合はspinlock、それ以外はmutexが基本。"
- まさみさんは語りたいさんのツイート: "基本以外のロックについては、それぞれの動作が理解できていないなら使わないで! seq_lock/rcu/rwlockとかね。"
- まさみさんは語りたいさんのツイート: "ロックより寧ろメモリバリアをどの場面でどう使うかとかの方が難しい。まあ、基本的には並列性が気になったらatomicを使うこと。"
- FreeBSDのread-mostlyロックのソースコードを読んでみた - Qiita
- このコード、オシャカルトっ!さんのツイート: "φ(..)メモメモ ロックの初期化時にsleep可能か設定して、設定に応じて内部でのロックの取り方が変わる仕組みなんだ。 FreeBSDのread-mostlyロックのソースコードを読んでみた on @Qiita https://t.co/25iu1dOkqS"
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「公平なロックわかった。賢いな。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「あとで実装してみよ。実用的にはticket lockingで良い気もするが。」 / Twitter
- mumumuさんはTwitterを使っています 「The lock holder and the lock waiter pre-emption problems:nip them in the bud using informed spinlocks (I-Spinlock) [EuroSys '17] VMM環境でLockホルダーが動くvCPUのプリエンプトによるマルチスレッドAppの性能悪化を防ぐため,逆に残りのTime sliceが不十分なvCPUにLockをとらせない.」 / Twitter
- mumumuさんはTwitterを使っています 「Preemptable ticket spinlocks: improving consolidated performance in the cloud [VEE '13] Ticket LockがVMM上で致命的に相性が悪い(Lock Waiter Preemptionが発生)ことを指摘し,対策としてTicket Lockに(Fairnesssを考慮して)Ticket値に応じたTimeoutをもたせた. https://t.co/uxiEm5M5Dj」 / Twitter
- vee13-pmtlock-paper.pdf
- スピンロック ‐ 通信用語の基礎知識
- ロック(ミューテックス)の再入可能性:柴田 芳樹 (Yoshiki Shibata):So-netブログ
- _InterlockedCompareExchange Intrinsic Functions
- minix smpのロック実装 - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Community Blog - ファイルロックと新OFDロック
- 失敗ロック例いくつか - 兼雑記
- 並列プログラミングにおけるロックの効率的な使用 | iSUS
- www.nminoru.jp/~nminoru/data/b2con2006_nminoru.pdf
- NAKAMURA Minoru's Diary (2009年7月)
- Linuxカーネル4.2リリース | OSDN Magazine
- 分散ロックという名の過ち - Software Transactional Memo
- JavaScriptでデッドロックを作ってみた - Qiita
- Linux Kernel: rtnl_mutex を長時間 ロックして刺さった状態を観察する (2) with bpftrace - hibomaの日記
- Linux Kernel: カーネルモードで CPU 掴んでるタスクのバックトレースをとりたい - hibomaの日記
- Apple M1の参照カウントは本当に速いのか - yamasaのネタ帳
ロックフリー
- C言語で苦しむロックフリー入門(仮
- Lock-freeとWait-freeアルゴリズム - Wikipedia
- 64-bit Lock-free queue implementation | Syoyo Fujita's Blog
- Xbox 360 と Microsoft Windows でのロックレス プログラミングの考慮事項
- Fadisさんのツイート: "メニーコアを活かせるプログラミング、極めて有用なロックフリーデータ構造やそれに用いられる手法が特許おさえられてる事が多くて、分かってても残念な実装にする羽目になる事が稀によくある"
- 冬のLock free祭り safe
- Compare-and-swap - Wikipedia
- Lock-Free Algorithm, CriticalSection, IHostCrst - NyaRuRuが地球にいたころ
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「ロックフリーアルゴリズムで使う不可分操作 Compare-And-Swap (CAS) をデッドロック発見器でモデル化してミューテックスを作ってみた.2つのスレッドが同時にクリティカルセクションに入らないことが(よく見ると)わかる.右の方を見ると,スレッド Q が果敢に挑戦している.涙ぐましい…(T_T) https://t.co/gpIe6kCe5M」 / Twitter
- FadisさんはTwitterを使っています 「ロックフリーなデータ構造を実装する上で難しいのは実装すること自体じゃなくて、特許を回避する事だと思う」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「Iock freeやobstruction freeは用語の付け方が変な気がするな。系全体のライブロックフリーとデッドロックフリーならわかる。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「wait freeも、プロセスがライブロックしないか、あるいは弱い公平性が担保されたlock freeアルゴリズムだけど、waitが全く無いわけじゃない。名付け方が謎すぎる。」 / Twitter
- ꧁༻Юуки༺꧂公式アカウント❄️さんはTwitterを使っています 「ロックフリーはハザードポインタが必要な時点で負けてる感があるな」 / Twitter
- mumumuさんはTwitterを使っています 「SPECK: a Kernel for Scalable Predictability [RTAS '15] マルチコア環境でのOSのPredictabilityを向上させるために,Kernel ObjectをLock-lessなデータ構造に置き換えた話.Radix Trieとか本で見たデータ構造がでてきて感動したが,完全に理解できたかというと微妙.自前のComposite OSで実装してる」 / Twitter
- An introduction to lockless algorithms [LWN.net]
楽観的並行制御
- ogiwaraさんはTwitterを使っています 「ここ10年間でトランザクションのスループットが100倍になってるんですね」 / Twitter
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@designpatterngf 何が効いているんですか?」 / Twitter
- ogiwaraさんはTwitterを使っています 「@zacky1972 元々、ロックを一元管理するデータ構造(Hash tableなど)が当たり前のように使われててかなりキャッシュのパフォーマンスが良くなかったんですよね 今はそういったデータ構造を使う事はタブーとなっています」 / Twitter
- ogiwaraさんはTwitterを使っています 「@zacky1972 楽観的並行制御、という方法によってreadする時にはlockを取らないようにする、というのが主流になったのも一因ですね」 / Twitter
ベクタークロック
- ベクタークロック - Google 検索
- ベクトルタイムスタンプ - Google 検索
- ベクタークロックと競合検査 - uchan note
- データ競合(data race)と競合状態(race condition)を混同しない - Qiita
- Efficient on-the-fly data race detection in multithreaded C++ programs - IEEE Conference Publication
- FastTrack: efficient and precise dynamic race detection: Communications of the ACM: Vol 53, No 11
futex
- Man page of FUTEX
- Man page of FUTEX
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「Linux では条件変数は futex で実現されている.面白いことに cond_wait は mutex_unlock; futex_wait; mutex_lock と実装されており unlock と wait は不可分ではないのにデッドロックしない.共有変数版デッドロック発見器による futex および条件変数のモデル化と分析例. https://t.co/Mz7DN4NzOf」 / Twitter
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「デッドロックしない秘密(?)は futex が参照する共有変数にある.モデルはここに置いた. https://t.co/ytoAPMjbtJ」 / Twitter
- m_prod_cons_futex.ml
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「不可分じゃないとなぜいけないのかという例はこっち. https://t.co/UIpAxNVXWz」 / Twitter
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「生産者・消費者問題.セミナーで作るデッドロック発見器を使った例.条件変数の wait はミューテックスのアンロックと待ちに入る動作が不可分とされているけど,試みにこれを分離した条件変数を作って入れ替えてみるとデッドロックする.分離した2つの操作の間でもう1つのスレッドが動けるため. https://t.co/rMd1D3YPuC」 / Twitter
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「送受信するデータ量がバランスしていなくて,最終的にデッドロックする例. https://t.co/GSeTKQagV7」 / Twitter
Ticket lock
- Ticket spinlockメモ φ(.. )メモシテオコウ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- Ticket lock - Wikipedia
- Microsoft PowerPoint - 3Sync [äº™æ‘łã…¢ã…¼ã…›]
TSX
TSX
- とよしまさんはTwitterを使っています 「CPUのほうのTMはその後どうなったんだろ。出す時はハード屋の出す数字で盛り上がってたけど、その後コア増えまくりなのにソフト屋さんから評価とか出てないような。」 / Twitter
- とよしまさんはTwitterを使っています 「STMはそれなりに流行ってるのになぁ。 やっぱCPUのTMは適用しずらいからかな。プログラミングモデル変えて書き換え変えないといけない上に大きな塊で書き換えないと効果薄いし。自分なら大きなライブラリ内で対応・非対応コードをメンテとかやりたくない。しかもスレッドに関わる部分でとか。」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@toyoshim TM のそもそものメリットの1つが雑に書いても結構性能が出る(共有変数の細かいロック制御がいらない)だと思うのですが,マルチスレッドのプログラミングをしてる人は大概玄人でそう言う意味での需要があまりないという点はあるのかなと思っています(昔はまじさんに言われたことでもあるのですが)」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@toyoshim あとは,「現状の」ハードウェアの TM 実装が Intel/IBM ともに結構制限がきつくて,一定以上の長さのトランザクションは扱えないとか,デバッグ機能が貧弱すぎて原因がさぐれないというのも大きい気がします.というか,共同研究先で学生さんが今デバッグ機能がまともになくて泣いています…」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「@r_shioya @toyoshim ホントに素人がコンテンション気にせず書くとロールバックしまくりで遅くなるわけですしねえ。STXは期待してたのにメルトダウン高速化のためにしか使われてないぞっていう悲しさ。。趣味とCTFで遊んだことありますけど、デバッグしんどいですね。。SDE使えばマシなんだったか」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim たしかに本当に何も知らない人が気軽に書いて使い物になるわけでもないですしね… メルトダウンとかに使われているのは,最初みたときは,ただでさえあんまり使われてないのにこれはサポート切られる流れになるんじゃと暗い気分がありました…」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim 簡単にできる系だと広義にはスクリプト言語一般なんかも入るんですかね.ただ,TX の場合はマルチスレッドのプログラミング自体がそもそも一般にはあんま行われないというのがまず課題?な気もします.」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim はまじさんが書かれている glibc のって lock elision を使うやつですよね.これに関しては適切にロックで書かれているマルチスレッドのプログラムであればあんまり副作用なく機械的に置き換えられて,はまれば速くなって良いはずとは思うんですけどそんなに使われていないのですかね.」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「@r_shioya @toyoshim 正直全てを忘れたのですが、 HLE vs RTM という意味で lock elision と言われてるのであれば、 RTM の方を使ってるはず?当時流通具合を眺めてた時のスライドが出てきました https://t.co/q4dEM0myBI 最後のページに僕の記憶にあった「簡単なケースでは速くなってた」、がありますね」 / Twitter
- TSX - 使いかたいろいろ - glibc の pthread_mutex_t
- R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim てっきり HLE の方だと思っていたのですが,RTM でソフトウェア的に実装するものだったのですね. 最後のページのものについては「クリティカルセクション内でN個のうちM個のカウンタをランダムに選んで更新…」とかだともうちょっといい感じになってたかもと言う気はするのですが,なんともですね.」 / Twitter
- R. ShioyaさんはTwitterを使っています 「@shinh @toyoshim なんだかんだシングルスレッド性能がまだ上がり続けているので今のところは良いのでしょうけど,いずれそれが止まってしまった時にはみんなでマルチスレッドやってツケを払うような不幸な時代になってしまう事もあるんだろうかなと言う気もしました.」 / Twitter
- Intel、TSX対応で約6倍に性能が向上した「Xeon E7 v3」 - PC Watch
- 北森瓦版 - “Haswell”のTSX命令にエラッタが発見され、無効化される処置がとられる
- 北森瓦版 - TSX命令のエラッタは“Broadwell”世代で修正される模様
- 20140906
- 20150912
- 20150509
- 20140823
- Haswell世代のCPUにエラッタが見つかる、Haswellの新機能「TSX」を無効化へ | スラド IT
- トランザクションメモリのサポートが明らかとなったIntelのHaswell (4) トランザクションメモリをサポートするハードウェアを推測 | マイナビニュース
- トランザクションメモリのサポートが明らかとなったIntelのHaswell (1) マルチプロセサにおけるロックの必要性 | マイナビニュース
- Intelの次世代Core「Haswell」のトランザクションメモリを読み解く(前編) | マイナビニュース
- Hiromichi Itouさんのツイート: "うーむ セキュリティ最優先な顧客にはTSXを無効化する手段を提供しないとダメかもなー あとTSX登場時には、すでに指摘があったのね https://t.co/4dpFUKjZq1"
- TSX improves timing attacks against KASLR | Bromium Labs
- scivey/xact: multi-way atomic compare-and-swap with x64/TSX
- Restricted Transactional Memory の概要
- Intel TSX について x86opti
- TSX - TSX RTM
- Haswell のトランザクション同期 | iSUS
- intel64-ia32-architectures-optimization-manual_Jul2013(248966-028JA)_Chap12.pdf
- ASCII.jp:Haswellで導入された新機能「TSX」とは? IDF 2012より (2/4)
- Haswell の TSX 機能にエラッタが発見される - 教育は参考ブログ
- yohさんはTwitterを使っています 「Intel TSX-NI https://t.co/SRl6EEGujc まじで死んでた SDMからも消えたのね」 / Twitter
- Transactional Synchronization Extensions - Wikipedia
- TSX は cmpxchg のかわりに使えるか? - Fixstars Tech Blog /proc/cpuinfo
Wikipedia
- モニタ (同期) - Wikipedia
- ミューテックス - Wikipedia
- クリティカルセクション - Wikipedia
- 排他制御 - Wikipedia
- 同期 (計算機科学) - Wikipedia
- 競合状態 - Wikipedia
- ビジーウェイト - Wikipedia
- テスト・アンド・セット - Wikipedia
- スピンロック - Wikipedia
- イベント (プログラミング) - Wikipedia
- 不可分操作 - Wikipedia
- セマフォ - Wikipedia
Twitter
@uchan_nos
- OS作れないマンさんのツイート: "Linux Weekly News の "What is RCU, Fundamentally?" で勉強しよう https://t.co/Ern7KS6QJd"
- OS作れないマンさんのツイート: "Sleepable RCUとかあるのか。奥が深い。"
- OS作れないマンさんのツイート: "CONFIG_PREEMPTが定義されていない場合、カーネルコード実行中は明示的にSleepしない限りタスクスイッチが起こらないからsynchronize_rcuがうまく動くのか。"
- OS自作したい。技術書典6・う38さんのツイート: "Goならわかるシステムプログラミングの話。同期と非同期、blockingとnonblockingは直行する概念?selectは確かに通知が来ない間はブロックするからブロッキングなのは納得するとして、非同期なのか?本文での「非同期」の説明「入出力準備ができたら通知をもらう」に従うと、まあそうなのかな…… https://t.co/oK4WnKSdXK"
- OS自作したい。技術書典6・う38さんのツイート: "多分この違和感は「非同期」の認識の違いに起因するんだな。非同期って言うと、ある処理をOSに依頼しつつ、自分は別の処理をする、という感じがする。selectは、OSに頼んだ複数の仕事の完了を待つ感じなので、仕事が複数になっただけで、あくまで同期処理な気がするんだ。"
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「@uchan_nos 前提としては,そのatomic変数を共有メモリ上で共有していて,かつatomic性が保証されている必要があります。なのでたとえば,共有メモリでのatomic性を一般には保証しない分散処理をしていると前提が容易に崩れます。」 / Twitter
- yohさんはTwitterを使っています 「@uchan_nos FYI: https://t.co/ocoKLlkO3f "The execution of a program contains a _data race_ if it contains two potentially concurrent conflicting actions, at least one of which is not atomic, [...]" でした」 / Twitter
- [basic]
スピンロック
- Livaさんのツイート: "アトミック命令のコストによって、スピンロックの性能は変わるなぁ。もうちょっとちゃんと検証しないと #liva_notebook"
- Livaさんのツイート: "gcc builtinで書けば、__sync_fetch_and_addが使えるならそれを使うのが一番はやくて、__sync_lock_test_and_setがそこそで、__sync_bool_compare_and_swapはとても遅い #liva_notebook"
- Livaさんのツイート: "たぶんアーキテクチャ依存だから、silvermontがそう、というだけの話なのだけども #liva_notebook"
- Livaさんのツイート: "silvermont(但し1チップの中に64コア詰まってる)"
- Livaさんのツイート: "O2つけただけでがクラッシュする問題、結局アラインメントと適切なvolatileが不足してたオチっぽい #liva_notebook"
- Livaさんのツイート: "スピンロックを実装する時は、いろんなループにasm volatile("":::"memory");を挟んで最適化を抑制しないといけない。何時も忘れる。 #liva_notebook"
- Livaさんのツイート: "ほんの些細な排他制御のミスがあるお陰で、12コアでは動いても256コアでは動かない問題アゲイン"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「一昔前に、Linuxカーネル開発者「スピンロック使うな」、DB屋「性能に必要」という論争があった記憶…スケジューラ周りの合理的な挙動変更なのにDB側スピンロックだけ性能低下、みたいなコンテキストだったかな。 https://t.co/PGVny5T4Ia」 / Twitter
- 立木のポーズ界のカリスマさんはTwitterを使っています: 「スピンロックしてる間にスケジューラによってプリエンプションされるケースというのは普通に起こるのでそういう場合にMCSキュー内での追い越しを許容してスループットを高めるスケーラブルなスピンロックCST-Lockというものがあってですねっていう話を期待されている?」 / Twitter
- reroさんはTwitterを使っています: 「@kumagi 普通のスピンロックだとNUMAのとき不平等になりそうとか、最悪時間が予測できんとかデメリットもありそう。割り込みとポーリングとかだと違う話になるかもしれんけど。」 / Twitter
- 立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian NUMA向けに改良されたスピンロックも結構研究されてます。Lock Cohortingあたりでググると良い入り口になるかと。」 / Twitter
- reroさんはTwitterを使っています: 「@kumagi 同一NUMAノード内で待ち行列を作って、待ち行列先頭がグローバルロックを取る。待ち行列が尽きるまでグローバルロックを離さないことで、NUMAノード間での頻繁なロック切り替えを抑制して整流するみたいな感じかな?」 / Twitter
- 立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian そんな感じです。MCSでRW-Lockとか亜種がたくさんあります。」 / Twitter
- reroさんはTwitterを使っています: 「@kumagi NUMAノードが3個以上の場合はグローバルロックでも待ち行列を作るのかな?って書いてて思ったけど、これトークンリングっぽいので障害とかに弱そう。」 / Twitter
- 立木のポーズ界のカリスマさんはTwitterを使っています: 「@rero_carnelian 一般にNUMAでもマルチコアでもどれかのコアやソケットが壊れる系の障害は潔く諦めています。」 / Twitter
- reroさんはTwitterを使っています: 「@kumagi なるほど、そうなのか…」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi スケジュールされるんだったらspinlockじゃないような気がする(実装をミスっている?)んですが、ユーザ空間で実装する人はそういうのも含めてspinlockって呼んじゃうんでしょうか?個人的にはSCHED_FIFOみたいな完全オレオレ制御RTタスクだけが使うものかと思っていましたが・・・。」 / Twitter
- 立木のポーズ界のカリスマさんはTwitterを使っています: 「@mhiramat 何をスピンロックと呼ぶかに流派があるっていう話ですかね。インメモリDBの文脈でユーザ空間でスピンロックする人などは割と普通にそういう実装使いますよ。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi おお、そうなんですね!ユーザ空間でspinlockは実装できるけど、個人的には普通のアプリでは全く無意味だと思っていました。(意味があればlibcなどで定義してそうとか)」 / Twitter
- 立木のポーズ界のカリスマさんはTwitterを使っています: 「@mhiramat 大学の授業でpthread_mutexと自作スピンロックで簡単なベンチマークをやったような覚えがあります。速度のためならスピンロックという選択肢は割とよく有ります、1桁ぐらいは性能が違ったはず。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています: 「@kumagi クリティカルセクションのサイズの問題はありますが、システムコールするとしないとでは大違いですからね。ただ、不平等性などが発生する可能性はユーザが受け入れるか対策すべきという話ですかね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@mhiramat 探してみると、この辺の話ですね。 https://t.co/4i4ZQ7Ivgq」 / Twitter
- 怒りのLinus――メンテナにかんしゃく玉爆発(1/2) - @IT
排他制御
- ロックフリーのkumagiさんのツイート: "そうなんです、排他処理の話をするときにすぐに「ロックの実装にはTestAndSetやCompareAndSwapみたいなread-modify-write命令が絶対必要」って誤った知識をばらまく不勉強な人が大学教授にも散見されるのでこの季節は警戒が必要です。"
- ロックフリーのkumagiさんのツイート: "もちろんxchg命令を使えっていう意味でもないですよ。当然ですよ。"
- satさんのツイート: "排他制御 == ロック と思ってる人は感覚的にかなり多いですね… "
- ロックフリーのkumagiさんのツイート: "セマフォさんが悲しそうにこちらを見ている…… "
- Kazuho Okuさんのツイート: "ケースバイケースなんじゃないかな。例えば消費期限が短い場合に家で消費し切れないようなケースなら、奥のやつを取る方が資源の有効活用になるはず… "
- まさみさんは語りたいさんのツイート: "これ、あまり良い習慣とは言えないよね。… "
- satさんのツイート: "compare and swap: スーパーで自分の手に取った牛乳を陳列棚の奥のほうにある賞味期限が長いものと交換してカゴに入れること"
- まさみさんは語りたいさんのツイート: "極端に消費期限が短い場合はそうですね。牛乳とかは微妙かな。うちでは消費速度が一定していない気がする。… "
モデル検査
histric
- Kazunori Iriya さんはTwitterを使っています: 「でけた。セミナーで学んだイベント同期による相互作用のモデルの説明に出てきた並行合成の例を自分のコードでも再構成できた! 左がお手本、右が自分のコード。イベント同期まだ一部しか実装できていない。ぼちぼち実装していこう。これまでのソースはこちら。https://t.co/0MBgOGLKUT https://t.co/FdP7l8QZUk」 / Twitter
- composition_prep.js
- いけべさんはTwitterを使っています: 「Mutex をプロセスで表現する。 Free 状態では lock イベントに応答して Locked に遷移し、逆に Locked 状態では free イベントに応答して Free 状態に戻る。 https://t.co/wLqMiqQF8a」 / Twitter
- いけべさんはTwitterを使っています: 「この Mutex と協調して共有メモリープロセスを触る Muter プロセスを定義する。 lock を提示してから共有メモリーに read を投げ、得られた値に 1 を加えて書き戻す。そして free を提示する。 https://t.co/RPiHoV3WlS」 / Twitter
- いけべさんはTwitterを使っています: 「ここで二つの Muter プロセスを(同期イベントなしで)並行合成する。すると非常に大きな遷移を持つプロセスになる。(一方のプロセスから他方のプロセスの全状態に遷移しうるので、組み合わせで巨大になる) https://t.co/UJNcwkOgDk」 / Twitter
- いけべさんはTwitterを使っています: 「お互いの提示するイベントに関心のない Mutex プロセスと共有メモリープロセスも並行合成する。 ロックされていない状態でも書き換えを受け付ける(!) https://t.co/ua562xSLFL」 / Twitter
- いけべさんはTwitterを使っています: 「ここで並行合成した二つのプロセスを、 lock, free, read, write を同期イベントに指定して並行合成する。 すると、結果はご覧のとおり。 ふたつの Muter は他方が lock を取って読み書きする間お行儀よく待つようになる。遷移の可能性は極端に少なくなり共有メモリーには無事 2 が書き残される。 https://t.co/NSbA3bgdlY」 / Twitter
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「共有変数(共有メモリ)とロック・同期機構を組み合わせて作るマルチスレッドプログラミングは難しいけど,メモリを共有しない非同期メッセージングを主体としたプログラミングもまた難しい.つまり難しい…」 / Twitter
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「いずれにせよ,詳細化検証を体験すると大きく認識が変わると思うのだけど,ギャップがあるので,まずは振る舞い全体の可視化からはじめて,ゆっくり段階的に進めるという感じです…」 / Twitter
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「非同期メッセージングをプロセス・スレッド間相互作用とするシステムの検証は、仕掛り的な中間状態が多くて比較的難しい。」 / Twitter
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「共有メモリと同期機構を組み合わせたマルチスレッドプログラミングでは、デッドロックや安全性、ピンポイントのライブネスのようなものは検証しやすいけど、観測対象をうまく選べなくてなんというかある範囲の振る舞いを網羅するような正当性検証が難しい。」 / Twitter
- hatsugai ⊑ 炭水化物エンジンさんはTwitterを使っています: 「状態空間を状態変数で規定する状態ベース仕様のための Alloy が欲しい。てか、状態状態うるさい。Z3 でつくるか…」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「マルチスレッドプログラミングにコードレビューとテストだけで臨むのは厳しい.(広義の)モデル検査はテストでは見つけることが難しい問題を発見できるので設計を支援する強力な武器になる.道具として役に立つだけでなく,使い方を学ぶこと自体が設計力をつける訓練になる.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「モデル検査で使われる表現形式はプログラミング言語よりも抽象的なレベルで動作や性質を記述できる.単なるお絵描きとは異なり「動く」ので強くフィードバックがかかる.システムを抽象的に表現し理解を確認・共有できる.これにより品質保証だけでなく設計の選択を広く素早く検討することにも役立つ.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「スレッドのコードを書いてる(レビューも)ときは全体のことを想定しているつもりでも,実際には想定しきれないほど組み合わせ状態がある.視覚的に見ればわかる.200行程度のコードでそれが確認できる.するとその上でどう検証すればいいかという可能性が見えてくる.そしてステップアップできる.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「プロセス代数 CSP (Communicating Sequential Processes) の表示的意味論と操作的意味論のトレースモデル上での等価性証明を公開した.Isabelle/HOL 2014 による.構文は CSP-Prover に合わせてある.領域は Isabelle のライブラリにある完備束を使用. https://t.co/sppc98Cz82」 / Twitter
- hatsugai/CSP-semantics
- hatsugai@PRINCIPIAさんはTwitterを使っています 「CSP の詳細化検査ツール SyncStitch で使っている主要なアルゴリズムはほぼすべて Isabelle で証明した. - 表示的意味論と操作的意味論の等価性 - 操作的意味論上で定義した表示での詳細化関係と弱模倣存在の等価性 - 発散検出アルゴリズムの正当性 証明していないのは安定失敗のとこ.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「通信するシステムの仕様を表現し検証するためには、視点をシステム内部の状態から外部との相互作用に移す必要があります。新しい視点と表現形式の獲得、これがポイントです。「並行システム?関係ない」と思うかもしれませんが、いまや通信しないシステムはほとんどありません。おすすめの技術です。」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「プロセスは同期可能なイベントを外部に提示する.条件が揃うと同期が成立する.イベントを提示してから同期が成立するまでには時間があるので,その間にもプロセスは内部的に動作する可能性があり,結果として提示しているイベントが変わることがある.イベントが同じでも遷移先が変わることもある.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「マルチコア・マルチスレッドプログラム,組み込みシステム,複数の相手と通信するプログラムなどにはこういう振る舞いが含まれている.問題はどう検証するか.特にテストで再現しにくいとき.問題に気づかないかもしれない.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「デッドロック発見器(イベント同期を基本相互作用とする並行合成器)をつくるセミナーは明日土曜日開催です.いまのところ再演の予定はないので興味がある人はできればこの機会にどうぞ.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「共有変数版デッドロック発見器では合成するコンポーネントと合成した後のシステムで遷移系の形が違うので,合成は1回しかできない.これに対してイベント同期版では同じ形なので多段階に合成することができ,大きなシステムを段階的に構築できる(閉包性).」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「さらにイベントを観測するという考えに基づいて2つの遷移系を比較することができる.まずは発生しうるイベントを時間的な順序で並べたトレースを比較するトレース比較器に進化させる.これにより安全性を検査することができるようになる.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「トレースはシステムの振る舞いの表現としてよく使われる(プロトコルとかログとか)けれども,振る舞いを識別する精度という点では少し粗い.同じトレースを生成できるシステムは必ずしも交換可能にはならない.なぜならトレースでは非決定性を表現できないから.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「トレース比較器をさらに進化させて,非決定性も含めて比較できる,より精度の高い比較器を作ることはできる.ただ,あまり直感的ではないので,これについては先に既存ツールを使いながら理解を組み立てたほうがいいように思う.作ることが特に難しいというわけではない.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「目的はプログラムの設計段階でささっと抽象的なモデルを書いて検査して,確信を持って実装することにある.プロトタイプよりも早く書けて,より確実に問題点を明らかにする.道具なのでうまく使いこなすにはしくみの理解と練習が必要だということ.そのために自分で作ってみようという話.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「自分の能力を増幅してくれる道具は1度手にしたらもう手放せない.いままで見えなかったものが見えるようになり,できなかったことができるようになる.」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています: 「表現形式というのはそれだけで力を持っている。表現が手に入るとさらにその上での操作という武器が手に入る。さらにさらに問題の傾向と対策がレシピあるいはヒューリスティクスとして整理できる。つよい。」 / Twitter
- hatsugai@PRINCIPIAさんはTwitterを使っています 「トレース比較器で使うアルゴリズムの基礎になる定理を Isabelle で証明した.非決定的な遷移系 P と決定的な遷移系 Q の間に非対称な弱模倣が存在すれば P のトレース集合は Q のトレース集合に含まれる.単に非決定的であるだけでなく内部遷移がある. https://t.co/aslrTzxJ4y」 / Twitter
- hatsugai/simulation_traces: Formal proof by Isabelle/HOL: Existence of asymmetric weak simulation between a deterministic transition system and a nondeterministic transition system implies the inclusion of traces.
histric-1
- 中村 実さんはTwitterを使っています: "POSIXのread-writer lockがwriterがブロックされた後に、後参のreaderがロックを獲りにいった場合にロックを獲れるかブロックされるかは実装依存なのね。 https://t.co/o7mtqLE4K0"
- Urabe, Shyouheiさんのツイート: "@yukihiro_matz 結局イベントループで使おうかと思うとブロックする箇所はepollなりkqueueなりの一箇所に集中してくれないと困るわけで、そうなってくるとkqueueのように「なんでも待つ」というAPIにしてくれたほうが使う側は便利です。というかepoll不便。"
- shinichiro hamajiさんのツイート: "こさきさんの言う通りlinuxはなんでもfdて思想なんだろうしepoll不便はイチャモンすぎない…というのはともかく、linuxの方向性としてはuserlandで新fd種を定義できると良かったりするのかなぁとかそういう https://t.co/2Ucw8Venq3"
- Rui Ueyamaさんのツイート: "@kumagi さすがズバリ。"
- The Art of Multiprocessor Programming - 第七章前半
- 第6章 カーネル
- Rui Ueyamaさんのツイート: "前回はカーネルスレッドのレースコンディションで猛烈に大変なデバッグをするはめになったから今回はロックじゃなくてチャネルと通信を使って同期するようにしよ。もうあれはこりごり。"
- satさんのツイート: "@yutakakn Cというかlinuxカーネルにはseqlockという楽観的排他の実装があります。read側はとりあえずロックかけずにデータを参照して、データが更新されていることを事後に確認したらやり直し"
- Fadisさんのツイート: "ハザードポインタ、少なくともx86においてはポインタ長の倍の長さのCASの登場によってどうしても欲しい代物ではなくなったんだよな"
- ABA問題 - Wikipedia
- Kazuho Okuさんのツイート: "auto fiberより、基本関数呼び出しは同期オブジェクトを返して、そいつをjoinすると結果が返るみたいなのが好き。そうすればselectみたいにreadとwriteとか文脈ごとに待ち受けコンテクストを用意する必要なくなるし"
- SODA Noriyukiさんのツイート: "実は最近公平性で問題が出てticket lockで一旦は解決したんですが https://t.co/Qf0VqKKRAC ticket lockの場合、負荷をかけるとこの条件変数待ちでグルグルCPUを消費するという問題がでて、結局 @yamasa さん式の奴 https://t.co/1HqQbQOQ1O で解決しました。… https://t.co/Hq1Ulxdqzn"
- Fadisさんのツイート: "ロックフリーとか頑張っても性能が出るかはアクセスパターン次第だからな。たくさんのスレッドがつつくリソースを高速に捌くためにまず検討すべき事は「それって本当に共有する必要があるの」だよ"
- 汎用kumAGIさんのツイート: "「STMの設計と進化」も同様にslideboomにしか置いてなかったっぽいのでdropboxに上げ直し。内容は古いけどSTMの研究するならスターターセットとしてオススメしたい資料。 https://t.co/8CpBiHBBY4"
- STMの設計と進化_.pptx
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopy/IPMsgの自作condは、broadcast相当しか用意してないなぁ。 (一つのcondで待つスレッド数は最大2~10程度) そろそろ、XPは完全切り捨てして Win32 CONDITION_VARIABLE(長い!)を使った方が良いかな。… https://t.co/B56vN00rwY"
- SODA Noriyukiさんのツイート: "多コアで broadcast はアカンので signal 推奨じゃないかと思います、たぶん。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "よく考えたら、VS2017なら(C++11以降で導入された)std::condition_variable が使える?(XPでも)"
- FadisさんはTwitterを使っています: 「Vulkan 1.2の規格がリリースされた。Vulkan 1.2では「Aが済んだらn増える」「mに達したらBを開始する」ができる新しいセマフォ timeline semaphoresが標準の機能に入る他、シェーダの言語にHLSLを使いやすくする複数の拡張が取り込まれる https://t.co/eRTOlp4OON」 / Twitter
- Khronos Group Releases Vulkan 1.2 - The Khronos Group Inc
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「条件変数のコーナーケースの話。 そういえば、'96年頃のUNIX系のネイティブスレッド環境利用が難しかった時代、プロセス間条件変数を自作したが、いろいろと苦労した記憶。 特にwait()=ロックを外す&眠る2操作のギャップに、notify()が実行されると永遠にwakeupせずと。 https://t.co/Ka3XdhyrGj」 / Twitter
- 条件変数とダンス(Two-Step Dance)を - yohhoyの日記
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「notifyを取り零すことなく眠る」を実現するため、sigmask交換とsleepをatomicに行えるsigsuspend(2)というsyscallを使ってようやく解決。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu pipeのwriter側への1バイト書き込みを semaphore への post reader 側からの1バイト読み込みを semaphore の wait の代わりに使うって手も… これならベル研時代のUNIX でも使えるし(ぉ post が PIPE_BUF を越えて溜まる可能性があるような応用だとまずいですが…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なるほど、普通の用途なら使えそうですね。 なお上記のinterproc-cvには、大量のメモリinodeの利用権確保用でした。=wakeup通知はそのinode開放を待つプロセス群のみwakupしたいと。 (実際の実装だと、開放側は眠りprocリストを走査&開放予定inode番号待ちのprocのみにsig送信してました)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu なるほど。ディスクリプタですから、あまり沢山作るのは避けた方が良くて、その用途だと使えそうにないですね…」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「マルチスレッドプログラミングは同期や排他制御が難しいけど、実は起動と終了も難しい。例えば準備ができる前に走り始めちゃうスレッドがいたり、誰かがゴールを見つけたのでそのことを他のスレッドに通知して終了してもらったり。」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「async/awaitによる非同期が特段に難しいだけで、スレッドモデルで考えれば並列処理そのものはそれほど難しくない。」 / Twitter
- まっちゃらさんはTwitterを使っています 「wait-free/lock-free/obstruction-freeの定義について https://t.co/TQSWWDKRt2 定義だけじゃなくて直感的理解とかリアルワールドのことも書いてあって最高に勉強になった」 / Twitter
- obstruction-free
- mumumuさんはTwitterを使っています 「Ad Hoc Synchronization Considered Harmful [OSDI '10] システムの同期プリミティブを使わないで独自に同期機構を実装することをAd Hoc Sync.と名付け,いくつかの並列プログラムに含まれるAd Hoc Sync.とそのバグ数など定量的な調査を行い,ソースコードから自動でそれらを検出するSyncFinderも実装」 / Twitter
- ytakanoさんはTwitterを使っています 「これ面白い。spin lockの利用とスレッド数、スケジューラの関係は自分の経験とも合致する。」 / Twitter
- kumagiさんはTwitterを使っています 「実ミドルウェア群に対しいろんなロック実装で差し替えてパフォーマンス比較して得られた知見から作られた、使うべきロック判定用フローチャート、これはいいな。 https://t.co/Y7HC9KzOh1」 / Twitter
スケジューラ
その他
- 今さら聞けないマルチプロセッサの基礎教えます ――キャッシュの共有,割り込みの共有,OSによる制御|Tech Village (テックビレッジ) / CQ出版株式会社
- マイクロサービスアーキテクチャにおける分散スケジューラ
- Goのワークスティーリング型スケジューラ | プログラミング | POSTD
- はじめてのにき(2017-11-03)
- ASCII.jp:基礎から覚える 最新OSのアーキテクチャー
- CoreOS Container Linuxにおいてリアルタイムプロセスを実行できない問題 - Cybozu Inside Out | サイボウズエンジニアのブログ
- マルチプロセッサのタスクスケジューリングに基づいたWebシステムにおけるコンテナのハードウェアスケジューリングのシミュレーション構想 - 人間とウェブの未来
- Google、マネージドCronサービスCloud Schedulerを発表
- GameTechDev/GTS-GamesTaskScheduler: A task scheduling framework designed for the needs of game developers.
- 3-CNF SATからpolygraphのacyclicity判定問題への帰着 - すぴすらのろぐ
- List of order theory topics - Wikipedia
- CiNii 論文 - 単一仮想記憶型OSにおける外部スケジューラの実装
- Rustのasync/awaitとスケジューラの話 / rust-async-await - Speaker Deck
- 000055579.pdf
- uchanさんはTwitterを使っています 「リアルタイムOSについて素人でよく分からないんだけど,例えばプロセスのリストをforで処理したりすると,もうそこで処理時間が読めなくて詰む,みたいなことは無いの?」 / Twitter
- KubernetesのCPU limits設定時における「不要なスロットリング」を回避する方法とは? - GIGAZINE
- Rust 自作 OS 日記/Part 5 マルチタスキング - 借り初めのひみつきち
- 詳解xv6 Scheduling 1 - うたもく
- コアを多数搭載するCPUは「POSIX」によって能力を制限されているとの指摘 - GIGAZINE
- スケジューラーと優先順位の逆転 - 借り初めのひみつきち
big.LITTLE
macOS
- 高梨陣平さんはTwitterを使っています 「素晴しい記事。M1 Macが実際よりも速く感じるのはmacOSの優れたスケジューラのため。人は複数のタスク全体のスループットよりも個々のタスクのレイテンシにより敏感。かつてLinuxのCompletely Fair Queue (cfq) I/O schedulerは全体のスループット最適化をデフォルトで優先したため却って嫌われて消え」 / Twitter
- Ars TechnicaさんはTwitterを使っています 「Apple’s M1 is a fast CPU—but M1 Macs “feel” even faster due to QoS https://t.co/DeFFXURRTF by @jrssnet」 / Twitter
- Apple’s M1 is a fast CPU—but M1 Macs feel even faster due to QoS | Ars Technica
- 高梨陣平さんはTwitterを使っています 「てしまった。m1 Macではスケジューラのpriorityが5段階、background, utility, userInitiated, and userInteractive、default存在。defaultはOSがpriorityを決定する。この時、Intel MacでもM1 Macでもこの5段階は変わらない。しかしM1ではOSはできるだけ優先度の低いタスクを遅い Icestormコアで実行」 / Twitter
- 高梨陣平さんはTwitterを使っています 「し、速いFirestorm コアをpriorityがuserInitiated and userInteractiveのタスクのために空けておく。例えば10GBの。ファイルの圧縮は実際にはM1よりもintelのほうが速い。しかしM1ではシステムがidleでもbusyでも速度がより一定になる。優先度が高いタスクでもM1 Macのほうがパフォーマンスは一定だ。」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「.@jingbay OS QoSに関係するかもですが、Appleキャッシュ系特許に QoS management in L2 (申請: 11/12)、認定 (14/04) https://t.co/flnVulXoeS Application aware SoC memory cache partitioning (19/08)、公開 (21/02) https://t.co/NzNXMBt6u0 ※SoC Fabric概要有 気になるのがいくつもあります。」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「=> Patent "QoS management in the L2 cache", Granted: Apr 10, 2014 (Dec 2011) https://t.co/HvwvITMWmN "Parallel coherence and memory cache processing pipelines", Appl, Mar 12, 2020 (Sep 2018) https://t.co/fjiDxjWY5i Memory Latency https://t.co/xKEm3pFC8u https://t.co/BhO1fyfXJU https://t.co/2WahZO7SVd」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「=> "Application aware SoC memory cache partitioning", Apple, Patent Application, Feb 4, 2021 (Filed: Aug 2, 2019) https://t.co/LWzSZFZoiI Fabric Coherence Controller SoC Switch bar I/O Switch bar Apple Patent https://t.co/pW4vSGBMGg QoS in Memory, Scalable NN engine, etc. https://t.co/aFxMVcdR5p」 / Twitter
- AppleのM1チップはタスクの処理方法を工夫することでユーザーに「処理が速い」と思わせている - GIGAZINE
- Kazuho OkuさんはTwitterを使っています 「あのm1のスケジューリングの説明、イマイチ納得いかないっていうか、フォアグランドプロセスがブロック解除したら、いきなり高性能コアで動かしてるってこと? それってバッテリ食わない? みたいな気持ち。クロックの上げ下げとかコア間のミグレーションとかそのへんの仮説棄却もされてないし」 / Twitter
- Izumi TsutsuiさんはTwitterを使っています 「bit.LITTLE みたいな symmetrical でない MP を OSはどう処理しているのか、みたいな解説ないんかな(これを低レイヤ質問室に投げればよかったのか)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@tsutsuii ググったところARM的な公式ページは Energy Aware Scheduling (EAS) https://t.co/we4UELISJa っぽい。 ここから辿れるOSPM summit https://t.co/wrBaR20QJ0 にスライドがあった。 ちゃんと見てないけど OSPM II 2018/04/18 の https://t.co/dnadJUfCTh とか詳しそう」 / Twitter
- Home of the OSPM Summit 2020
- Energy-Aware real-time task partitioning - Parallel or Sequential? - EATaskPartitioning.pdf
- suzakiさんはTwitterを使っています 「@n_soda @tsutsuii bit.LITTLE(ヘテロコア)におけるスケジューリングは興味があったので調べてみました。 2013にSamsungがDVFSを使った論文を出しています。 Power-aware task scheduling for big.LITTLE mobile processor https://t.co/l7wVWFDj25 これも決定打ではないですが。」 / Twitter
- Power-aware task scheduling for big.LITTLE mobile processor - IEEE Conference Publication
NUMA
Raphine Project
- 256コアマシン向けのOSを作る – Raphine Project<サイト製作中>
- livaの雑記帳(2016/10) – Raphine Project
デュアルソケット・ザ・ワールド
- デュアルソケット・ザ・ワールド Windows 7 で NUMA が認識されない件に付いてMicrosoftのサポートに問い合わせてみる
- デュアルソケット・ザ・ワールド NUMA (Non-Uniform Memory Access)
AMD
- Kazuho Okuさんのツイート: "コアの半分以下しか使いきれないソフトウェアだと、このほうがパフォーマンス上がるし、ゲームとかベンチ対策考えると妥当な設計な気がする / “【後藤弘茂のWeekly海外ニュース】2系統に分かれた第2世代Threadripperのア…” https://t.co/hxMq34LTSe"
- 【後藤弘茂のWeekly海外ニュース】2系統に分かれた第2世代Threadripperのアーキテクチャ - PC Watch
- 品川 高廣さんのツイート: "Linux カーネルの automatic NUMA balancing は Ryzen Threadripper 2990WX とはあまり相性が良くないんだろうか。オンにするとかえって遅くなるらしいんだが。"
RHEL
- 23.31. NUMA ノードの管理
- 第4章 CPU
- 8.2. NUMA の自動負荷分散
- 8.4. NUMA 対応 KSM (Kernel SamePage Merging)
MS
- Hyper-V 仮想 NUMA の概要
- VMM での仮想 NUMA の展開
blog
- NUMAとメモリとゲームとサーバ | ツチノコブログ
- NUMAアーキテクチャとネットワーク性能(1)-説明編 - SSD情報
- NUMAアーキテクチャとネットワーク性能(2)-実践編 - SSD情報
- SQL Server と NUMA at SE の雑記
- [パタヘネ:読書メモ]第7章 マルチコアとマルチプロセッサとクラスタ
- VMworld 2014速報: Breakout Session 【vSphere / vCenter Operations Manager】編!! - Japan Cloud Infrastructure Blog - VMware Blogs
- NAKAMURA Minoru's Diary (2013年2月)
- NAKAMURA Minoru's Diary (2013年6月)
Wikipedia
- NUMA - Wikipedia
- Non-uniform memory access - Wikipedia
- NUMA 向けのアプリケーションの最適化 | iSUS
- MCAPI事例: マルチコア設計におけるCPU間通信 - Mentor Graphics
- Microsoft PowerPoint - Arakawa-20110715.ppt
- matsutani_kyushu2008.pdf
- KeyStone マルチコア DSP トレーニング | デジタル・シグナル・プロセッサ | TI
- Topic cloud/ja - NAIST Ito-Lab - ITS, Mobile and Cloud Computing
- Microsoft PowerPoint - shohei-g.poster.pptx
- マルチコア組み込みシステムの挙動、
- タダ飯を食わせろ
- C02.pdf
- Slide 1
- qemu/KVM を実行してて、Auto NUMA Balancing と ksm の食合せが悪い場合のワークアラウンド “ echo 0 > /proc/sys/kernel/numa_balancing” もしくは ksm を停止 - hiboma のコメント / はてなブックマーク
- HPCシステムズ HPC Do It Yourself Clubへ
- FadisさんはTwitterを使っています: 「NetflixがFreeBSDのカーネルのネットワークスタックを改良したらEPYCでの帯域が3倍になった話。200Gbpsでデータを吐き続けるサーバにとってNUMAノード間をデータが往復するのは許容できないオーバーヘッドらしい https://t.co/U049CYwMeo」 / Twitter
- Netflix Optimized FreeBSD's Network Stack More Than Doubled AMD EPYC Performance - Phoronix
- FadisさんはTwitterを使っています: 「ネットワークガチ勢は皆カーネルを迂回すると思っていたけど、カーネルを魔改造する一派も居るんだな」 / Twitter
- FadisさんはTwitterを使っています 「NUMAなマシンでは、プロセスが使用するメモリとプロセスを実行するプロセッサを同じノードにしておかないと性能ガタ落ちだから、Linuxカーネルは新しいスレッド(=現在のノードのメモリを共有する)を可能な限り同じノード内のプロセッサで動かすような割り当てを行う筈」 / Twitter
- FadisさんはTwitterを使っています 「@ipv6labs cgroupsのcpusetを使うと、特定のグループのプロセスが使って良いプロセッサを制限できます。確かnumactlに--physcpubindをつけた場合裏でこれを設定していた筈。」 / Twitter
Processor affinity
- プロセッサ親和性 - Wikipedia
- Processor affinity - Wikipedia
- Tech TIPS:Windowsでプログラムの実行に使用するCPUを限定させる(プロセッサアフィニティマスクを設定する) - @IT
- Linux - CPU プロセッサアフィニティ(親和性)の設定! - mk-mode BLOG
- プロセスへのCPU割り当てについて
- DO’s&DONT’s #14: 絶対にやってはいけないこと – ひとつの CPU に対して affinity mask と affinity I/O mask の両方を ON にする – Microsoft SQL Server Japan Support Team Blog
- 25.6. KVM プロセッサーアフィニティの設定
- CPU/Processor Affinity - SyncHack
- 北森四葉さんはTwitterを使っています 「Ryzen Threadripper 3990X、Processor Groupの問題が取り上げられてるな https://t.co/yksMCIxRB4」 / Twitter
- The Windows and Multithreading Problem (A Must Read) - The 64 Core Threadripper 3990X CPU Review: In The Midst Of Chaos, AMD Seeks Opportunity
- Usagi Ito 👩💻 High-tech Hermit 🧙♀️さんはTwitterを使っています 「なるほどWindowsだと見えるコアが64を超えるとアプリ側で特別変態的にアフィニティー制御を入れて作ってない限り悲しい事になるのね。」 / Twitter
- 北森瓦版 - Ryzen Threadripper 3990Xが解禁される
- Windows 10 Proは128スレッドのAMD Ryzen Threadripper 3990Xを処理できない - 自作ユーザーが解説するゲーミングPCガイド
- Windows10+Ryzen Threadripper 3990X問題について整理してみる - 自作ユーザーが解説するゲーミングPCガイド
Tickless カーネル
Twitter
- ゆたかさん🐬さんのツイート: "ticklessカーネルだと、1ミリ秒ごとにタイマ割り込みが動かないので、CPUがアイドル状態でCPUの負荷を抑えられるのです。 https://t.co/qBxrbmMvnt"
- ゆたかさん🐬さんのツイート: "RHEL6やWindows8などの比較的新しいOSでは、ticklessカーネルなのでタイマ割り込み自体で時刻管理するのではなく、クロックソースを使います。 OSに負荷がかかると時刻が遅れるということはないですが、クロックソースのチップで時刻精度が変わってきます。 https://t.co/brG73hwD46"
- Fadisさんのツイート: "紛らわしいからソフトリアルタイムを指すリアルタイムはインタラクティブって呼ぶようにしてる"
- Fadisさんのツイート: "ハードリアルタイムで大事なのは、処理が早いかじゃなくて、ある決まった時間内に処理を完了させる事をシステムは保証できるか、だよ。プロセッサがその処理を片付けるのにかかる最長の時間は明確か、とかOSはその処理が完了する前にその処理を中断させる事が無いかとかそういうところが問題になる"
- とみながたけひろさんのツイート: "仮想メモリやキャッシュが存在しない環境がなくなりつつある今、私の期待するリアルタイム性はもはや「一番優先度が高いスレッドがCPU時間を全部とれる」ぐらいになりつつある"
- とみながたけひろさんのツイート: "最近はLinuxでさえticklessになったし、OSのリアルタイム性よりもUSBのパケットが1msecに一度しか送れないとかそっちのほうが辛くなりつつある"
- とみながたけひろさんのツイート: "「無限のCPUパワーでビジーループしててもスレッドが勝手に切り替わったり、スレッド切替粒度が1秒に100回しかなかったりだとつらいだろ?」というの、後者はticklessで解決したし、もう前者があればなんとかなるじゃん、CPUパワーはなくともコア余ってるし、みたいな(電池環境だとそうもいかないけど)"
- とみながたけひろさんのツイート: "なおLinuxはデフォルトだとリアルタイムスレッドにはCPU時間の95%ぐらいまでしか使えないので完全なビジーループはできない(5%ぐらいはフツーのスレッドに時間が強制的に割り当てられてしまう)。一応0にできるが大抵の場合は設計ミスだと思うし、そこまでギリギリだと多分0にしても問題は解決しない…"
- とみながたけひろさんのツイート: "20年ぐらい前に、Linuxでsnes9xを書いてた頃は「くそーVBlank周期の59.83fps=16.72msec待ちたいのに無駄にたくさん待ってしまう。なんだこのOSはー」とか言ってたわけだが、今や普通に100nsecぐらいの精度でスレッド切替できるのだった。そう、時代は流れたのだ…(当たり前"
- とみながたけひろさんのツイート: "まあ裏では多分「ハードリアルタイム」なOS他が動いているマイコンが内蔵された、細かい仕様は教えて貰えないIPやチップがあるからこういう楽ができるんだろうけど、まあ、いい時代になったということで…(本当か?)"
- とみながたけひろさんのツイート: "多分このツイートをしている環境だけでも、無線LANやBTのチップ、HDDやSSDのコントローラー、各種PMIC、USBコントローラー、LCDのパネル制御、…とかで、私のような軟弱プログラマが書いたのではない「プログラム」が動いているんだろうなあ"
- とみながたけひろさんのツイート: "「インターフェース」とかに、昔はRTOSにおける待ち行列モデルとか色々細かく解説記事が出てたけど、もうそういう時代じゃないんだよな…(こんなこと書いてる自分もほとんど忘れている)"
- とみながたけひろさんのツイート: "ガチのOS研究している人に怒られそうなのでこのへんで止めとこ…(すでに無知をさらしている感じのところがいくつかあるが実際そうだしまあいいや…"
- mumumuさんはTwitterを使っています 「System Noise, OS Clock Ticks,and Fine-Grained Parallel Applications CPU-boundな大規模並列処理を考えると,OSのノイズによる1コアの少しの遅延が全コアに伝播してしまう可能性がある.ここでは,その原因のノイズとしてとくにTickの影響が大きいことを指摘.https://t.co/2a8Wd97au7」 / Twitter
- noise3.dvi - Noise05ICS.pdf
- jiffies ‐ 通信用語の基礎知識
- Ticklessカーネルとクロックソースに関するお話 - めもめも
- 2.4. Tickless カーネル
- 3.6. Tickless Kernel
- LinuxのFull ticklessを試してみた
- Timekeeping in VMware Virtual Machines
- LinuxKernel - ソフトウェアエンジニアリング - Torutk
- 各々の生き方: Chromeの不具合?とWindowsの仕組み
- jiffies更新を追いかける - Linux関係メモ@宇治屋電子
- 【後藤弘茂のWeekly海外ニュース】Intel CPUの大きなマイルストーンとなる「Haswell」が遂に登場 - PC Watch
- 「Haswell」って何だ? 第4世代Coreプロセッサが採用するアーキテクチャのポイントを一気に押さえよう - 4Gamer.net
- [まとめ]Linuxシステム時刻について - Akira's Tech Notes
- Clock / Timer
- 9月版 タイマにまつわるエトセトラ(1/2) - @IT
- 時刻と時間の管理、プロセスのスケジューリング
- 今更Sleepの解説するなんて、と思うのです。
- Linuxのしくみを学ぶ - プロセス管理とスケジューリング
- カーネルにおけるタイマー事情 ~第1回 カーネル内での時刻/時間の利用~ | VA Linux Systems Japan株式会社
- カーネルにおけるタイマー事情 ~第2回 カーネル内の時刻/時間関連サブシステム~ | VA Linux Systems Japan株式会社
- カーネルにおけるタイマー事情 ~第3回 IAマシンのもつ各種計時ハードウェア~ | VA Linux Systems Japan株式会社
- カーネルにおけるタイマー事情 ~第4回 タイマーハードウェアの抽象化~ | VA Linux Systems Japan株式会社
TSC
MSR_or_ハードコーディング
- Time Stamp Counter - Wikipedia
- x86/tsc: Set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs [Linux 4.10] - Linux Kernels
- Getting TSC rate in x86 kernel - Stack Overflow
- [tip:x86/timers] x86/tsc: Set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs - Patchwork
- [4/4] x86/tsc: set TSC_KNOWN_FREQ and TSC_RELIABLE flags on Intel Atom SoCs - Patchwork
- [v3] x86/tsc: add X86_FEATURE_TSC_KNOWN_FREQ flag - Patchwork
- [U-Boot] [PATCH 6/6] x86: tsc: Rename try_msr_calibrate_tsc() to cpu_mhz_from_msr()
- [PATCH 0/9] x86: TSC calibration update - Google グループ
- mOS/tsc_msr.c at master · intel/mOS
- 社会人でもOSを作りたいさんのツイート: "PCのタイマーぜんぜん分からん… 正確に時間を測るの不可能では?"
- 社会人でもOSを作りたいさんのツイート: "まず、驚くことにHPETがレガシーデバイスとして分類されてるIntel製のチップセットがあるので、レガシーフリーを目指す身としてはHPETは避けたい。すると、周波数既知のタイマーとしてはACPI PM TimerかInvariant TSCということになる。(続く)"
- 社会人でもOSを作りたいさんのツイート: "Invariant TSCの周波数はMSRから取得できるのだが、BIOSの設定でバスクロックが変更されているとタイマーにズレが出る。ACPI PM Timer は、最近流行りのHardware-reduced ACPIでは搭載されてない可能性がある。"
- beepcap@HTTPSの強制には反対さんのツイート: "不可能だよ?… "
- 社会人でもOSを作りたいさんのツイート: "不可能だってことなので、まあ適当にしとくか、という気持ちになった"
- CPUクロックに基づく相対時刻の計測
- 本の虫: 100ナノ秒ぐらいの分解能をもつクロック実装
- Livaさんのツイート: "雑魚すぎてTSCの情報を取ろうとして嵌った。ずっとこのページとにらめっこしてて、答えがちゃんと書いてあるのに、華麗にスルーしてた。 https://t.co/GVudVa6n4O"
- arch/x86/kernel/tsc.c : set X86_FEATURE_ART for TSC on CPUs like i7-4910MQ : bug #194609 - Patchwork
- Livaさんのツイート: "CPUID 15hでTSCの詳細な値取れるじゃーん、あれでも取ってきた値おかしくね?ってずっと悩んでたのだけど、boot_cpu_data.cpuid_level == 13、つまりCPUID 0Dhまでしか取れないから、15hで取った数値になんの意味もない"
- AMD Dual-Core Optimizer - NyaRuRuが地球にいたころ
- Converting Sandy Bridge TSC to wall clock time
- Time Stamp Counters - atp
- andyphillips/time_stamp_counters
- LKML: Thomas Gleixner: Re: [PATCH] x86/tsc: Always Running Timer (ART) nanoseconds clocksource
- 時間を計測する
- dterei/tsc: Quick and dirty TSC access for benchmarking
- TSC frequency variations with temperature
- Pitfalls of TSC usage | Oliver Yang
- Invariant TSC を 使う - Qiita
- Page 1424
- bits-2003
Local APIC timer
- yuYabu☕️さんのツイート: "今から自作OS作るならPIT,RTC,HPETは使わない方がいいらしい。 #osdev_moku2"
- yuYabu☕️さんのツイート: "HPET重要な特性:HPETはmemory maped deviceなのでosを介さずに直接アクセスできる。 RT mark.ユーザー空間にキャッシュできる。レジスタをOS経由で触るよりメモリを参照する方が早い。まだまだ使える(レガシーではない)"
- 錆ありはぐれベアメタルさんのツイート: "お客様の中にintelの中の人は居ませんか? #osdev_moku2"
- yuYabu☕️さんのツイート: "これからの自作OSで利用するタイマー構成は ACPI PM Timer(初期時計)+Loal APIC Timer(普段使い)がおすすめらしい #osdev_moku2"
- 社会人でもOSを作りたいさんのツイート: "タイマーイベントの管理は,最小・最大ノードをO(1)で見つけられるヒープツリーが用いられることが多い. #osdev_moku2"
- Timers
- Nerry さんのツイート: "lapic timerそもそも計測しないと周波数わからない時点で正確なクロックソースとして信用できないことに気付いた。"
アイドル状態
- 【やじうまPC Watch】ノートPCのバッテリを過剰消費しているChrome長年のバグが解決へ? - PC Watch
- 本の虫: Google Chromeを使うとファンの回転数が上がる理由
- Shinji KonoさんはTwitterを使っています 「マウスの位置をリアルタイムで取得して記録するアプリで「CPU100%」になるのを防げという課題を出したことがあるのだが、誰も解けなかった。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「sleep入れるだけなんだが、言われないとわからないもの。その辺りがOS/マルチタスクを理解してるかどうかってことなんだが…」 / Twitter
バックグラウンド処理
- 「Google Chrome 57」にはバックグラウンドタブの電力消費を抑える仕組みが導入 - 窓の杜
- Google Developers Japan: バックグラウンド タブによる電源消費量の削減について
スタッター
- 【CPU】 超多コアCPUでゲームをするときの注意点 : ニッチなPCゲーマーの環境構築
- スタッターの英語・英訳 - 英和辞典・和英辞典 Weblio辞書
コンテキストスイッチ
FPU
- 日記 (2018 年 6 月下旬)
- 日記 (2018 年 6 月下旬)
- 日記 (2018 年 6 月下旬)
- 拡張プロセッサー・ステートを保存/復元する組み込み関数
- 7月版 ファームウェアの置き場所を巡ってフレームウォー(2/2) - @IT
- XSAVE — Save Processor Extended States
- XRSTOR — Restore Processor Extended States
- x86 and amd64 instruction reference
lazy FPU context switch
- nakamori akiraさんのツイート: "Intel CoreおよびXeonプロセッサ内のセキュリティー欠陥は、チップの演算処理装置から機密データを盗み見される可能性がある。AESの鍵はFPUレジスタに保存されるが、そのレジスタを盗み見される可能性がある。… "
- The Registerさんのツイート: "Overnight: Intel Core and Xeon processors have a security flaw that lets the math unit leak parts of its registers from one app to another - registers used for AES encryption. It's possible for malware to snoop on crypto keys in other programs https://t.co/b9q051uXc5"
- Intel chip flaw: Math unit may spill crypto secrets to apps – modern Linux, Windows, BSDs immune • The Register
- INTEL-SA-00145
- Lazy FPU Save/Restore (CVE-2018-3665)
- このコード、オシャカルトっ!さんのツイート: "CVE-2018-3665の話しで出てきてたeagerfpuって今のコードになくない?と思ったら、もうこの機能は常にonになったからon/off 切り替えというのはなくなっていた。 https://t.co/XxV9BMPPyx"
- x86/fpu: Hard-disable lazy FPU mode · torvalds/linux@ca6938a
- Kimihiro Nonakaさんのツイート: "つーか、今のx86だともうlazy FPU context switchって意味無いからなぁ"
- Coreプロセッサに新たなサイドチャネル攻撃の脆弱性。深刻度は中 - PC Watch
- まさみさんは語りたいさんのツイート: "タスク切替時にFPレジスタの復元を遅らせることで、切り替えたタスクが実際にFPを使うまでレジスタ復元にかかるオーバヘッドを回避するっていうあれか。"
- まさみさんは語りたいさんのツイート: "Linuxは3.7以降ならeagerfpu=onのブートパラメタで回避可能だし、4.6以降はデフォルトでeagerfpu有効。lazyfpuは殆どパフォーマンス的に意味がなかったらしい。 https://t.co/6BqBFDPYrt コミット。 https://t.co/amgTkvEo9d"
- Cyberus Technology Blog - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
- とみながたけひろさんのツイート: "今時のコンパイラって何でもかんでも(特にメモリコピーとか)SIMDレジスタ使ってくるんで、コンテキストスイッチ直後にSIMDレジスタ使うとかで、、、FPUレイジーコンテキストスイッチってほとんど意味なくなりつつあるんだよね… "
- syuu1228さんのツイート: "でも特にAVX以上になるとFPUレジスタのサイズがでっかくなりすぎてくるから全退避・全リストアじゃなくてCPU命令で差分退避・差分リストア出来るようにしようとなった、という経緯だったような"
- Lazy FP State Restoreの脆弱性が、ほとんどのIntel Core CPUに影響を与える
- Cyberus Technology Blog - Intel LazyFP vulnerability: Exploiting lazy FPU state switching
- 社会人でもOSを作りたいさんはTwitterを使っています: 「逆アセンブルして覗いてみると、AVXレジスタを用いたmov命令なんて知らなかったなー、みたいな気持ちになる。」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「@uchan_nos このせいで最近はFPU lazy context switchとかが全然メリットにならないというかむしろ遅くなったりするんですよねえ」 / Twitter
- LazyFP vulnerabilityの紹介
The Old New Thing
- FadisさんはTwitterを使っています 「x86にはUD2っていう呼ぶとinvalid opcode例外が飛ぶ事が保証されている命令があるんだけど、これを使うと遅いx86のINTを避けてring 0に移れる事に気づいたマイクロソフトがUD2でコンテキストスイッチし始めて、Intelに「UD2もっと速くならない?」って言い出してIntelが「ふぁっ?!」ってなる話好き」 / Twitter
- FadisさんはTwitterを使っています 「で、その後INTじゃなくてシステムコール専用に高速にring 0に移れる専用の命令があった方が良いよねとなって、SYSENTERや今日x86_64で使われているSYSCALLが登場する、と」 / Twitter
- 本の虫: Linux Torvalds、最近のCPUのPage Faultのコストにご不満の様子
- FadisさんはTwitterを使っています 「UD2の件のソースはこれ( https://t.co/1lV3gwp5Uu )なんだけど、江添さんの紹介してるやつの話が1989年だとすると、時系列的にはこの話はUD2が追加される以前の話になるから、実際にはUD2じゃなくて本当にinvalidなopcodeでも使ってたのかな」 / Twitter
- User-level threads....... with threads. - Paul Turner - Google - YouTube
- suzakiさんはTwitterを使っています 「@darklie @fadis_ 日本語ブログではリンクが切れていますが、同じタイトルのHPがありました。 The hunt for a faster syscall trap https://t.co/EDqnpwuhvC IntelとMicrosoftと打合せでMicrosoftが無効命令の高速化を要求したストリーは聞いた覚えがあります。」 / Twitter
- The hunt for a faster syscall trap | The Old New Thing
- FadisさんはTwitterを使っています 「コンテキストスイッチが高コストというのは、かつてはx86のソフトウェア割り込みが超遅いという話だったけど、現代においてはカーネルのスケジューラが複雑なのがコストの主な原因で、syscall命令自体の実行時間はそれと比べると誤差みたいになってるのか…」 / Twitter
- でかいのさんはTwitterを使っています 「@fadis_ ring0遷移の所要時間 50nsecは結構遅いと思うのですが、そんなの目じゃないほどスケジューラーが遅いってことなのかなあ。複数コアの情報取得・連係制御のコストが高い??」 / Twitter
- FadisさんはTwitterを使っています 「@dekaino syscallが50nsec程度なのに対して、コンテキストスイッチ全体に要する時間が1usオーダーのようで」 / Twitter
- でかいのさんはTwitterを使っています 「@fadis_ spinlockがいくつかあれば1usecくらいすぐいきそう。複数コアで排他なしのスケジューリングは困難で、原理的に排他コストがかかるのは不可避でしょう。 スケジューラーが複雑なことが主なコスト要因って表現だと、何かを犠牲にして単純化すれば所要時間短縮できそうに思えますが、ちと無理そうです。」 / Twitter
- あるコンテキストスイッチの話
- ソフトウェア高速化の鍵は「並列化」:いま注目される並列化技術を知る - HPC/並列プログラミングポータル - OSDN
- Concurrent と Parallel - NyaRuRuが地球にいたころ
- parallel と concurrent、並列と並行の違い - 本当は怖い情報科学
- Linux カーネルと FreeBSD カーネルの割り込み処理
- I-26-1. コンテキストスイッチの仕組み | 日本OSS推進フォーラム
- 社会人でもOSを作りたいさんはTwitterを使っています: 「コンパイラが用意してくれるmemcpyの速さに感動するんだけど、これって低レイヤあるある?」 / Twitter
- Toshitaka MiuraさんはTwitterを使っています: 「@uchan_nos コンパイラそのものよりは、チューンされたイントリンシック関数ですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「linux で、カーネル内を走行中に割り込みが走る場合と、ユーザプロセス内を走行中に割り込みが走る場合って、なんて呼び分けるんでしょう? どちらも preemption ではあると思うんだけど。 なぜこんなことを気にしてるかというと、両者のオーバーヘッドの違いを説明する文章を書いてるからです。」 / Twitter
- 猫ぱんちさんはTwitterを使っています 「@kazuho 前者をとくにカーネルプリエンプションと呼んで区別するくらいではないでしょうか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@nekopunch_pk ありがとうございます。kernel preemption, user preemption のような用語を定義をつけて説明することにしたいと思います cc @syohex」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「やっぱuser preeemptionのほうがkernel preemptionよりだいぶ重たいんですね。。。」 / Twitter
- カーネルプリエンプション - Linuxの備忘録とか・・・(目次へ)
- 今月の myos - 借り初めのひみつきち
- Measuring context switching and memory overheads for Linux threads - Eli Bendersky's website
M:Nスレッド
FlexSC-Threads
- ぬるぽへさんはTwitterを使っています 「osレベルでコルーチン実装するの実は面白そうだし研究もありそう」 / Twitter
- ぬるぽへさんはTwitterを使っています 「僕がここでOSと呼んでるやつはglibcとlinuxカーネルのペアのことでfutexのノリです 強みはOSレベル実装だから、ブロッキングシステムコールが呼ばれたら全部ユーザー空間のメモリから読めるコルーチンにyieldするかユーザー空間のスケジューラにyieldできること だからCで自然にgoroutineができる」 / Twitter
- ぬるぽへさんはTwitterを使っています 「万が一ほぼ同じ先行研究がないなら、多分Linuxカーネルとglibcに実装してちゃんと計測すれば修論になる それで性能もよければそれなりにいいとこの会議通ると思う」 / Twitter
- ぬるぽへさんはTwitterを使っています 「注意としてこういうときは90%の確率でほぼ同じ先行研究があります」 / Twitter
- ぬるぽへさんはTwitterを使っています 「kernel assisted co(go)routineの方の話、コルーチンの開始アドレスのキューをカーネル空間からも触れるようユーザー空間にio_uringのノリで実装することになるから実装面白そうーとか思ってたんですけど、なんかもうひとひねりするとこれio_uringそのものになりそうだな」 / Twitter
- ぬるぽへさんはTwitterを使っています 「いやまぁていうかコルーチンスケジューラーが介入できるような嬉しいライブラリを作ってそのライブラリを使えばM:Nコルーチンが作れるのは当たり前なんだから、昔スレッドの実装をユーザー空間からカーネル空間に移したとき並みのうれしさがカーネルとユーザーの両者にあるかどうかですねー」 / Twitter
- ぬるぽへさんはTwitterを使っています 「嬉しさ(既存のCプログラムが少ない変更でgoroutine的なやつを使えるようになる(嬉しいのかそれ?」 / Twitter
- 漢字変換の権を他人に握らせない🙅さんはTwitterを使っています 「@nullpo_head @kotatsu_mi なんかこれあった気がする…」 / Twitter
- 漢字変換の権を他人に握らせない🙅さんはTwitterを使っています 「@nullpo_head @kotatsu_mi FlexSCかなあ…」 / Twitter
- 漢字変換の権を他人に握らせない🙅さんはTwitterを使っています 「@nullpo_head @kotatsu_mi カーネルというよりユーザランドでやっちゃう感じだけどflexscがそうかも、と。ちょうど誰かが解説しているスライドがありましたよ!! https://t.co/SyMEPGDZdI」 / Twitter
- FlexSC-Threadsの紹介 -プログラムの変更無しにマルチスレッドプロセスを高速化
- ぬるぽへさんはTwitterを使っています 「@naota344 @kotatsu_mi flexscは軽量スレッドの存在がユーザーに露出しないというのと、普通のシステムコールすらバッチ化して高速化し、なんならそれがモチベーションという点ではモチベーションの違いがありますが、本質的な実装の着想部分がかなり同じですね!何ならユーザーにgoroutine制御してもらうより速いかもしれん」 / Twitter
- ぬるぽへさんはTwitterを使っています 「@naota344 @kotatsu_mi あ、ちなみにFlexSCはユーザーランドだけなわけじゃないようです syscall pagesという、いわばsyscall_uringみたいな仕組み(ringじゃないけど)がカーネル空間に実装されてます 自分の話だと、ブロッキングシステムコールだけをいじるつもりでしたがsyscall pagesの方がシンプル」 / Twitter
- ぬるぽへさんはTwitterを使っています 「ていうかFlexSC( https://t.co/kNJsD67sDY )のexception less system callのsyscall pages、普通にほしくない?実質syscall_uringじゃん」 / Twitter
- FlexSC: Flexible System Call Scheduling with Exception-Less System Calls - Soares.pdf
- ぬるぽへさんはTwitterを使っています 「syscall_uringさえあれば大抵の問題は解決する(適当」 / Twitter
- ぬるぽへさんはTwitterを使っています 「FlexSCの実装を少し拝借して、C言語でgoroutine実現するの面白いと思うから卒論/修論でやってみてほしい」 / Twitter
- ぬるぽへさんはTwitterを使っています 「GoのスケジューラもブロッキングIOだけじゃなくて、ただのすぐ帰ってくるシステムコール呼び出しとかもgoroutine切り替えの契機になったりするんだろうか、コルーチン(?)スケジューラなんも分からん」 / Twitter
- 軽量スレッドブームだと思うので、そこらへんの情報をまとめてみる - 金利0無利息キャッシング – キャッシングできます - subtech
- スレッド (コンピュータ) - Wikipedia
- goroutineはなぜ軽量なのか - Carpe Diem
- Linuxにおけるプロセス/スレッドの調査とか学習とか - Flicker's Style++
- multithreading - M:Nスレッドモデル(goroutinesなど)の短所は何ですか?
- Rustのスレッドで並列処理を行う - Qiita
- NetBSDにおけるthread機構の方向転換か? | スラド デベロッパー
- Solarisスレッドモデルとスタックスレッド - 銀の鍵 (The Silver Key)
- ASCII.jp:Go言語と並列処理(2)|Goならわかるシステムプログラミング
- スレッド - The Rust Programming Language
- 井山梃子歴史館さんはTwitterを使っています 「Google曰くオーバーヘッドはカーネルスケジューラにあるのでユーザーモードスケジューリングで解決するらしい」 / Twitter
- legokichiさんはTwitterを使っています 「M:Nモデル使わなくてもlinuxのスレッドは軽くて早いよという説はどこへ行ったのか」 / Twitter
- AoiMoe a.k.aしお兄PさんはTwitterを使っています 「実際のところ M:N モデルでも pthread だと百万個単位のスレッドが動くかどうかは怪しい気がしますね。Erlang のメッセージや go のチャンネルによるアクターモデルを酷使するには、上限を気にせず使える軽量なスレッドとユーザランドスケジューラは必須で、これは C とかでは難しいかもしれない。」 / Twitter
- なぜ Go では何百万もの Goroutine を作れるのに Java は数千のスレッドしか作れないのか?
- とみながたけひろさんはTwitterを使っています 「ファイバーをOS(Kernel)でサポートというの、いくつかやったことがある。例えば今時のアプリ実行環境ではStackClashを防ぐためにOSでSPの範囲を制限するとかしますが、ファイバーは勝手にSPを変化させるので、そのあたりの整合性を取る仕組みをKernel側に入れるとか。あとはまあdebug機構まわりかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「macOSのドライバって、もともとコルーチン的な感じで書きませんでしたっけ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「なんか i/o 完了がコールバックじゃなくて、うへぇと思った覚えがある」 / Twitter
- ytakanoさんはTwitterを使っています 「Coroutineは中断再開がキモだと思っていて、その機能を使ってスタックを持たせてスケジューリングするとGoroutineにはなる。ただ、それはもう一段抽象度の上がった別物にも思う。「人間=水+タンパク質」なのか問題。全体は部分の総和なのか。」 / Twitter
- ytakanoさんはTwitterを使っています 「立場によって違うし、定義によっても違う。」 / Twitter
- ぬるぽへさんはTwitterを使っています 「@kotatsu_mi ブロッキングIO syscallを呼び出した、とか、カーネル空間でブロッキング/スケジューラーが走ってしまうタイミングで、カーネルが別プロセスに切り替えるんじゃなくて登録されたユーザー空間のコルーチンのキューや、コルーチンのスケジューラに制御を即座に戻すようにしたら面白いんじゃない?という」 / Twitter
- ぬるぽへさんはTwitterを使っています 「@kotatsu_mi まぁそれで何が嬉しいかというと、io_uringをラップしたライブラリのapi縛りじゃなく、普通のlibc APIのIO(fread、socketとか)を使ってプログラミングしてもgoroutineみたいなやつが実現できそうってところではあるんですが、それって嬉しいのか?みたいな話はもちろんある https://t.co/GUrlZijErF」 / Twitter
- ぬるぽへさんはTwitterを使っています 「嬉しさ(既存のCプログラムが少ない変更でgoroutine的なやつを使えるようになる(嬉しいのかそれ?」 / Twitter
- yoh2さんはTwitterを使っています 「goroutine って coroutine と似て非なるものだからあえて別名付けてるんじゃなかったっけ? (うろ覚え) 実際別スレッドで動くこともあるはずだし。」 / Twitter
- mattnさんはTwitterを使っています 「@kotatsu_mi @yoh2_sdj 基本は1つのOSスレッド内でコルーチンとして動作しますが、ブロッキングするシステムコールを呼び出す時などは netpoller という機能を使って別のOSスレッド上で動き続けます。なので「俺はスレッドID N で動いていたはずなのに何時の間にか M になってた」みたいな事が起きます。」 / Twitter
Hyper-Threading Technology
ハードウェアスレッド
- とみながたけひろさんはTwitterを使っています 「ハードウェアスレッドってハイパースレッディングみたいな複数スレッドのどれが強くなるか実行パイプの空きの運次第みたいなやつとか、スパークにあった複数スレッドがほぼ同じ強さになるやつとか、スカウトスレッドみたいなソフトから見えないやつとか、色々全部〜指していたような、、、」 / Twitter
- とみながたけひろさんはTwitterを使っています 「CPU世界ではまだ用語が統一気味だけど、GPUとか特定アクセラレータではみんな似た概念に違う名前つけててわけわからんくなる。まあ特許避けとか色々あるんやろけど、、、」 / Twitter
- とみながたけひろさんはTwitterを使っています 「よくあるマルチコアの罠 ほぼ同じ2つの処理があるのでこれを半分のクロックにしたコア2つに分割、ってやると、両方が終わるまでの時間は同じぐらいのまま、電圧下げて電力削減!ってできる が、その結果をネットワークに流すとかやる場合、通信量がバースト的になってしまい通信完了までの遅延は増える」 / Twitter
- とみながたけひろさんはTwitterを使っています 「というのに先日またもハマってしまいうーんってなってる」 / Twitter
- _ko1さんはTwitterを使っています 「@takehiro_t SMT はパイプラインというよりはOoO のためのALU とかで言われることが多かったかと思います。」 / Twitter
- とみながたけひろさんはTwitterを使っています 「@_ko1 わたしもそういう認識なんですが、SPARCのナイアガラ(ハイパースレッディングできるpen4と同時期に発表)とかintelのボンネルとかはインオーダーなので、ようわからんわー、ってなってます」 / Twitter
- とみながたけひろさんはTwitterを使っています 「@_ko1 特に後者はSMTのひとつであるハイパースレッディングを実装、とかintelが言ってるので、お、おう?みたくなります」 / Twitter
- _ko1さんはTwitterを使っています 「@takehiro_t ナイアガラってSMTでしたっけか(もう記憶が..」 / Twitter
- _ko1さんはTwitterを使っています 「@takehiro_t パイプライン共有は水平スレッディング(キャッシュミスで切り替えるやつ)じゃないかな」 / Twitter
- _ko1さんはTwitterを使っています 「@takehiro_t 垂直じゃん(virtical」 / Twitter
- Hyper-threading - Wikipedia
- ハイパースレッディング・テクノロジー - Wikipedia
- HyperThreadingとAMD Bulldozerとカーネルスケジューリング — SOUM/misc
- 続・HyperThreadingとAMD Bulldozerとカーネルスケジューリング — SOUM/misc
- インテル® ハイパースレッディング・テクノロジーのパフォーマンスに関する考察 | iSUS
- ハイパースレッディング調査 - ソフトウェアエンジニアリング - Torutk
- 仮想化基盤におけるCPUリソースに関する簡易整理 | Check!Site
- VMwareテクニカルトレーナよりワンポイントアドバイス~VMware vSphereにおけるCPU・メモリの考え方編~ - Japan Cloud Infrastructure Blog - VMware Blogs
- ハイパー・スレッディング・テクノロジのアーキテクチャとマイクロアーキテクチャ
- ASCII.jp:マルチコアCPUを賢く使いこなす スケジューリングの秘密 (2/3)|基礎から覚える 最新OSのアーキテクチャー
- マルチプロセッサとスケジューラ(その1) | OSDN Magazine
- マルチプロセッサとスケジューラ(その2) | OSDN Magazine
- 1.5 プロセススケジューラ - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
- FadisさんはTwitterを使っています 「GoogleがLinuxカーネルに「信頼できるプロセス」だけがCPUを共有する複数のハードウェアスレッド(Hyper Threadingとか)で隣り合わせになれるようにするスケジューラのパッチを投げている。信頼できるかどうかはcgroupsで同じタグが割り当てられているかどうかで判断する https://t.co/H8XHZ13Xmh」 / Twitter
- Google Publishes Latest Linux Core Scheduling Patches So Only Trusted Tasks Share A Core - Phoronix
- FadisさんはTwitterを使っています 「Hyper Threadingやそれに類する技術はCPUのアイドルを減らす効果が期待できるものの、キャッシュ等の状態を2つのスレッドが共有するため、サイドチャネル攻撃に利用できることが指摘されていた。このためOpenBSDではデフォルトでHyper Threadingを「あっても使わない」ようにする対応がなされていた」 / Twitter
- FadisさんはTwitterを使っています 「linux-5.14でCore Schedulingが入りそうだという話。これは「信頼できるプロセス」だけがSMTで隣り合うようにする物。SMT(Intel用語でHyper Threading)は今日ではサイドチャネル攻撃の温床で、隣のプロセスが信頼できない場合切るしかなかったが、これで安心して有効にできる https://t.co/TRhsZQ9do4」 / Twitter
- Core Scheduling Looks Like It Will Be Ready For Linux 5.14 To Avoid Disabling SMT/HT - Phoronix
- FadisさんはTwitterを使っています 「信頼できるプロセスとは具体的には同一プロセス内の別のスレッドまたはcgroupsで同じタグが割り当てれられた(明示的に信頼できるグループとされた)プロセス」 / Twitter
- K.Namba/(お菓子|おやつ)エバンジェリストDXさんはTwitterを使っています 「@fadis_ いいね。 しかもHT内の同一プロセスならキャッシュヒット率も高そう。」 / Twitter
- 2021年8月31日 お祭り騒ぎはもうおしまい ―Linux 5.14リリース,コアスケジューリングが統合:Linux Daily Topics|gihyo.jp … 技術評論社
CFS
- Completely Fair Scheduler - Wikipedia
- Completely Fair Scheduler - Wikipedia
- Linux カーネル 2.6 Completely Fair Scheduler の内側
- Completely Fair Scheduler によるマルチプロセッシング
- Completely Fair Scheduler について - カメのたわごと
- Completely Fair Scheduler (CFS)
- CFQスケジューラのアルゴリズム概要 | VA Linux Systems Japan株式会社
- Kazuho Oku(@kazuho)/2015年02月10日 - Twilog
- Fadisさんのツイート: "Linuxのしくみ( https://t.co/HBQWDZahl6 )、スケジューラの働きを実験で見るあたりで「スケジューラが顕著に不平等になるケースを観測して、そこからCFSの実装の話になるんでしょ、わかるわかる」って思って読み進めたけど、実際はもっと平和な本だった"
- Early Patches Bring BPF To The Linux Scheduler - Phoronix
BFS
- Brain Fuck Scheduler - Wikipedia
- Brain Fuck Scheduler - Wikipedia
- 帰ってきたCon Kolivas、大論争を呼ぶの巻(1/3) - @IT
- Linux-ck - ArchWiki
- フリーダウンロード BFS Scheduler のために Linux ::: システムユーティリティ
- スケジューラについての調査 - オペレーティングシステム授業発表
- Con Kolivas氏、新たなスケジューラと共にLinux開発にカムバック | スラド アップル Submission
BMQ
- Fadisさんのツイート: "Linuxに新しいプロセススケジューラBMQが提案されている。これはGoogle Zirconのスケジューラを元にした物で、優先度別キューのうち空でない最も優先度の高いキューからタスクを取り出す。実行時間を残したタスクは元居たキューの先頭に、使い切ったタスクは末尾に戻される https://t.co/bgj4vYr0Us"
- BMQ "BitMap Queue" Is The Newest Linux CPU Scheduler, Inspired By Google's Zircon - Phoronix
- Fadisさんのツイート: "これ、説明読んだだけだと優先度の低いタスクが飢えそうなんだけど、どうなんだろ"
- Fadisさんのツイート: "既にCFSがあるLinuxにおけるBMQの利点は実装が極めて小さい(パッチサイズにして20kB以下、圧縮されたカーネルバイナリのサイズで4kB以下)事らしい。性能が良いかどうかとかいいからこのフラッシュメモリに収まるカーネルをくれ、みたいなペンギンのダイエットが死活問題な方面で有用なのかもしれない"
キュー
- キュー | アルゴリズムとデータ構造 | Aizu Online Judge
- 優先度付き待ち行列 - アルゴリズムとデータ構造 | ++C++; // 未確認飛行 C
- 8.4. heapq — ヒープキューアルゴリズム — Python 2.7ja1 documentation
- プログラミングⅡ
- Skew Heap - Lilliput Steps
- 今週の MYOS - 借り初めのひみつきち
Digdag
- Digdag | Open Source Workflow Manager for the Multi-Cloud Era
- treasure-data/digdag: Workload Automation System
- ワークフローエンジンDigdagのまとめ - Qiita
- Treasure Data社のOSSワークフローエンジン『Digdag』を試してみた #digdag | Developers.IO
- Digdagを使ってワークフロー管理を行う — | サイオスOSS | サイオステクノロジー
- EmbulkとDigdagとデータ分析基盤と
- Digdag + embulk + BigQuery + Re:dash でデータ分析基盤構築の夢を見る - 雑なメモ
- Jenkinsの無秩序なジョブをDigdagで再定義する - log.fstn
- ワークフローエンジンDigDagのサーバ/クライアント構成を試してみる - techium
Linux
SchedViz
- Google Opens Up "SchedViz" To Visualize Linux Kernel Scheduling Behavior - Phoronix
- Understanding Scheduling Behavior with SchedViz | Google Open Source Blog
- google/schedviz: A tool for gathering and visualizing kernel scheduling traces on Linux machines
stalld
- FadisさんはTwitterを使っています 「Red Hatの人が新しいデーモンstalldを作っているらしい。stalldは全プロセスのスレッドの実行状況を監視し、一定期間実行されていないスレッドを見つけるとそのスレッドのスケジューリングポリシーを一時的にSCHED_DEADLINEにすることで飢餓状態を回避する https://t.co/1MVG4peof6」 / Twitter
- Red Hat Has Been Working On "stalld" As A Thread Stall Detector + Booster - Phoronix
- FadisさんはTwitterを使っています 「それはユーザ空間デーモンでやることなのか、という気がせんでもない」 / Twitter
- 住民さんはTwitterを使っています 「@fadis_ コメントに中の人?が降臨してますが、FIFO/RRのリアルタイムスケジューリングでstarveするのを防止のようで適用範囲は比較的狭そうですね。 あとカーネルでやろうとしてたけど、ほかのスケジューリングポリシーなど壊さずにやるの大変辛かったと書いてますね(わかりすぎる」 / Twitter
Twitter
- linux-sched-history.pdf - Speaker Deck
- Fadisさんのツイート: "タスク: カーネルのスケジューリング単位。昔のカーネルではプロセスと同義だったが、現在(2.6系以降)はプロセスまたはその中のスレッド1つを指す #kernelvm"
- Fadisさんのツイート: "linux-0.01ではNice値を変更するとタイムスライスが増減する。驚くべきことにrootでなくても負数が指定でき、しかも果てしなく大きな値を設定できる為、一般ユーザが巨大なタイムスライスを手に入れられる #kernelvm"
- Fadisさんのツイート: "linux-0.01は全タスクを舐めてタイムスライスが最大のタスクを実行する。タイムスライスがどれも残っていなかったら全てのタスクに150ミリ秒のタイムスライスを与える。sleepしたタスクにはちょっとボーナスを与える #kernelvm"
- Fadisさんのツイート: "linux-0.01のスケジューラは20行程度のラウンドロビンスケジューラ。64要素の配列でそれ以上タスクは作れない #kernelvm"
- Fadisさんのツイート: "このスケジューラでは必要な処理がタスクの数に比例する為、最大64ならなんとかなるけどたくさんのタスクを抱えられるようにしようとすると使い物にならない #kernelvm"
- Fadisさんのツイート: "linux-1.0でプリエンプションが登場、root以外の負のniceも禁止に #kernelvm"
- Fadisさんのツイート: "linux-2.0ではランキューがリストになったが、スケジューリングに全てのタスクを舐める必要がある点は変わらないままだった。またlinux-2.0からSMPのサポートが追加された。 #kernelvm"
- Fadisさんのツイート: "linux-2.0のランキューはSMPであっても1本で、1本のキューから全てのCPUがタスクを拾っていた #kernelvm"
- Fadisさんのツイート: "linux-2.2 linux-2.4ではlinux-2.0からスケジューラの変化はあまりなかった #kernelvm"
- Fadisさんのツイート: "linux-2.6でO(1)スケジューラが登場。キューをactiveとinactiveに分けることで、activeの先頭には常に実行すべきタスクが来ている状態にする事で、キュー全体を舐めなくても実行すべきタスクを決定できるようにした #kernelvm"
- Fadisさんのツイート: "人間が直接やりとりするタスクが後回しになるともっさりして見える → linux-2.6では短時間のうちにsleepする事が多いタスクを対話型タスクとみなして、起きて来たときに優先的に実行するようにした #kernelvm"
- Fadisさんのツイート: "linux-2.6ではタスクの操作時のロックで全CPUが詰まるのを回避するために、LCPU毎にランキューを持つようになった。この結果、ランキューがたまっているLCPUからランキューが空いているLCPUにタスクを移動させるロードバランサが必要になった #kernelvm"
- Fadisさんのツイート: "NUMAが現れたため、ロードバランサが2段階になった。まずNUMAノード間でのバランシングを行い、次にLCPU間でのバランシングを行う #kernelvm"
- Fadisさんのツイート: "linux-2.6では複数のタスクがメモリ空間を共有できるようになった。これを使ってユーザ空間でのエミュレーションではないスレッドが作れるようになった #kernelvm"
- Fadisさんのツイート: "CentOS3のカーネルはLinux 2.4だが中身が総とっかえレベルで魔改造されていて何故かO(1)スケジューラが使える。このカーネルの保守が辛すぎたため、最近はどこディストリもこういうことをしていない #kernelvm"
- Fadisさんのツイート: "O(1)スケジューラは場当たり的な改良が多すぎて、意図しない動きをする → linux-2.6.23でCFS登場。ランキューは赤黒木になって計算量はO(log(n))に。全てのタスクはレイテンシターゲット期間中に1度はCPUを得られる(飢餓状態の回避)"
- Fadisさんのツイート: "O(1)スケジューラではインターバルタイマーを使っていたが、この方法で制度を上げると割り込みのオーバーヘッドにCPUを持っていかれる → CFSではタスクを切り替えるべき時刻にタイマーをセットする為、不必要に割り込みが増えず、ナノ秒精度での制御が可能に #kernelvm"
- Fadisさんのツイート: "cgroupが登場、全てのタスクで時間を割る前に、特定のグループの中でタスクの中で時間を均等に割る事ができるようになった #kernelvm"
- Fadisさんのツイート: "linux-2.6.25でcgroupを応用してリアルタイムタスクが暴走して帰ってこなくなった場合にリアルタイムタスクでないタスクが全く動かなくなる問題を回避できるようになった #kernelvm"
- Fadisさんのツイート: "カーネルの重要な処理が優先度最大のユーザタスクと同じ優先度になっていた為重要なカーネルタスクが押しのけられる事があった → linux-2.6.37でstop scheduling classが追加された。カーネルのみがあらゆるユーザプロセスより優先されるタスクを作れるようになった #kernelvm"
- Fadisさんのツイート: "linux-3.2 CFS bandwidth controllerが登場、CPU cgroupがある期間中に動ける最大の時間を制限できるようになった。たとえ、他のタスクがなくてCPUが暇していたとしても、実行中のタスクがCPUを使う時間を制限できる #kernelvm"
- Fadisさんのツイート: "linux-3.14で deadlineスケジューラが登場、指定した時間のCPUの割り当てが指定した時刻までに行われることを保証するタスクをrootのみが作れるようになった #kernelvm"
- 鹿さんのツイート: "cpu migration でずっと気になっていた「すぐ死ぬタスクをバランスしても無駄じゃない?」を専門家に聞けてとても良かった。 研究はあるけど、ヒューリスティックになるので、コーナーケースが出てくる。裏をかく人もでてくる。なので、今の Linux には入っていない。なるほど。 #kernelvm"
- Fadisさんのツイート: "詳解Linuxカーネル第3版には100msごとにタスクを切り替えるとかactive/inactiveとか書いてあるけど、この10年でカーネルのスケジューラはごっそり書き換わった為ほとんど間違っている、と #kernelvm"
- Fadisさんのツイート: "CFSは一定期間をタスクの数で割ってプロセスに時間を与えていくが、あまりにもタスクが多い場合コンテキストスイッチのオーバーヘッドだけで時間を使い切ってしまう事になる為、一度タスクの実行が始まったらコンテキストスイッチせずに使えるCPU時間の最低値が設けられている #kernelvm"
- Fadisさんのツイート: "ロードバランサ: ランキューがプロセッサごとに用意されている為、ランキューが伸びているプロセッサと空いているプロセッサが生じる → プロセスが増えたり減ったり、プロセッサがやる事がなくなってしまった時にロードバランサが忙しいプロセッサのタスクを暇なプロセッサに移動させる #kernelvm"
- Fadisさんのツイート: "レイテンシターゲットを短くすると応答性が良くなるがコンテキストスイッチの頻度が上がってスループットが下がる。LCPUの数が多い場合暇なLCPUがある確率が高くなる為、レイテンシターゲットを伸ばしても応答性が損なわれにくくなる。→LCPU数に比例してレイテンシターゲットを伸ばそう #kernelvm"
- Fadisさんのツイート: "CPU affinityとcpuset cgroup: コンテナが使用して良いプロセッサを制限したり、特定のCPU上で動かす事に意味がある処理を確実にそのプロセッサ上で動かすために、タスクを動かして良いプロセッサを制限する #kernelvm"
- Fadisさんのツイート: "同一コア内のスレッド(HT)間、同一NUMAノード内のコア間、同一ソケット無いのNUMAノード間、同一ホスト内のソケット間、でのタスクの移動はコストが違う為等価に扱う事ができない→ ロードバランサは階層化されている #kernelvm"
- Fadisさんのツイート: "変態アーキテクチャAMD EPYC7601の場合、2物理 * 4ダイ * 2CCX * 4コア * 2スレッド (1ソケットに複数のダイが載っている) #kernelvm"
- [試して理解] Linuxのプロセススケジューラのしくみ - Speaker Deck
- まさみさんは語りたいさんのツイート: "マルチテナントRDBをコンテナで動かすとき、unprivilegedなコンテナを使うと、一部のプロセスをRTタスクに出来なくて困るっていう話をオラクルがしてる。面白い。"
- まさみさんは語りたいさんのツイート: "cgroupsで予め制限してる場合は許可する、というアイデアが出ていて、これは良さそうに見える。シンプルだし一貫性がある。"
- まさみさんは語りたいさんのツイート: "RTプロセスがコンテナ内で動かせないのはちょっと制御向けにも困るかも。"
- satさんのツイート: "linux 2.6.23以前は特定の挙動(無限ループよりもうちょっと凝ったやつ)をするプロセスを20-30個ほど立ち上げればシステムを事実上ハング状態にできたのじゃよ"
- Fadisさんのツイート: "一部のCPUの排熱が追いつかなくて最大動作周波数を下げても、その事を知らないLinuxのスケジューラが容赦なくタスクを投げてきて結果としてタスクの完了が遅れるのイケてないから、温度をスケジューラの判断材料にしようという試みがなされているらしい (リンク先有料記事) https://t.co/7vKxG5oVi8"
- Fadisさんのツイート: "Linuxカーネルは起動時にチップセットのタイマーが動く事を確認するけど、ナウいIntel CPUとナウいチップセットではタイマーが消費電力を抑える為に使う事を明示しないと動かないようになっていて、割り込み返ってこなくてカーネルがpanicする問題が解消された話 https://t.co/qjnpC8nN1x"
- The Linux Kernel Getting Fixed Up For Booting On Some Intel Systems - No "8254" - Phoronix
- FadisさんはTwitterを使っています: 「Stadiaでゲームを作っている人が「Linuxのスケジューラの性能が悪いせいでStadiaのゲーム作るのが辛い」というベンチマークを出していたの対してLinus Torvalds氏が「指摘は間違っている。計測方法に問題があり無関係な物を測っている。純粋なるゴミ」という解説をしている話 https://t.co/yIXR6bNIMp」 / Twitter
- Torvalds' Comments On Linux Scheduler Woes: "Pure Garbage" - Phoronix
- FadisさんはTwitterを使っています: 「ゲーム屋さん、いつでも処理が16ミリ秒以内に完了しないと死んでしまう呪いがかかってるから、ミリ秒オーダーで遅れる事があるほげふがを回避する為に変な事しだすのは、実際よくあるんだよな」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「クラウドサーバ提供ベンダー(DigitalOcean)が、Linuxのスケジューラを弄って、安全なスレッドペアのみ同一コアSMTで実行、という改変をした話、、、ただ劇的な改善ではなさそう。 (あと個人的にはここのクラウド、spam業者御用達なイメージある) https://t.co/x92Azmlhei」 / Twitter
- DigitalOcean & Others Still Working On Core Scheduling To Make Hyper Threading Safer - Phoronix
- 井山梃子歴史館さんはTwitterを使っています 「LKML: Peter Oskolkov: [PATCH for 5.9 0/3] FUTEX_SWAP (tip/locking/core) Gのユーザレベルスケジューラ、switchtoと呼ぶらしい https://t.co/kXZSPOkMa2」 / Twitter
- LKML: Peter Oskolkov: [PATCH for 5.9 0/3] FUTEX_SWAP (tip/locking/core)
- FadisさんはTwitterを使っています 「IntelがLinuxのプロセスのnice値がCPUのスケジューリングだけでなく、GPUのスケジューリングにも影響を与えるようにする変更を提案している。これを実現するにはGPUのドライバに手を入れる必要がある為、Intelが提案する変更ではi915ドライバで動くIntel GPUのみが対象になる https://t.co/7CIiG0mUZU」 / Twitter
- Intel Exploring CPU+GPU Synchronized Priority Scheduling For Linux - Phoronix
- FadisさんはTwitterを使っています 「GPUはCPU同様複数のタスクをスケジューリングして実行しているがこのスケジューラには現状プロセスのnice値が反映されていない。この結果、プロセスがGPUを使えば使うほどnice値の効果が無くなる。GPUのスケジューラはハードウェアの機能になっている事もある為、どんなGPUでもこれができるかは怪しい」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「GPUが(I/Oスケジューラのように)CPUと別スケジューラなら、ionice のように独立した優先度指定が素直な気も。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu ioniceも通常使うbest effortはnice値みてます?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho それは知りませんでした。情報ありがとうございます。 https://t.co/uSFBnt82DS」 / Twitter
- ionice(1) - Linux manual page
- 2013年7月4日 Linux 3.10登場 ─SSDキャッシング,マルチタスキング,Btrfsなど注目機能搭載:Linux Daily Topics|gihyo.jp … 技術評論社
- 2017年5月1日 Linux 4.11が正式リリース,プラガブルI/Oスケジューラ,Gemini Lakeのサポートなど:Linux Daily Topics|gihyo.jp … 技術評論社
- Linuxのしくみを学ぶ - プロセス管理とスケジューリング
- Linux スケジューラーのコア実装とシステムコール
- 【論文紹介】The Linux Scheduler: A Decade of Wasted Cores (2016)
- [2017.03.21] システム系輪講会 (nhiroki) - Google スライド
- Linux スケジューラーのコア実装とシステムコール - Qiita
- stolk/ThreadTracer: Lightweight inline profiler that measures wall-time, cpu-time and premptive context switches for threads.
- Linux のハードウェアタイマーの話 - NyaRuRuが地球にいたころ
- 産総研:高精度な実時間OS「ART-Linux」を公開
- 【Linux】Load Averageに関するいろは - Qiita
- Fadisさんのツイート: "これな、待ちプロセスが多いとロードアベレージは上がっていくから、経験則で「ロードアベレージいくつ以上はヤバい、アラートだ」みたいなイカれた監視がなされたサーバで、監視に検知されないギリギリのプロセス数で制限するコードを書く羽目になったりな…"
- タスクスケジューラ用のsysctlパラメタ - Qiita
- 【読解入門】Linuxカーネル (スケジューラ編その3-3) - Qiita
- Linuxでロードバランサやキャッシュサーバをマルチコアスケールさせるためのカーネルチューニング - ゆううきブログ
- 2020年6月2日 Linux 5.7がリリース ―サーマルプレッシャー,exFAT,iOS用USBドライバなど:Linux Daily Topics|gihyo.jp … 技術評論社
Windows
- Windows XP/Vista のスレッドスケジューラと Hyper-Threading - NyaRuRuが地球にいたころ
- Windows Vista: Multimedia Class Scheduler Service - NyaRuRuが地球にいたころ
- Multimedia Class Scheduler Service (MMCSS) (1) - NyaRuRuが地球にいたころ
- Multimedia Class Scheduler Service (MMCSS) (2) - NyaRuRuが地球にいたころ
- Multimedia Class Scheduler Service (MMCSS) (3) - NyaRuRuが地球にいたころ
- MMCSS とネットワークパケット受け取りの抑制 - NyaRuRuが地球にいたころ
- GiB Age - NyaRuRuが地球にいたころ
- Windows のハードウェアタイマーの話 (1) - NyaRuRuが地球にいたころ
- Windows のハードウェアタイマーの話 (2) - NyaRuRuが地球にいたころ
- Windows のハードウェアタイマーの話 (3) - NyaRuRuが地球にいたころ
- プリエンプティブなスレッド切り替えの時間共鳴 - NyaRuRuが地球にいたころ
- Windows 7/Windows Server 2008 R2 が 256 プロセッサまでしか "対応" しない理由を予想する - NyaRuRuが地球にいたころ
- 佐祐理ブログ: Windowsの各種Timerの精度について
- 処理速度の遅いcurrentTimeMillis() – 前編 | POSTD
- 処理速度の遅いcurrentTimeMillis() – 後編 | POSTD
- Masaru Iritaniさんのツイート: "英語の記事ですが、Windows カーネルのスケジューラーがどう進化してきたか詳細に説明されています。1792 論理コアを表示するタスク マネージャーは圧巻です。 https://t.co/e44pBEol77"
- One Windows Kernel - Microsoft Tech Community - 267142
- Windows 95ではマウスカーソルをぐるぐると動かすと処理速度が早くなることがあった - GIGAZINE
- ASCII.jp:基礎から覚える 最新OSのアーキテクチャー
OSDN
- 「Linuxカーネル3.12」リリース | OSDN Magazine
- Linuxカーネル3.13リリース、nftablesやブロックデバイスレイヤーの改良などが特徴 | OSDN Magazine
- 新たなSSDキャッシュ「bcache」を実験的に導入、Linuxカーネル3.10が登場 | OSDN Magazine
- Linuxカーネル4.11リリース、プラガブルなI/OスケジューラやSSD向けスワップ機能などを実装 | OSDN Magazine
Wikipedia
- コンテキストスイッチ - Wikipedia
- スケジューリング - Wikipedia
- Scheduling (computing) - Wikipedia
- FIFO - Wikipedia
- ラウンドロビン・スケジューリング - Wikipedia
- 多段フィードバックキュー - Wikipedia
- Earliest Deadline First - Wikipedia
- Least Slack Time - Wikipedia
- レートモノトニックスケジューリング - Wikipedia
- 優先度つきキュー - Wikipedia
- リングバッファ - Wikipedia
- 優先順位の逆転 - Wikipedia
- Bulldozer (マイクロアーキテクチャ) - Wikipedia
Qiita
- Linuxの各タスクにおけるスケジューリング統計情報 (procfs) - Qiita
- 科学実験のようにスケジューラの挙動を確認する - Qiita
- Linuxのschedのpriorityとリアルタイムシステムについて - Qiita
- 科学実験のようにスケジューラの挙動を観測する - Qiita
- linuxカーネル4.1のプロセススケジューラ(ドラフト) - Qiita
- Linux スケジューラーのコア実装とシステムコール - Qiita
Twitter
その他
- なかのん DAYS''さんはTwitterを使っています: "OS X、久々に触ると、やっぱ、アクティブなウインドウのプロセスの優先度が高くならないのがWindowsユーザからすると不便というか違和感というか。"
- とみながたけひろさんのツイート: "15年前に作ったカーネルはカーネル・割り込みハンドラ内でもFPU使えるしFPUレイジーコンテキストスイッチもやってたけど、5年前の奴は「もうSIMD使うのが前提でコンパイラが最適化してくるから」ってのでレイジーはやめたな(もちろんカーネル内でSIMD使えるようにしてた)"
- NetBSD ドキュメンテーション: どのように lazy FPU コンテキストスイッチは動作するのか
- 酔漢@ニャー将棋さんのツイート: "コンテキストスイッチ、割り込み出入り口は可変長例外フレーム対応、レイジースタッキング対応になった。例外は可能なかぎりレイジースタッキングを壊さないので、割り込みハンドラ内部で浮動小数点演算をしなければ、オーバーヘッドは小さいまま。"
- K.Namba/ご注文は910ですか?さんのツイート: "Windows の Kernel でストレージを動かそうというのは、やはり無駄が多すぎるのではないか・・・ 限界まで専用化された NAS OS には敵わないよなー。 ストレージ向けのスケジューリング/コア割り当てなんかが出来るようになるともう少しよくなるかもしれない。"
- Nerry@さんのツイート: "HIDがビジーループに入るとメインスレッドがなぜか死ぬと思ったらHIDスレッドがyieldしないでpreemptionされるまで動くことによってメインスレッドが期待するtickの値がスキップされていた"
- ysksさんのツイート: "なぜ macOS/iOS の CPU は 100% にならないのか。その謎を解明するため取材班は XNU アマゾンの奥地、MULTIQ スケジューラ遺跡に向かった。 https://t.co/zC6r6WoFHX"
- sched_multiq.c
- SODA Noriyukiさんのツイート: "どこかで同期とるような並列プログラムだと、一番遅いプロセスに足を引っ張られるので、同じ処理やってて実行時間がバラつくのは大問題なのよね。McKernel が解決しようとしてるのもそこ。"
- まさみさんは語りたいさんのツイート: "SMTをOSレベルでずっとHALT状態にしておいて、カーネル内の小さい並列化できるタスク動かすのだけに使えないかな。メモリコピーとか。(つまりソフトウェアDMAエンジン)"
- まさみさんは語りたいさんのツイート: "一部のセキュリティ問題でHTとかSMTが阻害されるのはもったいない。ユーザ空間のスレッドに関しては同一コア上のHT/SMTを利用できる(ただしどちらかがシステムコールに入るともう一方は抑制されるか別コアに送られる)とか。"
- Nerry@さんのツイート: "プリンプションのペナルティ実装したらウィンドウマネージャーがウィンドウの再描画移譲受けてる関係でちょっと重いウィンドウあると常にペナルティ受けててうーん"
- Susumu Yamazakiさんのツイート: "私たちがした実験でも,1コアを絞り出さなくても並列にすることで劇的に性能は上がります。一見意外なことに,そもそも並列にするとどうしても1コアあたりのパフォーマンスは落ちます。実はこらはアムダールの法則で説明できます。… "
- 鹿さんのツイート: "> 1コアの処理能力を絞り尽くして初めて並列処理という話になってくる。 全然そんなことないから、これだけ読んで勘違いしないで欲しい。 1コアの50%しか使ってなくても、shared nothingな構成で8コア並べたら、1コアを使い切った場合に比べて性能4倍。 CPUを使いこなすより並べる方が安い時代。… https://t.co/omYxaz0X4z"
- Igaguriさんのツイート: "多分この人が思っているのは並行処理であって並列処理ではない。 並列処理は計算がボトルネックになっている処理を高速化するためにコアを複数使うことで、そもそも1コアの処理能力を絞り尽くして初めて並列処理という話になってくる。 関数型や論理型で実際のCPUやGPUの能力を絞り尽くすのは困難。… https://t.co/Z9FuFt4jmQ"
- LAL(Light AI Lab)さんのツイート: "Elixirで並行処理、並列処理を書いてみて、並列の時代の到来を実感しました。並列を活かすためには関数型プログラミング、論理型プログラミングへジワジワとパラダイムシフトしていくだろうと私は予想しています。若いエンジニアの方々はElixirの並行処理を学んでおけば、職場で重んじられるのでは?"
- 社会人でもOSを作りたいさんのツイート: "OSに求められる役割の一つであるリソース分配は,上に乗るアプリによって方針が変わる.ユーザ単位でフェアに分配するのか,プロセス単位でフェアに分配するのか,システムプロセスの優先度を上げるかどうか,とかも. #osdev_moku2"
- デダルス・ユメノさんのツイート: "メモ:work-conserving schedulerとは,実行可能ジョブがある限り,制御対象のリソースを常に稼働させるように制御するようなスケジューラのこと。うまくジョブの順序とかを入れ替えたりしてリソースがフル稼働するように制御する。"
- Hideyuki TanakaさんはTwitterを使っています: 「>The runtime measures the time it takes to perform the blocking operation and if it takes a while, a new thread is automatically spawned and replaces the old executor thread. はぇぇ(´・_・`)」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「てかこれ別にブロックしてなくてもasyncって書いてある関数が実行に時間かかってるなーって感じだったら勝手にスレッド作って元の関数の続きを実行し始めるんすか?」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています: 「いい加減なタスク並列をいい感じのスレッドプールでほとんど何も書かなくても並列化してくれたりするん?(´・_・`)」 / Twitter
- Miura HidekiさんはTwitterを使っています: 「これ見て驚いた。そういやjemallocでもロックの競合状況みて競合しているようならarena増やすみたいなことをやっていたな。」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています: 「まぁそうでなくてもOSのスケジューラがゲームみたいなイベント駆動型のソフトウェアに強く影響を与えるなんてのはほとんどありえないよ。 だからずーっとOSレスな業界だったでしょ? https://t.co/d2M9Sr81OM」 / Twitter
- 【イベントレポート】【速報】Intel、第10世代Core後継「Tiger Lake」の実機を初公開 ~10nm+プロセス/Thunderbolt 4/Xe GPU内蔵で2桁%性能向上 - PC Watch
- Miura HidekiさんはTwitterを使っています 「これを見て、マルチスレッドの自動分散を連想した。自動分散をおこなうにはスレッドの負荷状況を調査する必要があるけど、そればっかりやっていると遅くなる。jemallocのロックの競合割合から推定するとか賢い方法があるといいのだが。」 / Twitter
- mattnさんはTwitterを使っています 「@miura1729 今はコンテキストスイッチ重そうですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@mattn_jp 確かに」 / Twitter
- mumumuさんはTwitterを使っています 「Slite: OS Support for Near Zero-Cost, Configurable Scheduling [RTAS '20] システムのスケジューラがユーザランドにいて(Kernel Bypass),各スレッドはKernelがActivateされた時に(Lazyに)帳尻合わせをすることで,高速かつ柔軟(ユーザランドでAppに合わせTune可能)なRTOS向けスケジューラを実現」 / Twitter
- mumumuさんはTwitterを使っています 「Arachne: Core-Aware Thread Management [OSDI '18] 短時間・大量に実行されるスレッドで動作するタイプのAppが,自身の変化(ワークロード変化に追従するためコアを欲しがる等)や周囲の変化(他のシステムの処理増加によるコアの取り上げ等)に柔軟に対応するための調停プログラム/runimeを実装」 / Twitter
- mumumuさんはTwitterを使っています 「Demand-based coordinated scheduling for SMP VMs [ASPLOS '13] 前半でIPIがマルチスレッドAppの同期/通信の調停に使われていることを定量的に示し,後半でFairnessを損なわないようにIPIをvCPUのスケジューリングに組込む方法を述べてた気がする.前半はThe サイエンスという感じで結構面白かった.」 / Twitter
- mumumuさんはTwitterを使っています 「Reconciling High Server Utilization and Sub-millisecond Quality-of-Service [EuroSys '14] 複数のLatency-Sensitiveなタスクを一つのサーバでホストするときに問題となる原因(Interference, スケジューラの問題,load imbalance など)を検証し,その対策を検討した.*サイエンス*を感じる論文」 / Twitter
- mumumuさんはTwitterを使っています 「ROSCH:Real-Time Scheduling Framework for ROS ROSのノードをリアルタイム動作させるために,DAGスケジューリングや同期機構などを実装した話.RTOSでROSを動作させる等いろいろ方法はあると思うけど,Linux上で実装しているのは面白い.あと評価で某自動運転ソフト使っていたので良さがある.」 / Twitter
- mumumuさんはTwitterを使っています 「Affinity-Aware Dynamic Pinning Scheduling for Virtual Machines [CloudCom '10] VM上のOSがAffinityに基づくスケジューリングができるように(というかAffinityの意味があるように),pCPU Run Queue対して動的に選択したvCPUをPin. https://t.co/jKUQFGBHXb」 / Twitter
- Affinity-Aware Dynamic Pinning Scheduling for Virtual Machines - IEEE Conference Publication
- mumumuさんはTwitterを使っています 「Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance [ATC '20] 最近はコアごとに動的に周波数が変わるが,しばしば周波数が低いコアにタスクがあり,周波数が高いコアがアイドルしてしまうことがある. https://t.co/2TraqYUbSo」 / Twitter
- Fewer Cores, More Hertz: Leveraging High-Frequency Cores in the OS Scheduler for Improved Application Performance | USENIX
- mumumuさんはTwitterを使っています 「@shirouzu いえ,自分の理解では 1. よく動いているコアでfork 2. となりの遅いコアで子プロセスが動き始める(遅い 3.よく動いているコアはwait()して,結局そのコアはidle 4.スケジューラはそれに気が付かずRESCHEDしないから,遅いコアで子プロセスが動き続ける みたいな感じです.」 / Twitter
- mumumuさんはTwitterを使っています 「Corey: An Operating System for Many Cores [OSDI '08] 古典だが実は読んだことなかった.Multicore上でのスケーラビリティのために,Appが他コアとシェアするオブジェクトを選択できるIFを提供するOSを開発.Fig.1(Linuxがスケールしない図)は非直感的で面白い.https://t.co/eFHuUklDFW」 / Twitter
- Corey: An Operating System for Many Cores | USENIX
- mumumuさんはTwitterを使っています 「SKQ: Event Scheduling for Optimizing Tail Latency in a Traditional OS Kernel [ATC '21] FreeBSDのKqueue(Linuxでいうepoll)でより高度なスケジューリングをして,マルチコアでスケールするよう改良.既存のOS上でTail Latencyを大きく改善 https://t.co/I8YMwgFhTh」 / Twitter
- SKQ: Event Scheduling for Optimizing Tail Latency in a Traditional OS Kernel | USENIX
コンテナ
- 🚀GRIMM・ZOU🐘さんのツイート: "ISUCON7優勝者と社内ISUCONに出て学んだ12のこと - ps aux | grep serinuntius https://t.co/tfnvd3HCVg dockerが本当にボトルネックなのかという質問(?)があったので検証してみました。結果としてはdockerから剥がすだけで100万点から144万点に上がりました。"
- はてなブックマーク - ISUCON7優勝者と社内ISUCONに出て学んだ12のこと - ps aux | grep serinuntius
- satさんのツイート: "コンテナだと仮想化よりもカーネルのスケーラビリティの問題を引きやすいってところか"
- Guutara (⁰⊖⁰)さんのツイート: "それは、コンテナだからってことなんすか? プロセスのスケーラビリティの問題点だけど、コンテナの方がそれを引き起こしやすい、あるいは、引き起こしたときに、わかりにくいって話? VM との対比は、たぶん、理解できたと思うのだけど...… "
- satさんのツイート: "コンテナのほうが起きやすい、起きてもわかりにくいって話ですね。 例えば10000プロセス同時進行で問題の出る処理があったとしてコンテナなしで10000プロセス同時進行になるより100コンテナで100プロセスが同時進行のほうが起こりやすい、かつ後者はコンテナのしくみがわかってないと理解できないので… https://t.co/0pwFzhq76i"
- まさみさんは語りたいさんのツイート: "Dockerコンテナ、ネットワークについては名前空間が分かれているのでスケーラビリティ問題は解決するものの、分かれていない所は無理だもんなあ。"
- まさみさんは語りたいさんのツイート: "OSを名前空間っていう取ってつけた仕組みで共有するので、リソースの競合が発生するところは発生する。競合によって性能が劣化する場合もあるし、複数のコンテナを動かすというところで発生しやすくなると思うが、この辺りってコンテナホスティングしていた運用会社にはノウハウ溜まってるんじゃない?"
- まさみさんは語りたいさんのツイート: "コア数の多さでスピンロックなどの競合が起きやすくなるんだけど、例えば仮想サーバを使ってOSをコアごとにある程度分離すると、実質的にロック競合の発生しやすさは下がる。逆にコンテナを使ってOSを共通で使うと、共通リソースに対するロック競合の発生しやすさは変わらないだろう。"
- まさみさんは語りたいさんのツイート: "実際にはリソースの使い方が変わるから、例えばプロセス数が単純に増えるから、一部リソースに対するロック競合は却って増えると想定できる。"
- まさみさんは語りたいさんのツイート: "コンテナ毎のプロセスのスケジューリングを階層化すればあるいは・・・。"
リアルタイム性
- satさんのツイート: "linuxのスケジューラの古いやつ(2.6.23以前)と今のやつの違い - 動的優先度は無い - activeキューとinactiveキューなんて区別は無い - nice値ごとの固定タイムスライスではない - sched_yield()は自分自身を再度スケジュールすることが多い"
- satさんのツイート: "あと若干話しがずれるけど、いまのlinuxのスケジューラだとsched_yieldでコンテキストスイッチ狙う手はほぼ通用しないっすよ。ほぼnop"
- まさみさんは語りたいさんのツイート: "リアルタイムプロセスでもそうだっけ?… "
- satさんのツイート: "リアルタイムは別ですね。O(1)時代のままで、複数RT taskがいればyieldで次のタスクに制御が移ります。… "
- まさみさんは語りたいさんのツイート: "ですよねー。結局ノーマルアプリはスケジュールとか考えるなと。… "
- satさんのツイート: "SCHED_OTHER: リアルタイムではない SCHED_{FIFO,RR}: リアルタイムのふりをしている何か SCHED_{DEADLINE}: リアルタイムに似た何か"
- satさんのツイート: "リアルタイム性ってスケジューラだけでどうにかなるもんではなくて割り込み使ったら負けとかいろいろありますからねー"
- まさみさんは語りたいさんのツイート: "何を以てリアルタイムというかは、人によって違うというか、誤解してる人が多数いますからね。特にRTOS村の住人…… "
- Satoru Uedaさんのツイート: "https://t.co/9y3FbRKczl とりあえず、こんなのを・・・。 #celfjp… "
- Frequently Asked Questions - RTwiki
@rockridge07
- Rockridgeさんのツイート: "記事の後半にQuantum DOMの解説がある。Firefoxのプチフリ発生を抑えるため、DOM処理をスケジューリングしてマルチスレッドで行う仕組みを、OSに頼らず自前で用意するらしい。 / “Mozilla’s Quantum…” https://t.co/gbCBfFhOH4"
- Rockridgeさんのツイート: "Chrome 57ではバックグラウンドのタブのCPU利用率を制限する措置が導入され、これにより消費電力が減った。ただし、音声の再生やWebRTCのコネクションは従来通りだという。 / “Chromium Blog: Reduci…” https://t.co/24L1khCCtd"
@makoto_kato
- Makoto Kato ︎︎さんのツイート: "Windows 10の最新カーネルだとHeterogeneous Schedulingサポートしてるのか (要はbig.LITTLEみたいな構成)"
- Makoto Kato ︎︎さんのツイート: "https://t.co/1VPmrML5HO Windows internalの最新版にbig.LITTLE用の機能について記述されてんのに何言ってんだろうか。こういうライターって勉強足りないよね"
@kazuho
- Kazuho OkuさんはTwitterを使っています: "H2O の http2 スケジューラを改善して分かったんだけど、128段までの priority queue だったら、今時ヒープ使わないほうが良さそう"
- Kazuho OkuさんはTwitterを使っています: "linux の CFQ も、なんで red-black tree なんだろという疑問。リングバッファにできないほど優先度の幅が広いのかしら"
- Kazuho OkuさんはTwitterを使っています: "@kazuho あー s/CFQ/CFS/"
- Kazuho OkuさんはTwitterを使っています: "http://t.co/UTau7Sn2p5 を見ると linux の O(1) スケジューラは weighted fair queuing じゃなかったぽいな。それなら CFS のが公平性でのメリットがありそう"
- Kazuho Okuさんのツイート: "HyperThreadingの影響を考慮したベンチマーク(つまり、1つの物理コアに2つのスレッドを固定した状態のベンチマーク)をとりたいんだけど、macOSだと無理なのかな..."
- Kazuho Okuさんのツイート: "https://t.co/Bje8kGJnZj 確認しましたが hinting API ですね… "
- Affinity API Release Notes for OS X v10.5
- The Search for Planet Nine: The orbit of Planet Nine
CPU・GPU 使用率の計測
CPU 使用率に応じて CPU 周波数を動的に設定
- Homepage Johannes Hofmann - estd
- ryo/estd: estd with temperature limit feature. (forked from http://flpsed.org/estd.html)
PC Watch
- プレビュー版Windows 10のタスクマネージャーに“GPU”が追加 ~プロセスごとのGPU使用率などを確認可能に - PC Watch
- タスクマネージャーに新設されたGPUのパフォーマンストラッカーを改良 ~プレビュー版Windows 10「Build 16237」 - PC Watch
- Windows 10プレビュー版タスクマネージャーのGPU表示が“マルチエンジンビュー”に変更 - PC Watch
- Windows 10 RS5のタスクマネージャーでアプリの電力使用量が確認可能に - PC Watch
- Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
- 【福田昭のセミコン業界最前線】不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 - PC Watch
窓の杜
- 「Windows 10 RS5」の「タスク マネージャー」は電力を浪費するプロセスの特定も可能 - 窓の杜
- タスク マネージャーがさらに強化された「Windows 10 Insider Preview」Build 16241 - 窓の杜
- 「タスク マネージャー」に新機能“エコモード”、Edgeのプロセス分類も ~プレビュー版Windows 10でテスト開始 - 窓の杜
blog
- LinuxでCPU利用率を取得する
- CPU使用率は間違っている | Yakst
- タスクマネージャに表示されるメモリ使用量 - NyaRuRuが地球にいたころ
- htopコマンドで覚えておきたい使い方11個 | 俺的備忘録 〜なんかいろいろ〜
- topコマンドで覚えておきたい使い方14個 | 俺的備忘録 〜なんかいろいろ〜
- インフラのボトルネックについて知る - ぺい
- アクティビティモニターの作り方 - 借り初めのひみつきち
Twitter
- satさんのツイート: "CPU統計情報の%stealってよく考えたらひどい単語チョイスだな。むしろお前がhostからCPU取ってるんだろうがという"
- SODA Noriyukiさんのツイート: "@ksmakoto load average は、(実行中or実行待ちのプロセス数)+(disk I/O中 or disk I/O待ちのプロセス数) の移動平均ですから、4core CPUのうちの2core が CPU使用率 100% で回ってる状態(すなわち CPU能力の半分が遊んでいて暇な状態)… https://t.co/l37EDW4Qpg"
- Shiro Kawaiさんのツイート: "すっごく面白い。色んなものをサンプリングで監視してるとグラフが振動しておおビート出てるなあと思うことはよくあるけどこんなに綺麗に説明がつけられると気持ちがいい。https://t.co/COfCSGkcYr"
- Linuxのloadavgが約7時間ごとに上昇する現象の原因 - Mackerel ブログ #mackerelio
- Shiro Kawaiさんのツイート: "エイリアシングを防ぐためにランダムにずらすって手法もあるけどこういう統計情報取る時はあんまりやらない方がいいのかな?"
- モッチー@少年クリプト編集長さんのツイート: "Coinhive(コインハイブ)裁判の第二回公判 高木浩光氏の証人尋問も傍聴してきました。 今回も『弁護士ドットコムNEWS』さんがわかりやすくまとめてくれていますが、書かれていないことをスレにまとめていこうと思います。 https://t.co/wm2wVErPob"
- コインハイブ事件 高木浩光氏が公判で証言「刑法犯で処罰されるものではない」 - 弁護士ドットコム
- モッチー@少年クリプト編集長さんのツイート: "弁護側の証人喚問の内容はおおむね記事の通り。 しいて言えば高木氏いわく検察が言う『負荷』と『CPU使用率』は別物とのこと。 負荷とはスレッドの数であって、CPU使用率が高いからといって負荷ではないそうです。"
- なかのん&マジックさんのツイート: "WindowsのタスクマネージャーのGPU使用率が10%いっていなくてもWMPで動画を再生してたらFirefoxの動作速度落ちたり、マウスカーソルの追随が怪しくなったりするけど、どういう理屈なんだろう。GPU周りまったく分かってない。"
- Kazuho OkuさんはTwitterを使っています: 「使用率n%のキューにおいて、キューへの追加がランダムな間隔で発生する場合の平均待ち時間はいくら、っての定式化できそうっーか誰かやってそう」 / Twitter
- みょうがさんはTwitterを使っています: 「@kazuho M/M/n 待ち行列っぽい」 / Twitter
- dancerj 🗾さんはTwitterを使っています: 「@kazuho M/M/1待ち行列とかですか。」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「各所からツッコミが入ってるように(RT参照、ありがとうございます)待ち行列の平均待ち時間なので、例えば使用率80%なら、応答時間の期待値は使用率0%の場合の5倍である、ということになるのかしら。あってる?」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「CPU使用率80%がいかにヤバいか始めて身にしみた頭でっかちさんがこちらになります。経験はいっぱいあるのにね」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「あーだからcpuを複数にしたり、キューを処理するスレッドを複数にしたりすると使用率が高い場合でも改善が見られるのかな」 / Twitter
- TamrinさんはTwitterを使っています: 「誰か世の中に蔓延る CPU 使用率に関する誤解を解いてくれと思ってたら、@pei0804 がそれらしき記事を書いてくれてた もっと書いてくれ https://t.co/7Rxk2pcJZR」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、昔から思ってるなぁ…SMTが一つの解だろうけど、さほど上手くいっているようにも見えず。 https://t.co/ZWkiMasyN3 NVDIMM-P でも、そのあたりの解決をどうするのだろう?と思いつつ…NANDストールの粒度だとOSスケジューラと連携すべきだろうなぁ。 https://t.co/a5gOuUovTH」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「NVDIMM-Pはメモリ操作にアウトオブオーダーや非同期的な動作をサポートする様子。 やはりOS側のページ操作でも、データがSSDにのみでDIMMにない場合は、ページフォルト的な仕組みを入れねば厳しそう。 「不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来」 https://t.co/lrZfYQrDif https://t.co/5HIhuEIwzA」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「@shirouzu それに比べNVDIMM-Pは、局所性が落ちるとDIMMより桁外れCPUストールが発生しそうな印象。 (仮想記憶と違い、アンヒット時(flash参照時)にCPUは身動き取れないとするとHW/OS共々専用対応必須?) https://t.co/DCGq74hDuC」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「「SMTが一つの解」は、メモリストールで動かない時間を減らす、という意味。」 / Twitter
- FadisさんはTwitterを使っています 「Linuxに新しい擬似FS statfsが提案されている。statfsはカーネルが収集した統計情報を読めるFS。現在そういう物はdebugfs等から生えているが、debugfsはrootしか気軽に読めない事、権限の変更を都度挟むのがミスの元な事、そもそもそれはdebugではない事から分離したいらしい https://t.co/FHABYjq6A3」 / Twitter
- Statsfs: A Proposed Linux File-System For Kernel Statistics - Phoronix
- Kazuho Okuさんのツイート: "tiptopコマンド知らなかった / “CPU Utilization is Wrong” https://t.co/rThFdwM531"
- CPU Utilization is Wrong
- κeenさんはTwitterを使っています 「これは本当に分かる。CPU使用率が100%のときに「で、これは本当に計算に時間かかってるの?」ってなって面倒くさいよね。 CPU Utilization is Wrong https://t.co/ed5Qi4HzP8」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「アプリの純粋な計算負荷のCPU100%が一番穏健で、割り込み多発が一番厳しいかな? (メモリ不足=スラッシングだとCPU100%にならないはず)」 / Twitter
- 🦈sat🐢さんはTwitterを使っています 「性能測定の肝は「何をしたいのか明らかにする」ですね。それがないと迷走するだけだから 別に性能測定だけに限らんけどこいつはとくに「なんやしらんがとりあえず測る」がとても多い」 / Twitter
- uint256_tさんはTwitterを使っています 「GPU-Utilの意味がよくわかっていない(どうやって計算しているの)」 / Twitter
- shinichiro hamajiさんはTwitterを使っています 「@uint256_t 単にカーネル起動してる時間で、 top で見る CPU 利用率と同じ感覚で良いと思っています。100%だからといって、効率の良い計算をしているかとかはわからない感じといいますか」 / Twitter
- uint256_tさんはTwitterを使っています 「@shinh なるほど。(そもそも100%にすら届いてくれないので困っていました)」 / Twitter
- this is matsuu speakingさんはTwitterを使っています 「コンテナの中での実行を想定したtopコマンド。通常のtopコマンドをコンテナ内で実行するとホストのCPU/メモリ/uptimeなどが見えてしまうが、このtopicであればcontainer内に閉じたtop結果を確認できる。わいわい。golang実装 / “GitHub - silenceshell/topic: top in conta…” https://t.co/fhP9cRWfIC」 / Twitter
- silenceshell/topic: top in container.
- インテル® パフォーマンス・カウンター・モニター - より優れた CPU 使用率の測定方法 | iSUS
- CodeZine(コードジン)
- CPU使用率とは|CPU利用率|CPU負荷率|CPU utilization - 意味/定義/解説/説明 : IT用語辞典
- Windows 10のタスクマネージャーの新機能「GPUグラフ」が見当たらない理由とは:その知識、ホントに正しい? Windowsにまつわる都市伝説(107) - @IT
- CPU Steal Time 入門 - Qiita
- Windowsの「タスクマネージャー」を開発した本人が直々に使い方や知られざる機能を伝授 - GIGAZINE
I/O スケジューラ
単位
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの速度表示、MB/sとなっているのだが、実際は2^20なMiB/sでの値を表示している。 MiB/s に直すか、10^6な MB/s に変更するか、ちょいと迷い中。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "少し前に FastCopyでのサイズ表記をMB→MiBに変更したのだが、やはり気になる人は居る様子。 でも、MBをサポートするなら10^6計算にしないとなぁ。 https://t.co/AylO3FFOxk"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "『MBをMiBと正確に表記することは、「一杯の紅茶を飲んだ」ではなく「236.588mlの紅茶を飲んだ」と表記するようなもの』 なるほど、面白い(笑) https://t.co/hz0xSDno2A"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「どのストレージデバイスも、MB表記ばかりでMiB表記は見たことが無い」 うーん、それはベンダが大きな数で表記したいだけの話でして。 以前のFastColyはMiBで計算してMB表記するという、MS Windows方式なのでちょっと違うんですが、、、"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "配慮する場合、10^6でMB表記オプションを追加、ですね。 ちなみに、CrystalDiskMarkがその表記なので、以前のFastCopyだと、同じ実効速度でも低い値に表示されてしまうという、、、… "
- Kengo Sawatsuさんのツイート: "これ、WindowsのエクスプローラがMBって書いてるのに実際はMiBなのもあって悲惨な状況ですよねぇ。 個人的には軽やかに意見をスルーして貰って、FastCopyがMiBを正しく布教してくれる先頭に立ってくれる事を願いますが。。… "
- Kengo Sawatsuさんのツイート: "興味深い?ことなんだけど、Windowsでは1MB*8とか1MB*16とかがよいらしいけれど、Macでは逆で16MB*2とかで一つあたりのI/Oサイズを大きくして重畳数は2とかの方が性能が伸びるように見える"
I/O 優先度
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Vista以降、I/O優先度が設定できるのだが、Win10で優先度低にすると極端に転送レートが落ちる…あくまで他のプロセスI/Oを優先、として欲しいだけなのだが、デバイスのidle時間がやたらと増えるのは頂けない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "具体的には、SetPriorityClass(PROCESS_MODE_BACKGROUND_BEGIN) を発行するとデバイスidle時間が30%~50%くらいに増える。(発行しなければ100%)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "idleの話なので「発行しなければ0%」だった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "むむ、SetThreadPriority(THREAD_MODE_BACKGROUND_BEGIN) だとこんな挙動はしない様子。 MSDNにそんな記述は無いのだが(前述のプロセス版と同じ説明)。 まあ Win32 APIにありがちな話…そして次の将来版で挙動が変わるのもありがち(笑) https://t.co/43KMqs1CXb https://t.co/bi76H7ZOKC"
- SetPriorityClass function | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そして複数のプロセスで競合させ、I/O優先度がきちんと効いていることが確認できた。 (ただ、リソースモニターでは I/O優先度=標準と表示されてしまうのが困りもの)"
I/O・非同期・ノンブロッキング
blog
非同期・ノンブロッキング・CPS
- 非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
- update a content · KeenS/KeenS.github.io@d46dad5
- How does the Go runtime work? What does it consist of? What functionalities does it provide, and what can be expected from a developer perspective? - Quora
- channel - go routine blocking the others one - Stack Overflow
- 「非同期とノンブロッキングとあと何か」について · Issue #1 · KeenS/KeenS.github.io
- Tanaka AkiraさんはTwitterを使っています 「@blackenedgold とりあえず synchronous I/O Operation が変だと思ったので、参照されている記事から IEEE Std 1003.1 に飛んでみましたが、内容だけでなくリンク先が 3.374 Synchronized I/O Completion だったり変じゃないですかね」 / Twitter
- Future パターン - Wikipedia
- Futures and promises - Wikipedia
- Overview of Blocking vs Non-Blocking | Node.js
- 非同期処理を理解する - Sansan Builders Blog
- 【Nginx】非同期IOとノンブロッキングIO - 地方エンジニアの学習日記
- 【Linux】非同期IOブロッキングとかノンブロッキングの話 - 地方エンジニアの学習日記
- ファイル I/O でブロックされているスレッドを殺したくなったらどうするか? - NyaRuRuが地球にいたころ
- Win32 I/O キャンセル API と"ゾンビ" プロセス - NyaRuRuが地球にいたころ
- 非同期とノンブロッキングとあと何か | κeenのHappy Hacκing Blog
- Go pprof 応用編 (CPU 以外のプロファイル) : KLabGames Tech Blog
- .NET非同期処理(async-await)を制御する、様々な方法 – kekyoの丼
- .NET非同期処理(async-await)と例外の制御 – kekyoの丼
- Big Sky :: Golang の channel の使い所
- ノンブロッキングI/Oと非同期I/Oの違いを理解する
- Goへの誤解について - GolangRdyJp
- コールバック地獄から async/await に至るまでと, 非同期処理以外への応用 - Object.create(null)
- JavaScriptの非同期処理Promise・async awaitを学んでみた | Wedding Park CREATORS Blog
Qiita
- 意外と知らないgoroutineのスケジューラーの挙動 #golang - Qiita
- Go Binary Hacks - GoのシステムコールとGo本体のビルド #golang - Qiita
- contextの使い方 - Qiita
- Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita
- Go が他の多くの言語での非同期プログラミングよりも優れている理由 - Qiita
- 非同期 IO について - Qiita
- Linuxにおける非同期IOの実装について - Qiita
- ブロッキングとノンブロッキングの概要 | Node.js
- 非同期I/OとノンブロッキングI/O - Qiita
Twitter
io_uring・AIO
- Fadisさんのツイート: "Linuxカーネルにカーネル空間とユーザ空間で共有されるキューペアio_uringが追加されるらしい。これを利用するとI/Oの結果を受け取るのにシステムコールが不要になる為、Linux AIOより効率の良い非同期I/Oが可能になるらしい。将来的にはPoll Mode Driverも可能にしたいとの事 https://t.co/7yCllXCxSo"
- Linux Kernel Getting io_uring To Deliver Fast & Efficient I/O - Phoronix
- Fadisさんのツイート: "使われないことに定評のあるLinux AIOが使われないままオワコンになろうとしている…"
- Fadisさんのツイート: "扱いが難しくてあまり使われないLinuxのAIOを拡張して、epollよりコンテキストスイッチを抑えられる新しいイベント待ちAPIを作ろう、という提案がなされている。提案しているのはScylladbの人で、これを使う事でSeaster I/Oフレームワークの性能が10%程向上する、としている https://t.co/l6JJovXcs5"
- A new kernel polling interface [LWN.net]
- suzakiさんのツイート: "io_uring https://t.co/g7OwEl0CRS システムコールを発行せずにI/O処理する、つまり、kernel Bypassならカーネルにマージされるコードはないと思ったのですが、(ほぼ)がポイントなのですね。… "
- io_uring IO interface [LWN.net]
- satさんのツイート: "めっちゃ雑に書くと 0. カーネル送信/受信キューの初期化。ユーザ空間にmmap 1. ユーザが送信キューのエントリにI/O要求を書く 2. ユーザがsyscall発行でI/Oをキック 3. カーネルがI/O処理 4. ユーザがI/O完了を確認 1,3,4は非同期なのでI/Oが出続けている限り2は省略できる というかんじです… https://t.co/02q3Y1iLRi"
- Fadisさんのツイート: "io_uring、カーネルがキューをポーリングするようにしてシステムコールを完全に排除するモードの追加は今後の目標とかそんな感じだった筈"
- Kazuho Okuさんのツイート: "io_uring、いつudpまわりも使えるようになりますか"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxで非同期I/Oを改良したio_uring、まだ試してないなぁ。 debian unstable を入れて試してみるかな。"
- satさんのツイート: "すくなくとも5.1では使い物にならなかったです。それ(のうちのすくなくとも一部)をなおすdirty hackパッチを持ってますがまだ投稿に耐えるほど整形してません… "
- satさんのツイート: "より正確に言うと機能にはいくつかモードがあって、一番高速なやつの挙動が怪しいです… "
- FadisさんはTwitterを使っています: 「Linuxのio_uringででかいバッファの後ろの方に対してI/O要求を投げるとI/Oの完了がものすごく遅くなる問題の原因が特定、修正されたらしい。バッファの先頭に対する操作で10%程、末尾に対する操作で755倍程の性能の向上が見られた、とのこと https://t.co/KKiFtVdTDf」 / Twitter
- IO_uring Gets A Huge Performance Fix - Up To 755x Improvement - Phoronix
- FadisさんはTwitterを使っています 「samba-4.12がリリースされたらしい。このバージョンの目玉はio_uringに対応した事。io_uringはlinuxの今熱いシステムコールで、カーネルとユーザ空間の間にIO要求と応答の為の2本のキューを作り、IO要求毎にカーネル空間に移る必要を無くすことで大量の非同期IOを効率よく捌く https://t.co/UA085Q0ep7」 / Twitter
- Samba 4.12 Released With Performance Improvements, IO_uring Support - Phoronix
- ドッグさんはTwitterを使っています 「io_uring のキューをホストとゲストで共有することで仮想マシンでもベアメタルと同等の速度が出せるのか.すごい | 'IO_uring Passthrough For KVM Guests Is Yielding Fantastic Results' https://t.co/384FLF5yb6」 / Twitter
- IO_uring Passthrough For KVM Guests Is Yielding Fantastic Results - Phoronix
- Kengo Sawa2@日本カネ不足協会さんはTwitterを使っています 「Linuxのsmbdに向かって非同期i/oで重畳を重ねるとかえって遅くなったりするなあ、最新のwin10クライアントとかでも微妙にある感じがしてたけど、これどっかでちゃんとまとめてレポート書かないといけないよな」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@KengoSawa2 そんなことあるんですねぇ… Linuxの非同期I/Oは(最近のio-uringは別として)、あまり使われないので枯れない、といった声は聞いたことありますね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「io_uring、マルチスレッド+epollで書かれたサーバプロセスで1スレッド1Gbpsとか余裕で出てNICがボトルネックになるので、全てのユースケースで意味のある技術ではないと思ってる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「極端なケース、たとえば、超遅い接続が大量にあって、受信するデータパケットが小さくて、1バイト読むのにsyscall 1個発行するみたいなケースだともちろん意味があるので、ワークロード次第」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「手元の QUIC の場合だと、10パケット毎GSOの条件で 5Gbps / 0.35 CPU thread とかだから、一般的なコンシューマ回線相手のHTTPだと、オーダは 1Gbps よりも 10Gbps / CPU thread に近いはず。こういうケースで io_uring に意味があるとは考えにくい(なので優先度下げてます) https://t.co/T2r1iQtfc0」 / Twitter
- Improve AEAD performance through use of the fusion AES-GCM engine by kazuho · Pull Request #359 · h2o/quicly
- FadisさんはTwitterを使っています 「Linuxのio_uringはブロックするしかないI/Oを処理するために特殊なカーネルスレッドを作ってプロセスに結びつけるが、gdbがこのスレッドを発見するけどアタッチ出来ない状態になって詰んでしまう問題が見つかり、このスレッドはユーザ空間からどう見えるべきかで揉めている話 https://t.co/SoMHXh6cuV」 / Twitter
- ゆるsyuu1228△さんのツイート: "AviにCCされてるしSeastarでベンチされてるけど提案者は社外の人ではないか?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで、I/Oスレッドをもっと増やした方が速い、と再度コメントしてきた人がいたので、なんだかな…と思いながら長めの返信を書いた。 ただ、ネイティブに「カタコト感満載」「丁寧な返事」「けんか腰」のいずれかに見えるのか、よくわからない(笑) https://t.co/3UUZI0Humc"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "マルチスレッドとオーバーラップI/O の区別が付いていないというオチかな。 それにしても、オーバーラップI/Oがqueue-depthという表現の方がメジャーになったのはなぜかな。 条件が揃えばデバイス側のコマンドキューイングが利用されるとはいえ、元来それと1vs1対応した機能ではないはずなのだが。"
- SODA Noriyukiさんのツイート: "これは知らなかった。*BSD含む伝統的UNIXだとI/O完了を待たないので挙動が違うのね(FreeBSDの場合は、ユーザーランドに見えるブロックデバイスは廃止されてrawデバイスのみになってるけど) RT: Linuxではブロックデバイスに対する非direct I/Oな通常のwriteもデバイスへのI/O完了を待つ… https://t.co/nTcjnftT9c"
- satさんのツイート: "さっきした会話で思い出した豆知識。linuxのブロックデバイスファイルに対する書き込みの特徴 - 非同期書き込み、非direct I/Oな通常のwriteもデバイスへのI/O完了を待つ - このデバイスファイルにページキャッシュは無い。write時はbuffer cacheを使う(I/Oが終わったら捨てる)"
- satさんのツイート: "これらについてはsar -rとsar -d -pを使って監視しながらddを使って通常のファイルとデバイスファイルに書きこむと手に取るようにわかります。"
- satさんのツイート: "あの本ではまったく同じではないけど、こういう話をしています。とにかくOSの挙動を実測 唐突な宣伝すいませんでした"
- Yosuke FURUKAWAさんのツイート: "Node.js の deep な所まで突っ込んで非同期処理の成り立ちを解説した論文、まさかNode.jsの論文があるとは。 / “Semantics of Asynchronous JavaScript” https://t.co/1oCRNOtO82"
- Semantics of Asynchronous JavaScript
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxの場合、(posix aio ではなく)libaioでないと、syscallな非同期I/Oにならない?posix aioだとライブラリ内部でスレッドを使うユーザランドな非同期I/Oになるのかしらん? https://t.co/um1OdyTGsd https://t.co/gyUYGxLgiL"
- バッファキャッシュとAIO(3) - O'Reilly Japan Community Blog
- Kengo Sawatsuさんのツイート: "メモ:macOSにおけるaioのリミット値のデフォルト sysctl -a | grep aio kern.aiomax: 90 kern.aioprocmax: 16 kern.aiothreads: 4 実際16以上同時にぶちこむとエラー帰ってくるよ。"
- Kengo Sawatsuさんのツイート: "Oh,god..... MacでフォーマットしたExFATディスクにaio_writeでパラでデータ書き込むと100%データ壊れるんだけど、これヤバすぎでしょ。。 8MiB*2だろうが16*4のふた通りで試して試行回数3で100%破壊、しかも破壊箇所に再現性なし。。。"
- INADA Naokiさんのツイート: "I/O多重化のメリットを享受しつつ、一般的な(コールバックやasync/awaitを使った)非同期プログラミングのスタイルのデメリットがないという意味です。 Javaとかの普通にスレッド使うよりは軽量になります。 Erlang や Haskell とは同じです。… https://t.co/gLELlykAWx"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "WindowsにしてもUNIXにしても、read/writeの非同期I/Oはあるが、create(open) / remove(unlink) の非同期命令が無い。 ネットワークファイルを大量作成or削除する場合は、自前でマルチスレッド化するしかないのが現状。"
- 鯉江さんのツイート: "メタデータいじる系のやつに非同期IOがないのはローカルファイルシステムだと平行性があまりないから用意されてないだけなんだろうか?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ごもっとも。 ちなみに個人的には、ダイレクトI/O + 非同期I/O(ただしネイティブな実装に限る)がベストかと。(高速&ファイルキャッシュで仮想記憶を汚さない。1MB以上のファイルの場合ね) ---- read(2) vs mmap(2) の迷信 https://t.co/bhlQb88gcm"
- read(2) vs mmap(2) の迷信
- Shirouzu Hiroaki(白水啓章)さんのツイート: "でも、ダイレクトI/Oはセクタ単位縛りが面倒なのは確か。 特に書き込み側。非ダイレクトI/Oで開き直して、末尾を調整する手間が必須に。"
- Makoto Kato ︎︎さんのツイート: "WebKit、https://t.co/8KLoTJ6o8L で隠しAPI使ってるんだよな。。。たぶんこれ使えばTwitterの件はどうにかなるんだろうけど、さて。。。"
- 130479 – [Mac] Support asynchronous NSTextInputClient
- Makoto Kato ︎︎さんのツイート: "自分たちが欲しかった非同期APIだよ"
- Makoto Kato ︎︎さんのツイート: "マルチプロセス化するのにOSのAPI変えられる会社はズルい。無理矢理実装したのに。。。"
- Takashi KawasakiさんはTwitterを使っています 「非同期のコードを疑似コードでいいのでフロー教えてほしいといわれると結構面倒・・・。というかコーナーケースの表現ができない。」 / Twitter
- 非同期IO - Wikipedia
- 現代の非同期処理
- GOMAXPROCSについてのメモ
- マルチスレッド · Build web application with Golang
- AsyncとAwait : コールバック地獄を避けるための最新のやり方、そしてその未来 | POSTD
- ノンブロッキングとは?ブロッキングや非同期との違いは?|ITトレンド
- 特性を理解する!ノンブロッキングとは【初心者向け】 | TechAcademyマガジン
Direct I/O
パフォーマンス
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「FastCopy ではむしろ、OSキャッシュに載せないよう Direct I/OとAsync I/Oで頑張っている…」 / Twitter
- FadisさんはTwitterを使っています 「@nikq Linuxはじめとするmmapを素直に実装するOSではreadは「ページキャッシュに乗せてバッファにコピー」なのでmmapして全領域を(posix_)?fallocateする事で「ページキャッシュに乗せてそのアドレスをよこせ」した方が性能が出る事があります。単純にファイル全体を読みたい場合試してみる価値があるかと」 / Twitter
- KOSAKI MotohiroさんはTwitterを使っています 「@fadis_ @nikq わたし10年ぐらい前にLinuxのVM書き換えたことがあるんですけど、そのときいろいろ調べて、mmapでコピーするのはほぼ常に遅いという結論になりましたね。 OSの教科書が想定しているハードウェアが古すぎるんだと思います」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお「Direct I/O には Async I/O がよく似合う」は本当です。 (2MBくらい以下のI/Oサイズの場合は特に)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq (横からすみません)むしろ、OSキャッシュに載っていない状態からの計測を繰り返さないと意味無くないですか?」 / Twitter
- FadisさんはTwitterを使っています 「@shirouzu @kosaki55tea @nikq キャッシュに乗るまでの時間がreadとmmapで変わるのであればそうですが、そうなんですか?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq そう言う話があった気がします。 (mmapの場合、ページアクセスで例外発生からI/O発生の繰り返しになるのが呪いになるなどあった気が…最初のアクセス以降は先読みが効いてとかあっても良さそうですが、実測ではペナルティが大きかった記録を読んだ気がします…小崎先生の方が詳しいとは思いますが)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ @kosaki55tea @nikq (もしくはOS先読みだと、大きなI/O指定にならないのが問題だったり…?ちょっと覚えていませんが)」 / Twitter
- FadisさんはTwitterを使っています 「@shirouzu @kosaki55tea @nikq なるほど」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、Direct I/O は(非セクタ倍数サイズなファイルだと)Win/Linux共に、 ・Readでは末尾は1回のreadで読み取れる (要求はセクタ倍数だが、答えは非セクタ倍数) のに対し、 ・Writeはセクタ倍数Writeした後にtruncateか、末尾writeだけ非Direct I/O を使う という非対称性があってモニョる」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「LinuxはOSSなんだから、実装案を作って提案したほうがいいのかしらん…とはいえ、私くらいしか気づいていない非対称性かもしれず、誰得?とか言われそうな(笑)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なお、いろいろ性能計測の結果、Windowsだとtruncateに軍配という結果だった。 (最近わざわざ非truncate実装を加えた末に、意味ないと判りがっくり…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そうそう、これ私も以前から実験してみたかった話(笑) (ところで、HugePageだと先読みもHugePage単位でやってくれるのかしらん?重そうだけど…)」 / Twitter
- FadisさんはTwitterを使っています 「@angel_p_57 @shirouzu @kosaki55tea @nikq 頻繁なpage faultが性能低下の原因なら、Transparent Huge Pageで問題のいくらかを回避できる気がする」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@fadis_ @angel_p_57 @shirouzu @kosaki55tea @nikq メモリ上でのコピーではなくディスクアクセスがボトルネックになるベンチマークである、という前提において言うと、readaheadに与えられる情報が多いreadを使う方が、mmapよりも速くなる可能性があっても逆はない、と言えるのだと思います(そしてしばしば実際にそのような結果が観測される)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ファイルコピーベンチマークをみて、あーBDPの推定問題だなって思ってしまうのはネットワークに毒されてる証拠」 / Twitter
- KOSAKI MotohiroさんはTwitterを使っています 「@kazuho @fadis_ @angel_p_57 @shirouzu @nikq 情報量もありますし、ヒューリスティックに推測するにしてもmmapはランダムアクセスのパターンで使われることのほうが圧倒的に多いので、readaheadの推測値がどうしても小さくなってしまうんですよね。IOの効率に比べたら、メモリ操作の効率はあんまり重要じゃない」 / Twitter
- FadisさんはTwitterを使っています 「@kazuho @angel_p_57 @shirouzu @kosaki55tea @nikq この問題についてはPOSIXな環境で幅広く動くコードについてはその通りだと思います。一方でLinuxでMAP_POPULATEを指定している場合mmap時に指定したサイズが一度に読み出される為、readに対して不利な要素は何もないように思います」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@fadis_ @angel_p_57 @shirouzu @kosaki55tea @nikq はい。アプリケーションが適切に先読み量を設定できればdisk i/oの利用効率が最大化できるであろう、という意味で、おっしゃるとおりだと思います」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2MBの先読みだと、readにもう一息追いつかないかな… (Direct I/O = 先読みが効かない状況でも、4MBくらいから(Async I/Oなしでも)ほぼペナルティは隠蔽されはじめる)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「このMAP_POPULATE興味深いなぁ。mmapコピー実験は(キャッシュ無効からの)MAP_POPULATE版での計測をやってみたいところ。 (Windows版にもこのフラグ欲しい…ただ大量コピーの場合、ファイルが使う物理メモリ量は制限したいので、やはりDirect I/O + 自前メモリがよいかな…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には大量コピーには、Direct I/O + Async I/O が最強だと思っているので、いずれ Linuxでもこの形の FastCopy を作ってみたいと思いつつ。」 / Twitter
2020-12-24
- SODA NoriyukiさんはTwitterを使っています 「メタデータが更新されてる保証がないって話かなあ」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@n_soda データもです。direct I/OってI/Oリクエストを投げたら完了を待たずに復帰するんですよ」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@n_soda ネタバレですが > To guarantee synchronous I/O, O_SYNC must be used in addition to O_DIRECT. https://t.co/itt6Pu4wCC」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@n_soda 実装依存ですね。あんまり知られてないです。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「open(O_DIRECT) + write(2) 終了時にデバイス転送が終わっていないと? だとwriteに指定していたページをwrite直後に書き換えるとどうなるのかしらん?(COW?本当?) あと手元(5.9.0)だと open(O_DIRECT) + read(2)では、キャッシュ有無に関わらず常にデバイスから読んでるのだが…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおWin32のFILEFLAG_NO_BUFFERINGだと、常にデバイス直接書き込み&読み取りを保証。 (ただし、デバイス側のキャッシュに溜まるだけというのはあり得る) https://t.co/G1zVZVlD1F」 / Twitter
- File Buffering - Win32 apps | Microsoft Docs
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(writeはデバイスキャッシュの話を意識してるのかな?)」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@shirouzu それはデバイスファイルですか?それとも普通のファイルですか?」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@shirouzu いやデバイスファイルだとページキャッシュが無いから普通のファイルか」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@satoru_takeuchi 普通のファイルですね。」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@shirouzu デバイスから読んでいるというのはどうやって確認しましたか。sarのようなメトリクス、あるいは速度、などなど。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@satoru_takeuchi dstat ですね。direct指定のありなしで、dstatのI/O数の変化を見てます。」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@shirouzu ふーむなるほど?ちょっとページキャッシュありなしの速度からページキャッシュを使っているかどうか見てもらえませんか。ひょっとするとページキャッシュ使うけどディスクからも読むといった挙動なのかも」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi https://t.co/jS4OWpTyQA https://t.co/V6cdPH2gAw を見るとLinuxではそもそもI/O完了を待ってないようですね(待ちたいならO_SYNCが必要)。 知りませんでした。これは(manのこの記載事項も含め)OS依存だと思います。 readは(mmapされてない限り?)常にディスクから読むのでは?」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「@n_soda @shirouzu 少なくとも私の検証結果だと「ページキャッシュを使う」のは確認しました。ただそこでディスクからも読み出すといったことをしてるかもしれないですし、実はファイルシステム依存の何かがあるのかもしれません」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「昔O_DIRECTで実験した時、十分に遅くて、非同期I/Oとセットにしないと使い物にならんと思った覚えがある。 実は仕様で「保証しない」だけで、現状の実装はO_SYNC相当の実装なのかな…?」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi ちなみにNetBSDの場合は(僕が読み間違えてなければ) ・mmapされてたりalignment条件を満たしてなかったら directio 自体を諦めて buffered i/o に fallback ・directio できる場合は、常に page cache を捨てて IO する (page cache は消えたままになる) だと思います https://t.co/MbRvtuN6Pt」 / Twitter
- src/genfs_io.c at 6e6585deb129aaf617d854789663569f25298ba0 · NetBSD/src
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda @satoru_takeuchi Windowsだと条件満たしてないとエラーになるのですよね。 (そちらの方が個人的には好ましいかなぁ)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu Linuxでも(少なくとも数年前のCentOSだと)遅かったと思います。buffered I/O と異なり、OS が readahead や write behind してくれないのは今でも一緒じゃないかって気が」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi わかります>エラーになる方がいい」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda なんで同期保証しないんですかねぇ…write後もバッファが自由になるタイミングが分からないとすると使い物にならないというか、O_DSYNCと一緒に使えがお作法になりそうというか。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda バッファは自由になるんじゃないでしょうか?単にコマンドの完了を待たないだけで #知らんけど」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda writeから戻って(まだDMA実行中)渡したページ書き換えたら、データ壊れません?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda そして、キューがあってコマンド複数発行できるからO_DIRECTだけ指定した方がシングルスレッドでの書き込み速度は大幅に高いとかありそう」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi https://t.co/R1iw9cpeMD にも関連するんですが、こっちのスレッドにぶら下げます。 書き忘れましたがNetBSDのO_DIRECTの場合はIO完了を待ちます。これはraw disk I/Oの高級版という意味上の要求のほかに、wire downしたユーザーメモリを同一システムコール内でpaging可に戻したいという実装上の理由も」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda いや、カーネルがコマンド発行してDMAが終わった時点でプロセスに制御が戻るのか、コマンドの完了応答がHDDから戻ってくるのを待つのかの差じゃないんですかと」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @kazuho データ壊れるというか、ディスクにどういう内容を書いたかの保証がないので非常に困りますね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda それが非同期I/Oの狙いの一つですよね…ただLinux O_DIRECTがそれをやっているようには見えないのですよね。 (実際は転送終了まで待っているように見えます)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu 伝統的なデバイスドライバとカーネル上位層の間の構造だと、その2つの待つタイミングを使い分ける方法はなく、待てるのはコマンド完了応答があったタイミングだけですね。 現代のLinuxのカーネルの構造は知りませんが…」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu いや、複数のブロックを複数のライトコマンドを発行したあとで、FLUSH CACHEするというのが伝統的なやり方だし、O_DIRECTはライトコマンドを発行する一手法にすぎないから別に困らないと思います」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu 伝統的なUNIXカーネルで biodone を待つタイミングの話をしてます。DMA完了だけ待つ方法はないのでは?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu なるほどありがとうございます。あるいは差としてはforce unit accessフラグを立てるかどうか、なんでしょうか」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi ちなみにO_DIRECTが単なるヒントに過ぎず無視されることあるというこの挙動ですが、Solaris の directio に倣ったんじゃないかと思います(でも不便): https://t.co/5QLAdaOePK」 / Twitter
- directio - man pages section 3: Basic Library Functions
- Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu と redhat の人は言ってるっぽい? https://t.co/byRpdCg4eU」 / Twitter
- io - How are the O_SYNC and O_DIRECT flags in open(2) different/alike? - Stack Overflow
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu デバイス側のキャッシュをどう扱うかについては、さらに千差万別なんじゃないかという気がしてます。(同一OSでもfsごとに違うかも?) 実運用的にはドライブのキャッシュはオフにして battery バックアップつきの RAID cache に頼るというのが Linux を含め多いような(僕は老人なので現代だと違うかも?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu 性能要件からしてそうなるのは良くある話だと思います」 / Twitter
- arhさんはTwitterを使っています 「@n_soda @kazuho @shirouzu ドライバ書いてたのは大昔で、最近の事情は把握していないのですが、当時はデバイス側にもキャッシュを持つようになったため(しかも透過的な)、どの時点で完了になるかが不明確になって、結局実装依存、になっていっていました。最近のデバイス側キャッシュってどうなっているんでしょう。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu LinuxだとO_SYNCが必要なのは https://t.co/jS4OWpTyQA の通り事実なんだと思います。 ただユーザーメモリの wire down を解除するのがシステムコール完了よりも後になるかどうかは、やや疑問かなあ。まあ最近のLinuxの性能追及改善はとてもすごいので、やっているのかも...(←驚いてます」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @shirouzu 同意です。その上で、O_SYNCとO_DIRECTを別個に持つ理由として、合理的な説明はありうるよなーと思いまして」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @shirouzu はい。 実は Linux の O_DIRECT もデバイスドライバ層のIO完了自体は待つ実装になっていて O_SYNCの要求は force unit access から来てるってのはありそうな話ですよね。(今はともかく、少なくとも当初は)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda これって、NCQの想定が「コマンド転送+データ転送」の繰り返しのキューイング、みたいなイメージになってますかね? 実際は、ホストがコマンド群だけ転送して、デバイス側が都合よいコマンド選んではDMA要求発行、だと思うのですが…(つまり最後のDMA転送終了=コマンド群が完了)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda そうなんですか。全然詳しくないのですが、最後にステータスが任意の順番で流れると思ってました https://t.co/TrwrHXd103 https://t.co/DWnZ2rfK6R」 / Twitter
- SATA Introduction
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda 上記でいうと、NCQ説明はこちらの図ですかね。 NCQはまずコマンドを溜め込んだ後に、デバイス側は、その中で最初に書きたいwriteコマンド(or 完了したreadコマンド)を選んでは DMA転送していく感じかと。 https://t.co/XXjj1x7A73」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda はい。その図で言うSet Device Bits FISはタグを含んでいて、queue depthのゆるす範囲で任意の順番で発行されるのではないかと」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda で、Writeでは(FUAとかでないかぎり)DMA転送終了≒writeコマンド終了通知(=OSから見ると同期write終了)だと思っているのですけど、違うのですかね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda はい、O_DIRECTがDMA転送終了でwrite完了、O_SYNCがstatus受信でwrite完了だというのが、合理的にありうる可能性だと思います。sodaさんが懐疑的でいらっしゃいましたが(https://t.co/E10bdGoWiE からの議論)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda NCQ云々を書いたのは(sodaさんの考えと似てて)、DMA完了≒コマンド完了なのだから、(コマンド完了ではなく)DMA完了などというトリッキーなタイミングは使ってないのでは?という意図です。 (つまり、DMA前に制御戻っていてデータが壊れる危険 or CMD完了後に制御戻ってるので大丈夫かの2択)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda 少なくともforce unit accessフラグを立てているケースにおいては、タイミングがDMA後なのかstatus受信後かで意味は変わると思います。O_SYNCでタイミングも変えているのか、単にフラグを立てているだけなのかは、どちらも実装としてアリなんじゃないかと思います。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho @n_soda もちろん少し前にこう書いた通り、FUA除外の前提です。 「で、Writeでは(FUAとかでないかぎり)…」 そもそもアプリ側でFUA指定ってできるのだっけ…あれはジャーナル等のチェックポイント書くといった特殊用イメージある。(ハードウェア的なO_DIRECTという感じ)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu @n_soda https://t.co/GIN3U2Ogb6 (O_DYSINCですけど)このへんでしょうか(まーじされたかは見てない)」 / Twitter
- [RFC] iomap: Use FUA for pure data O_DSYNC DIO writes - Patchwork
2020-12-26
- 🐢sat🦥さんはTwitterを使っています 「@shirouzu @n_soda ページキャッシュが存在する状態でdirect readするとI/Oを発行する件、正しくは↓でした - ページキャッシュを迂回してディスクからユーザページに直接データ転送 - 既存ページキャッシュをわざわざ捨てはしない - 既存ページキャッシュがdirtyな場合はdirect read前にwriteする」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@n_soda @satoru_takeuchi (確認せずに言ってますが)それはそうだと思いますね。 メモリ内容を比較するのは結構なコストなので、もしこれをやるとダイレクトI/Oの低コストが台無しになるので。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@shirouzu @satoru_takeuchi NetBSDは direct I/O の前に単にpage cacheの中身を(dirty な場合は書き出した後) 捨ててるんですよねえ。ある意味一貫性はとれるけど、もったいないという。」 / Twitter
2020-12-27
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「きちんと再検証&訂正するスタンス、さすが。」 / Twitter
- 🐢sat🦥さんはTwitterを使っています 「動画内の説明に誤りがあったこと、および正しい内容を動画のコメント欄に追記しました。 > 注意: 動画の途中で「ページキャッシュがある状態でdirecr readしたらページキャッシュを使う」と述べていましたが、これは誤りでした。ごめんなさい。 #satlinuxtube https://t.co/xhaHojsMNU」 / Twitter
- その23 同期I/Oとdirect I/O - YouTube
- 同期I/Oとdirect I/O - Speaker Deck
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「3年10ヵ月前のツイートを見つけてしまった。 こんなやりとりしてたのに、先日の類似ツイート見た時に、ピクリとも思い当たらなかった…ホント50歳になると「うーん、(何かあったけど)思い出せない」ではなくて、記憶の白紙地帯みたいになる…ヤバなぁ。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@satoru_takeuchi O_DIRECT + write(2)からreturnした後でも、writeで使ったユーザバッファを変更するとまずい、という挙動が(将来)ありえる、ということでしょうか?(それはちょっと厳しいのではと…)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2004年に vmstat の buff と cache の違いについて書いたのを思い出した。 (SVR4という言葉も今は昔…という感じになってしまったな) https://t.co/8lNIxa9UQt」 / Twitter
- 私的メモ(2004年02月版)
- Linuxキーワード - ダイレクトI/O:ITpro
- LinuxでDirect I/O | わーどぷれす
- ダイレクトIOの実装 - のぴぴのメモ
- Linuxキーワード - ダイレクトI/O とは:ITpro : WEBディレクターが最低限知っておくべきI/Oの基本事項 - NAVER まとめ
- IBM Knowledge Center - NFS のダイレクト I/O
- LinuxのI/OやCPUの負荷とロードアベレージの関係を詳しく見てみる - Qiita
- Direct I/O のパフォーマンス測定 (write)
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Direct I/O には Async I/O が良く似合う。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyは、ネーミングのせいか「高速」「マルチスレッドI/O」という点に注目が集まりがちだけど、ダイレクトI/O(と非同期I/O)により、仮想記憶をキャッシュで汚さない(=他のプロセスが重くなりづらい)、という点が一番の特徴。 UNIX系でも、これを実現すれば嬉しい人は多いのではと思いつつ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで巨大なメインバッファを設定しても、意味がないということを何処かに書いた方が良いのかしらん? (概ね、512MBを超えると殆ど意味は無くなるはず。むしろDirectI/Oでdirtyページを閉じ込める意味が薄れるのでOS全体からは逆効果) https://t.co/6iuoDf2Jg9"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "相手がCIFS/SMBだと、LinuxではO_DIRECTは使うな、という感じに見えますね。… "
- Kengo Sawatsuさんのツイート: "mount.cifsでマウントした先のfdに向かってO_DIRECT指定でopenすると死亡フラグについて、各OSごとに挙動違いすぎて方針決められないので、挙動をまとめてみました。。疲れたのでもう帰りたいorz https://t.co/k0l7lqJC4q #Linux #O_DIRECT #smb #mount.cifs"
- Linux O_DIRECT with smb cache effects summary - Google スプレッドシート
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「DirectIO にはメモリアドレスが「セクタサイズの倍数」という縛りがある(I/O時のデバイス転送絡みのはず)。 512eセクタ(内部4096)な場合、512バイト仮定で大丈夫だが、何らかの速度ペナルティが無いのか気になるところ。 (たぶん大丈夫かな…なお4096倍数の転送でないと速度低下するのは確認)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「なおメモリ・アラインを無視したデバイス転送を行うと、ドライバがエラーを吐かずとも、キャッシュ・コヒーレンスが壊れた経験あり。 https://t.co/yrE8N0T4MT」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 そうですね。さらに脱線すると、IRIX(ELAN4000) で発生した話で、SCSIデバイスからメモリにデータ転送が完了しても、転送前のメモリが一瞬見えてしまうという現象で苦労した覚えが…異常値検出しても次行のsprintfダンプでは既に正しくて(笑)」 / Twitter
- Alireza FarshinさんはTwitterを使っています 「If you want to learn more about Direct Cache Access (DCA) or Intel Data Direct I/O (DDIO) technology when shifting toward multi-hundred-gigabit networks, check out our @usenix ATC'20 paper. #ATC20 #USENIX https://t.co/5vaSZYUdyM」 / Twitter
- Reexamining Direct Cache Access to Optimize I/O Intensive Applications for Multi-hundred-gigabit Networks | USENIX
I/Oスケジューラ
CFQ
- CFQ - Wikipedia
- CFQスケジューラのアルゴリズム概要 | VA Linux Systems Japan株式会社
- 6.4. 設定
- I/OスケジューラのCFQとクラスを理解する - Qiita
BFQ
- 技術者見習いの独り言: BFQスケジューラ
- Xperia X10推奨のIOスケジューラ|老兵のあがき
- I/O スケジューラについて 前編 - 所感 ~android~
- I/Oスケジューラーについての考察 - droidroid
- CPUスケジューラとI/Oスケジューラの組み合せを探って性能アップを目指す: Project Valkyrie
- linux-ck とGrub2 のアップデート: くしゃみ日記
- I/OスケジューラCFQの置き換えを画策するBFQスケジューラ。ほう。Budget Fair Queueing - tmatsuu のコメント / はてなブックマーク
- I/O Scheduler - sc-02croot @ ウィキ - アットウィキ
Kyler
- 2017年7月3日 Linunx 4.12が正式リリース,AMD VegaやNVIDIA Pascalのサポートなどが追加:Linux Daily Topics|gihyo.jp … 技術評論社
- 過去最大規模のリリースという「Linuxカーネル4.12」リリース | OSDN Magazine
Noop
- Noop scheduler - Wikipedia
- LinuxのSSD設定 - Qiita
- 6.4.3. Noop
- Fadisさんのツイート: "LinuxのI/Oスケジューラ、noopスケジューラとnoneスケジューラが全く別物なのネーミングにアレさがある"
- Anticipatory scheduling - Wikipedia
- Deadline scheduler - Wikipedia
- I/Oスケジューラを使う。
- ディスクI/Oスケジューラの設定 - 人生は、お天気いろいろ
- OSSはアルミニウムの翼で飛ぶ: RHEL I/Oスケジューラの変更
- I/O Schedulerをわかりやすくまとめる – Simple IT Life
- Deadline IO スケジューラーを使用する - Red Hat Customer Portal
- SSDの並列性を引き出すI/Oスケジューラに関する研究
- 【自分用】LinuxのI/Oスケジューラって知らなかったので少し調べてみた - Qiita
- Linux 2.6 カーネル ベースの仮想マシンでディスク I/O パフォーマンスが遅い (2094615) | VMware KB
- openSUSE 13.1: 第13章 I/O 性能のチューニング
- Fadisさんのツイート: "linuxのscsi-mqをデフォルトで有効にしようという提案がなされている。 scsi-mqが有効な場合SCSIデバイスに対するリクエストは従来のI/Oスケジューラではなく、フラッシュメモリが物凄く速い時代に合わせて新しく作られたblk-mqを通してデバイスに送られるようになる https://t.co/fGya5h7WOY"
- The Linux Kernel May Soon Default To SCSI MQ Mode - Phoronix
- Fadisさんのツイート: "ストレージがマルチキューかつ凄く速くなって、I/Oスケジューラをプロセッサごとに持ってロックしないようにしないと、カーネルで詰まってストレージの性能が引き出せないの、ハードディスクの時代に作られたスケジューラにとっては想定外もいいところな状況だ"
- Reading article about io.waight
エレベーターシーキング・コマンドキューイング
- 遅延書き込み - Wikipedia
- NetWare --- LAN普及の足掛かりとなった高速なネットワークOS | 日経 xTECH(クロステック)
- ASCII.jp:マルチコアCPUを賢く使いこなす スケジューリングの秘密 (1/3)|基礎から覚える 最新OSのアーキテクチャー
- SUSE+XEN で作るプライベートクラウドのハードウェア選びのポイント : isLandcenter 非番中
- CPUスケジューリング
システムコール
io_uring
Twitter
2021-02-24
001
- _ko1さんはTwitterを使っています 「@blackenedgold 前回の記事、へのリンクが 404 のようです。 それはともかく、とても興味深く拝見しております。 Rustよめないんですが、io_uring だとデバイスへの書き込み(時間かかる)への複数のリクエストをまとめるから速い、って結論なんですかね。というか、std毎回同期しないとこんなに早いってすごいですね」 / Twitter
- κeenさんはTwitterを使っています 「@_ko1 ありがとうございます、404修正します。多分5GBはOSのページキャッシュに載ってしまうのであとはメモリに書き出す速度の勝負で、仕組みが単純な分普通のwriteの方が速いのかなって思ってます。Linux 5.12でio_uringが速くなるらしいのでそこも期待ですね。」 / Twitter
- _ko1さんはTwitterを使っています 「@blackenedgold 確かに、ある程度ページキャッシュに載ってしまえば、io_uring とやること変わんないすね。C10Kだと、例えば socket read が multiplexing されるので変わるんですかねぇ。でも、スレッド 10K 個作ってもあまり変わらない気も(100K だと作れないで変わる)。」 / Twitter
- κeenさんはTwitterを使っています 「@_ko1 そうですね、本来io_uringは非同期化のためのAPIなので多重化で効いてくると思います。スレッドを使った実装との差分はパフォーマンス上かなり違うらしいです。 https://t.co/NH7piwnZpUの問題点」 / Twitter
- Linuxにおける非同期IOの実装について - Qiita
- _ko1さんはTwitterを使っています 「@blackenedgold あ、Posix AIO じゃなくて、コネクションごとにスレッド作るようなサーバ実装を考えていました。コネクションごとにオーバヘッドがかかりますが、中での IO はどうなんかなと」 / Twitter
- κeenさんはTwitterを使っています 「@_ko1 コネクションごとにスレッドを作るとコンテキストスイッチが重くてクライアント数が10Kくらいが限界になるから1スレッドで複数のコネクションを捌きたいというのがC10K問題じゃありませんでしたっけ。コンテキストスイッチの部分を抜いてIOだけに着目したら何が違うんだろうという疑問ですか?」 / Twitter
- _ko1さんはTwitterを使っています 「@blackenedgold コンテキストスイッチは重くないと思いますよ... と思うんだけど、どうなんだろ自信がなくなってきました。主に、生成・終了のコストが問題だと思っていました。プロセスコンテキストスイッチのオーバヘッドが、OSレベルでやるかユーザレベルでやるか。タイムスライスが邪魔といえば邪魔かな...」 / Twitter
- κeenさんはTwitterを使っています 「@_ko1 私もちゃんと測ったことないんですがスレッドの切り替えでレジスタやら何やらをsave/restoreしないといけないのでユーザランドでできるに越したことはないって聞きました。スレッドの生成と終了が遅そうなのはそうだと思いますが、それだけだったらスレッドプールで解決するはず…。」 / Twitter
- _ko1さんはTwitterを使っています 「@blackenedgold スレッドプールだと1万個のio read かけないんですよ」 / Twitter
- _ko1さんはTwitterを使っています 「@blackenedgold あ、固定長プールじゃなくて1万個プールできるってやつならいいのか。だいたい1mbメモリ食うので1万個で10gb、昔c10kが騒がれた当時だと、この辺もネックかもしれませんね(ページテーブル管理も」 / Twitter
- κeenさんはTwitterを使っています 「@_ko1 はい、現実的には1万個のスレッドを作るのは難しいと思います」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「スタックポインタ書き換えるとリターンアドレス予測がリターンする回数分だけ失敗する結果、遅くなるイメージだったけど、最近のIntelだと、そのあたり補う仕組みがあるんだろうか。たとえばsp変えたら普通の分岐予測使うとか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@blackenedgold @_ko1 c10k屋さんです。スレッドのコンテクストスイッチ遅くはないですが、スタック使用量と、スタック切替でreturn address予測が外れるのはちょっと痛いのかなと思ってます。c10k用途だと、リクエストあたりのバイト数がよほど小さくない限りはsyscallのオーバーヘッドは問題にならない印象なので...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@blackenedgold @_ko1 io_uringを使うメリットが一番あるであろうところは、メモリに載っていないかもしれないfile readが発生する場合だと思います」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @blackenedgold 独立した複数のって感じすかね Netflix?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold 複数の何かがよくわかりませんが、cpuコアごとにスレッドたてて、スレッドごとにイベントループのかわりにio_uringまわす感じになると思います」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold netflixさんはレスポンスサイズ大きいし、レイテンシの問題ないし、io_uringの必要性薄いユースケースだと思います。というか、公開情報が正しければfreebsdでtcpのsendfileでカーネル内tlsしてるはず」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @blackenedgold ですよね(出先だったんですが、さっき自転車乗りながら違うなあと思ってた)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「io_uringのインパクト、僕の理解が正しければ、第一に、従来のfile i/oは高速な非同期実装が難しかったのを、メモリにすでに載ってる場合も含めて高速に動くような解になってるところ。第二は、従来方式でsyscallのオーバーヘッドが相対的に大きくなる小サイズのi/oが頻発する場合に、それを隠蔽...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「できるところだけど、それが問題になるほど最近のcpuはネットワークと比べて遅くない(ことが多い)し、file i/oでディスクでブロックされるのはパフォーマンスガタ落ちになるので第一の点が大きいでしょうなぁみたいな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「h2oはファイルからコンテンツサーブする仕組みあるし、小サイズのi/oやらないこともないからio_uring対応してみたらいいんだろうなと思ってるけど、キャッシュに載っていないかもしれないファイルからコンテンツサーブするみたいな運用してる利用者がいるか問題ですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「dpdkやらないの?→やりません(メリットが薄そうだしユースケースが限られるから) netmapやらないの?→やりません(dpdkより良いけど以下同文) って感じできたけど、io_uringは、やってもいい気がするのよね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「面白い。disk i/oで引っかかるケースでio_uringならレイテンシ隠蔽ができることと、引っかからないケースで通常のfile i/o並に速いことが読み取れるので、io_uring実用的という結論になると思う / https://t.co/sJT5k7PinK」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @blackenedgold 話があっちゃこっちゃいきますが、つまり C10K が最初問題視していた1万コネクションさばきたいって奴は、read 待ちの epoll で起きたときには、多分データ届いた後だから、io_uring でも大して違わんって感じですかね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold サーバ屋さんとしては、ネットワークをサチることができればそれでいいのですが、フルサイズパケット(あるいはTCPだと複数パケット分)ごとにi/oするようなケースだとepollベースでサチれるのでio_uringに移行するメリットがない。ただ、file readでディスク待ちが発生してると別、という感じです」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold dnsとか、cpuをケチりたいルータとかだと話が変わるかもです」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @blackenedgold cpu usage って減りそうですか。仕様・実装知らないんですが、io_uring に登録した userland のバッファに直接 kernel が書き込めて、kernel -> user copy が減るとか?」 / Twitter
002
- Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold スレッドみたらC10Kがガイシュツだった...」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @blackenedgold system call が単純に read 分 1 個減るか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @blackenedgold 減るんじゃないかなーと予想しています。コピーは早いし、特に小サイズのi/oにおいては差がでない気がするので、syscall自体のオーバーヘッドのほうじゃないでしょうか」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold I/O 回数が多いときにメリットありそうですね。 Meltdown & Spectre などで syscall が高価になったりもしてますし。個人的には C10K なネットワークサーバなどでの効果がより大きくなるんだろうなと想像しています。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold そうですね、僕は、syscallのオーバーヘッド削減については、上に書いたように、c10kなサーバでも、i/oサイズがMTUあるいはそれ以上のケースなら実用上のメリットは薄いと思っています。disk i/oを隠蔽できるメリットはc10kに限らず有用」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 具体的な数字をあげるとネットワークへの書込iサイズ15KB(MTU1500,GSO10)、読込はackみたいなケースで、5gbeを1コアのロード40%くらいでサチれるので、実際のところ、よほどi/oサイズが小さくなければ、マルチコアで25gbeとかサチるのは難しくない https://t.co/T2r1iQtfc0」 / Twitter
- Improve AEAD performance through use of the fusion AES-GCM engine by kazuho · Pull Request #359 · h2o/quicly
- Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold ありがとうございます。ファイルI/Oで有用というのは aio に対して何か優位性見えますか? たんに非同期でよければ aio でもいい気がしますし。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold aioはdirect i/oだから、キャッシュされていないデータ専用コードになりませんか(別の言い方をすると、独自にファイルキャッシュ実装する必要がある)。io_uring使うとbuffered i/oの良さとnon-blockingの良さの両方を手に入れられるんじゃないかと」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold あーナルホド」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「VMのdisk i/oは非同期だし、qemu側ではbuffered i/oにしたいこともあればdirect i/oにしたいこともあるだろうし、みたいに考えるとio_uring使うのは納得感強い」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 具体的な数字をあげるとネットワークへの書込iサイズ15KB(MTU1500,GSO10)、読込はackみたいなケースで、5gbeを1コアのロード40%くらいでサチれるので、実際のところ、よほどi/oサイズが小さくなければ、マルチコアで25gbeとかサチるのは難しくない https://t.co/T2r1iQtfc0」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold さいきんqemuのソース見たらio_uring+coroutineでシングルスレッド並列IOするような構造になってましたけど、大量のファイルをページキャッシュ経由で読んで配信する用途でもおなじようなアプローチをとったりすると確かにおいしそうですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold あーなるほどqemuのその使い方は面白い&納得感ありますね」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @hasegaw @blackenedgold qemu のどの辺で使ってるんです?」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold https://t.co/zgsnezYbtR」 / Twitter
- qemu/io_uring.c at master · qemu/qemu
- Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold インターンで実装したexperimentalなもので、広く使われてはいないと思います。」 / Twitter
- Stefan Hajnoczi: Coroutines in QEMU: The basics
- Kazuho OkuさんはTwitterを使っています 「今から素人みたいな質問します。select(2)ってfile i/oも非同期化できるの? できるような気がしてきた」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho QEMUで direct i/o にすることあるんかなと思ってたんですが、あるんですねぇ https://t.co/HBwpaosfq1 direct=on」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 いやむしろ、ハイパーバイザはdirect i/oするのが普通じゃないでしょうか? キャッシュはゲストOSの仕事なので...」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho 私の QEMU 感は guest os 用なので...(10年くらい認識が古そう)」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho 日本語が変だった。host os 上で実行する guest os のための virtual machine 基盤だったので...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 あーごめんなさい。使い方の差でなくて、ゲストのキャッシュから溢れたものをホストでキャッシュするのは効率が悪いので、qemuではdirect i/oしつつ(ホスト、ゲスト関係なく)OS毎のキャッシュ量の調整はbalooningで行うのが正攻法だと思ってますという」 / Twitter
- バルーンニング (ballooning)とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- _ko1さんはTwitterを使っています 「@kazuho なるほどです。10年前は研究会でその辺どこでやるか色々議論されてた印象がありますが、あまり聞かないので、もう決定版があるんすかねー」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あーなんか二つの出来事を混同して覚えてたかも。Armのreturn address stackが有効に機能するようにしてv8高速化したっていうのは https://t.co/GiUjiNISrw で、一桁Cortexのあたりでreturn address stack深くしたのは別の話かな」 / Twitter
- Google's V8 on ARM: Five Times Better - Processors blog - Processors - Arm Community
003
- _ko1さんはTwitterを使っています 「@hasegaw @kazuho @blackenedgold なるほど https://t.co/MalfBOoFuf 元々 aio IO があって、そのバックエンドにするんですね(元々はそういう hardware emulation とかで使うのかな)」 / Twitter
- qemu/file-posix.c at 1ed9228f63ea4bcc0ae240365305ee264e9189ce · qemu/qemu
- Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold やってることは、ゲストOSに見せたSCSI/IDE/virtioデバイスからのIO要求がpwritev/preadvみたいなもので、同時に複数の要求がきたりするので、それをIOスレッドが実際にさばいて制御を戻す(完了通知を返す)感じです。」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold coroutineで実装されてるのをみてうまいなあと思いました。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 僕的はqemuがコルーチン使ってるの知らなかったので面白かったです(使うと楽になるタイプのソフトウェアだし、そこまでパフォーマンスにシビアなソフトでもないので使うのは妥当だと思う)」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@kazuho @_ko1 @blackenedgold 複数のIO要求が同時にきたときに、並列にバックエンドに要求をなげつつ、はやくおわったものから順に返事を返すってワークロードには向いてるんですよね。kazuhoさん的にはコルーチンだとオーバーヘッド気になるという感じですか?スレッドよりはいいのかなというぐらいに思ってました。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@hasegaw @_ko1 @blackenedgold 分岐予測がらみのオーバーヘッドがあるという認識ですが(cf. https://t.co/WqYccnpLfu)、それほど問題になるものではないとも思います。実際のところ、特定のコルーチン実装に縛られて良いなら、いろんなものをコルーチンで書くことで工数削減できそうな気もしています」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @hasegaw @blackenedgold 比較対象ってイベントループですかね?(スレッドじゃなくて / スレッドだと同じ問題ありそう) 考えたことなかったけど、どれくらい効くのかなhttps://t.co/meyIVHI0SS」 / Twitter
- assembly - how to clear return stack buffer in x86 or x64 - Stack Overflow
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @hasegaw @blackenedgold はい。比較対象はイベントループですね。スタック差し替えるとreturn address predictionが全滅するでしょうから、切り替え直後にreturnを連発するようなケースだと悲しいことになりそうな気がします(まあ言っても分岐予測外れるだけですが)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@_ko1 @hasegaw @blackenedgold 関連する文脈で言うと昔のarmはreturn address stackが3スロットくらいで、それがJavaScript VMの速度低下の要因になってたみたいな話があったと思います」 / Twitter
- _ko1さんはTwitterを使っています 「@kazuho @hasegaw @blackenedgold みんな main に書いてたんですね!!1」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「@_ko1 @kazuho @blackenedgold いまはsubroutineの話はしてないですしね?」 / Twitter
- io_uringを使ってみた
- 2020年12月15日 2020年最後のリリース「Linux 5.10 LTS」が登場:Linux Daily Topics|gihyo.jp … 技術評論社
- 2019年5月7日 Linux 5.1がリリース,新しい非同期I/Oインタフェース,2038年問題対策など:Linux Daily Topics|gihyo.jp … 技術評論社
- 「Linuxカーネル5.1」リリース、非同期I/Oインターフェイスなどが導入される | OSDN Magazine
- io_uringで高速IO処理(?) | κeenのHappy Hacκing Blog
- io_uringで高速IO処理(!) | κeenのHappy Hacκing Blog
- mumumuさんはTwitterを使っています 「Improving Network Connection Locality on Multicore Systems [EuroSys '12] 局所性向上のため,各コネクションが特定のコアにのみ紐づくようにLinuxのaccept()などの実装を変更.Kernelに一つだったデータ構造をPer-coreにでき,ロックの面でスケーラビリティも向上. https://t.co/Yb9zUrVsof」 / Twitter
- pesterev-multiaccept.pdf
- fork, select, poll, epoll, io_uringのecho server - suzuzusu日記
- Linuxシステムコール徹底ガイド | プログラミング | POSTD
- チュートリアル – システムコールの書き方 | プログラミング | POSTD
- int 2E/sysenter/syscall考察 | 毛流麦花
- Livaさんのツイート: "int命令のoperationと比較すると一目瞭然だった。(長すぎるので画像略) https://t.co/Jq2CehnsvG"
- СЮУ1228さんのツイート: "フラットメモリモデルしか考慮に入れないとか、割込デスクリプタ参照したくないとか、スタックに積まないで退避用MSR増やしちゃえとか、いかにも最近の考え方でそもそもx86はそういう前提ではないと思うし設計時期が違うからということなのでわ https://t.co/uBJtlPhmX8"
- Anatomy of a system call, part 2 [LWN.net]
- 品川 高廣さんのツイート: "SYSENTER は Intel の命令で SYSCALL は AMD の命令。IA-32 は Intel が決めたから、Intel は SYSENTER しかサポートしない。AMD は SYSENTER と SYSCALL を両方サポートする。反対に x64 は AMD が決めたから、AMD は SYSCALL しかサポートしない。Intel は SYSENTER と SYSCALL の両方サポートする。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "同じLinuxのシステムコール呼び出しでも、sysenterはint80に比べて圧倒的に速い原理は、後者は全レジスタ退避&復帰が必須だから、みたいな話でいいのかしらん?"
- FadisさんはTwitterを使っています 「Linuxに新しいシステムコールreadfileが入りたがっているらしい。readfileはファイルをopen、バッファ分だけread、closeを1回のシステムコールで行う。小さいファイルを大量に読む状況でシステムコールの回数が減るため、システムコールが安くない場合性能の向上が期待できる https://t.co/eSNFaUyZhV」 / Twitter
- New readfile() System Call Under Review For Reading Small~Medium Files Faster - Phoronix
- epollで作るチャットサーバ | κeenのHappy Hacκing Blog
Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NTカーネルには、バッファI/O、ダイレクトI/O以外に、ニーザーI/Oというものを知った。 もう少しネーミングに工夫が出来なかったものか(笑)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "実験の結果、デバイスの占有率と速度変化、SSDだと比例するのだが、HDDだと書き込み速度の下がり方は占有率数分の1だった。 ダイレクトI/Oとはいえ、HDD内のwriteキャッシュが有効なので、さもありなんという結果ではあるが、どうするかな。… https://t.co/H4OvSkJWT8"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SSD/HDD識別に https://t.co/kt1N4L0Tce にある、IOCTL_ATA_PASS_THROUGHが紹介されていてadmin不要と書いてあるが、PhysicalDriveをGENERIC_WRITEで開く必要があり、事実上、admin必須なので候補から除外。"
- SSD なら動作を変えるアプリケーションを作る - NyaRuRuが地球にいたころ
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyのスピードスライダ改良(使っている人、どれだけいるのだろう?)、完璧とは言えないが、まあこんなものかな?というレベルにはなった。 転送時間とsleep時間の比率をベースに、SSD/HDD/ネットワークを識別して、パラメータ調整するイメージ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "RAIDになると、バックエンドの物理HDDが複数となる場合があり、同一判定でも常にシーケンシャルアクセスが良いかというと、そうでもない場合もありそうで、そのためにデバイス毎の上限アクセス数設定(デフォルト:1)があった方が良い?と思うことも。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VeraCrypt(TrueCrypt)がマウント時に、自分自身の暗号ボリュームファイルに対して、 IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS を発行して覚えておけば良いだけなのだが…あまりニーズが無いということかしらん。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "VeraCrypt(TrueCrypt)で、FastCopyが同一HDD判定を間違う、という報告が来るが、 VeraCryptが IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS ioctl に常に0を返す挙動のため。 https://t.co/kdemtBfCkR"
- FadisさんはTwitterを使っています: 「昔: 皆がストレージにバラバラ書くと性能が出ないから読み書きはカーネルに投げろ、カーネルがスケジューリングする 今: カーネルがスケジューリングすると貴重なCPUを浪費するからストレージにそのまま投げろ、スケジューリングはストレージのコントローラがする」 / Twitter
- mumumuさんはTwitterを使っています 「Small is Better: Avoiding Latency Traps in Virtualized Data Centers [SoCC '13] vCPUやパケットキューにおいてShortest Remain Time Firstなスケジューリング(処理時間が短いパケットを優先する等)により,ホスト側だけの工夫でDCにおけるNWレイテンシを削減する研究 https://t.co/7YQCVjfpnh」 / Twitter
- socc13_final.pdf
- mumumuさんはTwitterを使っています 「I/O Scheduling Model of Virtual Machine Based on Multi-core Dynamic Partitioning [HPDC '10] DomのIOを監視してIO-boundな場合高頻度にコンテキストスイッチするFast-tick,ドライバDomはDriver,その他はGeneralという3種類に分類.それぞれに専用の物理コアを割り当て.https://t.co/MefZs06FEY」 / Twitter
- I/O scheduling model of virtual machine based on multi-core dynamic partitioning | Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing
- FadisさんはTwitterを使っています 「Linuxは2次記憶を操作する際にその内容を表すbio構造体を作ってブロック層に要求を投げるが、2次記憶が文字通り桁違いに速くなった結果、bioをslabから確保、破棄するオーバーヘッドがI/Oの性能を落とす原因になり始めた。そこでCPU毎にbioのpoolを作るようにした、という話 https://t.co/ZhAupnyue9」 / Twitter
- Linux Kernel: PSI - Pressure Stall Information /proc/pressure/io で IO 待ちを観察する - hibomaの日記
- 「OSの最深部」が垣間見える「ディスクの暗号化」に関するCloudflareのカーネル改善記録 - GIGAZINE
- Linux:昨今のI/Oスケジューラ事情 2020 | SlackNote
デバイスドライバ
その他
UIO
- 組み込みの人。さんのツイート: "LinuxのUIO (Userspace I/O)を試しているのだが、カーネル内のドキュメントが2006年から更新されてなくて、現状と食い違っててつらい。"
- まさみさんは語りたいさんのツイート: "他のドライバのフレームワークと比べてUIOの場合厄介なのは、それを使うサンプルコードとなるドライバが、カーネルに含まれていないってことなんだよな。"
- UIO(User space IO)の割り込みの使い方の例 - Qiita
- [Linux] User I/O | archmemo
- LinuxのUIO(User space I/O) その1 - Qiita
- LinuxのUIO(User space I/O) その2 - Qiita
printk
- まさみさんは語りたいさんのツイート: "Linux kernelのprintkで出力されるアドレス、%pを使うと暗号化されて出てくるようになってるけど、これを一元的に止める方法ってあるんだっけ?"
- このコード、オシャカルトっ!さんのツイート: "@mhiramat /proc/sys/kernel/kptr_restrict を0にするっぽいです。"
- まさみさんは語りたいさんのツイート: "謎だな、%pxにするとリークしちゃうというのは分かるから、%pKにするのが正解なのか。"
- まさみさんは語りたいさんのツイート: "んー?kptr_restrictが0でも、%pKを使うとハッシュ値しか表示されないんですがこれは。"
- まさみさんは語りたいさんのツイート: "わかったこと ・printkで%pだけを使うと常にハッシュ値が表示される。 ・%pKを使うとkptr_restrict=1の時だけsysadminには表示され、0のときはハッシュ値になる。 ・vsprintf.cのプログラムはこの辺りの処理が適当に書かれている。"
- まさみさんは語りたいさんのツイート: "何が適当かって言うと、%pKの処理でkptr_restrict=1の時の処理が2重に書かれていて、通らない方の処理が残ってしまってるんじゃー!そしてそっちの方ではkptr_restrict=0の時には常に表示される、って設定になってる。 惑わされたわ。"
- まさみさんは語りたいさんのツイート: "ああ、今最悪のblame結果を得た。通らない方の処理の方が先に書かれていて、その6日後のコミットで通る方が追加されているけど、追加したのはLinusだ。"
- まさみさんは語りたいさんのツイート: "あー、理解した。%pKやめようぜっていう話なのか。基本的にkptr_restrictedは削除する方向になっているらしい。"
- まさみさんは語りたいさんのツイート: "多分KASLRがあるためなんだけど、絶対アドレスでカーネルの内部を表示することは基本的にありえないっていうことになるようだ。"
- まさみさんは語りたいさんのツイート: "デバッグ用途では未だ必要な気がするんですがそれは・・・。"
- まさみさんは語りたいさんのツイート: "printkの%pKの処理を修正しようと思ったけど、Linusのパッチコメントでkptr_restrictが否定されていたので投げる気にならない。 というか、どうすればいいんだ?? https://t.co/Rsj5wJ95MP"
- まさみさんは語りたいさんのツイート: "%px使えってことなんかな?"
- まさみさんは語りたいさんのツイート: "printkの端的な理解を得た。 https://t.co/g6qGem5U1M ・%pxどころか%pもホンマはあかん。意味ない。使えんインタフェースをわざと残すことで、再考して欲しいんや。 ・そもそもホンマにカーネルのアドレスを教える必要なんてあるんか?よう考えてコーディングせい"
- まさみさんは語りたいさんのツイート: "あとはkallsymsは何故特例として残されたか、が気になる。kprobesで比較するのはkallsymsだから、これと同じように扱われて欲しい。"
- まさみさんは語りたいさんのツイート: "kallsymsはkptr_strictよりも少しきついだけの仕組みなんだけど、これを参考にしたほうがいいのか、%pKを使うべきなのか?"
- まさみさんは語りたいさんのツイート: "ごめん、これは間違い。%pKも推奨されない。どうしても必要なら良いけど、基本的にはアドレスをポンポン表示しないこと、らしい。"
- まさみさんは語りたいさんのツイート: "一応 %pの修正シリーズ出しておいたけど、4.14でどうなってたっけな?おかしかったらバックポートしないと・・・。"
- まさみさんは語りたいさんのツイート: "しかし未だにprintkの%pをどうするべきかが良く分かっていない。今のままだとインタフェースとして意味がないから、なんとかしないといけないんだけど、うーん・・・。"
- まさみさんは語りたいさんのツイート: "ふむむ、kptr_restrictはkallsymsがアドレスを隠す仕組みとは全く関係ないっぽいな。これはややこしい。"
- まさみさんは語りたいさんのツイート: "LKMLを追いかけて理解した。 - %pは既にアドレスを表示しないようになっている(ハッシュ値) - %pxを明示的に使うことが必要だが、これ以上は必要でなければ使ったら警告される - %pKにすること。"
- まさみさんは語りたいさんのツイート: "kallsymsはkptr_restrictが有効でなくても%pKと同じ動作をするようになってる。"
- まさみさんは語りたいさんのツイート: "むしろkallsymsの方にスタンダードを併せて欲しい(笑)"
- まさみさんは語りたいさんのツイート: "結局kallsymsと同じように振る舞うコードを書いて投げてみた。そのまま通ればそれでいいし、議論になったらなったで今後どうするつもりなのかを確かめてから修正する。"
- まさみさんは語りたいさんのツイート: "それ既にLinuxでは削除しようかみたいな流れになってる。代わりに%pはハッシュ値になる。オプションではなく強制。アドレスをどうしても出す場合、%pxを使うことになるが、ダメコードとしてマークされる可能性が。… "
LinuxBoot
- Fadisさんのツイート: "LinuxBoot: 「どうしてOSにドライバがあるのにUEFIの為にまたドライバを書かないといけないの?」に対するパンチの効いてソリューション。UEFI PEIの上でLinuxカーネルというファームウェアを動かしてLinuxのカーネルドライバを使ってOSを起動できるようにしよう、というもの https://t.co/e6XcY1J1qS"
- LinuxBoot
- Ryou Ezoeさんのツイート: "ちなみに推進しているのがGoogleという時点でお察し。… "
- Ryou Ezoeさんのツイート: "すでに、デバイス上に転送して使うファームウェアブロブ以外すべてLinuxカーネルにしようというCoreboot、あらゆるブロブを廃止しようというLibreboot/Librecoreがあってですね。今回のはブロブを許容した上でLinuxカーネルを動かそうという試みで自由から一歩遠ざかっている。… https://t.co/6uVPlBJ1ZJ"
- suzakiさんのツイート: "私は全てのNICにiPXEをインストールしてほしい。https://t.co/pqlREbcUn2 これがあれば、HTTPSでLinuxが起動でき、危険なTFTPブートを使わなくて済む。【宣伝】私が作っているBare-Metal ContainerではiPXEを使って任意のDockerイメージにLinuxカーネルをつけて、起動できますhttps://t.co/8udmvyyAu2… https://t.co/5EnFZdRJya"
- iPXE - open source boot firmware [start]
- baremetalcontainer/bmc: BareMetalContainer
NERF
- Google Even Fear Intel ME, Reduce Their Attack Vector With NERF - Phoronix
- more on Google NERF | Firmware Security
- NERF - Trammell Hudson's Projects
blog
- DSAS開発者の部屋:mruby を Linux カーネル内で動作させる(2017 ver)
- linuxでRyzenの温度センサーを動くようにする - 覚書
- Ryzenを積んだマシンで発生した新たな問題とその解決 - 覚書
- x86-64 モードのプログラミングではスタックのアライメントに気を付けよう - uchan note
- ファッション自作OSマンさんのツイート: "分かった.CPUが割り込み発生時に自動でスタックを整列してくれるんだ.Intel SDM Vol.3 6.14.2 "In IA-32e mode, the RSP is aligned to a 16-byte boundary before pushing the stack frame.""
- IBM PC のタイマー事情 - 借り初めのひみつきち
- Intel HD Audioで音を奏でよう
- Intel HD Audioで音を奏でよう
- はりぼてOSにIntel HD Audioを実装してみる[随時追加] - matsumoto-lab’s diary
- 2014-12-13
Qiita
- 仮想シリアル(COM) ポートドライバ「com0com」によるシリアル通信 - Qiita
- Null-modem emulator (com0com) 日本語情報トップページ - OSDN
- Linuxの不揮発メモリ対応について - Qiita
Twitter
- Fadisさんのツイート: "linux-4.16から/dev/memがデフォルトでペリフェラルにしか読み書きできなくなる。この制限は2.6時代に実装されたが長らくデフォルトでオフだった。オフの場合rootはカーネルメモリを含むあらゆる場所を読み書きできる為、不必要に開けておくべきではないとされている https://t.co/2Z7Q0klUV8"
- Linux 4.16 Is Tightening Up Access To /dev/mem By Default - Phoronix
- まさみさんは語りたいさんのツイート: "Linux kernelのモジュールも、ファイル名にはハイフンが使えるけど、実際にロードしたあとはアンスコに変換される。ちょっと面倒。"
- Fadisさんのツイート: "I3Cってなんぞって思って調べたら、I2Cが遅すぎるけどSPIだとデバイス数に比例して配線増えて辛いからI2Cのようにデータ線とクロック線の2本で沢山のデバイスをぶら下げられて、最大半二重33Mbpsで通信できる次世代I2Cとして作られたバス規格、と…"
- Makoto Kato ︎︎さんのツイート: "98NX、登場が2年早すぎて、OSR2.1/2.5のバグに引っかかりまくった記憶しかない。大概ISA PnPのIRQ rebalanceでいろんなものが動かなくなってくパターンだったけど。rtermが安定しないからすぐデバッガがハングアップしちゃってデバッグつらいだけだった"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「一応ドライバやカーネルコード知らない人向けに補足すると、カーネル側はユーザ側がポインタ指定したデータを取り出すのに copy_from_user/copyin等を介して取り出す必要ありと。 (アドレス空間が違うので直接触ると落ちたり…ただし昔のUNIXは(トップハーフ側なら)直接触れるものが多かった印象)」 / Twitter
- FadisさんはTwitterを使っています 「OpenRGB-0.3がリリースされたらしい。OpenRGBは近年よくあるRGB LEDで光るPCパーツのベンダー毎の実装の違いを吸収し、統一された方法でネットワーク越しに色を変えられるようにするデーモン https://t.co/OhwZ8217N8」 / Twitter
- OpenRGB 0.3 Released For Open-Source RGB Lighting Control - Phoronix
- なぜWindowsの標準ドライバーはすべて「2006年6月21日」のまま更新されないのか? - GIGAZINE
- 第559回 デバイスの認識をモニタリング・コントロールできる「udevadm」:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- スフォルツァートのネットワークプレーヤーがLAN DAC機能に対応 - PHILE WEB
- DeviceTree: The Devicetree Specification
- devicetree-org/devicetree-specification-released: Released versions of the Devicetree Specification
- Virtual I/O Device (VIRTIO) Version 1.0
- io386: tool wrapping around ioperm(2), iopl(2), outb(b), etc. | Firmware Security
- groeck/lm-sensors: lm-sensors repository
- start [HWMon Wiki]
- HID over I2C | Microsoft Docs
- ConexantのドライバをアンインストールしてPCのイヤホン出力を改善
- XMODEM Protocol Overview
- レガシーフリーOSに必要な要素技術 legacy free os
- FreeBSD Press No.12 NetBSD column デバイスドライバにありがちなi386依存の罠
- Kazuho OkuさんはTwitterを使っています 「わかる。上のレイヤで冪等性担保する仕組みがあると、下はすごい楽になる。レイテンシの低い冪等性(再送)アルゴリズムの設計と実装、すごく難しい(楽しい)んですけどね」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「virtio ドライバを実装していたときに思ったけどネットワークとストレージだったら後者のほうが難易度高い。TCP/IPネットワークはパケロス前提でOSが再送するけどもストレージは要求に対して応答が返ってくることが前提だからな。冗長化していても発生する問題を回避できる技術があったらきっと稼げる」 / Twitter
- Rustを使用して安全で正しいLinuxカーネルドライバーを作成
ストレージ
SATA
AHCI
- Advanced Host Controller Interface Specification
- AHCI - OSDev Wiki
- AHCI Memo · osdev-jp/osdev-jp.github.io Wiki
- AHCI_code_example · osdev-jp/osdev-jp.github.io Wiki
- 5/1 自作OSもくもく会さんのツイート: "ICH8/9のSATAコントローラは、クラスコードは01h固定だが、サブクラスコードはIDEモード(01h)とAHCIモード(06h)で値が変わるようだ。"
- AHCI capability - 総本部日誌
- Microsoft Word - dg_sataahciip_refdesign_jp.doc
- Microsoft Word - dg_sata_achi_ip_data_sheet_jp.doc
- Reconf 201506
- AHCI奮闘記 - 初期化編 - 無限遠まで突撃中
- AHCI奮闘記 - Read/Write編 - 無限遠まで突撃中
ATA-ACS
- AT Attachment 8 - ATA/ATAPI Command Set
- AT Attachment 8 - ATA/ATAPI Command Set
- AT Attachment 8 - ATA/ATAPI Command Set
- ATA Command Set - 4 (ACS-4)
- ISO/IEC 17760-102:2016(en), Information technology — AT Attachment — Part 102: ATA/ATAPI Command set - 2 (ACS-2)
- HDDのATA8-ACS規格について色々調べてみる - ぼくんちのTV 別館
- ASCII.jp:SSDサポートにさらなる一歩を踏み出したWindows 7 (1/2)|あなたの知らないWindows
- 【大原雄介の最新インターフェイス動向】Serial ATA 3.0編その1 - PC Watch
- 【大原雄介の最新インターフェイス動向】Serial ATA 3.0編その2 - PC Watch
- T13
- Home - INCITS
- Untitled Page
- ASCII.jp:Windows 7の実像 Part 5 OSのSSD対応とエンハンスドストレージ (1/2)|次世代Windowsの姿が見えた!
- 【元麻布春男の週刊PCホットライン】SSDに関するWindows 7の3つの特徴 - PC Watch
忘却の彼方
- 忘却の彼方: DEVSLP(Device Sleep)機能とは
- 忘却の彼方: Intel Driver V11.5以降のSATA LPMの設定
- 忘却の彼方: SATA LPMの設定方法
- 忘却の彼方: SATA LPMって知ってますか?
- 忘却の彼方: SSD/HDD用ベンチマークソフト「TxBench」
- 実績:ベンチマークソフトウェア TxBENCH|株式会社テクシム ソフトウェア開発・販売
S.M.A.R.T
- S.M.A.R.T 情報
- CrystalDiskInfo – 参考文献 – – Crystal Dew Blog
- USB-HDD 対応はなぜ難しいのか? – Crystal Dew Blog
- Seagate SMART Attribute Specification
- S.M.A.R.T. is SMART! 各社対応編
- HDDのS.M.A.R.T情報を取得する(UsefullCode.net)
- 世界基準を作った男。「CrystalDisk」シリーズの生みの親“ひよひよ氏”直撃インタビュー - エルミタージュ秋葉原
SecureErase
- 忘却の彼方: Linuxを使用したSecureEraseの手順
- 忘却の彼方: Crucial M500/M550/MX100とSecure Erase
- 一方、ふうえんさんちでは… Secure Eraseを回復不可能セクタに試す
- ALL about Linux: SecureErase を実施してみた
- ALL about Linux: SecureErase のために frozen 状態を解除する方法
- ALL about Linux: 中古 SSD の SecureErase
Wikipedia
- Self-Monitoring, Analysis and Reporting Technology - Wikipedia
- S.M.A.R.T. - Wikipedia
- Aggressive Link Power Management - Wikipedia, the free encyclopedia
- シリアルATA - Wikipedia
- Serial ATA - Wikipedia, the free encyclopedia
- Serial ATA International Organization - Wikipedia
- 情報技術規格国際委員会 - Wikipedia
- International Committee for Information Technology Standards - Wikipedia
- ハイブリッドHDD - Wikipedia
- Hybrid drive - Wikipedia
- ソリッドステートドライブ - Wikipedia
- Solid-state drive - Wikipedia
- シングル磁気記録方式 - Wikipedia
- Shingled magnetic recording - Wikipedia
- DevSlp - Wikipedia
- Trim (computing) - Wikipedia
- Native Command Queuing - Wikipedia
Twitter
- ✿せかいの底のゆるふぁ✿さんのツイート: "双子のVirtualBoxとVMWareのお話🐤"
- ✿せかいの底のゆるふぁ✿さんのツイート: "ideのディスク0にハードディスクを構成、ディスク1はデバイスなし🐤 https://t.co/gZtnRd4pNU"
- ✿せかいの底のゆるふぁ✿さんのツイート: "一方で、VMwareのEXECUTE DEVICE DIAGNOSTICの結果🐣 https://t.co/QhFQuxSl0f"
- ✿せかいの底のゆるふぁ✿さんのツイート: "両方ともデバイス1がありませんが、各レジスタ-の戻り値が違いますね🐣"
- ✿せかいの底のゆるふぁ✿さんのツイート: "つまり決定性がないように見えます🐣"
- ✿せかいの底のゆるふぁ✿さんのツイート: "これをどうやってデバイス1がないことをdetectするのかが問題です🐣"
- ✿せかいの底のゆるふぁ✿さんのツイート: "答えはATAの仕様に記述されています🐣"
- Purchase SATA Specification | SATA-IO
- 20100521170123066.pdf
- dwm013300770.pdf
- SATA hardware features - ata Wiki
- HDD が AV コマンド対応か調べたい: ひでのブログ
NVMe
Twitter
mariadb
- Takeshi HASEGAWAさんはTwitterを使っています 「MariaDB 10.5 の性能は不正? - DB改造屋雑記 https://t.co/PMjdfnxU67」 / Twitter
- DB改造屋雑記: MariaDB 10.5 の性能は不正?
- FadisさんはTwitterを使っています 「mariadbの話みてふとSPDKのNVMeドライバのflushの実装が「デバイスに何もしないで成功を返す」っていう最高にロックな実装だったのを思い出して、今は直ったのかなと思ってみたら相変わらずロックで安心した https://t.co/0Hz3CbBqm4」 / Twitter
- spdk/bdev_nvme.c at 90db6167ce6331bcb9c93abd05c0999d3d834726 · spdk/spdk
- FadisさんはTwitterを使っています 「NVMeのWRITEはデバイスによってはコントローラが要求が受け付けた時点で成功が返るので、FLUSHを呼ばないとWRITEした内容が永続化されている事が保証されない。Linuxカーネルのドライバはflush時にきちんとFLUSHしてて、SPDKのドライバのflushは虚無だったから、SPDKが圧倒的速く見えるという…」 / Twitter
histric-1
- Fadisさんのツイート: "SATAのHDDは最大32個のコマンドを積めるキューをデバイス側に持っている。複数のコマンドを予約しておく事で、デバイスはより効率よくディスクを読み書きできる順にコマンドを並び替えて実行することができる。32個という上限は効率良くヘッドを動かす目的では十分な効果を発揮する長さだった"
- Fadisさんのツイート: "しかし大量の不揮発メモリに一斉にアクセスできる時代にこのキューは短すぎる。そこでNVMeでは65536個のコマンドを積めるキューを最大65536個デバイス側に持てるようになっている。キューが複数になったことで個々のプロセッサは他のプロセッサがキューを操作する可能性を考慮する必要がなくなる"
- Fadisさんのツイート: "ストレージが極めて高速な時代にその性能を生かすにはできるだけドライバに仕事をさせないことが重要とされている。NVMeではハイパーバイザがゲストにNVMeストレージの一部を見せる際にソフトウェアによる変換を行わなくて良いように、ハードウェアによる仮想化支援が規格化されている"
- Fadisさんのツイート: "NVMeの仕様凄すぎて「SATAがおもちゃのようだ…」っていう感想が無限に出てくる"
- satさんのツイート: "SSDならI/Oスケジューラが邪魔って話は結構有名でnoopにしようって書いてあることもある。ただしそうすると高I/O負荷状態で特定I/Oリクエストが永久に発行されない問題があるので結局SSDはdeadlineがデフォ。最近はBFSが出てきたが、評価してない。あとこれNVMe SSDだとBFSはどうなるんだろ"
- ゆるsyuu1228△さんのツイート: "そういえばNVMeってMQ NICみたいに仕様上はマルチキュー対応してMSI-Xでキュー毎にIRQ持てたはずだけど現物はそうなってるかなぁ、と思って/proc/interruptsみたら確かに割り込みが複数見えるし割り込み先は各CPUに分散されてる https://t.co/ECuH6VTbJN"
- nvme-interrupts.txt
- 中村 実さんのツイート: "NVMeの仕様はInfiniBand & OpenFabricsの仕様を大いに参考にしていると思われます。… "
- <4D6963726F736F667420576F7264202D2081A18E9197BF34322D312D32814088CF88F589EF95F18D902E646F63>
- satさんのツイート: "(そこでSPDKですよ)"
- 中村 実さんのツイート: "似ているというか、最初のNVMe仕様書を読んだ時は、用語の選び方や説明の仕方がInfiniBand仕様書にそっくりだと思ったものです。… "
- satさんのツイート: "SSD、とくにNVMe SSDくらいだとソフト(カーネル)でI/O発行前に一旦溜めてゴニョゴニョしてる間にI/O発行して制御返ってきますので"
- satさんのツイート: "具体的にどんな問題かというと例えばデバイスの尻の方にI/O一発出してからデバイスの頭の方に無限にI/O出すと 1. 前半のI/Oがブロック層でマージ/ソートされる 2. 一定数溜まるとドライバに渡される が延々と繰り返され、最初のはずっと残る。細かい条件は覚えてないけど、だいたいこんなん"
- Takeshi HASEGAWAさんのツイート: "NVMはインターフェイス決めたものなのでそれをどう捌けるかはコントローラの問題なんだよな。はやくioDriveにあらゆる視点で勝てるデバイスでてほしい。"
- Takeshi HASEGAWAさんのツイート: "Fusion-ioはCPU側でFTLまで実装してしまって、FPGAにあるのはフラッシュメモリへの転送を行うDMAコントローラやECC機能とかだった。OSのブロックレイヤを迂回するために各種小技を使っていた(場合によってはiostatが正しい報告をしなくなり、カーネルによってはunplug bug発生させたりもした)"
- Takeshi HASEGAWAさんのツイート: "DDR2やDDR3のメモリ、2GHzのマルチスレッドプロセッサがホストにあるのなら下手に組み込みプロセッサでFTLするより早いだろ?という発想の作りだった。バス幅もクロックも高いし組み込みプロセッサの放熱なども考えなくていい。いま思い出してもいかにシンプルか‥知識が増えた今の方がやばく感じるな"
- Takeshi HASEGAWAさんのツイート: "ここ一年でioMemoryの代わりに最新のNVMe評価したエンジニアが「ioMemoryのほうが速かったですね」とコメントしたという件を聞いて頭を抱えた。なんで2013年に設計されたioMemoryが実アプリでの性能評価で最新NVMeに勝ってしまったのか。がEOLになったいま、マジでioDrive麻薬が切れようとしている。"
- Takeshi HASEGAWAさんのツイート: "75W消費し、カタログスペックの帯域幅倍近く差をつけられたHuaweiのカードに対して21W設計のioMemory SXが勝っちゃってお客さんに採用されたときも驚いたけどな。「もうさすがにFusion-ioの時代終わっただろ」と思ってパフォーマンスデータみるとケースによっては、かなり健闘していて、正直、びびる。"
- satさんのツイート: "noopはたしか - 基本的にはFIFO - ソートはしない - キューの先頭に対してだけはマージしうる なので、似たような場所にI/O出しまくってると永久にマージされ続ける(ある程度溜まったらドライバに渡される)、という話だったと思います。たぶん。 大昔のlinus elevatorはソートもするのでもっと悲惨… https://t.co/WZeoK8XzAR"
- Takeshi HASEGAWAさんのツイート: "私自身もioDrive2と某ストレージの比較したら、ioDrive2のほうが速くなっちゃって、あわててベンチマークのメトリック変えたりしたけどね。そのままじゃシナリオ通りにならなかったのでホスト側のバッファ絞って、リード帯域幅がより出せる最近のストレージにあわせてioDrive2より速くなるようにした"
- satさんのツイート: "これちょっと訂正。マージはするけどソートは無し。いにしえのI/Oスケジューラと混じってた"
- Fadisさんのツイート: "NVMe「プロセッサごとに割り込みを用意して効率よくコマンドの完了を通知… SPDK「割り込みなんて時間かかる処理いらねぇ! 俺はCPUをビジーループさせてデバイスをポーリングするぞ!」"
- Fadisさんのツイート: "DPDKもSPDKも他のプロセスにCPUを譲る気ゼロでお前らなんでOSの上で動いてんの感満点である"
- Fadisさんのツイート: "NVMeの仕様見てたら、デバイス側のメモリをホストのメモリ空間にマップして読み書きするデータを直接そこに書き込む拡張、とかあって「アッこれGPUでやったやつだ」ってなった。イマドキのストレージはそこまでするのか…"
- まさみさんは語りたいさんのツイート: "GPUから直にNVMe読み書きすることもできると聞いた。… "
histric-2
- Fadisさんのツイート: "NVMeのストレージ、取り付けたPCが起動していた時間と、正しい手順を踏まずに電源を落とした回数がデバイスに記録されてるwww"
- Fadisさんのツイート: "従来のストレージだとSMARTとかでやってたのがNVMe自体の規格に取り込まれてる感じなのかな"
- Takeshi HASEGAWAさんのツイート: "レジスタがあるはず。… "
- Fadisさんのツイート: "ありますねー https://t.co/Bx6AUA0gzf… "
- SPDK: spdk_nvme_health_information_page Struct Reference
- Fadisさんのツイート: "NVMeのCMBを使うと、あるLBAにあるデータをCPU側のメモリに持って来る事なく別のLBAにコピーすることが出来るわけで、ファイルシステムは連続した領域を確保するために積極的に保存されているデータを移動させる事も選択肢に入れるべき状況になってきてる"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "半導体メモリ系で、連続領域確保の必要性が良く判らない…ブロック(or ページ)未満のフラグメントの話なのかな? 話は飛んで NVDIMM-P。内部のDRAM - 不揮発メモリ間の転送=ページアウト・イン的な動作時に、CPU側のメモリバス帯域を汚さないだろう点に興味があったり。… https://t.co/kLlmmOokle"
- Fadisさんのツイート: "昔流行ったioDriveと比較して最近のSandiskのNVMeは秒間にさばけるコマンド数では勝るけど1コマンドあたりのレイテンシでは負けてて、NVMeは性能を活かすにはFSやアプリケーションのレイヤーで「IOの完了を待つな」「できるだけ沢山のリクエストを受け付けてキューに積め」を徹底する必要があるげ"
- Takeshi HASEGAWAさんのツイート: "ただ実際のところアプリケーションの動作としてキューに詰めて仕掛り状態で並列に実行できるものなら、という条件がつくんだよね。マイクロ秒の持ち時間で複数スレッドの行更新を調停し、真面目に見たら並列実行できないクエリをグループコミットするアルゴリズムなどで賢くしていくしかないのでは?"
- Takeshi HASEGAWAさんのツイート: "なんでNVMe SSDがそんな方向に進化しているかって、そりゃみんな GB/s とか MB/s とか IOPS とかって所に書かれてる大きな数字が好きだろ?"
- Fadisさんのツイート: "古典的なゲーム屋さんが燃えるタイプのマゾデバイスだこれ"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの非同期I/Oを多用した仕組みに時代が追い付いてきた?… "
- syuu1228さんのツイート: "Scylla、まずSSDベンチマーク走らせてIO並列度いくつまで上げていいか計らないとDBの起動が許可されないようになっておる https://t.co/6UBEIFH1D8"
- syuu1228さんのツイート: "ほぼ初期からこうなので何の疑問も抱いてなかったけど冷静に考え直すと鬼畜仕様っぽいな https://t.co/qK2c9czbi6"
- Takeshi HASEGAWAさんのツイート: "NVMe SSDとioDriveの比較DBベンチマークの取り方の一例。NVMeを強く見せたいなら、システムメモリに収まりきらないDBサイズでOLTP負荷をかければ、読み込み帯域の差で、新しい世代のNANDが載ったNVMeが勝つ。ioDriveを勝たせたければ、メモリに収まるDBサイズでロギング性能勝負にするとioDriveが勝つ"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NVMe(EVO960 1TB)内でファイルコピーする際、readとwriteを並列発行するのと、交互発行(read完了してからwrite発行)するのでは、2倍近く後者が速い不思議。 (DirectI/O + 1MB非同期I/Oを20個キューイング、Win10) HDDみたいな結果に。 (2.5インチSSDドライブではほぼ速度差なしだった記憶)"
histric-3
- Fadisさんのツイート: "SPDKでSandiskの速いNVMeに直接writeを投げてみたら、1ページの書き込みでおよそ10μ秒とかいう計測ミスってんじゃないかって思うような時間で応答が返ってくる ._."
- Fadisさんのツイート: "あっ、このデバイスVolatile Write Cacheがついてる。だから書き込みが読み込みより早く返ってくるのか"
- Fadisさんのツイート: "spdkのblobstoreさん、デバイスのvolatile write cacheに載ってるデータのflushを行う手段が無いの渋い"
- Fadisさんのツイート: "/dev/zeroのスループットが何故か1GB/sくらいで頭打ちになってnvmeから0をreadしたほうが性能が出るの、どうしてそうなった…"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "bs=1M とかにしてみては?… "
- Fadisさんのツイート: "bsをいろいろ変えて試してるんですが、1GB/sくらいで頭打ちになってるようなんですよ(if=/dev/zero of=/dev/nvme0n1でifをキャッシュに乗っているファイルにした場合もっと出る)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど。 if=/dev/zero of=/dev/zero bs=1M だと1コアをsys側で使い切った上で、1GB/sとかですか?… "
- Fadisさんのツイート: "ほとんどsysですね… "
- Fadisさんのツイート: "ただ コアを使い切って はいないようです。sysが60%くらいuserはほぼ無しで安定してます… "
- Fadisさんのツイート: "あ、読み間違えてました、両側zeroはまだやってないです… "
- Fadisさんのツイート: "両側/dev/zeroだと22.5GB/s出ました。ということはzeroが遅いわけではないって事になりますね… "
- Fadisさんのツイート: "どうも/dev/zeroが遅いわけではないことがわかった、何でzeroとnvmeの場合だけ遅くなるんだろ"
- Fadisさんのツイート: "NVMeでは複数のキューから命令を受け付ける為、ストレージ内で競合状態を起こす可能性がある。同じデータを触る2つの命令の間に、同じデータを触る別のキューの命令が割り込んで意図しない結果になるのを回避するために、キューに積まれた2つの命令をatomicに処理する為のフラグが用意されている"
- Fadisさんのツイート: "SSDさんベンチマークとってると、同じベンチマークを繰り返してるのに突然お腹をこわしてスループットが1/3くらいに落ちたりして、SSDの気持ちを理解するのは難しい"
- Fadisさんのツイート: "SSDさんは無口でコントローラが何をしているのか教えてくれないので、対話は困難を極める ._.… "
- Fadisさんのツイート: "昨晩の睡眠を犠牲にする事によって「SSDのスループットはカーネルが何もしなくても時間と共に変化する為、2つの条件でとったベンチマークを比較する場合そのベンチマークは可能な限り近い時刻で取らなければならない」という悟りを開いた"
- Takeshi HASEGAWAさんのツイート: "前のワークロードの影響を受けるからね。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SSDを2つ並べて、同じタイミングでベンチ開始、という意味ですか? それとも、同じSSDを立て続けにベンチ?… "
- Fadisさんのツイート: "立て続けです。2つの条件のベンチマークをそれぞれ10回づつ繰り返して平均をとっていたんですが、SSDが突然速くなったり遅くなったりするので、2種類のベンチマークを交互に行って比をとるようにしたら分散が小さくなりました、という話です… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど! 双方を連続してベンチするだけでなく、何度も(間断なく)繰り返すのがポイントという感じですか。 (単発テストだと、双方を連続してベンチをとっても、最初に試行する側が好成績になりがちな印象があったので…)… "
- Fadisさんのツイート: "Fadisさん「NVMe SSDどんなに激しく扱ってもコンテキストスイッチのオーバーヘッドとか誤差なんだけど、Intelはどんな環境でSPDKやってるんだろう」 Intelのドキュメント「Xeonサーバに、NVMe SSDを16本さして、100GbE 2枚にデータを流しても、SPDKならスケール!!!」 Fadisさん「ア、ハイ」"
- Fadisさんのツイート: "公式のパフォーマンス報告に書いてある環境が凄すぎて用意できない問題"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "面白い。 以前、Win10 + Direct I/O + Async I/O + EVO960実験中に気付いた話。 ReadキューとWriteキューを同時に溜めると大幅に速度低下する。 速度向上に Asyncで並列度を上げるのは大事だが Readキューを連続蓄積&処理した後に、Write I/Oキューを連続蓄積&処理した方が、1.5~2倍速くなる。… https://t.co/wXChry7hxh"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "EVO960でRAIDを組むと、SPDK等無しでも 6.5GB/s に。 (M.2-PCIe変換ボード2枚刺し環境) https://t.co/AsDBqJkngG"
- Fadisさんのツイート: "NVMeのSSDは、きちんと性能が出るように使うには工夫がいる扱いの難しい子だけど、うまく使うと3万円のNVMeで150万円のioDriveを圧倒するスループットが出る、弄りがいのある子だよ"
- hitoさんのツイート: "「まさかの(実用上)Windows専用のNVMe」なんていう概念が誕生していてquirkを強いられるLinux https://t.co/P1X96Gi3hY"
- Fadisさんのツイート: "NVMeをソフトウェアのRAID0でより高速にしようというアイデアはやめておいた方が良い。PCI-Expressの帯域不足が問題になる程の勢いでデータを流してくるデバイスに「データを加工して読み書き」なんて工程を追加したら簡単にCPUがボトルネックになる。どうしてもそこを攻めたい時はSPDKを使うと良い"
- KaiGai Koheiさんのツイート: "あれ、ちょっと待てよ。 PG-Stromの場合、GPUDirect RDMAを使って(つまりGPUデバイスメモリをホストアドレス空間にマップして)NVMEのコントローラに『ブロック⇒GPUメモリ』のデータ転送をさせてるけども、逆にNVME側のバッファをマップして、GPUのDMAエンジンでReadできるかも?… https://t.co/bxpYwpXtjA"
- 鯉江さんのツイート: "NVMe->GPUとかFPGAに直接流し込めないものだろうか...… "
- Fadisさんのツイート: "その為にNVMeにはController Memory Bufferという拡張があります。対応したデバイスの場合、ホストのアドレス空間にマップされたデバイスのバッファに置かれたデータを対象にread/writeが可能なので、PCI-Expressのデバイス間でデータをDMAして、read/writeコマンドだけCPUから投げる事ができます… https://t.co/v0jTUkofDp"
- KaiGai Koheiさんのツイート: "そうするとGTXでP2P DMAができてしまう的な。"
- KaiGai Koheiさんのツイート: "ただNVME(PCIe)とNVMEoF(RDMA)用のドライバが全く別物になってしまうな、、、これは。"
- KaiGai Koheiさんのツイート: "そうですね。元Twは昨晩見ましたが、SPDKがそういった10GB/sとかで押し寄せるデータの処理・加工に有効に作用するようには思えませんので、(?_?)という感じでした。… "
- Takeshi HASEGAWAさんのツイート: "なるほど… "
- Takeshi HASEGAWAさんのツイート: "ただ条件句うんぬんの処理がさばききれなくなるのが、mdraidじゃなくSPDKでさばけるようになるという話しだとすると、直感的によくわかりません。うーん、RTしたツイートだけで考えるのはよくないですね。あとで流れを読み直してみるか。… "
- Takeshi HASEGAWAさんのツイート: "んーしかし元ツイートの趣旨がよくわからんな。 帯域幅当たるほどのスループット出そうとするとブロックサイズ大きくなってきてCPUサチらないんじゃ。というかそもそもNVMeインターフェイスとブラックレイヤーとmdraid介してI/Oして、どんながCPUサチるどんなワークロードだろ。"
- KaiGai Koheiさんのツイート: "たぶん、NVME-SSDから読み出したデータを何がしかCPUで処理しようとする(例えばレコード毎に条件句の判定する)と簡単にサチるのという主旨ではないかと理解しました。右から左へ流すだけなら、まぁ、変な作りしてなければ。… "
- hiyohiyo (Noriyuki Miyazaki)さんのツイート: "CrystalDiskInfo 8.1.0 Beta2 - Intel RST NVMe サポート - ついにDELL製NVMeモデルに対応しました! ダウンロード: https://t.co/Zf6OWgakVP ソースコード: https://t.co/pSOA7DRXhT… https://t.co/BDttKZG7wD"
- CrystalDiskInfo 8.1.0 Beta2 · hiyohiyo/CrystalDiskInfo@902b408
- Kazuho Okuさんのツイート: "erase block単位で書込してればtrim不要だしスループットもよくなると思うんだけど、汎用fs+クラウドだと難しいのかなぁ / https://t.co/H7CFUW1zee"
- 高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ
- Takeshi HASEGAWAさんのツイート: "Fusion-ioはTRIM相当操作がめっちゃ速いようにカーネルに反応してて、それを前提で全力でTRIMしまくるコードをSATAかなんかのSSDで使ったらほぼ息しなくなって、カーネルのバグじゃないかとLKMLで疑い始めたが、結果として「SSDがマジでTRIMで固まってるね」でスレ終了したの思い出す… https://t.co/i6IjtpSLZ4"
- Nobutoshi Ogataさんのツイート: "“高負荷システムでNVMeデバイス使用時のfstrimとdiscard mount optionの話 - たごもりすメモ” https://t.co/PKMUway6w3"
- 品川 高廣さんのツイート: "そういえば Apple の NVMe コントローラおかしい問題は BitVisor でも苦労してたな。https://t.co/T926JEyT59… "
- Fadisさんのツイート: "AppleのNVMeストレージを使うためのパッチがLinux 5.4でのバニラカーネル入りを目指している。2018年以降のMacに載っているApple製のNVMeがNVMeの規格に沿っておらずLinuxのNVMeドライバで使えなかった問題を解消するらしい https://t.co/Hd1ZC8QkK7"
- The NVMe Patches To Support Linux On Newer Apple Macs Are Under Review - Phoronix
- Takanari HayamaさんはTwitterを使っています: 「@utshina2 はい。BitVisor ベースの vThrii では対応済みです。なので、vThrii を入れると Linux も T2 が載った Mac で動いたりします。」 / Twitter
- 品川 高廣さんはTwitterを使っています: 「@taki_igel なるほど、vThrii を入れると Apple NVMe が標準的な NVMe に化けるわけですね。これは面白いですね。」 / Twitter
- FadisさんはTwitterを使っています 「先日LinuxのENAの初期化を速くしていたlitelが今度はNVNeの初期化を速くしたらしい。方法はENAの時と同じでデバイスが利用可能になったかを100ms間隔でチェックしていたのを1ms間隔に変更するというもの。NVMeの初期化は通常100msもかからないため起動時間の短縮が見込める https://t.co/WgQbiHnMt8」 / Twitter
- NVMe SSD Systems May Boot Slightly Quicker With Linux 5.7 - Phoronix
- FadisさんはTwitterを使っています 「NANDフラッシュは5GB/sを1ブロックづつ処理して達成できる程高速ではない。それでもNVMeが高いスループットを達成出来るのは重複しないブロックに対する操作を同時に行う事で単位時間あたりの性能を稼いでいるから。言い換えるとNVMeは高スループットの割に高レイテンシという特徴を持つデバイスなんだ」 / Twitter
- NV(*´ω`*)さんはTwitterを使っています 「@fadis_ 利用者からは高速に見えるけど、実態はNANDの積層とキャッシュでごまかしているというやつですな」 / Twitter
- FadisさんはTwitterを使っています 「@nvsofts キャッシュが詰まると突然性能が落ちるし、flushをきちんと待つと小さいI/Oの性能が全然出ないたのしい」 / Twitter
- FadisさんはTwitterを使っています 「PS5が採用するかは知らないけど、NVMeはコントローラのバッファをホストのアドレス空間にマップする拡張(CMB)があって、これが使える場合CPUはread要求だけ投げて、バッファに上げたデータはCPUにまわさず直接GPUが持っていくみたいな事ができる。対応してたら絶対楽しい」 / Twitter
- FadisさんはTwitterを使っています 「Linux 5.9からNVMeのZoned Namespaceがサポートされるらしい。Zoned Namespaceではストレージは256MBくらいのZoneに分割され、各Zoneは追記または丸ごと消去しかできない。この制約によりFTLの仕事が大幅に減り、不便だが性能の良いストレージが実現する https://t.co/fIyJD0eGg1」 / Twitter
- NVMe ZNS Makes It Into Linux 5.9 Along With MD RAID Fixes - Phoronix
- FadisさんはTwitterを使っています 「NVMeのZNSやSMRを直接公開するハードディスクはZonedStorageと呼ばれ、Linuxではブロックサイズが異常に大きく特殊なコマンドを受け付けるブロックデバイスという扱いを受ける。こうしたブロックデバイス上で動くファイルシステムには専用の対応が必要で、現状F2FSとBtrFSが対応している」 / Twitter
- FadisさんはTwitterを使っています 「NVMeに今年追加されたsimple copyをLinuxが使えるようにするパッチが出ている。simple copyは「デバイス内の複数箇所から読んで一箇所に書く」をデバイス側で完結させるコマンドで、F2FSのログやZNS上に作ったログの整理、CoWなFSで頻発するコピーの性能向上が期待できる https://t.co/7ytVV5pwYg」 / Twitter
- NVMe "Simple Copy" Offloaded Copy Support Being Prepared For The Linux Kernel - Phoronix
- FadisさんはTwitterを使っています 「このNVMeのsimple copyの狙いって表向きは処理のオフロードだけど、多分デバイス屋は書き込みの目的がコピーであることをデバイスに明示することで、FTLが複数の論理アドレスに1つの物理アドレスを割り当てる(=コピーしたことにする)を可能にするとこまで考えてるよな」 / Twitter
- NVMe準拠のPCIe 3.0接続となるIntel製SSD「SSD 750」レビュー。SATA 6Gbps比で2倍以上という圧倒的な速度性能を確認する - 4Gamer.net
- SATA AHCI SSD から、NVMe SSD へ|株式会社アークブレイン
- NVM Express | 低いレイヤの話
- NVM Express » Specifications
- koie blog : いってきた: MemoryPlus Workshop
- www.snia-j.org/tech/WH/PCIe_SSD/files/PCIe_SSD_101_J.pdf
- CrystalDiskInfo 6.7.0-3 | Crystal Dew Blog
- NVM Express | tous les jours
- NVMe: Controller Initialization and Shutdown Processing | tous les jours
- 福田昭のストレージ通信 SSDインタフェースの現在(3):PCIe SSDの性能を引き出す「NVMe」 (1/2) - EE Times Japan
- NVM Express - Wikipedia
- NVM Express - Wikipedia
- Non-Volatile Memory Express
- Hisaki Oharaさんのツイート: "NVMeFを使っても割込みがなくなるわけでないからSPDK使おうぜ、とかそういう話になるんだろうか"
- spdk/lib/nvmf at master · spdk/spdk
- 「NVMe over Fabrics」でストレージ環境が一変する――注目の技術革新を解説 (1/2) - TechTargetジャパン サーバ&ストレージ
- NVM Express1.3 - 約2年半振りのNVMe規格アップデート | PC Core
- qemuのNVMeが微妙なlegacy割り込みをする話 - livaの雑記帳
- NVMe ストレージの揮発性内部キャッシュ - 誰かの役に立てばいいブログ
- 徹底解説:SSD向け次世代接続規格「NVMe」、存在感を増す新規格の全貌 (1/2) - TechTargetジャパン サーバ&ストレージ
- 極めて速いストレージとの付き合い方 - Speaker Deck
- BitVisor Summit 7「3. Interesting Issues During NVMe Driver Developmen…
- 2019年1月18日号 discoの開発,各種ハードウェアサポートの拡充とカーネルパッチ:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- NVM Express Revision 1.2 の仕様が公開されるも肝心の NVMe over Fabrics は含まれず - 教育は参考ブログ
- NVMeドライバをLinux上でuioを用いて開発してみたが間に合わなかった - /var/log/hikalium
- NVMe HMB機能を使ってみた - Fixstars Tech Blog /proc/cpuinfo
- NVMe ドライバの HMB (Host memory buffer) 初期化処理のバグフィックス - Fixstars Tech Blog /proc/cpuinfo
SD
- Simplified Specifications - SD Association
- 新規格「ビデオスピードクラス」に対応したSDカードが登場、SanDisk製 - AKIBA PC Hotline!
- cat pics RT bot(代理)さんはTwitterを使っています: 「SDHC 4.xだと64bit addressingは96/128bit descriptorなのかー。ADMA3かー」 / Twitter
- cat pics RT bot(代理)さんはTwitterを使っています: 「Apollo LakeだとAPL18 erratumのせいで96bit descriptorでDMAしないと駄目なのかー、なるほどね」 / Twitter
- cat pics RT bot(代理)さんはTwitterを使っています: 「ADMA2でも96/128bit descriptorが使えるのか。建て増し増しで訳が分からなくなってきた(最初から分かっていないという説有り」 / Twitter
- FadisさんはTwitterを使っています 「2行の変更でRasPi4のSDカードのデータ転送を倍速にするパッチが現れたらしい。SDカードにはクロックの上げ下げ両方でデータを送るDDRモードがあり、RasPi4のハードウェアはこのモードをサポートしているが、誰も有効にしていなかった、という物 https://t.co/ZRS4ooPLGW」 / Twitter
- Linux Patch Proposed To Double Raspberry Pi 4 Transfer Speed To eMMC/SD Storage - Phoronix
- FadisさんはTwitterを使っています 「Linux 5.11からSD Expressがサポートされるらしい。初のSD Express対応コントローラRTS5261のドライバも同梱。SD ExpressはSD7.0で追加された次世代高速SDカード規格。コントローラとメディアがネゴシエーションの結果SD Express対応とわかるとPCI-ExpressでNVMeを喋り始める https://t.co/CiU0HhZqY0」 / Twitter
- SD Express Support Coming With The Linux 5.11 Kernel - Phoronix
- FadisさんはTwitterを使っています 「SD7.0のSD ExpressはUHS-IIで使われていたのと物理的には同じ並びの2列目のピンからPCI-Express x1を吐く事になっている。ホストがPCIe 3.0なら1GB/s、PCIe 4.0なら2GB/sで通信を行う。SD8.0では更に3列目のピンが追加され、PCI-Express x2に対応する事でPCIe 4.0なら4GB/sでの通信が可能になる」 / Twitter
- FadisさんはTwitterを使っています 「なんか裏面の半分くらい端子になってるし、SDカードの終着点はLGAなのでは感がある https://t.co/jBet1aBPdy」 / Twitter
virtio-blk
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第20回 bhyveにおける仮想ディスクの実装
バックアップ
- 一ノ瀬 いろはさんはTwitterを使っています: 「バックアップからの復元を行わなければならない時は、大体焦って普段やらないミスをしてしまうので手順はなるべくシンプルな方が良いと言う主張をして行きたい。」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「バックアップは本当に札束で殴るしかない印象ある。」 / Twitter
- なかのん、ダンベル何キロ持てる? (背骨折れてて持てません)さんはTwitterを使っています: 「バックアップの怖いところは、リストアしてみるまで思い通りにバックアップできてるかどうか、個人だと特にテストのしようがないのがつらい。」 / Twitter
- 一ノ瀬 いろはさんはTwitterを使っています: 「@d_toybox 同型の予備機とか現実的では無いですからねぇ。」 / Twitter
暗号化
- Shinji KonoさんはTwitterを使っています 「fs全体を暗号化はアホ過ぎる。しかし、HDD全体を暗号化すれば消す時にはキーを捨てるだけで良いってのはある。しかし、ちゃんとキーを消せるのかってことになる。キーの市場みたいなのができて、そこに売れるとか…」 / Twitter
- https://twitter.com/wakatono/status/1308455622317203461
- https://twitter.com/shinji_kono/status/1308457516703989762
- https://twitter.com/wakatono/status/1308455207903272961
- Shinji KonoさんはTwitterを使っています 「必要な部分だけ暗号化すれば良いが、そこから取り出した平文なコピーはどうする。メモリ上にはそういうものがたくさん。メモリも暗号化するのか? 何が目的かによるね。漏洩と暗号化は直交したもの。暗号化したから良いってものではない。」 / Twitter
Twitter
マルチスレッド
- κeenさんはTwitterを使っています 「これ面白い。それなりのサイズのファイルに大量にアクセスするとき、SSDだとマルチスレッドで性能が上がるけどHDDだとマルチスレッドで性能が下がる。 Performance Impact of Parallel Disk Access | Piotr Kołaczkowski https://t.co/kj6UYmToWh」 / Twitter
- Performance Impact of Parallel Disk Access | Piotr Kołaczkowski
- κeenさんはTwitterを使っています 「そこでハードウェアごとにスレッドプールを使いわけて、HDDにはシングルスレッド、SSDにはマルチスレッドでアクセスする話。Rustだと所有権絡みでスレッドプールが複数あると扱いにテクニックが必要になる。 Multiple Thread Pools in Rust | Piotr Kołaczkowski https://t.co/M5yHbnSsDH」 / Twitter
- Multiple Thread Pools in Rust | Piotr Kołaczkowski
- κeenさんはTwitterを使っています 「HDD x マルチスレッドで性能でないのはそれぞれのリクエストが入り乱れてランダムアクセスになるから。小さいサイズのアクセスならOSがリクエストをソートしてくれるからむしろ速くなる。SSD x マルチスレッドで性能が出るのはリクエストキューを埋められるから。」 / Twitter
histric-1
- matsuu@ババウさんのツイート: "ほう。ioping知らなかった。各種パッケージシステムにすでにあるらしい / “linux-freebsd-openbsd-macosx-find-disk-io-latency-with-ioping” https://t.co/iD1Ah5iFTL"
- How to find disk I/O latency with ioping monitoring tool on Linux - nixCraft
- Yoshihiro OKAMOTOさんのツイート: "SeagateはコンシューマPC向けHDDでSMR採用になったみたいだけど、酷かったArchiveの頃とは違い、故意にSMRの苦手なワークロード走らせたりしなければ普通に使えるようになってるみたいね"
- まさみさんは語りたいさんのツイート: "SMRはSMR対応のログファイルシステムがきちんとOSネイティブで実装されていないと使いたくないなあ・・・。どうなったんだっけか。"
- Fadisさんのツイート: "DPDKでreadするとプリアンブルを除いたイーサネットフレームが返ってくる。SPDKでreadすると指定したLBAから始まる領域の値が返ってくる。レイヤーとしては大して変わらないのにSPDKの方はなんとかなりそうな気がしてDPDKは険しい道に感じるの、どう考えてもTCPを実装するのが人類には難しすぎるからだ"
- Fadisさんのツイート: "SPDKのblobfs、ファイル操作のAPIは根本的に形を変えないと近代的なストレージの性能を活かせないという低レイヤーからの要求と、従来のAPIから使い方を大きく変えると既存のアプリケーションが移行できないという高レイヤーからの要求がぶつかり合って出来た残念のカタマリって感じがする"
- Fadisさんのツイート: "blobfsの下まで完全に非同期のストレージデバイスの操作を引っ張ってきたのに、ここでブロッキングI/Oになるのか…"
- Fadisさんのツイート: "ぁーそんな気はしてたけど、SPDKのblobstore、複数のスレッドから別々のチャネルを使って書き込むと壊れるか…"
- Fadisさんのツイート: "いや、じゃなくてこれ、メタデータを触る操作を複数スレッドから行うと壊れるだけで、個々のスレッドが別々のblobのデータを触っている限りは壊れないとかそういうアレかな"
- ウェアレベリング - Wikipedia
- hiyohiyo@個人開発21年目さんのツイート: "こういう結果を見るとブロックサイズが128KiBよりも大きなシーケンシャルリード/ライトテストは必須なんだなぁ・・・。- 【やじうまミニレビュー】プリンストンの外付けゲーミングSSD「PHD-GS480GU」 - PC Watch https://t.co/jT657G1d14"
- まさみさん⋈語りたいさんはTwitterを使っています: 「この手の話、もう組み込みlinuxでは十年以上前から当たり前で、mount時にnoatimeつけるとか、rootfsをinitramfsにするとか、フラッシュにはログだけ書く、ログはファイルシステムを使わない(寿命をある程度見定めるため)、まである。 https://t.co/XcBHA6WOKV」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「フラッシュメモリ書き込みすぎて車全体が文鎮にってすごいな。組み込みだったらライフで書き込む量とか結構まじめに計算して安全係数もそれなりにかけるし、エンターテイメントシステムとかは他と分けたりすると思うんだが、、、https://t.co/9w6OOhIAtl」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「@mhiramat あと今時のemmcなら書き換えの多いパーティションは(疑似)SLC領域にして書き換え可能回数増やすとか、普通のベンダーに相談したら色々と教えてくれますよねえ」 / Twitter
- FadisさんはTwitterを使っています: 「@ponkotuy LBAが利用できるようになる前にハードディスク上の位置を表すのに使われていたのがシリンダ、セクタ、ヘッド。かつてはそれぞれ半径方向、円周方向、何枚目のプラッタかを表す値だった。今のハードディスクはより複雑な形で記録しているため、これらの値から1つのLBAが求まるだけの値になっている」 / Twitter
- イスラエルエリカちゃんさんはTwitterを使っています: 「SSDの方が消去されたディスクからデータを復元するみたいのはるかに難しいというかほとんど無理だろうに何でHDDよりSSDにデータ消去に課題があるみたいな論調なの…???:HDDからSSDへ いいことずくめ?データ消去に課題:朝日新聞デジタル https://t.co/4aQNOtOBEM」 / Twitter
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「@syuu1228 確かにTrimで消えるので楽に思えるんだけどそのタイミングで不良セクタ化しちゃうと中途半端な状態でデータがチップ内に残っちゃったりするし、そもそもTrimがいつ効いたかって外形的にはわからないので、1bitも残すなと言われると、残ってる可能性を突き詰めていくと途方に暮れるんですよこれが…」 / Twitter
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「SSDの完全消去は「無理」というのは言い過ぎですが、ちゃんと消えるかわからないとされる根拠は2011年USENIX FAST11で発表されたこの論文です。 https://t.co/grCIYTIA9L Secure Eraseに対応しているにも関わらず、コマンド発行してもデータが消えないSSDが当時見つかってます。今はどうでしょうね… https://t.co/LzOwI6vpWJ」 / Twitter
- Wei.pdf
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「@goodmoon @syuu1228 他にも物理的破壊に関するいくつかの研究があります。有名なのはこれ。 https://t.co/ZOjttFXoaj 2008年当時の話ですが、NANDフラッシュメモリが熱や電気や…に対していかに堅牢かが分かります。簡単には消えないのです。ただ当時と比べてだいぶチップの構造が変わったので、追試の必要はありますが。」 / Twitter
- Recovering data from USB flash memory sticks that have been damaged or electronically erased | Proceedings of the 1st international conference on Forensic applications and techniques in telecommunications, information, and multimedia and workshop
- FadisさんはTwitterを使っています 「SSD、out-of-placeで書く事で消去の遅さを隠蔽するから書き込みの度にゴミが出て、それをガベコレが後で回収するんだけど、SSDのコントローラの性能は有限だからSSDでより高いスループットを得る為の近年の工夫が「ガベコレが回収しやすいようにゴミを出せ」になってて、なんて難しいデバイスなんだ…」 / Twitter
- FadisさんはTwitterを使っています 「NANDの制約を隠蔽するSSDのコントローラが複雑になって性能を出すのが難しいから、「アプリケーションがNANDの制約を受け入れる」から「コントローラで複雑な処理をせずにデバイスを直接見せろ」というZoned Storageが台頭するの、かつてのGPUの流れに似ていて面白い」 / Twitter
- FadisさんはTwitterを使っています 「Intelが Optane DC Persistent Memory(DCPMM)のファームウェアをLinuxからシステム全体を再起動せずに更新できるようにするパッチを投げている。DCPMMはDIMMスロットにさして使う不揮発メモリデバイスだが、どうもデバイス側にファームウェアを持っているらしい… https://t.co/JKojaTBOY5」 / Twitter
- Intel Adds Capability To Linux 5.9 For NVDIMM Firmware Updates Without Reboots - Phoronix
- FadisさんはTwitterを使っています 「FTLがブロックの割り当てを変更するSSDにおいて「ファイルを削除する前にゼロクリアしたからディスクを漁ってもファイルの内容は取り出せない」というHDD時代の作法は意味を持つだろうか。SSDにおいてはSecure Eraseが実際にSecureにEraseしない場合確実にデータを消す方法は無いのではなかろうか」 / Twitter
- FadisさんはTwitterを使っています 「そもそもHDDの時代においても、CoWなファイルシステムの場合ファイルをゼロクリアしてファイルの内容がディスク上から消えたつもりになるのは誤りなわけだが」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ログ構造化だけでなく、NTFSの圧縮ファイルでも同様の指摘があった記憶。 たぶんファイルシステム層orデバイス層で「本当のデータ消去」APIを用意してもらうしか、、、」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「暗号ファイルシステム(or 暗号対応HDD)を使って、rawデータを読み取っても無効というのがまあ無難な対処かな? (その状態なら、NTFSでのLBAを信用した0上書きでも undelete系の無効化に十分意味あるだろうな)」 / Twitter
- suzakiさんはTwitterを使っています 「思い出してメモ OS内に残るデータのライフタイムについて。 古いけどこの論文は面白い。 Understanding data lifetime via whole system simulation 13th USENIX Security Symposium (2004) Chow, J., Pfaff, B., Garfinkel, T., Christopher, K., Rosenblum, M. 共著はVMwareを創業したRosenblum先生」 / Twitter
- suzakiさんはTwitterを使っています 「@fadis_ ちょっと古いですが、SSDで完全に消去するのは難しいことを述べた論文。Secure Eraseについても言及しています。 USENIX FAST’2011 Reliably Erasing Data From Flash-Based Solid State Drives https://t.co/ymWRsLBrVB」 / Twitter
- Wei.pdf
- suzakiさんはTwitterを使っています 「@fadis_ メモ追記。 IEEE S&P 2013でのデータ消去に関するSoK論文。 SoK: Secure Data Deletion https://t.co/tgBWUloTnV」 / Twitter
- SoK: Secure Data Deletion - IEEE Conference Publication
- FadisさんはTwitterを使っています 「コントローラが1ブロックのatomicな書き込みを保証してくれるNVMeと違い、NVDIMMでは一度にバスに流れる64bitがatomicに書ける単位になる。もっと大きな物を電源が落ちても途中で途切れないように書くには、ソフトウェアでトランザクションをやらなければならない。PMDKのlibpmemobjがまさにそれ」 / Twitter
- Shinji KonoさんはTwitterを使っています 「この辺りはもう常識。つまり、RAID5は死んだ。明示的なコピーの方がマシ。 https://t.co/X2DXcBljvf」 / Twitter
- RAIDを導入する前に考えること - Qiita
- Shinji KonoさんはTwitterを使っています 「Cephは1 OSDあたり4GBメモリを要求するのでお大尽。でもまあ、そういうの専用のDisk Serverが欲しい感じ。」 / Twitter
- 日本初となる内蔵SSDデータ消去ソフトの評価制度が開始 - PC Watch
- ハードディスクの正しい消去
- Category:ATA - OSDev Wiki
- ATA PIO Mode - OSDev Wiki
- Disc rot - Wikipedia
- otakuto/CrazyDiskInfo: CrazyDiskInfo is an interactive TUI S.M.A.R.T viewer for Unix systems.
- マイクロソフトが、データセンター ハードウェアのストレージとセキュリティの業界標準を築く – Cloud and Server Product Japan Blog
- Thanos - 無制限ストレージを備えたスケーラブルなPrometheus
- 【やじうまミニレビュー】プリンストンの外付けゲーミングSSD「PHD-GS480GU」 - PC Watch
- トーバルズ氏:Linuxでフロッピーディスクドライバーは「面倒を見る人がいなくなった」 - ZDNet Japan
- Linuxでのフロッピーディスクのサポート打ち切りをリーナス・トーバルズが発表 - GIGAZINE
- SCSI Block Commands - 3 (SBC-3)
- PC Insider 解説目次 - @IT
- 2021年7月7日 Linux 5.14でレガシーIDEのサポート終了へ ―カーネルソースツリーから「/dev/ide」を全削除:Linux Daily Topics|gihyo.jp … 技術評論社
Net
その他
- ネットワークバイトオーダーの公式な参照先はエイプリルフール:Geekなぺーじ
- 第661回:レイテンシー とは - ケータイ Watch Watch
- 第627回:トラフィック とは - ケータイ Watch Watch
- 「NetworkManager 1.6」リリース、MACsecに対応 | OSDN Magazine
- MACアドレスランダム化が加わった「NetworkManager 1.2」 | OSDN Magazine
- RFC標準を調べるための知識やツール - Qiita
- 抽象ソケットアドレス abstract socket address - hibomaの日記
- [linux] abstract socket address - hibomaのはてなダイアリー
- Pure Python Tracepath | IIJ Engineers Blog
- インターネットの心臓部を支える「BGP」をより柔軟に使うにはどうすればいいか? - GIGAZINE
- Kazuho OkuさんはTwitterを使っています 「kernel bypassなー、HPCなら意味あると思うけどインターネットだとsegmentation offloadで十分な感じがすごいするんだよなー」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「受信側だと割込コストでかいから、そこをなんとかしたいというのは分かるけど、まあ、、、」 / Twitter
- Prometheusが利用するOpenMetricsの仕様がIETFに提出された - ASnoKaze blog
- 突然の大トラフィック……昔はOSだったが、今はゲームのアップデートに……IIJが語る「インターネットのバックボーン」【IIJ Technical WEEK 2020】 - INTERNET Watch
- RustのSTM32向けイーサネットドライバを解説する(受信編) | 己の不学を恥じる
- RustのSTM32向けイーサネットドライバを解説する(送信編) | 己の不学を恥じる
- 中央主権的なHTTPから脱却し新しいインターネットの世界を生み出す壮大な分散型システム「IPFS」とは? - GIGAZINE
- TURN サーバでよくある間違い
- パケットジェネレータのつくり方 | NETWIZ.JP
- なりすましメールからユーザーを守る「SPFレコード」の基礎知識 - GIGAZINE
- 自作プロトコルスタック(全体像の理解〜ARPリプライ) - おしぼりの日常
- はてなにおけるLinuxネットワークスタックパフォーマンス改善 / Linux network performance improvement at hatena - Speaker Deck
- OVS-DPDKとOpenStackで作るおうちNFV環境の構築 - Speaker Deck
- Kazuho OkuさんはTwitterを使っています 「Cに近いレベルで効率の良い実装ができるプログラミング言語使っているという前提において言うと、network i/oが最初のボトルネックになる(ことが多い)イメージ。アクセラレータとかdpdkとかが主流になっていないってのが傍証かなぁ」 / Twitter
- 因果的あずにゃんさんはTwitterを使っています 「たくさんのI/Oを捌くアプリケーションで、多重並列でI/Oチャネルを走らせといてselect(2)で待つとかスレッドで待つとかはよくあるパターンだけど、これの並列数を上げていくときに現代的な環境で真っ先にボトルネックになるのってどこなんだろう」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「主流のアプリケーションでバランスが良いようにサブシステムの性能が決定されている、という話なので、DNSみたく小さなUDPパケット交換やるとか、一般的なワークロードから離れると議論は変わります」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「どんなプロトコルでもハーフクローズ難しいよなー。TCPでもなんでも、切断処理は接続処理のだいたい100倍くらい難しい」 / Twitter
- VさんはTwitterを使っています 「@kazuho 1000000000 倍くらい難しいです!!! というか kazuho さんでもやっぱりそうなんですねぇ ... 。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@voluntas 皆そうだと思います。仕様策定にあたっても問題が残るのは、ステートを確立するところよりも捨てるところですし、実装的にも(バグがあっても問題ないケースがあるために)品質がわるくなりがちというか」 / Twitter
- ファイルをTCPの30倍で転送――独自プロトコルによる高速通信「クラウド コネクト」 - ITmedia エンタープライズ
- SkeedSilverBullet 大容量/多数ファイルをTCPの最大70倍以上で高速転送するソフトウェア製品 FTP代替から拠点間のグローバル連携まで導入実績も豊富 | 大容量ファイル・データの高速転送ならSkeed 大容量ファイル・データの高速転送ならSkeed
- BGP over QUICの提案仕様 - ASnoKaze blog
- Webでのマルチキャストの利用検討 (Multicast Community Group) - ASnoKaze blog
HTTP
Building Protocols with HTTP
- Kazuho OkuさんはTwitterを使っています 「HTTP を使うサーバクライアントアプリ作ってる人が、HTTP 的にどうするのが正しいのかな、と迷った時、見るべきドキュメントは BCP56bis かな、という話をした。HTTP の仕様ではなく、どのように使うべきかを説明した文書 (BCP56) の第2版草稿です https://t.co/InBEresgsD」 / Twitter
- Building Protocols with HTTP
- Kazuho OkuさんはTwitterを使っています 「「GET にリクエストボディって付けられるの?」 「答えは BCP56bis の section 4.5.1 に書いてあるよ」」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「RFC 7231 とかプロトコル仕様は、HTTP を実装する技術者向けの情報が多いので、HTTP を利用する技術者にとってはノイズが多いのです」 / Twitter
Status
Twitter
- Masanori OginoさんはTwitterを使っています: "HTTP status code 451、江添さんが「政治的に」と訳したので政治(プログラミング)方面でネタになってるけれど、本来はfor legal reasonsなので法的な要求
- Kazuho Okuさんのツイート: "ついに単著のI-Dを出してしまった / “draft-kazuho-early-hints-status-code-00 - An HTTP Status Code for Indicating Hints” https://t.co/rbnpHGcVkf"
- draft-kazuho-early-hints-status-code-00 - An HTTP Status Code for Indicating Hints
- Kazuho Okuさんのツイート: "HTTPステータスコード103のドラフトがラストコールにかかりましたなう / “Working Group Last Call: draft-ietf-httpbis-early-hints-02 from Mark Notti…” https://t.co/6lEa62hMDs"
- https://tools.ietf.org/id/draft-ietf-httpbis-early-hints-02.txt
- Fadisさんのツイート: "これ、HTCPCPがBREWするときに指定するプロトコルバージョンについて何も規定しなかった(従って元となる規格のHTTP/1.1のままになった)ことによる規格レベルの不具合だ…"
- Hypertext Transfer Protocol (HTTP) Status Code Registry
- https://www.rfc-editor.org/rfc/rfc8297.txt
- 渋川よしきさんのツイート: "HTTPステータスコード。POSTに対しては201 Createdでいいとして、PUTで更新するときに20X Updatedみたいなのがあったら対称的で良いのだけど、ないのだよね。200 OKか。"
- Yosuke FURUKAWAさんのツイート: "むしろ PUT が 201 の事を書いてるドキュメントもあるので一概にどっちが正しいか微妙ですね。 https://t.co/6bFPSQdcPD… "
- 201 Created - HTTP | MDN
- 渋川よしきさんのツイート: "mjk… "
- Kazuho Okuさんのツイート: "POSTは既存のリソースに対する操作だから201になることは基本ないのでは?… "
- 渋川よしきさんのツイート: "新しいリソース作成で、新しいURLが予想できる場合はPUT、そうじゃない場合はPOSTで作成・・・・みたいな説明をよく見かける気がします。オライリーのRESTful本とかも。… "
- Kazuho Okuさんのツイート: "ああごめんなさい location で生成されたリソースの uri を返しつつ 201 というのは基本のパターンですね… "
- Yuki Yugui Sonodaさんのツイート: "HTTP statusのreason phraseはサーバーが好きに書いて良いので、細かい情報を載せたいなら変なstatus codeを勝手に作るんじゃなくてそっちを使え、と言い続けてきたけど、割といろんなサーバーが勝手拡張コードを使ってるのね。Teapot以外は認めたくない。"
- 渋川よしきさんのツイート: "「存在している」という「情報」をログインしていないユーザーに見せない、という意味では404が正しいこともありえますね。… "
- 渋川よしきさんのツイート: "Real World HTTPでは403の代わりに404を返す可能性については一言だけ触れていたけど、あんまりきちんと説明してなかったので、今度改定のチャンスがあったとき用のネタ帳に追記しておこう。… "
- $κ@夏休み/人畜無害🍼さんのツイート: "githubのプライベートリポにログインしてない状態で行くと、404っていうけど、この場合403では?って思った。… "
- ĉ̨̨̝͉̝̭̩̣͍͈̗͂ͨ̊̎͋͗̅ͯ̒͑̎̑ͧ́̎̃ͬ̅̀̕r̶̸̴̢̬ͪ̆̾͊ͩͦͩ̈́ͧͨͭさんのツイート: "Quick guide to HTTP Status codes: 1XX: Wait a sec 2XX: There ya go 3XX: Fuck off 4XX: Fuck you 5XX: Fuck"
- ゆきさんのツイート: "Reporting Progress of Long-Running Operations in HTTP https://t.co/9zu13MU3VE 重たいHTTPリクエストの処理経過を知らせる「102 Processing」ステータスコードの提案 #yuki_id"
- draft-wright-http-progress-01 - Reporting Progress of Long-Running Operations in HTTP
- Kazuho OkuさんはTwitterを使っています 「無理してステータスコードを使うべきではないというのはそのとおり。ただ補足するとRFC 7807は200番台以外で使うことを念頭に置かれているし(200ならアプリごとにエラー定義通知手法を決めればいい)、HTTPを設計しているグループ(IETF HTTP WG)の推奨は200決め打ちではないです。」 / Twitter
- しいたけさんはTwitterを使っています 「僕も昔はこう思っていたけど、むしろ最近は200でbodyにエラー内容を詰める方がトレンドだと思う。GraphQLとかRFC 7807とか、ステータスコードは経路上で書き換えられるから当てにならないって主張だし」 / Twitter
- 菱川拓郎@コンクリートファイブジャパンさんはTwitterを使っています 「{"error_code":"123"} をステータスコードで200で返してくるAPI絶滅しろ〜」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「具体的には bcp56bis (アプリケーション開発者向けHTTP使い方ガイド)の次版草稿4.6が一番参考になります。https://t.co/QnjU6BStK2 訳出としては: https://t.co/JkvXPUxTfv」 / Twitter
- Building Protocols with HTTP
- Kazuho OkuさんはTwitterを使っています 「RT @voluntas: "HTTP を使うアプリケーションは、最も適用可能なステータスコードを使うようにエラーを定義すべきで、 疑わしい場合は一般的なステータスコード (200, 400, 500) を惜しみなく使うべきです" https://t.co/ESKj9FxYAg…」 / Twitter
- ASCII.jp:HTTPステータスコードに追加された「308」とは?
- 本の虫: HTTPステータスコード451(政治的な検閲)が正式に承認される
- 本の虫: 検閲のためのHTTPステータスコードの必要性
- Apache mod_http2 で 103 EarlyHints (RFC 8297) を試す - ASnoKaze blog
- 103 EarlyHints (RFC 8297) を送信するNginxモジュール書いた - ASnoKaze blog
- Kazuho's Weblog: 103 Early Hints に対応した Starlet 0.31 をリリースしました
- HTTP の新しいステータスコード 103 Early Hints | blog.jxck.io
- mnot’s blog: How to Think About HTTP Status Codes
- HTTPで「418 I’m a tea pot」を実装してはいけない - Qiita
- HTTP 418ステータスコードが予約される - ASnoKaze blog
- Retry-Afterのスコープを指定するRetry-Scopeヘッダ - ASnoKaze blog
- サポートしてないwell-known URIs に対するステータスコードを確認する提案仕様 - ASnoKaze blog
- HTTPS state の仕様を追う
- Resource Timing と HTTP ステータスコード 1xx
Cookie
GIGAZINE
- Google Chrome 69ではCookieを「すべて削除」してもGoogleのCookieが残ってしまうことが判明 - GIGAZINE
- ChromeがCookieの透明性や安全性を向上させる方針を発表、ブラウザ・フィンガープリントの対策も - GIGAZINE
- AppleのSafariがサードパーティーCookieを完全にブロック、一般的なブラウザでは初 - GIGAZINE
- GoogleがサードパーティーCookie廃止に向けて開発者向けツールのテストを開始 - GIGAZINE
- Chromeは「Cookieとサイトデータを削除」を有効にしてもGoogle系のサイトのデータは消さない - GIGAZINE
- Safari 14では裏技を使って規制をくぐり抜けていたサードパーティーCookieが対策される - GIGAZINE
- Googleが提案するサードパーティーCookieなしの新しい広告の仕組み「FLoC」とは? - GIGAZINE
- Google Chrome 89のベータ版で「プライバシー・サンドボックス」の項目が追加へ - GIGAZINE
- Googleの考案する新たな「Cookieレスの仕組み」に独占禁止法違反の目が向けられている - GIGAZINE
- ブラウザのFavicon(ファビコン)でユーザーを追跡する「スーパークッキー」とは? - GIGAZINE
- Firefoxのトラッキング防止策「State Partitioning」の仕組みを分かりやすく説明するとこうなる - GIGAZINE
- Googleが導入予定の「FLoC」は最悪なものだと電子フロンティア財団が指摘 - GIGAZINE
- GoogleによるCookieレスの仕組み「プライバシーサンドボックス」が独占禁止法に違反すると司法長官が指摘 - GIGAZINE
- Googleが「ユーザー情報を保護しつつ広告の関連性も損なわない」仕組みの開発を行うと宣言 - GIGAZINE
- Googleがさらなる独占禁止法違反の訴訟に直面、今度はFacebookとの共謀の疑いも - GIGAZINE
- AppleがiOS 14.5で実施予定のプライバシー強化「Application Tracking Transparency」の詳細を明らかに - GIGAZINE
- Googleが開発中の「FLoC」はなぜ「有害」なのか、ユーザーとウェブサイトに発生する損害とは? - GIGAZINE
- Googleが「プライバシー第一」とする新技術「FLoC」の本質はプライバシーを侵害する追跡技術だという主張 - GIGAZINE
- 「最悪」と酷評されるGoogleの新システム「FLoC」をWordPressが「自動的に無効化する」と発表 - GIGAZINE
- Appleが広告業界を激変させる新ルール「App Tracking Transparency」適用の締め切り日をアプリ開発側に示す - GIGAZINE
- WWWの技術標準化団体「W3C」がプライバシー保護を巡る争いの場になっている - GIGAZINE
- 「Firefox 91」正式版リリース、Cookie削除の仕組みがアップデートされてトラッキングをより厳密に拒否できるように - GIGAZINE
- Google Chromeが「すべてのCookieとサイトデータ」の管理ページを廃止しようとしているという報告 - GIGAZINE
ASnoKaze blog
- 非セキュアなオリジンから'secure'クッキーの変更を廃止する提案 - ASnoKaze blog
- Cookieの属性を制限する Cookie Prefixesという仕様 - ASnoKaze blog
- 安全でない通信路でセットされたCookieの有効期限を短くする仕様 - ASnoKaze blog
- Cookieの仕様改定版、RFC6265bisの議論 - ASnoKaze’s diary
- CookieのNoHttp属性の提案仕様 - ASnoKaze blog
- Chromeにおいて非セキュアなHTTPで送信されたCookieの有効期限を短くする議論 - ASnoKaze blog
- Cookieに変わる Sec-HTTP-State ヘッダの提案 - ASnoKaze blog
- Cookie関連の最新動向 (2016年) - Qiita
- Cookie の SameSite=Lax をデフォルトにする提案仕様 - ASnoKaze blog
- CookieのPriority属性の仕様 - ASnoKaze blog
- Cookieのセキュリティを改善する Scheming Cookiesについて - ASnoKaze blog
- CookieのSameSite属性にFirstPartyLaxを追加する提案仕様 - ASnoKaze blog
- Cookieの新しい属性、SameParty属性について - ASnoKaze blog
- トラッキングに利用できない3rdパーティクッキー「CHIPS」の仕組み - ASnoKaze blog
Qiita
- Cookie関連の最新動向 - Qiita
- PHPでSame-site cookie - Qiita
- Chrome 80が密かに呼び寄せる地獄 ~ SameSite属性のデフォルト変更を調べてみた - Qiita
Twitter
@rockridge07
- Rockridgeさんのツイート: "Fx50:Cookieのプレフィックスとして"__Secure-"と"__Host-"をサポート。Chrome 49/Opera 36でサポート済み。参照:https://t.co/1Ke9Jg0Qj3 / “Intent to…” https://t.co/ksuziLZote"
- Rockridgeさんのツイート: "Fx61:CookieのSameSite属性をサポート予定。参照:https://t.co/7sekICHKR5 / “Intent to implement and ship: same-site cookies” https://t.co/VgsPyEj46i"
- Rockridgeさんのツイート: "Fx60:CookieのSameSite属性がサポートされたことを受けて、network.cookie.same-site.enabledをfalseにすれば無効化できるようにした。 / “1452699 - Add pref …” https://t.co/CvQ96F7Dnb"
- Rockridgeさんのツイート: "Firefox 60でサポートされるSame-Site Cookiesについて説明した記事。 / “Supporting Same-Site Cookies in Firefox 60 | Mozilla Security Bl…” https://t.co/OQjtQRVKPD"
- Rockridgeさんのツイート: "FirefoxではサードパーティCookieはユーザーが明示的に許可しない限り動作しないようにしていく方針だが、具体的にはSafariが先行するStorage Access APIを実装する形をとる。ただし、実装内容は若干異なる模… https://t.co/UlcX3NGRYM"
- Rockridgeさんのツイート: "Fx65:Cookieを保存する期間の設定がチェックボックス形式になった。 / “1501989 - Turn the "Keep Until" cookies menulist into a checkbox” https://t.co/XIxVzZ3Rpl"
- Rockridgeさんのツイート: "Fx65:未訪問のWebサイトのCookieをブロックする設定にしているとき、例外サイトを追加しても当該サイトのブロックが解除されない問題を修正。 / “1502045 - We fail to honour cookie pe…” https://t.co/meWqSxiDa9"
- Rockridgeさんのツイート: "Fx65:urlclassifier.trackingAnnotationSkipURLsに設定されたドメインおよびURLは、トラッカーのサードパーティCookieのブロックを免除される。 / “1506947 - Add a …” https://t.co/d1Wt5cCJpB"
@shibu_jp
- 渋川よしきさんのツイート: "HTTPのクッキーの日付のパース、いろいろ悲しみが溢れている感。 https://t.co/AMCxUI5Qeh"
- RFC 6265 - HTTP State Management Mechanism
- 渋川よしきさんのツイート: "クッキーの日付はGMT!って書いてあるサイトが多いのだけど、RFC見ると別にGMTとは指定されてなくて、in UTCって書かれている。GMTの部分は無視されてUTCとして解釈されている?"
- 渋川よしきさんのツイート: "サードパーティクッキー、いまいちわからんケースがいくつかある。AというサイトとBというサイトがあって、AにアクセスしたときにBのドメインが設定されたクッキーが書き込まれて、Bにアクセスしたときに、Aにいたことが分かる。これは分かる。"
- 渋川よしきさんのツイート: "こっちの代表的な例という絵のメカニズムがわからん。 https://t.co/5JcZfcxnnw"
- 渋川よしきさんのツイート: "リンク先サーバのクッキーが最初のサイトで書き込まれたとして、次のサイトにアクセスしたときは、リンク先のドメインじゃないからクッキーは送信されないよね?"
- 渋川よしきさんのツイート: "セッションストレージ、クッキーを使う方法が増えつつあるよ、という話はReal World HTTPに書いたけど、ブラウザでユーザー認証することによってクッキー同期を取るという仕組みが一般的になってきたのと関連はあるのかな?複数のPCとスマホ間で連携できる現代だと、かつてのクッキーの欠点はない。"
- 渋川よしきさんのツイート: "cookie storageを使って、クッキーにセッション情報を入れる方法。署名で改変は検知できるとして、5-tupleだか、http/3のConnection IDだかも入れると、セッション偽装対策になるのではないか?"
@jovi0608
- Shigeki Ohtsuさんのツイート: "BlackHatUSAで発表されたHEIST攻撃の記事。TCP Windowからレスポンスサイズを特定してる。論文やスライドはまだかな。 / “New attack steals SSNs, e-mail addresses, …” https://t.co/KhhAlPmZCx"
- Shigeki Ohtsuさんのツイート: "Third-pary Cookieを禁止してればHEIST対策になるのか。"
- Shigeki Ohtsuさんのツイート: "HEIST攻撃をまとめると。BREACHと合わせ技でThird-party cookieでinitcwdぎりまでパディングして、残り1バイト分をOracleで特定する。ということで合ってるのかな。もうdeflate的な圧縮はボディ部でもあかんわな。"
- Shigeki OhtsuさんはTwitterを使っています: 「Chromeが2年かけて3rd partyクッキーを廃止しGが提唱するPrivacy Sandboxという技術セットを進めていくと宣言。今年末までに新しいコンバージョン測定のトライアルと反フィンガープリント対策を開始すると。 / “Chromium Blog: Building a more private web: A path towar…” https://t.co/5KUNRSZbIZ」 / Twitter
- Chromium Blog: Building a more private web: A path towards making third party cookies obsolete
- Chromeは2年以内にサードパーティーCookieのサポートを廃止する方針 - GIGAZINE
- Yosuke FURUKAWAさんのツイート: "Chromeでは今後、CookieでSameSiteがついていないものは、SmaeSite=Laxとして運用する、つまりCross siteではtop level navigationの時のみcookieがつき、mug, ajax通信ではcookieがつかない、これはまた広告、解析系のアプリ大変だな、、、 / “SameSite cookies explained…” https://t.co/kxFxPWHksk"
- SameSite cookies explained | web.dev
- Yosuke FURUKAWAさんのツイート: "s/mug/img"
- ゆきさんのツイート: "chrome://flagsから「Cookie deprecation messages」を有効にすると、CookieのSameSite attributeのデフォルト変更によって影響を受ける場合に警告でる… "
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「https://t.co/6ShlLPJbrb や https://t.co/MnXqfFzePf を同一URLでの日/英対応に。(従来は後者は /en/ 付与) 要点は、apacheで cookie の lang指定あれば、prefer-language に設定。 (SetEnvIf Cookie "lang=([a-zA-Z]+)" prefer-language=$1) あとはjs側の言語切り替えでcookieにlang=en等の設定」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「カード認証の3Dセキュア、3rd party cookieに依存してたりするから、FirefoxのTracking Protectionと相性悪いことあるし、Chrome 80以降で起きるという話であれば、SameSite: Secureつけてないんだろうなとしか」 / Twitter
- Google が使用している Cookie の種類 – ポリシーと規約 – Google
- HTTP cookie - Wikipedia
- HTTP cookie - Wikipedia
- 2種類のcookie~サードパーティとファーストパーティの違い | マーケティングを支援するDigital Cloud Platform
- Session Cookie(セッションCookie)の使われ方とは? – IMnews
- アクセス解析におけるクッキー(Cookie)の仕組みを解説【ちゃんと理解できてる?】|アクセス解析ツール「人工知能AIアナリスト」ブログ
- 【GA_utmクッキー完全把握】cookieの種類と仕組み | やる夫で学ぶGoogleAnalytics
- » 反則スレスレ !? Super Cookie とは TECHSCORE BLOG
- クッキー(Cookie)について
- HTTPクッキーのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- Facebook の「いいね」ボタンがあるサイトに行くと、トラッキングされているかに見える件 | @_Nat Zone
- Supporting Same-Site Cookies in Firefox 60 | Mozilla Security Blog
- SameSite - OWASP
- super cookie - Google 検索
- Google Developers Japan: 新しい Cookie 設定 SameSite=None; Secure の準備を始めましょう
- Cookie規制でプライバシーの問題はどうなる? - IIJが個人情報保護法改正大綱を解説 (1) Cookieってなんだっけ? | マイナビニュース
- 牧歌的 Cookie の終焉 | blog.jxck.io
- Cookieレシピ - SameSiteとそれを超えて - Rowan Merewood氏がweb.dev Liveにて
- Google Developers Japan: Chrome におけるスキームフル Same-Site の適用について
- GitHub、サービス提供に不必要なCookieとCookieバナーを排除 - PC Watch
- マイクロソフトの「Edge」ブラウザーがGoogleの広告技術「FloC」を無効化、事実上の「NO」か | TechCrunch Japan
- FLoCとはなにか - ぼちぼち日記
- Google Chrome、Web広告などに使われるCookieを2023年に廃止 - PC Watch
Header
- Structured Field Values による Header Field の構造化 | blog.jxck.io
- Cache-Control: must-understand ディレクティブとは何か | blog.jxck.io
- HTTPレスポンスボディを送ってから、Cache-Controlを変更可能にする仕様 - ASnoKaze blog
- "HTTPヘッダ"が指すものとは - Qiita
- 「Firefox 87」からはプライバシー保護のために新たなリファラポリシーが採用される - GIGAZINE
- クライアント証明書を中継するClient-Certヘッダの提案仕様 - ASnoKaze blog
- 大体の位置情報を示すSec-CH-Geohashヘッダ - ASnoKaze blog
URL
uriparser
- uriparser - RFC 3986 URI parsing library
- uriparser 日本語情報トップページ - OSDN
国際化ドメイン
Mozilla
- Network.IDN.whitelist.* - MozillaZine Knowledge Base
- IDN (International Domain Name) を使用した偽装サイトへの対策 Firefox編 - seclan のほえほえルーム
- Firefox で日本語ドメインの .com / .net が punycode で表示される理由
- 国際化ドメイン名の表示が有効なトップレベルドメイン
- IDN-enabled TLDs — Mozilla
- network.IDN.whitelist.
- 人間の目で見抜けないURL偽装がフィッシング詐欺に悪用される可能性、Firefoxでの対策はコレ - GIGAZINE
- なかのんクエストさんのツイート: "これ、実装当時から分かってたけどどうしようもない話だなって関係者言ってたのに、なんで今頃話題に? / ChromeとFirefoxのホモグラフ攻撃対策を迂回する方法 | スラド IT https://t.co/Jc1kEqaOb1"
- ChromeとFirefoxのホモグラフ攻撃対策を迂回する方法 | スラド IT
- なかのんクエストさんのツイート: "そもそも、аррӏе.com みたいなのを通しちゃうようなTLDは常にPunycode表示にしようってことで話が決着してて、.comに関しては当初はホワイトリストに入ってなかったけど、登録のルールが改善したとかでホワイトリスト入りしたんじゃなかったっけか?"
- なかのんクエストさんのツイート: "で、TLDレベルでは安全でも、スラッシュっぽい文字とサブドメインを利用するとドメイン偽装が簡単だってことで、スラッシュに見えかねない文字は全てブラックリストに入れておいて、それにひっかかったら強制的にPunycode表示にするってのは私が実装した。"
- なかのんクエストさんのツイート: "ちなみに、私がMozillaで国際化ドメイン名周りのバグ修正やってた当時のNetworkモジュールのオーナーでレビューしてくれてたのが、初期から現在に至るまでGoogle Chromeの責任者やってるあの人だったりする。"
- なかのんクエストさんのツイート: "とりあえず変なアイデア出てたんで、日本語だと無意味だし、ハイフンに似た文字だとどうしようもないとだけ書いておいた。 / https://t.co/PkF5AsjROC - IDN Phishing using whole-script confusables on… #もずでぶ"
- Rockridgeさんのツイート: "Firefoxの国際ドメインネーム(IDN)表示アルゴリズムについてFAQ形式で解説したもの。 / “Gerv's IDN Display Algorithm FAQ - MozillaWiki” https://t.co/WNBO8LRsAP"
- Gerv's IDN Display Algorithm FAQ - MozillaWiki
- なかのんクエストさんのツイート: "Firefoxの場合、今では信頼出来ない所も混じってるかも知れないけど、network.IDN.use_whitelistをtrueにして、IDNサポート当初のポリシーを復活させる方が安全かなと思ったけど、このpref、もう効かないっぽいな……"
- Gecko1.8相当製品において修正したバグ - WebStudio
Google
- IDN in Google Chrome - The Chromium Projects
- なかのんクエストさんのツイート: "Chromeのホモグラフ攻撃対策へのパッチ、頭痛い。指摘されたケースに対して限定的に対応しただけで、日本語の似た文字や記号の似た文字は無視、キリル文字でASCIIの小文字に似てる文字だけ対応。こういういい加減なの、嫌なんだよな…… https://t.co/jjXIIMf66I"
- GoogleのようでGoogleではない謎のサイト「ɢoogle.com」が出現 - GIGAZINE
- 国際化ドメイン名(IDN)に関する資料 - JPNIC
- IDN関連RFC翻訳
- 新宿.com
- www.jdna.jp/survey/rfc/rfc3491j.html
- StringPrep - ICU User Guide
- JPRS DNS 関連技術情報
- IDN Info by JPRS / 標準化状況
- FAQ - International Domain Names (IDN)
- https://tools.ietf.org/rfc/rfc5895.txt
- 国際化ドメイン名のプロトコル改定に関する技術動向 ~第74回IETF Meetingにおける話題から~ | 2009年 | ドメイン名関連会議報告 | ドメイン名関連情報 | JPRS
- IDNA2008
- 大石哲之(Bitcoin,Blockchain)さんのツイート: "これはやばい。 binance偽サイト。 見分けがつかないです… "
- 楠 正憲さんのツイート: "あーあURLにASCII以外のUnicodeを認めたせいでこんなことに。当時からこうなると分かってたのに。しかもTLS証明書どこが発行したのか… "
- soushi (・゚∠)ばななさんのツイート: "ありがとうございます。試すとpunycodeが表示されました。 尚、Vivaldiは無条件でpunycodeで表示でした(設定はなさそう?)。あとChromeは調べると独自に定義したPolicyを通ればunicode表示にするんですね…。… "
- soushi (・゚∠)ばななさんのツイート: "ちなみにこちらのページに色々書いていました。 https://t.co/GVB16d7WQh… "
- NOTWORK.JP-SA:050401-00 JPRSのIDN実装上の日本語文字集合類似字形の問題
- Old Blog
- libidn2-2.0.4
- libunistring-0.9.9
BASE32
- 三十二進法 - Wikipedia
- base32 ‐ 通信用語の基礎知識
- 18.12. base64 — RFC 3548: Base16, Base32, Base64 データの符号化 — Python 2.7.x ドキュメント
- Man page of BASE32
protocol-relative URL
- HTMLやCSSでのプロトコル表記(http:、https:)の省略について: 小粋空間
- いい加減、<script src="http://.. と書くのはやめましょう · DQNEO起業日記
- protocol-relative URL
News
- Googleはウェブを安全にするために「URLをなくすべき」と考えている - GIGAZINE
- URLがなにかおかしい……「Google Chrome 69」に加えられたある小さな変更が話題に - やじうまの杜 - 窓の杜
- Chrome 90ではアドレスバーからウェブサイトへ接続する際にデフォルトで「https://」を使用する - GIGAZINE
- GoogleがChromeに導入予定の「URLを非表示にする機能」を断念する可能性 - GIGAZINE
- 過去のリンクが危険なサイトに乗っ取られているのを検知するシステムの作成方法 - GIGAZINE
- なぜハイパーリンクは青色で表示されるのか? - GIGAZINE
blog
- URIに使ってよい文字の話 - RFC2396 と RFC3986 - 本当は怖い情報科学
- 最近のruby-core (2016年4月) | Money Forward Engineers' Blog
- WHATWG URLの実装がNodeに来たと聞いたのでURLについてメモしておく - 水底の血
- hxxp URIスキームの仕様化 - ASnoKaze’s diary
- https://tools.ietf.org/id/draft-salgado-hxxp-00.txt
- URIに含まれるIPv6ゾーンID - RFC 6874:Geekなぺーじ
- なぜChromeはURLを殺そうとするのか? (Chrome Dev Summit 2019) - ぼちぼち日記
- URLリソースの非推奨を示すDeprecationヘッダ - ASnoKaze blog
- ホスト名の最後が数字なURLの扱いについて - ASnoKaze blog
blog.jxck.io
- Node v7 で入った WHATWG URL 実装について | blog.jxck.io
- Scroll To Text Fragment と :~:text | blog.jxck.io
- Scroll to Text Fragment を用いたサイト内検索の実装 | blog.jxck.io
Qiita
- リンクの`http:`や`https:`を省略して現在のプロトコルでリンク先にアクセスさせる - Qiita
- mod_auth_openidc の脆弱性(CVE-2019-14857)について - Qiita
POSTD
- 私のURLはあなたのURLとは違う : curl作者の語る、URLの仕様にまつわる苦言 | コンピュータサイエンス | POSTD
Wikipedia
- Uniform Resource Identifier - Wikipedia
- Uniform Resource Identifier - Wikipedia
- Punycode - Wikipedia
- Punycode - Wikipedia, the free encyclopedia
- Internationalized Resource Identifier - Wikipedia
- Internationalized resource identifier - Wikipedia, the free encyclopedia
- 国際化ドメイン名 - Wikipedia
- Internationalized domain name - Wikipedia, the free encyclopedia
- Uniform Resource Locator - Wikipedia
- URL - Wikipedia
Twitter
Mozilla
- Rockridgeさんのツイート: "Fx47:URLのバックスラッシュはスラッシュとして扱われる。 / “652186 – Implement URL Standard's backslash replacement ("\" is treated as "/" …” https://t.co/2LvuyK7pdk"
- Rockridgeさんのツイート: "WebKit trunkに実装された新URLパーザが、仕様適合性に優れているという話。セキュリティやパフォーマンスにも配慮しているという。 / “URL Parsing in WebKit | WebKit” https://t.co/jiTlG4TTLU"
- Rockridgeさんのツイート: "Fx53:新ロゴのとおり"moz://a"と入力すると、特定のWebページにリダイレクトされる仕組みが実装された。なお、"moz://"のURIスキームもIANAに暫定登録済み。参照:https://t.co/047yEEXTh7 https://t.co/abV54zdcfA"
- Mozilla Firefox、moz:プロトコルをサポート | スラド idle
- Rockridgeさんのツイート: "Fx55:複数のa要素がフラグメント識別子の異なる同一ページを指定し、かつ、target属性の値も同一である場合、リンクをクリックしてもタブが切り替わらない場合がある問題を修正。 / “1303838 - Not switch …” https://t.co/IKBc84zEiO"
- PC Watch若杉(4K修行僧)さんのツイート: "Amazon.co.jpでのお買い物に「ドコモ ケータイ払い」が対応、という件名のリリースが来て、全角URLじゃサイトの表示すらできないだろ! って突っ込もうと思いつつも、一応試しにChromeに全角URLをコピペしたら、自動的に半角に変換して表示された。Chromeやるな……"
- Rockridgeさんのツイート: "Fx56:URLのエンコードを内部的にPunycodeで行うようにした。 / “945240 - Change nsStandardURL's internal hostname representation to punyco…” https://t.co/UOakWoFgQ3"
- Rockridgeさんのツイート: "Fx58:PlacesデータベースがURIのマッチングに用いるハッシュの計算が高速化されたが、データベースの互換性が部分的に失われているという。参照:https://t.co/8DsWeEWlO8 / “Firefox/Meet…” https://t.co/WBJYjqDEy1"
- Makoto Kato ︎︎さんのツイート: "いろんな理由があって、location.hashのsetterのコードを見てるんだけど、extensionとかOSに対してURI変更に対してのinterceptを許可するとただ遅くなるだけなんだけど、他のブラウザどうしてんだろ"
histric-1
- Ryou Ezoeさんのツイート: "Chromium、バカが開発しているのか? https://t.co/l1jXQLorUX"
- 881410 - Incorrect transforms when stripping subdomains - chromium - Monorail
- Ryou Ezoeさんのツイート: "www.はドメイン名の一部であって省略できるものではないだろ。"
- Ryou Ezoeさんのツイート: "Chromium、https://t.co/nUchwbgK6Sのwww.を二重に除去してexamplecomにするらしい。完全にバカしかいないのでは。 https://t.co/l1jXQLorUX"
- Ryou Ezoeさんのツイート: "Chromiumはfield trialsが常に1コア分のCPU時間を食うようになった頃から使ってないが、完全にIEと同じ立ち位置に堕ちたな。"
- Ryou Ezoeさんのツイート: "Twitterもバカが開発しているらしくwww. www. https://t.co/rY28fpJshPの最初のwww.を除去する。"
- Ryou Ezoeさんのツイート: "まあ、そもそもサブドメインなんてものがあるのが根本的にダメなんだがな。世の中にはhttps://t.co/UNnazKKeONとかに騙される人間が多すぎる。"
- Ryou Ezoeさんのツイート: "あー、なるほど。これGoogleの戦略的なものかもしれないぞ。GoogleはURLを廃止したがっている。Googleがすべてのインターネットのトップページとして機能することを目論んでいるのか。"
- Ryou Ezoeさんのツイート: "GoogleがURLを廃止したがっているという推測、あながちバカにできないぞ。https://t.co/6hq8jsQhFO"
- Google wants to get rid of URLs but doesn’t know what to use instead | Ars Technica
- Kazuho Okuさんのツイート: "URLのドメイン名省略の話、セキュリティの観点からいうと、伝統的に https://t.co/YQt384onj7 のメアドを利用して www .example.com のDV証明書を取得することが認められてきた以上、www を表示で省略しても良さそう(OV,EVも認証単位より細かいホスト名表示は不要)"
- 相沢陽菜さんのツイート: "Chrome のサブドメイン省略表示(www や m が消える)って、頭から消していって消せなくなったら終わるんじゃなくて、サブドメイン/ホスト名部分を . で分割して、www や m を filter して . でくっつけるのか…(どこに現れても消える)"
- Kazuho Okuさんのツイート: "「企業が開発しているソフトウェアは信頼性が高い」と言われた場合にも「OSSは多くの目があるから信頼性が高い」と言われた場合にも便利に使える反例ですね。まあ仕様はあれでいいと思うけど… "
- SKSの申し子さんのツイート: "Chromeのサブドメイン省略,勝手にアレな挙動をデフォルトにしたのも酷いけど,途中にあるのも省略しちゃったりするの,本当に雑に実装したんだな,という所が酷い"
- Kazuho Okuさんのツイート: "Chromeのサブドメイン省略は修正が間に合わなくていったん無効化されたというのが正確。他のブラウザも(より限定的な形で)やってる。中間にラベルの省略は wikipedia のモバイルサイトを念頭に意図的に導入されたということは https://t.co/sOBRVz2E29 あたりみるとわかりますね"
- 881694 - www subdomain is removed even when it isn't the leftmost subdomain - chromium - Monorail
- Kazuho Okuさんのツイート: "URLの一部を表示するのはセキュリティ上の要請だし、従ってホスト名を全部表示する必要はないし、複数の管理者が同居するようなドメインならpublic suffix listに登録されてるはずで、その場合、他のウェブブラウザはサブドメインを省略しないしChromeもそうなる方向なんですよ"
- Makoto Kato ︎︎さんのツイート: "Chrome 69でのwwwとかmのサブドメイン省略の話、70でreshipするみたいだけど、細かい話はまだ決まってないみたい。さて。。。 https://t.co/f1IDsRz0Sd"
- 883038 - Feedback: Eliding www/m subdomains - chromium - Monorail
- Kazuho Okuさんのツイート: "セキュリティに関するUIは、1) 簡潔で 2) ブラウザ間で統一されているほうが望ましいと考えます… "
- mattnさんのツイート: "サブドメインが付いてない無いサイトはオフィシャルサイトだと認識する人が一定数いると思っていて、一括してセカンドレベルまでしか表示しないという事ならば(まだ)納得しますが、固定なのであればユーザが混乱するだけな気がしています。… "
- Kazuho Okuさんのツイート: "一般ユーザは www の有無でサイトの区別をしない、という前提なんでしょうね。www の有無を無視するというのは、DV証明書発行の伝統的なプロセスでもそのとおりです… "
- Rockridgeさんのツイート: "GoogleがChrome 69においてアドレスバーから"www"と"m"のサブドメイン表示を消したのは、URLをわかりやすいものにして、ユーザーに注意を向けてもらおうという考えが背景にあったらしい。 / “Chrome tea…” https://t.co/WspDOha7GI"
- Rockridgeさんのツイート: "Chrome 70では"m"のサブドメイン表示を復活させる一方、"www"は隠したままにする模様。 / “883038 - Feedback: Eliding www/m subdomains - chromium - Mono…” https://t.co/6OBz4qUxYH"
- ゆきさんはTwitterを使っています: 「ドメイン名にラテン文字など紛らわしい文字を使う、IDNホモグラフ攻撃については、W3Cで対策の議論があったり https://t.co/gL9HLKBsDP」 / Twitter
- Anti-Homograph-Attacks -- 18 Sep 2019
- Kazuho OkuさんはTwitterを使っています 「(9年前の記事だけど)引用英文のとおりSHOULD encodeなので、エンコードしない場合は運用上問題が生じる可能性があることに留意しろという話で、相対URLでschemeの区切りと区別がつかない問題もまさに留意点のひとつなのかな / https://t.co/VKuQRxisSt」 / Twitter
- HTTPのクエリパラメータにコロン(:)を書くのは不正なのか。 - こせきの技術日記
- Kazuho OkuさんはTwitterを使っています 「Unixのファイルパスにおいて、 /foo/bar/baz /foo/bar/../bar/baz の両者が違うファイルを指すようなケースはあるか? あるならば実際にそういうディレクトリ構成を作ってみよ っていうのは、理解度を試すいい問題だと思う」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「これ、URIのパスレゾリューションでは、必ず同じになるのよね」 / Twitter
- ymmtさんはTwitterを使っています 「@kazuho symlink ありですか?(ほぼ答えかも)」 / Twitter
- 齊藤明紀さんはTwitterを使っています 「cd fooでシンボリックをたどったあとに cd .. が上のディレクトリじゃ無くてシンボリックリンクを巻き戻る動作をするbashは非常に嫌。 pwd しても本当の絶対パスは表示されないし。」 / Twitter
- Kaz Nishimura, C++UnitX (cppunitx) 作者さんはTwitterを使っています 「@a_saitoh もしかして set -P」 / Twitter
- Hiroyasu KamoさんはTwitterを使っています 「@a_saitoh わざわざ cd `pwd -P` するのが面倒です。」 / Twitter
- Delegated Strings | ICANN New gTLDs
- data URIs | MDN
- ホスト名が付かない URL は不正なものとして扱われるようになりました (影響あり) | Firefox サイト互換性情報
- URL Standard (日本語訳)
- draft-ruby-url-problem-01 - URLの問題提起と動向
- jacketizer/libyuarel: Simple C library for parsing URLs with zero-copy and no mallocs.
- 認証しないWeb認証 限定公開URLのセキュリティについて考える - Google スライド
PSL
- Libpsl Reference Manual: Libpsl Reference Manual
- rockdaboot/libpsl: C library for the Publix Suffix List
- 「地域型JPドメイン名」新規登録終了、11月から「都道府県型JPドメイン名」 -INTERNET Watch
- 「都道府県型JPドメイン名」新設へ、2012年後半から登録受け付け開始 -INTERNET Watch Watch
- 【やじうまWatch】東京都の税金のページと思いきや……個人の善意で悪用が防がれている公式サイト風ドメインが話題 - INTERNET Watch
- PSLってどうよ?
- Public Suffix List
- PSLってどうよ?
- PSL
- DailyJS | PublicSuffixList – PSLに基づいてドメイン名を検証 | JSお散歩
- cmtt/publicsuffixlist: A validator for domain names and top level domains, driven by publicsuffixlist.org and ICANN's generic TLDs.
- dnsops-jp-20080709.pdf
- Geekなぺーじ:「欠陥ドメイン名」が世界的に増えそうな件について
- vyv03354さんのツイート: "JPRSが都道府県型JPドメイン対応のためにPSLの更新を依頼してた。 https://t.co/eqdnpJfV どうやら本当に地域型ドメインで使われている市区町村名を全部登録するつもりらしい"
- 763208 - Update .jp entry in PSL
- 本の虫: クッキーモンスター
- Rockridgeさんのツイート: "Public Suffix Listはeffective top-level domain(eTLD)とも呼ばれるドメイン名のリストである。Mozillaの発案だが、現在はコミュニティによって維持されている。 / “Public…” https://t.co/1TIyHoJTRd"
- 本当は難しいPSL - Speaker Deck
- Public Suffix List の用途と今起こっている問題について | blog.jxck.io
TLS
- Compact TLS 1.3の提案仕様 - ASnoKaze blog
- data loss due to RST when using HTTP/1 & TLS 0-RTT · Issue #2534 · h2o/h2o
- Kazuho OkuさんはTwitterを使っています 「はー lingering close とか気にしないで生きていけるつもりだったんだよ。この部分実装した時点では、それで問題なかったんだよ。。。 https://t.co/qy2ivYAxJ3」 / Twitter
- RFC 8996でTLS1.0とTLS1.1が廃止に - ASnoKaze blog
- FadisさんはTwitterを使っています 「3月にTLS 1.0とTLS 1.1をTLSの仕様から落とすRFCが出てるんだけど、TLSは新しいアルゴリズムの追加、利用方法の追加、安全でなくなったアルゴリズムの禁止を何度も行なってきたからこのRFCによって影響を受ける既存のRFC(Updates)が84個も列挙されてる https://t.co/Q33QG8CCTP」 / Twitter
- RFC 8996: Deprecating TLS 1.0 and TLS 1.1
- Chromeが全てのウェブページをHTTPS優先で読み込む「HTTPSファーストモード」を導入予定 - GIGAZINE
- TLS Encrypted ClientHello(ECH) を BoringSSLで試してみる - ASnoKaze blog
- Google Chromeが「アクセスしているサイトが安全である」と表示しないように仕様の変更をテスト中 - GIGAZINE
- レガシーとなった TLS 1.0/1.1 廃止までの道のり - クックパッド開発者ブログ
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「STARTTLSは使うべからず。STARTTLSの実装は非常にバグが多い。2011年にPostfixで発見されたSTARTLS脆弱性はいまだに全サーバの2%で発見されている。LDAPなど途中から暗号を有効化できるプロトコルはどれも同様の危険がある。クライアント・サーバともに暗黙のTLSを使うべき。 https://t.co/yhzWLYPP9f」 / Twitter
- NO STARTTLS
Resource bundles
- amp-script の実用性について考える - mizchi's blog
- WebBundle によるコンテンツの結合と WebPackaging | blog.jxck.io
- WebPackaging の Signed HTTP Exchanges | blog.jxck.io
- Webbundle によるサブリソース取得の最適化 | blog.jxck.io
- Webページのサブリソースを一つにまとめる Resource bundles とは - ASnoKaze blog
- Kazuho OkuさんはTwitterを使っています 「「AMP対応のWebページ」ではなく、「速いWebページ」を検索結果上位に表示するようになるという話。 / https://t.co/FWqQyTM4ZJ」 / Twitter
- The End of AMP – lafoo – ramblings about the online world
Better Ads Standards
- The Initial Better Ads Standards - Coalition for Better Ads
- Chromeブラウザの広告ブロック機能、7月9日に世界で有効に - ITmedia NEWS
- Google、Chromeブラウザに劣悪広告ブロック機能を追加へ - ITmedia NEWS
- GoogleやFacebook、IABなど16組織がオンライン広告改善団体を設立 - ITmedia NEWS
- Web広告の仕組みとは? 種類別の表示方法・効果も解説 | TECH+
- Google、Chromeブラウザでの劣悪広告ブロック開始、仕組みを説明 - ITmedia NEWS
- なぜMozillaはFacebookの「研究目的のデータ収集がユーザーのプライバシーを危険にさらしている」という主張に反論しているのか? - GIGAZINE
- CIAやNSAなどの情報機関は「危険な広告」による被害を避けるために広告ブロッカーを使っている - GIGAZINE
- Facebookのリンクは「クリックする瞬間」だけ別のリンクにすり替えられる - GIGAZINE
- 7594591200220899443さんはTwitterを使っています 「Facebookが邪悪もさることながら基本的にChromeは広告屋が作ってるのでこういう挙動を改善する動機に乏しいというブラウザ側の座組みの問題が大きいという印象です。」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「これだと「怪しげなURLを踏まないようにしましょうね」が効かない。怪しいかどうか押すまでわからんからだ。これは極めて悪質である」 / Twitter
- Michal ŠpačekさんはTwitterを使っています 「When you click the FB link, but before the browser loads the page, they change the HREF to l.facebook.com so for the browser, it seems like you clicked the l.fb link. Works with right-click as well, maybe because "copy link". And when you move the mouse back again… Sneaky. https://t.co/6Yfl3de1V8」 / Twitter
- 7594591200220899443さんはTwitterを使っています 「ひえーFacebook、Aタグの上でマウス押下した瞬間にhref書き換えてんのか!で次の瞬間マウスクリックするとその書き変わったURLを踏む」 / Twitter
セーフブラウジング
- 実はセーフでも何でもないという「セーフブラウジング機能」について専門家が解説 - GIGAZINE
- iOS 14.5の「セーフブラウジング」はGoogleではなくAppleの自社サーバー経由で行われるようになる - GIGAZINE
- Chrome、フィッシング検知を50倍高速化したバージョン92 - PC Watch
ASnoKaze blog
送信元ポート
- QUICやHTTP/3で利用を避けるべき送信元ポートの議論 - ASnoKaze blog
- QUICやHTTP/3で利用を避けるべき送信元ポートの利用状況 | エンジニアブログ | GREE Engineering
- slides-111-quic-ops-drafts-00.pdf
- draft-ietf-quic-applicability-13
- QUICやHTTP/3で利用を避けるべき送信元ポートの議論についての考察 - show log @yuyarin
histric-1
- HTTPメッセージに署名をするSignatureヘッダの標準化 - ASnoKaze blog
- HTTPと硬直化(ossification)の問題 - ASnoKaze blog
- 「Advisory Content-Length for HTTP」と自転車置場の話し - ASnoKaze blog
- ネットワークメトリクスを示すTransport-Info HTTPレスポンスヘッダ - ASnoKaze blog
- HTTPヘッダに構造定義を与える Structured Headers の提案仕様 (draft-14) - ASnoKaze blog
- HTTPで部分的アップロードを可能にする Partial Uploadsという提案仕様 - ASnoKaze blog
- HTTP/2の仕様、改定作業が始まる - ASnoKaze blog
- WiresharkがHTTP/3に対応した - ASnoKaze blog
- ChromeのSecure context restriction for external requests - ASnoKaze blog
- Permissions PolicyとDocument Policyについて - ASnoKaze blog
- ChromeのHTTP/2サーバプッシュサポート廃止検討と、103 Early Hintsについて - ASnoKaze blog
- POSTリクエストを冪等処理可能にするIdempotency-Keyヘッダの提案仕様 - ASnoKaze blog
- CDNのキャッシュを制御する CDN-Cache-Control ヘッダ - ASnoKaze blog
- GoogleのPrivate prefetch proxyに関するメモ - ASnoKaze blog
- HTTP PUTリクエストにContent-Rangeヘッダを付けられるか? - ASnoKaze blog
- WebTransportの方向性 (2021年1月の中間会議をうけて) - ASnoKaze blog
- プライバシーを保護する Oblivious HTTP の仕様 - ASnoKaze blog
- NAT Slipstreaming v2 攻撃とブラウザ側の対策 - ASnoKaze blog
- NAT Slipstreaming攻撃とブラウザ側の対策 - ASnoKaze blog
- ダウンロードもMixed Contentsの対象となる話し - ASnoKaze blog
- QUICの仕様におけるアンプ攻撃対策 - Qiita
- WebTransport over HTTP/3のプロトコル仕様 - ASnoKaze blog
- HTTPコネクションでIPパケットをProxyさせる、新しいCONNECT-IPメソッドの仕様 - ASnoKaze blog
- QUIC Version 2 という個人ドラフト(draft-duke-quic-v2❩ - ASnoKaze blog
- HTTP/3におけるCAPSULEフレームとDATAGRAMの利用方法 - ASnoKaze blog
- WebTransport over HTTP/2 の方向性 (2021年5月の中間会議をうけて) - ASnoKaze blog
- HTTPセマンティクス仕様の改訂版 まとめ - ASnoKaze blog
- HTTP/3からのダウングレード攻撃を防ぐIncompatibleProtocol拡張の仕様 - ASnoKaze blog
- HTTP/3 DATAGRAMの優先度制御の提案仕様 - ASnoKaze blog
- Bootstrapping WebSockets with HTTP/3 の仕様 - ASnoKaze blog
- QUICのバージョンネゴシエーションとダウングレード攻撃対策 - ASnoKaze blog
- RSAブラインド署名を用いたHTTP認証の提案仕様 - ASnoKaze blog
- QUIC用APIを実装したOpenSSL forkの登場 - ASnoKaze blog
- HTTP Datagram PING の拡張仕様についてのメモ - ASnoKaze blog
- HTTP/2の改定版仕様の変更点について - ASnoKaze blog
Publickey
- HTTP/3はどうやってWebを加速するか? TCP、TLS、HTTP/2の問題とHTTP/3での解決策~Fastly奥氏が解説(前編) - Publickey
- HTTP/3はどうやってWebを加速するか? TCP、TLS、HTTP/2の問題とHTTP/3での解決策~Fastly奥氏が解説(後編) - Publickey
- HTTP/3の基盤となる「QUICプロトコル」の標準化プロセスが完了、IETFの「RFC 9000」として - Publickey
blog.jxck.io
- Cross Origin iframe からの alert/confirm/prompt 呼び出しの無効化 | blog.jxck.io
- Private Relay と IP Blindness による Fingerprint 対策 | blog.jxck.io
IIJ Engineers Blog
- IIJ Engineers Blog
- QUICをゆっくり解説(1):QUICが標準化されました | IIJ Engineers Blog
- QUICをゆっくり解説(2):ネゴせよ | IIJ Engineers Blog
- QUICをゆっくり解説(3):QUICパケットの構造 | IIJ Engineers Blog
- QUICをゆっくり解説(4):ハンドシェイク | IIJ Engineers Blog
- QUICをゆっくり解説(5):2回目以降のハンドシェイクと0-RTT | IIJ Engineers Blog
- QUICをゆっくり解説(6):増幅攻撃との戦い | IIJ Engineers Blog
- QUICをゆっくり解説(7):アプリケーションデータとストリーム | IIJ Engineers Blog
- QUICをゆっくり解説(8):フロー制御 | IIJ Engineers Blog
- QUICをゆっくり解説(9):コネクションの終了 | IIJ Engineers Blog
- QUICをゆっくり解説(10):コネクションのマイグレーション | IIJ Engineers Blog
- Vol.52 | Internet Infrastructure Review(IIR) | IIJの技術 | インターネットイニシアティブ(IIJ)
- HaskellによるQUICの実装(IIR vol.52 3章) | IIJ Engineers Blog
GIGAZINE
- ウェブアプリに対する典型的な攻撃手法とその対策まとめ - GIGAZINE
- ウェブサイトのさまざまな「認証方式」をまとめて比較した結果がコレ - GIGAZINE
- Chrome・Firefox・Edgeなどブラウザは初回起動時にどのような通信を行っているのか - GIGAZINE
- Chromeで「情報削減されたユーザーエージェント文字列」のテストが開始 - GIGAZINE
infoQ
- Chrome User Agentのサポートを段階的廃止
- UXパターン: Stale-While-Revalidate
Twitter
QUIC
NAT
- ゆやりんさんはTwitterを使っています 「資料掲載してます。どう見ても5分でしゃべれないので評判良ければJANOG49で時間とって議論したいですね。 https://t.co/4lYpkF3RDX」 / Twitter
- QUICとNATと – JANOG48 Meeting
- Kazuho OkuさんはTwitterを使っています 「よいまとめ。ありがたい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「感想がてらのメモとしていくつか: * UDP無通信タイムアウト30秒にできるなら、TCPのCLOSE_WAITの120秒よりも短くなるので、プレッシャーは減りそう(TCPのFIN交換後のタイムアウトって実際のNAT運用どうなってるんだろう)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「* 実際のところ、ポート枯渇に一番つながるのは、いまだにドメインシャーディングしてるHTTPサイトとかHTTP/1で持続的接続を使わないクローラとかなので、そういうTCPアプリがなくなるとNATでのポート枯渇可能性が減ってうれしいよなと思う」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「* IPv6でポート枯渇はなくなるはずなのにSPIのエントリ足りないとかは、設定でギリギリ攻める以上、アプリケーションの変化の度に再チューニングするリスクと隣り合わせであることを理解してほしいと思う」 / Twitter
- tenpoku1000に関するツイートアクティビティアナリティクス
- Kazuho OkuさんはTwitterを使っています 「実際、NATまわりで「TCP切断後、何秒間4-tuple再利用できないの? 120秒? マジ? 長すぎない?」みたいなことは思うんだけど、120秒以下で再利用するのは、やっぱ危ないんですよね?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あーまああれか。「ポート番号まじ足りないって」っていうキャリアグレードNATの話と、ポートは余ってるけど「エントリ数足りないって」っていうホームルータやファイアウォールの話を混ぜるな危険ってのはあるのか」 / Twitter
- 嶋田大貴さんはTwitterを使っています 「TCPだとセッションの終わりをルーターが検出してテーブルから削除出来るけど、QUICの場合はQUICを知らないルーターから見たらただのUDPだからタイムアウトでしか片付けられないってことか…これは厳しいですね。」 / Twitter
- やまねこ⚙楢ノ木技研さんはTwitterを使っています 「うええ、ルーターのNATテーブルを圧迫してるの、LAN内部に設置したDNSサーバーだけかと思ったら、QUICか!どうりで、googleとかQUICに対応してるサイト使うとトラブル起きる訳だ。。」 / Twitter
- やまねこ⚙楢ノ木技研さんはTwitterを使っています 「現状、UDPで動いてるQUICのセッションの継続期間を、ルーター側で明示的に判断できないから、NATのタイムアウトを短くするとか、Atermみたいヘボルーターを使わない、しか対策ないっぽい。。」 / Twitter
- やまねこ⚙楢ノ木技研さんはTwitterを使っています 「LAN内QUIC使用禁止ってのもアレなんで、とりあえず、NATのUDPセッションタイムアウトを最小値30秒にしてみた。元々、SIPみたい一部のUDP使ってるレガシーなプロトコルが、無通信時間が長いので、タイムアウトの初期値が長めになってたりするらしい。。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin トランスポート屋さんとしてはQUIC対応ルータみたいな発想こそがプロトコルの発展を阻害する(ossifyする)ので防ぎたいものなので、NATに期待するのは使われないマッピングは順次消していってくれ、以外ないです。消えてたら別ポート割り振られて、そこでconnection migrationが走るので」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「現実にはNATのUDPエントリは無通信30秒程度くらいから消え始めるので、QUICのサーバが接続維持したい場合は(HTTP/3のlong polling等)、定期的にPINGを送るべきとされています。滞留中のHTTPリクエストがなければ、無通信のままエンドポイントのステートもNATのステートもタイムアウトで破棄される」 / Twitter
- ゆやりんさんはTwitterを使っています 「@kazuho 「使われないマッピングは順次消していってくれ」ってのがインフラ側から見るとしんどい(けど「QUIC対応ルータがあれば解消できる」という意見があって「本当か?」と懐疑した結果違うと分かった)のでQUIC使うならIPv6だなと思い至りました。この辺の話はJANOGのLTで話してみようかな。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin なぜLRUでしんどいのでしょう。TCPの場合、NATテーブルが溢れるギリギリまでテーブルエントリを維持したい(そうしないと接続が切れる)という動機があるのは分かりますが、QUICの場合はmigrationがあるので不要です。また、傍論ですが、そもそも切断時にCONNECTION_CLOSEを投げるわけですらありません」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin アプリケーションプロトコルによりますが、HTTP/3のような場合は、タイムアウトによる切断が通常動作です。切断処理のために無線回路起こすのは無駄なので」 / Twitter
- ゆやりんさんはTwitterを使っています 「@kazuho NATのエントリークリアのトリガーがタイムアウトしかないので、タイムアウトが長いとNATテーブルが埋まる問題があります。この時に他の接続もできなくなるのが問題です。TCPの場合はFINをトリガーにタイムアウトを待たずにエントリーを消せます。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin LRUではなく固定秒数のタイムアウトを指定するようなNATの話でしょうか。だとすると、そのような設計はQUICに限らずUDP全般で問題になるので、LRUに移行してくれ、以外にないと思います。FINをトリガーに消せる(からエントリを節約できる)というのは、LRUよりも長い寿命が必要であるという...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin 前提に基づく主張だと思いますが、QUICの場合、LRUで困らないので、その主張はあたりません。」 / Twitter
- ゆやりんさんはTwitterを使っています 「@kazuho ですです。ご家庭やSOHO、小規模オフィスのブロードバンドルータとかです。LRUしてくれってのもその通りです。DNS以外のUDP全般で起こる問題ですがこれまでそんなに通信がなかったので顕在化しなかった問題です。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin なるほどありがとうございます。アプリ屋さんの発想としては、UDPが100%通るわけではない以上、TCPフォールバックを前提にものを作る(ことが多い)ので)、そういうルータのテーブルが溢れてUDP止まるならしょうがないよね、LRUする機器に更新されるといいね、みたいな感想になりそうです」 / Twitter
- ゆやりんさんはTwitterを使っています 「@kazuho 多くの場合TCPとUDPでNATテーブルが共有されているので、この場合TCPも含めて新規コネクションが死んでしまいますよね。QUICで多重化されてUDPレベルのでコネクション数が減ったことと、タイムアウト待ちによるNATエントリーの増大のバランスがどうなるのかが(サイトの作りにもよりますが)気になります」 / Twitter
- ゆやりんさんはTwitterを使っています 「@kazuho 文脈変わりますが、CGNレベルのNATでLRUできるかですが、RFC6888にはREQ-8として「FINが来てないTCPポートは120s経過するまで再利用するな」って書いてあったりして悩ましいです(書いた人が身近すぎますが) https://t.co/97KhQ2tJW0」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin TCPとUDPでタイムアウトが共通かつTCPの場合FINでエントリ落とすみたいな設計だと、UDP側からのプレッシャー増大に対応するのは大変かもですね。元の文脈にだと、UDPの場合は終端を見てエントリを落とすなんてことはどのみちできない(し、やるべきではない)んだから、タイムアウトをTCPより短く...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@yuyarin すればいいという話になり、実際、TCPよりもUDPのほうがタイムアウト短いネットワークが多いんだと理解しています(この「多い」がネットワークの数なのかトラフィック比例なのかは把握してないです)」 / Twitter
- ゆやりんさんはTwitterを使っています 「@kazuho そうですね。設計としてはTCPのタイムアウトのほうが長いことが事例として多いです。TCPはFINで消えるのでタイムアウト値の設計時にNATエントリのことを考慮することは少なくて、実際の数秒〜十数秒の通信断があったときにTCPコネクションが切れてほしくないみたいな動機で設定することが多いです。」 / Twitter
- こーのいけさんはTwitterを使っています 「@yuyarin @kazuho YAMAHAのマニュアル見てるとDNSの場合を特別扱いしてますね。https://t.co/srVLidQBeL - DNS以外に多くのサーバと頻繁に通信するUDPプロトコルがこれまでなかった - DNS(53/udp)は特別扱いされている場合があった - そこにQUICが出てきて、さあどうしよう? という感じでしょうか」 / Twitter
- 26.9 NAT の IP アドレスマップの消去タイマの設定
- ゆやりんさんはTwitterを使っています 「@ko_noike @kazuho おっしゃるとおり、これができる機器を使う場合はDNSのNATのタイムアウトはかなり短く設定します。というかこれができないとURL一文字打つたびに名前解決しに行くブラウザとかがあると死ぬので。。。」 / Twitter
- VさんはTwitterを使っています 「QUIC 対応ルーターとかは必要なくて普通に NAT テーブルの UDP セッションタイムアウトが 30 秒とかになってればあとはテーブルサイズの問題くらいの認識。テーブルサイズが小さい弱いルーターはしんどいかもしれない、くらいか。」 / Twitter
- VさんはTwitterを使っています 「むしろ特定プロトコル向けルーターとか出すとそのプロトコルが改善できなくなるのでやめるべきだと思うなぁ。」 / Twitter
- FadisさんはTwitterを使っています 「HTTPでブラウザがWebサーバに対してユーザトラッキングを望まないという意思表示をするDo Not Track(DNT)ヘッダをSafariが廃止した理由が「DNTはあまり使われず、使うユーザは継続的にDNTを付けたリクエストをする為、トラッキングの為のヒントとして使われる」なの、Webのダメな所が凝縮されてて凄い」 / Twitter
- Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「HTTPやSSL/TLSに関わるソフトウェアエンジニアは知っておくといい情報なんですけど、 https://t.co/ZcO29mS1P8 というサイトを使うと、期限切れの証明書でのTLSの検証とかが簡単にできていいです。」 / Twitter
- badssl.com
- Piro/Linuxコマンド操作解説マンガ連載中さんはTwitterを使っています 「似た例として、Google Safe Browsingとかでマルウェア判定の検証に使える https://t.co/x9biz3P59l というデモサイトも便利です。」 / Twitter
- testsafebrowsing.appspot.com
- Kazuho OkuさんはTwitterを使っています 「HTTPでAPI設計する際のstatus codeの返し方は https://t.co/QnjU6BStK2 にまとまってるけど、一言で言うと HTTP status code を本来の意味で使いつつ、詳細な情報はレスポンスボディやヘッダで送れ、です」 / Twitter
- Building Protocols with HTTP
- Kazuho OkuさんはTwitterを使っています 「というわけで、HTTP ステータスコードの使い方も含め、HTTP を使って API やらアプリやら設計する際の指針はだいたい BCP56bis なのです」 / Twitter
- Hajime FujitaさんはTwitterを使っています 「5時間でCDNを作るぞ!という記事。CDNの基本的な概念がよくまとまっている。 https://t.co/IYrKfOJKWx」 / Twitter
- The 5-hour CDN · Fly
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「HTTP/2はその複雑さのために多くの攻撃が可能になっている。ヘッダはバイナリ化されているが、frontend-backend間は HTTP/1で通信されることが多いので、ダウングレードによって Content-Length/Transfer-Encoding を混ぜた desync攻撃が可能になる。 https://t.co/Sg6KLlm2v5」 / Twitter
- HTTP/2: The Sequel is Always Worse | PortSwigger Research
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「Cloudflareが新しく導入した browser isolation機能は、視覚障害者にとってのWebアクセスを完全に遮断してしまう。これに対する代替策はまだ存在しない。 https://t.co/NG7I20UnJz」 / Twitter
- Cloudflare's inaccessible browser contradicts the company's mission
- Sen UENOさんはTwitterを使っています 「UDPベースの増幅攻撃の増幅係数がまとまっている。 UDP-Based Amplification Attacks | CISA https://t.co/K4QDcxgpG2」 / Twitter
- UDP-Based Amplification Attacks | CISA
- なかのんの旅々(Masayuki Nakano)さんはTwitterを使っています 「UA文字列のバージョンが100になると、いっぱい壊れるサイトが出そうだから、Firefox Nightlyユーザの50%のUA文字列を変更してテストするらしい。 / Heads up: "Firefox 100" webcompat experiment https://t.co/POiNcsFPFN」 / Twitter
- Heads up: "Firefox 100" webcompat experiment
- 本の虫: Chromeが起動時に三つのランダムなドメインに接続しようとする理由
- ブラウザの更新 スーパーリロード
- Chromium の HttpStreamParser によるヘッダ処理
- 100GbE+ラージMTU環境でのQUICのパフォーマンス改善. HTTP/3とトランスポートプロトコルQUICの仕様を定めた6つのRFCが発行さ… | by Jun-ya Kato | nttlabs | May, 2021 | Medium
- QUIC is now RFC 9000 | Fastly
- QUIC Interop Runner
- Web Application開発に10080番ポートは使ってはいけない
- 進化する通信プロトコル - QUICとHTTP/3で何が変わるのか -日本語版- - YouTube
- 【特集】ネットの大規模障害が起きた「CDN」って何?実際にアクセスして確かめてみた - PC Watch
- NginxでのeBPFとSO_REUSEPORTを使ったQUICコネクション受信処理 | by Jun-ya Kato | nttlabs | Jul, 2021 | Medium
- What's QUIC? - Microsoft Tech Community
- microsoft/msquic: Cross-platform, C implementation of the IETF QUIC protocol.
curl
curl
- curl
- curl - License Mixing
- curl - SSL libraries compared
- curl - SSL CA Certificates
- curl - Extract CA Certs from Mozilla
- curl - HTTP Cookies
- HTTP/2 with curl
- curl/curl: A command line tool and library for transferring data with URL syntax, supporting FTP, FTPS, HTTP, HTTPS, GOPHER, TFTP, SCP, SFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP, SMTP, POP3, RTSP and RTMP. libcurl offers a myriad of powerful features
- curl/packages/Win32 at master · curl/curl
libuv
- libuv|Cross-platform asynchronous I/O
- libuv/libuv: Cross-platform asynchronous I/O
- libuv - Wikipedia
- libuv-1.19.1
- Kazuho's Weblog: The reasons I stopped using libuv for H2O
- Kazuho's Weblog: mruby で同期呼出を非同期化する話(もしくは H2O の mruby ハンドラでネットワークアクセスする話)
- Reactor pattern - Wikipedia
- Proactor pattern - Wikipedia
- C10k problem - Wikipedia
- libcurl example - multi-uv.c
- Curl: libuv example
- node.jsを支えるlibuvのチュートリアル"uvbook" :ユーティリティ - 自由課題
- Utilities — An Introduction to libuv
- curl/multi-uv.c at master · curl/curl
- An example on how to use libuv with libcurl's multi interface Should be equally fast on Unixes (uses epoll/kqueue/etc like libev/libevent) but MUCH faster on Windows due to libuv's usage of IO completion ports. Could come in handy if you have to manage several hundreds or thousands of connections!
- moteus/lua-lluv-curl: Make asyncronus requests using libuv and libcurl
- c - libuv event loop and libcurl - Stack Overflow
- libuv/libcurl downloading example with threaded adding new download requests - Google グループ
- 本の虫: C++をプログラミング入門に使うならHTTPSぐらい喋れないと話にならんと言われたのでそういうライブラリを作った
- cURL - Wikipedia
- cURL - Wikipedia, the free encyclopedia
- cURL-7.57.0
- nghttp2-1.29.0
- libmetalink in Launchpad
- 超古いサーバーからhttpsにcurlする時 - yamaguchi.txt
- ブラウザではアクセスできるのにcurlでhtmlが取ってこれない時 - yamaguchi.txt
- curl で Cookie 認証突破
- cURL as DSL — cURL as DSL 1.0 documentation
- rsync, wget, curl, scp に速度制限をかける方法まとめ - Qiita
- cURL:インストール時にlibSSH2でエラーになる場合の解決策 | Step On Board
- cURL - curlでルート証明書の適用がうまくできない。(74022)|teratail
- cURL - How To Use (マニュアルページ日本語訳)
- Windows®環境にcURLコマンドを実行できるようにインストールする手順 | ええかげんブログ(本店)
- libcurlをVisual Studio 2012を使って、Windows10(64bit)上でビルドした手順。~必要な資源のダウンロードからビルドまで~ - IT系フリーランスの技術備忘録
- HTTP(S)通信のできるcurlと無駄に新しいgawkをインストールしてくれます
- WebAPIリクエスト仕様書としてcurlコマンドのご提案 - Qiita
- matsuuを止めるな!さんのツイート: "curl単体とcurl | bashでchunkedの違いを元に異なる内容を流し込むPoC。わはは。 / “Detecting the use of "curl | bash" server side | Application…” https://t.co/0rrnblHZ1k"
- Detecting the use of "curl | bash" server side | Application Security
- 渋川よしきさんのツイート: "コマンドが分かれば、libcurlオプション付けると、ソースコードが生成されたはずです。… "
- 本の虫: Cisco、ルーターの脆弱性を修正するためにユーザーエージェントcurlを弾く変更を加える
- Rust Hyper HTTPライブラリはCurlをより安全にすることに貢献
libssh2
blog
- Ubuntu忘備録: libssh2をコンパイルしてみた
- qemu(not kvm)上のゲストOSへのsshが遅くてハゲるので何とかした備忘録 - livaの雑記帳
- ubuntuのssh serverに公開鍵認証でログインする - Yabu.log
- SSHの踏み台有り・無しを,ネットワーク的居場所に応じて自動で切り替える - yunazuno.log
- OpenSSHのAuthenticationMethodsを使って鍵認証+ユーザパスワード認証による二要素認証の設定をする | 俺的備忘録 〜なんかいろいろ〜
- QUIC for SSH の提案仕様が出たよ - ASnoKaze blog
- ssh-agent のしくみ - eagletmt's blog
OSDN
- 「OpenBSD 5.4」リリース、OpenSSHやOpenSMTPDがアップデートされる | OSDN Magazine
- 「OpenSSH 6.8」がリリース | OSDN Magazine
- 「OpenSSH 7.0」がリリース、PermitRootLogin設定の変更などセキュリティ強化が行われる | OSDN Magazine
- 「OpenSSH 7.2/7.2p」がリリース | OSDN Magazine
- 「OpenSSH 7.4/7.4p」を公開、バグ修正が中心のリリース | OSDN Magazine
- 「OpenSSH 7.8」リリース | OSDN Magazine
- 1つのシェルから複数のSSHセッションを同時に実行するツール3種類を試す | OSDN Magazine
- AES-GCM暗号が関連した脆弱性を修正した「OpenSSH 6.4/6.4p」がリリース | OSDN Magazine
- Windows環境でのSSHの利用とSSH鍵の作成 | OSDN Magazine
- セキュリティを改善する変更が加えられたOpenSSH 5.6/5.6p1リリース | OSDN Magazine
- フリーのSSH実装「OpenSSH 6.7」がリリース | OSDN Magazine
- レガシーな証明書署名の脆弱性を修正したOpenSSH 5.8/5.8p1リリース | OSDN Magazine
- 機能にフォーカスした「OpenSSH 6.5/6.5p1」がリリース | OSDN Magazine
- 子プロセスでのサンドボックスを実験的に実装したOpenSSH 5.9/5.9p1リリース | OSDN Magazine
- 米Microsoft、PowerShellでOpenSSHをサポートへ | OSDN Magazine
- 「OpenSSH 7.8」リリース、バグ修正が中心 | OSDN Magazine
- 「OpenSSH 8.0/8.0p」リリース、scpプロトコルに関連した脆弱性を修正 | OSDN Magazine
- 「OpenSSH 8.1」リリース、バグ修正が中心 | OSDN Magazine
GIGAZINE
- SSHの認証に物理セキュリティキー&認証局を用いて一時的な鍵を生成する方法とは? - GIGAZINE
- 開発者たちが慣れ親しんだ「scp」コマンドはなぜ「時代遅れで柔軟性がなくすぐに修正できない」のか? - GIGAZINE
Qiita
- libssh2をインストールする(ソースからコンパイル) for CentOS7.2 - Qiita
- libssh2,openssl,c-ares,zlib,ipv6を有効にした状態でcurlをwindows上で64bitビルドする - Qiita
Twitter
- いわもと こういちさんのツイート: "以前日記 https://t.co/81s1kPT1y4 で書いたけれど、OpenSSHの秘密鍵の形式には欠点が有るから。そもそも秘密鍵は利用するソフトで生成して使うべきだと思うんだよね。それならば形式の問題は無い。よそで作って(時にはネットワークを介して転送して)利用するなんてやりたくない。… https://t.co/8boH6v9rQp"
- PuTTYの秘密鍵が独自形式な理由 | dodaの日記 | スラド
- Fadisさんのツイート: "OpenSSH 8.0がリリースされた。scpでファイルをコピーする際に「リモートから送られてきたファイル名をクライアントが無条件に信用する」為に制御文字でいたずらができる脆弱性(CVE-2019-6110)が修正される他、量子計算機耐性を持つ鍵交換の実験的なサポートが含まれる https://t.co/ffcIOWKCNU"
- OpenSSH 8.0 Released - Addresses SCP Vulnerability, New SSH Additions - Phoronix
- YASUOKA MasahikoさんはTwitterを使っています 「IPoE だと ssh で外出れず、びっくり。https://t.co/cmwRgkmC9b 有名な問題っぽい。pf で "set tos 0x0" して潰すことにした。」 / Twitter
- フレッツ光ネクスト + IPoE で scp, cvs, rsync の SSH通信ができない問題:tsutsuiの作業記録置き場 - ブロマガ
- ドッグさんはTwitterを使っています 「プロトコルの脆弱さから見て scp はもう時代遅れになってきている.代替は sftp か rsync だけど,前者はインターフェースが微妙で後者は使える環境がやや限られる | 'Deprecating scp [https://t.co/WPGe19HJgf]' https://t.co/aDWoZVRZe5」 / Twitter
- ドッグさんはTwitterを使っています 「scp コマンドが使うプロトコルを sftp に置き換える実装を試してる人もいる https://t.co/K7hNcfNZSA」 / Twitter
- Use SFTP internally for SCP command by Jakuje · Pull Request #194 · openssh/openssh-portable
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「OpenSSHで公開鍵ハッシュを視覚化するのに使われている「酔っぱらいビショップ (The Drunken Bishop)」アルゴリズム。入力を2ビットずつスキャンして斜め4方向に移動し、その軌跡を格子上にプロットする。訪れた回数によって記号を変えればできあがり。 https://t.co/TlUb2HyqwX」 / Twitter
- The Drunken Bishop Algorithm – Barely Functional Theories
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「今日知った用語: Trust on first use (TOFU) 初回で相手を (よく調べたうえ) 信用し、2回目以降は以前と同じ相手かどうかだけをチェックする原則。SSHの初回接続や HTTP Public Key Pinningがこれに相当する。 https://t.co/UYHH5kH0aO」 / Twitter
- Trust on first use - Wikipedia
- libssh2 | daniel.haxx.se
- Curl: How to configure curl with libssh2
- libssh2
- libssh2 vs libssh
- libssh2/libssh2: the SSH library
- PowerShell/Win32-OpenSSH: Win32 port of OpenSSH
- haruyama/ssh_rfc_ja: Japanese translations of SSH RFCs and Internet Drafts
- 各種サービスからユーザのSSH KeyやGPG Keyを取得する方法メモ
SMB
脆弱性
- WindowsおよびSambaの重大なバグ「Badlock」、4月12日のパッチリリースが告知される | スラド セキュリティ
- WindowsのSCFファイルをGoogle Chromeでダウンロードさせ、SMB認証情報を取得する攻撃 | スラド IT
- JVNVU#92232364: Microsoft Windows および Samba の認証機能に脆弱性 ("Badlock")
- ASCII.jp:95から10までの全Windowsに影響、「BadTunnel」脆弱性とは何か|Black Hat USA 2016/DEF CON 24 ラスベガス現地レポート
- Windowsの通信プロトコルに脆弱性報告、SMB v1は無効化を - ITmedia ニュース
- ニュース - WindowsのSMBに新たな脆弱性見つかる、企業担当者はファイアウオールの再確認を:ITpro
- WannaCryの危機再び。新たな拡大感染型ランサムウェアGoldenEye/Petyaが全世界で拡散中。 | LAC WATCH | 株式会社ラック
- Windows SMBの脆弱性「SMBLoris」の再現を確認しました | LAC WATCH | 株式会社ラック
- Windows 10/8.1の「SMB v3」に未解決の脆弱性、Windowsをクラッシュさせてブルースクリーンに -INTERNET Watch
- WindowsのSMB v3脆弱性を悪用し、ウェブサイトのリンククリックでシステムをクラッシュさせる手法、SecureWorksが公表して注意喚起 -INTERNET Watch
- 被害拡大のランサムウェア「WannaCryptor」は「SMB v1」の脆弱性を悪用、サポート終了のWindows XP向けにも緊急パッチ提供 -INTERNET Watch
- 新種ランサムウェア「GoldenEye」が世界各地に感染拡大、SMB v1の脆弱性「MS17-010」を突いて感染 -INTERNET Watch
- 猛威を振るったランサムウェア「WannaCry」を振り返る - INTERNET Watch
- Google、SMBv1にのみ対応するAndroid用Sambaクライアントを公開 | スラド セキュリティ
- google/samba-documents-provider: Access network file shares directly from the Android Downloads/Files app
- Petya ランサムウェア攻撃に対する Windows 10 プラットフォームのレジリエンス – 日本のセキュリティチーム
- アップグレードの重要性: 2017 年のランサムウェア拡散時に高い効果を証明した Windows 10 の次世代型セキュリティ – 日本のセキュリティチーム
MS
- [MS-SMB]: Server Message Block (SMB) Protocol
- SMB 3.1.1 Pre-authentication integrity in Windows 10 – Microsoft Open Specifications Support Team Blog
- SMB 3.1.1 Encryption in Windows 10 – Microsoft Open Specifications Support Team Blog
- Encryption in SMB3 – Microsoft Open Specifications Support Team Blog
- SMB 2 and SMB 3 security in Windows 10: the anatomy of signing and cryptographic keys – Microsoft Open Specifications Support Team Blog
- Extended DFS referral for SMB 3 – Microsoft Open Specifications Support Team Blog
- SMB3 Secure Dialect Negotiation – Microsoft Open Specifications Support Team Blog
- SMB 2.x and SMB 3.0 Timeouts in Windows – Microsoft Open Specifications Support Team Blog
- CIFS and SMB Timeouts in Windows – Microsoft Open Specifications Support Team Blog
- Encryption in SMB 3.0: A protocol perspective – Microsoft Open Specifications Support Team Blog
SMB Direct
Remote Direct Memory Access
- Remote Direct Memory Access - Wikipedia
- Remote direct memory access - Wikipedia
- リモートダイレクトメモリアクセス(Remote Direct Memory Access : RDMA)の紹介 - SSD情報
- HP ProLiant White Paper:イーサーネットRDMAテクノロジ:RDMAの概要/RDMA over TCP | HPE 日本
- FadisさんはTwitterを使っています: 「SCSIはiSCSIを使うことでネットワーク越しにマウントする事ができる。NVMeもNVMe-oFを使うことでネットワーク越しにマウントする事ができる。これに対してNVDIMMは「全部アドレス空間に転がってるんだから、そのままRDMAすれば良いじゃろ」なのシンプルで大変良い」 / Twitter
- FadisさんはTwitterを使っています 「SCSIにはiSCSIがあり、NVMeにはNVMe-oFがあり、ではNVDIMMなストレージをネットワーク越しにマウントするにはどうすれば良いか、に対する答えがRDMAなのほんと好き」 / Twitter
- FadisさんはTwitterを使っています 「SCSIにiSCSIがあり、NVMeにNVMe-oFがある。ではNVDIMMをネットワーク越しに使うプロトコルは? という問いに対して「RDMAでええやん」ってのは割とガチらしくて、PMDKにはRDMAでアクセスできるリモートのNVDIMMを使う場合用のライブラリが用意されてる」 / Twitter
- mumumuさんはTwitterを使っています 「FreeFlow: Software-based Virtual RDMA Networking for Containerized Clouds [NSDI '19] コンテナから,Portabilityを保ったままやRDMAを使うために,仮想的なRDMAモジュールが実際のRDMAをinterceptする.その際のメモリ構造をどうするか(ポインタの意味の扱いや性能劣化防止)といった問題に対処」 / Twitter
- Intel Software Guard Extensionのチュートリアル サンプルプログラムを実行(Part-3 PasswordManagerCore) - FPGA開発日記
- NUMAアーキテクチャとネットワーク性能(1)-説明編 - SSD情報
- NUMAアーキテクチャとネットワーク性能(2)-実践編 - SSD情報
- KaiGai Koheiさんのツイート: "あれ、ちょっと待てよ。 PG-Stromの場合、GPUDirect RDMAを使って(つまりGPUデバイスメモリをホストアドレス空間にマップして)NVMEのコントローラに『ブロック⇒GPUメモリ』のデータ転送をさせてるけども、逆にNVME側のバッファをマップして、GPUのDMAエンジンでReadできるかも?… https://t.co/bxpYwpXtjA"
- KaiGai Koheiさんのツイート: "ただNVME(PCIe)とNVMEoF(RDMA)用のドライバが全く別物になってしまうな、、、これは。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SMB経由で40Gb高速転送をしようとすると、Win10 pro for WorkstationでRDMAを有効にしても、1コアに負荷が集中して10~15Gbps程度で頭打ちになるなぁ…Xeon系のサーバマシンでないと厳しいか。 純TCP転送だと、もう少し分散するのだが。"
- リモートダイレクトメモリアクセス(Remote Direct Memory Access : RDMA)の紹介 - SSD情報
- SMB Direct - Windows Server 2012 / R2 - SSD情報
- SANsymphonyパススルーとRDMAの組み合わせ - Qiita
- FadisさんはTwitterを使っています 「LinuxカーネルにSMBでFSをエクスポートするカーネル空間ファイル共有サーバCIFSDが入りたがっているらしい。Linuxカーネルには従来からSMBなリモートFSをマウントするドライバが備わっていたが、これは逆にSMBでFSを提供する方。SMB3を喋り、RDMAにも対応するらしい https://t.co/hLe1uSnmrq」 / Twitter
- まさみさんは語りたいさんのツイート: "GPUでRAIDコントローラのロジックを実行させた上で、他のポートにつながった複数のNVMeに対してRDMAをする、というのはもうありそうなんだけど見つからない。"
- 「RoCE」をめぐる、あれこれ。 | サーヴァンツインターナショナル株式会社
- 13.2. RoCE を使用したデータ転送 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
- Improve Performance of a File Server with SMB Direct
- Windowsファイルストレージ(SMB) - メラノックス テクノロジー
- SMB Direct - Windows Server 2012 / R2 - SSD情報
- SB_Accelerating_Remote_Storage_Mar_2014.pdf
- SANsymphonyパススルーとRDMAの組み合わせ - Qiita
- SMB direct の性能 : kommy の備忘録
@IT
- Windowsネットワークの基礎:第7回 ファイル共有プロトコルSMBの概要 - @IT
- その知識、ホントに正しい? Windowsにまつわる都市伝説(23):ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(前編) - @IT
- Tech TIPS:SMBのマルチチャネル転送機能でファイルサーバーへのアクセス速度を向上させる - @IT
- ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(前編):その知識、ホントに正しい? Windowsにまつわる都市伝説(23) - @IT
- ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(後編):その知識、ホントに正しい? Windowsにまつわる都市伝説(24) - @IT
- Linuxはサンバ(Samba)で踊る――WindowsとLinuxのファイル共有のいま:その知識、ホントに正しい? Windowsにまつわる都市伝説(25) - @IT
- SMBに乗り換えたMac――WindowsとMacのファイル共有のいま(前編):その知識、ホントに正しい? Windowsにまつわる都市伝説(26) - @IT
- SMBに乗り換えたMac――WindowsとMacのファイル共有のいま(後編):その知識、ホントに正しい? Windowsにまつわる都市伝説(27) - @IT
- 再チェック! ファイル共有プロトコル「SMB」のためのセキュリティ対策:山市良のうぃんどうず日記(83) - @IT
- ランサムウェア「Wanna Cryptor」に対し、異例のセキュリティパッチをWindows XPに提供する意味:山市良のうぃんどうず日記(94:緊急特別編) - @IT
- ランサムウェア「WannaCry」対策で安心してはいけない――いま一度、見直すべきWindowsの脆弱性対策:山市良のうぃんどうず日記(95:特別編) - @IT
- Windows 10におけるレガシーSMBプロトコルに関する重要な変更とSMB v3新機能まとめ:企業ユーザーに贈るWindows 10への乗り換え案内(93) - @IT
Twitter
- Kengo Sawatsuさんのツイート: "朗報(悲報):3年間ずっと間違って評価してたaio_readを正しく実装してみたら、SMB越しのreadの性能が適当な環境ですら20%以上伸びる"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイルサーバ(種別不明)にコピーしたら、途中でエラー123(ファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくありません)が出たという話。 ファイルサーバがUNIX系でも / 以外は禁止文字が無いはずで、コピーの途中で出るパターンって、何かあったかな…?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "手元で試すと、sambaでファイル名長(パス要素長)がファイルシステム上限を超える時にエラー123となるようだ。 (UNIX系は255バイト上限が多いため。NTFSはUNICODEで255文字まで作れる)"
- uchanさんはTwitterを使っています 「ls -lで表示される末尾の+は拡張属性というもので,getfacl <file>コマンドでチェックできるようだ。」 / Twitter
- uchanさんはTwitterを使っています 「smb.confの[global]セクションに nt acl support = no を加えたら解決した。 どうやら,Windows側でファイルを保存するとACLが付与されて,それがLinux側では拡張ACLという形でファイルに付与され,グループの実行権として見えてたみたい。」 / Twitter
- uchanさんはTwitterを使っています 「さらに検証したら nt acl support = no だけだと不十分で, map archive = no をさらに付ける必要がありそう。」 / Twitter
- FadisさんはTwitterを使っています 「LinuxカーネルにSMBでFSをエクスポートするカーネル空間ファイル共有サーバCIFSDが入りたがっているらしい。Linuxカーネルには従来からSMBなリモートFSをマウントするドライバが備わっていたが、これは逆にSMBでFSを提供する方。SMB3を喋り、RDMAにも対応するらしい https://t.co/hLe1uSnmrq」 / Twitter
- CIFSD In-Kernel SMB3 File-Sharing Server Lands In Linux-Next - Phoronix
- FadisさんはTwitterを使っています 「ネットワーク越しのファイルシステムが難しいやつ、「大抵のソフトウェアはストレージまでの回線が簡単に切れることなんて想定していない」のが原因の7割くらいで、「大抵のソフトウェアはファイルシステムの実装が多様な事なんて想定していない」のが原因の3割くらい、という印象がある」 / Twitter
- K.Namba/(お菓子|おやつ)エバンジェリストさんはTwitterを使っています 「@fadis_ 「大抵のソフトウェアはインターネットまでの回線が簡単に切れることなんて想定していない」 近年はこれ…」 / Twitter
- FadisさんはTwitterを使っています 「@ipv6labs インターネット接続を失うと何も表示出来なくなるありがちなApp…」 / Twitter
- K.Namba/(お菓子|おやつ)エバンジェリストさんはTwitterを使っています 「@fadis_ ローカルキャッシュという概念すらない。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「sambaは副次ストリーム使えるのだけど微妙にNTFSと互換性なくて(実体を別ファイルに保存)、ストリーム用ハンドルでタイムスタンプ設定しても、元ファイルのそれが変わらない罠。」 / Twitter
- FadisさんはTwitterを使っています 「KSMBDがバニラカーネルにマージされたらしい。linux-5.15から使えるようになる。KSMBDはWindowsのファイル共有プロトコルSMB3のサーバ側をLinuxカーネル内に実装したもので、ユーザ空間のSambaを使う方法より性能面で有利とされている https://t.co/0GQG5MA4DS」 / Twitter
- KSMBD As An In-Kernel SMB3 File Server Merged For Linux 5.15 - Phoronix
- FadisさんはTwitterを使っています 「linux-5.15からバニラカーネル入りしたカーネル空間SMBサーバKSMBDに驚きの速さで深刻な脆弱性が報告された話。パスに含まれる..が受け付けられていてSMBで共有されているディレクトリの外のファイルまで全て公開してしまう。修正ではパスに含まれる..が潰されるようになる https://t.co/nayQkHVAGN」 / Twitter
- That Didn't Take Long: KSMBD In-Kernel File Server Already Needs Important Security Fix - Phoronix
- FadisさんはTwitterを使っています 「この修正、パスの要素に..が入っていたら問答無用でEINVALするようになってるけど、MS-SMBとMS-CIFSとMS-FSCCを見る限りSMBのパスで..を使う事それ自体は禁止されていないから、\hoge\..\fugaは\fugaと解釈されなければならないんじゃなかろうか…」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Windows Server IISで、(不正UTF-8エンコードされた)../ を混ぜるパストラバーサル脆弱性は2001年の話だった。 https://t.co/PeuUTvQkSV (この頃から Win32 MultiByteToWideChar API も不正UTF-8エンコードをキチンと弾くように改善された)」 / Twitter
- CWE-22
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「爆速?と思ったら、脆弱性報告が速い話だった。 それにしても、パス・トラバーサル脆弱性は何十年も前からの定番ではある。 (昔、UTF-8が厳格でなかった頃、2byte以上で . や / をエンコードして突破、というのもあった。IIS だったかな) https://t.co/HI4wU3CnHh」 / Twitter
- IISのフォルダ侵入およびファイル要求解析の脆弱性
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「samba 4.13.5-Debian でストリーム保存path指定すると、ストリーム付きファイルを作成できても、削除できなくなる罠。 (wide links 等を指定しても、"check_reduced_name: Bad access attempt: . is a symlink outside the share path" というエラーログが出る)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(Windows側からは「アクセス権限が無い」というエラーなので分かり辛い…最初、意図しないACL設定?とか思ってしまった)」 / Twitter
- MIT Kerberos V5-1.16
- 日本Sambaユーザ会 - Microsoft の CIFS 仕様ライセンスで、Samba Team が声明
- SMBとは|Server Message Block - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- Server Message Block - Wikipedia
- Mac のファイル共有で接続する方法 - Apple サポート
- クラスター共有ボリューム (CSV) を利用する環境での SMB Multichannel 設定の考慮事項 | Ask CORE
- 「Samba 4.6」リリース | OSDN Magazine
- 「Samba 4.10」リリース、PythonバインディングでPython 3をフルサポート | OSDN Magazine
- VFSインターフェイスを一新した「Samba 4.15」が公開 | OSDN Magazine
- 2017年9月4日 Linux 4.13がリリース,SMB 3.0がデフォルトCIFSに:Linux Daily Topics|gihyo.jp … 技術評論社
- マイクロソフトが「SMB over QUIC」ファイル共有プロトコル実装中。VPNなしでもインターネット上で安全にファイルサーバへのアクセスを実現へ - Publickey
- Windows Server 2022正式版がひっそりとリリース。セキュアコアサーバ搭載、SMB over QUICでVPN不要のファイルアクセスなど - Publickey
- 山市良のえぬなんとかわーるど: SMB over QUIC
NFS
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NFSv3(v4は良く知らん)では writeは概ね 32KB以下の pwrite(2) 的な操作にバラされるとかは、もっと知られていいかも。 (write が atomic にならない、O_APPENDが上書きになる場合も)」 / Twitter
- Kazuo MoriwakaさんはTwitterを使っています 「NFS怪談はだいたい普通に保証されていない話ばっかりで「ユーザーがlocal fsと同じだと思っていたのである」オチが多すぎてアレ……」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「O_APPEND について言うと、NFSv3だと、そもそも openという操作が無い。 (lookup操作でI/O対象のinode番号をfile-handleとして教えてもらうイメージ。file-handleにはopenのようなモードとかステートとかない。サーバ再起動しても使えるし、別ホストからでも使える(特殊な事してなければ))」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「これがNFSの欠陥に見える人もいるだろうけど、 これはサーバー側をstatelessにすることによって可用性を向上させるための意図的な設計なんだよね(サーバーがリブートしても、クライアントがリトライするだけで動作は正常に継続する)。 「それは仕様です」の一種で、ポジティブな側面もあるっていう。」 / Twitter
- fjのYog教祖様さんはTwitterを使っています 「@n_soda NFSv4ではopen/closeを導入したので、statefulでアクセスしたい人はとっととNFSv2/v3を使うの止めてください、と言う… (何故か「NFSv3で…」が止まらないの、どうして??)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@fjs_kyousosama NetBSD的な答は、NFSv4が未実装だから…だったり…>「NFSv3で…」 ^^;」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「あと、商用NFSv3サーバをほぼ一人で作った経験から言えば、NFSv3がステートレスなのにプロトコル以上にUNIXセマンティクスに近い振る舞いをする部分があるのは、実装側で近づける配慮してるからだったりする。」 / Twitter
IP
IPv10
- draft-omar-ipv10-06 - Internet Protocol version 10 (IPv10) Specification
IPv6
NAT66
- TECHNICAL MANUAL - NAT66/NAT6
- 情報セキュリティ技術動向調査(2010 年上期):IPA 独立行政法人 情報処理推進機構
- NGNを介したIPv6インターネット接続 - トンネル方式入門(後編):ITpro
- www.geekpage.jp/blog/data/2009/ipv6ops0904/2.txt
- SEIL でNGN IPv6 ネイティブ(IPoE) ひかり電話なし接続をするには : やすひでぶろぐ
Geekなぺーじ
- RFC系統図で見るIPv6の変化:Geekなぺーじ
- ややこしいIPv6アドレス自動設定の話:Geekなぺーじ
- IPv4アドレスを含むIPv6アドレス表記:Geekなぺーじ
- 日本国内携帯3社、2017年度中にIPv6導入:Geekなぺーじ
- RFC 8106によってRFC 6106が廃止に:Geekなぺーじ
- IPv6でセキュリティがスカスカになってませんか?:Geekなぺーじ
- IPv6基本仕様のRFC 2460が廃止:Geekなぺーじ
- IPv6関連RFCの上書き(廃止)まとめ:Geekなぺーじ
- IPv6アドレスのテキスト表記 - RFC 4291とRFC 5952:Geekなぺーじ
- ネットワークエンジニアではない方々向けIPv6勉強会を開催しました:Geekなぺーじ
- ネットワークエンジニアではない方々向けのIPv6入門 // Speaker Deck
- ネットワーク技術者ではない方々向けIPv6セミナー2の発表資料:Geekなぺーじ
- IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
- Geekなぺーじ ネットワーク技術者ではない方々向けIPv6セミナー2
- IPv6本を書きながらネットワークエンジニアではない方々向けのIPv6勉強会をやって思った、IPv4とIPv6の大きな違い:Geekなぺーじ
- DHCPv6の基本仕様が改定 - RFC 8415:Geekなぺーじ
- IPv6アドレスのテキスト表記に名前がついてない:Geekなぺーじ
- IPv6アドレスのテキスト表記の解説動画を作りました:Geekなぺーじ
- NAT64とDNS64の解説動画を作りました:Geekなぺーじ
- 動画「IPv6の勘所」を作りました:Geekなぺーじ
- IPv6基本仕様概要の解説動画を作りました:Geekなぺーじ
- 「IPv6はIPsecで暗号化されるので安全」という誤解:Geekなぺーじ
- リンクローカルユニキャストIPv6アドレス:Geekなぺーじ
- IPv6マルチキャストのスコープとゾーン:Geekなぺーじ
- ULA(Unique Local IPv6 Unicast Address):Geekなぺーじ
- IPv6とIPv4の違い:Geekなぺーじ
- インターネットプロトコルにおけるパケットサイズに関して:Geekなぺーじ
- IPv6 IPoEとIPv6 PPPoEの解説動画を作りました:Geekなぺーじ
- DS-Liteの仕組み:Geekなぺーじ
- IPv6がIPv4よりも速い理由:Geekなぺーじ
- IPv6アドレスにおける「インターフェース識別子」という名称の謎とModified EUI-64によるIPv6アドレス生成:Geekなぺーじ
- 小川晃通(あきみち)YouTubeでIPv6解説動画作ってますさんはTwitterを使っています 「NTTフレッツでのIPv6 IPoEに関して「IPoE方式」と記述されることがあるけど、「方式」の2文字が非常に大事。NTT NGNでのIPv6 IPoEに関して単に「IPoE」と表現すると徐々に話がおかしくなる。」 / Twitter
@fadis_
- Fadisさんのツイート: "RFC8135 浮動小数点数および複素数を含むIPv6アドレス https://t.co/mhbr8EKKwW"
- Fadisさんのツイート: "Complex Addressing in IPv6、ネットワークの文脈でComplex Addressingといった場合普通はルータが頭を抱える「複雑なアドレス」の事なわけだけど、Complexには複素数って意味もあるから「複素数なアドレス」について考えてみた、と"
- https://tools.ietf.org/rfc/rfc8135.txt
- Fadisさんのツイート: "浮動小数点数アドレス、「従来のIPアドレスは整数で表現されていたが移動体通信が増えている中小数点の位置が固定のままで良いのかは議論の余地がある」とか「rootアドレスはクライアントの浮動小数点数演算器で計算することができる」とか言ってて腹筋の危機"
- Fadisさんのツイート: "RFC8136 IPv4からIPv6への移行を促すために、IPv4で「悪意ある通信が自分に悪意がある事を通信相手に明示して適切に蹴ってもらう」為のフラグevil bitをIPv6でも使えるようにする話 https://t.co/UTlNhsxSws"
- https://tools.ietf.org/rfc/rfc8136.txt
- Fadisさんのツイート: "ジャンボグラム: IPv6の拡張ヘッダでIPv6のヘッダに元々含まれている16bitのデータ長で表現できない巨大なパケットを表現する為に用いられる。この拡張によってIPv6は最大4GiBのUDPデータグラムを投げつける事ができる https://t.co/ujb5sGy0c8"
- https://tools.ietf.org/rfc/rfc2675.txt
- FadisさんはTwitterを使っています 「IPv4のヘッダにあったチェックサムはIPv6では廃止されている。ヘッダにはパケットを中継する機器で書き変わるTTLのカウンタが含まれているため、IPv4チェックサムは中継する機器全てで計算し直す必要があり、そのコストが深刻な問題になっていた為だった」 / Twitter
- FadisさんはTwitterを使っています 「そうはいってもヘッダが化けた状態でパケットがネットワークを徘徊すると困るので、IPヘッダチェックサムに相当する機能をTCPやUDPの疑似ヘッダを含むチェックサムに求めることになった。結果、IPv4では任意だったUDPのチェックサムは、初期のIPv6では必須になった」 / Twitter
- FadisさんはTwitterを使っています 「この結果「データが化けていても届いたほうが良い」用途でUDPを使っている場合IPv6に載せられないという困った問題が生じた。このためIPv6上のUDPはチェックサムの無効にしても良いと言う変更が後から加えられた」 / Twitter
- FadisさんはTwitterを使っています 「後から仕様を変えられてもインターネット上のあらゆる機器が即座に追従できるわけが無いので、IPv6かつチェックサムなしUDPは「運が良ければ届く。試しに飛ばしてみて届いたら使え。」という微妙な位置づけになってしまった」 / Twitter
- FadisさんはTwitterを使っています 「IPv6ではRAでPrefixをホストに伝える事が出来る。RAを受け取ったホストは通常インターフェイスにアドレスを設定しrouteを追加する。L2VPNを張っているとRAは遠隔地まですっ飛んでいくため、フィルタを忘れると遠隔地から手元のネットワークに向かうIPv6の通信が突然VPNを通ろうとするようになる」 / Twitter
- FadisさんはTwitterを使っています 「この時L2VPNがIPv6で相手を指していると、遠隔地のホストはVPNのパケットをVPNに流そうとして詰む。手元からは突然遠隔地のホストが沈黙したように見える。この場合手元から遠隔地への通信はレスポンスが全て消えるのでできない。他のネットワークを経由してsshし、RAを切ってrouteを直す」 / Twitter
- FadisさんはTwitterを使っています 「このトラブルを未然に防ぐにはL2VPNを上げるのと一緒にip6tablesでtapからのRAを蹴っておくのが良い。そもそも手元からRAをtapに向かって投げないルールも足しておいたほうが良いかもしれない」 / Twitter
@uchujin17
- ウチューじん・ささきさんのツイート: "IPv6の拡張ヘッダは固定長フィールドではなく可変長TLVパケットの数珠つなぎになっていて柔軟性が誇られていたけど、RFCが出るたびにその並び順についての文言がどんどん追加され、「MUST rejectのオプションを受け付けた」という理由でFailが出て、そのためだけのチェックを追加して…"
- ウチューじん・ささきさんのツイート: "IPv6近隣探索(MACアドレス解決、IPv4で言うとこのARP)も「ARPみたいな継ぎ足しじゃなくIP仕様内に取り込んだ」「ブロードキャストではなくマルチキャストにして効率化した」「タイミングやステート状態が明文化された」ことが誇られていたけれど…"
- ウチューじん・ささきさんのツイート: "これまたRFCが改訂されるたび「Queryを発信する前にSolicited Advertiseを受信したらUnsolicitedで発信してはならない」みたいなクソくだらない文言が追加されて、数分に1度発信される(かもしれない)冗長なマルチキャストを1つ減らすためだけのフラグやifが増えて。"
- ウチューじん・ささきさんのツイート: "究極はRFC3484「Default Address Selection」、インターフェースに複数のアドレスを付けられるIPv6において発信先・発信元のアドレスを選択するための条件を定義した仕様書だけど、これが「アホかー!アホかアホかアホかアホかアホかーっ!」という考えすぎの産物。"
- ウチューじん・ささきさんのツイート: "RFC3484をくっそまじめに実装したらループが3つとifが15個くらい並んだんだっけ。アドレスを選ぶため「だけ」に。IPv6ならアドレス1つで世界中と通信できます、って言ったのはどこのどいつだ?"
- ウチューじん・ささきさんのツイート: "RFC3484はRFC6724にアップデートしているらしいけど、もうRFCなんて読む義務もないし読みたくもねぇ。"
- Finite-tweet machineさんのツイート: "ルータがRDNSS(RAでのDNSサーバ情報配布)に対応していない中、AndroidはDHCPv6に対応してないので困ったねという話など。へー / IPv6-only at Microsoft | APNIC Blog https://t.co/9fJbzfVtaD"
- IPv6-only at Microsoft | APNIC Blog
- IPv6 RFC 改版の提案はなぜ議論紛糾したのか? // Speaker Deck
- IPv6 の arp -a
- Windows管理者のためのIPv6入門:第3回 L2アドレスを解決する近隣探索プロトコル (2/2) - @IT
- 第2の個体識別番号にならないか心配 (#3123556) | スマートフォンのインターネット接続、来年夏ごろにIPv6がデフォルトに? | スラド
- 近隣探索プロトコル - Wikipedia
- Neighbor Discovery Protocol - Wikipedia
- T28-1.pdf
- IPv6のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- IPv6 only ネットワーク を作ってみる
- Yoshinobu Matsuzakiさんのツイート: "IPv6アドレスの傾向を調べる調査。使われたIPv6アドレスを35億ぐらい集めてエントロピーを調査。サーバは手動設定、ルータはEUI-64、クライアントは匿名アドレスの利用が多そうと。特定スマートフォンで変な実装がありそうとか面白い https://t.co/JW8XbsFYFI"
- 57-RIPE74-Foremski-EntropyIP.pdf
- Kentaro Ebisawaさんのツイート: "SRv6実装、Ciscoが(1部)スポンサーしてるのね。流石。 SOSR2017: IPv6 Segment Routing to the End Host: A Linux Kernel Implementation PDF: https://t.co/AgQVq6lUFQ"
- Kentaro Ebisawaさんのツイート: "IETF I-D “SRv6 Network Programming” 実装。Vargant/VirtualBoxで試せるらしい。 https://t.co/9L32qVfWJa"
- Kentaro Ebisawaさんのツイート: "SRv6 Linux 実装、Kernel 4.10 に入った "IP Networking Lab (Belgium)" と Kernel Module の "Networking Group (Rome)" の機能比較表を発見。 https://t.co/MaJgelavJ5"
- 【IETFトピックス2016-17】 20歳を超えたIPv6の現状、修正版RFCで廃止/アップデートされる仕様も - INTERNET Watch
- IPv6への移行完了は2067年4月か、月0.15%の割合で増加 | マイナビニュース
- AndroidのDHCPv6実装の議論状況とRFC7934 (Host Address Availability Recommendations) - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Web会議ASPやってた頃、映像/音声udpパケットが通らないトラブルの度にサイズを小さくして、10数年で概ねどんなトンネルでも大丈夫となったのが1300バイト前後だった記憶。 なので、1280は経験値としても絶妙な値だった気がする。」 / Twitter
- Yasuhiro MorishitaさんはTwitterを使っています 「つまり、 ・IPv6の1280は、IPv4の576 = 512 + 64を見て、1024 + 256として提案された。 ・1280にすることで、1500のEthernet MTUの中に、カプセル化やトンネルヘッダー用の十分なスペースを確保できる。 ということですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「インターネットのMTUについてはGoogleがQUIC開発時に調べた値が公開されてますね。1350未満に絞る必要ないという感じ source: https://t.co/WYjvxSOzll https://t.co/OHEjF50U2f」 / Twitter
- (PDF) The QUIC Transport Protocol: Design and Internet-Scale Deployment
- Kazuho OkuさんはTwitterを使っています 「面白い。ただ僕の理解が正しければipv6はルータでのフラグメンテーションしないので、DNSみたいなパケット境界=メッセージ境界なプロトコルじゃない限り困らないけど(そして困る人がいないから直らないんだと思う)」 / Twitter
- 古い記事を読んでいるmatsuuさんはTwitterを使っています 「IPv6フラグメンテーションによるパケットドロップについて。日本は赤い=10%以上のドロップ率。まじか。 / “ISP Column - April 2021” https://t.co/kWa54PHRMb」 / Twitter
- ISP Column - April 2021
- Kazuho OkuさんはTwitterを使っています 「フラグメンテーションが必要になるなら送信者がパケット分割して欠落部を再送するようなプロトコルを使え、というのがipv6の思想だけど、udp over ipv4で巨大データグラムをフラグメント化して投げてたユースケースの互換性確保のため(だけ)にある仕組みなんじゃないのかな知らないけど」 / Twitter
IPv4
- IAB、IPv4を前提とした標準化を行わないことを求める声明を発表:Geekなぺーじ
- LACNIC、IPv4枯渇の最終フェーズと発表 | マイナビニュース
- GOROman@謙虚さんのツイート: "IPアドレス は0は省略できる 127.0.0.1は 127.1 192.168.0.1 は 192.168.1 https://t.co/jSdjF02boo"
- ゆたかさん🐱さんのツイート: "# arping -c 1 -D IPアドレス でIPv4アドレスのコンフリクトチェックができます。 競合するアドレスが存在しない場合は、$?がゼロになります。 BusyBoxにも入っているので、組み込みLinuxでも利用できるのでおすすめです。 https://t.co/sR92x6H6pL"
- https://tools.ietf.org/rfc/rfc6864.txt
- 【IETFトピックス2016-17】 IPv4をどのように終わらせるか――IPv6普及拡大の前に片づけなければならない課題 - INTERNET Watch
- 奇妙なIPv4アドレス表記:Geekなぺーじ
- 0.0.0.0にはアクセスしないこと - Qiita
- 127.0.0.1とlocalhostと0.0.0.0の違い - Qiita
- IPv4アドレス「0.0.0.0」の意味は? | マイナビニュース
- ASCII.jp:「特別なIPアドレス」を正しくわかっているのは誰?
- 平田豊ひらたゆたか🐬さんのツイート: "pingコマンドとglibcの実装調べてみたけど、getaddrinfo関数が内部でinet_aton関数を呼んでいて、当該関数の仕様として、 a.b.c.d a.b.c a.b a の4形式を受理するようになっていました。 今回のケースは最後の「a」に相当します。 https://t.co/2lovAH99ZG"
- APIPA - Wikipedia
- lionsoul/ip2region - Git@OSC - OSChina.Net
- lionsoul2014/ip2region: 准确率99.9%的ip地址定位库,0.0x毫秒级查询,数据库文件大小只有1.5M,提供了java,php,c,python,nodejs,golang查询绑定和Binary,B树,内存三种查询算法,妈妈再也不用担心我的ip地址定位!
- Happy Eyeballs Version 2 の仕様 - ASnoKaze blog
- IANA — Number Resources
- 192.168.0.1などのプライベートIPアドレスは途中で作られた:Geekなぺーじ
- 僕の💩自作OS💩が研究室のネットワークを破壊するわけがない - livaの雑記帳
- Happy Eyeballs Version 2 (RFC 8305):Geekなぺーじ
- Fadisさんのツイート: "WireGuardはパケットの送信時にパケット長が16の倍数になるようにパディングをしてから暗号化を行う。受信側では復号後パディングを取り除く為に元のパケット長が必要だがWireGuardのヘッダにはその情報は書かれない。論文によると「暗号化するパケットのUDPヘッダに本来の長さが書いてあるから不要」"
- Fadisさんのツイート: "IPv4ヘッダとIPv6ヘッダとIPXのデータグラム長はいずれも先頭から2バイト目に2バイトで置かれているからプロトコルを判別しなくてもパケット長は取れる、という知見を得た"
- Fadisさんのツイート: "オンラインゲームでUDPを使う一番のモチベーションは「再送制御にコンテンツを把握しているレイヤーが口を出したい」って所なんだ。例えば「Aさんが1歩右に歩いた」という通知が3連続で届かなかった場合、それらを個別に再送するんじゃなくて、「Aさんが3歩右に歩いた」にまとめて再送したい"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "未だに、RealTek NIC のUDPチェックサム・オフロードのバグを踏む事例が出るとは。 https://t.co/7tT9MO3ysD"
- 相手との接続ができているのに送信キューに溜まる - Google グループ
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、このための hack を入れておいたはず(=後ろに64バイトの余分な0x0を付与)だが…と確認してみると、v4.5以降同士のIPDict形式に限り、このhack化パケットは受け取らないコードになっていた。後で直しておこう。… https://t.co/RkcP17o5Ho"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ちなみに、この hack は最後のリトライで発動する形。 (最初から付与していては意味がないので)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UDP Checksum Offloadで問題を起こすのはRealTek NIC。 10数年前に見つけた話だが、未だに発症する環境があるのが何とも。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UDPフラグメントかつ、最終フラグメントのペイロードが15バイト以下(だったか63だったか)の場合のみ、オフロードでのチェックサムが狂うという、確かに見つけにくいバグではある。"
- Kazuho OkuさんはTwitterを使っています: 「recvmsg で destination address を取るには IP_PKTINFO もしくは IPV6_RECVPKTINFO を使う、と。linux 以外だとどうやるのかな」 / Twitter
lwIP
- lwIP - A Lightweight TCP/IP stack - 概要 [Savannah]
- lwIP - Wikipedia, the free encyclopedia
- IPv6 - lwIP Wiki
- LwIP IPv4/IPv6 stacks - lwIP Wiki
- lwIP 1.3.0
- JVNVU#98989920: uIP と lwIP の DNS リゾルバにキャッシュポイズニングの脆弱性
- lwip.git - Unnamed repository; edit this file 'description' to name the repository.
- lwIP - Wikipedia
- Raw/TCP - lwIP Wiki - Wikia
- BitVisorのlwIPを使ってシリアルポートに書き込まれたデータをTCP/IPで送信する - Qiita
TCP
その他
- Linuxカーネルの「TCP_TIMEWAIT_LEN」変更は無意味? の件について : 革命の日々 その2
- Programming TCP for responsiveness
- TCPのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- ns3でTCPの輻輳制御を観察する - Qiita
- 人生の全てはTCP/IPに学んだ:Geekなぺーじ
- 相手がいないのに ESTABLISHED になってる TCP ポート - @tmtms のメモ
- saminiir's hacker blog
- saminiir/level-ip: A hacker's userspace TCP/IP stack
- tcprewrite
- robertdavidgraham/masscan: TCP port scanner, spews SYN packets asynchronously, scanning entire Internet in under 5 minutes.
- Linux kernel TCP 実装にサービス運用妨害 (DoS) の脆弱性(CVE-2018-5390) について解説 - Qiita
- Information on RFC 8548 » RFC Editor
- Information on RFC 8547 » RFC Editor
- 堅牢なTCPサーバを作るために - katsubushiの知見から/kamakura.go#5 - Speaker Deck
- 第1回 TCPの輻輳制御とは何か:基本から学ぶ。TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
- 第2回 輻輳制御アルゴリズムの3タイプ:基本から学ぶ。TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
- TCP Slow Startを改善する HyStart++について - ASnoKaze blog
- DSAS開発者の部屋:第一回 KLab Expert Camp「TCP/IPプロトコルスタック自作開発」を開催しました
- DSAS開発者の部屋:xv6にネットワーク機能を実装した
- WEBサーバのTCPコネクション数に上限はあるのか? - Qiita
- TCPとタイムアウトと私 - Cybozu Inside Out | サイボウズエンジニアのブログ
- ブラウザからTCP, UDPソケットを操作するRaw Sockets API - ASnoKaze blog
- TCPとTLSを連携させるTCPLS - ASnoKaze blog
TCP Pacing
パケットペーシング
- HTTPのためのTCPチューニング (Best Current Practice) - ASnoKaze blog
- 世界最速通信で考えるインターネットの将来 | 日経 xTECH(クロステック)
- OCNモバイルONEが始める「httpsのページング」とは何か
- PowerPoint Presentation
- 【予告】9/25より利用混雑時における通信速度改善に向け、新たな取り組みを始めます。 : LINE MOBILE 公式ブログ
- 通信の最適化によるお客さま影響について(ペーシング) | スタッフブログ | マイネ王
- CiNii 論文 - パケットペーシングによる全対全通信の最適化とシミュレーション評価
- 20120306-IPSJ74-PktPacing.pdf
- HPCS2011Shibamura.pdf
- 【LINEモバイル】利用混雑時における通信速度改善に向け、新たな取組を実施 | LINE Corporation | ニュース
- Shirouzu Hiroaki(白水啓章)さんのツイート: "linuxの一部のバージョンでは、tcp pacingがデフォルトで有効と。ちなみに Windows/winsockには無さそう。 https://t.co/k3LYxmE5jt"
- Is TCP PACING enabled by default on linux? - Unix & Linux Stack Exchange
- TCP pacing - Wikipedia
- paper.dvi
- FQ-pacing-results.pptx
- ieeexplore.ieee.org
- TCP Pacing [LWN.net]
- RT2001-066.doc
- ns0601-takano.pdf
Multipath TCP
log, アクセス制限
- Kazuho OkuさんはTwitterを使っています 「HTTP/3の場合「IPアドレスでアクセス制限したい場合、接続時のIPアドレスでやるのか、HTTPリクエスト受信時のIPアドレスでやるのか」みたいな形而上の問題があったり」 / Twitter
- ゆきさんはTwitterを使っています 「Multipath TCPで接続きた場合って、サーバログってどうしてるんだっけ。 サーバミドルウェア、複数IP各仕組みになってなる。。。?」 / Twitter
- Hirotaka NakajimaさんはTwitterを使っています 「@flano_yuki 最初のIPだけですね。。少なくとも昔の実装だと」 / Twitter
- ゆきさんはTwitterを使っています 「@nunnun ありがとうございます。ふむー、それでいいんだっけというモヤモヤがある。記録してない方のIPでログ照会要求きたら困りそう」 / Twitter
- Hirotaka NakajimaさんはTwitterを使っています 「@flano_yuki そうなんですよね。 そもそも従来のセッションログの仕組だとIPがA->B->Cって変わるのを記録することはできないのでフローログとか別のなにかを準備する必要がありますね。。。」 / Twitter
- Yoshifumi NishidaさんはTwitterを使っています 「@nunnun @flano_yuki 設計の初期の頃、最初のコネクションはセッション全体の終了まで保持しなければならない、というルールを作れば、最初のコネクションを見ることで少なくともそのセッションがアクティブかどうかが判別できるという議論があったんですが、これをやると使い勝手が悪くなるんで結局採用しなかったです。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「データの1バイトだけをとってみても、再送時にIPアドレスがかわるとかありうるから、リクエスト単位で特定のIPアドレスに紐づくなんて、実際には幻想だし、接続時で十分という理解」 / Twitter
- 本の虫: Multipath TCPについて
- 本の虫: MultiPath TCPのLinuxカーネル実装
- Kentaro Ebisawaさんのツイート: "iOS11でMultiPath TCP(MPTCP)が本格サポートされるとのこと。WiFiと4G/5Gの共有・切り替えなどが本格化した時に通信キャリアとその中のネットワーク機材に必要とされる(必要とされない)機能ってなんだろう。 https://t.co/Qk4uYjrNt2"
- Michio Hondaさんのツイート: "@ebiken @n_kane この辺にmiddleboxの具体的な挙動に対してMPTCPがどう設計されているか書いてあります!https://t.co/xeKPpsGyol"
- Kentaro Ebisawaさんのツイート: "両端のnodeだけで通信が完結することは無く、常にミドルBOXがある前提で考えねばならぬ。逆に言うと、MPTCPが最も効果的なモバイル環境のVNFやスイッチ・ルーター等ミドルBOXは、TCP拡張がある前提で設計&実装する必要がある。 https://t.co/bhFbq5Pl4C"
- Kentaro Ebisawaさんのツイート: "MPTCPをペイロード又はTCP Optionに載せるか。ACKの受け取り方。シーケンス番号はSub Flow単位かTCP Sessionの番号を共有すべき... 今時(5年前だけど)のミドルBOX実装を考慮した考察があって楽しい。 https://t.co/bhFbq5Pl4C"
- nsdi12-final125.pdf
- iOS 11でMultiPath TCPを使う - ASnoKaze blog
- RFC 6824 - TCP Extensions for Multipath Operation with Multiple Addresses
- RFC 6181 - Threat Analysis for TCP Extensions for Multi-path Operation with Multiple Addresses
- Multipath TCP(MPTCP) – ビットログ
- Multipath TCP - Wikipedia
- まさみさんは語りたいさんのツイート: "mptcp、生きていた!よかった・・・。… "
- Hajime Tazakiさんのツイート: "Linux ではなんとか生き残ってる感じですね。。… "
- ゆきさんのツイート: "TCP Extensions for Multipath Operation with Multiple Addresses https://t.co/26oHTNrSkK マルチパスTCPのv1がLast Call中だけど、v0 (RFC6824)と互換性ないんだなー。デプロイが進むと良いなー。"
- draft-ietf-mptcp-rfc6824bis-13 - TCP Extensions for Multipath Operation with Multiple Addresses
- JPNIC News & Views vol.1717【臨時号】第105回IETF報告 [第4弾] トランスポートエリア関連報告 - JPNIC
- 2020年8月21日 Red Hat,マルチパスTCPをRHEL 8.3のテックプレビューとして実装へ:Linux Daily Topics|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「RedHatがLinux 5.6に入ったMPTCPをRHEL8にバックポートしている。MPTCP(RFC6824)は1つのsocketのopenに対して複数の経路でTCPのコネクションを作り、生きているコネクション全てで通信する事で、帯域の向上、冗長化、WiFiとモバイル通信のスムーズな切り替え等を実現する https://t.co/ONMtfU69ou」 / Twitter
- Red Hat Bringing Multipath TCP To RHEL 8.3 As A Tech Preview - Phoronix
- FadisさんはTwitterを使っています 「MPTCP、最初の3way handshakeで以降コネクションを追加するために使う鍵をそのまま流してるから、経路上に居る悪意ある第三者は勝手にコネクションを追加できるように見えるんだけど、まぁこれが見えるところに居るホストはそもそも従来のTCPでも勝手にパケットを挿入できるじゃろ?って事なのかな」 / Twitter
- Ryou Ezoe(江添 亮)さんはTwitterを使っています 「@fadis_ それはアプリケーション層でやれということでは。」 / Twitter
- FadisさんはTwitterを使っています 「diffie-hellmanくらいすればいいのに」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@fadis_ ふつうのTCPでもシーケンス番号がわかればコネクション乗っ取りできるわけで。 そういうのは上の層でやれってことなんでしょうね。」 / Twitter
- Linux 5.6 から Multipath TCPが使える - ASnoKaze blog
- 貧弱なインターネット回線をたくさん束ねて強くできる「OpenMPTCProuter」レビュー - GIGAZINE
TCP Fast Open
Twitter
@rockridge07
- Rockridgeさんのツイート: "Microsoft Edgeの開発版がTCP Fast Openをサポート。既に接続を確立したことがあるIPアドレスのホストに対し3 Way Handshakeを簡略化できる。デフォルト無効。参照:… https://t.co/CfGCdbLpNA"
- Rockridgeさんのツイート: "Fx55:TCP Fast Openをサポート。 / “1188435 - Support TCP fastopen” https://t.co/46NKFeE3i1"
- Rockridgeさんのツイート: "Fx57:HTTPS接続の場合を対象に、TCP Fast Openがデフォルト有効化。 / “show_bug.cgi?id=1394818” https://t.co/ZnkWMjJRPv"
- Rockridgeさんのツイート: "Fx59:Windows版でTCP Fast Open(TFO)が使える環境をWindows 10 Fall Creators Update以降に限定した。TFOが安定して動作するよう、もともとWindows 10限定だったのを、… https://t.co/hHplpuVnGg"
- Rockridgeさんのツイート: "Firefox 59/60のリリース版ではTCP Fast Open(TFO)が初期設定で無効化されている。 / “1431738 - Disable TFO on release for now” https://t.co/eg7vGQq9sF"
- Rockridgeさんのツイート: "Fx65:NightlyチャンネルでもTCP Fast Open(TFO)が無効化。エラー率が高いらしい。 / “1503573 - Disable TFO” https://t.co/EJg6gwWg3F"
@fadis_
- Fadisさんのツイート: "Googleさんの、HTTPで3wayハンドシェイクしてたら時間がかかりすぎるからTCPを拡張して3wayハンドシェイクを省略できるようにしたTCP fast openを実際に運用してみたら、そんな拡張知らないファイアウォールや侵入検知がパケットを蹴り始めたから俺はUDPにHTTPを乗せる事にしたぜ、って流れ実に激しい"
- Fadisさんのツイート: "普通すでに広く普及しているTCPを置き換えるぞ!なんて言ってもそうそう実現するものではないんだけど、GoogleのサーバとChromeが対応するとWebのトラフィックのそれなりの割合が新しいプロトコルで通信するようになるの、Googleつよい"
- Fadisさんのツイート: "で、そんなGoogleのQUICさん元に標準化されたQUICを作る作業がIETFで進んでいる、と https://t.co/IFv33tf1ky"
- quicwg/base-drafts: Internet-Drafts that make up the base QUIC specification
- Fadisさんのツイート: "QUICではTCPヘッダにあった殆どの情報は暗号化されたペイロードの中に突っ込まれていて、鍵を持っていない経路上のホストが読めるのはUDPヘッダとどの鍵で復号できるかを指事するコネクションIDと、バラバラに届いたパケットをどの順で復号すれば良いかを表すパケットナンバーだけ、と"
- Fadisさんのツイート: "ルータはUDPの通信がいつ終わったのか知ることができない為、NAPTが通信の途中でポートの割り当てを変える可能性があるが、QUICは何処から飛んできたパケットでも正しい鍵で復号できる限り通信が続いているものとして処理される。副作用的に通信環境がころころ変わるモバイルデバイスも幸せになる、と"
@kazuho
- Kazuho OkuさんはTwitterを使っています: "tcp fastopen接続確立後にパケット通さなくなるとか、片方向だけ通すやつとかあるから、クライアント側でフォールバック処理実装したほうがいいとか。そういうネットワークは0.1%以下らしいけど #ietf94j"
- Kazuho Okuさんのツイート: "最新のWindows Insider PreviewではEdge(HTTPS)でTFOデフォルトオンっていいな。TFOの時代が来そう"
- Kazuho Okuさんのツイート: "Windows 10 Anniversary Update で TCP RACK がデフォルトなのか! IW10にもなって、EdgeにTFOを試すオプションがついたとも"
@jovi0608
- Shigeki Ohtsuさんのツイート: "AppleのTCP Fast Open導入苦労話。ミドルボックやIDSが原因で80%ぐらいしかTFOが通らない。IDSがTFOハンドシェイク完了後にブロックするのは泣ける。 / “TFO.key” https://t.co/fdDyDs06H9"
- Shigeki Ohtsuさんのツイート: "ミドルボックスが知らないTCPオプションを削除するのは予想できるけど、SYN/ackのシーケンス番号までチェックしていてTFO Cookieが通るのに戻りでTFOがブロックされるのは辛いなぁ。"
- Shigeki Ohtsuさんのツイート: "おぉ! MicrosoftがTCP Fast Open/TLS False Start/TLS1.3のサポートを表明。TCP FOは既にEdge Previewに実装されているのか。 / “Building a faster a…” https://t.co/yLWx3f3Pue"
- Shigeki Ohtsuさんのツイート: "皮肉にも今日のアップデートでMS EdgeのTFOがdefault無効に変更されちゃいました。https://t.co/DXt5ymbAxg / “TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaz…” https://t.co/Rq4wJJgmBS"
- May 9, 2017—KB4016871 (OS Build 15063.296 and 15063.297) - Windows Help
- ゆきさんのツイート: "[chromium] Remove TCP FastOpen support. https://t.co/5hLiI60gdH"
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「RFC7413で規定されている TCP Fast Open は、まだ使うには時期尚早。Linuxカーネルではデフォルトで禁止されているし、特定の条件で相手ホストを「ブラックホール指定」するが、その条件がきちんと文書化されていない。 https://t.co/JKuBkcxgim」 / Twitter
- TCP Fast Open? Not so fast! | APNIC Blog
- TCP Fast Open - Wikipedia, the free encyclopedia
- RFC 7413 - TCP Fast Open
- TCP Fast Open を試してみる - nigakyのブログ
- TCP Fast Open – Webを速くするためにGoogleがやっていること Make the Web Faster 4 – | HTML5Experts.jp
- TCP Fast Open ‐ 通信用語の基礎知識
- TCP FAST OPENとは? | REDBOX Labo
- マイクロソフト、より高速な「TCP Fast Open」など採用へ、Windows 10の大型アップデートとWindows Server 2016で - Publickey
- MSのネットワーク高速化に向けた取り組み--「Windows 10」と「Windows Server 2016」で実現へ - (page 2) - ZDNet Japan
- TCP Fast Openの闇と、Kernelの緩和コミット - ASnoKaze’s diary
- Archive
- Enhanced Performance and Privacy for TLS over TCP Fast Open
- 2020年2月17日 IPFireがDNSリゾルバをエンハンス,TCP Fast OpenとTLS 1.3をサポート:Linux Daily Topics|gihyo.jp … 技術評論社
CUBIC
- "CUBIC: A new TCP-friendly high-speed TCP variant"を読んだ - ゆううきブログ
- SACSIS.TCP
- 03gun_04hen_02.pdf
- なまえだよさんのツイート: "iOS/AndroidのTCP輻輳制御アルゴリズムはロスベースのCUBICです。時間経過でウィンドウサイズが変動します。ロス率が上がったタイミングに巻き込まれてUDPのDNSパケットも捨てられると悲惨な感じです。 https://t.co/3oqt2RLtJA"
- Shigeki Ohtsuさんのツイート: "TCP Cubic が RFC8312 に。 / “RFC 8312 CUBIC for Fast Long-Distance Networks” https://t.co/l9IflDyZwR"
- Information on RFC 8312 » RFC Editor
- 第3回 CUBIC-TCPの登場:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
- Kazuho OkuさんはTwitterを使っています 「あーありそう "a HomePlug AV network built around XAVB2001 (or similar) adapters can buffer thousands of frames and potentially exhibit multi-second queuing delays when applications use common loss-based TCP algorithms such as NewReno and CUBIC." https://t.co/aADJJ30nKS」 / Twitter
- Interactions between TCP and Ethernet flow control over Netgear XAVB2001 HomePlug AV links - CAIA-TR-130121A.pdf
BBR
BBR
- Kazuho Okuさんのツイート: "BBTは他の輻輳制御アルゴリズムと公平に動作することを期待されてるので、この結果は、測定手法に問題がある(ボトルネックがモバイルキャリア内にない等)か、キャリアのシェイピングの動作による挙動か、BBRのバグ / https://t.co/LjcWzAk2DJ"
- モバイルインターネット環境の通信速度を TCP BBR が有効な ShadowsocksR で10倍速にする - 2nd life
- Kazuho Okuさんのツイート: "か、このVPNソフトが公平性無視してる"
- Kazuho Okuさんのツイート: "追試するなら、同一サーバからファイルダウンロードをBBRとCubicでやってみるといいと思いました"
- Kazuho Okuさんのツイート: "同一パケロスパターンで10倍速!ってのを一人がやりだすと、皆がそれを真似することになって、結果パケロスが増えてネットワークの利用効率が下がるから、輻輳制御アルゴリズム間の公平性重要という理解"
- (´,,•ω•,,`)JustinZhuさんのツイート: "確かにBBRによって効果があると思いますが、でもSSRによるパケットパタンの変化が本当の原因かなと思います。正しいといえば、SSRはVPNではない(安全性はそこまで保証できないから)、パケットパタンの変化と内容を難読化が着目された特化したトンネルです。公平性もこれによって崩れたかもしれません… https://t.co/qd6Xr8HXXR"
- Kazuho Okuさんのツイート: "例えば、vpnトンネルを10本のtcpに見せかけて構築し、それぞれのtcp接続において輻輳制御をする、というのはtcpに偽装するvpnとしては妥当な戦略だと思うけど(単一のtcp接続を使う場合は二重の輻輳制御が問題になる)、そのvpn上で一本のtcpをベンチマークすると、生のtcpに比べて10倍速になるよね"
- Kazuho Okuさんのツイート: "いや、このケースだとならないか"
- Kazuho Okuさんのツイート: "いや、vpn内のtcpの処理次第か"
- SODA Noriyukiさんのツイート: "空いてる時間帯ならともかく、元記事は「昼時の通信が集中する時間帯で五倍以上の通信速度が出た」って書いてるわけで、kazuhoさんが指摘してる通り、まず間違いなくデフォルトのTCPのパラメータに対して公平性を欠いてるよね。こういうものをみんなが使いだしたら破滅が待ってる。"
- #セコンさんのツイート: "こんな環境で再び測定してみたのですが、やはりBBR有効なSSRのみ速度が出るようで、SSRのソフトウェアがTCP公平性を崩しているため、この速度になっているのでしょうか。知識不足で判断できず…。 https://t.co/GV2VN4pvtN… "
- TCP BBR + ShadowsocksR + fast.com の速度を macOS + テザリング環境で測定 - Qiita
- #セコンさんのツイート: "kazuhoさんの指摘の通り、BBRアルゴリズムが高速化に寄与しているわけでは無く、BBR有効なSSRサーバへ接続していると、キャリアのトラフィックシェイピングの挙動が変わり、キャリアの意図と反して割り当てが増えTCP公平性に反した行為をしてしまっているように思えてきました。… https://t.co/UpXZRgSmoR"
- Yusuke MURAMATSUさんのツイート: "モバイルキャリアなら TCP Ack Clocking に類することやってるだろうから色々ありそう"
- Yoshifumi Nishidaさんのツイート: "BBRはlossにreactしないアルゴリズムなのでlossにreactするアルゴリズムと大きな差がでることも一応起こりえるという気はします。10倍以上というのはちょっと大き過ぎる気がするので、どこかに問題がありそうですが、条件さえ揃えば有り得なくはないという気もします。… https://t.co/7kzuMb6tuM"
- Kazuho Okuさんのツイート: "Cubicに比べてLTE回線での1MBダウンロードが44%高速化ってすごいな / “BBR Congestion Control: An Update” https://t.co/cKnkPo8sTI"
- Kazuho Okuさんのツイート: "従来の輻輳制御だとBDP超えてデータツッコミがちなので応答性が悪くなるってのは(僕が)忘れがちな論点だなぁ。そして、BBRだとつっこむデータ量がBDPの2倍まで減少すると。無線のモデル化をもっと進めればさらに減らせそうと。"
- Amazon Linux 2017.03で新しいTCP輻輳制御アルゴリズムBBRを試してみた | Developers.IO
- Google、TCPのスループットとレイテンシを改善する輻輳制御アルゴリズム「TCP BBR」をGoogle Cloudで利用開始 - Publickey
- Shigeki Ohtsuさんのツイート: "BBRによるYouTubeのスループットの改善幅が日本だけ突出して良くなってる。日本ではモバイル接続が主流でパケットロスの影響が強く輻輳制御改善の恩恵がそれだけ大きいということか。 / “Google Cloud Platfor…” https://t.co/yQLN8Ljfzg"
- draft-cardwell-iccrg-bbr-congestion-control-00 - BBR Congestion Control
- GoogleのTCP BBRでTCPを高速化しProxyもその恩恵にあずかる - Qiita
- Ryousei Takanoさんのツイート: "いろいろ懐かしい。TCP CUBICで決まりかなと思ったのですが、最近はGoogleがBBRってのを提案したりと局所的には盛り上がってそうです。… "
- 第4回 BBRの出現:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
- 第4回 BBRの出現:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
輻輳制御手法
- Kazuho OkuさんはTwitterを使っています 「インターネット輻輳制御の基本アルゴリズムですね」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「相手が自分より金持ちな場合は1円渡し、そうでない場合は1.2円渡すという微修正すると完全に安定することが判明。これはノーベル経済学賞級の発見だ!」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「AIMD制御は正確に言うと、毎回、持ち金のうち一定割合を差し出し、それを皆で分配する。分配ルールが「現在の持分比例」よりも公平なら、いずれ持分は均等になる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「インターネットのパケロスはランダムに発生するのではなく、複数のパケロスがまとまって観測される、という話。これ伝統的な輻輳制御手法の根本にある考え方だし試験に出ますよ / https://t.co/CtHe5SqQBH」 / Twitter
- Parsing QUIC logs and assessing packet losses | Christian Huitema
- Kazuho OkuさんはTwitterを使っています 「だからネットワークシミュレータで、パケットロスn%、みたいな設定をしても、現実の環境のシミュレーションにはならない(ことが多い)」 / Twitter
- (´,,•ω•,,`)JustinZhuさんはTwitterを使っています 「@kazuho それなら1/2の確率で捨てるかどうかを確定、捨てるの場合連続ランダム個パケットを捨てて、指定したパケロスn%を超えた場合しばらく捨てないって言うシミュレーションがもっと現実と近いかな」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@zlm2012 実際のキューの挙動をシミュレートした方が良いのでns3とかはそうしてますね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@zlm2012 パケロスは確率事象じゃなくて、キューオーバフローの結果なので」 / Twitter
- kazさんはTwitterを使っています 「@kazuho @zlm2012 横レス失礼。 TCP-BBRの論文もそんなこと書いてあった気がしますね。」 / Twitter
- (´,,•ω•,,`)JustinZhuさんはTwitterを使っています 「@kazuho でもルーターに「賢い」こと(同じ IP-IP:port のパケットをまとめて処理とか?)をやってエンドユーザーがセルラーのNATとかの後ろにいる時、エンドユーザーから見ると確率事象になる可能性もそこそこありそうな気がしますね」 / Twitter
- FadisさんはTwitterを使っています 「TCPの再送制御と輻輳制御はslow startを除いて受け側がパケットロスに気付いてから何とかする物なので、受け側が輻輳に気付いた時には既にスイッチで沢山のパケットが溢れている。そこから再送するのでパケットが揃うまでにはかなりの時間がかかり、レイテンシを気にする用途では使い辛い」 / Twitter
- FadisさんはTwitterを使っています 「なのでIPの拡張には輻輳した機器から即座に送信側にその事を通知するECNが、Ethernetの拡張には輻輳が起きそうな時に特定の送信側に対して「少し黙れ」を要求するPFCが用意されていて、送信側がこれらを扱える事が明らかなネットワークでは、これらを使ってパケットロスを未然に防ぐという事が行われる」 / Twitter
- FadisさんはTwitterを使っています 「イマドキのスマートなNICはこうした制御をハードウェアで行えるようになっていて、そうした機器で固められた輻輳によるパケットロスが起こらないネットワークの事はLossless Networkと呼ばれている」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「今時のTCP輻輳制御は、loss-based とdelay-based と hybrid とあるので、常にロスに気づいてから…と一括りにするのは正確でないかも。 https://t.co/OYkPiTMcco」 / Twitter
- 第2回 輻輳制御アルゴリズムの3タイプ:基本から学ぶ TCPと輻輳制御 ……押さえておきたい輻輳制御アルゴリズム|gihyo.jp … 技術評論社
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「特に、広帯域+高遅延だと、遅延変化で細かく制御しないと帯域を使い切れないのだよね。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「(どれも「ロスを発生させたら負け」というのは共通かな?)」 / Twitter
- A.Amag🌧️さんはTwitterを使っています 「5Gみたいな広帯域モバイル回線がつらい所。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 そういえば無線の場合、優先のように隘路の流量に比例して遅延が徐々に増える挙動とは違う印象ありますね…突然、ランダムに巨大なジッタ発生が多めというか。 あれは流量というより電波品質の問題なのですかね。」 / Twitter
- A.Amag🌧️さんはTwitterを使っています 「@shirouzu MAC層にリトライの仕組みが入っていて、ランダムにバックオフタイムが入るのと、リトライするときにレートを下げてリトライとかの挙動もあるので、細かく見ると遅延もレートもめまぐるしく変化していると思います。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@ame_feb4 あぁ、なるほど。 本来のイエローケーブル時代のイーサネット(CSMA/CD)っぽい挙動ですね(笑)」 / Twitter
- A.Amag🌧️さんはTwitterを使っています 「@shirouzu 5Gとかならタイムスロットの割り当てがあるのですが、WiFiはまさにそれですね。運が悪いと延々とサイコロで負けるという。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「輻輳制御はIPパケットの送信量・タイミングであったり、IPパケットを落としたりマーキングする技術なのでトランスポート非依存(TCP, QUIC関係ない)けど、TCPだと中継装置が終端していたようなケースがQUICだと常にエンドツーエンドになるってのが実務上は差を産みかねないところ」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「なるほど、CWNDをAIMDで交換するロスベース輻輳制御と異なり、BBRの公平性はボトルネックバンド幅(BtlBw)を交換することで公平性を確保してるのか。各接続は、定期的にキューを作り、そのキューをBtlBw*0.75のレートで送信して消す。この消す作業がmultiplicative decrease...」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「で、委譲されたBltBw*0.25分のバンド幅は「委譲した以外の」各接続に、それぞれのバンド幅に応じて配分される、と。これを繰り返すと、使用バンド幅が大きい接続ほど委譲量が増えるので均等状態にconvergeする」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「※なぜ「配分」かというと、BtlBwは直近10RT内の観測最大値なため。委譲した接続が観測するBtlBwのほうが、以上された接続のそれよりも先に小さくなり、結果、バンド幅が再配分されたことになる、と」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「よしBBR完全に理解した」 / Twitter
AQM・L4S
- Kazuho OkuさんはTwitterを使っています 「TCP/IP、接続ステート管理まわりは分かるし(あるいは想像つくし)、輻輳制御もまあ分かるんだけど(ヒューリスティックなところ以外)、現代的な再送制御まわりがどうなってるのか全くわからん。いろいろあるのは知ってるし、個々の要素の説明は読んだり聞いたりしてるけど身になってない」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あとまあ linux カーネルの TCP/IP コードが良く分からなくて苦手意識あるというか。僕が書いてる QUIC 実装は読みやすいのに!!!」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@tss_ontap @kazuho パケット損失で性能が低下するのがTCPなので、TCP向けの応用である限り、バッファの存在は常に善と考えていいんじゃないでしょうか。 遅延を一定以内にすることが優先でパケット損失も厭わない応用ならバッファの存在が邪魔になることもあるでしょうが、そういうのはそもそもTCP向けではないですし」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@tss_ontap @kazuho バッファを溢れてない場合、ackの返るタイミングも遅れてそれでペース調整できるので問題ないという認識です。 バッファが大きくなると遅延は当然増えますが、それを嫌うならTCPではなく、レイテンシ優先でパケット損失を許すプロトコルを使うべきかと。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @tss_ontap プロトコルを変えたところで、競合するトラフィックがCubicに代表されるロスベースの輻輳制御を使っていると、中継機器のバッファサイズに比例してレイテンシが大きくなってしまう、というのが問題で、だからこそAQMだったりL4Sだったりやってるのでは?」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @tss_ontap 動画や音声でしかもリアルタイム性を要求する応用では、パケット損失があっても品質が低下するだけで通信自体は継続できるプロトコルを使い、ルータもそういうプロトコルに割くバッファ量は制限する代わりにレイテンシは保証する方向で動作するのが理想だと思ってます。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @tss_ontap AQMもL4Sも全然知らないんですが、そういう方向の技術なんでしょうか?」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @tss_ontap AQMはバッファがいっぱいになる前にバッファが空にならない程度を狙ってパケットを落とす手法です。CoDelとか。L4Sは輻輳制御アルゴリズムによって異なるキューを通るようにすることで、ロスベースのやつと新世代のやつを共存させる技術だと思います(たぶん)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @tss_ontap ありがとうございます。 AQMはrandom early dropの現代版みたいな認識でいいのかな… 損失を許さないけどレイテンシ制約は緩いTCPみたいなやつと、レイテンシ重視の奴でキューを分けた方がいいのは間違いないですね…」 / Twitter
スライド
- YAMAMOTO MasayaさんはTwitterを使っています 「3月に開催したプロトコルスタック自作キャンプの講義資料を公開しました。1週間でTCP/IPのプロトコルスタックを自作してUDPやTCPで通信するアプリケーションを動かすという内容で300ページくらいのスライドです。これがあれば一人で自作できますよ! #KLabExpertCamp https://t.co/4sUTh2MAk6」 / Twitter
- KLab Expert Camp 3 - Google ドライブ
- YAMAMOTO MasayaさんはTwitterを使っています 「スライドで解説しているコードのリポジトリはこちらです。スターを貰えると承認欲求が満たされてやる気が爆上がりするのでどうぞよろしくお願いします。 https://t.co/RpbPm0w0D0」 / Twitter
- pandax381/microps: An implementation of a small TCP/IP protocol stack for learning.
Wikipedia
- TCP congestion control - Wikipedia
- 二人の将軍問題 - Wikipedia
- Two Generals' Problem - Wikipedia
Twitter
- Kazuho Okuさんのツイート: "ルータがTCP ACKにバンド幅情報等を載せる仕組みの提案 / “Throughput Guidance” https://t.co/ojqyCdaxHB"
- Kazuho Okuさんのツイート: "「64bitのシーケンスナンバーが10年後には求められるようになるだろう。TCP/IPスタックが対応するにも、そのくらいの期間がかかるだろう」"
- Kazuho Okuさんのツイート: "tcpm で getsockopt(TCP_INFO) 標準化の機運がにわかに盛り上がってきた!!!!"
- Kazuho Okuさんのツイート: "古いネタにマジレスだけどパケロスがゼロなら距離関係ないし、パケロスがあってもCubicとか最近の手法なら距離関係なかった気がする > 「RTTである「R」が大きくなればなるほどTCPのデータ転送性能は低下する」 / “Geekな…” https://t.co/h7xFnahBIL"
- Kazuho Okuさんのツイート: "RFC 8311でECT(1)を実験用に空けたわけだけど、具体的にどういう風に使うつもりなんだろう"
- RFC 8311 - Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation
- ぬるぽへさんのツイート: "TCPのEnd-toEndのRTTが縮小できるのでTCPプロキシがある場合が速いことがある, TCPのLong Fat Pipe問題 #tcfm"
- ぬるぽへさんのツイート: "TCP splittingとかいう概念を初めて知った、勉強になります #tcfm"
- matsuuさんのツイート: "プロトコルにもよるけどアクティブクローズをするのは大抵受信側で、TIME_WAITで残るのも受信側だからほとんど問題にならないとの認識(HTTP-Keepaliveはそんなことないか)。間違ってるなら誰か教えて欲しい。 / “n…” https://t.co/T2LFEFSmeJ"
- net.ipv4.tcp_tw_recycle は廃止されました ― その危険性を理解する - Qiita
- Kentaro Ebisawaさんのツイート: "F-Stack: DPDK使うとNetwork Stack自作する必要があるのを、FreeBSD Network Stack を Userspace にポートする事で解決したのね。Tencent Cloud やりますな~ https://t.co/XPyI4avazp"
- F-Stack/f-stack: F-Stack is an user space network development kit with high performance based on DPDK, FreeBSD TCP/IP stack and coroutine API.
- Fadisさんのツイート: "RFC1122のTCPに関する要件の所に「データがくっついているRSTを許容すべきである。フォーマットについて標準化はまだなされていないが、RSTのデータにRSTした理由がASCIIテキストで含まれる可能性がある」って書かれててRSTが溢れて不思議な踊りを踊る実装が存在する可能性にワクワクせざるを得ない"
- Kazuho Okuさんのツイート: "RFC793bis(TCPのRFCのアップデート)、100ページ超えてるのやばい https://t.co/yJtL3nhg3s"
- draft-ietf-tcpm-rfc793bis-10 - Transmission Control Protocol Specification
- Kazuho Okuさんのツイート: "!!!!!… "
- Hideki Sekineさんのツイート: "RFC793の内容を含んでいること、RFC793の時点で85ページあること、を考えるとむしろコンパクトな気もしますね。… "
- Kazuho Okuさんのツイート: "たぶん僕の発表に絡んだ話だと思うので。ソースは https://t.co/as5VM63uWb です。そして、クライアントがハンドオーバー中とかでackが返って来ないときにどうやるかという話なので、ミドルボックスに何かのシグナルを出してもらう必要があります… https://t.co/KSkUPf7aXe"
- TCP Optimization: Opportunities, KPIs, and Considerations
- 女子会さんのツイート: "ネットワーク事業者側がTCPをバッファリングして、パケットの番号を整列することでパケットの再送要求を減らして、5%程度帯域を減らせた事例があるという話があったけど、それがQUICの導入によりクライアント側でやれるようになれば効果が大きそうな気がしている。クライアント側の実装依存だけど。"
- Kazuho Okuさんのツイート: "あーソースは他にも mobile tcp optimization とかでググれば色々でてきます"
- Fadisさんのツイート: "TCPヘッダが20バイトもあるのに対し、IPは最小で8バイト毎にフラグメント化することが可能で、結果TCPのヘッダは途中で分断して送信することができて、雑にフィルタリングを行なっているファイアウォールがこうしたパケットの先頭だけを見て誤ったフィルタリングを行う事が90年代に指摘された"
- Fadisさんのツイート: "TCP、再送が必要になると、その情報が既に無価値になっていたとしても再送するまでその後ろの通信内容を読ませてくれないから、ミリ秒から秒単位で更新される情報を同期するようなタスクにおいてはあまり幸せになれない。問題はTCPでは辛いとなるといきなりUDPに放り出される点。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Web会議ASPを開発していた頃、セッション概念あり、再送&順序制御なし(できればFECあり)、パケット(データグラム)指向なプロトコルが欲しかった記憶。 そして、UDPでこれらを満たすレイヤを作ったけれど、これって皆が通る道なんだろうな(笑)… https://t.co/N6fdHptaQL"
- 鹿さんのツイート: "TCPでフロー制御して欲しいけど再送遅延は抑えたい時のために TCP Thin Stream があると思うのだけどそれではダメなのかな。再送回数抑えれば200ms x 3回とかで諦めてくれるので捗る。… "
- Fadisさんのツイート: "TCPが最初に規格化されたRFC793(1981年)当時のRFCには今日ではおなじみのMUSTとかSHOULD NOTとかいったキーワードがまだなくて、RFC1122(1989年)でRFC793に書かれている仕様が必須なのか推奨なのかが追記されてるの規格としてはアレだけど面白い"
- Fadisさんのツイート: "TCP、互換性のある通信をするために必要なパラメータの範囲に関するRFCが結構2010年代に入ってから作られてて、お前今までどうやって通信してたんだ感が凄い"
- Fadisさんのツイート: "TCPを実装する上で読むべきRFCが多すぎてどれを読めば良いか分からん問題に対処するために、RFC7414でTCPに関する情報はどのRFCをあたれば良いかが纏められているんだけど、RFC7414自体がReference以降のぞいて41ページもあるんだ…"
- Kazuho Okuさんのツイート: "https://t.co/fmiFuSkkys は、まだちょっと問題ある感じなんでしょうか… "
- draft-ietf-tcpm-rfc793bis-10 - Transmission Control Protocol Specification
- Fadisさんのツイート: "いえ、欲しかったのはまさにこういうドキュメントでした。これがあればTCPの基本的な機能については歴史を辿って読む必要がなくなりますね… "
- Kazuho Okuさんのツイート: "おお。歴史や実装に詳しくない人が、これ読んで分かりにくいところをフィードバックしたりすると喜ばれるんじゃないかなと思います… "
- suzakiさんのツイート: "EuroSysネットワーク4つ目。LinuxのTCP処理はカーネルで97%の時間が使われる。これを効率化するために各処理をFast Path、Slow Pathに分けて行うTAS: TCP Acceleration as an OS Serviceの提案。 Fast PathではData Segment作成, Ack, Flow Controlの処理を行う。Slow Pathでは IP Routing, ARPを行う"
- suzakiさんのツイート: "TAS: TCP Acceleration as an OS Service のHP https://t.co/w6mHTo4i0O"
- Kazuho Okuさんのツイート: "面白い。TCPはウィンドウサイズを送受信ともに1MTU以下にすれば実装簡単になりそうな気もするけど、TCPを知らずに育った世代なので自信ない / https://t.co/xMM5ma1odH"
- 3日間で作る フルスクラッチHTTPサーバー on STM32F767 Nucleo - Speaker Deck
- Yoshifumi Nishidaさんのツイート: "結構単純になると思います。uIPはウインドウサイズ1MSSのTCP実装でサイズが5Kバイト程度です。… "
- YAMAMOTO Masayaさんのツイート: "すごい。microps は pthread に甘えて実装が楽になってるけどこちらはだいぶ大変そう。@kazuho さんがコメントしているように、TCP は Window Size の広告を小さくすれば 1 セグメントづつのキャッチボールにできてシンプルになるのでぜひ頑張って欲しい(microps はその方法で tcp.c が 700行くらい)… https://t.co/RBHtoKVQCy"
- Kazuho Okuさんのツイート: "再送と輻輳制御、コードにバグがあった場合、修正方法を探り当てる難しさが TLS とかと段違いに難しいイメージ。動くんじゃダメで、あらゆるパターンにおいて、ネットワークに適切な負荷をかけつつ、そのケースで想定される時間内に回復処理を行わなければならない、ってむちゃくちゃ難しい"
- Kazuho Okuさんのツイート: "TCPを使うプログラムの書き方、切断処理は接続処理のだいたい100倍くらい難しいイメージ"
- Kazuho Okuさんのツイート: "パイプラインを使わないリクエスト・レスポンスプロトコルの場合のみ例外的に簡単です"
- Fadisさんのツイート: "LinuxをリモートからPANICさせる脆弱性SACK Panic。LinuxはMSS最小48バイトのTCPを受け付けており、その場合データは8バイトになる。キューは17*32KB分あるが16bitのindexでフラグメントを識別しており、キューに長蛇の列ができるようにSACKを投げるとindexが溢れてPANICする https://t.co/wmOGq3bwVQ"
- Netflix Uncovers TCP Bugs Within The Linux & FreeBSD Kernels - Phoronix
- Fadisさんのツイート: "SACK Panicを修正するパッチは既に本件カーネルに取り込まれているが、古いカーネルをしばらく使う必要がある場合MSSが小さすぎる通信をiptables等で蹴る、SACKを受け付けないようにする、といった方法で回避できるらしい"
- Kazuho OkuさんはTwitterを使っています: 「accept (2)、ローカルアドレスも返してくれたらいいのに。unbound socket を listen (2) している場合に、いちいち getsockname (2) 呼ばなきゃいけないのめんどくさい」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「s/unbound socket/0.0.0.0/」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「すごい分かる。そして10ページじゃ足りないと思う https://t.co/g02E7UUZpV」 / Twitter
- 成瀬さんはTwitterを使っています: 「TCPのFIN、socketのcloseの話だけ10ページくらい使って説明して本とかないんですかね」 / Twitter
- FadisさんはTwitterを使っています 「TCPの新しいRFCのドラフト、緊急ポインタの説明が1段落目からいきなり「実装間の違いと経路上の機器の影響の結果、緊急ポインタは新規アプリケーションで用いるべきではなくなった。でもTCPの実装はまだ緊急ポインタをサポートしていなければならない。詳しいことはRFC6093みてネ」でとても良い」 / Twitter
- FadisさんはTwitterを使っています 「RFC1122、「TCPで通信するとき、slow startするようにして、再送する時は一定じゃない時間待ってから再送するようにしたら輻輳を回避出来たから、TCP喋るやつはみんなこれしろ」って書かれてて、それまでのTCPはどんな世紀末な通信してたのってなる」 / Twitter
- FadisさんはTwitterを使っています 「1981年公開のネットワーク対戦ゲームTCP(RFC793)は当初酷いバランスだった事が知られている。バッファ枯渇後復活したホストに対してすぐ細切れのデータを送るリスキルが横行しスループットは急落した。そこで1989年のアップデートRFC1122では復活後バッファが十分空くまで殴れなくする変更が加えられた」 / Twitter
- FadisさんはTwitterを使っています 「Silly Window Syndromeの対策もRFC1122だったんだな。やっぱり1989年より前のTCPは世紀末…」 / Twitter
- FadisさんはTwitterを使っています 「TCPはストリームなので、前のパケットが失われて再送になると後ろが一緒に詰まる、というのはQUICがTCPを捨てた大きな理由だったけど、後ろのパケットはホストまで届いているんから、再送を待たずに投機的に処理して再送されてきた前のパケットとシーケンス番号が噛み合ったら確定、は出来るんだよな」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ sack付tcpでは、ある程度そんな動きで、ただユーザランドでは欠けたパケットが届くまで詰まったように見えてしまう、というお話でしょうか?」 / Twitter
- FadisさんはTwitterを使っています 「@shirouzu そうですね。BSDソケットを使っている場合確定していないパケットはアプリケーションから見えないので詰まってしまいます。ただこれはプロトコルの制約というよりAPIの制約であって、たとえ話DPDK上でアプリケーションが自力でTCPを喋っている場合もっと攻められる、とか考えていたところでした」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@fadis_ なるほど。 マルチプレクサ的なストリーム利用の場合は、データグラム的なデータ境界が欲しくなりそうですね(笑)」 / Twitter
- FadisさんはTwitterを使っています 「あれ、もしかしてTCPの規格は再送パケットのデータが最初に送ったパケットのデータと一致している事は要求していない…? (新しいおもちゃを見つけた顔」 / Twitter
- Motonori ShindoさんはTwitterを使っています 「@fadis_ TCPで再送する時に、最初に送ったのと同一のパケットになる保証はありません。後続のセグメントとくっつけて再送するのもアリなので。」 / Twitter
- Tanaka AkiraさんはTwitterを使っています 「@tagomoris @_ko1 listening socket を close することで、他のスレッドで実行中の accept が終了するのって、portable じゃないんじゃないかなぁ。(昔、いろいろな環境で動くように WEBrick を直したときに、DragonFly BSD 3.6.2 では close しようが shutdown しようがブロックしつづけることを確認した)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「えっlinuxのTCPのフローコントロールってオーバープロビジョニングしてるの? パケロスが発生した場合に tcp_rmem 変更しろ、とか書いてあるんだけど。それとも僕のsysctlの理解が間違ってるのかな / https://t.co/5QIoVVA8OX」 / Twitter
- TCP ソケットバッファーを調整する - Red Hat Customer Portal
- (1) ultravioletさんはTwitterを使っています 「@kazuho tcp_rmem を変えると連動して wndow size だか auto tuning だかに関連するパラメタも変わったような気がするのだけれど、前の職場から移るときに「すべて忘れます」誓約書にサインしたので思い出せない (嘘、たぶんサインしなくても思い出せなかった)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @raurublock ですよね、フローコントロールのオーバープロビジョニングはしないですよね。だから、パケットを受信したなら、バッファサイズが足りなくて取りこぼすことはないと思います」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock 同感です。TCPのwindow sizeとして求められている役割に違反してますよね。 # メッチャ厳密にいうと、メモリ不足でカーネルが死にかけてる状況なら取りこぼす可能性についてはないとは言えないとは思いますが、それはwindow sizeを広げるとむしろ悪化する筈なので、この回答はどちらにせよ変。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@n_soda @raurublock こうやって頻繁にパケット落としちゃうと、適切にフローコントロールしてる場合よりも速度低下しますもんね(そして、ごく稀にしか発生しないなら Knowledge Base で取り上げる必要がないと思う)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock はい。 現実にパケットロスしている場合、たいていは中間にある機器のバッファサイズが不足していて、それはwindow sizeを小さくするとむしろ改善する(ことがある)わけで、このアドバイスはトラブルシューティングの経験とは真逆のことが書かれてます。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock 気になってもう少し調べてみたんですが 「~packets collapsed」の方は重複したsk_buffをgarbage collectしているだけで実害なさそうでした。 問題は「~ packets pruned」の方で、歯抜けになったsk_buffに重複してない部分があるせいgarbage collectできずSO_RCVBUFを越えてしまってる状況みたいです」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock で、そういう lossy なネットワークでせっかく受信したパケットを捨ててしまうことになりもったいないので、tcp_rmem を増やしてやれば捨てることがなくなって状況が改善する…ということみたいです。」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@kazuho @raurublock なお Linux 素人なので、まったく勘違いしてるかも。専門家の意見を聞きたいところです。 ググったら https://t.co/uYFqZcCfuV の「9.2.1 tcp_prune_queue()」近辺に記述が見つかりました。」 / Twitter
- TCP/IP Architecture, Design, and Implementation in Linux - Sameer Seth, M. Ajaykumar Venkatesulu - Google ブックス
- Tatsuya MoriさんはTwitterを使っています 「(備忘録)昔の知識だとTLSハンドシェイクは時間がかかる印象なのだけど、2013年のRFC6928でTCP初期ウィンドウは10まで許可されている。サーバは1発目のターンでhello, certificate, exchange, doneをバルクで返せるようになった。 古い教科書ではTCP初期ウィンドウは1という説明が多い。」 / Twitter
- Tatsuya MoriさんはTwitterを使っています 「TCP初期ウィンドウサイズを増やす提案は下記の ACM SIGCOMM CCR 論文 (2010年) が元ネタになっている。 https://t.co/alUfKku76K Linux では2011年からカーネルの標準設定になっているので、"code then spec" の典型例かな。コミュニティは副作用を気にしたのかもしれない。」 / Twitter
- An argument for increasing TCP's initial congestion window | ACM SIGCOMM Computer Communication Review
- Kazuho OkuさんはTwitterを使っています 「TCP は packet number (シーケンス番号)が再送時に変化しないから自動的に late-ack 対応ができる。そのかわり、確実なロス検出が困難になる。QUIC は、再掃除に変化してロス検出の精度が上がるかわり、意識して late-ack 対応のコードを書く必要がある。これもまたトレードオフですね」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「というと QUIC で複雑になったようにも聞こえるけど、persistent congestion 検出にやすさでいうと、どのみち late-ack 前提のデータ構造使ってる必要があり。。。みたいな」 / Twitter
UDP GSO
- Kazuho OkuさんはTwitterを使っています 「UDP GSO、カーネル内で完結してるわけじゃなくて NIC によって I/O error が返る、みたいな感じなのかぁ。DeskMini A300 は gbe も wifi もダメだった。これは 5gbe とかの USB NIC 買うしかないな。。。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「なんで UDP GSO やってるかというと QUIC の最適化においては重要だからです。手元だと 25% くらい速くなる https://t.co/XstTROh5VK」 / Twitter
- willemdebruijn-lpc2018-udpgso-paper-DRAFT-1.pdf
- Kazuho OkuさんはTwitterを使っています 「結果まとめた https://t.co/7WOYW85ZGQ」 / Twitter
- add support for GSO by kazuho · Pull Request #293 · h2o/quicly
- VさんはTwitterを使っています 「@kazuho 25% ですか!それは凄い。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「しかし Intel Core をデチューンした状態でgbeサチるのが難しいとなると、なかなか10gbe導入の正当化がしづらい」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「あーこれは結局NICのtx checksummingがオンになっているか否か、という問題でした(論文にあるようにUDP GSOはtx checksum offload必須)。Realtek r8169はデフォルトオフのところオンにできた。Intel AC 3168は非対応」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「UDP GSO自体は、ハードウェアがGSO非対応でも動作するらしい。ドライバのキューに突っ込まれるところまでsegmentationを遅らせることに意味があるから https://t.co/ganmK5L9EO」 / Twitter
- Queueing in the Linux Network Stack | Linux Journal
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Web会議作ってた頃は udpパケットが、pppoe や vpnでフラグメント起こさない値として、1344を使っていたっけ。 (分割検出の度に短くなっていった。なおエラーにならないので気付き辛い)」 / Twitter
DNS
DNS-over-TLS
- Yoshinobu Matsuzakiさんのツイート: "次期バージョンのAndroidでは標準でDNS over TLSがサポートされる模様。海外事業者のネームサーバを使うのも簡単。DNSを使った #ブロッキング は更に難しくなるよ https://t.co/YqSJjurcy3"
- Google Online Security Blog: DNS over TLS support in Android P Developer Preview
- Google Developers Japan: Android P Developer Preview が DNS over TLS をサポート
- Kazuho Okuさんのツイート: "セキュリティの観点からはローカルで署名検証をやるべきだけど、プライバシーの観点からはDoHあるいはDNS over TLSで一般的なスタブリゾルバにつなぐべきというのが、現在存在するジレンマです… "
- まきひろさんのツイート: "DNSのセキュリティはローカルにDNSSEC有効なフルリゾルバを置くのが確実だよ"
- Rockridgeさんのツイート: "Android 9 PieではプライベートDNSモードがサポートされており、プロバイダを設定するとDNS over TLSが利用できる。 / “Enable Private DNS with 1.1.1.1 on Android…” https://t.co/2iUFRUsNHp"
- Google Online Security Blog: Google Public DNS now supports DNS-over-TLS
- Kazuho Okuさんのツイート: "DHCPが平文のプロトコルなので、DoHやDoTの設定配るのはセキュアになりようがないよね、というのが標準化における懸念だと理解してる #doh_study"
DNS-over-HTTPS
- Google Public DNS
- DNS-over-HTTPS | Public DNS | Google Developers
- Google Public DNS の様々な活用方法 - Qiita
- Google Public DNS over HTTPS を試す | IIJ Engineers Blog
- DNS Queries over HTTPS の標準化 - ASnoKaze blog
- DNS over HTTPSの標準化開始:Geekなぺーじ
- Rockridgeさんのツイート: "Mozillaの開発者がNightlyチャンネルの半数のユーザーを対象に、期間限定で、新機能であるHTTPSを通じたDNSクエリ(DoH)のテストを行おうとしたところ、オプトイン制にすべきとする反対意見が続出した。 / “Goo…” https://t.co/hGahs0RhLy"
- Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)の仕組み自体はFx60で実装済み。Firefox Nightly 61におけるテストで問題になったのは、常にCloudFlareのパブリックDNSへとDNSクエリが送信されてしまう点だ。 https://t.co/pu72EWz8a8"
- Firefox, DNS over HTTPS and a controversial Shield Study - gHacks Tech News
- Kazuho Okuさんのツイート: "既に www . google . com:443 に接続してから、GET /resolve?name=fqdn&type=A Host: dns . google .com とかリクエストして名前解決できるようになってるので、防ぎようがないです… https://t.co/v4tkVgyjj5"
- Kazuho Okuさんのツイート: "なんと。request-uriに絶対URIを指定する場合とHostヘッダを使う場合とで挙動が異なるのは Google さんのリバースプロキシのバグっぽい雰囲気ですね… "
- bosturboさんのツイート: "(echo -e 'GET https://t.co/sO5tOOs2PT HTTP/1.1\nHost: https://t.co/qComyDKBcL\n'; sleep 0.5) | openssl s_client -connect https://t.co/1aMcXHKitu) だと確かに200 OKを返してくるな…… 『GET 』の後にパスから書くと404だけど。… https://t.co/RMGjVzX8wz"
- Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)の仕組みを解説し、CloudFlareと提携したことで信頼できるDNSリゾルバを確保できたと説く。平文のDNSクエリの危険性を説明したマンガは、いつも通りわかりやすい。 / “A cart…” https://t.co/TRrsh0Iav0"
- Rockridgeさんのツイート: "記事の末尾に、HTTPSを通じたDNSクエリ(DoH)の設定を有効化する方法が掲載されている。 / “Improving DNS Privacy in Firefox – Firefox Nightly News” https://t.co/s1gB4iIlGy"
- Rockridgeさんのツイート: "HTTPSを通じたDNSクエリ(DoH)に関連する、Firefoxの各種設定について、規定値や役割などが紹介されている。また、DoHはFirefox 62でデフォルト有効化される計画だという。 / “Inside Firefox…” https://t.co/eRXDiT9ZRI"
- DNS over HTTPSサーバを見つけるためのTXTレコードの提案仕様 - ASnoKaze blog
- Kazuho Okuさんのツイート: "Public DNSにDoHで接続すると平均遅延は僅か(6ms)悪化するが、パケロスや品質の低いDNSの悪影響がなくなり体感が向上したという検証結果 / “Firefox Nightly Secure DNS Experimen…” https://t.co/osmlqtTOaf"
- Rockridgeさんのツイート: "MozillaがFirefox Nightly 63のユーザー2万5000人を対象にDNS over HTTPS(DoH)のテストを実施(CloudflareのクラウドDNSを利用)。6ミリ秒程度のクエリ遅延が起きる(一部環境では… https://t.co/Y0W9xstTgT"
- Rockridgeさんのツイート: "Fx62:DNS over HTTPS(DoH)のdraft-12仕様をサポート。 / “1466860 - TRR: update to latest DOH draft version” https://t.co/JyzIPfrLEG"
- Rockridgeさんのツイート: "Fx63:オプションの〔一般〕の「ネットワークプロキシ」欄で、接続設定の詳細項目にDNS over HTTPSの接続設定が追加された。 / “1482271 - DoH preferences” https://t.co/v2WMDQx2UX"
- Rockridgeさんのツイート: "DNS over HTTPSのデフォルトプロバイダをブラウザが指定すると、プロバイダの寡占を招き、中立性や政府の介入といった点で将来的にユーザーに不利益になるのでは、との意見。 / “On Firefox moving DNS …” https://t.co/DVrrPRJuRv"
- https://www.rfc-editor.org/rfc/rfc8484.txt
- DNS-over-HTTPS Policy Requirements for Resolvers | Mozilla Security Blog
- DNSサーバがDoHに対応しているか確認できるようにする提案仕様 - ASnoKaze blog
- Firefoxが通信暗号化システム「DNS over HTTPS」の対象地域拡大を発表、一体何が変わるのか? - GIGAZINE
HTTPS RR
- WebサーバのDNSへの登録方法が変わるよ – JANOG48 Meeting
- janog48-lt-https - janog48-lt5-yamaguchi.pdf
- summerday2021-https-rr - 11-yamaguchi.pdf
EDNS0
- インターネット用語1分解説~EDNS0とは~ - JPNIC
- 「EDNS0」とは何ですか?:DNS Tips - @IT
- 008-「512の壁」を越える
- EDNS0 ‐ 通信用語の基礎知識
- ことなかれblog 備忘録 « EDNS0
- 512バイトを超える DNSパケット
- RFC 2671 - Extension Mechanisms for DNS (EDNS0)
- digコマンドでEDNS0の動作を確認する。 - labunix's blog
DNSSEC
- rick.eng.br/dnssecstat/
- DNSSEC はなぜダメなのか
- KSKロールオーバーについて - JPNIC
- 「ランチのおともにDNS」より~変化するDNSとサーバー証明書の関係【Internet Week 2017】 - INTERNET Watch
- インターネット用語1分解説~EDNS0とは~ - JPNIC
- 008-「512の壁」を越える
- OARC's DNS Reply Size Test Server | DNS-OARC
- ニュース速報:読売新聞(YOMIURI ONLINE)
- DNSインフラを狙う攻撃増加、ICANNがDNSSECの導入を呼び掛け - ITmedia エンタープライズ
- SODA Noriyukiさんのツイート: "DNS関係で今現在の最大の問題はリフレクション攻撃の踏み台として使われているってとこだと思うんですが、DNSSECは踏み台攻撃の増幅効果が大きくてむしろその問題については対策ではなく穴を大きくする方なんですよねえ。あと毒入れ系の対策としての効果も限定的( https://t.co/JPsDVfGKZh の8.)だし… https://t.co/IkDx25Jd7B"
DNSCurve
- DNSCurve - Wikipedia
- インターノット崩壊論者の独り言 - DNSSECイラネ - DNSCurve を適用しました , DNSCurve と CurveCP で高速安全というDJBの話
- NetAgent Official Blog : DNSCurveの紹介
- Introduction to DNSCurve
- mdempsky/dnscurve: Tools for DNS curve implementation
- DNSCurve vs DNSSEC - Togetterまとめ
Dnsmasq
- Dnsmasq - Wikipedia
- dnsmasq - Wikipedia
- Dnsmasq - network services for small networks.
- Man page of DNSMASQ
- dnsmasqで始めるプライベートDNSサーバ - GeekFactory
- Dnsmasqのproxydhcp機能を使ってiPXE chainloading - Qiita
NSD
- UnboundとNSDの紹介 BIND9との比較編
- NSDでおてがるにDNSサーバをたちあげる - Qiita
- NSD 4 – 日本Unboundユーザー会
- NLnet Labs - NSD - About
- Unbound + NSD で DNS
- NSD (ソフトウェア) - Wikipedia
- DNSサーバ”NSD”の紹介 | ICTSC tech-blog
- NSDとUnboundで社内用DNSサーバを立てた話 | エンジニア ブログ
-
- bind2other
- 第386回 Unboundでお手軽に家庭内DNSサーバーを作ろう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
INTERNET Watch
- ネット史上初めての「KSKロールオーバー」が始まる、名前解決できなくなる前にDNSサーバーの設定確認を! 今年9月は特に注意 - INTERNET Watch
- 萌えドメインなのに……「anime.moe」の登録をICANNが禁じている理由とは -INTERNET Watch Watch
- 「KSKロールオーバー」に伴い講ずべき措置、総務省が国内関係者に告知、9月19日以降にウェブアクセスやメール送信ができなくなる場合も -INTERNET Watch
- 「KSKロールオーバー」で一部DNS応答サイズが増大、4人に1人のインターネット接続に影響? JPNICが確認を呼び掛け -INTERNET Watch
- IANA — Domain Name Services
- 【IETFトピックス2016-17】 インターネットを支え続ける老舗プロトコル、「DNS」30年超の歴史を振り返る - INTERNET Watch
- 【IETFトピックス2016-17】 熱い議論の続く、DNSプロトコル拡張と今後 - INTERNET Watch
- KSKロールオーバーのテストプラットフォーム、ICANNが提供 -INTERNET Watch
- 大きく変化していくDNSの規格 ほか~「DNS DAY」の話題から - INTERNET Watch
- 「KSKロールオーバー」で問題を起こしそうな箇所はここだ! 9月19日だけでなく10月11日にも注意 - INTERNET Watch
- 10月11日の「KSKロールオーバー」鍵更新は延期、未対応のISPなど「相当な割合」あることが判明 -INTERNET Watch
- 「KSKロールオーバーはまだ終わっていない」~今年の「DNS DAY」の話題から【Internet Week 2017】 - INTERNET Watch
- KSKロールオーバーの鍵更新がさらに延期へ -INTERNET Watch
- KSKロールオーバー、10月11日に実施か - INTERNET Watch
Geekなぺーじ
- TCPだけでDNSサーバにqueryできるようになってた:Geekなぺーじ
- ざっくり詳解 - NAT64とDNS64:Geekなぺーじ
- なぜIPv6とIPv4の名前解決は別々に行なわれるのか?:Geekなぺーじ
- KSKロールオーバーが延期:Geekなぺーじ
- ユーザの近くにある偽DNSサーバの話:Geekなぺーじ
- [書評]「DNSがよくわかる教科書」は、すごくイイ!:Geekなぺーじ
- RFC 8501 : Reverse DNS in IPv6 for Internet Service Providers:Geekなぺーじ
ASnoKaze blog
- DNS ANAMEレコードの提案仕様 - ASnoKaze blog
- .internal ドメインを予約する提案仕様 - ASnoKaze blog
- HTTPSで接続するための追加情報を格納するHTTPSSVCレコード - ASnoKaze blog
- HTTPSの接続情報を通知する "HTTPS DNSレコード" の提案仕様 - ASnoKaze blog
- DNSのエラー理由を通知するExtended DNS Errorsの仕様 - ASnoKaze blog
GIGAZINE
- Google Chromeは「DNSルートサーバー」に大きな負荷をかけている、その理由とは? - GIGAZINE
- CloudflareやAppleなどが協力して新プロトコル「Oblivious DNS over HTTPS(ODoH)」を開発 - GIGAZINE
- ブラウザの追跡ブロック機能を回避する「CNAMEクローキング」を行うサービス・企業のリストが公開中 - GIGAZINE
- AmazonやGoogleのDNSサービスに存在する欠陥を研究者が発見、企業の重要な情報が筒抜けに - GIGAZINE
- akiさんはTwitterを使っています 「forwarding時間でLUTを引ける程度、 表がメモリに乗る程度、 というあたりでは? 名前によるICNは、未だ高速性が研究になるぐらいだし。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「以前、情報系の入門者に「なぜ通信する時、fqdnのような名前を直接使わずに、IPアドレスを使うのでしょう?」と純真な眼で問われたが、直感理解できる説明が出来なかった。 良い答え方あるかな…でも「人間に扱いやすい名前と、機械に優しいIPアドレス」は半分ウソ(機械はどちらでも可)という気が。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「黎明期は別として、今は、IPアドレス側は管理しやすさ(ルーティングや割付)の方がメリットかもしれない。 その点で「機械にやさしい」には、機械化せずとも、郵便番号や固定電話番号のような、体系的ナンバリングは管理が楽になる、みたいな話が含まれてないのが気になる。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「MS関連(LinkedIn含む)のCDNで問題起こすこと多い様子…むしろMSが無茶しないようにして欲しいかも。」 / Twitter
- ---さんはTwitterを使っています 「UnboundくんがCNAME 8段まで「しか」たどらなかったのが、11段もたどるようになった!https://t.co/hJTm5tmfX9」 / Twitter
- Resolving records through more than 8 CNAME fails due to hardcoded MAX_RESTART_COUNT · Issue #438 · NLnetLabs/unbound
infoQ
- GoogleがクラウドDNS転送を発表
- SAD DNSの仕組み
OSDN
- Google Chrome 26リリース、スペルチェック機能の強化やMac/Linux版での非同期DNSリゾルバ実装などが特徴 | OSDN Magazine
スラド
- DNSのCAAリソース・レコード、使っていますか? | スラド IT
GitHub
- blechschmidt/massdns: A high-performance DNS stub resolver for bulk lookups in C
- GitHubがどのようにDNSインフラストラクチャを改善したか
- DNSCrypt - Official Project Home Page
- jedisct1/dnscrypt-proxy: A tool for securing communications between a client and a DNS resolver
Wikipedia
- TSIG - Wikipedia
Twitter
HTTP
- Kazuho OkuさんはTwitterを使っています 「この「本来やりたかったの」ってどういう文脈なんだろう。I-D的にはalt-svcレコードの提案が源流にあるし、http屋さんとしては、zone apexにCNAMEは元々優先順位低かったという認識(SRV系拒否してきた歴史がある)」 / Twitter
- ---さんはTwitterを使っています 「draft-ietf-dnsop-svcb-https くん、本来やりたかったのは “zone apexにCNAME” だったはずだけど、ESNIやらIPv4/IPv6 hintやらいろんな要求が悪魔合体して嗚呼standards body……みたいな感想のみ」 / Twitter
- ゆきさんはTwitterを使っています 「@kazuho 「本来やりたかった」からちょっとずれますが、ANAMEレコードの提案仕様の議論してた話が、HTTPS(旧HTTPSVC)でカバーして解決されるって感じになったんですかね https://t.co/uGYCuRfr2W」 / Twitter
- Re: [DNSOP] status of the aname and svcb/httpsvc drafts
- ゆきさんはTwitterを使っています 「@kazuho リンク間違えた。が、スレッドは同じ https://t.co/YAyxfjjVjG」 / Twitter
- Archive
- Kazuho OkuさんはTwitterを使っています 「なぜSRV系を拒否してきたかというと、ユーザがウェブブラウズに使うHTTPは名前解決の速度が重要で、再帰リゾルバに問い合わせしたらIPアドレスが返ってこないと困るからです。だからA/AAAAを引いてた。そこに、ECHの鍵とりたいとか、QUICで話せるよとか、そういう情報を入れたいという要求が加わった」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ANAMEは、サービス解決を挟まずに無理矢理アドレス解決しようとする強引な仕様だったし、なくなって良かったんじゃないかな」 / Twitter
- Kenji RikitakeさんはTwitterを使っています 「@kazuho まだ残ってたんですか…」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@jj1bdx このへんの話です」 / Twitter
- Kazuho Okuさんのツイート: "オープンリゾルバが絶滅し、リゾルバはTCPでのクエリを受け付けるべきという規定が実現可能になったという背景があるのかな / “TCPだけでDNSサーバにqueryできるようになってた:Geekなぺーじ” https://t.co/vuJYimFp5T"
- Kazuho Okuさんのツイート: "DNSキャッシュサーバにTCPでの応答が求められるになっただけであって、権威サーバはあいかわらずUDP-onlyでいいのよね?"
- Kazuho Okuさんのツイート: "DNS権威サーバへの攻撃対策は、初見のアドレスからクエリを大量に受信し始めたら無視すれば良い #ietf97j"
- Yusuke Endohさんのツイート: "https://t.co/TVeOG3Tk3j に書いてあるとおり、https://t.co/B5msekD4Um は大量の IP が割り当たっててパケットサイズでかくなるので、DNS over UDP で失敗したあと、DNS over TCP が必要になる。(続く)"
- [debian-users:57972] Re: yomiuri online に接続できなくなった
- Yusuke Endohさんのツイート: "なお、ツイッターが全部 https://t.co/B5msekD4Um にしてくれちゃってるけど、www付きで"www.yomiuri.co.jp”と書いたつもりでした。"
- 浸透いうな/伝播いうな/反映いうなさんのツイート: "@n_soda @hoshi_takanori @ReijiAbe そこがポイントです。誰も問い合わせしないキャッシュサーバは永遠に更新されることはありません。"
- SODA Noriyukiさんのツイート: "「浸透の言い換えを考えているようではダメ」って、こういう意味なのね。設定変更の遅延がユーザーに見えることはほぼ防ぐことができるので言い換え自体必要ないと(もし設定ミスで遅延が生じたら、「浸透」で誤魔化さずにちゃんと謝ろうと)。 https://t.co/AtolVVuFhI"
- 浸透いうな/伝播いうな/反映いうなさんのツイート: "@nhhi122 技術者は素人に向かって浸透といわなきゃいけない状況を回避すればいいのですよ。それが技術者というものでしょう。そして回避ができないときはちゃんと理由を説明すべきです。"
- (び)さんのツイート: "DNSでは、recursive queryとiterative queryそれぞれ定義があるので。… "
- Kazuho Okuさんのツイート: "djbdns 歴が長すぎて知らないんだけど、最近だと BIND でもキャッシュのエクスパイヤを絶対時間で設定できるようになってたりするのかな。あれは浸透とは程遠い動作だと思う"
- Kazuho Okuさんのツイート: "HTTPのキャッシュについて「浸透を待ってください」という人は聞いたことない。皆「リロードしてください」と言う。つまりは、DNSの場合、事前の対処法を知らないもしくは事後の対処法がないから「浸透を待ってください」と言うのだろう"
- Kazuho Okuさんのツイート: "F5押しても権威DNSサーバまでクエリが飛ばないの、僕はうんこだと思ってます"
- Kazuho Okuさんのツイート: "DoHではドウかなーって思ってドラフト確認してみたら、HTTPレイヤのキャッシュについてはバイパスする(がDNSレイヤにキャッシュがある場合は無理)って話になってた。まあそうだよね。DoHリゾルバがDNSレイヤでのキャッシュもってなければF5でリロードかかるし良い… "
- Kazuho Okuさんのツイート: "別の言い方をすると「浸透」という単語の問題ではなく、「浸透を待たなければならない」という認知を強化する可能性の問題なのだ"
- Kazuho Okuさんのツイート: "「浸透」という表現が「変更が伝わるまで待たなければならない」ことを含意するからダメなんですよ。正しく設定していれば待つ必要ないのに / “DNSで浸透って言っちゃだめなの? - @tmtms のメモ” https://t.co/bMxaRBcCzf"
- DNSで浸透って言っちゃだめなの? - @tmtms のメモ
- Shigeyaさんのツイート: "キャッシュされたRRがキャッシュから無くなるタイミングは、権威サーバで指定されたTTL(Time-to-live)の秒数で決まります。一度キャッシュされたRRは、そのTTLすぎるまでは「そのキャッシュでは」そのまま用いられます。だからコレを短くすれば、反映されるまでの時間は調整できます… https://t.co/c8JjRRsSXU"
- Kazuho Okuさんのツイート: "DNSの上に認証レイヤを構築完了したので満足なう。これでDNSに悩まされないですむわー"
- Kazuho Okuさんのツイート: "Amazon Route 53 のエスケープシーケンスはバックスラッシュ+8進数、Azure DNS はバックスラッシュ+10進数です。さて問題です。RFC 1035 に合致しているのはどちらでしょう"
- Kazuho Okuさんのツイート: "DNS クイズを出したが回答がない。シーンとry"
- Kazuho Okuさんのツイート: "「君のDNSサーバ、なんでTXTレコードを127バイトごとにチャンクするの? 255バイトでいいはずなのに」僕「djbdnsだから!!!!」"
- Kazuho Okuさんのツイート: "細かなとこだけど、TXTレコードには文字列ではなく任意のバイナリシーケンスを登録可能です / “アプリケーションエンジニアが知るべきDNSの基本” https://t.co/G28FjQ9B4f"
- Basics_of_DNS_that_application_engineers_should_know - Speaker Deck
- Kazuho Okuさんのツイート: "DNSの「再帰」と「反復」の違いが話題になってるけど、そもそも何が違うの? 原典だと「recursive」にあたる単語に別々の訳語をあてて混乱してるとかじゃないよね???"
- Kazuho Okuさんのツイート: "複数のリカーサが設定されている場合に、それぞれに順次問い合わせることを反復と言ってるのかな"
- Kazuho Okuさんのツイート: "自己解決。リカーサが順次権威サーバに問い合わせていくことを「反復的(iterative)」と呼んでいるのか… "
- Kazuho Okuさんのツイート: "「反復」問い合わせをした結果を返すことを「再帰」と呼んでいるのであって対立する操作ではない、と説明すべきなのかな"
- ゆきさんのツイート: "Domain Contact Information (WHOIS) over DNS https://t.co/p4h4RXeTLq WHOIS over DNS #yuki_id"
- ゆきさんのツイート: "「DNS Resolver Information Self-publication」 https://t.co/bFuxni3R35 Googleの人とICANN勢の共著。DNSどのようなトランスポート・機能に対応しているか確認できるようになる。こういうの必要よね #yuki_id"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「udp socket で source port 0(本当の0番。一時空きポートではなく)の sendto はできないが、 recvfrom はできてしまう非対称性、私を含めて well-known でない気がする。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「nsdのエラーは port 0 に sendtoして invalid argument だった。 おそらく src port 0 な不正DNSクエリを受けて、チェック無しにsendtoしてる。 nsd[...]: error: sendmmsg [0]=83.31.183.240@0 count=4 failed: Invalid argument https://t.co/sXUwRkj65n」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「報告者は port 0 に言及してるけど、作者側はロギングのみで、port 0 チェックは未対応に見える。 (ポート0なUDPパケット受信は、カーネルが弾くべきなのだっけ…?)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「えー「(HTTPプロキシのように)DNSサーバでセカンダリとプライマリも分かれてキャッシュされるのか」が質問だから答えは否では? HTTPのauthorityと違ってDNSはどの権威サーバが答えても同じなので。 それはそうとしてWindowsのDNSキャッシュサーバ複数指定したときはそういう動きなのか勉強になる」 / Twitter
- ますだまさるさんはTwitterを使っています 「今なら夏春都の質問に答えられる。DNSサーバはプライマリとセカンダリでキャッシュは別だけどWindowsのデフォルトならプライマリDNSから1秒以内に返事が返えればセカンダリに投げないのでキャッシュもされない。プロキシを使った場合は基本的にDNSクエリはプロキシが投げる https://t.co/qwG4rCQe7W https://t.co/t5TgK2NSVs」 / Twitter
- [第1147話]こちら葛飾区亀有公園前派出所 - 秋本治 | 少年ジャンプ+
- c-ares: library for asynchronous name resolves
- c-ares-1.12.0
- tornado.platform.caresresolver - C-Aresを使った非同期DNSリゾルバ - Tornado Web Server — Tornado 3.2.1(日本語)
- 実用 BIND 9で作るDNSサーバ(5):スレーブ・サーバのゾーン転送とセキュリティ (3/3) - @IT
- JPNICが管理する逆引きゾーンのネームサーバ一覧 - JPNIC
- 無料で安全なDNSサービスの一覧 | ハルパス
- DNSで負荷分散を可能にするLBレコードの提案 - ASnoKaze blog
- 技術書典4で販売された「DNSをはじめよう」をフォローする感じの記事にしたい - Qiita
- DNSトンネリングの手法 / A technique of DNS tunneling (#ssmjp) // Speaker Deck
- Google Online Security Blog: Google Public DNS turns 8.8.8.8 years old
- Alphabet、DNSクエリを暗号化するアプリ「Intra」を公開--ネット検閲に対抗 - CNET Japan
Multicast DNS
Avahi
- Avahi - Wikipedia
- Avahi (software) - Wikipedia
- avahi-daemonを設定してDNSサーバ運用をやめた - Qiita
- Raspberry PiでAvahi を使ってホスト名でアクセスする | 株式会社インデペンデンスシステムズ横浜
- 第216回 Avahiとローカルエリアネットワーク:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- Avahi - ArchWiki
- Linuxでのavahi-daemonの停止 - weblog of key_amb
- [Ubuntu] Avahiのコマンド一覧 - Life with IT
- avahi - mDNS/DNS-SD
- どーでもいい日々: mDNS、Avahi、Bonjour
- avahi-daemonのシステムログの内容について | アットマークテクノ ユーザーズサイト
- Source Browser
- jevinskie/mDNSResponder
- RFC 6760 - Requirements for a Protocol to Replace the AppleTalk Name Binding Protocol (NBP)
- RFC 6761 - Special-Use Domain Names
- RFC 6762 - Multicast DNS
- RFC 6763 - DNS-Based Service Discovery
- Multicast DNS
- Multicast DNS - Wikipedia, the free encyclopedia
- IPマルチキャスト - Wikipedia
- Zeroconf - Wikipedia
- Zero-configuration networking - Wikipedia
- TCPやUDPにおけるポート番号の一覧 - Wikipedia
- DNS Service Discovery (DNS-SD)
- TCP/IP環境に革新もたらすZeroConfネットワーク「Bonjour」~概要と仕組等~
- 形式 - マニュアルページセクション 1M: システム管理コマンド
- dns-sd(1) Mac OS X Manual Page
- Windows, Mac OS X, Linux間でDNSを使わずにホスト名を解決する方法:mDNS編 | 突然消失するかもしれないブログ
- DNS-SD(Bonjour)をUniversal Windows Platformから利用してサービスを探す - ぷろじぇくと、みすじら。 - Misuzilla.org
- Windows, Mac OS X, Linux間でDNSを使わずにホスト名を解決する方法:mDNS編 | 突然消失するかもしれないブログ (1)
- OS X 10.11のDNS64らしき動きをするDNSサーバを作る - yunazuno.log
LLMNR
- RFC 4795 - Link-local Multicast Name Resolution (LLMNR)
- Link-Local Multicast Name Resolution - Wikipedia
- Link-Local Multicast Name Resolution: The Cable Guy, November 2006
- Windows管理者のためのIPv6入門:第6回 LLMNRを使ったローカル・セグメント上での名前解決 - @IT
- Vistaネットワーク大解剖 - 名前解決(2)--IPv6でも使えるLLMNRによる解決手法を追加:ITpro
- ASCII.jp:Windowsネットワークの名前と番号 (5/5)|完全解剖「名前とアドレス」
- Web系雑記: Windowsにおける名前解決の挙動(DNS・LLMNR・NBT)
- KASAGO LLMNR 図研エルミック
- 日々記: コンピュータ名での名前解決ができない
- プロトコルについて
ICMP
- 本の虫: Pingプログラムの話
- packet socketsを使用してパケットを送信する - ゾンビ狩りクラブ
- libnetを使用してパケットを送信する - ゾンビ狩りクラブ
- おなじみ「ping」コマンドの生みの親が20年以上前に開発秘話を記したブログ - GIGAZINE
ARP
- internal22-265-アドレスの解決 - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
- internal22-264-データ構造 - Linux Kernel Documents Wiki - Linux Kernel Documents - OSDN
- アドレス解決プロトコル - Linuxカーネルメモ
- ARPスプーフィングしてみた - Qiita
- FadisさんはTwitterを使っています 「ARPのヘッダのHardware Type、IANAのドキュメントには0x0001はEthernet(10Mb)って書かれてるけど、Fast EthernetだろうとGbEだろうと、そもそもEthernetですらさない802.11でも0x0001って言ってて、Ethernetと同じ長さのMACアドレスがあったらEthernetでいいや感が漂ってる https://t.co/XIxzAJPPzF」 / Twitter
- Address Resolution Protocol (ARP) Parameters
- FadisさんはTwitterを使っています 「ノードの識別にEthernetのMACアドレスと異なる形式を用いるネットワークではARPのHardware TypeはEthernetとは別の値になっていて、TCP/IP over アマチュア無線の為の規格AX.25ではノードをコールサインで識別する為Hardware Type = 0x0003が割り当てられている、と」 / Twitter
NIC
RNDIS
- Android USB Tethering - Gentoo Wiki
- Android テザリング - ArchWiki
- Android tethering - ArchWiki
- [Linux] USB Ether gadget(g_ether) の使い方等 - Qiita
- Overview of Remote NDIS (RNDIS) | Microsoft Docs
- [MS-RNDIS]: Remote Network Driver Interface Specification (RNDIS) Protocol
- RNDIS について | WDDDC
CDC-ECM
- cdce(4)
- Develop
- Ethernet over USB - Wikipedia
- AN64465 - West Bridge® Integration to Android on OMAP Zoom II MDP:RNDIS, CDC-ECM, and Mass Storage Functions | Cypress Semiconductor
CDC-EEM
- CDC EEM
- DriverCore
- XLsoft Corporation : エクセルソフト デバイスドライバ開発ツール : USB Communication Device Class
- MCCI Windows drivers for CDC EEM
- CDC EEM Subclass Architecture
CDC-NCM
- USBのNCM(Network Control Model)仕様が世界標準に | 共同通信PRワイヤー
- MCCI Network Control Model (NCM) class drivers
- CDC: Communication Device Class (NCM)
- TR-018_Ver1.0.pdf
- TR-017_Ver1.0.pdf
MBIM
- USB-IF、モバイルブロードバンド・インターフェースモデル仕様の提供を発表 | Business Wire
- 次世代Windows OSで変化する無線ネットワーク環境とファイルシステム (1) 無線ネットワーク機能をブラッシュアップする「モバイルブロードバンド」 | マイナビニュース
CDC-WMC
- Support for the Wireless Mobile Communication Device Class (Windows Drivers)
ASIX
- AX88772 - ASIX Electronics Corporation
- AX88772B - ASIX Electronics Corporation
virtio-net
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第3回 I/O仮想化「デバイスI/O編」
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第11回 virtioによる準仮想化デバイス その1「virtioの概要とVirtio PCI」
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第12回 virtioによる準仮想化デバイス その2「Virtqueueとvirtio-netの実現」
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第19回 bhyveにおける仮想NICの実装
- virtio(vhost)の概要 - tkokamoの日記
NIC(Intel)
- Intel® ICH 8/9/10 and 82566/82567/82562V: Developers Manual
- Intel® 82541PI Gigabit Ethernet Controller: Specification Update
- Intel® Gigabit CT Desktop Adapter Product Brief
- Intel PRO/1000 GT Desktop Adapter
- www.intel.com/content/dam/doc/manual/8255x-10-100-mbps-ethernet-controller-software-dev-manual.pdf
- Intel® PRO/1000 PT Desktop Adapter - Overview
- Intel 8254x - OSDev Wiki
- download.intel.com/support/motherboards/desktop/sb/pnpbiosspecificationv10a.pdf
- PCIe* GbE Controllers Open Source Software Developer’s Manual
- PCI-PCI-X GbE Family of Controllers Software Developer’s Manual
NIC(Realtek)
- www.cs.berkeley.edu/~kubitron/cs194-24/hand-outs/rtl8029as.pdf
- akizukidenshi.com/download/RTL8019AS.pdf
- www.intrasoft-spb.ru/pdf/Gigabit_ethernet_controller_RTL8169.pdf
- RTL8111B_8168B_Registers_DataSheet_1.0.pdf
NIC(Broadcom)
- Ethernet NIC Driver Support
NIC(Marvell)
- Marvell_88E8053.pdf
- 自作OSに10GbE NICを移植する – Raphine Project
- 既存のCAT5eケーブルで2.5Gbps、CAT6ケーブルで5Gbpsを実現する有線LAN規格「IEEE 802.3bz」が承認 -INTERNET Watch
- MII-RMII
- Yojiro UOさんのツイート: "某NICの内部カウンターのインクリメントタイミングを決めている定格80MHzのオシレータ、しばらく計測した結果80.003MHzくらいで発振してることがわかった。<40ppmくらい。なるほど。 微妙に時間がズレる。"
- Yojiro UOさんのツイート: "NIC内カウンター、クロックタイミングごとの加算値をキャリブレーションするためのレジスタがあるので、そこをほげると補正できるはず。"
- Yojiro UOさんのツイート: "80MHzのオシレータが3KHzもずれていると、1クロックあたり4.6psくらいずれていく計算になる。 1秒で0.36ms。 今時の腕時計でもこんなにずれない。"
- Yojiro UOさんのツイート: "昨日みてた某NICの内部クロック、個別にキャリブレーションして一晩ちょっとフリーランしておいた結果を眺めた。ずれは1/20くらいにはなったけどまだずれてる。 一秒あたり1usecくらい。 内部クロックだけの精度でさらに1/10くらいに追い込めそうな気はする。"
- 中村 実さんのツイート: "1/4nsってPTPの仕様上の分解能の限界だがな。一番下の桁でカウントアップしているだけじゃないかしらん? https://t.co/YPNbMUCDqo"
- Yojiro UOさんのツイート: "ちなみにintel x550のタイムスタンプの時間分解能は12.5nsのはず。"
- IzNoMaさんのツイート: "日本では10年前に 4ns分解能のがありました。特定のアトリビュートを持った udp データグラムにのみ打刻するタイプですね。 現時点での 250ps分解能はそのまま FPGAの性能向上を示してる気がします。^^ https://t.co/Ig78TWsA6k https://t.co/pQrSeaoihC"
- ryoさんはTwitterを使っています: 「動的解析の結果謎レジスタの意味がわかった。どうやら0x80000000がRSS Enableのフラグで残りはprotocol毎のRSS ringの数(2^n)のようだ。https://t.co/gwFKqbTNei 謎数値の埋め込みやめてw」 / Twitter
- aqtion-freebsd/aq_hw.c at master · Aquantia/aqtion-freebsd
- 技術書典6で自作NICドライバ本「ぼくらのイーサネットフレーム!」出します! - へにゃぺんて@日々勉強のまとめ
- ふつうのNICでハードウェアL3スイッチング; あるいはSR-IOV switchdev modeとTC hardware offloadの使用例 - yunazuno.log
- tc flowerオフロードを利用してNICハードウェア上でパケットフィルタを実施する - yunazuno.log
- RustのSTM32向けイーサネットドライバを解説する(受信編) | 己の不学を恥じる
- FadisさんはTwitterを使っています 「Ethernetヘッダが14バイトとかいう中途半端な大きさだから、4バイト境界に沿って読まないと性能が落ちるアーキテクチャではLinuxカーネルがEthernetヘッダの前に2バイトのパディングを挿入して、後続のIPヘッダのIPアドレス(頻繁に読む)が4バイト境界に来るようにするの頭良い https://t.co/rnP8NiiqVz」 / Twitter
- ネットワークスタック内の謎の2バイトについて探る - Handwriting
VLAN
- タグVLAN 設定例 | YamahaルータのタグVLAN
- 特集:ネットワーク構築の基本はVLANから(1):VLANの基本的な仕組みを攻略する - @IT
- VXLAN(RFC7348)を学ぶ:VXLANが登場した理由、他の実装との違い、特徴を整理しよう (1/3) - @IT
- Virtual Local Area Network - Wikipedia
- IEEE 802.1Q - Wikipedia
キープアライブ
- ハートビートとは|heartbeat - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- キープアライブとは|キープアライブパケット|キープアライブ機能|keep alive - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- ヘルスチェックとは|health check - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- セッションとは|session - 意味 / 定義 / 解説 / 説明 : IT用語辞典
AirPrint
IPP
- Internet Printing Protocol - Wikipedia
- Internet Printing Protocol - Wikipedia, the free encyclopedia
- IPP ‐ 通信用語の基礎知識
- IPP 1.1: Model and Semantics Main
- williamkapke/ipp: Internet Printing Protocol (IPP) for nodejs
- RFC 8010 - Internet Printing Protocol/1.1: Encoding and Transport
- RFC 8011 - Internet Printing Protocol/1.1: Model and Semantics
- FadisさんはTwitterを使っています 「PAPPL 1.0のRCが出たらしい。PAPPLは従来CUPSなどで使われていたgutenprint等のプリンタドライバをバックエンドとして、IPP Everywhereを喋るデーモン。最初からIPP Everywhereを喋るナウいプリンタを期待するナウいアプリケーションが太古のプリンタで印刷出来るようにする。 https://t.co/BH6ztn7FMR」 / Twitter
- PAPPL 1.0 RC1 Released With A Goal To Replace CUPS Printer Drivers - Phoronix
CUPS
- CUPS.org
- apple/cups: Official CUPS Sources
- Common Unix Printing System - Wikipedia
- CUPS - Wikipedia, the free encyclopedia
- Line Printer Daemon protocol - Wikipedia, the free encyclopedia
- Job Definition Format - Wikipedia, the free encyclopedia
- 2017年1月6日号 『ドライバレス』でのプリンタ対応・UWN#492・493:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- Ubuntu 17.04 その8 - ドライバーがなくてもプリンターから印刷可能に・IPP Everywhereプリンターをサポートするためテストの呼びかけ - kledgeb
- 3Dプリンタに対応した「CUPS 2.1」リリース | OSDN Magazine
- 印刷システムCUPSが15周年、最新版となる「CUPS 2.0」をリリース | OSDN Magazine
- Apple傘下で開発が進められているUNIX向けプリントシステム「CUPS」、1年ぶりの新バージョン「1.6」がリリースされる | OSDN Magazine
- Mantaroh@media=printさんのツイート: "CUPS ダイジェストから見る限り、1万の仮想プリンタを用意したテストを走らせてるってことね。仮想デバイスが作れる環境だとやりやすそう。"
- 「CUPS 2.3」リリース、新たなライセンスで提供 | OSDN Magazine
- FadisさんはTwitterを使っています 「*NIXでお馴染みのオープンソース印刷システムCUPSの開発が死んでいるという話。2007年以降CUPSはAppleの下で活発に開発されてきたが、今年に入って行われたコミットは1個だけ。CUPSの主要な開発者が今年の頭にAppleを退職している事と関係しているのではないか、とされている https://t.co/Lc4ceKgQLK」 / Twitter
- CUPS Printing System Open-Source Development Has Seemingly Dried Up - Phoronix
- Appleによるプリンタードライバーの開発がひそかに幕を閉じていたと判明 - GIGAZINE
- FadisさんはTwitterを使っています 「CUPSの今後。OSSなプリンタサーバCUPSは2007年の買収以来Appleの下で開発されていたが2019年以降開発が止まっていた。Linux Foundationが支援するOpenPrintingはCUPSをforkしてsecurity fixを行なっていたが、OpenPrintingがCUPSの開発を引き継ぐことが正式に決まったらしい https://t.co/G7BmJr8Gog」 / Twitter
- OpenPrinting Now Developing Upstream CUPS, Apple Bows Out - Phoronix
- FadisさんはTwitterを使っています 「00年代、USB接続の家庭用プリンタの多くは専用のドライバが必要で、それらのドライバを抱えてIPPに変換しアプリケーションにデバイス非依存のプリンタの利用方法を提供する為にCUPSは不可欠だった。しかし今日のプリンタの多くはIPP EverywhereやAirPrintといった共通の規格で印刷データをやりとりする」 / Twitter
- FadisさんはTwitterを使っています 「この為CUPSはプリンタを使う為に必ずしも必要ではなくなっている。そんな事情もあってか(そもそもiPhoneから印刷する為にAirPrintを普及させた張本人である)Appleは既にCUPSの改良を続ける気は無いらしい」 / Twitter
- AirPrint について - Apple サポート
- AirPrint - Wikipedia
- AirPrint - Wikipedia, the free encyclopedia
- BonjourPrinting
- Adobe Serial and Parallel Communications Protocols Specification
- 外出先でAirPrintに挑戦: あれやこれや備忘録
SNMP
SNMP MIB
- MIBを確認するために便利なツールとか – ネットワークエンジニアが日々の出来事を語る
- Windows用MIBブラウザ
- SNMP Informant Standard
- Simple Network Management Protocol - Wikipedia
- Simple Network Management Protocol - Wikipedia
- 管理情報ベース - Wikipedia
- Management information base - Wikipedia
- net-snmp download | SourceForge.net
- Net-SNMP - Wikipedia
- 100% recycled matsuuさんのツイート: "わかるー。接続数が多いサーバにsnmpd経由で取得しようとするとCPU負荷が悲惨なことになる。ちなみにnetstatも同様の事象が発生するのでss使おうな。 / “本当に恐ろしいsnmpd - Qiita” https://t.co/tvfn3GLPWl"
- 本当に恐ろしいsnmpd - Qiita
UPnP
- OCF - UPnP Standards & Architecture
- UPnPによるポートマップ - なぜなにTorrent
Captive Portal
- Captive portal - Wikipedia
- Captive Portal Problem Statementについて - ASnoKaze blog
- Captive Portalとは | OSSでのシステム構築・デージーネット
- Captive Portalとは | OSSでのシステム・デージーネット
- Captive Portalって何? - にたまご。
- Captive Portal Detectionについて - にたまご。
- Captive Portal(CAPPORT) APIについて - にたまご。
MS
- [MS-WINPROTLP]: Windows Protocols | Microsoft Docs
- [MS-WINPROTLP]: Archive Documents | Microsoft Docs
- Fadisさんのツイート: "次世代VPN WireGuardの人がWireGuardをWindowsに移植する際にマトモなIPパケット直書きAPI(所謂TUN)がなくて困り、Windows用のTUNを作ってしまったらしい。で、これが他のソフトウェアでも有用という事でWireGuardから切り離されてオープンソースで公開されたのがWinTUN https://t.co/8xC9Em74U3"
- WinTUN: Windows Finally Gets A Good TUN Driver & It's Open-Source - Phoronix
- ASCII.jp:ケーブル直結で設定なしでもWindows機の間で通信可 自動IPアドレス割り当て「APIPA」解説 (1/3)|Windows Info
スライド
- Seccamp 2016 チューター成果報告
- ネットワーク超入門
- SAI ちょっと調べてみた - Speaker Deck
- 詳解 Reliable UDP - Speaker Deck
- 「ネットワーク図」のモデル化とモデルを起点にした自動化の可能性 / onic2018 - Speaker Deck
- 作って理解するWireGuard - Speaker Deck
- L2 WireGuard - Speaker Deck
- BufferbloatとLinux - Speaker Deck
POSTD
- Pingの発展版 : httping, dnsping, smtpping | インフラ・ミドルウェア | POSTD
Qiita
- ネットワークキャプチャデータを見る時のTips - Qiita
- SLICECAP: PCAPファイルの分割並列処理 - Qiita
- coturn使ってみた - Qiita
- インターフェース名&PCIe BDF名を調べる(Ubuntu 16.04) - Qiita
- Kazuho Okuさんのツイート: "Destinationの定義もRFC1122の定義も、ホスト間の通信で0.0.0.0を使えない、と言っているだけで、ローカルホスト内での宛先として使うのは良いのでは? / https://t.co/8scijvjgFl"
- 0.0.0.0にはアクセスしないこと - Qiita
- Kazuho Okuさんのツイート: "RFCの解釈論はあまり意味がないんだけど、この場合、宛先の有効性の定義について「デバイス間の」というのは意図して書かれたんだろうし、1122にも同じ限定があるし、それは実際のソフトウェアの動作とも合致するんでしょ?"
- お盆休みにIEEE Ethernet規格(英文:個人利用無料)を読もう。1日1000ページ目標。 - Qiita
- 同期通信(synchronous communication)って言わないで! - Qiita
- WebCodecsで、簡易NWエミュレータ作ってみた - Qiita
- DID Specifications 読み進めガイド - Qiita
GitHub
ASCII Header Generator
- Protocol | An ASCII Header Generator for Network Protocols
- luismartingarcia/protocol: An ASCII Header Generator for Network Protocols
Mosh
- Fadisさんのツイート: "sshはtcpで通信するから回線品質が悪かったり、接続元が変化したりするモバイルデバイスから使うには厳しかった。そこで「udpで正しく復号できる暗号を投げてくる奴は正しい通信相手だ」でセッションを管理するのがモバイルのためのシェル Mosh https://t.co/r0L87Svo9s"
- Mosh: the mobile shell
- mobile-shell/mosh: Mobile Shell
- Dripcap
- networkprotocol/netcode.io: A simple protocol for creating secure client/server connections over UDP
- FRRouting/frr: FRR - The FRRouting Protocol Suite, forked from Quagga
- keiichishima/slicecap: The Slicecap utility slices a large pcap file into small pieces and hands over them to sub process in parallel.
- ldcsaa/HP-Socket: High Performance TCP/UDP Socket Component
- t6x/reaver-wps-fork-t6x
- Tylous/SniffAir: A framework for wireless pentesting.
- yarrick/pingfs: Stores your data in ICMP ping packets
- kcp/README.en.md at master · skywind3000/kcp
- FadisさんはTwitterを使っています 「libuinet: FreeBSDのカーネルのネットワークスタックだけ剥がしてユーザ空間のライブラリにしたやつ https://t.co/ouXKHr5mcX」 / Twitter
- pkelsey/libuinet: a library version of FreeBSD's TCP/IP stack plus extras
Wikipedia
- Resource Reservation Protocol - Wikipedia
- Wake-on-LAN - Wikipedia, the free encyclopedia
- 媒体アクセス制御 - Wikipedia
- ディープ・パケット・インスペクション - Wikipedia
- hikaliumさんはTwitterを使っています: 「spanning tree protocolは必要な場合を除いて切っておいた方がいいなというのを体感した(物理的に繋いでから通信可能になるまでの時間が全く違った)。」 / Twitter
- スパニングツリープロトコル - Wikipedia
- 帯域制御 - Wikipedia
- 帯域幅調整 - Wikipedia
- トラフィックシェーピング - Wikipedia
Twitter
その他
- じとめすきーさんはTwitterを使っています: "VLANつながらないところ見つけたのでWiresharkでパケット眺めてたらIOデータの機器からプロトコル0x8899のパケットが大量に出てた.調べてみたらループ検知用のパケットらしい."
- なぎせ ゆうきさんのツイート: "1byteが8bitとは限らないので1octet(オクテット)と表現しないと正確じゃない、みたいな話じゃないかしら。 でも、多分技術的観点での厳密さという事情より数字を大きく見せたいという理由が強そう https://t.co/qrDWGntJMq"
- 辻村 伸太郎さんのツイート: "個人的にはbits/sとByte/s、生まれが違うから別の方がしっくりくるんだけれども、ここまで物理層が世の中から隠蔽された(いい意味で)の中ではByte/sを一般的に使い回す方が間違い無いのかな?というような気もするなぁ…"
- 豆債務超過さんのツイート: "bits/s と Bytes/s を混在させるとネットワーク屋さんがキレる"
- Rockridgeさんのツイート: "Fx49:TCPウィンドウのサイズを原則としてOSの設定に合わせる一方で、Windows XPは128KB、Vista以降は512KBとした。 / “1135104 – windows upload speed limited …” https://t.co/NXbdvYY5A0"
- 勝(まさる)さんのツイート: "netmapとDPDK、パケットデータをゼロコピーでユーザプログラムからアクセスするという点だけ見れば似ているのだけど、それを実現する方法が違う、ということですね。"
- 研究千年牛酪情報保管庫菩薩さんのツイート: "世界のWebDav実装最悪だな…って言いたくなる感じのコードのところです(そして, いまつなぎたいところはこれでも動かない… https://t.co/7gLPqo3cV2"
- rclone/types.go at master · ncw/rclone
- Kazuho Okuさんのツイート: "僕のまわりのサーバ屋さんだとnetmap一択な感じなんだけど、ツイッターの日本語界隈だとdpdkの話ばかりなのは、なぜなんだろうと思ってる"
- Hiroki Satoさんのツイート: "netdb.hにあるstruct addrinfoのメンバ変数の順番がPOSIXとRFC2133で違ってるのはどうしてなのか、誰か理由を知っていたら教えてください。調べた限りでは*BSDはF, NがRFC, OがSUS, SolarisはRFC, LinuxはSUSになってるもよう。"
- Hiroki Satoさんのツイート: "FreeBSDのgetaddrinfo(3)のmanpageはSUSの原稿を許可もらってそのまま入れたのだけど、そのせいでずーっと実装と違う順番の構造体定義が書いてあったようだ。macOSもFreeBSDから持って行ってるので同じ間違いが。"
- SODA Noriyukiさんのツイート: "NetBSDにも同じ間違いがあった。 この変更が入ったのは FreeBSD: https://t.co/oJUD2d5BO1 NetBSD: https://t.co/R3bEk73zqy なので KAME Project / WIDE Project に知ってる人がいそう。 Solaris 9 は実装もmanもRFCと同じだった。 https://t.co/VMItWtp1lP https://t.co/ln9xVB3kPI"
- 神明達哉さんのツイート: "RFCとPOSIXでメンバの順番が違うのはなぜか、についてですか?うーん、わからないですね…basic APIドラフトの著者がOpen GroupとのリエゾンみたいになってPOSIXに取り込んだ、という経緯だと記憶してますが、その間のどこかで順番が変わったけど誰も気にしなかった、くらいが実情かもしれません。… https://t.co/kbOBUBxzSo"
- 神明達哉さんのツイート: "もしかするとOpenBSDの誰かがPOSIXへの取り込み作業に絡んでいたとかかもしれないですね。あるいはPOSIXのドラフトが途中で公開されててそれを参照したとか。まあすべて推測でしかないですが…いずれにせよ、2003年のRFC3493でも違ってるままなので「誰も(大して)気にしなかった」ということでしょう:)… https://t.co/lK2LOKHcbY"
- 西塚 要さんはTwitterを使っています 「なぜMTUが1500byteか。それは80年代のケーブル上の電気信号の制約に遡る。しかし今となっては、どれだけ通信が無駄になっているか。この人の記事はいつも面白い。 https://t.co/I7ttPsRoXr」 / Twitter
- Ben CoxさんはTwitterを使っています 「"Why is the MTU of Ethernet 1500 bytes?" A question I asked myself a few nights back and could not find a quick response to. So after many days in a rabbit hole I present: --- How 1500 bytes became the MTU of the internet https://t.co/7s2zFxdQHV https://t.co/gJsYv6LgJg」 / Twitter
- How 1500 bytes became the MTU of the internet
- にゃははー仙人さんはTwitterを使っています 「@uchan_nos @TumoiYorozu 原則じゃない理由としては大体のfirewall実装がpentalobe(プロトコル、送信ip、送信port、受信ip、受信port)を記録してステートレスにnaptを管理するので、それに一致しない場合は落とされます。これはUDPにも同じ実装ができるので、強めのfirewallでは落ちる場合があります」 / Twitter
- YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 tapデバイスをオープンしているプロセスは、tapデバイスに書き込まれたパケットを受信します。ip route show すると 10.0.0.0/24 宛のパケットは tap に書き込まれるようになってるはずで、自作プロトコルスタックに(OSのプロトコルスタックがtapに書き込んだ)10.0.0.2 宛のパケットが届きます。」 / Twitter
- YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 10.0.0.1 宛のパケットはOSのプロトコルスタックが処理するので 10.0.0.1 に対する ARP や ping はOSのプロトコルスタックが応答します(自作プロトコルスタックにはパケットは届きません)。」 / Twitter
- YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 tapは仮想Ethernetデバイスなのでtapに書き込まれたパケットは(見えないケーブルを通じて)何処かに送られていきます。その "何処か" がtapデバイスをオープンしているプロセスです。」 / Twitter
- YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm @tenpoku1000 そのプロセスが 10.0.0.2 宛のパケットだけを処理するなら 10.0.0.2 というノードが存在するように見え、10.0.0.3 や 10.0.0.4 宛のパケットも処理するなら 2台、3台のノードがtapデバイスの先に存在する、というようにOS側からは見えます。」 / Twitter
- おしぼり(2月18日15時半面談)さんはTwitterを使っています 「@pandax381 > ip route show すると 10.0.0.0/24 宛のパケットは tap に書き込まれるようになってる これはip addr add 10.0.0.1/24 dev tap<num>した時に自動的にそのようになるのでしょうか?(僕の理解が浅く、コマンドの仕様なのかIPアドレスの概念的に当然そうなるものなのか分からないです・・)」 / Twitter
- YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm はい、その通りです。デバイスにIPアドレスを設定したタイミングで同じサブネット宛のパケットがそのデバイスから出力されるようにルーティングエントリが自動で追加されます。 microps だとこの辺でやっている処理です。https://t.co/D9ECE96QBV」 / Twitter
- microps/ip.c at rebuild · pandax381/microps
- おしぼり(2月18日15時半面談)さんはTwitterを使っています 「@pandax381 やっと理解できました・・!!本当にありがとうございます🙇🙇 pingで10.0.0.2に届くARPパケットの送信元が10.0.0.1なのは、仮想Ethernetデバイスとして振る舞うtapデバイスから10.0.0.2のノードへパケットが転送されているからという認識で合っているのでしょうか?(何度もすみません)」 / Twitter
- YAMAMOTO MasayaさんはTwitterを使っています 「@oshibori_vmm はい、その通りです👌 tapデバイスをオープンしているプロセスがARPリプライを返せばOSのプロトコルスタック側からtapの先にノードが存在するように見え、なにも返さなければ存在しないように見えます。 なお、ARPのリプライやEthernetヘッダのMACアドレスは任意の値でも動作します。」 / Twitter
- FadisさんはTwitterを使っています 「DPDK、Linuxのtapに対してパケットを喋れるから、実は蟹のNICでもDPDKを動かせないことはない(性能が出るとは言っていない) #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「VM上でDPDKするときはCPU pinningしておかないとエミュレータがCPUを剥がしにくるのか… #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「iperfで計測するとそこでLinuxの限界にぶつかるので計測する側もDPDKw #kernelvm」 / Twitter
エンドポイント
- Kazuho Okuさんのツイート: "「endpoint: Either the client or server of the connection.」(RFC 7540 section 2.2.)はじめ、サーバを含む用例はいくらでも思いつくけど、積極的に「クライアントのみ」をendpointって呼んでる用例はあるのかしら… https://t.co/N5bU8oaJSJ"
- 徳丸 浩さんのツイート: "エンドポイントという用語はクライアントPCやスマートフォン等の端末のことで、サーバーは含まないと思っていたのですが、用例によってはサーバーも含むようですね。皆様の「語感」を教えてください。エンドポイントという用語は、サーバーを含む or 含まない?"
- Kazuho Okuさんのツイート: "ある外来語を特定の文脈でしか見たことのない人が、その語本来の意味が何か推測できない場合、その特定の文脈での用法でしか使わないものと勘違いすることはあるんだろうなとは思うけど"
- Shigeki Ohtsuさんのツイート: "RFC7540(HTTP/2)ではサーバを含むと定義しています。 "endpoint: Either the client or server of the connection." https://t.co/gLLMdIOZrm https://t.co/rtXWQ3WIGm"
- RFC 7540 - Hypertext Transfer Protocol Version 2 (HTTP/2)
- Shigeki Ohtsuさんのツイート: "RFC8446(TLS1.3)でも同じ定義ですね。 https://t.co/wmDVJqlFac"
- RFC 8446 - The Transport Layer Security (TLS) Protocol Version 1.3
sendmsg() / recvmsg() で他プロセスに fd を送信
- るくすさんのツイート: "本来はrlimitに引っかかってソケットは一定数しか作れないのに、socketpairを親子で再帰的に作って、子プロセスでcloseした後sendmsgで親に閉じたfdを渡していくというのを繰り返すと、好きなだけソケットが生成できるという仕様があるらしい。 すごい"
- SODA Noriyukiさんのツイート: "UNIXドメインソケット使ったこの機能、4.2BSDくらいで入った筈。 自分はファイルサービス用デーモンがクライアントと同じホストで動いてる場合、クライアントに fd 渡してクライアントプロセスが直接バックエンドで管理されてるファイルに書き込んだりする機能とかで使ってるなあ。 https://t.co/HUosUNlBSk"
- るくすさんのツイート: "File descriptor passing with sendmsg(2) and recvmsg(2) over Unix domain socket https://t.co/OUWgZVEkgd え fdってソケットのCMSG使ったら送信できるのか"
- SODA Noriyukiさんのツイート: "OSがもともと提供する権限機構とは別の自分で定めた方式で権限委譲できて大変便利ですよね。 https://t.co/XIkZpw3jjt"
- AoiMoeさんのツイート: "デスクリプタパッシング、setuidビットを立てたヘルパー実行ファイルと組み合わせると便利"
- SODA Noriyukiさんのツイート: "ちなみに 4.3-Renoで API が変ってます。昔は struct msg_control に msg_control メンバーがなくて、代わりに msg_accrights があった。Stevensの「詳解UNIXプログラミング」第15章に解説アリ。SVR4は古いAPI。"
- るくすさんのツイート: "@uchan_nos ん まずfdはシステムワイドなstruct fileへのポインタなので、特に違和感なく出来ると思いますよ。sendmsgの場合は受信元でfdが変わりますが、これは単にfork時に引き継がれたfdと区別するためなのかなと推測します。"
- るくすさんのツイート: "@uchan_nos ああ URL先を見て頂けると書いてあるんですが、sendmsgの場合は単にFD番号を送っているのではなく、FDを開き直して新しいFDを送ってます。(4,5です) カーネルがよろしくやってるのかと。"
masscan
- Miura HidekiさんはTwitterを使っています 「https://t.co/CsHAQK84yc こんなコードが超高速とは思えないが不思議」 / Twitter
- masscan/crypto-blackrock2.c at master · robertdavidgraham/masscan
- Shiro KawaiさんはTwitterを使っています 「@miura1729 最適化かけても特別なインストラクション使うわけじゃないですね。でも多分ここが律速じゃないんでしょうね。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 昔ICMPでmass tracerouteするやつ作ったことありますが(まっとうなとこからの依頼)、そこらじゅうでパケット落とされるので辛かったっすね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana ICMPやっぱり通らないんですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana この書き方をすると、1の立っているもっとも右のビットの位置を返す命令を生成する可能性はあるだろうけど、コメントに書きそうなものですよね。ホットスポットじゃないので手を抜いたんでしょうかね」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 gcc 7.5ではベタなコードになってました。まあ全部レジスタ内なので、他でキャッシュミス1個あればどうでも良くなる話ではありますね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@anohana なるほど。たしかにどうせネットワークを相手にしているわけなのでそういうところをチューニングした方が得策でしょうね。」 / Twitter
users
@mhiramat
- まさみさんは語りたいさんのツイート: "loopデバイスは一応drivers/blockの下にあるからブロックデバイスとして認識されるはずなのか。"
- まさみさんは語りたいさんのツイート: "未だout-of-treeのWifiドライバも多いんですよね・・・。… "
- henrichさんのツイート: "freeではない(OSSではない)firmware blob提供してるベンダーに言ってもらわないと、どうしようもないんだな、これが。あるいはunofficial image使う。… "
- denden2501@ゴーゴーさんのツイート: "頼むからぁ debian さぁ Wifi くらい自動認識しろよ…… "
- まさみさんは語りたいさんのツイート: "GPUでRAIDコントローラのロジックを実行させた上で、他のポートにつながった複数のNVMeに対してRDMAをする、というのはもうありそうなんだけど見つからない。"
@shirouzu
histric-1
- SHIROUZU(白水啓章)さんのツイート: "linuxのtcコマンドのように、NICに latency / jitter を設定できないかな…netshとかにあるといいのだが。試しにWSL上のtcを使ってみたが、Cannot talk to rtnetlink: Operation not supported となった。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "40G NIC同士の直結転送で転送レートが波打つ(綺麗に規則的に)原因が今のところ謎…。 10G NIC同士だと、綺麗に10Gbps近隣で安定。 また単独動作だと、PCIe*2なSSDアクセスで48Gbps、RAM-Diskで80Gbpsで安定。 割り込み&上位層までのコピー・結合コストあたりか。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Mellanox 40G NIC、UDP sock 3つを投げっぱなしでようやく、40Gbps達成!(笑)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "udpでのwritev(iov)相当は、sendmsgもしくは(udp_sockに)connectを掛けた上でwritevと。 Win系だとIOCPとRIOの組み合わせになるのかしらん?(要調査)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gb NICのWin10Pro同士で、FastCopyでの転送実験。 ほぼ10Gbpsまで速度が出る。 ジャンボパケットOFFだと、6Gbps前後に速度低下。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "(少なくともL2レイヤでは)ジャンボフレームは自動選択できるようにならないものかしらん。 (この記事ではDIXフレームにサイズフィールドが無いので…とあるが本当にこれが理由なのか、やや疑問に思うところも) https://t.co/wgrieGFGJo"
- 【10GBASE-T、ついに普及?】10GbEでは「Jumbo Frame」が効果的、1Gとの混在環境ではMTUサイズに注意【期待のネット新技術】 - INTERNET Watch
- Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gb高レイテンシ環境を作るには、10Gb NIC2枚刺しPC(Linux)を調達してブリッジさせるのが一番良いかな。 次はCoffeeLakeではなくて、Ryzenマシンにしてみよう。 (satさんのおかげか、最近は不安定という話が聞こえてこない)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "10G NIC2枚刺しにするか、10G dual-port にするか、微妙に迷い中。 PCI-E Gen3とGen2で結構な価格差がある様子。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "新しいPCのための部材発注が終わった。 10GブリッジなLinuxマシンとして動作させることがメインなので、検討した結果、 i3-8100 という選択になった。(グラボなし)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今回のNIC は Intel X540-T2 という 10Gb dual port に。 ASUS 10G のJumbo Frame最大は約16KBだったが、Intelは15.5KBと書いてある…X540-T2をブリッジで使うなら、全てを9KBで統一した方が安全かな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "今のところ、ブリッジモード + tcコマンドで、結局10Gpbs出ない可能性が一番気になる点だが、さてどうなることやら。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NVR500で、NAT descriptorを2つ定義した上で、ip route gateway ... filter ... gateway filter という形で、1G回線と100M回線をsrcのipaddr範囲で使い分けるようにしてみる。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2用Linuxドライバは自分でmake install。 すると ixgbe.ko がインストールされ、(念のためrmmod ixgbeした後)modprobe ixgbe とすれば、dmesgに enp2s0f0: renamed from eth0 等と出るはずと。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Linuxで10Gbitなブリッジを作る件、目論見通りに動作。 Win10 -- Linux(Bridge) -- Win10 という経路で、FastCopyで転送実験した時の模様。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ブリッジに遅延を入れた場合のSMBの速度変化。 10ms - 10.0 Gbps 50ms - 2.5 Gbps 125ms - 1.0 Gbps 250ms - 0.5 Gbps"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "パケットロスを0.1%でも入れると、125ms latencyで 20Mbps ~ 200Mbpsで波打ちつ。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2 の dmesgメモ。 ixgbe: Multiqueue Enabled: Rx Queue count = 4, Tx Queue count = 4 XDP Queue count = 0 ixgbe: PCI Express bandwidth of 32GT/s available ixgbe: (Speed:5.0GT/s, Width: x8, Encoding Loss:20%) ixgbe: Intel(R) 10 Gigabit Network Connection"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "10Gbps相手だと1.5GB/sec程度の性能があれば十分だけど、できれば3GB/s程度のストレージを用意したいところ。 (ピーク速度3~6GB/s出る環境はあるものの、持続するのは15GB程度の領域までなんだよなぁ…)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyで10Gbps NIC 経由100GBファイルコピー。 結果は80.0秒、ネットワーク転送レートは 9,898.6 Mbpsという結果。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "5MB程度の大量をネットワーク越しに処理する場合、(少なくともSSD同士なら)並列処理した方が明らかに速い。 Read/Writeと違って、CreateFile/CloseHanldeには非同期処理が無い、という点が大きいかもしれない…まだ探求すべき点は結構あるなぁ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ジャンボフレームOFFでも、ほぼ10Gbps出るように。 (前回は片側がRAM-Diskだったため、(CPU全体では余裕があったが)1コアの天井を打っていた可能性…あとで確認しておこう。今回は両側でM.2 SSD)… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "実験メモ。AES128CTR暗号化、CoffeeLake-S世代(3.6GHz)で1.5GB/s、さくらVPS東京(Xeon E5-2650 2.60GHz)で 698MB/s、さくらVPS大阪( Westmere E56xx/L56xx/X56xx)で 534MB/s。 いずれもAES処理に1コア使い切り状態で。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "最新CPUで複数コアを使えば、10GbpsネットワークでのAES-CTRがギリギリこなせるレベルかな。GCMになると厳しいかも。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NVR500のDHCPD、ログ出力が頻繁に出て(抑止方法もない)、他の大事なログが埋もれてしまうため、自宅サーバ側に isc-dhcpd-serverを立てた。 ただ、ISCとしては isc-dhcp よりも kea dhcp server が一押しらしい。 (リース情報をテキストファイルではなく、PostgreSQL等に格納するらしい)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの速度調整、そこそこ低コストで妥当なロジックを思いついた。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "動作中時間 T が総時間の R%(=r) になるよう、スリープ時間 S を計算する、という中学レベルの方程式を計算した。 結果、S = (T - rT) / r となった。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "とはいえ、OS側バックグラウンド処理があると過剰に処理が進むし、シークの連続性が失われることで過剰に遅くなることもありえて、純粋なSleepでの速度調整というのは、もともと無理があるけれど。 (実際に全力writeして最高速度を求めた後に、最高速度*rへ調整しない限り)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Intel X540-T2(10G*2port)はPCIe Gen2なので8レーン仕様だが、X550-T2はGen3なので4レーン仕様。 20Gbps以上を非サーバ系マシンで使う場合、Gen3対応でないとPCIeレーン数不足になりやすいので気をつけないと。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 + ASUSの10G NICで、1.5KのUDPを大量に送り付けられると(受信プロセスは無くとも)、その間フリーズしてしまう。(マウスすら動かない) Linux + Intel X540だと、そんな現象は起きないので、OS or ドライバの作りの問題かしらん?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "特定コアで処理しようとして固まっている印象なので、RPS/RSSをサポートしていないという話? なお、9K以上の大きなUDPパケットになると問題は起きなくなる。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10(WS)+ASUS XG-C100C と Linux(4.17)+Intel X540 では、ジャンボフレームなしでも、TCP性能はあまり変わらないが、UDP受信性能が大幅に違う。(後者が良い。前者はそもそも固まる) 前者のダメっぷりはOS/ドライバに起因するのか、ハードウェアに起因するのか…面倒だがHW交換してみるかな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "azure東海岸とUDP通信すると、転送レートが飽和するのは、0.02%くらいのロス率を越え始めたとき。820Mbps前後。 ちなみに、100Mbpsでもロス率0.002%で、0%にはならない。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarm運用、10.7PB、1.1億ファイルで、5ファイルの書込後のデータ破損を検出。(I/Oエラーなし) ちなみに、gfarmのベリファイは、src読込時のテンポラリエラーも検出できるのだろうか? (そのためには、srcを2回読んでhash計算も2回行う必要あり)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarmでは、md5やsha1等を検証に使っているとのことだが、md5やsha1は並列演算が難しいため、速度ネックにならないのだろうか? ハッシュツリー化して並列演算対応したり、xxhash等の圧倒的に軽いhashを使う、などの構想はあるのかしらん? https://t.co/z7b9P7UEVs"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyの場合、I/Oよりもmd5が速度ネックとなる事態が発生。 そこでストライプによる並列演算プロトタイプを作ったが、xxHash最適化でI/O速度を十分超えたため、まずはxxHashをデフォルトとすることで、問題解決とした。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Read I/O、Write I/O、src-hash計算、dst-hash計算、全てが独立スレッドでパイプライン的に動作させていたのだが、まさかhash計算がネックとなるとはと思った記憶。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "gfarmの5件のデータ化け、どういう化け方をしていたのかにも興味がある。 僅かな個所のbit flipしていたのか、I/O単位で丸ごとデータ化けしていたのか等。 (FastCopyで1例だけ、高負荷でバスリセットが何度か掛かった挙句、上位にエラーを通知なしにDMA転送が数ページ欠落と思われる事例あり)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ASUS 10GNIC(XG-C100C)、UDPで大量通信するとドライバが死んだ。 昔から、安物NICはアプリ側UDP通信に弱いの個人法則。 (昔のカニドライバ、UDPでギリギリでIPフラグメントが発生すると常に受信破棄とか、Win3.1時代、UDP通信すると不安定になるベンダドライバを思い出したり)… https://t.co/0gpJ3TnR8X"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「いまだに、RealTek NIC の UDPチェックサム・オフロードのバグが無くならない…困ったものだ。 https://t.co/sJKkwN9Nkt」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ちなみに、ペイロードが1501~1563byte(octet)、のようにギリギリでフラグメントが発生するUDPパケットでのみチェックサムが狂い、受信先によって捨てられてしまう。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これ、NICをswapしても結果変わらずだった。 つまり、Windows(Pro for WS)では、UDPパケット受信 → recvfromまでのどこかで、処理が追い付かない。(TCPなら問題なし) これはLinuxのNAPI的な仕組みがないということかな? https://t.co/GE3f7qsLGf」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「これを見るとドライバ依存ながら、NAPI的な処理はやっているっぽい? https://t.co/JHy3or3NLv それと Linux softirq に相当する DPC(Delayed procedure call)もあるので、なおさら謎…(存在するれどUDPで使われない場合がある?)」 / Twitter
- NAPI for windows — OSR
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tss_ontap 90年代にオンライン情報処理を取ったときも、アーランやM/M/1のあたり必須知識でしたね。 (そして「トラヒック」というNTTだかJISだかの表記がずっと使われていたり)」 / Twitter
@fadis_
- Fadisさんのツイート: "pub/subモデル: subscriberがtopicに参加し、publisherがtopicにメッセージを送るとtopicに参加しているsubscriberにメッセージが送られるモデル #boostjp"
- Fadisさんのツイート: "いにしえのネットワークプログラミングではクライアント毎にスレッドを立てて処理したりしたけど、スレッド作りすぎるとコンテキストスイッチのオーバーヘッドが大変な事になるから非同期でネットワークI/Oしよう #boostjp"
- Fadisさんのツイート: "複数のスレッドでio_serviceをrun()するとタスクの実行順序が保証されない。「参加」「脱退」「配信」をそのまま流すと脱退前に用意した配信が脱退の処理を完了した後に実行されてしまう恐れがある #boostjp"
- Fadisさんのツイート: "そこでasync_writeの中でコネクション単位のキューを用意し、同じコネクションに対する書き込みは順序が保証されるようにした、と #boostjp"
- Fadisさんのツイート: "RFC4614 A Roadmap for Transmission Control Protocol (TCP) TCPの拡張が多すぎて何処に何があるか分からんから「まとめ」を作りました、と https://t.co/Y0Lkfhfwe8"
- RFC 4614 - A Roadmap for Transmission Control Protocol (TCP) Specification Documents
- Fadisさんのツイート: "さくらVPSがPS4を自称して通信を待ち受けてたりするけど不審な者ではありません(IPoEにIPv4しか喋らないPS4のP2Pな通信を乗せるにはIPv6でVPSにVPNを張って、PS4からのブロードキャストをVPNでVPSに投げて、UPnPのパケットをそこで拾うしかなかった)"
- Fadisさんのツイート: "SCTPはVerification Tagと呼ばれる32bit値をハンドシェイク時に通信相手と共有している。SCTPはVerification Tagを通信相手の識別に使える為、ソースIPアドレスを通信相手の識別に使うTCPと異なり、通信の途中で送信元のIPアドレスが変わってもセッションを維持する事が出来る"
- Fadisさんのツイート: "systemdの人達がIPv4の衝突検出、IPv6の近傍検索、DHCPといったネットワークの設定をするソフトウェアに必要になる基本的な機能をライブラリ化したオープンソースライブラリを公開。その名もnettools (ifconfigとかで知られるnet-toolsとは全くの別物) https://t.co/62fDlRcciT"
- Linux Is Getting New Network Libraries From Veteran systemd/BUS1 Developers - Phoronix
- FadisさんはTwitterを使っています 「Linuxのネットワークまわりを網羅的に解説する為に要求される知識幅広すぎ問題( 一体幾つの輻輳制御アルゴリズムとQoSを実装してんだ。お前はIPXを、AppleTalkを覚えているか。iptablesが第四層を読んでいる、だと。そもそもTCPがでかい。よーしカーネル自力でDHCP喋っちゃうぞ。Open vSw(以下略」 / Twitter
- FadisさんはTwitterを使っています 「802.3adはリンク毎の帯域に基づいてパケットを割り当てる為、パケットの送受信の時刻を必要としている。ところがDPDKはNICをポーリングで操作する為ポーリング間隔が大きくぶれると正確な帯域の変化が計算できない。この為802.3ad使用時は100msに1回は送受信しろ、とドキュメントに書かれている」 / Twitter
@kazuho
histric-1
- Kazuho Okuさんのツイート: "TCP_NOTSENT_LOWAT をゼロにしたら ssh がハングする問題、デバッグするためにコンソールつなぐのがめんどくさくて切り分けませんでした #spkai"
- Kazuho Okuさんのツイート: "sockaddr_unがsockaddr_storageよりでかくなることがあるSolarisと、getsockoptにsizeof(sockaddr_storage)より大きいサイズ渡すとエラーを返したlinuxか。つらい #spkai"
- Kazuho Okuさんのツイート: "すっごいマジレスするとTCP接続本数を増やすことでダウンロードが高速化されるのは、回線の途中で輻輳が発生している場合のみで、つまりその場合は他のTCP接続に割り振られるべきバンド幅を奪ってる。途中の回線で輻輳が発生していない場合はTCP接続1本が最速で、複数本接続すると遅くなる"
- Kazuho Okuさんのツイート: "「UDPはトランスポートレイヤプロトコルではない。IPパケットを多重化するための仕組みである。本来はIPレイヤにポート番号が入っているべきだった」 #ietf96j"
- Kazuho Okuさんのツイート: "snd_wnd と snd_cwnd と inflight を一度に取れる OSX 最高!他のOSは全部イマイチ、という結論になりつつあるw"
- Kazuho Okuさんのツイート: "パケット単位でコンテクストスイッチが必要になるTCPサーバで、カーネル内にTCPスタックがあることがオーバーヘッドになるというのは昔からある話であり、一方でそのようなアプリはあまり多くない"
- Kazuho Okuさんのツイート: "そして、パケットよりも小さいメッセージを大量にやりとりするシステムでは、TCPスタックの位置を寄せることよりも、各エンドポイントで複数のメッセージをとりまとめ、少数本のTCPストリームに多重化するほうがパフォーマンスが稼げる。なぜならパケット数が減るから"
- Kazuho Okuさんのツイート: "というわけで、僕は、パフォーマンスの観点からはユーザランドTCPに懐疑的です"
- Kazuho Okuさんのツイート: "寄せるとしたらユーザランドに寄せるべきですし、実際quic対応でトランスポートの独自実装を進めてますね https://t.co/ZTm4PyhnEj"
- Kazuho Okuさんのツイート: "“c - Linux: Can Recvmsg be used to receive the IP_TOS of every incoming packet - Stack Overflow” https://t.co/XdY35puqSg"
- c - Linux: Can Recvmsg be used to receive the IP_TOS of every incoming packet - Stack Overflow
- Kazuho Okuさんのツイート: "トランスポートにおいて「path」がIPアドレスの組を指すのか、4-tuple(ポート番号を含む)を指すのかは形而上の議論のあるところだと思うけど、個人的には「address validation」あたりの用法がIPアドレス「とポート番号」を指して「アドレス」と呼んだりするので諦めてる"
- Kazuho Okuさんのツイート: "2RTTくらいの遅延を許容できるならFEC使わない方が帯域増えてうれしいよねという基本的理解"
- Kazuho Okuさんのツイート: "そろそろ日本語がやばいというか、congestion controlの日本語訳が輻輳制御なのはわかっても、loss recoveryの日本語がわからない"
- Kazuho Okuさんのツイート: "再送制御と呼ぶような気がしてきた"
- Kazuho Okuさんのツイート: "微細化が壁にぶちあたりつつある影響の話、インターネットプロトコル屋さんからすると、光の速度はずっと不変だし、速くなるCPUと広がるバンド幅をより上手に使いたいという要求は今後もかわらないでしょ?という感じな気がする"
- Kazuho Okuさんのツイート: "再送制御の応答性に対する要求というのは、昔から一貫してあるもので(なぜなら光速は不変だから)、インターネットのバンド幅の拡大に伴いレイテンシがボトルネックになったというのとは全然関係ない話ですよ"
- Kazuho Okuさんのツイート: "5GだとRTTの変動が激しくてトランスポートがパケロスと誤認するという話。おもしろい。この資料公開されるのかしら #html5j #html5j_h"
- Kazuho Okuさんのツイート: "うーん。ちゃんと考えると、単なるRTTの増大をQUICがパケロスと誤認することはないんだよね(リオーダーが絡むとありうる)。BBRが誤解するのはわかる。再送・輻輳制御のチューニングとしては今後課題になるんだろうなぁ"
- HTTPP and 5G fixed1
- Kazuho Okuさんのツイート: "TCPの場合は、再送制御でロスを検出したらCWND縮小してたけど(そののちにspuriousだと判断したら拡張)、QUICはspuriousの区別ができるので、ロスが確定したタイミングでCWND縮小するという違い"
- Kazuho OkuさんはTwitterを使っています: 「相手が何も送ってこないならwrite直後にcloseしていいし、readがゼロを返すのは相手が書き込み側をshutdownした時」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「16KBはだいたい妥当なイメージだけど、L1$を全部上書きしちゃわないかは気になる」 / Twitter
- Inada NaokiさんはTwitterを使っています 「OSのソケットバッファからユーザーランドの受信バッファへのコピーするときのバッファサイズってどれくらいあれば効率良いのかな。 16KiBでもケチりすぎかな。」 / Twitter
- Inada NaokiさんはTwitterを使っています 「https://t.co/E7cGucNIkI MySQLのデフォルトは16KiBなのでとりあえず今の4KiBは小さすぎる。」 / Twitter
- MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.1.4 サーバーシステム変数
- Kazuho OkuさんはTwitterを使っています 「pipeだとすると両プロセスは別コアになって並行動作するからそれぞれのプロセスにおけるワークセットサイズ問題になるんだろうか / https://t.co/15H57eIxNy」 / Twitter
- go-sql-driver/mysql のバッファサイズが4KiBなのは小さすぎる?? - methaneのブログ
- Kazuho OkuさんはTwitterを使っています 「会社ブログのネットワークパフォーマンス記事、自前のUSBイーサネットアダプタで書いた私がとおりますよ https://t.co/ybtQa2m56t」 / Twitter
- Can QUIC match the computational efficiency of TCP? Our research says yes. | Fastly
- Kazuho OkuさんはTwitterを使っています 「必要な時に必要な機材にアクセスできることは重要だけど、デチューンした環境を使えば済む話ってのは、いっぱいある」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「ただ、これは性能改善のための指標がほしい開発側の論理なので、普段、容量設計のために絶対値を求めがちな運用側の人に言うと、ぽかんとされることがある」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「WebTransport はともかく、本格的にやるならTCPよりQUIC勉強したほうが良いのは間違いないと思う。TCPは歴史的事情から開発コストに対して得られるメリットが小さいが故にメジャーなプレイヤーがQUICに移行したわけで、じゃあ今後誰がTCPに投資するの、という」 / Twitter
- VさんはTwitterを使っています 「WebTransport / QUIC / HTTP/3 はいろいろな場面で使えると思っているので、引く手あまただと勝手に思ってます。」 / Twitter
- Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「いまQUIC勉強して入れる会社ってCDN屋さんかブラウザベンダー、あと時雨堂?とか考えたけど、前職でATSのHTTP2対応パッチ書いた人たちはAppleに転職していたし、GAFAはじめ行けるところは結構あるのかもね」 / Twitter
- VさんはTwitterを使っています 「いまなら QUIC を勉強して人生一発逆転だ!はどうでしょうか。」 / Twitter
- 小川晃通(あきみち)YouTubeでIPv6解説動画作ってますさんはTwitterを使っています 「プログラミングを勉強して人生一発逆転だ!と考える人が多いのに、TCP/IPを勉強して人生一発逆転だ!と考える人が稀に思えるのは何故なのか」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「一方で、パフォーマンス出るTCP+TLS自前実装するより、QUIC実装するほうが、だいぶ楽だとも思う。TCPやりたくない(やらない)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「TCPって自転車を魔改造して高速走れるようにしたみたいなもんで、自転車は作れたとしてもそこからの積み上げが死にそうなんだよね。QUICは最初からエンジン含め高速用に設計された四輪車なので」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「RFCのMUST,SHOULD,MAYといったキーワード、定義はRFC 2119になるけど、命令とか推奨というより、 * MUST - 守らないと問題が出るかも。出たら自分のコードを直すしかない * SHOULD - 守らないと問題が出るかも。出たら相手側に直してもらってもいい (続く)」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「* MAY - やってもやらなくてもいい。問題が出たら相手側に直してもらう くらいの認識」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「法律ではなくて相互運用性を確保するためのルールなので、問題発生時の切り分けのためのガイドラインであって、それを予め守っておけば問題の発生可能性を下げておくことができる、くらいの。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「メモ: CLOSE_WAITステートのソケット全消しは ss --tcp state CLOSE-WAIT --kill でできる cf. https://t.co/GX00GENPQp」 / Twitter
- linux - How do I remove a CLOSE_WAIT socket connection - Stack Overflow
@rui314
- Rui Ueyamaさんのツイート: "OSI 7層モデルを使ってプロトコルを教えるのはやめたほうがいいんじゃないかなぁ。OSIは過剰設計で誰も使わなかったわけで、そのモデルを説明しても仕方ないというか、実際のEthernet/IP/TCPを直接普通に説明すればいいだけのような。OSIにどうマップされるかはトリビア的な… https://t.co/ftfQfxzJkr"
- Rui Ueyamaさんのツイート: "もはや意味がないのになぜいまだにOSI参照モデルを使って実際のプロトコルを教えているのかというと、きちんと教える=OSIモデルを説明する、という固定観念があるだけだと思う。そろそろ自分がそう教わったから同じことをそのまま教えるというサイクルは切った方がよいような。"
@kumagi
- kumagi2.0さんのツイート: "c10K問題に続きc10M問題というのがあって、コア数程度のスレッド数でO(1)なselectで適切にソケットを扱っても、ネットワークパケットをカーネル空間とユーザ空間の間でコピーするコストだけで性能がサチってCPIがガタ落ちするとかいうやつ。"
- kumagi2.0さんのツイート: "1千万接続を超えるあたりで性能がサチるc10M問題にどう対処するかというと、DPDKみたいな方法でカーネルを経由せずに全部ユーザ空間でゼロコピーでやるようにするとか言ってて世の中こわいですね。"
@methane
- INADA Naokiさんのツイート: "輻輳じゃなくて無線環境によってパケロスが生じるモバイルの場合はどうなんだろう?>複数TCP"
- INADA Naokiさんのツイート: "無線だと、スループットはそこそこあるんだけど、遅延が大きく、パケロスも多い、っていう環境なんで、TCPの性能発揮しづらそうなんだよな。"
@KuniSuzaki
- suzakiさんのツイート: "データセンターネットワーク4つ目。カーネルバイパスする高速TCPの研究は良いが、現在のTCPは複雑であり、カーネルスタックを使わないのは賢くない。特にカーネル内でTCP/IP ネットワークスタックは高速であり、問題はIOである。この問題を解決するstackmapの提案。"
- suzakiさんのツイート: "Stackmapではカーネル内で静的なバッファ割り付やFile Descriptor arrayとScratchpadのデータ構造を追加し、カーネル内で高速IOを実現。カーネル内のTCP/IP スタックは再利用する。"
@marbocub
- まあぼ@cubさんのツイート: "だから「数字を大きく見せたいからbpsじゃないか」みたいなモノとはぜんぜん違う。"
- まあぼ@cubさんのツイート: "僕はネットワーク屋さんじゃないからキレないけど、混同されると「ああこの人は分かってないんだな」って思った後で、相互の理解の一致に至るまでのハードルの高さを感じて身構えたりする"
- まあぼ@cubさんのツイート: "イーサネットなんてフレームサイズやプロトコルなどの条件を仮定した場合での表記になっちゃったら、かえって面倒だと思うの"
- YAMAMOTO Yuji: 山本悠滋さんはTwitterを使っています 「"研究所が開発している”HOLISTIX”は、GUIでネットワークを設計(Plan)し、自動的に通信機器(ルータなど)の設定を生成、動作確認(Verify)から実際のルータへの設定反映(Deploy)までを行う集中管理ツールです" / “JANOG48 IIJ バーチャルブース | IIJ Engineers Blog” https://t.co/eCEBn7fuhg」 / Twitter
- JANOG48 IIJ バーチャルブース | IIJ Engineers Blog
- 伊津野 英克さんはTwitterを使っています 「0始まりで8進数って仕様、いろんなプログラムでバグの温床になってて本当に誰も得しない仕様だよなぁ。」 / Twitter
- 高梨陣平さんはTwitterを使っています 「GoとRustのnetモジュールにIPアドレスの解釈に脆弱性。IPアドレスの表記にleading zeroを用いた場合、0が単純に捨てられる。IETFのオリジナルの仕様では0で始まる数値は8進数として扱う必要がある。 元々、Pythonで同様の誤りが指摘されていた。」 / Twitter
- Go, Rust "net" library affected by critical IP address validation vulnerability
- BleepingComputerさんはTwitterを使っています 「Go, Rust "net" library affected by critical IP address validation vulnerability - @Ax_Sharma https://t.co/iH7OBtzxVI」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「そういえば TCP/IP というより、socket I/F にイマイチ感を昔から感じてたり。 0byte の recv/read に大事な意味持たせるとか、recvfrom に dest addr 無いとか。」 / Twitter
USB
その他
- hwhack: ugenでラピッドプロトタイピング(*BSDでUSB)
- 『*BSDでのUSBデバイスドライバーの実装』 2003年10月18日 OFUG勉強会資料
- USB-仕様 - SyncHack
- USB.org - Welcome
- Universal Serial Bus - OSDev Wiki
- USBの基礎知識 ――パケットのフォーマットからプロトコルの詳細まで|Tech Village (テックビレッジ) / CQ出版株式会社
- 電子工作室
- ディスクリプタ | ルネサス エレクトロニクス
- FAQ 1004570 : USB HUBコントローラでTransaction Translator (TT) とはなんですか?また、"Single" と "Multi" とはなんですか? – ルネサス エレクトロニクス株式会社
- Type-C、WiGig、AirFuel……:2016年に期待のPCテクノロジー“5選” (2/3) - ITmedia PC USER
- 現代PCの基礎知識(7):仕様書を紐解くとわかる―本当はややこしいUSB | Think IT(シンクイット)
- NetBSD で USB デバイスを強制的に ugen(4) として attach したい - nikki
- USB-PD Sniffer - The Chromium Projects
- USB3.0のデバドラを書いてみた - livaの雑記帳
- mvp/uhubctl: uhubctl - USB hub per-port power control
- uhubctl/uhubctl.c at master · mvp/uhubctl
- View any installed/connected USB device on your system
- USB/Descriptor - SyncHack
- www.picfun.com/usb02.html
- エンドポイントとは | インターフェイス株式会社
- USB/エンドポイント - おなかすいたWiki!
- アドレスの設定 | ルネサス エレクトロニクス
- USB HID クラス ‐ 通信用語の基礎知識
- USB Human Interface Devices - OSDev Wiki
- UEFI自作OS日記 v0.6.1 ゆ。 - 借り初めのひみつきち
- Nerry さんはTwitterを使っています: 「USBマウスのブートプロトコルにはホイールのデータがないけど、通常のレポートデータの後に(規格外の)ゴミがつくことが許容されていて、実際にホイールだけ動かすと[0 0 0]のデータが飛んでくる。」 / Twitter
- Nerry さんはTwitterを使っています: 「おそらくブートプロトコルモードのときはホイールのデータをマスクしていて、レポートプロトコルモードにするとゴミだった部分にホイールのデータが来ると思われる。 試した限りブートプロトコルモードでホイールデータが取れそうなマウスはなかった。」 / Twitter
- Nerry さんはTwitterを使っています: 「GPDってどうもデータないときにinterrupt転送すると一瞬で0返す実装になってるぽくて、現在のXHCIドライバは一度に大量の転送するとURBが一時的に発行できない状態になるのでそれが原因な気がする」 / Twitter
- Nerry さんはTwitterを使っています: 「GPD pocketがマウスに触った瞬間キーボード応答なくなる・・・」 / Twitter
- Nerry さんはTwitterを使っています: 「最初のデバイスのIF 0がbootキーボードでIF 1が汎用HIDになってて、おそらくマウスを触るとIF 1のデータが詰まってキーボード側がうんともすんとも言わなくなる」 / Twitter
- 汎用的なBadUSB - 這いよれ Cracking Lab - Medium
- WebのペリフェラルAPIに関わるセキュリティ懸念
- FadisさんはTwitterを使っています 「WebHID: 特殊なゲームパッド等の標準的なAPIから扱えない入力デバイスをWebから扱えるようにするAPI。ユーザが許可した入力デバイスに対する生のアクセスが可能になる。デバイス屋さんは悪意あるWebページがデバイスのファームウェア書き換えるかもしれないから気をつけてね https://t.co/lgRifGMQ60」 / Twitter
- WebHID API
- FadisさんはTwitterを使っています 「で、このWebHIDが次のChromeから使えるようになる、と。まじかよ https://t.co/Gx1zWNp8Rn」 / Twitter
- Chrome 86 Beta Enables Native File-System API By Default, WebCodecs Added - Phoronix
- FadisさんはTwitterを使っています 「LinuxカーネルにCorsairの電源ユニットのドライバが入ったらしい。通常電源にドライバは必要ないが、一部のCorsairの電源は温度、各電源ラインの電圧、電流等の値を取るUSBデバイスが生えている。このドライバはCPUの温度センサ等と同じhwmonで、sysfsから値をとる事ができる https://t.co/fw1TjYuzux」 / Twitter
- The Reverse-Engineered Corsair PSU Linux Driver Continues To Be Improved Upon - Phoronix
- FadisさんはTwitterを使っています 「Linux 5.13にGeneric USB Display(GUD)ドライバが入りたがっている。GUDデバイスに向かって描くDRMドライバとGUDデバイスになりきって別のDRMデバイスに要求を流すGadgetドライバで構成され、USBデバイス側になれるLinuxマシン(RasPi4等)でUSB外付けディスプレイを自作できる https://t.co/h5x5xUF6YG」 / Twitter
- Generic USB Display Driver "GUD" Slated For Linux 5.13 - Phoronix
- 電子工作室
USB Sniffer
- Event Tracing for Windows (ETW) の トレースプロバイダーリストを取得してみる - tech.guitarrapc.cóm
- Download Microsoft Message Analyzer from Official Microsoft Download Center
- 百害あって一利無し!のAMD USB Filter Driverの削除方法 - PC破壊日記的ブログ
- フィルタドライバ入門
- フィルター ドライバー
- レポート22:デバイスオブジェクト
- [HOWTO] フィルタ ドライバに IOCTL を送信する方法
- Windowsデバイスドライバ開発入門 - 人とか機械とか
- USBView の中身を見てみる - Japan WDK Support Blog - Site Home - MSDN Blogs
- USBView ってなに? - Japan WDK Support Blog - Site Home - MSDN Blogs
- ユニバーサル シリアル バス (USB) (Windows Drivers)
- デバイス ノードとデバイス スタック (Windows Drivers)
- Windows-driver-samples/usb/usbview at master · Microsoft/Windows-driver-samples
- Windows-driver-samples/LICENSE at master · Microsoft/Windows-driver-samples
- 新しい WDK (Build 10586) と EWDK を使ってドライバーをビルドするまで | Japan WDK Support Blog
- 重箱の隅のデバッグ(2) – エラーの意味を探る – JAPAN Platform SDK(Windows SDK) Support Team Blog
- Microsoft/windows-driver-docs: The official Windows Driver Kit documentation sources
- Windows 10 と SHA-1 廃止ポリシーによるドライバー署名への影響について – Japan WDK Support Blog
- Windows 10 Anniversary Update で適用されたドライバー署名の新しいポリシーについて – Japan WDK Support Blog
- USBディスクリプタ解析ツール usbview | Infinitegra TechBlog
コントローラ
EHCI
- Enhanced Host Controller Interface - OSDev Wiki
- Enhanced Host Controller Interface Specification
- Enhanced Host Controller Interface Specification: Addendum
- IntelチップセットのUSBの実装がいつの間にか変わってた件 - 人とか機械とか
- ドキュメント一覧 | ルネサス エレクトロニクス
- japan.renesas.com/products/soc/usb_assp/download/USB102-INFO-2-01J.pdf
xHCI
Twitter
その他
- Yojiro UOさんはTwitterを使っています: "@syuu1228 xhciのspecを見直してみたら冒頭からこんなに強調してるんだよね。本当に実装ないのかなあ。 http://t.co/GHUmGzchPP"
- Hiroki Satoさんのツイート: "今時なら xHCI の DbC が使えるものが多いので、それで我慢するしかないですね。UARTほど単純なものではないですが。… "
@NerryN3
histric-1
- Nerry さんのツイート: "USBって規格上127個までだったと思うけどxHCIのデバイススロット32とか64しかない奴が多いんだけどもしかして127個も繋げない?"
- Nerry さんのツイート: "Atom系→AddressDeviceまで進む Core系→EnableSlotが無視されるまたは死ぬ"
- Nerry さんのツイート: "nopは反応あるのにenable slotするとなんとも言わなくなるのがよくわからんΣ(-᷅_-᷄๑)"
- Nerry さんのツイート: "qemuだとなんの反応もないけと実機だと一応通信してるのか?… "
- Nerry さんのツイート: "stall errorとtransaction error😩"
- Nerry さんのツイート: "USBについて詳しくなっていくほどにUSBはHIDに向いてない規格だという気持ちが強まる"
- Nerry さんのツイート: "USBの抜き差し検知できるようになった。 実質1ビットの入力ポートを手に入れたヽ(•̀ω•́ )ゝ✧"
- Nerry さんのツイート: "まだ解放処理がうまくできてないから挿入時にenable slotすると2回目の挿入で死ぬ。 enable slot無効化したバージョンだと抜き差し自体は検知できるよになった"
- Nerry さんのツイート: "disable slotもうまく動いたʕʘ‿ʘʔ… "
- Nerry さんのツイート: "ん、なんか動き怪しいな・・"
- Nerry さんのツイート: "細かいバグ修正とDisableSlot対応して抜き差しできるようになったくらいで全体的には進捗微妙(´・ω・`)"
- Nerry さんのツイート: "AddressDevice終わったのにGetDescriptor出来てないし、今だにEnableSlotうまく動かない機種もある(´・ω・`)"
- Nerry さんのツイート: "AddressDevice終わってもまだEndPoint有効になってない?"
- Nerry さんのツイート: "進捗 ほとんどの環境で割り込みとEventRingは概ね動いている EventRingの動く環境でCommandRingは動いてNopCommandも反応があるが、EnableSlotが動く環境と動かない環境がある EnableSlotできる環境ではAddressDeviceも動く TransferRingが動く環境と動かない環境がある データ転送は全滅"
- Nerry さんのツイート: "進捗じゃないなただの現状整理か"
- Nerry さんのツイート: "昨日の進捗は AddressDeviceでInputContextとDeviceContextを混合してた間違いを修正 ポート抜き差しの通知に対応してDisableSlotできるようになった、ただし複数回抜き差しすると不安定"
- Nerry さんのツイート: "xHCIデバイスとお話できるようになるまで手順多すぎだし必要な構造体も多すぎだし禿げる:;(∩´﹏`∩);:"
histric-2
- Nerry さんのツイート: "やっとGetDescriptor出来た😡… "
- Nerry さんのツイート: "GPD WIN… "
- Nerry さんのツイート: "1個転送失敗しとるが"
- Nerry さんのツイート: "USBデバイスってDEVICEのDESCRIPTORには実質ほとんど情報がない😩"
- Nerry さんのツイート: "CONFIGRATION DESCRIPTOR + INTERFACE DESCRIPTOR 見えた あと1個なんかくっついてるぽいけどなんだろ… "
- Nerry さんのツイート: "21ってHID DESCRIPTORか"
- Nerry さんのツイート: "xhci.c 800行あってできることがコンフィグレーションのダンプ😩"
- Nerry さんのツイート: "明日はバスドライバ作れるといいな"
- Nerry さんのツイート: "今日の進捗 デバイスとお話しできた"
- Nerry さんのツイート: "GET DESCRIPTORできるようになったということはUSBバスに信号流せるようになったということで、やっとひとつ上のレイヤーに進める。"
- Nerry さんのツイート: "xhciは複数のデバイスのリクエストを非同期に処理するけど、port status changeからaddress deviceまではevent trbで区別できるけどそれ以降の普通のUSBプロトコルの転送はtrb見ただけだと何の転送かわからない"
- Nerry さんのツイート: "ひとつのリクエストを処理中は他のリクエストを受け入れないようにすれば区別が容易だけど、それは頭悪い。 デバイスごとにthread作って管理するのも大袈裟な感じがする。 fiber使うのがいいのかなぁ"
- Nerry さんのツイート: "デバイスのコンフィグレーションの段階になるとひとつのdescriptor読み込んで処理してつぎのdescriptor読み込んで処理してみたいな感じになるので転送ごとに処理を区切るのは現実的ではない"
histric-3
- Nerry さんのツイート: "configuration descriptorのサイズ見て読み直してるヽ(•̀ω•́ )ゝ✧… "
- Nerry さんのツイート: "読み込み待ちがゴミのように適当です"
- Nerry さんのツイート: "あとはendpoint descriptor見つけてごにょごにょすれば入力できそうな予感"
- Nerry さんのツイート: "descriptor解析するとこうなる… "
- Nerry さんのツイート: "boot interfaceしかサポートしてないHID実は多い?"
- Nerry さんのツイート: "configure endpointうまくいかない"
- Nerry さんのツイート: "きのうのしんちょく ホストコントローラードライバーとバスドライバーを分離した ディスクリプター読み込んでごにょごにょ configure endpointは成功しなかった"
- Nerry さんのツイート: "fiber未実装なのでデバイスごとにthreadで仮実装 転送やコマンドの実行結果をデバイスに返す手段がまだない"
- Nerry さんのツイート: "HIDかどうかはもう認識できてるのでHIDのポーリングはやろうと思えばできるのか?"
- Nerry さんのツイート: "config endpoint動いた。 キー入力まであと一歩!… "
- Nerry さんのツイート: "qemuではキー入力取れた。… "
- Nerry さんのツイート: "実機ではうまくいかない:;(∩´﹏`∩);:"
- Nerry さんのツイート: "なんかtimeout起こしてるぽいな。interrupt転送の仕様よく分からん:;(∩´﹏`∩);:"
- Nerry さんのツイート: "transaction errorってどういうことだ:;(∩´﹏`∩);:"
- Nerry さんのツイート: "じつはmoeは最初からHID前提で作ってたのでキーコード読めれば入力できる (6key対応してない手抜きだが)… "
- Nerry さんのツイート: "ん、一部のデバイスがbabble error返してUSBトランザクション壊れてHIDのデータ転送まで悪さしてるのか"
- Nerry さんのツイート: "babble errorどうすればいんだ…"
- Nerry さんのツイート: "🤔 > A babble error occurs when the hots computer or the device receives more data than the specific maximum packet size."
- Nerry さんのツイート: "しばらくほっといたらやばなってた… "
- Nerry さんのツイート: "なんかdescriptorがめちゃくちゃでかいデバイスあってバスおかしくなってるみたいだけど…"
- Nerry さんのツイート: "というかdevice descriptorにpacket size 64って書いてるのに9バイトのデータ読み取り失敗してどうするんだ"
- Nerry さんのツイート: "きのうのしんちょく configure endpointできた qemuはget reportもinterrupt inも動いてキー入力できた 実機は動かない"
- Nerry さんのツイート: "babble error解消したけど肝心のHIDがtransaction error直らん"
- Nerry さんのツイート: "normal trbしか送ってないのにtransactionもくそもないのだが・・・"
- Nerry さんのツイート: "HIDってクラス030000と030101と030102だけだと思ってたら意外と別のクラスのデバイスが存在してた 仕様書にも乗ってないデバイスはどうしたらいんだ"
- Nerry さんのツイート: "030300番台ってHID仕様書にものってない謎デバイスなんだが…… "
- Nerry さんのツイート: "うまく動かないのこの機種固有の問題ではないかと他の機種で試すと起動しないかboot keyboardサポートしてない:;(∩´﹏`∩);:"
- Nerry さんのツイート: "virtual box割り込み動かんけどイベントポーリングしたらUSB認識しよった… "
- Nerry さんのツイート: "試しにキーボード繋いでみたら普通にキーボード読めた🤔… "
- Nerry さんのツイート: "configure endpointでちゃんと1返ってきてからのtransfer commandでendpoint not enabled error😩"
- Nerry さんのツイート: "実機でデバイスとお話しするところまで行けなくてその上のレイヤーに行けない😭"
- Nerry さんのツイート: "xhciドライバエミュレータではそこそこ動いてるけど実機だとうまく動かんどころかUSB接続した瞬間再起動するバグもあるので本流に乗せれない😿"
- Nerry さんのツイート: "qemuでは概ね動く vboxは割り込み動かないけどポーリングなら動く ほとんどの実機でport status changeは動く(時々割り込み止まる enable slotがうまく動かない機種がある descriptorとれてendpoint設定できる機種でも読み込みが動かない"
- Nerry さんのツイート: "初期のsurfaceはシリーズ違ってもキーボードコネクタ互換あったけど、同じような見た目でも結構中身違うんだな。… "
- Nerry さんのツイート: "surface 3pro type coverは USB HID 03000 surface 3 type coverはUSB HID 030300 surface 2? type coverはI2C HID"
- Nerry さんのツイート: "同じコネクタでUSBとI2Cが同居してる。いったいどんな規格だ"
- Nerry さんのツイート: "これ、初代surfaceに繋ぐとUSBになってsurface3に繋ぐとI2Cになる・・・(RTは今試せず"
- Nerry さんのツイート: "初代RTで試したら何を繋いでもI2Cになった🤔"
- Nerry さんのツイート: "まとめ 初期のsurfaceキーボードコネクタはUSB HIDとI2C HIDのデュアルスタック RT系デバイスに繋ぐと基本I2C、Pro系に繋ぐと基本USBで繋がる。一部例外がある"
- Nerry さんのツイート: "どうでもいいことに時間を費やした。そして久々にRT起動した。"
@uchan_nos
histric-1
- OS作れないマン WalB担当さんのツイート: "xHCIのリングバッファの実装方法おもろいな。書き込みポインタが一周するたびに「周回ビット」を反転させて、その周回ビットをリングバッファの各要素に書き込んでおくらしい。読み込み側も周回ビットを独自に持っていて、周回ビットと要素のビットが等しいなら有効なデータだとして処理。"
- OS作れないマン WalB担当さんのツイート: "ソフトウェア側が読み込みポインタを更新すると、xHCはそこまでの要素が処理し終わったと認識するらしい。ということは、そのメモリ位置への書き込みがコンパイラ、またはCPUでリオーダされないようにしないと微妙にバグりそうだ。"
- OS作れないマン WalB担当さんのツイート: "QEMUのxCHIドライバのソース読んだら規格と全然違う実装してあってこりゃ動くわけないぞ"
- OS作れないマン WalB担当さんのツイート: "CRCRレジスタ唯一有用なビットをマスクしちゃってたらそりゃ0になるわ。さらに規格で「読みだすと0」になるべきビットをマスクしてなかったり。"
- ファッション自作OSマンさんのツイート: "livaさんにuioでxHCIドライバを書く際に気をつけることを教わった。それは、xHCIサポートを外したカーネルを使うということ。サポートを外しておかないとカーネルと自分のドライバが競合する。"
- ファッション自作OSマンさんのツイート: "xHCIドライバをまずモジュールにしつつ、自動読み込みしないようにしておく。"
- ファッション自作OSマンさんのツイート: "QEMUのxHCIドライバにNo-Op Commandが実装されてない.悲しみ."
- ファッション自作OSマンさんのツイート: "自作OSのxHCIドライバに割り込みに対応する機能を追加した。これでコマンド発行から完了通知割り込みまではできるようになった。次はUSBデバイスがポートに接続されたのを検知する機能と、ポートの初期化部分を書く。"
- x86-64-128さんのツイート: "xHCIのUSBSTS.CNR(Controller Not Readyビット)が0になれば大丈夫だと思っていたら,そのビットだけの検査では不十分で,USBSTS.HCRST(Host Controller Resetビット)が0になるのを待つ必要があるっぽい."
- x86-64-128さんのツイート: "USBCMD.HCRSTが0になるのを待つようにしたらすこぶる快調である."
- x86-64-128さんのツイート: "再設計したUSBドライバによるキーボード読み取り成功"
- 技術書典4 け-51 x86-64-128さんのツイート: "少なくとも「USB 3.0 設計のすべて」という書籍より,xHCIのドライバ部分の記述は具体的になっている.例えばデフォルト・コントロール・パイプのMax Packet Sizeの決定方法について,その本には書いてないが僕の本にはある."
- OS開発ゼミ担当 uchan_nosさんのツイート: "昨日の調査まとめ.USBの受信が遅いなーと思っていたのは,どうやらエンドポイントのbIntervalに左右されていた.64msに1回しかポーリングしないようになっており,キーボード入力がそれよりちょっと遅いと,とたんに128ms周期になってしまい,取りこぼす."
- OS開発ゼミ担当 uchan_nosさんのツイート: "作戦としてはバッファを大きくしつつ,データ量が少ない時にshort packet割り込みを発生させれば,もし1入力しかなくてもすぐ入力できるし,複数入力が待機しているときも全部入力できるかなーと."
- OS開発ゼミ担当 uchan_nosさんのツイート: "MinnowBoard Turbotに搭載のxHCIって,もしかしてShort Packet割り込みが発生できない?"
- OS開発ゼミ担当 uchan_nosさんのツイート: "Short Packetについて勘違いしていたっぽい.Short Packetは基本的には1パケットのバイト数がwMaxPacketSizeに満たないときに発生するのであって,私が使っているキーボードのwMaxPacketSizeは8だから,絶対にShort Packetにはならない."
- OS開発ゼミ担当 uchan_nosさんのツイート: "ふーむ.すると64msのポーリング周期で取りこぼさないようにするにはどうすれば?"
- OS開発ゼミ担当 uchan_nosさんのツイート: "僕が使っている外付けキーボードがポンコツなんだろうと思ってLinux機に挿したらめっちゃ快適に入力できたんで,どうやら悪いのは自作ドライバの方だ"
- OS開発ゼミ担当 uchan_nosさんのツイート: "キーボードのInterrupt INに対応するTransfer Ringに事前に複数のTransfer TRBを積んでおけば取りこぼさないだろうと思ったんだけど,依然として取りこぼすな."
- OS開発ゼミ担当 uchan_nosさんのツイート: "OVMFのxHCIの実装を見た感じ,どうやら1msに1回の頻度でTransfer TRBの完了を監視していて,完了してたら次のを投げる,みたいにしてる感じがする."
- OS開発ゼミ担当 uchan_nosさんのツイート: "え,USBデバイスのEndpoint Descriptorに書いてあるbIntervalの値ってなんなの?参考程度の情報?bIntervalより小さな値を設定すると,ちゃんとインターバルが縮まるんだけども."
- OS開発ゼミ担当 uchan_nosさんのツイート: "よっしゃ.キーボード入力の取りこぼしがなくなった"
- OS開発ゼミ担当 uchan_nosさんのツイート: "英語の数式表現がよくわからないんですけど,これってどういう計算すればいいんですかね round X down to the nearest base 2 multiple of Y * 8"
- OS開発ゼミ担当 uchan_nosさんのツイート: "解明できてきたけど、まだ "nearest base 2 multiple of Y * 8" が謎… "
- やめるのだフェネックで学ぶC++さんのツイート: "ご参考までに、以下のコードではround~2を、2のべき乗単位に切り下げるという意味で使っているようです(floorBase2関数 : Utils.h, Utils.cpp)。間違っていたらすみません。 https://t.co/L76z73Qy2N… "
- OS開発ゼミ担当 uchan_nosさんのツイート: "USBホストコントローラのIntervalに設定する値が切り捨てなのか切り上げなのかの謎は、結局完全に解決はできなかった。round downと書いてあるのを鑑みると切り捨てっぽいな、という感じだけど、英文が完全に解読できたわけではない。"
- uchanさんはTwitterを使っています 「最近、UEFIのUSBホストコントローラドライバの実装を読んでるんですけど、まだ最初の方なのに知らなかったことがいくつかあって参考になりますねこれ。」 / Twitter
- uchanさんはTwitterを使っています 「「いくつかのサードパーティのxHCI外付けカードは64ビットレジスタアクセスをサポートしてないから32ビット×2回で書き込みます」っていうコメントがあったりして趣深い(仕様書読んでるだけじゃ絶対に手に入らない知識)」 / Twitter
- uchanさんはTwitterを使っています 「USB ドライバのデバッグをしていて、完璧ではないけどかなり前進した。以前まではUSBホストコントローラの動作を開始した直後にシステムがフリーズしていたのだけど、今はご覧の通り、正常に起動するようになった。完璧ではないと言うのは、キーボードとマウスが使えないこと。 https://t.co/MdNjxJpykY」 / Twitter
- uchanさんはTwitterを使っています 「原因を完結にまとめておく。USBLEGSUP拡張レジスタにXHCの所有権を表すビットがあり,そのBIOSビットが立っていたのが原因。UEFIが所有権を持っているのにOSがXHCを起動しようとしたから処理が競合したらしい。USBLEGSUP.OSを1にして所有権を要請し,所有権がもらえてから操作したら大丈夫だった。」 / Twitter
- uchanさんはTwitterを使っています 「マウスとキーボードが動かないのは,この実験用PCに謎に2つのxHCIが載っているから説。自作OSでは最初に見つかったxHCIだけを親だと思うから… https://t.co/226CDE3Qv3」 / Twitter
- uchanさんはTwitterを使っています 「xHCIのCRCRに関する仕様,ほぼ同じで若干違う表現が使われてるの気になる。なんだろう? RCS: Reading this flag always returns ‘0’. CS: Reading this bit shall always return ‘0’. CA: Reading this bit always returns ‘0’. Command Ring Pointer: Reading this field always returns ‘0’.」 / Twitter
- uchanさんはTwitterを使っています 「flagとbitで変えてる意味が分からない。fieldは,まあそれが1ビット幅じゃないから分かる。shallの有無もよく分からない。」 / Twitter
- tamura🍺さんはTwitterを使っています 「@uchan_nos なんとなく,shallがついてると「そうではない場合がある (そうではない時は何かがおかしい)」と言いたいのかなと.flag と bit はなんだろう… RCSって0ビット目でしたっけ?であればシフト演算なしに取り出せるからflag??? bitはビットマスクで取り出す的な??? わからん」 / Twitter
- uchanさんはTwitterを使っています 「@y7amura Shallについては,なるほど… flag/bitは,RFLAGSレジスタにたくさんの「hoge flag」があることを考えると,ビット0だけをflagと呼ぶ,というのは若干眉唾ですね… 分からないですねw」 / Twitter
- uchanさんはTwitterを使っています 「パワポのテンプレートってほとんど作ってこなかったんだけど,ふいに作りたくなって作った。シンプルな感じで仕上がった。 https://t.co/4CZaNhl2VT」 / Twitter
@liva
- Fadisさんのツイート: ".@liva_jyxHCI さんの「(USB3.0 HC)デバドラを自作してみよう」が始まります #kernelvm"
- Fadisさんのツイート: "「みなさん、USB使いますよね?デバドラ書いたことありますか?」って煽ろうとしたら前回のカーネル/VMでもうデバドラ書いてる話が出てたwww #kernelvm"
- Fadisさんのツイート: "USB 3.0通信速度みたいな物理的な側面が進歩として有名だけど、「USBデバイスたるもの持っていなければならない情報」が大幅に増えてソフトウェアがデバイスの事をより詳しく知って扱えるようになったことも大きいんだよな #kernelvm"
- Fadisさんのツイート: "USB1.1/2.0ではCompanion Host Controllerで使用するコントローラを選択して、それぞれのコントローラに対するドライバでデバイスを叩いていたが、3.0では1.xから3.xまでの全てのデバイスが期待するプロトコルをxHCIホストコントローラが喋るようにな… https://t.co/B5TiVlRMdj"
- Fadisさんのツイート: "自作OSをしていると、ネットワークサポートとUSBサポートを作らないと基本的人権が満たされない #kernelvm"
- Fadisさんのツイート: "自作OSへのUSB 1.1と2.0のホストドライバの実装の経験から3.0のドライバは絶対書きたくないと思ったが飲み会で作ると宣言してしまい3ヶ月かけて実装した、と #kernelvm"
- Fadisさんのツイート: "品質が心もとない自作OSの上でデバイスドライバの開発を行うと問題が起きた時どちらの問題かわからなくて開発が難航する → uio(User space IO)を使ってとりあえずLinux上でドライバの開発を行う #kernelvm"
- Fadisさんのツイート: "発表者「NetBSDがやっているなら僕でもできる」 #kernelvm"
- Fadisさんのツイート: "CPUいじめてSEGVしちゃうどっかの人 #kernelvm"
- Fadisさんのツイート: "UIOでユーザ空間でドライバの開発を行うとlibcが使えるので開発時の生産性が上がる → そうして動くところまで持って行ってからカーネルに移す #kernelvm"
- Fadisさんのツイート: "xHCIホストコントローラはUSB 3.0の速度でスループットを出せるようにインターフェスがEHCIから大きく変更されている #kernelvm"
- Fadisさんのツイート: "xHCIでは接続されたデバイス毎にslotと呼ばれるリングバッファが確保される #kernelvm"
- Fadisさんのツイート: "xHCIのリングバッファはバッファの最後の値をnextとするリンクリストでしかなくどのくらいの長さのループにするか等はソフトウェアレベルでコントロールできる #kernelvm"
- Fadisさんのツイート: "xHCIではハブにつながっているデバイスも全てホストコントローラで面倒を見る #kernelvm"
- Fadisさんのツイート: "HHKBを繋いでテストしようとしたらHHKBが後ろについているUSB端子のためにハブを積んでいてなぜかハブのドライバを書く羽目になった、と #kernelvm"
- k/vm 関西#8 - Google ドライブ
- liva/xhci_uio
- 雑記(10月〜12月) - livaの雑記帳
@t_hash425
- t_hash425さんのツイート: "USB3 hubのHS部分が不定期にdisconnectされる件、いろいろやってたらFでも起きることに気付きテスト用のが当たりhubと判明した ケーブル替えたりLPMいじったりこんなに時間かけて一体なんだったのか"
- t_hash425さんのツイート: "FでもIntelさんのxHCはattachするごとに空いたslotでなく次のslotを使うらしく、このhubをつないでおくとデバイスのアドレスが1ずつ増えてく Nではずっとやってると無反応になる"
- t_hash425さんのツイート: "Nのxhci.cの実装だとIntelさんのxHCがctrl xferでのLINK TRBをうまく処理できないぽい Intelさん以外だと起きない"
- t_hash425さんのツイート: "そういやaddr = XHCI_SCTX_3_DEV_ADDR_GET(le32toh(cp[3]))のle32tohを忘れてる big endianだと動かなさそう"
- t_hash425さんのツイート: "r1.63で直したつもりのLink TRBの扱いの件が直ってなかった 前回のテストではi/f upしt確認していたが、!IFF_UPのままifconfig axe0を連射すると7回目で刺さる"
- t_hash425さんのツイート: "xfer ringの255番目にLink TRBが置かれるとTDが無視されるようにみえるが(ただしIntelさんに限る)、upしてるとtick taskが定期的にctrl xferを流すので問題が隠れてしまっていたと思われる"
- t_hash425 @t_hash425
@ryo_on
- Ryo ONODERAさんはTwitterを使っています: "XHCI_TRB_3_EP_GET(trb_3)=1か。"
- Ryo ONODERAさんはTwitterを使っています: "でも、xHCI 1.1によるとroute stringというのはSuperSpeedのために必要なものであるらしいので、HighSpeedしか扱わないのであれば必要ないか。"
- Ryo ONODERAさんはTwitterを使っています: "帰りにxhci 1.1 specを読んでいたのだが、疑問に思っていたことが次々と書いてあって、やっぱりちゃんと読まないといけないと思ったのであった。"
- Ryo ONODERAさんはTwitterを使っています: "紙でxhci 1.1 specを持っていたら読むのは楽だと思ったが、500 pagesはちょっと持ち歩けない。"
- Ryo ONODERAさんはTwitterを使っています: "xHCI 1.1 4.10.2.3に、一応解説があるようなので読んでみる。"
- Ryo ONODERAさんはTwitterを使っています: "xHCI 1.1 4.6.5 Address Deviceを読んでみる。"
- EXtensible Host Controller Interface - OSDev Wiki
- www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/extensible-host-controler-interface-usb-xhci.pdf
- セカンド・オピニオン (345) USB 3.0の研究(72) | マイナビニュース
- セカンド・オピニオン (346) USB 3.0の研究(73) | マイナビニュース
- セカンド・オピニオン (347) USB 3.0の研究(74) | マイナビニュース
- セカンド・オピニオン (348) USB 3.0の研究(75) | マイナビニュース
- セカンド・オピニオン (349) USB 3.0の研究(76) | マイナビニュース
- IDF 2013 - USB 3.1や新規格「Media Agnostic USB」などUSB関連を総まとめ (1) 2倍の転送速度を目指すUSB 3.1 | マイナビニュース
- USB Type-Cのspecを少し読んだので解説する - 人とか機械とか
- SkylakeではXHCI(USB 3.0)のみのサポートとなる: 98のWeblog
- 規格の1mを超える転送が可能に:USB 3.1 Gen2の転送距離を延ばすマルチプレクサー - EE Times Japan
- ERI USB-Audio用USBを考える
- 【レビュー】ASUSのプロトタイプで10Gbps対応になったUSB 3.1を試す - PC Watch
- 【大原雄介の最新インターフェイス動向】USB 3.0 その5 - PC Watch
- uio_pci_genericでデバドラを書く<その1> - livaの雑記帳
- uio_pci_genericでデバドラを書く<その2> - livaの雑記帳
- uio_pci_genericでデバドラを書く<その3> - livaの雑記帳
- USB Memo · osdev-jp/osdev-jp.github.io Wiki
- 【技術書典4】USB 3.0 ホストドライバ自作入門を出します(ダウンロード頒布有) - uchan note
- USB3 host driver program structure
- moe の xHCI / USB 実装 - 借り初めのひみつきち
- USB/xHCI インタラプト転送の罠 - 借り初めのひみつきち
- 最小限の USB Hub 対応 - 借り初めのひみつきち
- USB3.0ドライバ開発の道 - uchan note
- USB3.0ドライバ開発の道
- USBキーボードドライバを作成した - 備忘録やめた
- USB ASSP | ルネサス エレクトロニクス
UCSI
- FAQ: Windows システムの USB Type-C コネクタ (Windows Drivers)
- USB Type-C Connector System Software Interface (UCSI) driver (Windows Drivers)
- USB Type-C Connector System Software Interface Specification
- Winhec_USBTypeCIntroductionandImplementationinWindows10.pdf
- USB 3.1 Electrical Design
- USB_Type-C_challenges-jp.pdf
- BIOS Implementation of UCSI
- USBC000って何だ? - Speaker Deck
- ASCII.jp:USB Type-Cで再スタートを切ったWindowsとUSBの関係 (2/2)|Windows Info
- ASCII.jp:Windows 10とUSB Type-Cとの関係を深掘りする (1/2)|Windows Info
- ASCII.jp:USB Type-Cで再スタートを切ったWindowsとUSBの関係 (1/2)|Windows Info
ストレージ
USB MASS
SCSI
- SCSI command - Wikipedia
- SCSI CDB - Wikipedia
- SCSI Status Code - Wikipedia
- Fadisさんのツイート: "SCSIコマンド、歴史的な理由で大量にあるから、自分が使うコマンドだけ使えれば良いイニシエータ側の実装は簡単だけど、多様なコマンドに備える必要があるターゲット側の実装は物量的な意味で容易ではないんだよな"
SFF-8020i/MMC-2(ATAPI)
- AT Attachment 8 - ATA/ATAPI Command Set
- sff8020i.pdf
USB Floppy Interface(UFI)
- Microsoft Word - usbmass-ufi10.doc
- マスストレージクラスコマンドセット | インターフェイス株式会社
- USB mass storage device class - Wikipedia
- USB Mass Storage Class Devices - OSDev Wiki
- Microsoft Word - usb_msc_boot_1.0.doc
- USB/Class/Mass-Storage - SyncHack
- www.usb.org/developers/docs/devclass_docs/usbmassbulk_10.pdf
- labo.nshimizu.com/thesis/b2003/0aet1132.pdf
- 実践しながら学ぶ Android USBガジェットの仕組み(11):Android USBパケットをキャプチャーし、UMSプロトコルを解析する!! (1/3) - MONOist(モノイスト)
- 実践しながら学ぶ Android USBガジェットの仕組み(12):Android USBマスストレージクラスのパケットを理解しよう! (1/3) - MONOist(モノイスト)
- 実践しながら学ぶ Android USBガジェットの仕組み(13):UMSクラスドライバを改造し、Androidを“CD-ROMドライブ”として認識させる!! (1/3) - MONOist(モノイスト)
- Fadisさんのツイート: "USBマスストレージと通信するプロトコルとして古くから用いられているBulk Only Transportでは、SCSIコマンドをデバイスに投げる→コマンドにデータが伴う場合はデータを受ける|投げる→コマンドの結果をデバイスからもらう の3つの状態の繰り返しでデータを読み書きする"
- Fadisさんのツイート: "USBMSがリトルエンディアンで、その上に乗ってるSCSIがビッグエンディアンで、それ投げて返って来るパーティションテーブルがリトルエンディアンなの、個々の規格には何も問題がないけどくっつけると優秀なトラップになってる"
- マスストレージクラス転送方式 | インターフェイス株式会社
UASP
- USB Attached SCSI - Wikipedia, the free encyclopedia
- デュアルソケット・ザ・ワールド Windows 8 で USB3.0 の UASP を ENABLE(有効) にする方法
- 価格.comマガジン ランダムライトが約3倍高速に! Windows 8で高速化するSSDケース
- セカンド・オピニオン (336) USB 3.0の研究(63) | マイナビニュース
- セカンド・オピニオン (337) USB 3.0の研究(64) | マイナビニュース
- セカンド・オピニオン (338) USB 3.0の研究(65) | マイナビニュース
- セカンド・オピニオン (339) USB 3.0の研究(66) | マイナビニュース
- セカンド・オピニオン (340) USB 3.0の研究(67) | マイナビニュース
- ASCII.jp:USB 3.0対応HDDが速くなる? Windows 8でのUSBの仕組み (1/3)|塩田紳二のWindows 8 IN-N-OUT
- UASPとは|USB Attached SCSI Protocol - 意味 / 定義 / 解説 / 説明 : IT用語辞典
- UASP ‐ 通信用語の基礎知識
- USB 3.0 Boost ‐ 通信用語の基礎知識
MTP
- 第653回:MTP接続 とは - ケータイ Watch Watch
- メディア転送プロトコル - Wikipedia
- Media Transfer Protocol - Wikipedia, the free encyclopedia
- Microsoft and FotoNation Team to Support the Media Transfer ProtocolFor Wireless Digital Still Cameras | News Center
- 【Android】USB接続時のMTP/PTPモードを切替える方法 | TeraDas-テラダス
- Media Transfer Protocol Specification
- AndroidのUSB接続は説明した:MTP、PTP、およびUSBマスストレージ
- MTP (Media Transfer Protocol) ‐ 通信用語の基礎知識
- Download Media Transfer Protocol Enhanced Specification from Official Microsoft Download Center
PTP
- 画像転送プロトコル - Wikipedia
- Picture Transfer Protocol - Wikipedia, the free encyclopedia
- pima15740-2000.pdf
- ISO 15740:2005 - Photography -- Electronic still picture imaging -- Picture transfer protocol (PTP) for digital still photography devices
- PTP (Picture Transfer Protocol) ‐ 通信用語の基礎知識
- Rufus - 起動可能なUSBドライブを簡単に作ろう
- pbatard/rufus: The Reliable USB Formatting Utility
- ブータブルUSBドライブ作成ツール「Rufus」がメジャーバージョンアップ、v3.0に - 窓の杜
ベンダ固有
FTDI
- USB/Class/Serial - SyncHack
- FT232R
- FTDIドライバにおけるLatancyTimerについて
- Linux/drivers/usb/serial/ftdi_sio.c - Linux Cross Reference - Free Electrons
- FTDI Knowledgebase
- uftdi(4)
- Linuxで高速なUARTを使ってみた - Qiita
PaSoRi
libusb
- libusb - Wikipedia, the free encyclopedia
- libusb-win32 download | SourceForge.net
- libusb
- libusb-1.0 API Reference
- libusb-1.0.18
- hiro99ma blog: libusb-1.0はzadigを使うべし
- libusb-1.0のメモ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ
- 平坂久門ただいま失業中: libusb-1.0でUSBデバイスのEPをR/Wするサンプルプログラム
- libusb
- libusbについて - Linux工作室
WinUSB
- WinUSBデバイスとシリアル通信するには | garicchi.com
- WinUSB (Winusb.sys) (Windows Drivers)
- Daisuke Kobayashi - WinUSB で USB デバイスと通信 1 - 概要
- 第157号(2012年3月7日発行) 技術レポート「WinUSBを用いたWindowsアプリケーション開発」|ソフテックだより|株式会社ソフテック
- WINUSBの簡単な初歩や基本的な使い方・利用方法・仕様方法・やり方 | 初めての利用方法や使用方法・初心者でも簡単 使い方ラボ
- WinUSB.sys事始め/ウェブリブログ
- WinUSB - AVR etc
libpafe
libnfc
- NFC Tools
- libnfc: libnfc reference manual
- MacでPasoriでNFCカードを読んでみる(libnfcを使って) | 9ensanのLifeHack
- RC-S330をLinuxで使う | 團長の小部屋
- nfc-tools/libnfc: Platform independent Near Field Communication (NFC) library
- libpafe
- gsuica
- suica_plugin
- GEdy
- edy_plugin
libpasori
- libpasori - RC-S320操作コード
- PaSoRi/RC-S320 - osdev-j (MMA)
PC/SC
- NFC - Web Application Programming Wiki*
- NFC/PC_SCサンプル - Web Application Programming Wiki*
- スマートカード
- スマートカードサブシステム
- PC/SC Workgroup
- pcsc-lite: API
- Zinnia hacks tomorrow.
- NFC 入門 | TipsZone
nfcpy
- nfcpy in Launchpad
- Python module for near field communication — nfcpy trunk documentation
- Raspberry Pi と Sony RC-S380/P、nfcpy で NFC カードの IDm を読み取る | 傀儡師の館.Python - 楽天ブログ
- nfcpyでお手軽NFC開発[1/2]
- nfcpyでお手軽NFC開発[2/2]
- raspberry piでSuicaの履歴の表示 | TomoSoft
- Raspberry Pi 2 で NFC (FeliCa) を使えるようにする - しばやん雑記
- RaspberryPiとICカードリーダ - アラのアラアラしい日記
- Raspberry Pi に nfcpy をインストールする手順 - 2016年3月 私家版 : @jsakamoto
- OS作れないマンさんのツイート: "nfcpyのGetting Started通りにやるだけでは、複数のsystem codeを持つNFCはうまく扱えない。on-discoverコールバックの中で、引数targetのsensf_resメンバを強制的に書き換えることで対処。"
- OS作れないマンさんのツイート: "もっと単純に idm, pmm = tag.polling(希望のsystem code) tag.idm, tag.pmm, tag.sys = idm, pmm, 希望のsystem code とすれば万事OKだった。"
- nfcpy で複数の System Code を持つ NFC タグを扱う方法 - uchan note
- IC SFCard Fan
- PaSoRi - Wikipedia
- Sony Japan | FeliCa | 法人のお客様 | 製品情報 | ICS-D010・D004・D002・D003
- Sony Japan | FeliCa | 法人のお客様 | 技術情報/FeliCa技術方式の各種コードについて
- hiro99ma blog: RC-S380はRC-S370ではない
- hiro99ma blog: [win8]RC-S380のデバイスドライバ/ライブラリ
- Jさんのツイート: "Today, JR East explained global NFC phones will support Mobile Suica in the future. https://t.co/f6lZG7tmAg"
- Sony Japan | FeliCa | 個人のお客様
- iPhoneでモバイルSuicaが使えるようになる? - NFC対応スマートフォンにFeliCa搭載という流れ (1) NFC Type Fの採用が決め手となる | マイナビニュース
- iPhoneがおサイフケータイ(FeliCa) に対応か。Apple Payが間もなく日本上陸 - Engadget Japanese
- DirectInput と XInput - 借り初めのひみつきち
- FadisさんはTwitterを使っています 「linux-5.7からiPhone等の急速充電ドライバが入るらしい。iPhoneはUSBで接続された時点では0.5A以下で充電を行うが、急速充電デバイスに書き込みがあると2.5A吸って充電するようになる。専用の充電器はこの書き込みを行なうが、同様の操作をlinuxカーネルが出来るようになる https://t.co/tUni6BNsRM」 / Twitter
- Linux 5.7 To See USB Fast Charge Support For Apple iOS Devices - Phoronix
- FadisさんはTwitterを使っています 「ただし、これを有効にするとiPhoneは遠慮なく2.5A吸いに来るが、ハードウェアがそれをして大丈夫なハードウェアかどうかは別問題」 / Twitter
HID
FIDO U2F
- HUTRR48.txt - Notepad
- FIDO Alliance Download Specifications - FIDO Alliance
- FIDO U2F HID Protocol Specification
- v2f.py/u2fhid.py at master · concise/v2f.py
- u2f/hid.go at master · flynn/u2f
- Yubikeys overall overview - WIP
WebHID
- FadisさんはTwitterを使っています 「Chrome 89からWebHIDがデフォルトで有効になるらしい。WebHIDはWebUSBで懲りていなかったGoogle最新のヤバAPI。JSで書かれたドライバでシステムに接続された入力機器を直接操作する。WebUSB同様ユーザがダイアログで許可した事をもってWebページにデバイスの使用を認める https://t.co/Fceyjauaek」 / Twitter
- Chrome 89 Beta Enables WebHID By Default, Other New Web APIs - Phoronix
- FadisさんはTwitterを使っています 「入力デバイスの中にはファームウェアアップデートを無条件で受け付ける等のインターネット越しに触らせてはいけない物も数多く存在するが、それらに対しては「ダメなデバイスのベンダーIDとプロダクトIDのリストをブラウザが持って、それを頑張って更新する」という驚くべき対策が仕様に書かれている」 / Twitter
- FadisさんはTwitterを使っています 「ちなみにWebページがUSBデバイスの完全なコントロールを手に入れるWebUSBは、「WebUSBを活用して2要素認証ドングルに偽の情報を送る事で2要素認証を突破するフィッシングサイト」に活用された後、主要なほぼ全てのデバイスクラスでWebUSBを使えなくする修正が入ってAPIが生えたまま死んでる」 / Twitter
- FadisさんはTwitterを使っています 「Webページのスクリプトの提供者は信頼できるか判断がつかない相手で、システムはデバイスドライバに悪意が無い事を期待している為デバイスドライバの提供者は信頼できる必要があって、WebUSBにもWebHIDにもこのギャップを埋める物がない。必要なのはGoogleによるドライバに対する署名だと思うんだ」 / Twitter
- Webアプリがジョイコンなどに対応する「WebHID」、NFCタグを読み書きする「Web NFC」、シリアルポートで通信する「Web Serial」など、Chrome 89ベータではデフォルトで有効に - Publickey
Twitter
- Livaさんのツイート: "USBキーボードからのパケット(実機)、1つのキーを押している時はTransfer Descriptor内にキーデータが入らない(1つ処理されて割り込みは入る)のだけど、2つ以上キーを同時押しするとデータが入る #liva_notebook"
- Livaさんのツイート: "何言ってるのか自分でもワケワカメなんだけど、要はAならAだけ押した時、自作OS側からはどのキーを押されたかが分からない(何かが押された事は割り込みが来るから認識できる)のだけど、Shift + Aだと、ShiftとAの双方が押された事がわかる #liva_notebook"
- Livaさんのツイート: "freebsdのコード読むと https://t.co/PArc0Pgn80、ukbd_interruptでパケットを読んだ後で、ukbd_read_charでもう一文字読んでるような気がするのだけど・・・わからぬ #liva_notebook"
- Livaさんのツイート: "もう一文字読んでるってのは、単一のキーしか押されてない場合、Interrupt Transfer以外の別の仕組みでキーを読んでるのかなぁ、と推測 #liva_notebook"
- Livaさんのツイート: "もっとDevice Class Definition for Human Interface Devices (HID) https://t.co/mhqn81LOIR を読み込まなければならぬ #liva_notebook"
- Livaさんのツイート: "寝ぼけてた。ukbd_put_keyでsc->sc_inputsをインクリメント、デクリメントして、その値が0だったらukbd_event_keyinputでreturnしちゃうからukbd_read_charにたどり着くわけない #liva_notebook"
- Livaさんのツイート: "要するに、ukbd_read_charでもう一文字追加でどっかから読んだりなんてしてない #liva_notebook"
- Livaさんのツイート: "えー、じゃあやっぱ単一キーを押した時にキーデータが送られてきてないように見えるけど、自作OSのバグなのかなぁ #liva_notebook"
- Livaさんのツイート: "困った時のfreebsdという事でfreebsdで先程のコードにprintf仕掛けたら、一文字のときもちゃんとInterrupt Transferにキーデータが流れてきている模様。という事は自作OSのバグか・・・ #liva_notebook"
- Livaさんのツイート: "問題の切り分けはできたけど、Interrupt Transferのデバッグやらなきゃいけないの、やだなぁ #liva_notebook"
- Livaさんのツイート: "ん、ちょっと勘違いしてたぞ。keycodeの取得をやってるのは、 https://t.co/3KsSAPpFar か #liva_notebook"
- Livaさんのツイート: "まあ結局単一キーでもちゃんと取得できている事には変わらないけども #liva_notebook"
- Livaさんのツイート: "お、 https://t.co/t5fj3AOBmV これダンプすれば良さそう #liva_notebook"
- Livaさんのツイート: "やっぱ単一キーでもちゃんとパケット来てるんだよなぁ #liva_notebook"
- Livaさんのツイート: "お、IOAPICのEOI registerの実装が入ってたのか、これは最新版を使うしかあるまい https://t.co/09mUxTV4NG #liva_notebook"
- Livaさんのツイート: "正直に言うと、EOI registerを使わない手法がバグってる #liva_notebook"
- Livaさんのツイート: "この件、解決した。連続で同じレジスタ(MMIO) にwriteするのだけど、何も考えずに実装したのでコンパイラによって2つのwriteが1つに握りつぶされていた。asm volatile("":::"memory")を挟んで解決 #liva_notebook https://t.co/B5Zd22a0Kn"
- Livaさんのツイート: "USBキーボードにはBoot ProtocolとReport Protocolがあってそれぞれ異なる方法で入力を返すのか。HID Specificationを読んでてよくわからなかったのだけど、やっと少し理解できた。 #liva_notebook"
- Livaさんのツイート: "うーん、Boot Protocolをセットするのが問題でもないのか。。。 #liva_notebook"
- Livaさんのツイート: "Interrupt Transferの2つに1つがパケロスしてるのではないかという仮説を立てた #liva_notebook"
- Livaさんのツイート: "2つに1つ消えているという仮説から、data toggleをしてないのがいけないのではないかと思って設定してみた所、usb keyboardが実機で完璧に動いた!! #liva_notebook"
- Livaさんのツイート: "interrupt transferにはdata toggleに関する記述が無かったからこれまで設定してこなかったのだけど、isochronous transfer以外はちゃんとdata toggleをしましょう #liva_notebook"
- 10/27,28はOSC Tokyoさんのツイート: "自作OSのために作ったUSBホストドライバ+HIDキーボードドライバの動作をシーケンス図にしてみた.結構苦労してプログラムしたけど,苦労するだけあるわ.絵のレベルでも凄い複雑だもん.… "
- NerryさんはTwitterを使っています: 「HIDクラスって本来3.0.0か3.1.1か3.1.2しか存在しないはずだけど、たまに3.0.1とか3.0.2って名乗ってる変なデバイスあるし、3.3.0ってなんだよsurface」 / Twitter
- FadisさんはTwitterを使っています 「Googleが謎のUSB HID moonballのdevice IDを追加するパッチをlinuxに投げてきた話。Googleは過去にも謎のデバイスHammerのドライバをlinuxに追加しており、これは後に出た一部のChromebookで利用されているが、moonballはhammer-likeなデバイスであると説明されている https://t.co/y3EAUysdj5」 / Twitter
- Google "Moonball" Will Be Supported By Linux 5.7 - Phoronix
- www.usb.org/developers/hidpage/Hut1_12v2.pdf
- HIDデバイス/開発 - おなかすいたWiki!
- USB.org - HID Tools
- USB HID クラス ‐ 通信用語の基礎知識
- Windows 8 におけるセンサーのサポート – Building Windows 8
- ワコム、ホイールとファンクションキーが加わった「FAVO 4」
- 自作OSにUSBを実装する - livaの雑記帳
- Microsoft Word - HUTRR39b.docx
- USB.org - Microsoft Related HID Documentation
- Keyboard and mouse HID client drivers | Microsoft Docs
- USB プロジェクト - マウスのReportDescriptorを見てみよう:新適当マイコン電子工作研究所:So-net blog
- レポートディスクリプタ - おなかすいたWiki!
- コメを噛め» Blog Archive » HID Mouse から Joystick へ
- マイコンの実験:PIC内蔵USB機能(HID)の実験6
- USBマウスのレポート・ディスクリプタで悩む:親族SNS管理人ブログ:So-netブログ
- rjj05b1417_m16cap | 検索 | ルネサス エレクトロニクス
- Keyboard and mouse HID client drivers | Microsoft Docs
- USB Human Interface Devices(HID)Class サンプルプログラム
- Enhanced Wheel Support in Windows - Windows 10 hardware dev
- USB1.1接続のマウスは2.0と比べて反応は? -有線でUSB1.1接続のみのマ- マウス・キーボード | 教えて!goo
- usb touch screen protocol - Google 検索
- レポートディスクリプタ - おなかすいたWiki!
Audio
Windows
- DTMで必ず登場するASIOドライバって何? : 藤本健の“DTMステーション”
- Windowsの音質を阻害するカーネルミキサー : 藤本健の“DTMステーション”
- オンボードのサウンド機能を高性能化するWASAPI : 藤本健の“DTMステーション”
- WASAPIでiTunesを高音質に再生!? : 藤本健の“DTMステーション”
DSD
- Sony PCM-D100 の為に DSD64(1bit/2.8MHz)の曲を探してみた。 - ICT備忘録
- ERI 「ハイレゾノイズ」にご用心?
- About - ハイレゾ音源配信サイト【e-onkyo music】
- 音声のデジタル化方式について | インターフェイス株式会社
- PCで音楽: DSD256の聴き方!
- Direct Stream Digital - Wikipedia
- DSD 64 2.8MHz v.s WAV 24bit 192kHz : Studio Okamoto の 徒然日記
- DSDデモトラック | サポート | OPPO Digital Japan株式会社
- 【藤本健のDigital Audio Laboratory】第475回:いまさら聞けないDSD/スーパーオーディオCD - AV Watch
- SUPER AUDIO CD - about SUPER AUDIO CD - Format - DSD
- 【藤本健のDigital Audio Laboratory】“DSDのまま編集”を実現!? 帽子型補聴システム、24ch再生などDSDの新たな可能性 - AV Watch
- ハイレゾ音源がダウンロードできるおすすめ配信サイトと4つの注意点
- ASIO - Wikipedia
- 【藤本健のDigital Audio Laboratory】第546回:DSD対応USB DACの再生ソフトを比較する - AV Watch
- 【藤本健のDigital Audio Laboratory】第557回:DSDの基本から未来まで。「1ビット研究会」レポート - AV Watch
- ASCII.jp:ハイレゾを始めるならUSB DAC? それともネットワーク? (3/5)|麻倉怜士のハイレゾ入門講座
- ソニー、DSD関連フォーマットの仕様を公開
- zionote、DSD対応技術「JAVSLINK2」のライセンスを公開 - 個人利用は無料 - PHILE WEB
- USB オーディオ クラス ‐ 通信用語の基礎知識
- OSS開発-Tethys USB: 風のまにまに心のままに、そして想いの力を信じて
- 02 « 2月 « 2010 « PCオーディオブログ
- USB Audio - Speaker - マイコン工作実験日記
- uaudio(4)
- WhatsNew/FreeBSD10 - FreeBSD Wiki
- AN295.pdf
- usb-audio-simplified.pdf
- USB Audio Design Guide
- USB Audioの転送データサイズ | インターフェイス株式会社
MIDI
- MIDI - Wikipedia
- MIDI - Wikipedia
- 今さら聞けない、「MIDIって何?」「MIDIって古いの?」 : 藤本健の“DTMステーション”
- MIDI規格がすべて無料公開!GitHubも同時スタートし、よりオープンに進化する! : 藤本健の“DTMステーション”
- Home
- RP/CA
- About | Creators' Hub - Presented by AMEI
- amei-music/CreatorsHub: 異なるプロトコルやアプリケーションのメッセージを相互に変換するプログラムです。MIDI, OSC, Web Socketを流れるJSON等の相互変換ルールを定め一意に変換することで、音楽や映像アプリケーション間の接続性や汎用性を高め、様々なメディア・デバイスが連動したクリエーションをより容易にします
- MIDI規格委員会
- MIDI1.0規格書
- DTM技術情報 - 0.目次 | g200kg Music & Software
- SMF(Standard MIDI File)フォーマット解説 | 技術的読み物 | FISH&BREAD
- SMF (Standard MIDI Files) の構造 - Welcome to yyagi's web site.
- apollo twin USBを駆使する声優の小岩井ことりさんの本気すぎるDTM環境 : 藤本健の“DTMステーション”
- MIDI 2.0 の件 | g200kg Music & Software
Wacom タブレット
- Wacom タブレット - ArchWiki
- Home · linuxwacom/input-wacom Wiki
- Wacom Protocols · linuxwacom/input-wacom Wiki
- USB Protocol - linuxwacom
DisplayLink
- DisplayLink
- DisplayLink - Wikipedia
- 【イベントレポート】DisplayLink、4K/60Hzの2出力対応のUSBディスプレイコントローラ - PC Watch
- DisplayLink/evdi: Extensible Virtual Display Interface
- displaylink-rpm/displaylink-rpm: RPM sources for the DisplayLink USB display adapters
- AdnanHodzic/displaylink-debian: DisplayLink driver installer for Debian/Ubuntu based Linux distributions.
- zhsj/displaylink: Debian package for DisplayLink Linux driver
- magoroku15/DisplayLink-driver-for-android: Little modification for android
- venix1/PiDock: displaylink clone
- linux/udlfb.c at master · torvalds/linux
- floe/tubecable: DisplayLink open-source protocol reference implementation
- Home · floe/tubecable Wiki
- libdlo
- https://www.kernel.org/doc/Documentation/fb/udlfb.txt
- HOWTO: Use a DisplayLink USB graphics adapter on Crunchbang Linux v11 Waldorf with partial upgrade to Debian Jessie
Class
- USB device class drivers included in Windows (Windows Drivers)
- USB.org - Defined 1.0 Class Codes
- USB.org - USB Device Class Specifications
- デバイスクラス ‐ 通信用語の基礎知識
- 3.5mmイヤホンジャックが消える日も近い?音声対応USB規格発表 - iPhone Mania
- Hit the road, headphone jack. USB wants your job - CNET
エニュメレーション
- エニュメレーション | インターフェイス株式会社
- USB/エニュメレーション - おなかすいたWiki!
- Prot3 USB Protocol( 3) FT-232Hのエニュメレーション完了を検出
- USB/PnP - SyncHack
- 設計の基本は仕様の理解 ――高速シリアル通信を実現するために知っておくべき最低限の知識 |Tech Village (テックビレッジ) / CQ出版株式会社
- USBのエニュメレーション(まとめ) : prittyparakeetのblog
- USBの解説.PDF
- USB1.1 およびUSB2.0におけるエニュメレーションの違いが知りたい - 108: 上記以外のマイコン関連 - Forum - かふぇルネ - Renesas Rulz - Japan
- USB ( Universal Serial Bus ) インタフェース | 東芝デバイス&ストレージ株式会社 | 日本
- USB Host Human Interface Device Class Driver (HHID)
- エニュメレーション | インターフェイス株式会社
- USBデバイス状態遷移図 | インターフェイス株式会社
パケットキャプチャ等
- 【レビュー】スピードテスト機能も搭載。USBデバイスの情報を一覧表示できる「USBDeview」 - 窓の杜
- FREE USB Protocol Analyzer Software USB Sniffer and Logic Analyzer
- hiro99ma blog: USBのパケットキャプチャ
- マイコンの実験:PIC内蔵USB機能の実験3
- Wireshark · Download
- USBPcap
- Usb Sniffer for Windows download | SourceForge.net
- RatatoskrによるUSBキャプチャ - Qiita
Wikipedia
- USB Type-C - Wikipedia, the free encyclopedia
- USBハブ - Wikipedia
- CCID (protocol) - Wikipedia
Twitter
- Fadisさんのツイート: "USBデバイスを物理的に取り外さずにLinuxカーネルの管理から外すには echo <デバイス名> >/sys/bus/usb/drivers/usb/unbind 再びカーネルに握らせるには echo <デバイス名> >/sys/bus/usb/drivers/usb/bind"
- Fadisさんのツイート: "カーネルの管理から外れたデバイスはユーザ空間から誰にも邪魔されずに会話できる状態になるため、ゲスト環境にホストのUSBデバイスを直接触らせたりする時に便利、と"
- Fadisさんのツイート: "CDC ACMのシリアル通信って入力 出力 割り込み通知の3本のエンドポイントが転がってるだけで特にUSBの上にプロトコルのようなものはなくてそのままシリアル通信のデータが流れてるんだな…"
- a.rin@mixさんのツイート: "USB が 1msec フレームなんで、GPSからの時刻データをUSB経由だと、1msecくらいのジッタがでちゃうのね"
- なかのん&マジックさんのツイート: "色んなキーボードレイアウト(物理)を見てると、日本が強かった時代がコンピュータの黎明期で色々と得してるなーとは思う。こんだけ購買力落ちててもJISキーボードの販売・サポートは必須やからね。歴史的要因って強い。"
- なかのん&マジックさんのツイート: "JISキーボード固有のキーが無かったらどうなるのかは、中国語のIMEがどうやってON/OFF切り替えるのかとか見ると、結構真顔になってしまう。"
- なかのん&マジックさんのツイート: "USB規格にはLang1からLang4までの特殊キーが定義されてるんで、あれを各、非ASCII文字な言語圏は活用すべきだと思うんだけど、物理キーボードにそのキーを載せるとなると、やっぱりコストがかかるから、肝心のPCメーカーが率先してキーの追加を提案したりはしないわなぁ。"
- なかのん&マジックさんのツイート: "失礼。Lang4までじゃない。Lang9まであった。"
- Nerry さんはTwitterを使っています: 「control trb の status stage の dir は data stage の種類によって違う:;(∩´﹏`∩);:」 / Twitter
- 神無月ねりさんはTwitterを使っています: 「usbポートって抜き差しする時結構チャタリングでイベント飛んでるのね。使い終わったスロット解放してないからめっちゃスロット番号とぶ」 / Twitter
- The USB ID Repository
- www.linux-usb.org/usb.ids
- home | USBGuard
- dkopecek/usbguard: USBGuard is a software framework for implementing USB device authorization policies (what kind of USB devices are authorized) as well as method of use policies (how a USB device may interact with the system)
- USB転送方式 | インターフェイス株式会社
- USB4™ Specification | USB-IF
- USB4 Adopters Agreement | USB-IF
- USB4 | USB-IF
- Compound Device と Composite Device - 借り初めのひみつきち
Bluetooth
その他
- デバイスに搭載されているBluetoothのバージョンをGUIで簡単にチェックできるツール - 窓の杜
- 第267回 Bluetoothデバイスで離席管理する:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- HCIプロトコル
- 21.4. Bluetooth
- Chapter�21.�Bluetooth on NetBSD
- Bluetooth
- OSx86jp @ ウィキ - 動作報告 Bluetooth編
- できる周波数ホッピング
- デュアルブート環境で Bluetooth を使いたい!
- Bluetoothの暗号鍵ネゴシエーションに脆弱性、仕様自体を修正 - PC Watch
- 【アプデ/10】 2019年7月度(あるいはそれ以降も?)のWindowsUpdate適用でBlurtoothスピーカーに不具合 : ニッチなPCゲーマーの環境構築
- Windows 10プレビュー版、BTデバイスのペアリングをより簡易化 - PC Watch
- 【レビュー】Windows 10はBluetoothの高音質通話「HD Voice」に対応したのか? ~バッファロー製ヘッドセットで実証テスト - PC Watch
- サポートされる Bluetooth プロファイル - Windows Help
- 「Windows 10 20H1」Build 19002が“Fast”リングに ~Bluetooth機器の接続が手軽に - 窓の杜
- Windows 10プレビュー版、Bluetoothの簡易接続機能が全ユーザーに提供 - PC Watch
- ASCII.jp:Windows 10でようやくまともになったBluetoothのサポート (1/4)|Windows Info
Bluetooth
- https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers
- Adopted Specifications | Bluetooth Technology Website
- Specification | Adopted Documents | Bluetooth Technology Special Interest Group
- ECN specification for Bluetooth SDP
- Bluetooth - Windows 10 hardware dev
- Bluetooth stack - Wikipedia, the free encyclopedia
- Bluetooth - ArchWiki
- Bluetooth - ArchWiki
Apple
- Bluetooth Accessory Design Guidelines for Apple Products
- iOS:iOS デバイス対応の Bluetooth プロファイル - Apple サポート
- iPhone テザリング - ArchWiki
- iPhone tethering - ArchWiki
- Bluetoothテザリング子機として使える機種を探す方法と注意点
- iPhoneはBluetooth PAN(テザリング)の子機として使えない(備忘録) – Captain's Log, Supplemental
- 今さら聞けないテザリングについて|プラカンブログ | プラスデザインカンパニー【大阪・東京 ホームページ・WEB制作】
- Bluetooth経由でiPhoneへ写真を転送できる? - いまさら聞けないAndroidのなぜ | マイナビニュース
- なぜ「AirDrop」はBluetoothを使うのにファイル転送が速いの? - いまさら聞けないiPhoneのなぜ | マイナビニュース
- The Official Bluetooth SIG Member Website
- 日記 (2019 年 2 月上旬)
Classic
Audio
SCMS-T
- 第497回:SCMS-Tとは - ケータイ Watch Watch
- SCMS - Wikipedia
- Bluetoothヘッドホンからテレビの音が聞こえません!? - いまさら聞けないAndroidのなぜ | マイナビニュース
- SCMS-T | 用語集 | KDDI株式会社
BT-UHD
- <IFA>ファーウェイ、Bluetooth新プロトコル「BT-UHD」。LDAC比2倍以上、2.3Mbpsでオーディオ再生 - PHILE WEB
LDAC
- Sony Japan | LDAC™で高音質ワイヤレスリスニング
- ソニーのハイレゾ対応コーデック「LDAC」は何がスゴい? 開発者に疑問をぶつけた - AV Watch
- 次期OS"Android O"の開発者プレビューが公開。ソニーの協力によりLDACをサポート - PC Watch
- 第707回:LDACとは - ケータイ Watch Watch
- platform/external/libldac - Git at Google
- LDACエンコーダを使ってみた - Qiita
- eggman/ldacenc: LDAC encoder
- eggmanさんのツイート: "AOSPにLDACのencoderのソースコードがあった。 https://t.co/sdNwBJpx42 次のAndroidにはLDACが標準搭載されるっぽいですね。"
apt-X
- Qualcommが英CSRを買収。BLEやaptXなどBluetooth資産を獲得し、IoE強化 - AV Watch
- aptX対応のワイヤレスBluetoothオーディオ製品と技術
- ボクらのスマホ&iPhoneを最新のaptX-LL対応にする方法(ワイヤレスイヤホン選びを真剣に考える③)|オモロダイブ
- 高音質ワイヤレスで注目の「aptX HD」は他とどう違う? クアルコムに聞いた - AV Watch
- 【笠原一輝のユビキタス情報局】Windows 10も標準で対応しているaptXをハイレゾ化する「aptX HD」 - PC Watch
- Qualcommが展開する「DDFA」の高音質化技術とハイレゾ対応Bluetooth技術「aptX HD」 - PC Watch
- Qualcomm® aptX™ Low Latency Synchronised Audio
- aptX Low Latencyを試してみる? | Wasters haven.
- 新Bluetooth音声コーデック「aptX Adaptive」。動的レート制御で音質と接続性向上 - AV Watch
- Qualcomm、レイテンシ削減でゲームにも対応できる無線オーディオコーデック「aptX Adaptive」 - PC Watch
- 第876回:aptX Adaptive とは - ケータイ Watch
- 【笠原一輝のユビキタス情報局】Windows 10も標準で対応しているaptXをハイレゾ化する「aptX HD」 - PC Watch
- Bluetoothを高音質/低遅延化する「aptX」。CSRが説明 - AV Watch
- 次期Android“Oreo”が対応「LDAC」「aptX HD」はどのスマホで使えるようになるのか? (1/3) - PHILE WEB
AAC
- 【第153回】“iPhoneのAACファイルをAACでBluetooth伝送すると音質劣化しない”は本当か? - Phile-web
- License Fees - Via Corp
SBC
- SBC (codec) - Wikipedia, the free encyclopedia
- BluetoothのSBCって何ですか? - afnf.net
- https://tools.ietf.org/id/draft-ietf-payload-rtp-sbc-03.txt
Bluedroid
- Andorid 4.2以降はBluetoothが違う、ってどういうこと? - いまさら聞けないAndroidのなぜ | マイナビニュース
- Android 5.0でBLE advertising するための要件 - Qiita
- Android Bluetooth HAL Interfaces について 概要編 - Qiita
- Bluetooth | Android Open Source Project
- Bluedroid ‐ 通信用語の基礎知識
- platform/external/bluetooth/bluedroid - Git at Google
- embdrv/sbc/encoder/srce/sbc_encoder.c - platform/external/bluetooth/bluedroid - Git at Google
PulseAudio
- Fadisさんのツイート: "PulseAudio 10.0がリリースされました。主な変更点はBluetooth使用時にアプリケーションの申告に基づいてA2DPとHSPを切り替える仕組み、パススルーモード、USB接続のサラウンドなデバイスが使えない不具合の修正他 https://t.co/wSWB3Q7rom"
- PulseAudio 10.0 Officially Released - Phoronix
- 10.0
冒頭に無音を挿入
- Rui Ueyamaさんのツイート: "なんかほとんどのBluetoothスピーカーやヘッドフォンは、数秒以上使われていないと待機状態に移行して、そのあと復帰直後の音の最初の0.1秒くらいが欠落するぽい。ひどい実装だ。"
- Rui Ueyamaさんのツイート: "なのでTCFMではsoxで0.1秒の実質的な無音ファイル(-50dbのbrown noise)を作って音声ファイルの冒頭にくっつけるということをすることに。そうしないとBluetoothで聞いたとき最初の子音が欠落してしまう。ここらへんも含めて加筆修正しました。 https://t.co/bewRhFDebf"
- 【Bluetoothヘッドホン】【Bluetoothスピーカー】AAC/aptXとは?
- AACとapt-Xコーデック(ポータブルスピーカー まとめ) : 日々妄想 -書籍と家電の個人的記録-
- apt-x HDとLDAC ワイヤレスハイレゾの覇権をとるのはどっちだ | IT Trend news
- LDAC vs aptX HD。いよいよ動き始める「ハイレゾ級ワイヤレス」 – boomil
- Android の aptX aptX-HD LDAC AACサポートについて - Qiita
- 「Bluetoothオーディオ」の仕組みと用語 〜Bluetoothスピーカーやヘッドホンを選ぶ際におさえておきたいポイント - Fluffy white croquis
- A2DP ‐ 通信用語の基礎知識
- とみながたけひろさんのツイート: "相変わらず周波数特性と波形で音質評価といってる人の記事が流行ってるのか、、、"
- とみながたけひろさんのツイート: "BTヘッドフォンをちゃんと電波部分、コーデックアルゴリズム、デジタル、アナログ回路性能、マイク、ヘッドフォン性能、ぐらい分離して細かくレビューしてほしい(無理)(やっぱり専業とかデカイ会社ではやっとるんかなあ)"
- とみながたけひろさんのツイート: "コーデックはまあそれなりに知ってるけど、それ以外で世間の製品がどう頑張ってるか知りたい。電波状況が悪化して一度帯域を落としたら二度と戻らないようです、とか、帯域切替を頻繁に行うのでそこでノイズが載ったように聞こえますとか、遅延と音質との関係とか、クロック同期とか、、、"
- とみながたけひろさんのツイート: "まあとりあえずなんちゃって評価するにしても、数秒とかのサイン波でやるなら、電波が飛ぶ領域だけでもちゃんと簡易電波暗室的な奴(アルミ缶とかでもいい)に入れて評価してほしい"
- HIDP ‐ 通信用語の基礎知識
- PAN (Bluetooth) ‐ 通信用語の基礎知識
- BNEP ‐ 通信用語の基礎知識
- L2CAP ‐ 通信用語の基礎知識
BLE
BLE-MIDI
- Apple Bluetooth Low Energy MIDI Specification
- Bluetooth for Developers - Apple Developer
- 【藤本健のDigital Audio Laboratory】第669回:Bluetooth MIDI伝送で何ができる? 対応5製品とiPad連携などを試す - AV Watch
- Spec / Faq | microKEY Air | BLUETOOTH MIDI KEYBOARD | KORG
- microKEY Air | BLUETOOTH MIDI KEYBOARD | KORG
- Bluetooth LE MIDI Specification
6LoWPAN
- わふう>ω<のひとさんはTwitterを使っています: "OpenWRT + BLE over IPv6/6LowPAN。つまり市販されているWiFiルータにBLEドングルを刺してOpenWRTでIPv6/6LowPANのルータがデモンストレーションできる、と
- わふう>ω<のひとさんはTwitterを使っています: "IPv6 over Bluetooth Smart (Low Energy) [OpenWrt Wiki] https://t.co/vxgpSbU2Mi"
- わふう>ω<のひとさんはTwitterを使っています: "6LoWPAN for Bluetooth low energy on OpenWRT RT Blogs - Nordic Developer Zone https://t.co/k1UkJKpOq9"
- 6LoWPAN のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetooth Low Energy(BLE)入門――なぜBLEは世界で愛用されるのか - EE Times Japan
- Bluetooth LE と Beacon の話
- 2016年のBLEを振り返る | Reinforce-Lab.'s Blog
- 「IoTの成功モデル」、BLE市場が活況 - 家電・モバイル - 日経テクノロジーオンライン
- IoT技術の代表「BLE:Bluetooth Low Energy」の動作原理を理解してみよう【前編】 (1/3):CodeZine(コードジン)
- DSAS開発者の部屋:既成の BLE デバイスを自作プログラムから利用する試み
- FreeBSDで Bluetooth Low Energy (BLE)を使う | 元祖ワシ的日記
- HOGP ‐ 通信用語の基礎知識
- GATTのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- GATT のはなし2|Wireless・のおと|サイレックス・テクノロジー株式会社
- Takashi KawasakiさんはTwitterを使っています 「BLEが位置情報の権限を必要とする根本的な理由についての認識って共有されてないんだな。ビーコンに限らず、BLE機器をスキャンしたら周りにある機器が特定できちゃうので、間接的に場所が特定できちゃう可能性が高まるんだよね。別にGPSが動くわけじゃない。」 / Twitter
- Takashi KawasakiさんはTwitterを使っています 「少なくとも、この人とこの人、ひょっとしてお隣さん?みたいな事は十分にわかっちゃう可能性がある。Macの名前とかモロバレだし、そうじゃなくても、ユーザーのフィンガープリンティングとしては割と精度が高い。」 / Twitter
Google
- bluetooth - Git at Google
- platform/external/bluetooth/hcidump - Git at Google
セキュリティ
- Bluetooth経由でスマホからPCまで乗っ取れる攻撃手法が発覚 ~Bluetoothがオンになっているだけで攻撃可能 - PC Watch
- JVNVU#95513538: 様々な Bluetooth 実装に複数の脆弱性
- 数十億を超えるBluetooth機器に影響、ペアリングなしで乗っ取られる脆弱性“BlueBorne”が明らかに - 窓の杜
- Armis BlueBorne: Bluetooth vulnerabilities | Firmware Security
- BlueBorne Technical White Paper.pdf
- Bluetoothのセキュリティ強化とリスクの軽減を図るための3つの対策
- Fadisさんのツイート: "BlueBorneで明らかになった脆弱性の1つCVE-2017-1000251は、Bluetoothのデータリンク層の設定を行うL2CAP CONFIGURATION REQUESTに巨大なパラメータを付けて投げると、それを想定していない実装がスタック破壊→任意コード実行という物で、いわば21世紀のping of death https://t.co/q5DEtKHEzU"
- Blueborne - Linux Kernel Remote Denial of Service in Bluetooth subsystem - CVE-2017-1000251 - Red Hat Customer Portal
- Bluetoothに通信傍受などの脆弱性、「Apple」「Intel」「QUALCOMM」製品などが影響を受ける恐れ - INTERNET Watch
- JVNVU#92767028: Bluetooth 実装の楕円曲線ディフィー・ヘルマン鍵共有において公開鍵を適切に検証していない問題
- Fadisさんのツイート: "Bluetoothの仕様が複雑すぎ、実装者に多くの選択肢を用意しすぎている為、実装者は目的を達成するのに必要なサブセットを摘んで実装する傾向があり、それがBluetoothを格好の攻撃対象にする原因になっている、という話 https://t.co/YuD0fAs5dl"
- Bluetooth's Complexity Has Become a Security Risk | WIRED
- Fadisさんのツイート: "Bluetoothの規格書、WiFiの約10倍のページ数があるのか…"
- More information on “…Exploiting Low Entropy in the Encryption Key Negotiation of Bluetooth® BR/EDR” *
Wireless・のおと
- Bluetoothのはなし(1)|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetoothのはなし(2)|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetoothのはなし(3)|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetoothのはなし(4)|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetoothのはなし(5)|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetoothのセキュリティのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- GATTのはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- GATT のはなし2|Wireless・のおと|サイレックス・テクノロジー株式会社
- IPv6 over Bluetooth のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- SEP2.0のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetooth 5 のはなし|Wireless・のおと|サイレックス・テクノロジー株式会社
- Bluetooth5の補遺|Wireless・のおと|サイレックス・テクノロジー株式会社
通信用語の基礎知識
- Bluetooth ‐ 通信用語の基礎知識
- Bluetoothプロファイル ‐ 通信用語の基礎知識
- SDP (Bluetooth) ‐ 通信用語の基礎知識
- HCI (Bluetooth) ‐ 通信用語の基礎知識
GitHub
- Fadisさんのツイート: "Logitech(ロジクール)のUSB接続BluetoothドングルのデバイスのペアリングをLinuxから行う為のオープンソースなツール Solaar https://t.co/fpbi8nDC3I"
- Solaar
- pwr/Solaar: Linux devices manager for the Logitech Unifying Receiver.
- bluekitchen/btstack: Dual-mode Bluetooth stack, with small memory footprint.
- RedBearLab/BLE_HCI: Allows external systems or MCUs to connect BLE (CC2540) using HCI as BLE Central Role
- JiounDai/Bluedroid: PoCs of Vulnerabilities on Bluedroid
Qiita
- Bluetooth Low Energy Advent Calendar 2014 - Qiita
- Bluetooth Low Energy Advent Calendar 2015 - Qiita
- Bluetooth Low Energy Advent Calendar 2016 - Qiita
Twitter
- as9kさんのツイート: "A2DPはHSP/HFP(ヘッドセット・ハンズフリー)よりはるかに音がいい。A2DP使えないものと比べたから確か"
- なかのん&マジックさんのツイート: "AndroidにBluetoothのDUNを追加するアプリはあるけど、HFPを機能があるかのように見せるだけで良いんで、HFPを追加するアプリって無いんかな? 技術的にできるんか知らんけど。"
- なかのん&マジックさんのツイート: "カーナビは、HFPで接続の成否を判断してるんで、HFPの無いタブレットをモデムとして使えないんだよな。"
ACPI
その他
- ReactOS: drivers/bus/acpi/acpica/namespace/nsinit.c File Reference
- https://www.bitvisor.org/summit/slides/BitVisor-Summit-02-eiraku.pdf
- ACPI Wakeup - MythTV Official Wiki
- Links to ACPI-related Documents | Unified Extensible Firmware Interface Forum
- ACPI BGRT - ねりりんと借り初めのものがたり
- Judgement Day - ねりりんと借り初めのものがたり
- ACPICA – Raphine Project<サイト製作中>
- ACPI Table - Qiita
- ACPIの最新仕様書は、UEFI Forumによって管理されています。(2013年10月以降) - 64bitマシンとか、Linuxとか、アニメとかのブログ
- Linux kernel ACPI-centric CVE-2017-13694: Awaiting Analysis | Firmware Security
- FWTS 17.08.00 released, many new ACPI tests | Firmware Security
- AML - OSDev Wiki
- FADT - OSDev Wiki
- New ACPI IDs for November: Nexstgo and Insyde | Firmware Security
- 日記 (2017 年 4 月中旬)
- 日記 (2017 年 4 月中旬)
- 日記 (2017 年 4 月中旬)
- ACPICA - OSDev Wiki
- Shutdown - OSDev Wiki
- 初心者のためのACPI
- 第8回 ACPI その2 ACPICAを使おう - ブログやめる日記
- ACPI で電源を切る - 借り初めのひみつきち
- ACPI で電源を切るの補足 - 借り初めのひみつきち
- Nerry さんのツイート: "たったふたつのOUT命令でここまで長い記事になるとは書き始めた時は思ってなかった。深い。"
- 2019年3月29日号 discoのBetaとカーネルフリーズ,ACPIまわりのデバッグ方法:Ubuntu Weekly Topics|gihyo.jp … 技術評論社
- Debug ACPI DSDT and SSDT with ACPICA Utilities | Ubuntu blog
- ⚙ D20630 ACPI support for USB , mainly hub.
- Nerry さんはTwitterを使っています: 「そういえば現状ACPI ENABLEしないままXHCIドライバとPS2ドライバ両方起動してるから一部のレガシーエミュレーションしてる機種でうまくない動作してるかもしれん。。あとで直しとこ:;(∩´﹏`∩);:」 / Twitter
- Nerry さんはTwitterを使っています: 「ほんとはACPI ENABLEして電源ボタンのイベント取りたいけど機種によってはAML読まないと電源イベント取れない機種があってその辺の対応がめんどくさい:;(∩´﹏`∩);:」 / Twitter
- まちカドおるみんさんはTwitterを使っています: 「ラップトップに Linux 入れて PowerTop を実行するとまず LCD が電池を喰ってて次に CPU だったりするから,輝度を落として CPU も CPUfreq で governor を powersave とかにするだけでだいぶバッテリーが保つんですよね」 / Twitter
- 機械学習を利用してバッテリーの充電傾向を把握し、使用直前までバッテリー充電率を80%で止めてくれるiOS 13の新機能「最適化されたバッテリー充電」は位置情報も使用し、旅行先などでは機能を停止する。 | AAPL Ch.
- Appleは新しいMacBook Pro向けの新機能として、IntelのTurbo Boostを長時間継続させアプリのパフォーマンスを向上させるような「Pro Mode」をmacOS Catalina Betaでテストしているもよう。 | AAPL Ch.
- kworker/kacpidのCPU使用率が高い問題に対処した
S0ix
Linux
- ols2012-mansoor.pdf
- Intel's Guide To Achieving S0ix Low-Power States On Linux - Phoronix
- How to achieve S0ix states in Linux* | 01.org
- Intel's Guide To Achieving S0ix Low-Power States On Linux - Phoronix Forums
- Add suspend-to-idle validation for Intel SoCs [LWN.net]
- [linux-joule,9/9] Enable type-c HOST mode with S0iX suspend - Patchwork
- ref-os-iot/0004-Enable-USB-Type-C-HOST-mode-with-S0iX-suspend.patch at master · intel/ref-os-iot
- Mailing List Archive: [PATCH v2 5/5] intel_idle: Add S0ix validation
- LKML: "dbasehore .": Re: [PATCH v5 5/5] intel_idle: Add S0ix validation
- Linux-Kernel Archive: [PATCH] platform/x86: intel_pmc_ipc: read s0ix residency API
- x86/pmc_atom: Eisable a few S0ix wake up events for S0ix residency [Linux 3.17] - Linux Kernels
- Re: S0ix failure due to "clk: x86: Do not gate clocks enabled by the firmware" — Clock Framework
FreeBSD
- ⚙ D17676 Emulated S3 with s0ix (not currently working)
- bwidawsk/freebsd: bwidawsk's FreeBSD src tree
- Challenges around _OSI
- 8th Gen (S-platform) Intel® Processor Family Datasheet Vol. 1
- IDF 2012 - 次期Intel Core「Haswell」の内部構造を探る - マイクロアーキテクチャ編 (3) 省電力周りの変更点、Atom同等のS0iXモードのステートを追加 | マイナビニュース
- 【笠原一輝のユビキタス情報局】スマートフォンと同様の使い勝手を実現するIntelのS0ix実装 ~IntelがClover Trailの詳細を公開 - PC Watch
- ASCII.jp:インテルが最新モバイルCPUで実現した省電力技術とは?
- 画面オフ・モダンスタンバイ・休止状態 - ※ただの日記ブログです※
- Windows 10ミニTips (57) 電源コマンドを使ってPCの「モダンスタンバイ」対応を確認する | マイナビニュース
- Powercfg のコマンド ライン オプション
- ASCII.jp:Modern Standby対応PCでバッテリーアイコンをクリックすると表示されるスライダーの謎 (1/2)
- retrageさんはTwitterを使っています 「Modern Standby/S3 ResumeでのBIOSの動作って結構バグっていることが多いのでBIOS updateしてみるといいかもしれません。」 / Twitter
- 【山田祥平のRe:config.sys】モダンスタンバイ、信じる、信じない? - PC Watch
- DellのXPSノートPCでスリープ中の異常発熱が報告される - GIGAZINE
Hardware-reduced ACPI platforms
- HW reduced ACPI - 借り初めのひみつきち
- SoC ベース プラットフォームのハードウェア要件 - Windows 10 hardware dev
- Overview of Windows support for ACPI 5.0 | Microsoft Docs
- Hardware requirements for SoC-based platforms | Microsoft Docs
- モダン スタンバイ - Windows 10 hardware dev
- モダン スタンバイの SleepStudy レポート - Windows 10 hardware dev
- ACPI ファームウェアの実装要件 - Windows 10 hardware dev
- ACPI バッテリおよび電源サブシステムのファームウェアの実装 - Windows 10 hardware dev
- バッテリおよび電源サブシステムのハードウェア設計 - Windows 10 hardware dev
- バッテリと充電 - Windows 10 hardware dev
- Nerry@さんのツイート: "あ、HW reduced ACPIもPM1 control registerとほぼ同じレジスタが別にあるのか"
- Nerry さんのツイート: "virtual boxで電源落とせるようになった。 HW reduced ACPI はこれでいけるはずだけどまだテストできてない… "
- Nerry さんのツイート: "S5のSってSleepなのかStateなのかその他の意味なのか"
- Nerry さんのツイート: "S5探す作業だいぶ短くできた… "
Skylake
- ASCII.jp:Windows 10の電力管理を支えるACPIを見る (1/2)|Windows Info
- ASCII.jp:「スロットリング」ではCPUの電力管理をOSではなく、CPU任せにする (1/2)|Windows Info
- ASCII.jp:スリープ中に見えてもスマホのようにアプリが動作するWindows 10の「モダンスタンバイ」 (1/2)|Windows Info
- 電力管理ガイド - Fedora における電力消費の管理について
- IDF Session Presentation Template
- Call for help for Skylake Power Management – Pike's Universum
- linux/x86_energy_perf_policy.c at master · torvalds/linux
- CPUID — CPU Identification
- paper.pdf
- 1905.12468.pdf
- 【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch
- 【CPU】 Skylakeの機能、Speed Shift TechnologyがWin10で有効に | ニッチなPCゲーマーの環境構築Z
- 質実剛健なSkylakeの新機能をIDF 2015で掘り下げる (1/2) - ITmedia PC USER
- これで分かるSkylakeマイクロアーキテクチャ。性能向上と省電力化のために加えられた多くの改良が明らかに - 4Gamer.net
電源管理
北森瓦版
- 北森瓦版 - “Skylake”で導入された“Speed Shift technology”
- 北森瓦版 - “KabyLake”と14nm+プロセス
本の虫
- 本の虫: Linux 3.9はPM_SUSPEND_FREEZEをサポート
PC Watch
- 【笠原一輝のユビキタス情報局】Intelの開発責任者に聞く、Skylake開発秘話 - PC Watch
- 【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch
- 【Windows 10ユーザーズ・ワークベンチ】Windows 10で実装されたモダンスタンバイを試す - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intel CPUの大きなマイルストーンとなる「Haswell」が遂に登場 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Ultrabookのアイドル電力消費を100mW以下にするHaswellの省電力技術 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Intelの「Haswell」のダイと省電力技術 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】Atomスマートフォンで勝負をかけたIntel - PC Watch
- 【Windows 10ユーザーズ・ワークベンチ】Windows 10で実装されたモダンスタンバイを試す - PC Watch
- 【笠原一輝のユビキタス情報局】Skylakeの“SpeedShift”でPステートの消費電力削減を実現 ~Windows 10とSkylakeでさらなる長時間バッテリ駆動が可能に - PC Watch
ASCII.jp
- ASCII.jp:Windows 8.1で利用できるInstant Goの挙動を調べる (1/2)|Windows Info
- ASCII.jp:Win 8.1で利用できるInstant Goのトラブルを解決する (2/2)|Windows Info
OSDN
- Linuxカーネル3.9リリース、SSDをキャッシュとして利用する「dm-cache」やAndcroidエミュレータ機能などを新たに搭載 | OSDN Magazine
Wikipedia
- スリープ (コンピュータ) - Wikipedia
Qiita
- BitVisorとACPI - Qiita
Twitter
- kmem_cacheさんはTwitterを使っています: "お、マウスの電池残量が少ないことまで通知してくれるのか > gnome3 https://t.co/QwbmRDg5Xa"
- Takahiro HASHIMOTOさんのツイート: "GPD PocketのUbuntu版カーネルで、bq24190_charger ドライバが充電器から取り出す電流が3Aハードコードされてるらしい。純正電源ならいいが他のはヤバいのでこのカーネルは使うなとHans氏が注意喚起してる https://t.co/kF52Mmq65T"
- “「使っていない時も省エネ・・・!?」~欧州規制EuP指令の対応”|環境活動|エプソン
- 3メーカーに聞く、Haswell時代の電源選び 【玄人志向編】技術者「謎のサングラス男」に聞く、Haswell対応の根本とポイント - AKIBA PC Hotline!
- ErP Lot 6 って?|エナぶろぐ
- UEFI(U1E)へアップデートしてみました - GIGABYTE LGA1155 intel Z68(B3) Micro ATX GA-Z68MX-UD2H-B3のレビュー | ジグソー
- 価格.com - 『USB給電を止めたいです。』 ASRock Z87 Pro3 のクチコミ掲示板
- 価格.com - 『シャットダウン時にUSBへの電源供給を止めることはできますか?』 ASRock Z87 Extreme4 のクチコミ掲示板
- www.eceee.org/ecodesign/products/standby/
- openSUSE 13.1: 第11章 電源管理
- ACPI の基礎知識
- いろいろ Tips02.スタンバイと休止状態 - cool-r32.com
- 休止状態とスリープ状態の違い - 道すがら講堂
- mjg59 | Skylake's power management under Linux is dreadful and you shouldn't buy one until it's fixed
SMBus
- SMBus Specifications
- SMBus ‐ 通信用語の基礎知識
- セカンド・オピニオン (134) バスのアーキテクチャ - 過去から未来へ(95) | マイナビニュース
- I²C ‐ 通信用語の基礎知識
SBS
- SBS-IF - SBS Specifications
- 「バッテリーを交換してください」とは? powercfg による診断 - Web/DB プログラミング徹底解説
- スマートバッテリ ‐ 通信用語の基礎知識
APEI
- 第3章 カーネル
- A_Tour_beyond_BIOS_Implementing_APEI_with_UEFI_White_Paper.pdf
- ACPI モジュール - ArchWiki
- ACPI, APEI support [LWN.net]
- https://www.kernel.org/doc/Documentation/acpi/apei/einj.txt
- Linux/Documentation/acpi/apei/einj.txt - Linux Cross Reference - Free Electrons
- Linux/drivers/acpi/apei/hest.c - Linux Cross Reference - Free Electrons
- LEG/Engineering/Kernel/RAS/APEITests - Linaro Wiki
- linux/drivers/acpi/apei at master · torvalds/linux
ACPI 連載
- www.init-main.com/acpirensai/acpi.txt
- www.init-main.com/acpirensai/acpi3.txt
- www.init-main.com/acpirensai/acpi4.txt
- www.init-main.com/acpirensai/acpi5.txt
- www.init-main.com/acpirensai/acpi6.txt
- www.init-main.com/acpirensai/acpi7.txt
- www.init-main.com/acpirensai/acpi8.txt
- www.init-main.com/acpirensai/acpi10.txt
- www.init-main.com/acpirensai/acpi-features.txt
- Takanori Watanabe(@takawata19)さん | Twitter
- Takanori Watanabe's Home Page
DSDT
- DSDT - ArchWiki
- ja/Fixing DSDT
- OSx86駆け込み寺 - DSDT
- おかしなDSDTを直そう | rionaoki.net
- PCI 情報/DSDTテーブルの取得方法 - Japanese - InsanelyMac Forum
- OSX86 Hackintoshで良く出てくる DSDTや SSDTって何?取得方法は?の夢 (DSDT.amlや SSDT.amlの取得方法、ACPI電源管理用の情報が書いてあるファイルです)
DMAR
- howto_implement_hypervisor/part16.md at master · syuu1228/howto_implement_hypervisor
- KVM PCIパススルー (PCI PassThrough) | nexia inc
- 第16章 仮想化
- UEFI機能一覧(Workload Optimized 2) : Enterprise Cloud Knowledge Center Baremetal Server 1.5.6 ドキュメント
- OVMF による PCI パススルー - ArchWiki
- ACPI DMARメモ - 睡分不足
MS
ESRT
- ESRT テーブルの定義 - Windows 10 hardware dev
- ESRT table definition
- ESRT テーブルへのデータ入力 - Windows 10 hardware dev
- Windows UEFI ファームウェア更新プラットフォームの機能の検証 - Windows 10 hardware dev
- Better Firmware Updates in Linux using UEFI Capsules
- Windows UEFI ファームウェア更新プラットフォーム - Windows 10 hardware dev
- 更新プログラムの処理 - Windows 10 hardware dev
- ファームウェア更新ステータス - Windows 10 hardware dev
- ファームウェア更新パッケージの作成 - Windows 10 hardware dev
- SoC プラットフォーム用 Windows ACPI 設計ガイドライン - Windows 10 hardware dev
- Hardware requirements for SoC-based platforms
- ACPI 5.0 用 Windows サポートの概要 - Windows 10 hardware dev
- Overview of Windows support for ACPI 5.0
- ACPI 定義のデバイス - Windows 10 hardware dev
- その他の ACPI 名前空間オブジェクト - Windows 10 hardware dev
- ACPI システム記述テーブル - Windows 10 hardware dev
- ACPI system description tables
- ドッキング - Windows 10 hardware dev
- Microsoft Software Licensing Tables (SLIC and MSDM) - Windows 10 hardware dev
- Microsoft ASL Compiler (asl.exe) を使ってみる – Japan WDK Support Blog
- デバイス管理の名前空間オブジェクト - Windows 10 hardware dev
- AcpiGenFx を使った ACPI テーブルの生成 - Windows 10 hardware dev
- ACPI ドライバーインターフェース – Japan WDK Support Blog
- モダン スタンバイのためのハードウェアの準備 | Microsoft Docs
- 指示電源管理フレームワークの概要 - Windows drivers | Microsoft Docs
GitHub
- illumos-joyent/dbnames.c at master · joyent/illumos-joyent
- phantomuserland/acpi_main.c at master · dzavalishin/phantomuserland
- PG_MANAさんはTwitterを使っています 「なんと、たった、2600行であのAMLが中途半端に動くようになります。 https://t.co/dK8M29e9Pl」 / Twitter
- [add] AML Evaluator(provisional) · PG-MANA/Methylenix@e830e29
OSDN
- ファイル詳細: /drivers/acpi/acpi_ctl.cc (master) - uniqos (git) - OSDN
- ファイル詳細: /drivers/acpi/acpi_os.cc (master) - uniqos (git) - OSDN
- ファイル詳細: /snapgear-2.6-p42/linux-2.6.21.1/drivers/acpi/namespace/nsalloc.c (master) - leon-mjpeg (git) - MJPEG-LEON-FPGA - OSDN
- ファイル詳細: /snapgear-2.6-p42/linux-2.6.21.1/drivers/acpi/namespace/nswalk.c (master) - leon-mjpeg (git) - MJPEG-LEON-FPGA - OSDN
- https://osdn.jp/projects/linux-kernel-docs/docs/C06/ja/1/C06.pdf
Wikipedia
- Advanced Configuration and Power Interface - Wikipedia
- Reset vector - Wikipedia, the free encyclopedia
Twitter
その他
- mrtska@4thSSA両日LVさんのツイート: "[StarRing] https://t.co/CXAW6qhcaR mrtska - ACPICAでACPIシャットダウンに成功したぞ"
- Fadisさんのツイート: "Linux-4.8がリリースされました。主な変更点はRaspberryPi3のSoCのサポート、AMD OverDriveのサポート、ACPI Low-Power Idleをサポート、Surface3のタッチスクリーンをサポート他 https://t.co/S5XM87PpTt"
- 勝(まさる)さんのツイート: "ノートPCでちゃんと動くっていうと、ふたをしめて開いたら液晶がちゃんと復活するところから<おい"
- AoiMoeさんのツイート: "だいたいOSがACPIの仕様書通り実装してもちゃんと動かないBIOSばっかりだもんなあ"
- СЮУ1228🔥🐉さんのツイート: "@uchan_nos @kotatsu_mi そもそもACPIはそのPC上の全デバイス情報を始めとしてあらゆるPC固有の情報突っ込んでおいてOSに渡すためにあるので、電源管理だけのためのものじゃないす"
- 𝔬𝔯𝔲𝔪𝔦𝔫(orumin)さんのツイート: "@uchan_nos @syuu1228 自分のマシンを Linux とかで起動したときに,/sys/firmware/acpi/tables/ にあるファイルの中身をどっかにコピーした上で,それに対して iasl -d とかのコマンドでデコンパイルしたら実際の ASL に何が記述されてるとか読めそう"
- ドラゴン・ユタカ・フルーツ🐬さんのツイート: "パソコンやサーバの電源ボタンを短押し(軽く一回押すこと)すると、OSシャットダウンして電源が落とせますが、実際にはOSの設定に依存します。また、RHELはログオン状態だとダイアログが出るだけです。 ログオンできないけど、マシンを落としたいときは便利な機能です。"
- Yasunori Gotoさんのツイート: "ACPI 6.2が出たので見てるんだけど、NVDIMM関連の仕様も色々増えていて、頭抱えてる。 SLIT テーブルはレガシー仕様になる予感"
- 技術書典4 け-51 x86-64-128さんのツイート: "ACPIについて勉強。ACPIを使うには何と言ってもRSDP(64ビット環境ではXSDP)を得る必要がある。ACPICAを使うにしても、RSDPの値はユーザが与える必要がある。UEFIが有効なシステムではSystem TableからRSDPの値を探す。 #uchan_devbox"
- 技術書典4 け-51 x86-64-128さんのツイート: "OSを初期化するためにACPIのテーブルを読む必要があるので,ACPICAではACPIテーブルを読む機能は"Early ACPI Table Access"と言って動的メモリ管理などが無くても使えるようになっている.ACPICAのフル機能は動的メモリ管理とかマルチプロセスなんかが必要となる. #uchan_devbox"
- ゆたかさんさんのツイート: "(x86な)Linuxは、システムに搭載されているCPUの数を、BIOS(UEFI)が持つACPIテーブル(DSDT)から取得します。 /sys/firmware/acpi/tables/DSDT DSDTはバイナリなので、Intelお手製のiaslツールで逆コンパイルすると読めるようになります。Processor()がCPUの定義です。… https://t.co/Q7ho4T5BpQ"
- ゆたかさんさんのツイート: "PSTAメソッドでPCNTという定義が出てきますが、OperationRegion()で記述されています。つまり、0xF7FD9000をメモリダンプするとPCNTの値が入っているということです。ByteAccはバイト単位ではなくビット単位なので、PCNTは24バイト(6*32ビット)目。… https://t.co/DdSXX7H5wn"
- Yasunori Gotoさんのツイート: "私の場合、acpica-toolsのacpidumpをつかって、いったんバイナリを全部ファイルに吸い取ってからiaslでdisassembleしてました。まあ、acpica-tools自体がsys配下の情報を読み取っているのでしょうけど、ユーザが直接sysを読みに行くよりはacpica-toolsを使った方が好ましいかもしれません。… https://t.co/1wup6CDG04"
- Yasunori Gotoさんのツイート: "もう一個。大分昔の記憶なので正直うろ覚えですが、CPUの数はDSDTの数ではなく、MADTからLAPICの数で確認してなかったかしら?… "
- C++でOS自作 技術書典5 お05さんのツイート: "The ideal and reality of NVDIMM RAS by @YasunoriGoto1 #linux #nonvolatilememory https://t.co/kZ1HqWU5xl @SlideShareより ACPIに_DSMてのがあるのか。どうやって呼び出すんだろう?"
- The ideal and reality of NVDIMM RAS
- Yasunori Gotoさんのツイート: "ACPIにはDSDTとかSSDTって呼ばれるツリー構造のデータが定義してあって、それがハード構成を示してます。 デバイス固有の機能があればDvice Specic Methodすなわち_DSMがそのツリーの中のデバイスの配下に定義されてて、それを呼び出すというのが流れですね。… https://t.co/QgohjFp311"
- C++でOS自作 技術書典5 お05さんのツイート: "そうなんですね。ACPIテーブルはXSDTからHPETのレジスタ定義を読むというのはやったことがあるレベルなんですけど、DSMを呼び出すというのが、具体的にどうやるのかっていうのが興味あります!… "
- Nerry@さんのツイート: "windowsの一番気にくわない挙動 なぜか時々勝手にスリープ解除する→誰も解除しないロック画面を愚直に表示し続けるのコンボ"
- Nerry@さんのツイート: "A社のOSではなんかの間違いでスリープから起きても誰もロック解除しないなって気付いたらスリープし直します。"
- yuYabu☕️さんのツイート: "え、窓は寝直さないんですか… "
- Nerry@さんのツイート: "どうも実機にはgeneral purpose eventがめっちゃあるみたいで全部無効にしたら問題なく動いた・・・"
- Nerry@さんのツイート: "これ結局AML見ないと何が起きてるかわからない案件なのかな"
- Nerry さんのツイート: "昨日のまとめ SCI有効にして電源ボタン入力を取るだけなら簡単 実機では大量の謎のGeneral Purpose Eventが規定で有効になってるがAML読まないと何が起きてるかたぶんわからない SCIはレベルトリガーなので割り込み要員を解消するまで永遠に割り込みが発生する"
- Nerry さんのツイート: "大量の謎のGPEで何が起きてるかわからない以上、AML読めるようになるまではいたずらにACPI ENABLEしない方がいいのでは?"
- Nerry さんのツイート: "こういうのはブログにまとめた方がいいんだろうか🤔"
- Nerry さんのツイート: "そもそも別のブログ記事書いてる途中に思いついてSCIで遊んでたっていう事案"
- Nerry さんのツイート: "SCI_INTが0の機種ってどうすればいんだ・・・"
- Nerry さんのツイート: "GPD今までずっとHW reduced ACPIだと思ってたら違った。"
- Nerry さんのツイート: "なにか適当に作った時、panasonicは大体うまく動く。"
- Nerry さんのツイート: "GPDのFADT尊重するとこいつはHW reduced ACPIじゃないということになるんだがHW reduced ACPIにしかないはずのSleep Control Registerが存在してて謎すぎる"
- Nerry さんのツイート: "PM1a_CNT_BLKが0404になっててSleep Control Registerが0405になってる。 Sleep Control Registerは実質PM1 Control Registerの上位8ビットなので実態は同じものを指している。"
- Nerry さんのツイート: "電源ボタンのSCIが長押ししないと取れない上に有効にしてないはずのTMR_STSビットが立つ機種がある🤔"
- Nerry さんのツイート: "一部の機種で電源ボタンを押すと電源切れるようになった💤"
- Nerry さんのツイート: "電源ボタンのSCIがおかしい機種はやっぱAML見ないとダメなんだろうか・・・"
- Nerry さんはTwitterを使っています: 「起動時に留まる機種があって色々調べたらACPI PM タイマーが、ない:;(∩´﹏`∩);:」 / Twitter
- 市川 真一さんはTwitterを使っています: 「@uchan_nos ということは、これを解決するには Local APIC Timer の周波数を Intel SDM に書かれている方法で求めてから、初期化する必要があるってことなんですね、きっと」 / Twitter
- ryoさんはTwitterを使っています 「pwm regulator書いてるけどバグったら変な電圧かかってボードぶっ壊しそうで恐い。今時はソフトでハードを結構簡単に壊せるんや。PC互換機のBIOSでCPUやメモリの電圧変えられるようになっりBIOSがflashになった頃からか。90年代半ば~後半くらいから?」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Windows 9xとかの頃の初期のACPIなんて、各ベンダーが手探り実装だったから、変なBIOS実装多かったよなぁ。ここのACPIの実装が間違っているからスリープに落ちないとか、そんなの同僚が調べてた」 / Twitter
@akachochin
- OS作れないマンさんのツイート: "自作OSもくもく会始まりました。最初は @akachochin さんによる「ビギナーのためのACPI」です。ACPIについて触りを勉強するプレゼンだそう。 #osdev_moku2"
- OS作れないマンさんのツイート: "ACPI=Advanced Configuration and Power Interface。電源制御とデバイスの設定のための統一規格。 #osdev_moku2"
- OS作れないマンさんのツイート: "「デバイスの設定」と言っても、電源管理のための設定という色が強く、ACPIは電源管理のものと思えば良い #osdev_moku2"
- OS作れないマンさんのツイート: "ACPIはレジスタインターフェースとメモリ上のデータ構造により動作する。xHCIのインターフェースとかと似てる! #osdev_moku2"
- OS作れないマンさんのツイート: "ACPI system description tableとACPI Namespaceがキモっぽい。ACPIテーブルにはいろんなデバイスの情報が羅列されている。すべてのACPIテーブルはシステムに1個存在するRoot System Description Pointerからたど… https://t.co/Xt6plcNZ8g"
- OS作れないマンさんのツイート: "古いACPI規格だとRSDTの場合もあるが、今のバージョンはXSDTを使うようになっている。XSDTとは、他のテーブルのポインタを集めたテーブルで、ルートポインタから指されるデータ構造。 #osdev_moku2"
- OS作れないマンさんのツイート: "主要なテーブルは3つある。FADT(XSDTの最初のエントリが指す)、DSDT(システムごとの差異を格納するテーブル。デバイス情報などが書いてある。)、FACS(ファームウェアとおしゃべりするための情報が書いてある。) #osdev_moku2"
- OS作れないマンさんのツイート: "DSDTにはAMLフォーマットのバイナリデータが格納されている。 #osdev_moku2"
- OS作れないマンさんのツイート: "ACPIの規格書を読んで独自で実装するのは辛いので、Intelの実装であるACPICAを使うと楽できる。 #osdev_moku2"
@liva_jy
- Livaさんのツイート: "ACPICA使ってる場合の電源offは、AcpiEnterSleepStatePrep(5)から割り込み禁止して、AcpiEnterSleepState(5)でpoweroffするのだけど、そういう話ではないのかな"
- Livaさんのツイート: "UEFI環境下(qemu with OVMF)でACPICAの初期化で落ちる気がするんだけど、ACPICAの問題なのか、それとも移植の問題なのか・・・(8割型移植の問題 #liva_notebook"
- Livaさんのツイート: "やっぱACPICA初期化時にgrubがロードしたフォントファイルを破壊してるなぁ。これはメモリアロケータ側の問題か? #liva_notebook"
- Livaさんのツイート: "とりあえずフォントファイルを退避させる事で、AcpiInitializeSubsystem()は通るけど、AcpiInitializeTables()は途中で落ちる #liva_notebook"
- Livaさんのツイート: "フォントファイルコピーしたら破壊されなくなったとか呟いたけど、そもそもロード時にコピーしてるはずなんだよな。やっぱメモリアロケータがぶっ壊れてるのか #liva_notebook"
- Livaさんのツイート: "なぜ僕はこれまでメモリ破壊系のバグ調査にqemuの-sオプションを使ってこなかったんだ #liva_notebook"
- Livaさんのツイート: "ブレークポイント仕掛けたらRemote 'g' packet reply is too longとか言われた後にぶっ壊れる #liva_notebook"
- Livaさんのツイート: "あー、UEFI環境ではRSDPはUEFIから与えられるのか、自分で探す(AcpiFindRootPointer())のでは見つからないのね #liva_notebook"
- Livaさんのツイート: "参考:ACPI Spec 5.2.5.2 Finding the RSDP on UEFI Enabled Systems #liva_notebook"
- Livaさんのツイート: "grub(というかmultiboot)でACPI RSDPを定義してるのはそういう意味だったのね、RSDPの探索を省略するためかと思った #liva_notebook"
- Livaさんのツイート: "BIOS環境下でもmultibootがRSDPを返してくれるかどうかは要検証だなー #liva_notebook"
- Livaさんのツイート: "とりあえずmultibootからもらったRSDPを渡したらACPICAの初期化は通った #liva_notebook"
- Livaさんのツイート: "最近調べてた事。q35とhpetはOVMFのサポート対象外っぽいふいんき https://t.co/xBzr20fhZW #liva_notebook"
- Livaさんのツイート: "biosベースでmultiboot kernelを起動すると、grubでgfxpayload=keepにしてもフレームバッファにならないの、multibootヘッダの設定が必須だったっぽい https://t.co/VUe2rLqzRP #liva_notebook"
- boot - How do I force GRUB to keep video mode after switching to the OS? - Super User
- Livaさんのツイート: "multiboot2 header tagは8バイトアラインというのを読み落として嵌った。ちゃんとgrubのソースを読めばもう少し早く見つけられたような #liva_notebook"
- Livaさんのツイート: "新マシンで動作検証した結果、見つけた新しいバグ。PCIの初期化をACPICAの初期化後にやろうとすると、ACPICAがPCIを叩いて死ぬっていう。 #liva_notebook"
- Livaさんのツイート: "でも、デバイスの初期化のためにはACPICAの関数叩いたりするからなぁ。上手く解決しないといけない。PCIバスだけ先に初期化するのもなぁ #liva_notebook"
- Livaさんのツイート: "おかしいな。qemuをアップデートしてもさっきまではACPIのHPETエントリが出てこなかったのに、なぜか突然出てきた #liva_notebook"
- The ACPI Component Architecture Project
- FadisさんはTwitterを使っています 「Linux 5.4から追加されたkernel lockdownは有効にするとrootであってもユーザ空間からカーネルの振る舞いを変えるような操作が拒否されるようになる。kernel lockdownが有効な場合攻撃者がroot権限を手に入れた状況でも、カーネルが提供するセキュリティの為の仕組みが正常に機能する事が期待できる」 / Twitter
- FadisさんはTwitterを使っています 「ところがこのlockdownをユーザ空間から無効化する方法が見つかった。ConfigFSはACPI tableを書き換える機能を提供しているが、ACPIのMethodは任意のメモリに書ける為、kernel lockdownを無効にできる。現在はlockdown中はACPI tableを変更できなくする修正が入っている https://t.co/PzwQx4R2eq」 / Twitter
- Another Attack Vector Uncovered For Bypassing Linux Lockdown Via ACPI Tables - Phoronix
- FadisさんはTwitterを使っています 「修正がわかりやすすぎてウケる https://t.co/rY04RW16et」 / Twitter
- [PATCH] acpi: disallow loading configfs acpi tables when locked down - Jason A. Donenfeld
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「こんにち「グリーンな」環境を使うことはますます重要になっているが、ソフトウェアの消費電力を測定するのは簡単ではない。ここではプロセッサ・OS・用途に応じた電力測定ツール (PowerGadget, PowerLog, PowerStat, PowerTOP, Perf, Nvidia-smi) の選び方を紹介する。 https://t.co/bnud3ZdTpD」 / Twitter
- Luís Cruz – Tools to Measure Software Energy Consumption from your Computer
PCIe
LPC
- Low Pin Count - Wikipedia
- Low Pin Count - Wikipedia
- Wayback Machine
Active State Power Management
- Active State Power Management - Wikipedia
- 3.7. Active-State Power Management
- AR# 36325: PCI Express のデザイン アシスタント - ASPM をオフにする方法
- MXI Express を使用する際に Windows がフリーズします - National Instruments
- 最新Red Hat Enterprise Linux 6.0の全貌 - アイドル時の消費電力を20%削減:ITpro
- 【短期集中連載】大原雄介の最新インターフェイス動向
PC Watch
- 【イベントレポート】【PCI-SIG Developers Conference 2010レポート】 PCIe Specificationの詳細 - PC Watch
- 【短期集中連載】大原雄介の最新インターフェイス動向
- 【短期集中連載】大原雄介の最新インターフェイス動向
- 【短期集中連載】大原雄介の最新インターフェイス動向
- 【短期集中連載】大原雄介の最新インターフェイス動向
- ストレージクラスメモリにも対応した次世代インターコネクトの業界標準化団体が発足 ~AMD、ARM、Dell EMC、HPE、IBM、Micron、Samsungなどが参加 - PC Watch
OSDev
- PCI - OSDev Wiki
- OSDev.org • View topic - ACPICA does not return PCI devices
- OSDev.org • View topic - PCI enumeration - do you cache the device list?
スライド
- Interrupt Affinityについて
- Interrupts on xv6
割り込み
- RSS対応NICなのに割り込み処理が複数コアに分散しない…のはirqbalanceが動いてなかったから - 酒日記 はてな支店
- デュアルソケット・ザ・ワールド Dual Socket な PC の割り込みに付いて
- Linux / x86_64の割り込み処理 第2回 | VA Linux Systems Japan株式会社
- Linux / x86_64の割り込み処理 第4回| VA Linux Systems Japan株式会社
- Interrupts
- 日記 (2015 年 2 月上旬)
@syuu1228
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 付属資料 最近のPCアーキテクチャにおける割り込みルーティングの仕組み
- howto_implement_hypervisor/part4.md at master · syuu1228/howto_implement_hypervisor
- part4_5.pdf
- ハイパーバイザの作り方~ちゃんと理解する仮想化技術~ 第4回 I/O仮想化「割り込み編・その1」
Twitter
PCI
- Livaさんのツイート: "今日のデバッグでdeassertされないPCI割り込みによって無限に割り込みが発生するバグが再発してしまったので、ついでにそれも修正してしまう #liva_notebook"
- Livaさんのツイート: "今回はE1000ドライバがdeassertしてないような気がしている #liva_notebook"
- Livaさんのツイート: "PCI割り込みの件は、FreeBSD互換レイヤでのithreadの実装ミス(ハンドラ内でEOIを発行しない)なのだけど、これどうやって修正すればよいんだ。。。 #liva_notebook"
- Livaさんのツイート: "なるほど、これか https://t.co/5Dtdf36c6w #liva_notebook"
- Livaさんのツイート: "pre_ithread等はintr_event_create()で登録されてて、x86だとここ https://t.co/NvTisY7eWs #liva_notebook"
- Livaさんのツイート: "このコードから分かるのは、filter処理後にAPICにEOIを投げる。そしてithread処理前にAPICの該当エントリをdisableし、処理終了後に最有効化する。なるほど、たしかにこれなら上手く動くわ。 #liva_notebook"
- Livaさんのツイート: "IDT登録周りの関数の設計変更が必要になったけど、とりあえずFreeBSD互換ドライバでもAPICへのacknowledgeができるようになり、interrupt stormはなくなった。めでたしめでたし #liva_notebook"
PDA
- Fadisさんのツイート: ". @omasanori さんの「Portable Driver Architecture (PDA) でユーザ空間PCIデバイスドライバ」が始まります #kernelvm"
- Fadisさんのツイート: "「ring0でデバイスドライバをやっても新規性がない」 #kernelvm"
- Fadisさんのツイート: "ユーザ空間でドライバを動かすことには カーネルを小さく保つ、ドライバが死んだ時の影響を限定できる、ユーザ空間の方がAPI安定性が高くドライバの再利用性が高まる、etc etc #kernelvm"
- Fadisさんのツイート: "ユーザ空間PCIデバイスドライバを作るためにカーネルがユーザ空間に提供しなければならないもの: 割り込みハンドリング、デバイスが増えた減ったの管理、デバイスに対する入出力を行う仕組み #kernelvm"
- Fadisさんのツイート: "Portable Driver Architecture: 高速なPCIデバイス(Infinibandなど)のドライバをユーザ空間で書く為のC言語で書かれたAPIを提供する #kernelvm"
- Fadisさんのツイート: "ペイロードが小さいとどうしてもユーザ空間とカーネル空間を行き来するオーバーヘッドによって性能が落ちるが、ペイロードが大きい場合カーネルドライバと比較して遜色ない性能が出る、と #kernelvm"
- Fadisさんのツイート: "「カーネル/VMの中でもネットワーク系の方にはこのDPDKというのは衆知の物のようなのですが」 #kernelvm"
- Fadisさんのツイート: "DPDKはネットワーク専用に実装されているためネットワーク処理のある程度のレベルまでをDPDKでやってくれるが、ネットワーク処理以外に応用ができない。PDAはそうした処理が用意されていないが汎用的に使うことができる #kernelvm"
- Fadisさんのツイート: "PDAではもともとLinuxカーネルにあるuio_pci_genericとは別にuio_pci_dmaを実装している。uio_pci_dmaはgenericと比べて明らかにソースコードが大きい → メモリ管理のため #kernelvm"
- Fadisさんのツイート: "PCIデバイスとのデータ転送にDMAを使いたい → ユーザ空間で確保したメモリはスワップアウトするし不連続なメモリが割り当てられる可能性もありデバイスからのDMAで上手く書けない。NUMA環境ではDMAするメモリとPICデバイスがソケットを跨いで別のプロセッサの配下に置かれてしま… https://t.co/xTjdlmYQFo"
- Fadisさんのツイート: "uio_pci_dmaではカーネル側でDMAするのに都合が良いメモリの確保を行う #kernelvm"
- 凍ってない方のアカウントさんのツイート: "”uio_pci_generic only supports legacy interrupts so it is not usable with SR-IOV and virtual hosts which require MSI/MSI-X interrupts.”… https://t.co/1Uyk3w9r5g"
- Fadisさんのツイート: "Wrap-mapping: 同じバッファを2連続でアドレス空間にマップする → バッファをリングバッファとして使う場合に境界チェックを減らせる #kernelvm"
- 凍ってない方のアカウントさんのツイート: "あ、はい、uio_pci_dmaもIOMMUやろうとしてるっぽいね、なんか被ってるね https://t.co/9A5CqhKdCH #kernelvm"
- Fadisさんのツイート: "pdaのオリジナルは https://t.co/6kJ3QmpuBr だけど、最近のカーネルで動かなくて、CERNが公開しているfork https://t.co/CsfCEaujkQ が最新のカーネルで動く #kernelvm"
IOMMU
- とみながたけひろさんはTwitterを使っています 「xboxについてのMSの発表みると、そんなことは百年前から対策済みだというのがわかる(IOMMU使う) https://t.co/ISiHcMYkFz」 / Twitter
- 本の虫: 検出不可能なゲームのチートが発表、今後のオンラインゲームのデザインはこのチートを前提に設計しなければならない
- とみながたけひろさんはTwitterを使っています 「「普通のPC/サーバのユーザは善意だと考えてセキュリティを設計するが、俺たちは技術的に改造が無理なカスタムのメインSoC以外は全部改造されると思って作る」というのを話しているのだけど、これは国なりなんなりにスマフォ奪取されて解析される、みたいなケースの対策も同じ感じなのだろうなと思った」 / Twitter
- とみながたけひろさんはTwitterを使っています 「ちゃんと確認したわけじゃないけど、聞く話では高級スマフォではFLASHメモリがNVMe接続だそうで、だとするとPCIeがSoCから出ていることになる。物理攻撃するならこのへんなんだろうな。あと最近のWiFi6とかも爆速だから、昔みたいにSDIOとかでは辛そうだし、ここも頑張ればいぢわるできそう」 / Twitter
- FadisさんはTwitterを使っています 「XBOXもXBOX360もハードウェアに対するインジェクションでハックされてきた事を思うと重みがある」 / Twitter
- 5/1 自作OSもくもく会さんのツイート: "インテルのチップセットのデータシートに書いてあった。TOLUD (Top of Low Usable DRAM)というレジスタに設定されたアドレスから4GBまでがPCIバスへのアクセスとなるらしい。BIOSが物理メモリ量を調べて適切にセットしてくれるとのこと。"
- 5/1 自作OSもくもく会さんのツイート: "PCIホストブリッジだけはコンフィグレーションレジスタを実装しなくていいことになってるんだけど、その場合Vendor IDとかはどう見えるの?"
- Livaさんのツイート: "PCIのlegacyな割り込みを実装するにはACPICAまで実装する必要があった"
- Kentaro Ebisawaさんのツイート: "PCI Express はデバイス使う分には楽なのだが、Root Complex とか各種 Capability を深堀しようとすると突然情報が少なくて困る。プロはチップベンダーから情報もらうんだろうけど、自分みたいな素人は公開ドキュメントだよりだからツライ。"
- ゆたかさん🐬さんのツイート: "CPUのコア数は多くあっても、実は遊んでいるコアがあり、すべてのコアを使いきるのは難しいです。 OSが古かったり、PCIeカードが割り込み負荷分散に未対応だったりすると、先頭のコアばかり使われることになり、宝の持ち腐れ。"
- ごごてぃさんのツイート: "あれ?WS2016からPCI-Eパススルーできるようなブログの記事があったけど、マジであるのか・・・ https://t.co/WbMGbKsVAL"
- Passing through devices to Hyper-V VMs by using discrete device assignment – Hey, Scripting Guy! Blog
- Fadisさんのツイート: "linux-4.20でデバイスドライバ同士がP2P DMAを利用する為のインターフェースが追加される見通しらしい。P2P DMAはPCI-Expressのデバイス間でホストのメモリを介さずに直接データを受け渡す仕組みで、GPUや100GbE、NVMe等の滝のようにデータを流すデバイスでの活用が期待される https://t.co/5iB1LYBVbE"
- PCI Peer-To-Peer Memory Support Queued Ahead Of Linux 4.20~5.0 - Phoronix
- Fadisさんのツイート: "ネットワークから受け取ったデータを加工してデータベースに書くまでの間にCPUは全くデータを見ていない未来が少しづつ近づいている("
- ryoさんはTwitterを使っています: 「queueの数とMSI-X vectorの数とCPUの数とlinkstatusをinterruptで見る/見ないの組み合わせをマジメに考え出すとめっちゃめんどくさいな。RX/TXを独立にするしないも考えだすとさらに倍率ドン」 / Twitter
- The Linux Kernel PCI
- https://www.kernel.org/doc/Documentation/acpi/enumeration.txt
- The PCI ID Repository
- PCI Vendor and Device Lists
- Re: Missing ACPI PCI devices in acpi_pcidev_scan
- Does PCIe hotplug actually work in practice? - Electrical Engineering Stack Exchange
- PCI Express – Raphine Project<サイト製作中>
- PCのメモリをいじったらPCIE Bus errorになってrebootできなくなった時 - yamaguchi.txt
- PCI Confguration space access methods
- PCI Memo · osdev-jp/osdev-jp.github.io Wiki
- PCI Express DIY hacking toolkit | Firmware Security
- まつうさんさんはTwitterを使っています 「PCI ExpressからDMAを使ってメモリ上のデータをぶっこ抜き。悪用しか思いつかないけど悪用したらあかんぞ! / “GitHub - ufrisk/pcileech: Direct Memory Access (DMA) Attack Software” https://t.co/nTj59Ev6tb」 / Twitter
- ufrisk/pcileech: Direct Memory Access (DMA) Attack Software
- 日記 (2018 年 11 月中旬)
- 日記 (2018 年 11 月下旬)
- PCIE スニファ windows - Google 検索
- Specifications | PCI-SIG
- Intel PCH I/Oポートフレキシビリティ機能について - DXR165の備忘録
- Ricerca Security: "I'll ask your body": SMBGhost pre-auth RCE abusing Direct Memory Access structs
- DMA Contiguous Memory Allocator の x86_64 アーキテクチャサポート - Fixstars Tech Blog /proc/cpuinfo
- 日記 (2020 年 6 月)
APIC
APIC Timer
Twitter
- Nerry さんのツイート: "moeでHPETやめてLAPICタイマーにしようとしたら結局スケジューラーでHPETの機能が必要になって困った😩"
- デダルス・ユメノさんのツイート: "HPETが必要な理由が気になります… "
- Nerry さんのツイート: "moeもプリエンプションそのものは他のOSと同様に数msのタイマー割り込みを契機としているが、スレッドごとのCPU使用率はもっと精度の高い(MHz単位の)タイマーで計測しているため"
- Nerry さんのツイート: "CPU使用率計算するのにタイマー割り込みだと遅すぎるんです… "
- Nerry さんのツイート: "そもそもそこまで高精度にCPU使用率計算する必要あるのか?🤔"
- Nerry さんのツイート: "LAPICタイマー全てのコアで実行したろ→カウンターがコア数分増えて時計めちゃくちゃ"
- Nerry さんのツイート: "IDTもコアごとに分離する必要がある・・・?🤔"
- デダルス・ユメノさんのツイート: "LAPICタイマーはポーリングでも時間計れますよね… "
- Nerry さんのツイート: "その発想はなかった… "
- APIC timer - OSDev Wiki
- Advanced Programmable Interrupt Controller - Wikipedia
- Page 378
- ハードウェアタイマー ‐ 通信用語の基礎知識
- hiboma/clocksource.md at master · hiboma/hiboma
- Local APIC timer interrupt - Linux Process Manager
- Local APICのタイマ割り込み周波数を表示するメッセージ - ZDNet Japan
- Linux source code: arch/x86/kernel/apic/apic.c (v3.4) - Bootlin
OSDev.org
- OSDev.org • View topic - Set IMCR to 0x1 to mask external interrupts?
- OSDev.org • View topic - Question about virtual wire mode
- Symmetric Multiprocessing - OSDev Wiki
- APIC - OSDev Wiki
- IOAPIC - OSDev Wiki
- interruptの意味 - 英和辞典 Weblio辞書
- Eiiti Wadaさんのツイート: "@iorivur 割り込みっていう日本語は... 1959年の夏, パラメトロン計算機の出力装置が直前の文字の処理を終えたことを走行中の計算機に知らせる方法はないかとの議論で割り込みのアイディアを得ました. そして最初の並列処理のプログラムを書きました. 難かしかったなぁ."
- パラメトロン計算機: 世界一周プログラム
- livaの雑記帳(2016/10) – Raphine Project<サイト製作中>
- Kimihiro Nonakaさんのツイート: "AMDのCPUはx2APICじゃなくてLAPICにAMD独自拡張のレジスタを追加してあるのか…(´・ω・`)"
- Kimihiro Nonakaさんのツイート: "Ryzenもx2APICじゃないのか。Naplesのことを考えるとこっちも一緒に対応させたほうが良いかなぁ "ExtAPIC" | https://t.co/PNXuGP3XBv https://t.co/PNXuGP3XBv"
- I/O APICのEOIが動かない - livaの雑記帳
- Kimihiro Nonakaさんのツイート: "つーか、MSR_APICBASEのPHYSADDRってなんで32bitなの?(´・ω・`) これ書いたときは32bitだったの?"
- Kimihiro Nonakaさんのツイート: "AMDプラットフォームでioapic(4)が二つ見えるのってnorth bridgeとsouth bridgeにそれぞれあるからなんかなぁ…。north bridge側にあるのはAPIC IDが8bitに拡張されているっぽいけどsouth bridgeのはそうなっていない?"
- Livaさんのツイート: "LAPICのレジスタ読んでAPIC ID取得するのと、RDTSCP使うのとで何倍くらいの差が出るのか、調べてみたくなった"
- x2APICとinterrupt remapping - 睡分不足
HPET
- HPET - OSDev Wiki
- High Precision Event Timer - Wikipedia
- www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/software-developers-hpet-spec-1-0a.pdf
- 本の虫: VistaでHPETが使われていることの確認
- NOKUBI Takatsugu野首貴嗣さんのツイート: "タイマー ACPI tableからHPETアドレスを取得、論理=>物理アドレスに変換 #kernelvm"
- Fadisさんのツイート: "HPETはLinuxだとデバイスファイルをmmapして読んでるけどACPIから直接読む #kernelvm"
- HPET – Raphine Project<サイト製作中>
- RyzenMaster and HPET can make your Ryzen computer run slower - PC World Australia
- 社会人でもOSを作りたいさんのツイート: "Celeron Nシリーズ(2015年頃のCPU)のデータシートによれば,HPETはIntel Legacy Blockに含まれている.HPETでさえレガシーデバイス扱いなのか…"
- 社会人でもOSを作りたいさんのツイート: "仕方ないのでLAPIC Timerで時間計測するようにした"
- The Linux Kernel Disabling HPET For Intel Coffee Lake - Phoronix
Video
- https://www.kernel.org/doc/Documentation/acpi/video_extension.txt
- JF: Linux Kernel 2.6 Documentation: video_extension.txt
- Extended Display Identification Data - Wikipedia, the free encyclopedia
- VESA DDC(EDID)ってなんだ? ( その他趣味 ) - 音響・映像・電気設備が好き - Yahoo!ブログ
- VGA (VESA DDC) - HwB
- 用語解説
- Intel Processor Graphics 調査メモ - DXR165の備忘録
- acrn-hypervisor/hld-APL_GVT-g.rst at master · projectacrn/acrn-hypervisor
- Igalia/intel-osrc-gfx-prm: Intel Open Source Graphics Programmer Reference Manual (PRM)
- Intel graphics
- マルチディスプレイのまとめスタイル修正: Intel IGP
- メモリ セグメントへの仮想アドレスのマッピング - Windows drivers | Microsoft Docs
- メモリーエラー | PhoenixKnight
- とみながたけひろさんはTwitterを使っています 「VGAにあるI2Cという話題で思い出したけど、EDIDのチェックサム、ひどくない? I2Cがどっちかに張り付いて、全部0xFFとか0x00になっても、チェックサムは255byteごとに1byteなので、どっちもエラー検出できないっていう。まあ0張り付きはあきらめるにしても、1は検出できるようにしてほしかった…」 / Twitter
- HDMI探検隊
- FadisさんはTwitterを使っています 「DDC/CI: 音量や輝度の操作 EDID: ディスプレイが表示できる解像度などの情報をとる SCDC: ディスプレイの設定を読み取るなどなどいろんな通信がHDMI上で行われている #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「CECには割と自由にパケットを投げられるが投げまくると普通に溢れて他の機器からのパケットが落ちるw #kernelvm」 / Twitter
- FadisさんはTwitterを使っています 「HDMI CECには認証がないためHDMIに繋がりさえすれば悪さができ、例えばリモコンからパスワード入力をしていたら読み取るとかハードウェアに負荷を変えるとか、輝度を高頻度で変える人間に対する攻撃が考えられる、と #kernelvm」 / Twitter
- 急性胃腸炎さんはTwitterを使っています 「本体では0から100までしかできない輝度設定にDDC/CIで255を書き込んでディスプレイを壊そうとするPoC 実際に壊れた(輝度が調節できなくなった) #BadHDMI ddcutil setvcp 0x10 0xff https://t.co/eKBJ4RQPMv」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「実は先月久しぶりに Modeline を直接指定したのだった… 1920x1200のディスプレイを繋いでいるのに、ディスプレイとPCの間にあるHDMI切替器がEDIDでその解像度を返してくれなくて、xrandr --newmode で無理矢理1920x1200のモードラインを突っ込んでみたら動いたという…(無理やりすぎ」 / Twitter
- Shuji Sado (佐渡 秀治)さんはTwitterを使っています 「Xを立ち上げるために、モニターの水平、垂直同期の周波数、ビデオ信号帯域幅、カードのドットクロックを調べ、フレームサイズを計算.... って何でこんな苦行をしていたのだろうなとふと思ってしまった。」 / Twitter
Intel Sensor Hub
- Linux 4.9、これまでで最も大きなリリースに | マイナビニュース
- 2016年12月12日 Linux 4.9が正式公開,2200万行を超える史上最大のビッグリリースに:Linux Daily Topics|gihyo.jp … 技術評論社
- 技術者見習いの独り言: VAIO Z(フリップモデル)に Arch Linux をいれる
- Presentation Title
- 【後藤弘茂のWeekly海外ニュース】センサーハブによって変わるモバイルとそれを統合するウェアラブル - PC Watch
- https://www.kernel.org/doc/Documentation/hid/intel-ish-hid.txt
- 4Gamer.net ― インテル,ソフトウェア開発者向に大規模イベントを開催。次世代Ultrabookは各種センサーを備え,Windows 8での利用が前提に
- DCMI-HI DCMI Host Interface Specification
Intel Smart Sound Technology
Sound Open Firmware
- The Linux FoundationがSound Open Firmwareプロジェクトを歓迎 - The Linux Foundation
- Sound Open Firmware
- thesofproject/sof: Sound Open Firmware
- SOF Project documentation — SOF Project 0.1 documentation
- Intel Architecture — SOF Project 0.1 documentation
- Supported Platforms — SOF Project 0.1 documentation
- Firmware - AlsaProject
- Home - Sound Open Firmware
- 2019年7月10日 Linux 5.2がリリース ―Sound Open Firmware,PSI機能の改善など:Linux Daily Topics|gihyo.jp … 技術評論社
- FadisさんはTwitterを使っています 「FedoraがSound Open Firmware(SOF)をデフォルトにするらしい。Intelは近年のSoCなCPUにSmart Sound Technologyと呼ばれるオーディオDSPを積んでいるが、従来このDSPで実行するファームウェアはclosedだった。SOFはこれを置き換える新しいオープンソースなファームウェア https://t.co/lFtMHeGQOx」 / Twitter
- Fedora Preparing To Switch To Intel's Modern "Sound Open Firmware" Audio Driver - Phoronix
- FadisさんはTwitterを使っています 「SOFの開発は主にIntelとGoogleによって勧められているが、Intel Smart Sound Technologyの実態はCadence Design Systems社のXtensaと呼ばれるDSPで、同様のDSPはNXPの一部のARM SoCでも採用されており、SOFはそれらのSoCもサポートしている」 / Twitter
- AMD が Sound Open Firmware プロジェクトに参加か | Coelacanth's Dream
- インテル® スマート・サウンド・テクノロジー
- 【イベントレポート】Intel、3D XPointベースのSSDやCurieの実シリコンをデモ ~IoTやウェアラブルに対する本気度を見せたクルザニッチ氏の基調講演詳報 - PC Watch
- Intel Smart Sound Technology Audio DSP Non-HD Audio ACPI High Level Design - PDF
- Intel,「Broadwell-U」ことノートPC向け第5世代Coreプロセッサ14製品を発表 - 4Gamer.net
- ノートPC向けなのにOCできるK付きもXeonも!第6世代Core(Skylake)が46種類増加 - 週刊アスキー
MIPI SoundWire
- 北森瓦版 - Intelチップセットのロードマップ―Z390は2018年下半期予定
- MIPI SoundWire
- ケイデンスが、業界初のMIPI SoundWire Controller IPソリューションを提供
- ケイデンス、業界初のMIPI SoundWire v1.1高品質オーディオソリューション向け設計IP、検証IPを提供
- Intel roadmap shows when to expect Coffee Lake-S (300 Series) - CPU - News - HEXUS.net
- MIPI SoundWire v1.1のIPコアと検証IP、Cadenceが提供 | 日経 xTECH(クロステック)
- 【特集】今年後半の薄型ノートやタブレットは音質が大きく向上(するかもしれない) - PC Watch
ヒンジセンサー
- FadisさんはTwitterを使っています 「IntelがLinuxカーネルにヒンジセンサーのドライバを追加している話。Intel曰く、ヒンジセンサーは「ラップトップで広く用いられている」センサーで、画面とキーボードのなす角、画面と水平面のなす角、キーボードと水平面のなす角を取得する事ができるらしい https://t.co/Qxtpgzq58X」 / Twitter
- Intel Has A New Driver For Linux 5.12: Reporting Your Laptop's Hinge/Keyboard Angle - Phoronix
- FadisさんはTwitterを使っています 「ヒンジセンサーはこの手の雑多なセンサーが押し込まれているLinuxのIndustrial I/Oデバイスの一種として扱われ、sysfsから簡単に3つの値を取得する事ができる」 / Twitter
タッチパッド
- Synaptics タッチパッド - ArchWiki
- libinput - ArchWiki
- Linuxでタッチパッドのスクロール機能を使うには - @IT
- タッチパッド - Wikipedia
- Touchpad - Wikipedia
- Synaptics TouchPad Interfacing Guide
- 2.1. ALPS Touchpad Protocol — The Linux Kernel documentation
- paul_ps2emu.pdf
- psm(4)
- なかのん&マジックさんのツイート: "中クリックとAlt+Enterでタブに開くという共通動作を知らない人も何人か見かけた。"
- なかのん&マジックさんのツイート: "@nyoro_712 macOSのtrackpadだとどうしようもないんですけど、大半のWindows PCについてるSynapticsのタッチパッドだと、3本指タップを中クリックに設定できるんですよね。ちなみに、後者の場合はブックマークの展開先は既に設定に存在しています(browser.tabs.l… https://t.co/40vmdQqRku"
- なかのん&マジックさんのツイート: "@nyoro_712 無さそうなのと、特にバグとして報告もされていないので、需要が無いのかもですね。"
- なかのん&マジックさんのツイート: "@nyoro_712 おそらく、historyはGUIで探すのが非効率的なので、URLバーからタイトルやURLで探してる人が多いんじゃないかという気がします。その場合、Alt+Enterで済みますから。"
- なかのん&マジックさんのツイート: "@nyoro_712 一応、Firefox 3以降は、「URLバーでアクセスしたいページをbookmarkとhistoryの両方から検索すれば良い。そのために、180日分historyを残し、消したく無いものには☆を付けてもらってブックマークの未整理フォルダに突っ込んでおいて消えないようにしておこう」… https://t.co/h1kX1XHNwL"
- なかのん&マジックさんのツイート: "@nyoro_712 Firefox 2開発時には新しい使い方を押しつけようとしたんですが、それは反発が大きかったので一旦取り下げられ、Firefox 3で、今までの使い方もできるけど、新しいURLバー中心の動作もできるようになりました。私もブックマークツールバーを多用しつつ、URLバーも使い、用途に… https://t.co/Wo5XYneFk9"
マウス
- PS/2仕様
- ardionoにPS/2マウスを接続する | ものづくりとプログラミング日記
- Arduino Playground - Ps2mouse
- moused(8) FreeBSDドキュメントJMan
- PS/2 Mouse Interfacing
- "8042" PS/2 Controller - OSDev Wiki
キーボード
- キーボード コントローラ(KBC)
- はりぼてOSをUEFIで起動する/4日目 - ねりりんと借り初めのものがたり
- PORTABOOK - ねりりんと借り初めのものがたり
- アラビア語キー配列 - Wikipedia
- Keyboard layout - Wikipedia
- IBM PC keyboard - Wikipedia
- Scancode - Wikipedia
- スキャンコード - Wikipedia
- キー配列 - Wikipedia
- Altキー - Wikipedia
- AltGr key - Wikipedia
- QWERTZ配列 - Wikipedia
- The PS/2 Keyboard Interface
- The PS/2 Mouse/Keyboard Protocol
リセット
- ハードウェアリセット方法 パソコン鳥のブログ/ウェブリブログ
- Nerry さんのツイート: "再起動と電源切断をUEFI RT ResetSystem API呼び出す方法から ACPI の提供するサービスに移行してる最中だけど、一部環境(qemu)でACPIリセット対応してない機種がある。 リセットレジスタはオプショナルのようだからこれでも正しい動作な気はするが・・・"
- Nerry さんのツイート: "そもそもIOポートでリセットって一体何通りの方法があるんだ?🤔 ACPIのリセットポートはOADGに書いてるポートとかと全然違うんだが"
- Nerry さんのツイート: "確か普通のPC/ATには比較的古い機種で使える遅いリセットと比較的新しい機種で使える速いリセットが何種類かあって、それの正しい呼び出し順番を昔どっかで見た気がする。 ACPIリセットレジスタはそれらとまた別のポート。"
- Nerry さんのツイート: "ACPIリセットポートはCF9がよく使われてるようだがこのIOポートってPCIコンフィグレーションと被ってないか?"
- 市川 真一さんのツイート: "CF8 をダブルワード・アクセスする場合に PCI_ADDRESS レジスタに対する R/W になるので、CF9 にバイト・アクセスする場合には PCI コンフィグレーションとは関係なく使えると思います… "
TPM
- TPM の推奨事項 (Windows 10) | Microsoft Docs
- TPM 2.0 Library Specification | Trusted Computing Group
- 1
- TCG Opal 2.0 - Technology - Apacer for Industrial - The most reliable storage and memory
- TPM 1.2と2.0の機能の比較 | Dell 日本
- TPM2.0は”なにもの”で、どこで(何で)対応するのか?: なんとなく綴ってみた
- Trusted Platform Module - Wikipedia
- 今夏からWindows 10 PCはTPM 2.0搭載が必須に - PC Watch
- 松本 泰さんはTwitterを使っています 「MSのVirtual TPMが、FIPS140-2 取得 https://t.co/TDdMR96Xv7 これ、ゆりか先生の プラットフォームセキュリティin Windows ブートタイム保護 概要編 https://t.co/JqzQ7NgJPv 一緒に見ると、理解が深まると思うよ。」 / Twitter
- 140sp3690.pdf
- プラットフォームセキュリティin Windows ブートタイム保護 概要編
- suzakiさんはTwitterを使っています 「メモ。 TPM 1.2と2.0の機能の比較 https://t.co/U4BEehjS8N TPMで使う暗号アルゴリズムの一覧が便利。」 / Twitter
- TPM 1.2と2.0の機能の比較 | Dell 日本
FIDO
WebAuthn(FIDO2)
- パスワードに依存しない認証「WebAuthn」をChrome/Firefox/Edgeが実装開始、W3Cが標準化。Webはパスワードに依存しないより安全で便利なものへ - Publickey
- Web Authentication: An API for accessing Public Key Credentials Level 1
- FIDO Alliance and W3C Achieve Major Standards Milestone in Global Effort Towards Simpler, Stronger Authentication on the Web
- パスワード依存脱却へ一歩前進、次世代Web認証「WebAuthn」が勧告候補に | マイナビニュース
- Web Authentication API で FIDO U2F(YubiKey) 認証 | blog.jxck.io
- FirefoxがWeb Authentication APIを導入
- マイクロソフト、WebAuthnをEdgeに実装。パスワード不要、生体認証やPINでWebサイトへログイン可能に。2018年秋のWindows 10アップデートで - Publickey
- WebAuthn demo
- Chrome 70から、WebAuthnでMacのTouchIDとAndroidの指紋認証がデフォルトで利用可能に。Webサイトへのログインもタッチで - Publickey
- Yahoo! Japanが近日中にFIDO認証に対応すると表明、パスワードを使わず生体認証などでWebブラウザからのログインを可能に - Publickey
- IdM実験室: Windows 10 October 2018 UpdateのEdgeでWebAuthnを試す
- Eiji Kitamura / えーじさんのツイート: "Chrome 70 の新機能 - Windows でのデスクトップ PWA に対応、WebAuthn での指紋認証、名前付き Worker など https://t.co/9tp9JGBaSj"
- Web Authentication: An API for accessing Public Key Credentials Level 1
- FIDO Alliance FIDO2 Project - FIDO Alliance
- 指紋認証でヤフーへログイン可能に、FIDO2方式での認証に各サービスが対応 - INTERNET Watch
- 「FIDO」で“パスワードレス時代”到来か? ヤフーと三菱UFJに続きLINEも導入 - INTERNET Watch
- Client to Authenticator Protocol (CTAP)
- WebAuthnに対応したSafari Technology Preview 71、アップルがリリース - Publickey
- [WIP]WebAuthnのためのnavigator.credentials.create仕様読解 - murak.me
- WebAuthn @ DroidKaigi 2019 - Speaker Deck
- パスワードを不要にするFIDO2プロトコルに、Android 7以降の全デバイスが適合。FIDOアライアンスが「AndroidがFIDO2認定取得」と発表 - Publickey
- W3C and FIDO Alliance Finalize Web Standard for Secure, Passwordless Logins - FIDO Alliance
- パスワード不要のログイン方法「WebAuthn」がウェブ標準になる - GIGAZINE
- W3C、パスワードを不要にする「Web Authentication」(WebAuthn)を勧告として発表。Chrome、Firefox、Androidなど主要ブラウザですでに実装済み - Publickey
- dynamis (でゅなみす)さんのツイート: "Google AccountがいつまでもWeb Authnの標準仕様(Firefoxで実装済み)に対応しないから、非標準実装のWeb AuthnサポートもGoogleなど特定サイトだけを対象に入れようか議論してる。 なんともはや。。。何のための標準化なのかって気持ちになる。 https://t.co/tVIvU8Uw71"
- Backward-Compatibility FIDO U2F support shipping soon in Firefox | Mozilla Security Blog
- ASCII.jp:Windows 10+FIDO2デバイスでパスワード入力なしにMicrosoftアカウントにログイン (1/3)|Windows Info
- 第570回 セキュリティキーを使って,Ubuntuで多要素認証をしてみよう:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- WebAuthnことはじめ - Mercari Engineering Blog
- パスワードレス認証WebAuthnの勘所と対応状況:新春特別企画|gihyo.jp … 技術評論社
- W3CとFIDO AllianceはセキュアでパスワードなしログインのWeb標準であるWebAuthnを最終化した
- Androidスマホが指紋認証でウェブサービスへのログインが可能に - GIGAZINE
- webauthn_study_ritou.pdf - Speaker Deck
Windows Hello
- IdM実験室: [FIDO/Windows10]idcon vol.20(別名fidcon)が開催されました
- 【連載】MS ゆりか先生が教えるWindows 10 セキュリティのアレコレ [3] パスワードとさよなら!? Windows HelloとMicrosoft Passportで実現する世界|セキュリティ|IT製品の事例・解説記事
- パスワードは時代遅れです:Windows 10時代の新認証 「Windows Hello/Microsoft Passport」と「FIDO」を理解する (1/5) - ITmedia エンタープライズ
- Windows Hello を Web で使うための Web Authentication API (FIDO 2.0) について調べた - しばやん雑記
- FIDO in Windows10
- Windows Hello とは
- Windows Hello | Windows 10 | Microsoft
- Windows Hello の概要とセットアップ
- Windows Hello for Business (Windows 10) | Microsoft Docs
- Windows Hello for Business および Azure AD 経由でのパスワードを使用しない ID の認証 | Microsoft Docs
- Webでの生体認証をヤフーさまとともに - Windows Blog for JapanWindows Blog for Japan
- Windows 10 で FIDO 認証技術をサポート | Windows Blog for Japan
- Windows Helloが生体認証機能つき指輪「Token」に対応 - PC Watch
- Web Authentication API 紹介 (Windows Hello を使った Edge 開発) – Tsmatz
- MicrosoftアカウントにWindows Helloでログイン可能に ~EdgeがWebAuthn/FIDO2に対応 - PC Watch
- Windows Hello for Business (Windows 10) | Microsoft Docs
- Passwordless Web Authentication Support via Windows Hello | Mozilla Security Blog
- Windows 10搭載の生体認証「Windows Hello」がFIDO2認定を取得 ~Webブラウザでもパスワード不要でログイン可能に - PC Watch
News
- Googleアカウントの2段階認証で使用可能なUSBセキュリティキー「FIDO U2F Security Key」を使ってみました - GIGAZINE
- Googleアカウントのセキュリティを最大限に高めるUSBキー「FIDO U2F SECURITY KEY」 - ケータイ Watch
- GitHub、大容量ファイルストレージやFIDO U2F対応などの新サービス発表 | マイナビニュース
- Bluetooth Smartデバイスで二段階認証、FIDOの仕様に - ケータイ Watch
- MS、Windows 10にパスワード不要の認証技術「FIDO」を採用 - ITmedia エンタープライズ
- News & Trend - ポストパスワードの有力候補、ユーザー認証の新仕様「FIDO」が始動:ITpro
- 半径300メートルのIT:Googleの二段階認証を3400円のUSBキーで試す - ITmedia エンタープライズ
- News & Trend - 認証標準化団体が「FIDO 2.0」のWeb API仕様をW3Cに提案、パスワードレス普及へ一歩:ITpro
- パスワード管理ツールを一元化するオープンソースプロジェクト「Open YOLO」、DashlaneとGoogleが提携 -INTERNET Watch
- FIDO Alliance、新仕様「FIDO 1.1」とJapan WG設置を発表 -INTERNET Watch
- 【清水理史の「イニシャルB」】 入手をきっかけに2段階認証有効化大会を開催 YubicoのUSBセキュリティキー「YubiKey 4」 - INTERNET Watch
blog
- FIDO U2Fをサポートする十数個のサービス | YubiKey BLOG
- 煩雑なパスワード管理から解放してくれる「FIDO」とは? - THE ZERO/ONE
- アイデンティティ管理とその動向 - Yahoo! JAPAN Tech Blog
- FIDO認証の進化とさらなる応用展開 (第3回FIDOアライアンス東京セミナー講演) - Yahoo! JAPAN Tech Blog
- 次世代認証プロトコルFIDOの動向 - Yahoo! JAPAN Tech Blog
スライド
- Tokbind-fido
- Idcon gomi-052715-pub
- slides_06.pdf
Qiita
- yubikey - Googleの二段階認証にセキュリティキーを使う - Qiita
Twitter
- Rockridgeさんのツイート: "Fx48:FIDO U2F v1.1 APIの初期実装が完了。security.webauth.u2fとsecurity.webauth.u2f_enable_softtokenの設定を有効化することで利用できる。参照:… https://t.co/EyDiiDX13q"
- Rockridgeさんのツイート: "FIDO U2FをベースにW3Cで策定中のWeb Authentication APIについて、MozillaがFirefoxに実装する意向を表明した。 / “Intent to implement and ship: Web …” https://t.co/MIwCwKP6gT"
- Rockridgeさんのツイート: "Fx57:FIDO U2F Security KeyとなるUSBヒューマンインターフェイスデバイス(HID)をサポート。2段階認証にUSBキーが使えるようになる。なお、ソフトウェアライブラリはRust言語製。参照:… https://t.co/ZJn007joFl"
- Rockridgeさんのツイート: "Firefox 60において、Googleアカウントの2段階認証に既に利用しているU2Fデバイスについては、Web Authentication APIに対応していなくてもサポートする方針。ただし、数年間に限定した話のようだ。 https://t.co/umRmiLkSoA"
- Rockridgeさんのツイート: "Fx59:FIDO U2Fデバイスによる認証が利用できるのは、HTTPS接続されたWebサイトのみ。 / “1247124 - Use [SecureContext] for FIDO U2F JS API” https://t.co/4Uhh9m66om"
- nov matakeさんのツイート: "“For example, all YubiKey 4 devices would have the same attestation certificate; or all Samsung Galaxy S8’s would have the same attestation certificate.” えっ、デバイスごとにちがう鍵埋めてんじゃなかったのか... https://t.co/00sRMfVy7i"
- FIDO Alliance FIDO TechNotes: The Truth about Attestation - FIDO Alliance
- 82さんのツイート: "デバイスごとに異なるキーペアに各社のCAやらがsignしてるはず→Attestation Certificate… "
- Yoshikazu Nojimaさんのツイート: "このページのKey generation scheme used by Yubico U2F devicesという図に、 Device Secretという物が載っていますが、これが「Credential IDから秘密鍵求める用の鍵」で、 こちらはデバイスごとに異なる鍵が焼き込まれている認識です。 https://t.co/1nin7eyHyt… https://t.co/IHK76N9pwA"
- Key generation
- 82さんのツイート: "仮に同じモデルで同じ Private Key つかっちゃうと、どのデバイスでも Credential ID から、Private Key 復元できちゃうからそれはないはず。Root Certificate が同じという意味では? それともキーペア生成時に、シリアルとか混ぜ込むのかな…。とりあえず記事読んでみます。… https://t.co/UEGGCSPaGw"
- nov matakeさんのツイート: "FIDO2-readyなYubiKey、もうあるしいいやと思ってたけど、もいっこもらっとけばよかったw… "
- Borisさんのツイート: "Today I learned that the way the Google FIDO u2f polyfill is written means the API defined at https://t.co/HqYHPOMwPo can't actually be shipped in non-Chrome browsers in that form because the polyfill will stomp on it with code that only works in Chrome."
- Web Authentication Working Group
- FIDO Alliance and W3C Achieve Major Standards Milestone in Global Effort Towards Simpler, Stronger Authentication on the Web
- FIDO Alliance » Download Specifications
- FIDO Alliance » Metadata Service
- google/u2f-ref-code: U2F reference implementations
- FIDO U2F 準拠した対応デバイス『ePass FIDO』販売開始
- FIDO U2F対応認証オプション | CloudGate
- u2fval
- List of libraries
- U2F - FIDO Universal 2nd Factor Authentication | Yubico
- FIDO - マイクロソフト系技術情報 Wiki
- Google、Androidスマホを2段階認証のセキュリティキーにできる機能 - PC Watch
日時管理
その他
- 日本標準時プロジェクト https/http を介してアクセスされる場合
- てくろぐ: インターネット・トリビア: インターネットと時刻
- 関数の時間計測 - in neuro
- システム障害なしにうるう秒を乗り切る技術の発達について|Rui Ueyama|note
- melancholic afternoon
- 無理数時計の数理@tcfmミートアップ
- 「Firefox」でインストール済みアドオンが利用不能になる問題が発生中 - 窓の杜
- クロックを用いた時間計測 - Qiita
- Web標準になった高分解能な計時レベル2
- ruby/zlibのテストが何もしていないのに失敗するようになった話 - @znz blog
- TimexとElixir標準日時①:現在日時取得(now)を比べる - Qiita
- 東大、スカイツリー展望台と地上で「相対性理論」検証 セシウム原子時計より100倍高精度の「光格子時計」で - ITmedia NEWS
基礎
- CPU time - Wikipedia
- System time - Wikipedia
- Elapsed real time - Wikipedia
- wall time
- UNIXのwall-clock-time、user-cpu-time、およびsystem-cpu-timeとは何ですか?
- wall clock timeとCPU timeの測定 - ange1の日記
- real time/user CPU time/system CPU timeの違いをメモ – Siguniang's Blog
制度
国民の祝日
- 国民の祝日について - 内閣府
- 国民の祝日に関する法律 - Wikipedia
- 国民の祝日チェック
和暦
MS
- Japan New Era Name Support Blog – 日本マイクロソフトの新元号 (和暦) 対応に関するサポート情報のブログです
- 新元号 改元の対応のプロセス – Japan New Era Name Support Blog
- 新元号への対応についてのアップデート – Japan New Era Name Support Blog
- ZZOさんのツイート: "マイクロソフトの.netは、これまでは西暦が入ったDateTime渡すと例えば"平成1年"という文字列を返してきたのに、新元号対応後は"平成元年"という文字列を返してくるように仕様変更される。行政提出用データやOCR帳票等に"元"を出してはいけないため調査と変更を急遽行っているという現状。"
- ASCII.jp:日本マイクロソフト平野社長、Windowsの「新元号」対応を説明
- 牟田口大介さんのツイート: "Windows Updateで元号一文字表記のフォーマットが変更されたのやばすぎ…。 レジストリで 平成_平_Heisei_H だったのが 平成_㍻_Heisei_H になったらしいよ。だれだこれにOKだしたの"
- Japanese Era Ligature Abbreviations – I'm not a Klingon ( )
- 新元号への対応について - Microsoft mscorp
- kumoha683さんのツイート: "[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Calendars\Japanese\Eras] "2019 05 01"="令和_令_Reiwa_R" 追加した"
- 個人のお客様向け:マイクロソフト製品の新元号への対応に関する情報 - News Center Japan
- 日本マイクロソフト、新元号対応への同社の取り組みをまとめたページを新たに公開【やじうまWatch】 - INTERNET Watch
- 【令和】Microsoft の元号対応が迷走している件 - Qiita
- おごちゃん / 軽率の謗りを免れないさんのツイート: "だから、改元の日まで新元号を使っちゃいけないだってば。 新元号が使えるためには、システム日付が5/1になってないとダメってのは、正しい法律の実装。 とは言え、テストがなぁ...… "
- 楠 正憲さんのツイート: "誰も間に合うなんて約束してなかったはずだし、ギリギリで配信されても情シス部門がテストする時間がない訳で、急がない方がいいのでは? / “Windowsの令和対応パッチ配信が始まらず、10連休に間に合わない懸念も | 日経 xTECH(クロステック)” https://t.co/xbbZBv8zMW"
- Windowsの令和対応パッチ配信が始まらず、10連休に間に合わない懸念も | 日経 xTECH(クロステック)
- なかのん&マジックさんのツイート: "間に合わん方がオジサン達に良い薬な気もするな。 https://t.co/JYzns9i23j"
- 島鉄雄さんのツイート: "Windows がちゃんと令和対応してるか、プログラマならコードで確認したくなるよね? 元年の表示は自分で対応しないと駄目っぽい。 あと、Emacs26.2 だけどなんかインデントがおかしい...orz L"" という書き方に対応してないような気がする…ぐぬぬ… https://t.co/XUhcaKr62V"
- ASCII.jp:Windows 10の令和対応パッチによる変更点を詳しく見る (1/2)|Windows Info
- ASCII.jp:.NET Frameworkにおける新元号「令和」への対応 (1/2)|Windows Info
- ASCII.jp:改元絡みでWindows 10の電卓アプリがバグってました (1/2)|Windows Info
PC Watch
- 【Windows 7 ユーザーズ・ワークベンチ】Windowsの言語環境カスタマイズと国際対応 - PC Watch
- 2019年発の“新元号”はWindowsアップデートで対応 - PC Watch
- 改元されたあとの“平成31年”表記はどう扱うべき? ~日本マイクロソフトやAdobeが改元対応を説明 - PC Watch
- Microsoft、「KB4487044」適用で元号に不具合 - PC Watch
- 新元号は“令和”に決定 - PC Watch
- ATOK、4月18日より「令和」に対応。日付入力支援なども - PC Watch
- 日本マイクロソフト、Windows/Officeは自動更新で「令和」に対応 - PC Watch
- 日本マイクロソフト、「令和」に対応したWindows更新プログラムを提供開始 ~GW中は専用問い合わせ窓口で対応 - PC Watch
窓の杜
- 日本マイクロソフト、来年の改元に備えたサポート情報ブログを開設 - 窓の杜
- 新元号への対応に関するアナウンスは6月が目標 ~マイクロソフトが最新情報を公開 - 窓の杜
- 改元・新元号に備えた変更が「.NET Framework」に ~一部は7月の月例更新で自動配信 - 窓の杜
- Microsoft、新元号の仮定義を削除するパッチをリリース ~「April 2018 Update」向け - 窓の杜
- 「Microsoft Silverlight」が新元号へ対応 - 窓の杜
- 2月のパッチでWindowsの元号処理や仮想マシンの復元に問題 ~Microsoftが修正版を公開 - 窓の杜
- 日本マイクロソフト、新元号対応に関連する情報を集約したWebページを公開 - 窓の杜
blog
- 山市良のえぬなんとかわーるど: Windows 10 ver 1803 の新元号仮定義(既に廃止)と e-Tax
- 新たな元号はJIS X 0213に入るのか | yasuokaの日記 | スラド
- 平成の次の新元号の文字列を取得するコード - にせねこメモ
- 新元号は「令和」に、施行は5月1日 | yasuokaの日記 | スラド
- 「令和」の典拠は日本古典なのか漢籍なのか | yasuokaの日記 | スラド
- The Unicode Blog: Unicode Version 12.1 released in support of the Reiwa Era
- The Unicode Blog: Unicode コンソーシアムは「令和」をサポートする Unicode 12.1 を正式リリースしました
Twitter
- なかのん&マジックさんのツイート: "和が昭和とかぶったから、合成文字では読みにくそう。"
- Taku Kudoさんのツイート: "NF(K)Cでは、U+F9A8 は U+4EE4 に正規化されるみたい。それとは別に、U+32FFの正規化が追加されるのかな。"
- Kazuho Okuさんのツイート: "テストやってないのが問題なんじゃなくて、和暦対応に開発やコスト工数割かなきゃいけないのが問題なんですよ。ねんのため… "
- しげっと(オルタ)さんのツイート: ""和暦の一の位が「1」だったら「元」に変換するロジックを組み込んでいた。しかし、十の位を考慮していなかったため、ミスが生じた" 世田谷区の通知書類に「平成3元年」と誤表示、改元前に早くもトラブル https://t.co/tuV69sH54p"
- 世田谷区の通知書類に「平成3元年」と誤表示、改元前に早くもトラブル | 日経 xTECH(クロステック)
- Haruhiko Okumuraさんのツイート: "「令和」の「令」は U+F9A8 じゃなく U+4EE4 だと書かれている https://t.co/C3kx855Dk9"
- 小熊善之さんのツイート: "こんなん発出されてたんか……。: 新元号名で使用する文字コードについて(周知) https://t.co/ZPxfm3NkgU"
- 改元に伴う企業等の情報システム改修等への対応 (METI/経済産業省)
- 20190405_kaigen_code.pdf
- はむ弁護士さんのツイート: "海外の取引先は、日本がGWで長期休暇であることを伝えても「Golden week?なにそれ?」という感じで、日本側の事情を無視して休暇中にも連絡がくるのですが、今年は「Crown Princeが5月1日にNew Emperorに即位してReiwa Eraが始まるから10連休なんだ」と伝えると、わりと理解を示してくれる印象です。"
- 島鉄雄さんのツイート: "WSL(Ubuntu 18.04) の令和対応を完了! なんとかギリギリ間に合ったw /usr/share/i18n/locales/ja_JP を https://t.co/BJswKP6sBY の ja_JP で上書きして $ sudo localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 した。 strftime() の使い方の勉強にもなった。 (もしやる場合は自己責任でお願いします)… https://t.co/88PYrxGlFK"
- sourceware.org Git - glibc.git/commit
- 島鉄雄さんのツイート: "ちょっと捕捉 $ sudo apt install language-pack-ja $ sudo update-locale LANG=ja_JP.UTF-8 で、デフォルトロケールを ja_JP.UTF-8 に変更済み https://t.co/BJswKP6sBY ここから ja_JP を落とすには、localedata/locales/ja_JP の横の blob をクリック→上の方にある raw をクリックで落とせる"
- The Unicode Blog: New Japanese Era
- https://www.unicode.org/L2/L2018/18220-u121planning.txt
- 平成の次、新元号のUnicodeコードポイントは「U+32FF」 | マイナビニュース
- NHK NEWS WEB|NHKのニュースサイト
- 新元号は「令和」 | NHKニュース
- 「令和」は「beautiful harmony」海外に説明へ | NHKニュース
- 振込予定日がなぜか「1989年」に、コンビニATMで不具合 | 日経 xTECH(クロステック)
- 「令和」対応の開発者向けiOS 12.3とmacOS Mojaveベータ版がリリース。しばらく一般公開版は「平成31年」 - Engadget 日本版
- 第567回 令和を言祝ぐ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
夏時間
Twitter
その他
- なかのん&マジックさんのツイート: "サマータイム批判してるツイートでも触れられてないけど、サマータイム導入したら、世界中の機器のアップデートが必要じゃないか?"
- Hiroyuki Nishimuraさんのツイート: "日本はサービス残業という違法労働が民間だけでなく、役所ですら起きているのに是正されないという点。 時計を切り替えても、人間の体内時計は、ずれたままなので、2時間の差は健康被害を生む可能性が高い点。 他国は1時間差です。 なので、夏時間導入は労働者に不利益な結果を生むとおいらは思います… https://t.co/tpWC1Z8NgK"
- 何者でもないおっさんさんのツイート: ""daylight saving time"でgoogle scholarで検索すると、 交通事故が増える、心筋梗塞が増える、睡眠時間が減る、仕事場での怪我が増える、エネルギー消費は意外に減らない(むしろ増える)等、ろくなのが出てこないw 前向きな論文は被引用数トップのほうではほとんどなし。 https://t.co/FVxC3ljl2Y"
- Haruhiko Okumuraさんのツイート: "この前,過去の気象を調べていて,日本時間1948-05-02 00:00でエラーになるので悩んだ。当時日本は夏時間があって,この時刻は存在しないのだった(1948-05-01 23:59の1分後は1948-05-02 01:00)"
- Shiro Kawaiさんのツイート: "(時計をいじるのではなく開始時刻を変える)夏時間冬時間、ってかすかに覚えがあるんだけどどこでだったかな。… "
- Tanaka Akiraさんのツイート: "国会議事録を夏時刻法で検索して眺めていると、この法案が通る前は学校や会社で夏と冬の出勤時刻を変えるのがあたりまえだった感じなのだが、いつのまに同じ時刻にするようになったのだろうか。"
- Kiichiro Yanashitaさんのツイート: "この記事、何がすごいってサマータイムをやろうと考える議員も、元号法のせいで平成31年と言わなければならない役人も、新元号を発表できない政府も、そのまま書く産経新聞もバカしかいない。日本の馬鹿を選り抜いた感。【東京五輪】酷暑対策でサマータイム導入へ https://t.co/WXOmjgo8pL"
- 水無月ばけらさんのツイート: "2年間だけの試験導入だとというなら「弊社のサービスはサマータイムに対応しません」が最良の選択肢であるように思えますし、実際そういうところが多数出てくるように思いますね。"
- 元茸さんのツイート: "サマータイムの件、「完全に同期された時計に従って動いている世界」を一切知らない人たちがその辺の時計をみんなが二時間ずらすだけぐらいの気持ちで思いつきをしゃべってるんだろうけど、そのレベルの視野しかない人達が重要な決定をする立場にいる怖さはもうちょっと認識しないとまずいかも"
- 及川卓也 / Takuya Oikawaさんのツイート: "サマータイムに関して、ITに詳しくない人たちが、そんなに対応が大変なものなのか。ITを多少知っている人たちであっても、ハードコードとかしているからでしょ。と言っているのを観測するにつれ、デプロイコストという認識がまだまだ薄いなと感じる。"
- 及川卓也 / Takuya Oikawaさんのツイート: "サマータイムをOSに適用するのも、NLS機能をちょっと直せば対応できるとしよう。だが、たとえそうだとしても、それをサマータイム対応が必要とされる機器すべてに適用するのがどれだけ大変か。もっと言うと果たして現実的なのか、ということへの認識が薄い。"
- 須藤玲司さんのツイート: "Time Change a ‘Mini-Y2K’ in Tech Terms https://t.co/JZ14ZvXPbk NYTのこちらの記事じゃ、2007年アメリカのサマータイム期間4週間延長に伴うシステム改修費用は、少なく見積もって3.5億ドルだったとしています。 法改正からたった2年での施行で、エンジニアは徹夜続きでふらふらだとか。"
- 須藤玲司さんのツイート: "繰り返しますが、アメリカのシステムは2007年時点ですでにサマータイムに完全対応してました。エンジニアも経営者も一般市民も、サマータイム対応のノウハウは世界最高です。 そのアメリカで、夏時間の開始日を早め終了日を遅らせる、たかがそれだけの微調整に、費用が3.5億ドル。ざっと400億円です。"
- 何があなたの都市ポップなさんのツイート: "サマータイム導入の影響を受けるコンピュータが省庁や一部の企業のものだけだと思ってないか? JST に触れてるコンピュータ全部やぞ、全部。お隣の国や地球の裏側の国にあるコンピュータにも影響あるんやぞ。なんならオリンピックに海外から来る選手や観客のスマートフォン一台一台も対象やぞ"
- りおりおすとさんのツイート: "タイムスタンプ付きでイベント管理しているようなプログラムがうるう秒やサマータイムを考慮してない場合、想定したイベント発生までビジーループでwaitしちゃう、なんて場合にですね…。 9:00から9:01まで待つつもりが、7:00から9:01まで待っちゃうわけですよ。死ぬわ。"
- りおりおすとさんのツイート: "実際、おかしくなったシステム、例えばCPUロードが100%になっちゃったJavaとか続出しただろ…。時計が遅れるのはまだ良いんだよ。時計が進むのはマジでやばい。"
- Kazuho Okuさんのツイート: "JJYは「日本標準時」を送出している以上、法律が標準時に対してオフセットを定める一般的な夏時間になるという前提において、一部メーカーの「世界時計機能だけおかしくなる」という説明は誤りでは? / “サマータイム導入で「電波時計が狂…” https://t.co/sSQHFucrzF"
- FUTATSUKI Yasuhitoさんのツイート: "FreeBSDの cron には -s ってのがあって、夏時間等でGMT offsetが変更になる場合の特別な取扱いをするかどうかをこれで決めるのだけれども、CentOS 7のcronでは -s は別のフラグに割り当てられていて特別な取り扱いが常に行われると。"
- FUTATSUKI Yasuhitoさんのツイート: "軽くcronにおけるオフセット変更時の挙動について見てみたけど、Vixie CronなFreeBSDとCentOS 7でそれぞれdefaultの挙動が違うということだけはわかった。(ほんとに中身をまともには読んでない:))"
- ymmtさんのツイート: "グループウェアのサマータイム対応はひとつ面白い問題があります。 会議で良く「毎週水曜日10時~11時」といった予定をいれることがあるのですが、この毎週10時というのが、サマータイム中か否かでタイムゾーンの異なる参加者間での調整が難しいことになるのです。"
- ymmtさんのツイート: "これに会議室予約を合わせて、ダブルブッキングをできないようにすることを考えるとさらに面倒なことになります。参加者・会議室・予約それぞれがどのタイムゾーンで予定をいれるべきか。 ひとつの完璧な正解というのはない問題です。"
- kinnekoさんのツイート: "サマータイム2年だけと思っているでしょうが、未来で過去のその月日を計算する時には必ず計算が必要になります。影響は未来永劫続くことになります。"
- Takehiro OHYAさんのツイート: "①「損害保険のように時刻が指定された契約や、公訴時効の成立時点などをどう扱うか。サマータイムの導入は、「1日=24時間」を前提とした契約や法制度が無数に存在する、日本社会というシステムをどのように“改修”するかという大仕事」と書いてあり、条文を見たこともないのだな感。"
- Takehiro OHYAさんのツイート: "②実のところ、期間計算について定めた民法139・140条、刑事訴訟法55条とも時間以下の計算と日以上の計算を分離している。具体的には、 ・時間単位の場合は即時起算(民139) ・日以上は初日不算入(0時スタートの場合を除く)(民140) なので、1日の時間数が変動しても期間計算に支障は生じない。"
- 高梨陣平さんのツイート: "豪でサマータイムが開始されたが、Apple Watchの第四世代にDST、Daylight Saving Timeの取扱にバグが存在、ブートを無限に繰り返す問題が発生中。 #自民党議員、見てる?… "
@tetsutalow
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "こんな認識なんですなあ世の中。ではあなたのスマホどうやって時間決めてるか。これサマータイム対応しようとするとOS更新がいるのですが、では来年までに皆さんスマホアップデートしてねといって、それできると思います?… "
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "「いまの時間」を表示するだけならそれでもいいのですがTZ表示関係は影響うけますし,スケジュール帳など「どこから夏時間になるか」情報を欲するアプリがスマホにはいっぱいあるんでTZ情報もつOS更新しないとまともに動かないです.… "
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "2時間ずらすなんてやってる国はないですよ.その上で,サマータイムをビットフラグで表してそれ見て1時間ずらすようにしてるシステムがいっぱいあるのですが.例えば電波時計の標準電波はサマータイムのフラグはありますが「何時間ずらすか」は未定義ですよ.… https://t.co/1SFFY4Z3NC"
- 上原 哲太郎/Tetsu. Ueharaさんのツイート: "うわー、本当に何も分かってない。今年決めて来年も無理だし、2年間だけとかまた戻す手間がかかる最悪の選択だ。大混乱だよ。今の情報機器の時間は竜頭をひねるようには変わらないんだぞ。 / “【東京五輪】酷暑対策でサマータイム導入へ 秋…” https://t.co/ssGVwequ65"
@mhiramat
- まさみさんは語りたいさんのツイート: "サマータイム導入した結果、自動的に国内に時差が発生し、自国にいながらにして時差ボケで調節できず、悲惨な結果に終わる日本代表の姿が見えるぞよ。"
- まさみさんは語りたいさんのツイート: "この仕組み自体が「全員馬鹿」と揶揄される現象なんだが・・・。… "
- satさんのツイート: "サマータイムとか言ってるのを見て関係者全員馬鹿かと思ってる人が多いようだけどそうじゃないと思っている。関係者のうちの多くは意味不明な施策だと百も承知で上に訴えかけているのだけれども、伝言リレーを繰り返すうちに「ナイスアイデア、ぜひやりましょう!」になってるだけかと"
- まさみさんは語りたいさんのツイート: "実際2時間の変更はめちゃくちゃ身体に来ますよ。多分平日眠くて仕事にならない人が続出して、その上で「睡眠不足になるのは自己管理が出来ていないからだ」って言い出す馬鹿が続出すると思う。いままで経験したことがない人が多いだろうし、過労死や老人の死亡割合も増加するだろう。"
- まさみさんは語りたいさんのツイート: "日本ってただでさえ極東の非常に中途半端なタイムゾーンに位置していて、他の地域との電話会議の設定が大変なんで、さらに2時間も時差を付けられると、多分まともな時間帯に電話会議すること自体が不可能になる。本当にするって言い始めたら、個人的に午前中に打ち合わせを入れるのをやめる。"
- lastline@オクトオバケさんのツイート: "酷暑対策にサマータイム導入って、午前中に限っては正解だが、それは午後に全てを押しつけることになるわけで。 気温のピークは1時から3時くらい。地面も温まるので、実質5時くらいまで暑い。それを2時間遅らせるってことは、帰宅時間とか夜はずっと暑いという。何が酷暑対策か。"
- まさみさんは語りたいさんのツイート: "サマータイム導入すると夜も熱くなるわけか。そして老人がバタバタ倒れたら、やっとオリンピックという敗戦を通じて、日本は再生できるかもしれないな。"
- まさみさんは語りたいさんのツイート: "うわー、よく考えるとこれは酷いぞ。サマータイムは通常初夏に切り替わるから、来年度からの導入を行う場合、5月の天皇退位=元号変更と大体あわさり、今からどうやったらいいかを検討してまとまるのが年末となると、影響を受けるシステム変更はもはや収集が付かないレベルに・・・。"
- まさみさんは語りたいさんのツイート: "サマータイム導入が31年度からだとすれば、元号変更も合わさり、サイバーテロを起こしやすくなるのは来年5月あたりからだと思われますね。… "
- まさみさんは語りたいさんのツイート: "サマータイムは感覚的には夜の時間も伸ばすことになるんだけど、何が起きるかと言うと、夜9時になっても空が明るい状態になる。そんな状態で小さい子供を寝かしつけられるか?生理現象として老人と子供はついていけないよ。"
- まさみさんは語りたいさんのツイート: "ただでさえ子供の寝不足・夜ふかしが問題になっているのに、暗くなってから寝かせて、朝暗いうちから起こして学校に行かせるなんてことをしたら、子供の学力以前に成長に影響することも懸念される。"
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyはサマータイム対応済みだが、万一、サマータイム導入が決定したら、導入に賛成した議員には「投票しない」つもり(笑) ---- 「サマータイム導入へ 秋の臨時国会で議員立法 31、32年限定」 https://t.co/ud9TWdlQ6y… https://t.co/e00X8H0NZX"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "日本で知っている人は少ないと思うが、サマータイム適用中のWindowsでは、サマータイムでないタイムスタンプを表示すると、Explorerとコマンドプロンプトで、時間表示が1時間ずれる豪快仕様。 cmd.exeは(DOS時代の互換性のため?)このAPIを使っている様子。 https://t.co/hY1nVKzeBY (解説参照)… https://t.co/0LUGqI2hCg"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FileTimeToLocalFileTime API 「夏時間が適用される季節では、変換対象の時刻が冬時間を指している場合でも、この関数は夏時間による調整分を考慮に入れます」"
@kazuho
- Kazuho Okuさんのツイート: "日本国内の一部だけ夏時間導入案について言うと、沖縄本島以東は夏時間導入、としない限り、UTC+zoneinfoで動いてるスマホとかパソコンとかも全滅するのかなw"
- Kazuho Okuさんのツイート: "zoneinfo を分割するような時間帯導入が過去事例があるのか気になりますね… "
- Kazuho Okuさんのツイート: "windowsもzoneinfoなのかしら"
- Kazuho Okuさんのツイート: "夏時間への移行は、ある標準時から別の標準時への変更(例: 東部標準時-5から東部夏時間-4への変更)として表現するんだよ。標準時のUTCに対するオフセットが変化するんじゃないよ #夏時間プログラミングの基本"
- Kazuho Okuさんのツイート: "時刻間の差の計算は、とにかく同一の標準時に変換してから計算する。実務的にはUTCに変換して計算すればいい #夏時間プログラミングの基本"
- Kazuho Okuさんのツイート: "一番問題になるのは「毎日午前9時」とかローカル時刻にひもづいている繰り返しイベント。夏時間を含む複数時間帯前提のプログラムだと、値がローカル時刻かを表すフラグと、ローカル時刻の場合はどの地点か(例: Asia/Tokyo)を表す属性をもってる #夏時間プログラミングの基本"
- Kazuho Okuさんのツイート: "実務的には、ローカル時刻依存のイベントを増やすのは夏時間移行の問題を増やすだけなので、できるだけ多くの繰り返しイベントをUTCベースで設計して、窓口対応など人に関係する部分だけをローカル時刻連動にする #夏時間プログラミングの基本"
- Kazuho Okuさんのツイート: "これ、こうするのは、ある標準時を採用している地域のうち、一部のみに夏時間があるケースがあるから。例えばオーストラリア東部時間(AEST)を採用してる4州のうち3州は夏時間(AEDT)に移行し、1州は夏の間もAESTを使い続ける #夏時間プログラミングの基本… https://t.co/nFZaIWQWl6"
- Kazuho Okuさんのツイート: "例えば東京時刻で2018/8/14 9:00AMから毎日10回繰り返すイベントはiCalendarでは "DTSTART;TZID=Asia/Tokyo:20180814T090000 RRULE:FREQ=DAILY;COUNT=10" のように表現されます。絶対値としてのタイムゾーンはでてこないことがわかるかと思います #夏時間プログラミングの基本"
- Kazuho Okuさんのツイート: "#夏時間プログラミングの基本 を連ツイしたのは、第一に、OSやJVMなどが提供する夏時間サポートと異なる手法によるオレオレ手法によるサマータイム実装を考え、それを前提とした技術的妥当性を欠くサマータイムへの批判がいくつか見受けられたこと"
- Kazuho Okuさんのツイート: "第二に、日本人がサマータイムや複数時間帯の存在に無頓着なコードを書いた結果、国際化が困難になることがある点を踏まえ、一般的な多時間帯サポートがどのようになされるかコメントする意義はあるのではないか、という点からです"
- Kazuho Okuさんのツイート: "今後プログラムを設計する際、サマータイム機能を当初から入れることはしないとしても、後々OS等が提供する多時間帯及び夏時間サポートを使うことを想定しておくことは、多くの場合、損にはならないだろうと思います"
- Kazuho Okuさんのツイート: "PIMむけのウェブブラウザを書いていたのでカレンダー情報の交換フォーマットに多少知見があった程度のクラスタです"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "#夏時間プログラミングの基本 を見て思い出したが、FATのようにローカル時間で記録するファイルシステムがあり、NTFSとの差分コピー時に更新ファイルと誤認識される問題もあったり。 (なので、robocopy等は1時間の誤差を無視するオプション(/DST)が存在)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "robocopyの/DSTの動作は「1時間の誤差を無視する」なので、夏時間を2時間進める、というパターンには対応できないはず。"
- Kazuho Okuさんのツイート: "OS等の夏時間機能にのっかる最大のメリットは、いつ時間帯が切り替わるか(例:3月第2日曜日午前2時)を指定するデータベースを自分で設計管理更新しなくていい点。時間帯の導入廃止や切替時期が法律で変わるから、ハードコードするわけにはいかないんですよね #夏時間プログラミングの基本"
- Kazuho Okuさんのツイート: "夏時間のある国でも、サーバは夏時間を適用せずに(あるいはUTCで)動かすのが一般的なのでは? 無理にサーバで夏時間使おうとするからおかしくなる / “CentOS7でJDTを試してみた – さくらインターネット研究所” https://t.co/wRw0pf1bHR"
- CentOS7でJDTを試してみた – さくらインターネット研究所
- 夏時間 - Wikipedia
- 夏時間対応のタイムゾーンでJP1/AJS3を運用する
- SAP ERPでの日本のサマータイム対応について - SAPのすみっこ
- Ryosuke Enokiさんのツイート: "サマータイム導入の議論が再燃しているみたいだけど、以前元ボス(本間研一先生)が書いたこの文で、すでに結論は出ているように思う。 https://t.co/1JzeeUQ4Jv しかも2時間の位相前進はかなり無謀かと。得られる経済効果より、不眠による健康被害や事故などによる経済損失は甚大なものになるかと。"
- summertime_20120315.pdf
- 第1回 サマータイム延長で悲鳴を上げるシステム担当者たち:アキラの海外“デッドストックニュース”掘り起こし|gihyo.jp … 技術評論社
- 日本の法令における「一日」と「二十四時間」 | yasuokaの日記 | スラド
- サマータイム導入で「電波時計が狂う」? メーカーに聞いた - ITmedia NEWS
- 「サマータイム実施は不可能」スライドが話題 「経済被害が兆単位」「サイバーテロをお膳立て」立命大・上原教授が指摘 - ITmedia NEWS
- Shirouzu Hiroaki(白水啓章)さんのツイート: "サマータイムに限らず、時間がジャンプした場合のcronの挙動を分かり易く説明してあった。 https://t.co/ty7xPUjJ0k"
- cron の意外な落とし穴! - もろず blog
- Web JJY が夏時間に対応しました
- サマータイムの導入は簡単!なのか?可能なのか?メリットはあるのか? – yohgaki's blog
- 『Excelにタイムゾーンという概念がなく、サマータイムに対応しないということは』『これから未来永劫、時限サマータイムの2年間についての複雑な特別処理を仕込まないと、正しい集計ができなくなります』 - Togetter
- この一文で、自民党内のサマータイム導入推進派の方々の息の根を止めることが出来るかしら | 早川忠孝の一念発起・日々新たなり 通称「早川学校」
- 出生届と死亡届における夏時刻の表示方法 | yasuokaの日記 | スラド
- サマータイム導入には反対だが、サマータイム導入に必要なことを考えた - Qiita
- 欧州委員長、夏時間廃止の意向=460万件意見調査踏まえ-EU各国に提案へ:時事ドットコム
- サマータイムにうんざり、米国で廃止の動き | ナショナルジオグラフィック日本版サイト
- 欧州で最後の「冬時間」に、2021年に「夏時間」廃止で 写真1枚 国際ニュース:AFPBB News
昼休憩
- シエスタ - Wikipedia
- Shiro Kawaiさんのツイート: "暑さ対策というならサマータイムよりはシエスタ導入ではなかろうか。"
- 第63回 シエスタとるなら昼寝は短めに | ナショナルジオグラフィック日本版サイト
- シエスタ(昼寝)にも影響か。スペインがワーク・ライフ・バランス重視へ|クローズアップ海外ニュース
- スペインのタイムゾーン変更はいつから?
- スペイン時間がなくなる?日本との生活リズムや食事回数の違い | たびこふれ
- スペインの時差と現在時刻 - Time-j.net
- Current Local Time in Siesta Key, Florida, USA
- シエスタって何?シエスタは法律で禁止化へ~スペイン - NAVER まとめ
- スペインに根付く「シエスタ」のライフスタイルを変えようとする動きが活性化 - GIGAZINE
- サウジアラビアがついにグレゴリオ暦を採用、時代は「21世紀」へ - GIGAZINE
タイムゾーン
- Yusuke Endohさんのツイート: "Google カレンダーに ICFPc の予定を登録しようとしたら、タイムゾーンに UTC が指定できない。「はいはいイギリスにすればいいんだろ」とやってみたらサマータイム。。。イギリスは世界標準時の自覚を持ってくれ"
- Yusuke Endohさんのツイート: "みんな UTC の予定どうしてるんだろうと思ったら、アイスランドのレイキャビーク(https://t.co/o7y7CV1UtC)とか、ガーナのアクラ(https://t.co/apgjoCzrII)で代用してるって出てくる。普通に Google カレンダー側で対応してほしい。。"
- 四九六々(縦書き用)さんのツイート: "WindowsのICU4CでTimeZoneにお悩みの方。wintz.cのSTD_REGKEYをwchar_tにし、getTZI関数を参考にgetStd関数を作り、uprv_detectWindowsTimeZoneで呼び、apiTZI.StandardNameと比較しましょう。"
- IANA — Time Zone Database
- Sources for time zone and daylight saving time data
- eggert/tz: Time zone database and code
- タイムゾーン呪いの書 - Qiita
- タイムゾーンに関するあれこれ - Qiita
- アメリカの時差と現在時刻 - Time-j.net
- ヨーロッパの現在時刻と時差一覧 - Time-j.net
- Shiro Kawaiさんのツイート: "クラウドでのログ時刻がローカル時刻で表示されるの、メンバーが異なるタイムゾーンに散ってる状況で話しながら作業するには極めて不向きだなあ。"
- Shiro Kawaiさんのツイート: "まさしく、この打ち合わせ中にgithubのissueのコメントが書き込まれた正確な時刻を知る必要があったんだけどa day agoでぐぬぬとなった。そこクリックしても時刻表示に展開されないし。(マウスをhoverしたら時刻が表示される、というのにしばらくして気付いた)… https://t.co/bSDz5L4jjx"
- 9b96faac591ad05eddec760eed2da2d5 齊藤敦志さんのツイート: "ブログやチャットのサービスで「×日前」「×時間前」みたいな表示をするものがあるのはそういう面倒くささをカジュアルに回避してるのかなぁと思ったことがある。 業務で使うなら一意性が必要だろうからもっとちゃんと考える必要があるだろうけど。 https://t.co/t655t1XtjX"
- 18分59秒をめぐって日本標準時の歴史をひもとくことに - エムスリーテックブログ
- Toru TakahashiさんはTwitterを使っています 「US/Pacific-Newっていうタイムゾーンがtzdata2020bから消えてるんだけどそれが入った理由が、1989年に議決されなかった太平洋大統領選挙時間( 'Pacific Presidential Election Time')の法案の先手を打ってタイムゾーンリストに追加したためって。。。https://t.co/0fQYP7Uqi7」 / Twitter
- US/Pacific-New is not a valid timezone · Issue #498 · moment/moment-timezone
- Dai MIKURUBEさんはTwitterを使っています 「@nora96o おおぉー…。基本「削除」はしない (エイリアスは残す) 方針と思ってましたが、こういう削除はあるんですね…」 / Twitter
- Toru TakahashiさんはTwitterを使っています 「@dmikurube ですねー。tzdata2020bから削除されたみたいです。 https://t.co/HNPl2gfs0o」 / Twitter
- [JDK-8254679] Release Note: US/Pacific-New Zone Name Removed as Part of tzdata2020b - Java Bug System
- Dai MIKURUBEさんはTwitterを使っています 「@nora96o オリジナル tzdb の方だとこのへんですかね。まあもともとかなり前から BACKWARD 入りしてたやつかー https://t.co/KUgLPfTKfA」 / Twitter
- Omit US/Pacific-New from default installation · eggert/tz@2edd825
- タイムゾーンを含むタイムスタンプ文字列表現の標準化 - ASnoKaze blog
- FadisさんはTwitterを使っています 「タイムゾーンの時差と過去の変更の歴史を記録したtzdbがforkしそうになっている話。unixtimeのepoch以降に違いの無い複数のタイムゾーンの情報を1つのファイルに統合し、統合されて消えたタイムゾーンはsymlinkで表現する形に変えようという提案を巡って揉めているのが原因 https://t.co/HyMpK1GFv7」 / Twitter
- FadisさんはTwitterを使っています 「tzdbにはunix epoch以前のタイムゾーンの変遷も記録されているが、統合されて消えたタイムゾーンのunix epoch以前の歴史が統合先のタイムゾーンと異なる場合、backzoneと呼ばれる別ファイルにその情報が書かれる。この変更には大きく分けて2つの問題が指摘されている」 / Twitter
- FadisさんはTwitterを使っています 「1つは多くのアプリケーションは今のところbackzoneを読むようにはなっていないため、移行によって既存のアプリケーションがunix epoch以前の時刻の解釈を間違える事」 / Twitter
- FadisさんはTwitterを使っています 「もう1つはtzdbの要素がシンボリックリンクだった場合、そのタイムゾーンの名前は「別の正式な名前に正規化されるべき」名前であると解釈するソフトウェアがあり、この変更によって「ノルウェー時間」が「ドイツ時間」に修正されるといった政治的にヤバい変換が起こる、という事」 / Twitter
- FadisさんはTwitterを使っています 「tzdbの中では、これらの問題からtzdbは現在の形式を維持すべき派とデータベースの整理を進めたい派が半年に渡って争っており、この変更を取り込んでリリースを強行しようとする整理派に対して、維持派が「もうforkするしかねぇ!」と言っている」 / Twitter
プロトコル
NTP
- 日本標準時プロジェクト 公開NTP FAQ
- NTP Security Project、「NTPsec」ベータ版をリリース - ZDNet Japan
- NTP leap indicatorを上書きするProxyを書いた - ASnoKaze blog
- ntpdのLeap Smearingを有効にし、うるう秒を24時間かけて調整する - ASnoKaze blog
- NTPクライアントへの攻撃などを防ぐため、要求パケットに含めるデータを最小限にすることが提案される | スラド セキュリティ
- ENOG-20171027-公開資料.key
- 日記 (2015 年 7 月上旬)
- Fadisさんのツイート: "閏秒は正確な時間を必要としないシステムなら1秒のずれをntpdでゆっくり解消すれば良いだけで、この場合60秒の存在をソフトウェアが意識する必要はない。正確な時間が必要なのに60秒を扱えないシステムはただの欠陥品だから直そう"
- NTPを暗号化する Network Time Security for NTP の提案仕様 - ASnoKaze blog
- Facebook、より精度が高くスケーラブルなNTPサービスのためntpdからchronyへ切り替える
- NTPの次期バージョンv5の標準化が始まる - ASnoKaze blog
- NTPサーバの奇妙な振る舞いとNTPv5の標準化 - ASnoKaze blog
PTP
- WhitePaperPtpJP.pdf
- スペシャルフォーカス: IEEE 1588 Precision Time Protocol - National Instruments
Roughtime
- Rockridgeさんのツイート: "RoughtimeはGoogleが開発中のプロトコルで、サーバとの時刻の同期を安全に行うことができるというもの。ただし、正確な時刻に対し10秒程度の誤差が生じる可能性がある。 / “roughtime - Git at Goog…” https://t.co/ERdGDojsE3"
- googleの新しい時刻同期プロトコル Roughtimeとは - ASnoKaze blog
- 時刻同期プロトコル Roughtime の標準化 - ASnoKaze blog
GPS
- GNSS_Receiver_WeekNumberRollover_SE18-100-007-00_jp.pdf
- 19.6年周期の“GPS週数ロールオーバー”が4月7日にやって来る。古いGPS機器では不具合が発生する可能性も【地図と位置情報】- INTERNET Watch
- 魚田雅彦さんのツイート: "すでに404 Not Foundになっていますが、archiveサイトで見られました https://t.co/urTwt5Wahc… "
- GPSリセットによる運航への影響発生について - JAL国際線
- Hiroshi Matsumuraさんのツイート: "まさか、GPSロールオーバーでJALで問題が発生するとは!しかも最新のB787で。 https://t.co/EXHy9CpIBZ"
RTC
- RTC - OSDev Wiki
- CMOS - OSDev Wiki
- 【やじうまPC Watch】「Windows 10のPCが夜中、勝手にスリープから復帰する」原因と対策 - PC Watch
- 「PCの時計が1時間ずれている」の原因 - Tactful Answer
- 「PCの時計が1時間ずれている」の原因の解説 - Tactful Answer
- pwrtest.efi – UEFI Shell developer tool to test Intel/AMD RTC wake function | Firmware Security
- 自作OSで時間を使いたい - HonokaNo’s blog
TSC
- untagged - x86/x86-64 RDTSC命令とRDTSCP命令の動作の違い - スタック・オーバーフロー
- rdtsc ‐ 通信用語の基礎知識
- CPUクロックに基づく相対時刻の計測
- NAKAMURA Minoru's Diary (2010年4月)
- タイマーカウンタ その3
- 付録G KVM 仮想マシンのタイミング管理
- Hyper-VのゲストOSの時間が遅れる場合がある原因を考察する | MCTの憂鬱
- カーネルにおけるタイマー事情 | 技術文書 | 技術情報 | VA Linux Systems Japan株式会社
- [Win32] [x86 Assembler] Time Stamp Counter | すなのかたまり
- 社会人でもOSを作りたいさんのツイート: "「TSC(Time Stamp Counter)はCPUの周波数程度の細かさ,つまり1GHzであれば1ns単位で時間をカウントすることができる」というのを「1nsの精度がある」と誤った表現をしているウェブページが多いこと多いこと… 精度とは何%の誤差かを意味する言葉であって,先の話題では「分解能」が正しい."
- 社会人でもOSを作りたいさんのツイート: "分解能が1ns±0.5nsのタイマがあったとして,これは秒しか測れないタイマーより分解能はかなり高いと言えるが,精度はめっちゃ悪いよ."
- 周波数 hz 時間 - Google 検索
- hz 時間 換算 - Google 検索
- Timestamp-Counter Scaling for Virtualization White Paper - 教育は参考ブログ
- Intel64 and IA-32 アーキテクチャ仕様書が改訂 - 教育は参考ブログ
- Intel64 and IA-32 Architectures Software Developer's Manuals 改訂 - 教育は参考ブログ
- c++ - Calculate system time using rdtsc - Stack Overflow
- msaitohさんはTwitterを使っています 「Intel の lfence;rdtsc の挙動がいまいち謎だったのだが、イカす会話を発見 https://t.co/mHXzkXWcZY」 / Twitter
- Travis DownsさんはTwitterを使っています 「@InstLatX64 I wonder if the semantics of SERIALIZE differ from: mfence lfence ? Currently, even mfence alone has what appears to be at least as strong semantics (the equivalent an embedded lfence was added to it fix an erratum).」 / Twitter
- msaitohさんはTwitterを使っています 「ここから先とか https://t.co/T2x0JKuZ1Q」 / Twitter
- Ronak SinghalさんはTwitterを使っています 「@trav_downs @InstLatX64 Re: footnote 5 -- does not address speculation in the front-end. Yes, does serialize the instruction stream but still allows fetching/prediction of the code stream that is after the LFENCE. SERIALIZE/CPUID do not allow that.」 / Twitter
- msaitohさんはTwitterを使っています 「Inte, AMD の cpuid, lfence, mfence, rdtscp の挙動の違いの調査など https://t.co/8KVxJ7OwcA」 / Twitter
- Index of /~msaitoh/tsc
- rdtscp を使う - Fixstars Tech Blog /proc/cpuinfo
- CPU_CLK_UNHALTEDの値を取得する - Fixstars Tech Blog /proc/cpuinfo
- 命令単位の時間を計測する (準備) - Fixstars Tech Blog /proc/cpuinfo
- その他の時間計測方法 - Fixstars Tech Blog /proc/cpuinfo
- ogiwaraさんはTwitterを使っています 「時計へのアクセスにしたってシステムclockじゃなくてrdtscp使ってCPUのclock使ってる で、時間のズレが発生したら同期するようにしてる(Cicadaとか?)」 / Twitter
- FadisさんはTwitterを使っています 「TSCとは: Time Stamp Counter。x86のCPUでRDTSCを呼ぶとCPUのクロックが何クロック進んだかを取ることができる。高精度に時間を測ることができるけど、アウトオブオーダー実行で容赦無く順序が変わるので注意が必要 #nekoi7yu_tech」 / Twitter
- Naoya HoriguchiさんはTwitterを使っています 「https://t.co/rTt1tkSFSo この回答オーバーキル過ぎてワロタ。bpftrace のワンライナーいいよね。」 / Twitter
- timestamp - Getting TSC rate from x86 kernel - Stack Overflow
- Naoya HoriguchiさんはTwitterを使っています 「別解として crash を使うてもあるね。ちょっと大掛かりだけど。カーネル内グローバル変数をみたいことはたまにある。」 / Twitter
2038 年問題
- Kazuho Okuさんのツイート: "off_tの64bit化は共有ライブラリの普及前だったからまだ簡単だったけど、time_tの64bit化は面倒だよな感しかない。しかもレガシーな32bit環境だけの問題だし"
- Kazuho Okuさんのツイート: "今年はアセットファイルの expires を +20years に設定しているサーバの管理者が2038年問題に悩まされる(かもしれない)年です"
- Kazuho Okuさんのツイート: "プロセス内部の値だけじゃなくシリアライズされた値も問題になるわけで、たとえば windows 8 の時刻型や MySQL の timestamp 型、 ext2/3 のファイル時刻は 32-bit… "
- Dan Kogaiさんのツイート: "うん。だから「」でくくっといた。あとこういう問題も残ってる https://t.co/qvJgCdQpNs… "
- 404 Blog Not Found:人類よ、これが本当の人類滅亡だ
MS
- .NET 6:日付と時刻の構造
時刻のみのオブジェクト
- Miura HidekiさんはTwitterを使っています 「時刻だけのオブジェクトって可能なのだろうか?日本なら可能かもしれないけど、サマータイムもあるし細かく言うとうるう秒もあるし」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 その特定タイムゾーンでの任意の日の午前0時からのオフセット(夏時間切替えの日は面倒...)ってので概念としては定義できそうだけど...」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki なるほど。そのオフセットを正しく設定する処理が闇ですね」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 結局夏時間対応考えると日時情報から日の情報を落したもの、とするしかないような気はします。閏秒対応は今時なら通常秒の範囲を0-61と取っているでしょうから問題なし。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki 実際に実装があるとは思えませんが、日付情報があれば59秒+1秒をしたら、60秒と返す実装が可能ですよね。」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 unixitimeをそのまんま使ったらアウトですから言語でサポートするってのもなかなか辛いですね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@y_futatuki 確かに...」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コマンドプロンプトでは、未だにこの挙動(夏時間では、夏時間以外のタイムスタンプも1時間ずれる)になる様子。 (ExplorerやPowerShellではそうならない) https://t.co/S0Ji6OrgQJ"
- Why are file Explorer and CMD Dir displaying differnt timestamps ? - Microsoft Community
- Shirouzu Hiroaki(白水啓章)さんのツイート: "SystemTimeToTzSpecificLocalTime / TzSpecificLocalTimeToSystemTime だとこの問題はない様子。 ただ日本語MSDNは明らかに誤記しているようにみえる。 ---- 「夏時間が適用されているときは、変換しようとしている時刻が標準時間でも、夏時間が考慮されます」 https://t.co/dlUNIMuO1i"
- SystemTimeToTzSpecificLocalTime 関数
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Oct で(やっと?)うるう秒対応が入っていたらしい。 SYSTEMTIMEのwSecondが60に。事前にSetProcessInformationで仕込みした場合のみ(仕込みなしなら59が2秒掛かるらしい) https://t.co/xmku6aqXuM"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "「TAI開始時点の太陽秒が原子秒の基準」とタネンバウム先生の本に書いてあったのだが、間違いだったのね。 「閏秒挿入の理由についての間違った理解」Wikipediaから。 https://t.co/lzBqBbkFCe… "
- 閏秒 - Wikipedia
- Shirouzu Hiroaki(白水啓章)さんのツイート: "最後のセンテンスに、グレゴリオ暦導入時の余談が入るのがタネンバウム先生らしさ(笑) 「地主は1ヶ月分の家賃を要求し…雇用者は労働者が働かなかった10日分の給料を支払うことを拒絶した」"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "念のため、写真部分の出典は「分散システム 原理とパラダイム」A.タネンバウム・M.スティーン、P.245"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "NTFSは64bit タイムスタンプで、西暦6万年まで指せるので、オーバーフローなどは気にしなくていい。 …と思ったら、何故か西暦6万年を差したファイルが実在して、FastCopyの時間誤差の許容計算でオーバーフロー発生した経験。 (2年前の話、現在はオーバーフロー対応済) https://t.co/guYWIGLbYf"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Win10 Oct以降、FILETIME にはうるう秒も加算されるらしい。 UNIX epochのように、うるう秒を無視(59秒と60秒が同じ値)してくれる方が楽なのだが。 https://t.co/xmku6aqXuM"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "つまり、FILETIME ⇔ time_t の単純変換ができなくなる、と。 うーん、私のソフトでも、いくつか対応が必要になりそうだ。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "具体的には、こういう計算が出来なくなる、という話。 https://t.co/ENhYQu6YAm"
- Converting a time_t Value to a File Time - Windows applications | Microsoft Docs
- Windowsで高精度タイマを使う - Qiita
- 高解像度タイマーカウンタ
- ASCII.jp:Windows RS5で実装される、うるう秒対応や高精度ネットワーク時間|Windows Info
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「NT系も含めてWindowsで起動から49.8日目にいろいろと問題を起こす話は有名だったけど(GetTickCount(ms単位)が一周り)、最近は概ねGetTickCount64に代替されて問題なくなった様子。 https://t.co/VGwbIf00Fc」 / Twitter
- ultravioletさんはTwitterを使っています 「「248日で死ぬシステム」てのが昔はよくあってな、32bitの符号付き整数で秒を数えてるシステムがオーバーフローする話なんだが、昔のOracleで出たケースが有名で、私も巻き添えを食ったことがある」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「とはいえ、これは単調増加クロックなのでとても便利。 逆に昔のUNIXには clock_gettime(CLOCK_MONOTONIC) がなく、gettimeofday(ジャンプ・最悪巻き戻り対応)か tims(2)の戻り値(粒度荒い&バラバラ)くらいで困った記憶。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「むしろ、とっくにローカル限定になっていたかと思っていた。 95時代に「小さくするとオーバーヘッド大きくなるからご注意」とよく語られていた。 (それよりSleep(1)が5-9msくらいに収まらなくなるなら、FastCopyの速度調整にも影響出てるかもしれない。確認しておこう)」 / Twitter
- SimKさんはTwitterを使っています 「パフォーマンス低下問題の原因が完全に分かりました。Sleepとかタイマーの分解能を決めるtimeBeginPeriod関数の影響範囲がグローバルからローカルに変更されたようです。(つまり、以前はたまたま他で高分解能設定にされていたから動いていたって事ですね・・・) https://t.co/0enXgdLhvV」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「簡単に実験してみたが、Sleep や GetTickCount64 の粒度は15.5msくらい。 (そしてtimeBeginPeriod(1)でSleepは1ms前後まで精度上がる)」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「スレッドプールのスレッド数がほぼ一月ごとに増えたり減ったりする挙動とその顛末。経過時間を測るのに32bitでms単位のクロックを使ってたけど符号付きで計算してたので途中でクロックが負になってた。バグ自体はよくあるけどちゃんとモニタしてないとなかなか気づかなさそう https://t.co/tevod2mUhL」 / Twitter
- The code worked differently when the moon was full - Scott Hanselman's Blog
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「満月のときに発現する?バグ。Win32のGetTickCount()(C#ではEnvironment.TickCount)は32ビット値を返すため、49.7日ごとにリセットすることが知られていた。そのためこのケースでは49.7日ごとにスレッドプールで謎の性能低下が発生して開発者を悩ませていた。 https://t.co/PsFbgaA9O2」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ちなみにWin95ではGetTickCount()は実際に起動時からのカウンタを使っていたため、Win95は49.7日以上連続実行できないという不具合が存在した。POSIXレイヤではこの値はシステムの内蔵時計から計算されているため、すべてのマシンで同じの現象が同時に発生する。」 / Twitter
Linux
- 本の虫: Linuxカーネルを2038年問題に対応させるには
- 本の虫: Linuxカーネル、Rockchip暦に対応
- gettimeofdayからclocksourceまでの道のり - livaの雑記帳
- Fadisさんのツイート: "2038年問題、この間LinuxのInput Subsystemが32bit x86環境で32bitで入力時刻をユーザ空間とやりとりしてるのなんとかしようって話が上がってたな https://t.co/ccw75LlY33"
- Input Drivers Are Being Prepped For Year 2038 Safety - Phoronix
- NOKUBI Takatsugu野首貴嗣さんのツイート: "kernel側の2038年問題対応 内部のインターフェースは全部64ビット化された 32bit kernelでは設定で時間関係のシステムコールを64ビットにできる glibcが32/64bit time_tを同時に使うことを想定していない。レビューと作業は遅いながらも進んでいる #debconf18"
- Man page of VDSO
- Implementing virtual system calls [LWN.net]
- Kazuho OkuさんはTwitterを使っています 「そういえばだけど、linuxでコマンドのベンチマーク取るときに使うコマンドは time(1) ではなく multitime(1) がオススメ。指定回数試行してくれて、平均以外に標準偏差や中央値も教えてくれるよ! https://t.co/8X82Ag0opy https://t.co/z7H4fSiv4p」 / Twitter
- multitime(1) — multitime — Debian testing — Debian Manpages
- FadisさんはTwitterを使っています 「vDSO: Linuxではライブラリを使わないソフトウェアであっても実行するとvDSOというライブラリがロードされているように見える。これはカーネルが用意するライブラリで、カーネル側にコンテキストスイッチしなくても達成できるようなシステムコールをユーザ空間で片付ける方法を提供する #nekoi7yu_tech」 / Twitter
- FadisさんはTwitterを使っています 「vDSOのgettimeofdayの実装、「x86の場合」って言ってたから他のアーキテクチャの場合見てみたんだけど、ARMもMIPSもRISC-Vも同じ関数呼んでて、その中身はx86みたいなプロセッサのクロックカウントを使った補正なんてしてないシンプルな実装だった https://t.co/iCPuHoPcqU #nekoi7yu_tech」 / Twitter
- gettimeofday.c - lib/vdso/gettimeofday.c - Linux source code (v5.11.15) - Bootlin
- Kazuho OkuさんはTwitterを使っています 「gettimeofdayとclock_gettimeの2種類のクロックがあって、両者を使い分けろ(前者はタイムスタンプ等に、後者はタイマ等に)という主張嫌い。実際はタイマの値をタイムスタンプから計算したりすることもあり、バグの温床になるから。 gettimeofdayが巻き戻らないような運用するなりラッパーを書くべき」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「実行時間の正確な計測をしたいときは「計測」自体にかかる時間にも注意が必要である。CentOSとUbuntuでは gettimeofday() にかかる時間が数十倍も違っていた。これはLinuxで時刻取得のためのclocksource設定が違っていたためで、これを見逃すと間違った結果を信じることになる https://t.co/6qjb5kMddr」 / Twitter
- The Speed of Time
TAI64N形式
- tai64n 形式。 | 技術系メモ
- cr.yp.to/libtai/tai64.html#tai64
- tai64nlocalコマンド:TAI64N形式の日付を読めるようにする|マコトのおもちゃ箱 ~ぼへぼへ自営業者の技術メモ~
- daemontools - TAI64N to TAI
- TAI64N形式の文字列をTimeに変換する関数 - うなの日記
- external TAI64N形式のデコード – knsm.net
- qmailのTAI64N形式タイムスタンプの変換 - taka_moriのブログ
- djbware-doc-ja/tai64n.8.xhtml at master · fumiyas/djbware-doc-ja
- blog.asial.co.jp/iphone/225
- daemontoolsによるロギングとプロセス監視 (3/3):実用qmailサーバ運用・管理術(9) - @IT
- https://cr.yp.to/libtai/tai64.html
- TAI64
- Perl [script] TAI64 形式の変換・出力プログラム 00 TAI64 とは (0x255)|Perl Perl_5 Perl_my_program|blog20100901
- Macでtai64、daemontools、そしてctrl+cについて - ugon105の日記
- Fadisさんのツイート: "ある時刻が存在しなかったり、2度存在したり、60秒が挟まったりすると困るというプログラマさんには、TAI64という時刻表現の素晴らしさを伝えたい"
ISO・JIS
- ISO 8601の日付形式
- ISO 8601 の日時に関すること(間違いがあるかも) - モノトーンの伝説日記
- ISO 8601 - Wikipedia
- ISO 8601 - Wikipedia, the free encyclopedia
- 渋川よしきさんのツイート: "WikipediaのISO8601の日本語の方、durationの説明がまったく抜けているぞ・・・"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「2021/02/01 とやれば、どの国でも「年/月/日」と察すると期待して、FastCopyの統一ログ表記はこの形。」 / Twitter
- Takeshi HASEGAWAさんはTwitterを使っています 「たぶん多くの人がやっていると思うけど、米国でも英国でもとりあえず誤解されないように日付を伝えられるように、必ず月を Jan/Feb/Mar/... 表記にしている。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「こういう話があるらしい。 https://t.co/kShebNkAft」 / Twitter
- Tsukasa #01さんはTwitterを使っています 「ISO 8601 に倣って私は YYYY-mm-dd を使うことにしている。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「私も T を使うの、視認性悪すぎると思う。 https://t.co/dzKxJuKXbm」 / Twitter
- Tsukasa #01さんはTwitterを使っています 「ただ human readable なテキストで日付+時間を表現するときに 2021-03-29 に後続する "T" を付けるのは気に食わないので、全面的に ISO 8601 に従うわけでもない。」 / Twitter
- 市川 真一さんはTwitterを使っています 「@shirouzu 対応する JIS(日本産業規格)。追補は、令和の追加: JIS X 0301:2002 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記 https://t.co/MGp8Ezk1e2 JIS X 0301:2002/AMENDMENT 1:2019 情報交換のためのデータ要素及び交換形式―日付及び時刻の表記(追補1) https://t.co/BUY0Mx0LGl」 / Twitter
- Jun ISHIMATSU(石松純)@🇲🇾さんはTwitterを使っています 「日付表記の問題でいつも思い出すのが,当地で教員になったばかりの頃,11月22日に受け取ったレポートに「11/22」と書いたところ「どうしていきなり評価が半分なんですか?!」と食いつかれたこと.自分もできる限り月はアルファベット表記.」 / Twitter
- Jun ISHIMATSU(石松純)@🇲🇾さんはTwitterを使っています 「補足:マレーシアは英領だった関係でdd/mm/yyyyシステムを使用.」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、この形式で海外から要望が来たことは無いので、皆さんちゃんと認識できている様子。 過去にあった要望はドイツ人で、数字の桁と小数点を表すピリオドとカンマを反転させてくれ、という要望。 彼らには 1,234.5GiB 等は分かり辛いらしい。 https://t.co/nldZxpiED6」 / Twitter
- 世界各国での数字の区切り方、カンマ・コンマのルール | コリス
POSTD
- 処理速度の遅いcurrentTimeMillis() – 前編 | プログラミング | POSTD
- 処理速度の遅いcurrentTimeMillis() – 後編 | プログラミング | POSTD
Wikipedia
- システム時刻 - Wikipedia
- Time Protocol - Wikipedia
- 世界時 - Wikipedia
- 国際地球回転・基準系事業 - Wikipedia
Twitter
時間管理
- Dai MIKURUBEさんはTwitterを使っています 「理解してやってるんじゃない限り、ローカルタイム (+09:00のような固定オフセットではなくAsia/Tokyoとか) で保存するのはやめておけとしつこいくらい言っておく。 2017-11-05 01:30:00 America/San_Francisco は二度あるぞ。せめて +07:00 か +08:00 のどっちだったかは常にセットにするんだ。いいね?」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています 「過去の時間は基本的に UTC でいいと思う。未来の時間が問題で、その国や地域において法的に定められる時刻が問題なのか (イベントの開始時刻など) それとも、それと関係ない絶対的なある瞬間を扱いたいのかで変わる」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています 「前者である場合はそれでも気をつけ続ける必要があって、その時刻が2回訪れる可能性や、その時刻がスキップされて訪れない可能性を常に考慮に含めておく必要がある」 / Twitter
- Dai MIKURUBEさんはTwitterを使っています 「念のため言っておくと、ある時刻 (1〜2時間程度) が消滅するだけではなく、ある日付がまるごと消滅したようなことすらここ数年の間に実際あったので、まあ日付時刻については自分の常識をまず疑っておくのがいい」 / Twitter
- 成瀬さんはTwitterを使っています 「未来の時刻、いきなりタイムゾーンがずれる可能性を考慮するといつもあいまいでこの世の地獄」 / Twitter
- ゆたかさん🐬さんのツイート: "システムに負荷がかかるとOSの時刻がずれる、というのはある意味正しいけれど、負荷という表現が曖昧。 厳密には、 カーネル空間で割り込み禁止状態が継続して、タイマ割り込みの処理ができなくなることで、時刻の更新が遅れる。 が正解。CPU数や実装で異なる場合もあるけど。"
- ゆたかさん🐬さんのツイート: "NOだと思います。1秒未満でポーリングして、時刻を更新すればよいです。ただ、一般的に割り込みよりポーリングのほうが重たいと言われているので、割り込みと比べて負荷がかからないほうを選択することになると考えます。 https://t.co/FIfATs8XwS"
- 市川 真一さんのツイート: "@yutakakn OS の無い環境で、割り込みを使わずに 3 秒毎にポーリングする方法があれば、知りたいです。方法がなければないでよいです"
- ゆたかさん🐬さんのツイート: "u-bootではudelay関数で下記条件を満たすループが実装されています。単純にクロックを参照してループしているだけですね。 @ udelay() # lib/time.c ftp://ftp.denx.de/pub/u-boot/u-boot-2017.05.tar.bz2 https://t.co/vKpi3v45pt"
- satさんのツイート: "かつてlinuxプロセスの実行時間utimeとstimeは、タイマ割り込み(ここでは一秒ごとに100回とする)を使って、割り込みが入った時点で実行してた処理を、直前1ミリ秒で実行した処理とみなしていた。厳密に測るのではなくサンプリングですね"
- satさんのツイート: "わざとらしい例を出すと、ほぼ全ての時間プロセスが実行していたとしても、サンプリング時間にたまたまカーネルが動いてたり、スリープしたりしてれば、utimeにはカウントされない。なので精密な実行時間の計測には向かない。使うとしても十分な長さの実行時間をとらないとあまり意味がない"
- satさんのツイート: "s390とia64だけはサンプリングではなく、かなり精密な方法で測定していた。 最新カーネルでこのへんのコードを見てないので、今は知らん"
- satさんのツイート: "すいません10ミリ秒"
- Masahiro Kasaharaさんのツイート: "ほとんど茶々だけど、閏年は if((year % 4 == 0) ^ (year % 100 == 0) ^ (year % 400 == 0)) って書きたい派です。… "
- kamimuraさんのツイート: "かなり茶々だけど、閏年は、 if (isLeapYear(year)) // isLeapYearは任せた! って書きたい派です。w… "
- 渡久地 信之さんのツイート: "12時間表記,12時がどっちを指すのか国によって違うのでアレ."
- ゆきさんのツイート: "ChromeのNET::ERR_CERT_DATE_INVALIDの仕組み https://t.co/evTEWm2QRw 書いた。chromeがどのようにシステムクロックのズレを検出してるか。"
- ChromeのNET::ERR_CERT_DATE_INVALIDの仕組み - Qiita
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「今時の linux + ext4 は utimensat(2) の tv_sec に負の値を設定することで、A.D.100年なども表現できるのね。 (touch でなく、utimensat なら、B.C. も行けそう) https://t.co/1i84lSpPyt」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「UNIX epoch を 0 として、1969年12月31日23:59:59 が -1という調子。 (ただ、エラー値に(time_t)-1を返すmktime(3)などとの相性悪そうだな…)」 / Twitter
- Kazuho OkuさんはTwitterを使っています: 「Un*x使うプログラマになって約20年たった私ですが、最近ようやくPC向けUn*xにCMOS時計をローカル時刻に設定するオプションがある理由を理解しました。いままでWindowsとのデュアルブート環境とか真面目に使ったことがなかった」 / Twitter
- Hiroaki NakamuraさんはTwitterを使っています: 「@kazuho Windowsのレジストリを変更してUTCを使うという方法もありますよ。 https://t.co/szPiDl0R6I 私はデュアルブート環境の時はこの設定にしていました。」 / Twitter
- System time - ArchWiki
- Shinji KonoさんはTwitterを使っています 「ローカルタイムをDBに入れるのは初心者の間違いだよな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ローカルタイムの害悪はちょっと考えればわかる。Windowsは初期にはlocaltimeをOS内部の基準に使ってた。アホ過ぎるので最近やめた。」 / Twitter
- yohさんはTwitterを使っています 「https://t.co/SWigVAAdmi C++20 Calendarって同月中最初の指定曜日を起点に 先月の最終指定曜日[0]とか 翌月以降の指定曜日[5~]を直接計算できるのね https://t.co/kbcOoAUCyG」 / Twitter
- [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
- きしだൠ(K1S)さんはTwitterを使っています 「これ、amとpmがそのまま午前と午後に置き換えれると思ってるところから生じるバグなんだよなー 12pmは1pmの1時間前なんだけど、午後12時は午後1時の11時間後 https://t.co/1q1T1n7h65」 / Twitter
- 西暦1年は閏年か? - プログラマーの脳みそ
- ISO 8601 - Wikipedia
- Facebookが高精度時刻同期システムをオープンソースへ、構築コストが従来の数分の1に - GIGAZINE
- opencomputeproject/Time-Appliance-Project: Develop an end-to-end hypothetical reference model, network architectures, performance objectives and the methods to distribute, operate, monitor time synchronization within data center and much more...
GitHub
- reactos/reactos: A free Windows-compatible Operating System
- openbsd/src: Public git conversion mirror of OpenBSD's official cvs src repository.
- IIJ-NetBSD/netbsd-src: automatically converted from www.netbsd.org
- The NetBSD Foundation
- freebsd/freebsd: FreeBSD src tree (read-only mirror)
- dspinellis/unix-history-repo: Continuous Unix commit history from 1970 until today
- 古い記事を読んでいるmatsuuさんはTwitterを使っています 「CPU情報を取得していい感じのバナーをコンソール上に表示するツール。OS起動時やSSH接続時のmotdの代わりに表示したいところだ。 / “GitHub - Dr-Noob/cpufetch: Simple yet fancy CPU architecture fetching tool” https://t.co/YsIe1sf12W」 / Twitter
- Dr-Noob/cpufetch: Simple yet fancy CPU architecture fetching tool
News
- ASCII.jp:Windowsのパス区切り文字は、なぜ逆スラッシュになったのか?|Windows Info
- トーバルズ氏が語ったLinuxカーネル開発者や開発の未来 - (page 2) - ZDNet Japan
- 宇宙の極限状態で動作する「リアルタイムオペレーティングシステム」とは? - GIGAZINE
スライド
- Falling - Google スライド
- Rustでの自作OSをやってきて - Speaker Deck
blog
- 「UNIXをC++で分散OSに書き直せ」、幻に消えたBill Joyの野望とは: ITジャーナリスト星暁雄の"情報論"ノート
- 自作OSとマルチコア | PG_MANAの雑記
- liumOS 2020年の進化を振り返る - /var/log/hikalium
- dangomushi's Blog
- yohei.codes
- Microsoft Digital Defense Report でサイバーセキュリティの動向を知る - Microsoft Security Response Center
- 伊津野 英克さんはTwitterを使っています 「思うんだが、少なくともバックアップは AWS などのクラウドのマネージドサービス上に置くべきなのかもなぁ。OS の管理権限がないから、権限管理さえきちんとできてればそこまでひどいことにはならないはず。https://t.co/OXpAmyq82K」 / Twitter
- BCP想定を上回ったニップンへのサイバー攻撃についてまとめてみた - piyolog
- 伊津野 英克さんはTwitterを使っています 「個人的には特定のクラウド事業者だけに偏るのは危険だと思っているんだけど、マルチクラウドはあまりにも難しすぎるので、バックアップだけはマルチクラウド or ハイブリッドクラウドくらいがいいと思う。」 / Twitter
Twitter
その他
- りおりおすとさんのツイート: "CPUが暇こいてる時に、自動的にマイニング、それもその時点で最も採掘効率の良い仮想通貨を、電力消費量も込みで選択してくれるOSがあった場合、それは「意図しないマイニング」なんだろうか…。 システム環境設定に「マイニング」がある世界"
- Ryou Ezoeさんのツイート: "なんでDockerみたいなものが流行っているのかと問に対して、WindowsやMacしか使えない管理者権限を持たない環境でも動くからという説が提唱されていて、GNU Hurdは正しかったのかと呆然としている。"
- Shiro Kawaiさんのツイート: "なるほど。chaos monkeyはNetflixが作ったツール https://t.co/DfFnuGdupV で運用中のサービスのVMをランダムに終了させるもの。耐障害性を上げるのに役立つ。同様に、休暇取得の制限をできるだけ少なくしておけば、いつ誰が突然休んでも止まらないチームを作るのに役立つ。… https://t.co/Ynp0PsWJ7q"
- Takashi Kawasakiさんのツイート: "今やWindowsが凄いとかそういう話、誰も興味ないと思うんだけどさ、現存するどころか、かなりのシェアを持ってるUNIXじゃない思想で設計されたOSなんて凄くないですか!そして、互換性重視で来たので、かなり初期の謎の機能の痕跡とかが残ってるんですよ!"
- 渋川よしきさんのツイート: "50年くらい前は、一人で多くの領域の開発、改良に関われたのかもしれないけど、今どきは大人数で1つの領域に集中的に資源投下してなんとか数%改良、そして量産効果でなんとか費用配賦みたいな時代なんだよね。"
- sogitani / baigie inc.さんのツイート: "専門家同士は100点満点で評価しがちだけど、市場が求めるのは50点くらいだったりする。それを上手に提供した60点の専門家は、70点以上の専門家たちからディスられがちだけど、事業継続して成長できるのはちゃんと市場とミートしてる60点の人。ディスってる70点以上の専門家たちはだいたい滅亡する。"
- TAN-Y(たに)さんのツイート: "Macの最高なところは英語キーボードと日本語キーボードが正しく混在利用できるところだと思っているのですが、Windowsもこの点さっさと見習ってなんとかしてほしい・・・"
- Ryou Ezoeさんのツイート: "Windowsカーネルにはしばらくの間、少電力モードから復帰するときにキャッシュを無効化してメモリにも書き出さないコードが入っていた。理由は宇宙線によるメモリエラーの回避のため https://t.co/x9fZakM5Gg"
- For a brief period, the kernel tried to deal with gamma rays corrupting the processor cache – The Old New Thing
- 齊藤明紀さんのツイート: "×MULTICSはクソ。おれたちがいいOSを作ってやる ○MULTICS使えなくなって寂しいなぁ。懐かしいなぁ。しゃーない、自作するか。謙遜してMULTIをUNIに変えておこう。"
- Nerry さんのツイート: "おれんじぺこのメモリマップは256TBのメモリ空間を512等分して、最初の512GBはアクティブなプロセスのローカルメモリ、前半の残り255個は予約領域、後半の約250個が各アプリのメモリ空間、次の1TBが物理メモリのダイレクトマップ、次の512GBがリカーシブマップ、最後の512GBがカーネル空間だった、はず"
- ほうめい 不思議金物堂さんはTwitterを使っています: 「@miura1729 マルチプロセッサ構成でI/O初期化するときには他のプロセッサを足踏みさせといて共有資源を初期化し終わったら一斉にドンと走るとかたのしい」 / Twitter
- Rui UeyamaさんはTwitterを使っています 「OSの授業で論文を読む授業があったけど、その中で一番印象に残ってる論文はこれ。発想の転換がすごいと思った。 https://t.co/x0Qe6sptIW」 / Twitter
- atc proceedings - nightingale.pdf
- SODA NoriyukiさんはTwitterを使っています 「ゴッタ煮のカオスになっていた /usr/lib を、意味によって /usr/lib (.so および .a のみを置く)、/usr/libdata、/usr/libexec、/usr/share、/var に分けたっていうのが歴史的経緯なわけで、 /var/lib っていわば /usr/lib/lib みたいなもんでチョー気持ち悪いんだよなあ」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ランサムウェアはバックトラックあれば防げるんだから、あんまり同情する気にはなれないが。GooleDrive ランサムウェアとか?」 / Twitter
- katoさんはTwitterを使っています 「Infrastructure as Codeは、とってもいい流れだと思うんだけど。構成管理したいが故に、手作業で秒で終わることを、ず〜〜〜っと依存関係解決に費やしている時もあり。あとは、サーバでスクリプト回したらいいことなのに、サーバレスしたいからずっとRubyかPythonいじるだけの時とかもある、本末転倒感」 / Twitter
- uint256_tさんはTwitterを使っています 「自動テストができないソフトウェアって何」 / Twitter
- 市川 真一さんはTwitterを使っています 「@uint256_t 実機で動作する UEFI のようなファームウェアや OS、仮想化ソフトウェアみたいなものって、自動テストやりにくい印象を持っています。仮想環境でテストしたところで、そのテスト結果は実機と等価じゃないですから」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「渡されたブートイメージのfsが微妙に壊れてるせいでTLSスタックのPRNGがコケるくらいが一番印象に残ってるやつなレベルです。まだまだだな」 / Twitter
- 🤫sat😪さんはTwitterを使っています 「いままで出会った中で一番強烈なバグってなんだろうなあ - CPUがたまに別の命令を実行 - カーネルの時計が(ソフト的に)止まる - 20個くらいのCPUが複雑に絡み合うデッドロック - カーネルがユーザ空間への戻りアドレスを間違える」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「原因がある問題は誰かが直せば済むんですよ! 本当に辛いのは、環境起因で直しようがない現象についてクレームが来たとき」 / Twitter
- hatsugai ∈ PRINCIPIAさんはTwitterを使っています 「自分の場合はやはり GC がらみかなあ。シングルスレッドでもマーク漏れはつらかった。並行 GC のバグは最終的にコードからリバースモデリングしてモデル検査で問題点を見つけた。」 / Twitter
宇宙線
- Sadayuki FuruhashiさんはTwitterを使っています 「メモリが宇宙船で異常になりうる環境でどうやってコード書くんだろうな…ソフトウェアでメモリの誤り検出符号を実装するのってかなり難しそう。検証直後に壊れる可能性があるわけで」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@frsyuki ハードウェアで対処するのが普通だと思います。 よくある3台ハードウェアを積んで多数決で決める奴とか、宇宙というよりは業務用が主用途ですが https://t.co/uVjGh5yIC1 のあたりの話とか…」 / Twitter
- Tandem や Stratus の目指した世界は今に引き継がれてるのか? - cat-a-log
- Sadayuki FuruhashiさんはTwitterを使っています 「@n_soda おおーこんな世界があるんですね」 / Twitter
- 香港むらかみさんはTwitterを使っています 「@frsyuki @n_soda クソリプですが、自動車制御ICも三重設計だと設計部の友人が言っていました。恐らくは似た設計概念から派生しているのではないかと思います。次は新幹線系のハードウェアが気になりますね。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「スペースシャトルが初飛行したころは、コンピュータを3台だったか5台だったか積んで多数決で決めるみたいな解説を一般のニュースでもやっていたのだけど、全く意味がわからなかったな」 / Twitter
- ををつかさんはTwitterを使っています 「@miura1729 アポロも同じコンピュータ3台で一台がエラー出ても他の2台が動いていればてな事をしていましたね。大気圏外では宇宙線が減衰しないので、コンピュータの回路に当たり誤動作をさせる可能性が有るとかが理由だった様な記憶があります。」 / Twitter
- Miura HidekiさんはTwitterを使っています 「この手の多数決で演算結果を決めるシステムってどうやってテストするんだろう?っていつも思う」 / Twitter
パッケージ・マネージャ
- エヌユルさんはTwitterを使っています 「普通は「外部言語のライブラリが管理できないのでこれをinstallする時はOSのパッケージマネージャとかでインストールしてね(gtkとかがよく対象になる)」ってやるでしょ なんでBitbucketから直接ダウンロードしようってなるんだ BitbucketからGitLabに移ったから昔のバージョン全部installできない」 / Twitter
- てらモス♋️さんはTwitterを使っています 「OSのパッケージ機構に頼らずにHTTPで取得してしまいたい気持ちはよくわかってな…(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「例えば自分でHTTPで配布してしまえばその配布物に対してだけ責任を持てばいいわけだけど、外部の配布機構を頼ると外部の配布機構の数だけサポートすることになるんだ…(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「各Linux distribution毎にintel-mklがどうやってどこにインストールされるか、とかOpenBLASのビルド時のフラグがどうなってるかとかを全部調べて回らなくてよくなるわけですよ(´・ω・`)」 / Twitter
- retrageさんはTwitterを使っています 「前にパッケージマネージャの設計について依存関係の充足問題を解く、みたいな解説記事を読んだ覚えがあるが思い出せない」 / Twitter
- retrageさんはTwitterを使っています 「research!rsc: Version SAT これな気がする。 https://t.co/AAU17fUhty」 / Twitter
- research!rsc: Version SAT
- retrageさんはTwitterを使っています 「2016年の記事だけどSwiftとかRustのCargoはbacktrace solver使っているそうな」 / Twitter
リファクタリングとメンテナンス
- まさみさん⋈語りたいさんはTwitterを使っています 「Linuxのようにインクリメンタルなコードのレビューを基本にしてる場合のリファクタリング方法の解がよく分からないのが悩み。結局現在のコードを関係性で切り分けて部分ごとにアップデートしてるが、これはリファクタリングとはいえないよな…。」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「大抵のリファクタリングは仕様を書き出してから丸ごと再設計したほうがうまく行くと思うのだが、みんな元のコードを残す境界をどの辺においてるんだろ。」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@mhiramat Linuxの場合、大きな仕様変更以外大規模なコード変更への欲求ないし、それもリファクタリングとは言わないと思うので、リファクタリングが不要な形態のソフトウェアだとおもいます。」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@beepcap なんと、私は真のリファクタリングを知らなかったのか…。」 / Twitter
- ITが分からないbeepcap@HTTPSの強制には反対さんはTwitterを使っています 「@mhiramat 真のリファクタリングをOS開発でやってるの、思いつく限りWindowsくらいなんじゃ無かろうかという疑問。(同じ外部仕様で、内部の動きがダイナミックに変わる奴)」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@beepcap ああー、それはLinuxではめっちゃ議論になるやつです…。」 / Twitter
- 不燃ゴミさんはTwitterを使っています 「@mhiramat 自分はその対応もリファクタリングと呼んでしまっているのですが、本来は何と呼べば良いのでしょうか? メンテナンス?」 / Twitter
- まさみさん⋈語りたいさんはTwitterを使っています 「@memorydump2019 メンテナンスが正しそうですねえ。」 / Twitter
- 不燃ゴミさんはTwitterを使っています 「@mhiramat そうなのですねぇ 参考にさせていただきます、ありがとうございます!」 / Twitter
固定概念
- 隠れ肥満(体脂肪率22.7%)さんはTwitterを使っています 「何も見ないで書いてみる 1. OSのコアであるカーネルを操作するソフトウェアがシェル,シェルを画面に表示して人間が使えるようにするのがターミナル」 / Twitter
- Miura HidekiさんはTwitterを使っています 「OS=UNIX系の物 であれば正しそうだけど、どうなんだろう?」 / Twitter
- Miura HidekiさんはTwitterを使っています 「OSとはUNIXの派生の物であるという固定概念に固まってしまうと、30年前のレベルまで退化してしまう気がする。」 / Twitter
オフロード
- Livaさんのツイート: "今日の発表のスライドをWeb公開できるように編集しました。 「創りたいOSを、創りたい時に、最小コストで作れる世界」 https://t.co/1rqXPorjAl"
- 18:03:24_web公開版.pdf - Google ドライブ
- まさみさんは語りたいさんのツイート: "jailhouseの採用は検討済み?… "
- siemens/jailhouse: Linux-based partitioning hypervisor
- Linux向けハイパーバイザー「Jailhouse 0.6」リリース | OSDN Magazine
- Jailhouseハイパーバイザ実践 - Qiita
- Livaさんのツイート: "いえ、初耳でした。調べてみたのですが確かに近いところが多そうですね。もうちょい調べてみます。ありがとうございます!… "
- ぬるぽへさんのツイート: "モチベーションはlibrary OS的なやつにあるので少し違いますが、並行して動くlinuxにlibrary OSから機能をオフローディングするやつにmultiverse kyle 2017があります、参考になるかもしれません… "
- ぬるぽへさんのツイート: "同姓同名ですがどうも別プロダクトのようです こちらの論文のやつになります https://t.co/riiw0ZmHop… "
- Multiverse: Easy Conversion of Runtime Systems into OS Kernels via Automatic Hybridization — Northwestern Scholars
- ぬるぽへさんのツイート: "ちなみにめっちゃ被ってるというより、参考程度、つまりliva師が修論であれやるのなら関連研究の章にかけるかなーくらいの関連度です vmmを使って自作ライブラリOS上で動いているアプリのシステムコールを協調して動くlinuxカーネルに処理させてその結果をlibraryOSと同期するみたいなやつです… https://t.co/Dvvx1PrO2o"
NetBSD
- Kimihiro Nonakaさんのツイート: "今のNetBSDだとカーネルはsrc/sys以下だけではなくsrc/commonも見てるはず"
- SODA Noriyukiさんのツイート: "kernel と userland で共用するコードという意味で common なんですね https://t.co/L5DibO5j4x"
- Kimihiro Nonakaさんのツイート: "NetBSDは不要な機能をディレクトリ毎消すとfiles.*が無くなるのでそれだけは残さないと駄目か。sys/conf/filesとsys/arch/XXX/conf/files.XXXを見れば何が必要なのかは判る"
プログラマ
- まさみさんは語りたいさんのツイート: "ベアメタル→RTOS(MSDOS含む)→Linuxと進化してきた組み込み機器のプログラマと、サーバアプリなどから入ってきたプログラマの間で、OSを含むシステムモデルの理解に深い深い溝があることはよく知られている。"
- まさみさんは語りたいさんのツイート: "大きい政府と小さい政府の違いみたいな、イデオロギー的な違いを感じるんだよね。アプリで全て頑張るからOSはローダーやライブラリみたいな働きだけしとけ、というのと、アプリはすべき事に集中して書きたいから、残り全てOSでやってね、という違い。"
- Kazuo Moriwakaさんのツイート: "「O_DIRECTとかsched_yield使ったハックとか使いたい人」と「そういうの興味がない人」だ… "
- まさみさんは語りたいさんのツイート: "イデオロギー論争なのでどちらが正しいとか間違ってるとかそういうのは余り意味がないんだけど、前者には車輪の再発明は避け、巨人の肩に乗る方法を模索することには意味があるんだよ、ということは伝えておきたい。後者はパフォーマンス追いかけ過ぎると前者になるから注意。"
- 星山 等(E-SW20改)さんのツイート: "組み込みもリッチクライアントもやるのでどちらの感覚も分かるんだけど、それだけにもやもや感もある。 組み込み専業の人はOSもコンパイラもあまり信用してない感じが強いし、リッチOSアプリの人は少し下位レイヤを信用しすぎ感がある。 どちらももうちょい融通をきかせた方が良さそうに思う。… https://t.co/8zz4ZYsScZ"
- Kazuho Okuさんのツイート: "職業プログラマとしての成長したい人は、SIerとかウェブ系みたいな業種ではなく、メンテやリファクタ、再設計を通して「より良いソースコードを生み出す」環境が整っている会社を選ぶべきだと思ってる。仕様を満たすコードを短時間で生み出すことを繰り返しているだけでは、なかなか成長しないよ"
- Kazuho Okuさんのツイート: "なお、期限のある契約に縛られない開発の場合でも、プロトタイピングや新サービス投入など、品質よりも納期を重要視すべき局面は存在します。ただ、そればかりやっているのはよくないという話"
- Kazuho Okuさんのツイート: "なお、バグが再現しないからツイートに逃避しても、プログラマとしては成長しません(気分転換にはなる)"
組み込み業界
- Ryou Ezoeさんのツイート: "組み込み業界の環境がひどいという話だが、テキストファイルでコードを書く以上gitで管理しない理由はないし、メモリ数KBだのクロック数十MHzだのという環境ならまずエミュレーター(clock accurateではないにしても)を書くだろうし実機のみで動かす必要もないだろうし、長期的に考えれば淘汰される。"
- beepcap@HTTPSの強制には反対さんのツイート: "まぁ、組み込み「だから」バージョン管理していないというのは嘘であるが、 シミュレータをつくるというのは環境によるものの、ほとんど無い。 組み込み開発にとってはcoreのアーキテクチャより、ペリフェラルの方が多様で統一性がないためである。… "
- deさんのツイート: "問題はだいだいペリフェラルで同意。 ハード屋さん(大抵顧客)がPMIC取り除いたり、メモリ変えたり、ドライバがないカメラ持ってきたり… ハード屋さんが顧客の場合、ハード選定から関われなくて、とても辛い場合がある。… "
- リーズリングさんのツイート: "顧客といってもBtoB,BtoCでは多少違いはあるだろうけど。でも結局金を出すのが顧客ですからね。たとえ顧客が間違っていても事業的に儲かるなら応えるだけのことで、それよりも儲ける道があるならそっちを選ぶのが経営だという単純な話かと… "
- まさみさんは語りたいさんのツイート: "みんな嫌ならやめればいいのにと思わなくもない。ラダーで動かさないといけないからPLCが高くついてる感じがする。(逆にそれがなくなったらラズパイだけで構成される世界が来るかもしれん・・・)… "
- Kazunori Satoさんのツイート: "組み込み系プログラミングの不便さなめんなって記事にシーケンサーとラダー図なめんなってコメントが付いてて、不便さマウンティングに並行世界みある。 https://t.co/Tz01ZTAAZ5 https://t.co/Tz01ZTAAZ5"
- PLCとは、シーケンサとは?初心者が速習でき83%分かる11項目 | ある電機屋のメモ帳
- まさみさんは語りたいさんのツイート: "ちなみに大体のPLCは中身がLinuxかWindowsです。"
- ほろころさんのツイート: "この問題はethernet/ipやethercat、cc-linkを利用しつつ、raspberry piで通信すればラダーは積極的に利用しなくても良いので… (I/Oで扱える電圧はPLCに分が有るので機器の削減は出来ませんが) 例:https://t.co/xFN3y6XTWT https://t.co/kzI1ZtMZk7"
ロバスト
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「「ロバスト」というと、耐高負荷というより、仕様外/想定外に強いイメージあって、少しだけ違和感を持ってしまったの、B.メイヤー先生に影響されすぎかな(笑) https://t.co/8ChrBzGedK」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kaityo256 ご参考まで。「契約による設計」のB.メイヤー先生も、仕様定義外の動作は「気配りのグレードダウン」が理想で、それが頑丈さ(Robustness)という品質の指標、と書いてますね。 https://t.co/Oy5EvzxQma」 / Twitter
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています 「@shirouzu セキュリティ屋としてはそちらであるべきなんですが 私は生来がシス管なのでロバスト=可用性維持の文脈で使っちゃいますねー」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@tetsutalow なるほど(笑)」 / Twitter
- Akira TakiguchiさんはTwitterを使っています 「@shirouzu @tetsutalow 私も長く「仕様外、想定外の状況に対して強い」「可用性維持」という意味だと思っていましたが、アメリカ毎月出張1年間の時に聞いた robust は、ほぼ full featured (だから適用範囲が広い)という意味でした。コミュニティの違い?」 / Twitter
@fadis_
- Fadisさんのツイート: "Slackwareから学び取れるのはLinux環境の仕組みというより、何故パッケージにはファイルのアーカイブより多くの情報が必要なのか、何故ディストリはオリジナルのソースを変更しなければならないのか、な気がせんでもない"
- Fadisさんのツイート: "資源の共有と分配を行うのがOSの役割なわけだけど、ホスト内である資源を唯一のプロセスしか使わない事が保証されている場合OSの仕事は無駄でしかなくて、無駄だから回避しようというのは真っ当な話だし、前述の条件が満たされない状況の為にカーネルによる資源の分配も依然として必要とされている"
- yoh2さんのツイート: "カーネルとLILO更新して起動したら LI で止まって立ち上がってこない恐怖は今でも鮮明に覚えてる。"
- Fadisさんのツイート: "GRUBと違ってLILOは指定した位置からカーネルをロード出来なかったら他の方法で起動して修正必須だもんな"
- Fadisさんのツイート: "SwitchのOSはマイクロカーネル → 高速なIPCが欲しい → スレッドごとに独立した共有メモリを使って別のプロセスにデータを投げる #kernelvm"
- Fadisさんのツイート: "「キャッシュに当たるようにコードを書く」種類の人たちだ…"
- ゆかたゆさんのツイート: "一般人「HDDは遅すぎるからSSDに置こう」 友人たち「SSDは遅すぎるからメモリに置こう」 職場の人「メモリは遅すぎるからレジスタに置こう」 私「HDDは安いので好きなのです。」"
- Fadisさんのツイート: "CPUは外からの観測結果が変わらない限り命令の実行順序を変えるし、ストレージは外からの観測結果が変わらない限り書き込み順序を変えるし、コンパイラは外からの観測結果が変わらない限りコードを読み換えるし、グラフィックランタイムは外からの観測結果が変わらない限りレンダリング順序を変える"
@makoto_kato
- Makoto Kato ︎︎さんのツイート: "WindowsをOSSにしたところで、XPの頃でビルド1日以上かかる(40GB以上必要) 巨大すぎるOSのコードを直したいって人って多くない気がするんだよね。NTOSKRNLとWIN32Kだけでも十分な気がするんだが"
- Makoto Kato ︎︎さんのツイート: "今更、第3のOSのウリが軽いとか使ってるのって、アプリが重いんだから意味ないと思うんだよな。Androidアプリが重厚たから、そのアプリが動くっていっても、スペックに似合わないもの動かしてもヘイトしか生まない。"
- Makoto Kato ︎︎さんのツイート: "アプリをインストールさせないようなOSはまだ理解できるんだけどね、軽さをウリにするんだったら"
- Makoto Kato ︎︎さんのツイート: "個人的に言えば、サポートエンジニアのロールモデルってのは難しくて、そこそこ出来るレベル人が一番長生きしやすいという状況だし、飛び抜けた人はそもそもサポートだと飽きちゃうんで。 https://t.co/FjZAgsqh5P"
- サポートエンジニアをサポートするサポートエンジニアNight! - Secret Ninja Blog
- Makoto Kato ︎︎さんのツイート: "窓作ってる会社のEscalation Managerって職も自分がいた頃とは毛色が変わってて、まぁ今なんてTeam Managerとそんなに変わんないんじゃないのって感じだし。。。"
- Makoto Kato ︎︎さんのツイート: "サポートエンジニアとしてエンジニアリングが優秀すぎる人で残るのは、まぁ家庭を持っちゃっててとかが必要であって、若くて優秀な人って、軒並みあの組織からいなくなってるんだよな、特に品川のあそこ。"
- Makoto Kato ︎︎さんのツイート: "大きい組織になったサポート部門は普通の人が入ってくるので、まぁ能力的には尖る必要がなくなって、普通の人がハンドリングできるレベルしかその組織として出来なくなる。その経過をいろいろ見ちゃってるから、尖った人は大きい会社のサポート部門へ就職することはオススめしない"
- Makoto Kato ︎︎さんのツイート: "組織が小さいときはやりたい放題もできるし、いい意味で頭がおかしい人が入りがちなので、エンジニアリングとしても大変おもしろいんだけどね。大概起きてる現象って事例ないので想像力働かせるとかして説かないといけないし"
@d_toybox
- なかのん&マジックさんのツイート: "2、3、8、9以外は普通のアプリ開発でも基本やるべきでしょ(5は物による)。 https://t.co/PINbS54Xyq"
- 命に関わるコードを書く時の10個のルール - GIGAZINE
- みぞらぴさんのツイート: "モノリシックカーネル - Wikipedia https://t.co/VQ3V35Mv0S >日本国内においてはしばしばモノシリックカーネルと誤用・誤表記するユーザーやライター等が今なお見られる。日本語の「物知り」と語呂が似ているための勘違いであろう。 いらん考察すぎる"
- なかのん&マジックさんのツイート: "シュミレーション("
@rockridge07
- Rockridgeさんのツイート: "KaiOSはFirefox OSの遠い親戚のような存在であり、Firefox OSの開発チームの一部もMozillaを辞めた後で参加しているようだ。名称の由来は中国語の「开」(日本語の「開」)から。 / “A Short His…” https://t.co/7TiwDRDAZN"
- A Short History of KaiOS - KaiOS
- Rockridgeさんのツイート: "Windows版Firefox 61.0.2において、OSの強制再起動後(Windows 10 Fall Creators Update以降は全再起動後)にFirefoxが自動的に起動し、セッションを復元する機能が段階的に有効化さ… https://t.co/tW4OdUYDjo"
- Rockridgeさんのツイート: "Windows再起動後にFirefoxの自動復元が行われる機能は、toolkit.winRegisterApplicationRestartの設定によって有効・無効を切り替えることができる。 / “Firefox 61.0.2 …” https://t.co/uNvvE159cg"
- Rockridgeさんのツイート: "Firefox Realityのパーミッション機構はProgressive/Accountable/Comfortable/Expressive(PACE)の原則を採用するという。ユーザーにとってわかりやすい形で段階的にパーミッシ… https://t.co/TzJNK5bUR6"
@uchan_nos
- OS作れないマン 技術書典3 あ11企さんのツイート: "Mobingiはクラウドへのデプロイ指示を1度定義しておくと、その定義ファイルを元にいろんなクラウド環境にデプロイができるサービスらしい。オンプレミス上のCloudFoundryとかも対応している。 #paasjp"
- OS作れないマン 技術書典3 あ11企さんのツイート: "AnsibleとかChefはデプロイだけに集中しており、その後の監視とか更新などはスコープ外。Day2運用(監視、ログ、更新、バックアップなど)をするためのツールがBOSHである。 #paasjp"
- OS作れないマン 技術書典3 あ11企さんのツイート: "Kuboはyamlファイルを読み取ってその通りにVMを構築し、ソフトウェア(etcdを動かすために必要なものとか)をデプロイする。 #paasjp"
- x86-64-128さんのツイート: "集中コースの講師になったとしたら教えたいことまとめ: ・C++でのOSの作り方 ・川合さん謹製ツールからの脱却 ・Newlibのビルド ・UEFI起動のやり方 ・ELFバイナリのローダ ・PCIバス制御 ・SATA制御 ・USBキーボード制御 ・64ビットページング ・Linuxでのメモリ管理 ・mutexなどの同期機構"
- x86-64-128さんのツイート: "全部詰め込んで教えるとは言ってなくて,学生が興味のあるところを聞いてくれたら詳しい話が聞けるリストだと思ってください.… "
- OS自作 uchan_nosさんのツイート: "作者が「これはOSだ」と言い張って、周りの人も「まあそうかな」と思ったらそれがOSだ、という定義が僕は好きです。… "
- OS自作 uchan_nosさんのツイート: "Operating Environmentという言葉が割と好き"
- OS自作 uchan_nosさんのツイート: "OS自作について考えを巡らせていると,「OSを作る」=「カーネルを作る」となりがちでよくないな.こんな機能はカーネルに入れる必要ないよな,っていうの多すぎて「OS自作とは…」ってなりがち.だけど,ユーザ空間の諸々も含めて「OS」と考えれば,OS自作のスコープは広い."
- OS自作 uchan_nosさんのツイート: "ユーザ空間でどの機能を実現し,カーネル空間(リング0)にどの機能を含めるか,っていうのもOSの重要な設計課題だと思って取り組むと,かなり楽しいチャレンジングな課題に思えてくる."
- OS自作 uchan_nosさんのツイート: "ユーザ空間を含めてOSであるという立場にたてば,まだまだチャンレジすべきOSの分野は広そうだなあということに気づく.例えば,HadoopやKubernatesなどの分散処理基盤もOSだな,とかいう考えになって,未開の地が広がっていることに気づく.カーネルに閉じるとやることなさそうな感じになるけど."
- OS自作 uchan_nosさんのツイート: "分散OSの教科書を読むと、壮大な夢が語られていて、意思を継いでみたさが発生する。"
- OS自作 uchan_nosさんのツイート: "Kubernatesとかのオーケストレーションツールは,分散OSの機能の一部がユーザ空間プログラムとして実装された例だと思います.つまり現代の分散OS.(というのが最近分散OSを学んで感じたこと)… "
@utshina2
- 品川 高廣さんのツイート: "Linux の /dev/urandom は書き込み可能だけど、macOS の /dev/urandom は書き込めないらしい。"
- 品川 高廣さんのツイート: "Linux の /dev/urandom は poll() で POLLIN を指定すると読み出し可能として帰ってくるが、macOS ではエラーになる。"
@mhiramat
- まさみさんは語りたいさんのツイート: "x86-opcode-map.txtを更新したらobjtoolが壊れたとかバグ報告が来たんだけど、意外と知らないところでこれ使われてるの?"
- まさみさんは語りたいさんのツイート: "ありゃりゃー、先週末CELFで話をしていたことが(こちらはWindowsとはいえ)実際に起きた。OTAメンテ出来ないIT機器は販売してはならないっていう法律作るべきだ。 https://t.co/uRNCU3mMIP"
- 高梨陣平さんのツイート: "カナダで千台を超えるPOS端末がリモートからマルウェアにてwipe、削除された。Windows Xpを使用。機種はpanasonicの9300。攻撃はリモート保守に採用されたベンダー経由。SMB 1のパッチが適用されていなかった。再起動には全ての端末の物理アクセスが必要。… https://t.co/z5CLgXSBNq"
- Hideyuki Tanakaさんのツイート: "Dockerいらなくね?というより、Dockerのコンセプトは成功したけど実装は気に入らないから積極的に代替に切り替えていきたいという流れじゃなかろうか(´・_・`)"
- まさみさんは語りたいさんのツイート: "Dockerがいらないというより、Docker自体がモノリシックすぎて他のフレームワークと合わせて使いにくいから小さくしたcontainerdが使いたい、という話では。やっぱりUnix哲学は正しかったんだよ。"
- まさみさんは語りたいさんのツイート: "ということをsystemdにも普及させていきたいのですがどうすればいいでしょうか。"
- Kazuo Moriwakaさんのツイート: "systemdかなり機能ごとにバラバラになってると思うのですが…… ファミリーになってるとだめなかんじですか… "
- まさみさんは語りたいさんのツイート: "機能毎にAPIって切れていて、任意のコンポネントを入れ替えるのは簡単なんでしたっけ?… "
- Kazuo Moriwakaさんのツイート: "systemd-logindをつかわないとかはまあ普通にできる印象ですが置き換えの実装がないのでGNOMEつかいたいとかだと困りそう… "
- まさみさんは語りたいさんのツイート: "なるほろ、systemd以外に依存ができてるわけですね。 なんかCNCFみたいな感じでいい感じにコンポネント毎の呼び出し規約の標準化とかが出来ると、コンポネント毎に代替手段やフォークして別になった実装が入って、またダイナミズムが復活するかなあ、という気持ちです。… https://t.co/1slSF5oDUU"
- Kazuo Moriwakaさんのツイート: "udevdとsystemd本体は外すと前提が崩れていろいろ手当てがいりそうですが、基本的にはsystemd-*は相互にdbusでやりとりする疎結合なサービス群として構成されているので入れ替えたり使わなかったりは(程度問題ですが)やりやすいはず… "
- Kazuo Moriwakaさんのツイート: "少なくとも*BSDはsystemd-udevつかわずにhald等でdbus喋って対応してるので、簡単な置き換えが典型的なlinux環境に無いというだけで極めて難しいとかではないはず。https://t.co/aDsmeJLDJ6標準のサポートはsystemdが強いところなのでデスクトップ環境を動かすのにsystemdが欲しいのは割と特徴的。… https://t.co/rDPmDL7C7g"
- まさみさんは語りたいさんのツイート: "svcはservice callなんだろうな。レジスタの代わりにTLSにメッセージをおいてsvcするわけか。 #kernelvm"
- まさみさんは語りたいさんのツイート: "NSの内部のgfxの処理は、処理するためのバッファキューをIPCで操作する。この仕組みはAndroidのbinderの仕組みを再利用している。 #kernelvm"
- まさみさんは語りたいさんのツイート: "OSの仕組みを学ぼう、より、OSに入っている仕掛けを学ぼう、のほうが面白いかも。"
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "OS側ニーズで再起動する場合は、デスクトップ上のアプリケーションが完全復元する仕組みが出来ると良いのだが。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "手元のデータだと、ようやくXPはほぼ消えた感じになってきた。 (だが、時折、XP(x64)で動かないんですけど…という問い合わせが来たりする)… "
@beepcap
- Miura Hidekiさんのツイート: "セルフホストOSといえば、これだよな。何度見てもすごい https://t.co/pzj7DQu3yc"
- ガラパゴスは此処に在った!自作OSの上で自作CADを動かす猛者 | Scene Research Station
- beepcap@HTTPSの強制には反対さんのツイート: "これはちょっと違って、12年前だと時代遅れではあるものの、 30年前は「ソフトが書けなきゃPCはそもそも起動しても意味が無い」時代だった。 パソコンを使うとはソフトウェアを記述することだった。 その時代の感性であれば、自作するのは当たり前だろう。 CPUがDX4と言っているのでさもありなん"
- beepcap@HTTPSの強制には反対さんのツイート: "僕もPC98で自作のワイヤーフレームモデラソフトを作って、ワイヤーフレーム表示や3D表示を研究していたぞ。 もう多分手元からなくなってしまったが、法線ベクトルを使うともっと簡単にポリゴンへの光線処理が出来ると分かったのは作ってからだいぶあとだったな・・・(減衰率と角度で表現していた)"
- beepcap@HTTPSの強制には反対さんのツイート: "セルフホストOSといいつつ、まぁ自分専用のおもちゃだったんだろうと思うぜ。"
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「バックアップをとっているにもかかわらず、ランサムウェア攻撃で身代金を払う企業が多いのは、彼らがバックアップの復元を実際に試していないからである。ランサムウェア攻撃に備えた「サイバー避難訓練」を定期的に実施せよ。 https://t.co/JGhL4wopui」 / Twitter
- Don’t Wanna Pay Ransom Gangs? Test Your Backups. – Krebs on Security
- Shinpei Kato (加藤真平)さんはTwitterを使っています 「OSの仕事の1つは資源管理です。資源管理には大別して時間管理と空間管理があり、その大部分がScheduling問題とAllocation問題に帰着します。これらは最適手法と発見的手法のどちらかで解決できますが、いずれも整数問題や確率問題、微積分問題が基礎になっているので数学は大事ということです。」 / Twitter
- Shinpei Kato (加藤真平)さんはTwitterを使っています 「OSのもう1つの仕事は抽象化≒仮想化です。不特定多数のユーザーに対して複雑なシステムをわかりやすく可視化して見せ、使いやすく機能性に優れたインターフェースを提供することですが、これはアーキテクチャデザインやエンジニアリングの知識が求められるので、図工も大事です。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「趣味プロジェクトを長続きさせるコツ: 保守コストが可能な限り少なくなるように全体を設計する。枯れたビルド環境と動作環境、なるべく変化しない言語、少ない依存ライブラリ、陳腐な枠組みの再利用 (例: DBMSの代わりにファイルを使う)、サーバ・クライアントの単純化など。 https://t.co/uHP7jBiBp2」 / Twitter
- Designing Low Upkeep Software
Advent Calendar
その他
- Bluetooth Low Energy Advent Calendar 2014 - Qiita
- Bluetooth Low Energy Advent Calendar 2015 - Qiita
- Bluetooth Low Energy Advent Calendar 2016 - Qiita
- 一人トランザクション技術 Advent Calendar 2016 - Qiita
- 武蔵野 Advent Calendar 2017 - Qiita
- カーネル/VM Advent Calendar 2012 : ATND
- カーネル/VM Advent Calendar 2013 - Qiita
- Kernel Advent Calendar 2017 - Adventar
- オープンソースカンファレンス Advent Calendar 2018 - Adventar
- Advent Calendar 2018 - panda's tech note
- OS-CPU Advent Calendar 2019 - Adventar
- 東京大学 品川研究室 Advent Calendar 2020 - Qiita
BitVisor
- BitVisor Advent Calendar 2015 - Qiita
- BitVisor Advent Calendar 2016 - Qiita
- BitVisor Advent Calendar 2017 - Qiita
- BitVisor Advent Calendar 2018 - Qiita
- BitVisor Advent Calendar 2019 - Qiita
- BitVisor Advent Calendar 2020 - Qiita
Linux
- Linux Advent Calendar 2013 - Qiita
- Linux Advent Calendar 2014 - Qiita
- Linux Advent Calendar 2015 - Qiita
- Linux Advent Calendar 2016 - Qiita
- Linux Advent Calendar 2017 - Qiita
- Linux Advent Calendar 2018 - Qiita
- Linux Advent Calendar 2019 - Qiita
- Linux Advent Calendar 2020 - Qiita
- 本日12月1日より,2017年の技術系Advent Calendarが各所ではじまる:インフォメーション|gihyo.jp … 技術評論社
- 自作OS Advent Calendar 2014 - Adventar
- 自作OS Advent Calendar 2016 - Adventar
- 自作OS Advent Calendar 2017 - Adventar
- 自作OS Advent Calendar 2018 - Adventar
- 自作OS Advent Calendar 2019 - Adventar
- 自作OS Advent Calendar 2020 - Adventar
IME
- Wolfram|Alpha 日本語版:計算知能
- 家庭・趣味向けのMathematicaの価格:個人ライセンスオプション
- 技術情報 – 株式会社科学計算総合研究所
- ログイン
- コグニカル
- Interpretable Machine Learning
- The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction • Software Engineer as Data Scientist
- 機械学習の研究者を目指す人へ | Hiroshi Takahashi
- 全ての機械学習の論文は新しいアルゴリズムを提案しているのですか? - Quora
- はまさんはTwitterを使っています 「@shunji_umetani 嘘にならない範囲で限界までポジショントークするなら「確かに似てますよね!じつは機械学習も中身は最適化問題を解いてるんですよ!データから最適なアクションを見つけだす技術が機械学習。でも最適化にはデータなしで最適なアクションを見つけ出す技術もあります!」」 / Twitter
- Hal TasakiさんはTwitterを使っています 「『数学:物理を学び楽しむために』田崎晴明 無償公開している大学生向けの教科書を久々に改訂。 主に行列の対角化の周辺を整備した。これでかなりスッキリと読みやすくなり内容も充実したと思う。スペクトル分解や正規行列の対角化可能性にも言及した。 https://t.co/ZAmRSjY7zZ」 / Twitter
- Math book
- えるエルさんはTwitterを使っています 「PRMLと並ぶ機械学習の入門書として名高いMurphy先生の本が,深層学習以降も含む進化版として出版されるようで,ドラフト版が公開 https://t.co/1h1J1ELvNc 1600pの大作の前編で,続編のAdvanced Topicsもあるそう Deep以前の最強のML本にDeepの話題も加わり,単体の網羅度では最強の教科書(鈍器)では https://t.co/5UeTagu6No」 / Twitter
- https://probml.github.io/pml-book/book1.html
- nianticlabs/monodepth2: [ICCV 2019] Monocular depth estimation from a single image
IME
その他
IME
- 日本語入力 / エスリル
- フリック入力の基本 / iPhone5の使い方動画 - YouTube
- Seamonkey インプットメソッド仕様書
- 🐟日本語入力の落とし穴 #burikaigi - みずぴー日記
- “http”が“hっtp”になるイライラを解消する「ImeCaretColor」【レビュー】 - 窓の杜
- SKKがブラウザ経由で使える「SKK Anywhere」を作ってみた - yunazuno.log
- パッチを当ててuim-skkをUTF-8化する | κeenのHappy Hacκing Blog
- im2018 · mamorlis/chaime Wiki
- RFC: Add new enum value for private mode (not learn personal information for input method) to GtkInputHints (#2261) · Issues · GNOME / gtk · GitLab
エディタ
- Big Sky :: Vim と日本語入力の話。
- SSHを介してVimを使う人に感動的なESCキーを押すとESCキーが効きつつIMEがオフになる設定(Google日本語入力とVimの相性は最強!) - しふーのブログ
- エディタのVimモードで、Escキーを押したときに日本語入力をオフにする設定(macOS, Windowsそれぞれの場合) - nosu blog
自然言語処理
- 分かち書きする言語しない言語のトークン化を統一的に扱う方法を妄想してみる - 言語と知能
- GBDT - Google 検索
- ☔️⚡️さんはTwitterを使っています 「正直、文章のクラスタリングならばもうGBDTでいいと思う。 NN使うとやっぱ最大の課題はAPIにしたとき重いんですよね。 精度もAUCで3%ぐらいしか違わないので、高頻度で叩かれるAPIを想定するとGBDTに分があります」 / Twitter
- 言語処理100本ノック 2020 - NLP100 2020
- ラフ集合 コーパス - Google 検索
- Yo Ehara@9/3 教育システム情報学会でオンライン発表さんはTwitterを使っています 「ツイッターのような短文書分析用の新しいトピックモデル。ACL2020。文書に含まれる分野を教師なし推定するトピックモデルの代表格がLDAだが、各文書に含まれる単語数が少ない短文書では弱い。分散表現は併用せず、最後まで単語を離散的に扱う純粋なトピックモデルのようだ https://t.co/jl8JMPveFA」 / Twitter
- An Online Semantic-enhanced Dirichlet Model for Short Text Stream Clustering - ACL Anthology
- Yo Ehara@9/3 教育システム情報学会でオンライン発表さんはTwitterを使っています 「Semantic enhancedと書いてあるので、GLoVeみたいな単語の連続的な分散意味表現を別に持ってきて併用する方法かと思ったんですけど、どうやらそういう話ではなく、離散的な単語表現からトピックと各単語の間のsemantic weightという値を計算して、教師なし学習時に逐次更新するらしい。」 / Twitter
- C3-3.pdf
- 論集49-2_白田.indd
- Mamoru KomachiさんはTwitterを使っています 「何がギャップだったかというと、言語学での自然言語処理はルールベース万歳でひたすら辞書やルールといった知識を書く(プログラミングは正規表現的な)アプローチだったのに対し、工学の自然言語処理は統計的手法全盛で、コーパスにタグを付けて機械学習するというアプローチだったので、違いすぎた。」 / Twitter
- 『トピックモデル』の勉強ノート:記事一覧 - からっぽのしょこ
- Googleが表形式データを使用して自然言語の質問に答えるためのAIをオープンソース化
- Salesforceがデータベース用自然言語インターフェースPhotonをリリース
- MicrosoftとGoogleが言語横断のAIタスクに対する新しいベンチマークをリリース
- しょこβ📚さんはTwitterを使っています 「本にはないけどこれを変分ベイズでも解くという遊び方に気付いてしまった。 #OsakaR はてなブログに投稿しました #はてなブログ 5.3:ノイズあり対応トピックモデル【『トピックモデル』の勉強ノート】 - からっぽのしょこ https://t.co/o7dO1GJjdw」 / Twitter
- 5.3:ノイズあり対応トピックモデル【『トピックモデル』の勉強ノート】 - からっぽのしょこ
- nerman: AllenNLP と Optuna で作る固有表現抽出システム - クックパッド開発者ブログ
- 系列ラベリングによる NPS コメントのポジティブ・ネガティブ部分の抽出 - クックパッド開発者ブログ
- NPSアンケートを自動分類した話 - クックパッド開発者ブログ
辞書
- Yuki YoshidaさんはTwitterを使っています 「国語辞典、循環参照するじゃんと思ってたが、あれは連立方程式だと思えばいいのか。巨大な連立方程式の解として全ての言葉を定義している。」 / Twitter
- 翻訳するポット🫖さんはTwitterを使っています 「@yos1up すこし違いますが、減衰係数をかけて代入を繰り返して計算解を出すという手法もあります。 鈴木敏『辞書に基づく単語の再帰的語義展開』 https://t.co/Fy1Hj67Bng」 / Twitter
- 情報学広場:情報処理学会電子図書館
スクレイピング
- ウェブサイトからデータを自動で収集する「スクレイピング」を実行する方法と注意点 - GIGAZINE
- ローカル環境で netlify lambda のエミュレータを動かす - mizdev
- netlify-lambda で puppeteer を起動する - mizdev
- ブラウザのさまざまな操作を自動化するためのガイドをまとめたサイト「theheadless.dev」 - GIGAZINE
- theheadless.dev - Learn Puppeteer & Playwright
- checkly/theheadless.dev: Learn Puppeteer and Playwright - Tips, tricks and in-depth guides from the trenches.
- ブラウザ自動化ライブラリ Puppeteer が Firefox をサポート
- Chromium、Firefox、WebKitベースのブラウザを自動化するPlaywright 1.0がリリース
- ウェブサイトの情報を自動で取得する「ウェブスクレイピング」をJavaScriptで行う方法 - GIGAZINE
依存関係グラフ
- 特徴量重要度だけで解釈するのはやめよう~部分依存グラフのすすめ │ キヨシの命題
- 特徴量ごとの作用を使ってモデルの中身を解釈する l DataRobot
- 依存関係・因果関係の視覚化に使われるベイジアンネットワークとは?|NTTデータ数理システム
- 機械学習モデルの解釈の入門: Partial Dependence Plot(部分依存グラフ) - GRI Blog
- 故障位置決めのためのBayesネットワークに基づくプログラム依存グラフ【Powered by NICT】 | Semantic Scholar
- P1-31.pdf
耳コピ
- しゃをみんさんはTwitterを使っています 「ブログに書きました。先日のOngaACCELシンポジウムで発表されたAI自動採譜の研究について、自分が関わったパートを少し詳しく解説してみました。 「AI自動耳コピ」の研究者がいま考えていること - しゃをみんの自習部屋 https://t.co/DMvmLqcouH https://t.co/uPWmlwqNAq」 / Twitter
- 「AI自動耳コピ」の研究者がいま考えていること
- 【藤本健のDigital Audio Laboratory】音を楽譜にする“耳コピ”はここまで来た。AI自動採譜の最前線-AV Watch
- [2005.07091] Semi-supervised Neural Chord Estimation Based on a Variational Autoencoder with Latent Chord Labels and Features
- 位相的データ解析(Topological Data Analysis)について | ALBERT Official Blog
- 情報学広場:情報処理学会電子図書館
- 情報学広場:情報処理学会電子図書館
- 整数計画法による定式化テクニックをまとめたい - 締め切り駆動開発
- NumPyroによるベイズモデリング入門【線形回帰編】 | deepblue
- 松本徹三さんはTwitterを使っています 「@shirouzu 現在の延長線上ではシンギュラリティーは無理だと思っています。三つの点でブレークスルーが必要です。1)推論スピード(量子コンピューターが必要)2)データベース(大量の文書や講演・演説等のデジタル格納が必要)3)規範の認識と遵守、自由意志、自律的問題提起、閃き、等々の問題の解明。」 / Twitter
- 「相手のあらゆる行動の確率を計算する」ポーカーAIをFacebookが開発、将来的にはサイバーセキュリティへの応用も - GIGAZINE
- 誤情報に対抗するための判断材料を提供する「コンテキスト化エンジン」構想 - GIGAZINE
ローマ字
Twitter
- 毎日新聞さんのツイート: "ローマ字の「ち」は「ti」と「chi」。 教育現場からは「どちらかに一本化してほしい」との声が上がっています。 https://t.co/pJXfyqmaN5"
- SASANO Takayoshiさんのツイート: "「ち」は「chi」表記じゃないかなあ。「ti」は「てぃ」という発音に見えるんだけど。(キー入力のことは考慮しないツイート"
- SASANO Takayoshiさんのツイート: "入力は多分tiだと思います。 #ち"
- SASANO Takayoshiさんのツイート: "むしろぁぃぅぇぉ入力がlaなのかxaなのかで戦争が起きるような"
- SASANO Takayoshiさんのツイート: "ていうか何故統一したがるんだろう。どっちでも良いものは「どっちでもいい」を許容しなよ。"
- Orumin de Izumoensisさんのツイート: "このまえ,ローマ字入力で ti か chi かで訓令式かヘボン式かみたいなアンケートが出回っていたのだけれども,昭和二十九年十二月九日のローマ字のつづり方(内閣告示第一号)における第二表に,"ち"を chi と綴る方法が乗ってる https://t.co/g3qvGc8ft8"
- KIMATA RobertHisasiさんのツイート: "なんで選択肢が訓令式とヘボン式からの択一なのか。ISO 3602はなぜかこういう時に話題にすら上がらない。国際標準なのに。あと99式とか日本式とかもあるがこちらも話題に上らない。更に固有名詞の場合、ローマ字の書き方無視して全く別の綴りになる場合もあるが、そういう場合の対策も出ない https://t.co/kXpjfgJJhc"
- ローマ字 - Wikipedia
- 99式ローマ字 - Wikipedia
- ISO 3602 - Wikipedia
- UT_Komaba_Nihongo_no_romaji_hyoki_v1a
- ヘボン式ローマ字一覧表です。ローマ字のヘボン式と訓令式の違いを知っておこう!
- 正しく知っておきたい「ヘボン式ローマ字」の基礎知識 - NAVER まとめ
- 新田原駅の駅名標のローマ字が訂正される|鉄道ニュース|2019年1月18日掲載|鉄道ファン・railf.jp
- 新田原駅の駅名標のローマ字が訂正される|鉄道ニュース|2019年1月18日掲載|鉄道ファン・railf.jp
総ルビ
- Shiki OkasakaさんはTwitterを使っています 「総ルビくらい、技術的にはほとんどコスト0でふれるんだけどな。ユニコードのルビ、なんとか標準までもっていけないものかなぁ。ツイートでルビふれないのも、けっこう社会的な問題だとおもう。 https://t.co/nD1OKToN7c」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「画面の動画は「ふりがなパッド」のものです。「ひらがなIME」とセットでうごいています。Ubuntu や Raspberry Pi などでつかえます。 https://t.co/T4C3r1zaBT https://t.co/7WyDRKuGR9 https://t.co/wvs4DxjH7w」 / Twitter
- esrille/furiganapad: ふりがなパッド
- esrille/ibus-hiragana: ひらがなIME for IBus
- Shiki OkasakaさんはTwitterを使っています 「ユニコードのルビというのは、ただのテキストでもルビをもてるようなしくみのことです。(「ふりがなパッド」は、ユニコードのルビを編集・表示できるテキストエディター。) https://t.co/eOai11QCao」 / Twitter
- ルビ - Wikipedia
漢字含有率
- Shiki OkasakaさんはTwitterを使っています 「漢字含有率をさげるかきかた。 1. 和語はかながきを基本にする。 2. 常用漢字表を意識して、むずかしい漢字をさける。 3. 国語化した漢語は、かながきにする。」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「2.は、IMEのせいもあって、無視されていることがおおい。かいた本人のこのみとは無関係ということもおおそう(あとでよめなかったり)。IMEの漢字辞書の構成法については、山田尚勇さんが提言をされていた。 https://t.co/LndZrEIifW」 / Twitter
- www.pitecan.com/presentations/PenInput/tcode
- Shiki OkasakaさんはTwitterを使っています 「3.は、当用漢字表の「代名詞・副詞・接続詞・感動詞・助動詞・助詞は,なるべくかな書きにする」というルールから。いまでも、実践されているひとはおおいよう。梅棹忠夫さんは、これを形容動詞(ナ形容詞)にまでひろげてかかれた。 https://t.co/dLaKFh86Xw」 / Twitter
- 文化庁 | 国語施策・日本語教育 | 国語施策情報 | 国語審議会(終戦~改組) | 当用漢字表
- Shiki OkasakaさんはTwitterを使っています 「当用漢字表のときにきめた「ふりがなは,原則として使わない。」というルールが、いいまでも、けっこう尾をひいていたり。 RT> https://t.co/dLaKFh86Xw」 / Twitter
- 文化庁 | 国語施策・日本語教育 | 国語施策情報 | 国語審議会(終戦~改組) | 当用漢字表
- 山本 和英 ※暑中お見舞い申し上げますさんはTwitterを使っています 「今自然言語処理を勉強されている方は、例題として「表」を「ひょう/おもて」に正しく読み分ける手法を考えてみてください。機械学習でやるなら、そのための学習データを如何に低コストで(=楽をして)集めるかが課題です。結構難しいですよ。ちなみに答えはありません。」 / Twitter
- それは常用漢字ですか?
- Shiki OkasakaさんはTwitterを使っています 「メモ: いまの義務教育用漢字は1,026字。日本語能力試験N2の漢字数は1,000字程度。当用漢字表選定まえにつくった常用漢字表案は1,295字。」 / Twitter
- 人名用漢字:その漢字が子の名に使える漢字かを判定する
- 「やさしい日本語」のお焚き上げ - 水底の血
- Shiki OkasakaさんはTwitterを使っています 「「ひらがなIME」で、AltGrキーを有効にすれば、記号などを直接入力できるようにしました(まだ、masterのみ)。(絵文字は、IBus標準のCtrl-Shift-eで入力してください。ねんのため。Gtk 4では、Ctrl-.でGtkEmojiChooserをつかって入力できるアプリがふえそうですが。) https://t.co/UTDblghz4W」 / Twitter
- 実験的な機能 ― ひらがなIME
- Shiki OkasakaさんはTwitterを使っています 「Ctrl-Shift-eとうったあと「はて?」となるひともいそうなので補足。そのあとスペースをうつと、絵文字のメニューがでてきます。(GtkEmojiChooserのUIのほうが、わかりやすい感じはします。)」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「「ひらがなIME」で、周辺テキストに対応していないアプリケーションでは「よみ入力モード」をつかうようにしました(まだ、masterのみ)。日本語を入力するとき、Chromeなどでは「よみ入力モード」をつかうようになります。 https://t.co/If1KX817zO」 / Twitter
- 周辺テキストに対応していないアプリケーションでよみ入力モードを有効にする · Issue #87 · esrille/ibus-hiragana
- Shiki OkasakaさんはTwitterを使っています 「Firefoxなどでつかえる「モードレス入力モード」とくらべてみると、おもしろいかもしれません。」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「IMEの「よみ入力モード」については、梅棹忠夫さんがかなり初期から批判をされていました。よみの確定操作というのは、なかなか、わずらわしい操作だとおもいます。 https://t.co/ixZP824Q0n」 / Twitter
- 『日本語と事務革命』(梅棹 忠夫):講談社学術文庫|講談社BOOK倶楽部
- Shiki OkasakaさんはTwitterを使っています 「日本語のばあいは、表記は思想とおもったほうが、おさまりはよい気がしたり。そのかわりに、最低ラインとしての「国語」は平明である必要をみとめていたのかなぁ。いまの「国語」はそうゆう「国語」ではなくて、かわりに「やさしい日本語」がある感じ。 https://t.co/zfmGfswsFl」 / Twitter
- 漢字・カタカナ・ひらがな - 平凡社
- 小池陽慈『14歳からの文章術』さんはTwitterを使っています 「野村雅昭・木村義之編『わかりやすい日本語』(くろしお出版)、ゲット。 もちろんまだパラパラめくってみただけだけれど、それだけでも、「わかりやすい日本語」という考え方が、現代文や国語の指導のうえでかなり重要なことを述べているとわかる。 勉強します。 https://t.co/yTatomvApz」 / Twitter
- Shiki OkasakaさんはTwitterを使っています 「野村雅昭さんも梅棹忠夫さんのような表記法をつかう。あべやすしさんの「みみできいてわかる文章のために」がわかりやすいかも。 https://t.co/SyPquDGyny」 / Twitter
- 「みみできいてわかる文章のために」
- Shiki OkasakaさんはTwitterを使っています 「せめて古文の授業でくらい「伝統的な日本の文章というものは、ひらがなだけで書いていくというのがひとつの主流なわけです。」とおしえてくれたらいいのだけれど。学校の教科書は原文のひらがなを漢字にかきかえてしまう。 https://t.co/Sj1jra5DcA」 / Twitter
- 「漢文訓読に使った言葉が今に生きているんです。」月本雅幸(2)|インタビュー VOL.3|超漢字マガジン 漢字を知り漢字を楽しむサイト
- Shiki OkasakaさんはTwitterを使っています 「じぶんでよめようがよめまいが、IMEの変換候補に漢字があればそれをえらんでしまう。そうゆう心理になまえはついてるのかな。国語のにがて意識とリンクしたりもしているよう。 できた文は、表外の訓よみだらけで、達意の文として破綻していたりする。いまのIMEは、これをとめられない。」 / Twitter
ひらがな IME
- Shiki OkasakaさんはTwitterを使っています 「「ひらがなIME for IBus v0.13.0」をリリースしました。周辺テキストに対応していないアプリケーションでは、よみ入力モードを有効にして日本語を入力できるようになりました。Chromiumウェブブラウザなどでも、「ひらがなIME」をつかって日本語を入力できるようになります。 https://t.co/0pQ9jQwuaY」 / Twitter
- Release ibus-hiragana-0.13.0 · esrille/ibus-hiragana
- Shiki OkasakaさんはTwitterを使っています 「「ひらがなIME」、v0.12のつぎはv1.0といっていたのですが、v0.13のつぎに変更しています。「モードレス入力」から「よみ入力モード」に自動でフォールバックする機能の微調整がまだすこしあるかな、というところです。」 / Twitter
Mozc
- Re: [opensuse-ja] 辞書の話
- Wonderlands in Usagi's brain: mozcユーザー辞書エディターとか作ってデータ構造とアルゴリズムをがさごそっと勉強しようか
- Mozcソースコード徹底解説 #TokyoTextMining
- Mozc - ArchWiki
- google/mozc
- mozcをコンパイルしてインストールする(Linux) - Qiita
- Google 日本語入力 - Wikipedia
- 2012年他にやったこと - Mozc 編 - NyaRuRuが地球にいたころ
- 2014 年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
- 2013年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
- 2012年やったこと - Mozc 編 - NyaRuRuが地球にいたころ
- エヌユルさんはTwitterを使っています 「@d_toybox ローマ字テーブルをカスタマイズできるのがmozc系だけなので逃れられなくなりました」 / Twitter
Google
もしかして
- スペル修正プログラムはどう書くか
- 日本語「もしかして」検索について - 株式会社ロンウイット
- 日本語「もしかして」検索について - 株式会社ロンウイット
- Apache Solr でサジェストを実現してみる、その2 - Qiita
- 「Google サジェスト」が正式サービス開始、「もしかして?」を検索窓に表示 | 日経 xTECH(クロステック)
- Google、「もしかして」修正検索の新しい機能 | 海外SEO情報ブログ
グライド入力
- 渋川よしきさんのツイート: "グライド入力、めちゃ便利。英語入力めちゃくちゃ早くなった。欧米人がIMEを知らなくて云々というのは過去の話になりそう。グライド入力とか音声入力を実現するには必要だし、事例として理解してもらいやすくなりそう。"
- 渋川よしきさんのツイート: "AndroidのGoogle日本語入力内蔵英字キーボードにはグライド入力ないのね。Google中国語入力の方にはあるのに!まあ、システムキーボードのgboardの方を使えばよいのだけど。"
- iOS版「Gboard」が日本語対応!賢いグライド入力も!
- 英文メール作成も楽ちんに。日本語対応した「Gboard」でキー入力を“同時翻訳” - ケータイ Watch
- ASCII.jp:スマホの入力でも日本はガラパゴス、世界は《ひと筆書き》入力が主流だ|遠藤諭のプログラミング+日記
- 指をスライドして入力する - Nexus ヘルプ
- Google日本語入力の後継アプリ「Gboard」のAndroid版が最新β版で日本語に対応 – ゼロから始めるスマートフォン
- iPhoneのキーボード入力をカスタマイズしてちょいワザ覚えたら超快適になった - Engadget 日本版
- Android★SQUARE:■Gboard - Google キーボード ~ 大幅な進化を遂げていた標準キーボード
- Google日本語入力の後継キーボードアプリ「Gboard」のAndroid向けが最新β版で日本語に対応!導入方法や使い方を紹介 - ライブドアニュース
- Gboard - Google キーボード - Google Play の Android アプリ
- 【Gboard】Google らしいスマホ向け文字入力ツールの初期設定、使い方を解説(iOS版)
Google
- Google Japan Blog: Google 日本語入力の開発版をアップデートしました。(0.13.481.10x)
- Google Japan Blog: Google 日本語入力チームからの新しいご提案
- 714668 - Duplicate normal character + Vietnamese character for Vietnamese input - chromium - Monorail
- Backspace can not erase the last one character during Japanese IME conversion (macOS) · Issue #9173 · electron/electron
- Google 日本語入力 - CGI API デベロッパーガイド
- (99+)Google 日本語入力 ヘルプ フォーラム - Google プロダクト フォーラム
- Google 日本語入力報告されている問題 - 日本語入力 ヘルプ
- 誤変換報告フォーム - 日本語入力 ヘルプ
- [026460]通常使用する言語(日本語入力システム)を切り替える
- 「新しいキーボードをインストールします」と通知されますが何も変わっていない。これは何でしょうか&# - マイクロソフト コミュニティ
窓の杜
- 【レビュー】ここ100年間で公開されたアニメタイトルを網羅した「Google IME」向け辞書ファイル - 窓の杜
- Google、スペルチェック機能を搭載した「Google 日本語入力」v0.13.521.0 - 窓の杜
- Google製の日本語入力システム「Google 日本語入力」がついに正式版へ - 窓の杜
- 「Gboard」に漢字のよみがなを取得するAPI ~サードパーティーアプリに組み込み可能 - 窓の杜
本の虫
- 本の虫: Google日本語入力の技術講演会
- 本の虫: Google日本語入力の開発版が更新された
Twitter
- なかのん&マジックさんのツイート: "Linux版ChromiumのIME周りのイベントの挙動が変なことになってるなーと思ったので、ソースコード確認してみたけど、やっぱりコメントから悲壮感漂ってくるな……ホンマに地獄。"
- Desktop App Convater で変換した UWP アプリ対応の Google 日本語入力 2.23.3195.100 / 101 開発版リリース – What I Know ~ワッタイナ
- まさみさんは語りたいさんのツイート: "なんかこれはgoogle日本語入力などでよく見られるような(笑)… "
- 高梨陣平さんのツイート: "NNのモデルは学習したデータを記憶してしまい、悪意あるユーザはデータを取り出すことが可能だとの研究結果。特にテキストデータの学習が危険でイメージやそれ以上のエントロピーが高いデータは難しいという。回避方法は重要データは学習させない、するなら差分プライバシアルゴリズムを使用すること… https://t.co/i2yOoswRt4"
- Albert R. Antoscaさんのツイート: "Neural nets can "unintentionally memorize" private training data, leaving it vulnerable to hackers. "[We] don't really know why neural networks memorize these secrets right now" #neuralnets @TheRegister # https://t.co/JMSyq06F9P… https://t.co/2BxpcZlYCe"
- Boffins baffled as AI training leaks secrets to canny thieves • The Register
- [1802.08232] The Secret Sharer: Measuring Unintended Neural Network Memorization & Extracting Secrets
- Makoto Kato ︎︎さんのツイート: "Google日本語入力に関しては、エイプリルフールやる前に、プロダクトのバグを直して欲しいよね。。。"
- Google Developers Japan: Gboard 物理手書きバージョンの舞台裏
- なかのん&マジックさんのツイート: "Google日本語入力って、スクリーンのDPIが変更になると、移行、候補ウインドウ位置とかバグる?"
- なかのん&マジックさんのツイート: "プロセスを殺してみたら正常な位置に表示されるようになったけど、その後再起動されていないのにそのまま動いてるのが気持ち悪いな……どういうことなの。"
- Makoto Kato ︎︎さんのツイート: "Microsoft Japanese IMEも2017の時にいろいろあったのをサム古川さんがばらしちゃうし (まだ日本にチームあるけど)。。。"
- Makoto Kato ︎︎さんのツイート: "なので、JustSystemに納税するようにしてます"
- Makoto Kato ︎︎さんのツイート: "Google Japanese Inputの功罪は、IMEで稼ぐビジネスが難しくなったのと、その結果焼け野原になった後に彼らが(会社の方針かどうかは知らないけど)アップデートをしなくなったことですね。Netscape Navigatorでみんなが学んだビジネスのつぶしかたではある"
- Makoto Kato ︎︎さんのツイート: "OSSなんてパッチ書いて問題点指摘するだけでもいいわけだし、自分の場合はどういう形であれバグが直ればいいだけなんで。 他人のパッチを自分が取り込む場合は、パッチを全く変えたとしてもその人の名前でできる限りlandするけどさ。ただ会社によってはできないからね"
- Makoto Kato ︎︎さんのツイート: "そもそもChromiumのIMEコードってもう日本人やってないはずだし、Google Japanese Inputも(そのチームではもうない) 某氏がギョーム外の休日にやるかどうかだから、自分とかでパッチ書けばいいじゃんといつも思うんだけど。なんのためにmozcがOSSにしてあるのかと https://t.co/DyYnqFkJ0J"
- Makoto Kato ︎︎さんのツイート: "AI SoftのWXビジネスだって、Microsoftに駆逐されたし (というかもともとのMicrosoft IMEはWXのソースコードライセンス版からスタートしてるが)、商用のサードパーティ製IMEはデスクトップじゃ難しいよな"
- Makoto Kato ︎︎さんのツイート: "Chrome 75 for Windowsで入力周りの変な話が出てきたのは、75でTSFに移行したからか。Geckoの場合はさんざんサイクル回したけど、Chromeは一気にいったんだ。Microsoft社内でテストされてるんだとは思うけど"
- SODA NoriyukiさんはTwitterを使っています 「Google IMEの z+一文字 って、たぶん Emacs Egg あたりが起源だから https://t.co/4gFIyrEzL5 の「『zX』が :-) に変換される?!」に記載されている奴はだいたいあるんじゃないかなあ。 ちゃんと確認したことないけど。」 / Twitter
- Wnn Yogo Ver.2.0 (2005.4.18)
- ひさてるさんさんはTwitterを使っています 「Google IME zh ← zj ↓ zk ↑ zl → ここまでは知ってたけど z- 〜 z[『 z] 』 z. … こんなのもあったのか」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「OS作っているベンダーなら、なぜAndroid SにAPIを追加しなかったのかを問い詰めたいところですね https://t.co/cXxVx117KA」 / Twitter
- Google Developers Japan: 日本語よみがなデータ取得を可能にする Gboard API のご紹介
- Makoto Kato ︎︎さんはTwitterを使っています 「さて、イベントモデルどうするべ。inputType: insertFromDropは。。。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「たぶん新しいAPIがあるんだろうけど。。。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「https://t.co/90dAIyY4sU」 / Twitter
- InputType to insert image from software keyboard · Issue #117 · w3c/input-events
- ライティングが捗る!Google日本語入力の意外と知らない便利機能9選|ferret [フェレット]
- Google日本語入力のショートカットを覚える - Milk+ea
- Android用「Google日本語入力」がサポート終了。Gboardへの乗り換えで気になる点を解説 - PC Watch
- Google検索では依然としてAIの分析よりも「メタデータ」が重視されている - GIGAZINE
- won't fix: サードパーティ製IMEは、Web Browserのプライベート・シークレットウィンドウなんて考えてくれない
ATOK
blog
- Macの日本語入力に「ATOK」を1年以上使い続けている理由 - Better Better Days
- ATOK & やまぶきR による親指シフト - にせねこメモ
- ATOK も統計的言語処理へ - NyaRuRuが地球にいたころ
- Firefox Quantumが激重になる問題が発生中 - あれこれ備忘録@はてなブログ
- 3DMARK 11で透明な窓が出てきて起動しないのはATOKの設定が原因だった | Hinemosu
- 3DMarkが動作しない...原因はこれ?! | つれづれなるままにひぐらしすずりにむこて..
- おりおんの戯言 - メインPC、ビデオカード換装。(2014/09)
- ATOKの直前の入力を日本語にするをポップアップさせない方法 - プログラムdeタマゴ
PC Watch
- ジャストシステム、新エンジンを搭載し誤変換が30%削減された「ATOK 2017」 ~10年ぶりの刷新でディープラーニングを駆使 - PC Watch
- 「まっくお」で「macOS High Sierra」に変換できるATOKの新IT辞書公開 - PC Watch
- ジャストシステム、Windows 10プチフリ問題を解消したATOKアップデート - PC Watch
- ジャストシステム、説明で漢字変換できる新機能を搭載した新「ATOK for Windows」 ~Android版も深層学習エンジンで予測変換性能が30%向上 - PC Watch
INTERNET Watch
- 「ATOK 2017」はディープラーニングで誤変換3割減、2月3日発売 -INTERNET Watch
- 「ATOK for Mac」の入力ミス修復率が35%向上、最新版をATOK Passportで公開 - INTERNET Watch
窓の杜
- ディープラーニングを採用した新変換エンジン搭載の「ATOK 2017」が発表 - 窓の杜
- ジャストシステム、次期「ATOK」を発表 ~ディープラーニング技術を活用して入力ミスを修正可能に - 窓の杜
Twitter
- なかのん&マジックさんのツイート: "ちなみに、ATOK 2011以上はTSFのTIPになっているので、安定して動作します。ただし、Win10ではIME周りの変更がまた入ってるので、ATOK 2015以上にした方が良いです(2011も試した限りでは使えていますが)。"
- なかのん&マジックさんのツイート: "@dalkyrie4g Win8以降でATOK 2010以前は64bit版アプリではまともに動作しないのを確認しました。Win7やx86版アプリでは問題無いのでWindows側の変更によるものだと思います。2011以降にアップグレードするか、Firefoxのx86版を再インストールするかですね。"
- Rockridgeさんのツイート: "Fx57:アクセシビリティサービス(ATOKインサイトを含む)が有効の場合、一部のWebページでハング状態が発生する問題を修正。 / “1321960 - Browser becomes hangs up and Windows…” https://t.co/wLfSO2ubVT"
- Piro/Linuxコマンド操作解説漫画連載中さんのツイート: "https://t.co/rGMU4O2FWW ATOKもAdobe製品もクラウド一本化、Google Homeを男声で喋らせるデモも後ろは当然クラウドで、スタンドアロンがあり得ない前提の「コンピュータは世界に5台だけで充分」な時代と感じるけど、ツールがオフラインで動かないっていうのは古い世代の自分には恐怖感や不快感がある"
- ATOKの買い切り型とPassport版各種の違い - 俺の作業デスク
- なかのん&マジックさんのツイート: "クラウドはこちらの都合よりもメーカー側の都合優先すぎて嫌だな。販売終了しても使える方法をちゃんと提供してくれるの?ってところが主に。"
- 一ノ瀬 いろはさんのツイート: "Adobe は用意してたりしますね。ライセンスサーバー止めるので認証不要版提供。… "
- なつき@Webデザイン日曜開催さんのツイート: "ATOKは、クラウドに接続できないと変換一覧ポップアップの右端にアイコンが出ている候補が表示されなくなるはずです。 余談ですが、夕方からaiboのクラウドサーバが落ちたらしく、aiboが一歩も動かなくなってクラウドの重要性をかみしめています…… "
- なかのん&マジックさんのツイート: "んんんんん? ATOK Passportって、古いATOK削除しないとインストールできない??? これはテストでむっちゃ困るんですけど。"
- なかのん&マジックさんのツイート: "なんかよく分からんな。インストーラのメッセージがバグってるかも? 削除しますか的なメッセージで「はい」にしないと進まないんだけど、通常のインストーラが起動してから聞いてくるのに対しては単に拒否できて先へ進める。しかも最初に聞いてきたバージョンは再度聞かれなかった。"
- なかのん&マジックさんのツイート: "いや、やっぱり、最初に聞かれて拒否できなかったATOK 2014だけ削除されてしまった。ATOKは後から古いバージョン入れられないから面倒だなぁってのと、そもそもPassportのインストーラが複数バージョンインストールしてる環境でテストしてなさそう?"
- なかのん&マジックさんのツイート: "とりあえず、これ、Passportのインストーラに関しては嘘っぽいので、修正した方が良いのでは。Passportのインストーラの後に来る、ATOKそのものっぽい方のインストーラは、パッケージ版と同じく、共存の選択肢あるけど。 https://t.co/dQGTTqvwj1"
- なかのん&マジックさんのツイート: "二つ以上のバージョンがインストールされていたら、最初に聞かれたバージョン以外は残せる模様。"
- なかのん&マジックさんのツイート: "単純にPassportのインストーラのバグなんじゃないのかな。ちなみにmacOS版も全く同じUIから強制アンインストールさせられたけど、共存不可なのは https://t.co/dQGTTqvwj1 に明記されてるんで、macOS用のコードが、Windows版でもビルドされちゃってるとか?"
- なかのん&マジックさんのツイート: "あれ? ATOK Passportだと、TIP名が"ATOK"になってて年号入って無いな。加えて、GUIDが{A38F2FD9-7199-45E1-841C-BE0313D8052F}だけど、これって今までのバージョンもこうだったんかな? もしそうなら、ATOK向けのGeckoのハックがまったく動いてなかったことになるけど。"
- なかのん&マジックさんのツイート: "Win10のInsider Build入れてるノートPCの方にATOKをインストールしたら、インストール済みのバージョンのアンインストールを拒否できた。ただ、メインの環境で拒否できなかったのは複数バージョン入ってるうち、2014のみ。こちらの環境は2017のみが入ってたのと、インストーラ自体が別物かも?"
- なかのん&マジックさんのツイート: "壊れて欲しく無いメイン環境の方から2014がアンインストールされてしまったのが本当に痛いなぁ。ATOKはより新しいバージョンが入っていると古いバージョンをインストールできないんで。"
- Makoto Kato ︎︎さんのツイート: "Firefoxのa11yの問題はATOK使ってて痛いほどわかるんだけど、あれに首突っ込んだら身体が足りないのでやってない。。。でもデッドロックの問題はいろいろバグ報告したけど"
- なかのん&マジックさんのツイート: "a11yが必要な理由がATOKのみだったら、a11y機能を無効化して欲しいぐらい。"
- なかのん&マジックさんのツイート: "一太郎についてるATOKって"ATOK FOR 一太郎2018"とかになるのか。ということはこれ、毎年個別のGUIDが振られていく訳か。誰かに教えてもらうしかないかな。"
- 箱あんこうさんのツイート: "そういや、ATOK を入れた状態でネットが不安定なところで作業していると、サーバーと繋がらなかったよっていちいちダイアログ出してきて、しかも選択を間違えるとブラウザ開いてきたりするのが最高にウザったいのよね。 まぁ認証とか大切なのはわかるんだけど、正直つらい。"
- なかのん&マジックさんのツイート: "おう……ATOK、PerMonitor DPIに対応してない?"
- なかのん&マジックさんのツイート: "デバイス間での辞書の同期や、変換候補を広辞苑で確認したりできるの、ATOKしかないんで、値上がっても私的にはまだ全然OK。サービスが無くなった場合のデメリットがはるかに支出を上回るケース。 / 月額制「ATOK Passport」が14~24円値上げ 6月分から - ITmedia PC USER https://t.co/b3sifb793I"
- 月額制「ATOK Passport」が14~24円値上げ 6月分から - ITmedia PC USER
- ATOKとMicrosoft IMEのショートカットキー比較
- Bug-org 1409155 ATOK 2006, ATOK 2008, ATOK 2009 and ATOK 2010 crash 64-bit version of Firefox on Win 8.1 or later and ATOK 2007 doesn't work fine with same environment - WebStudio
- 「ATOK for iOS」「ATOK for Android(買い切り版)」がサポート終了へ - ねとらぼ
- ついにiOS版ATOKキターーッ! 1500円でiOS 8以降対応 - ねとらぼ
Japanist
- なかのん&マジックさんのツイート: "次の商品を購入しました:富士通ミドルウェア 『Japanist 10』 via @amazonJP https://t.co/xvgtMx0ae1"
- なかのん&マジックさんのツイート: "来てみないと分からないけど、Japanist 10が出ると、親指シフトキーボードがある程度スマートに環境作れるようになるのでは?"
- なかのん&マジックさんのツイート: "親指シフトは、キーの入力複数個をまとめて一文字の入力としてるけど、あれがレスポンスを悪くするし、OSネイティブで処理される必要が出てくるしで、技術的には筋が悪いよね……"
- なかのん&マジックさんのツイート: "親指シフトキーボード(物理)を買ってあるけど、軽く1時間ほど練習して投げ出した。"
- なかのん&マジックさんのツイート: "Japanist 10入れてみたけど、案の定なTS_E_NOLAYOUT対策入れてないなーという感じの動作だ。"
- なかのん&マジックさんのツイート: "あと、アプリ上でJapanist 10の設定を開こうとすると、アプリがハングアップする(回復するパターンのほうが多いけど)。そして設定が開かない。スタートメニューから独立したアプリとして起動する分にはOK。"
- なかのん&マジックさんのツイート: "Japanist 10のキーバインディングの変更で、他のIMEの基本的なバインディングがプリセットとして用意されていないのは、乗り換えさせる気ゼロって感じだなぁ。"
- なかのん&マジックさんのツイート: "Japanist 10、一応確認したけど、TIP名は"Japanist 10"、GUIDは{E6D66705-1EDA-4373-8D01-1D0CB2D054C7}。縦書きにはちゃんと対応してる模様。"
- なかのん&マジックさんのツイート: "とりあえず、Japanist 10がこのままではFirefoxで使い物にならないので、ハックを入れるバグは立てた。たぶん簡単に修正できる。 https://t.co/XvKWgzA1VD #もずでぶ"
- なかのん&マジックさんのツイート: "よし、Japanist 10以外では目立ったTSFのバグはこれで一掃できたかな。"
- なかのん&マジックさんのツイート: "Japanist 10のためにハック入れたパッチ、仕方なく、他のIMEでも通るパスを修正する必要があったので、少しリスクが高くなってて、BetaへのUpliftをリクエストすべきか悩んでる。"
- なかのん&マジックさんのツイート: "まあ、Japanist 10ユーザからのバグ報告があったわけでもないんで、もういいかなって感じはしてるけど……"
- なかのん&マジックさんのツイート: "実際のバグ報告が無いんで、GeckoのJapanist 10対応は、59にupliftせずに60 (次のESR)から。TSFのバグにJapanistが引っかかってるって話だし / https://t.co/XvKWgzA1VD - [TSF] Candidate window of Japanist 10 positioned incorrectly and flicked (not aware of TS_E_NOLAYOUT issue) #もずでぶ"
MS
MS
IME Share
- IME Share (Windows)
- 続報: imeshare.dll —完結編— - イグトランスの頭の中
- IMEのドキュメントURLメモ - イグトランスの頭の中
- Mozilla for Windows x64 platform: How to get IME settings such as converted text color
知っておくと便利な機能
- 日本語入力(IME) の知っておくと便利な機能(1) – Windows & Devices 開発統括部
- 日本語入力(IME) の知っておくと便利な機能(2) – Windows & Devices 開発統括部
- 日本語入力(IME) の知っておくと便利な機能(3) | Windows Blog for Japan
- 日本語入力(IME) の知っておくと便利な機能(4) | Windows Blog for Japan
- 日本語入力(IME) の知っておくと便利な機能(5) | Windows Blog for Japan
Win10 AU, CU
- Windows 10 Anniversary Update 日本語入力 (IME) 関連の改善 | Windows Blog for Japan
- Windows 10 Creators Update 日本語入力 (IME) の改善 | Windows Blog for Japan
Win10 FCU
- Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Fall Creators Update 日本語入力 (IME) 関連の改善 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Fall Creators Update において、未確定文字列の確定タイミングが変更されました – JAPAN Platform SDK(Windows SDK) Support Team Blog
- IME ショートカット - マイクロソフト コミュニティ
- Microsoft IME Application Interface
- Third-party input method editors - Compatibility Cookbook
- Input Method Manager (Windows)
- Masaru Iritaniさんのツイート: "@yutakakn 横から失礼します、IME の開発者です。実は日本にも Windows の開発チームが有り、IME も日本語については日本のチーム (@msimejp) が担当しています。ローカライズに関しては、是非フィードバック Hub にてご意見をお寄せください。"
- 日本語入力(IME) の「クラウド候補」について | Windows Blog for Japan
- Windows 10 における日本語入力の変換精度向上への取り組み | Windows Blog for Japan
- Windows 10 Insider Preview ビルド 14986でお試しいただける日本語入力の改善点について | Windows Blog for Japan
- Windows 10 Insider Preview ビルド 15002 でお試しいただける日本語入力の改善点について | Windows Blog for Japan
- Windows 10 Insider Preview ビルド 16226 でお試しいただける日本語入力の改善点 - Windows Blog for JapanWindows Blog for Japan
- Windows_Japanさんのツイート: "最新 #WindowsInsiders ビルドの日本語入力では、入力そのままの予測候補とスペル修正された予測候補がすぐ区別できます。クエストをお試しいただき、フィードバックをお寄せください。 https://t.co/PC41BQBF0V https://t.co/WSkxL9fF4q"
- Windows 10 Insider Preview ビルド 17035 でお試しいただける日本語入力の改善点。女子高生 AI「りんな」による予測候補を追加 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Insider Preview ビルド 17063 でお試しいただける日本語関連の改善点について - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Insider Preview ビルドでお試しいただける日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Insider Preview ビルド 18262 の日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Insider Preview ビルド 18277 でお試しいただける日本語入力に関する改善点 - Windows Blog for JapanWindows Blog for Japan
- Windows 10 Insider Preview ビルド 18875 でお試しいただける日本語入力に関する改善点 - Windows Blog for Japan
- 【Chrome+MS-IME】変換確定(Enter)で入力中だった文字が消える不具合について(BackSpace→Enterで消える現象)
- Windows 10 における日本語入力の改善の取り組み - Windows Blog for Japan
- Windows 10 における日本語入力の改善の取り組み - Windows Blog for Japan
- キーボード日本-ImeOn/ImeOff の実装 | Microsoft Docs
TSF
MS
- ITfInputScope interface (Windows)
- Text Services Framework
- Text Services Framework (Windows)
- TSF Aware – Dictation, Windows Speech Recognition, and Text Services Framework.
- IME (Input Method Editor) と Text Services Framework のアクセシビリティ
- MSDN Magazine - July 2007 - Speak Up: Support Dictation with Text Services Framework
- 64-Bit Considerations (Windows)
- Makoto Kato ︎︎さんはTwitterを使っています 「macOSのtext replacementの機能ってOS側から適当なタイミングで現在のテキスト情報をアプリにリクエストしてそれ使ってると思ってたのだけど、そうじゃなくて、いちいちアプリがspellchecker呼べってことなの?それって。。。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Windows/TSFのautocorrectってTSFが勝手にやってくれるので (現在のテキスト情報はアプリがTSFに渡しているので勝手にできる)、同じような仕組みでmacOSでもやってるかと思ってたよ。なんだそれ」 / Twitter
Mozilla
- Firefoxのナイトリービルド、Text Service Framoeworkにデフォルト対応へ | スラド IT
- Masaru Iritaniさんのツイート: "@d_toybox 詳細な情報をいただきありがとうございます!担当者にもお伝えしました。初期調査では TSF に原因が有りそうだという話ですが、いただいた情報も踏まえて引き続き調査を進めます。"
- Bug-org 1204519 [TSF] Get rid of the hack for TS_E_NOLAYOUT issue with Google Japanese Input - WebStudio
- Windows 版 Nightly が TSF ネイティブサポートへ | Mozilla Developer Street (modest)
- Bug-org 848672 [TSF] Redesign focus and IME state handling of nsTextStore - WebStudio
- なかのん&マジックさんのツイート: "台湾のIMEのバグ対応でTSFの泥沼にハマってる。TS_E_NOLAYOUTがらみのバグの根元を、いい加減にWindows側とMS製の各国語IMEで修正していただきたい。"
- なかのん&マジックさんのツイート: "Google日本語入力がハマってるTSFのロック絡みのバグのために入れてるハックで、他の言語のMS-IMEの動作に合わせられなくなってるっぽくて(まだ完全に確信にいたった訳ではない)頭抱えてる。"
- なかのん&マジックさんのツイート: "とりあえず、最近のTSF周りの修正で得られた知見は、なんでか、ネイティブの中国語環境と、日本語環境に中国語のTIPをインストールしたのとでは、動きが全く同じではないという嫌すぎる事だ。"
- WindowsのIME API、TSFのTS_E_NOLAYOUT問題とは - WebStudio
- Masaru Iritaniさんのツイート: "ご指摘いただきありがとうございます。#WindowsInsiders Skip Ahead (RS5) ビルド 17643 以降では、GetTextExt() が TS_E_NOLAYOUT と E_INVALIDPOS を正しく返すようになりました。ご確認いただけましたら幸いです。… https://t.co/lV94WtXpid"
- なかのん&マジックさんのツイート: "おおおおおおおお。ありがとうございます。IMEのデバッグの仕方が分からないので直接テストすることはできませんが、こちらのハックを無効化して、各IMEの挙動がどのようになるのか、テストしてみます。… "
- Masaru Iritaniさんのツイート: "ありがとうございます。お恥ずかしながら私個人もまだコード上でしか修正を確認できていないので、実際の挙動として正しい修正になっていない場合はお知らせいただけますと大変助かります。… "
- なかのん&マジックさんのツイート: "むむむ。"Skip Ahead is now closed. If you select this option going forward, you will have your Windows Insider Program settings reverted." になっちゃってて、Skip Aheadを選択できなくなっていますね。そのままFastリングに来るのかもしれませんが。… https://t.co/Cbjf3f6iRK"
- Masaru Iritaniさんのツイート: "Skip Ahead は人数限定の早い者勝ちですので、早期に設定を変更されていない場合には選べなくなっています。件の修正は Skip Ahead のみ提供(= RS4 には残念ながら入らない)ですので、大変恐れ入りますが Fast リング への RS5 提供開始までお待ちいただきますようお願いいたします。… https://t.co/n97cuIh4UL"
- なかのん&マジックさんのツイート: "はい。VMの方をFastリングにして待機しています。また、結果の方をまとめたいと思いますのでお待ちください。… "
- Masaru Iritaniさんのツイート: "ありがとうございます!ご面倒をお掛けしますが、宜しくお願いいたします。… "
- なかのん&マジックさんのツイート: "大変遅くなりましたが、検証結果です。5時間ぐらいでテストからまとめまで行いましたので雑ではありますが、私の検証した範囲ではJapanist 10以外は非同期レイアウトに対応しているようです。 https://t.co/k9T5ylylTJ… "
- Windows 10のビルド 17643で、TS_E_NOLAYOUT問題が解決されたとのことなので検証してみた - WebStudio
- なかのん&マジックさんのツイート: "Japanist 10、なんで最後発で一番デキがアレなんだろうっていう謎な結果になってしまった。 / もずはっく日記: Windows 10のビルド 17643で、TS_E_NOLAYOUT問題が解決されたとのことなので検証してみた https://t.co/k9T5ylylTJ"
- なかのん&マジックさんのツイート: "Windows自体がバグってる上に、Firefoxぐらいしか非同期レンダリングを行うTSF-awareアプリなんて無いと思うんだけど、なんで各IMEベンダ、非同期でのUIの表示にこうも安定感のある実装できてるんだ??"
- なかのん&マジックさんのツイート: "正直、もっとボロボロな結果になると思ってた。"
- Masaru Iritaniさんのツイート: "詳細な検証をしていただきありがとうございます!修正が Firefox でも問題無く動作しているようで嬉しいです。Microsoft IME の挙動については担当者に報告いたしました。… "
- なかのん&マジックさんのツイート: "macOSのIME周りはundocumentedな事だらけだったり、バグ報告せざるを得ないものを見つけたりと、なかなかにアレでできるだけ関わりたくないな……"
- なかのん&マジックさんのツイート: "同じAppleのIMEがWebKitとBlinkで別の挙動を見せてくれたりしてて、本当に嫌過ぎて。"
- なかのん&マジックさんのツイート: "TSFとCocoaは、IMEからアプリに情報を問い合わせて、アプリからの結果でIME側が動作を決定するモデルになってるけど、このモデルってIME側にバグがあったり、IME側がアプリ毎に動作を変えてるとアプリ側でバグの修正に詰むんで、これから新しいプラットフォームでは絶対に採用していただきたくない。"
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「ChromeのTSFの実装見てると、そのインタフェースならシンプルにやれるんかい、みたいなのを見つけて、うぐぐってなったわ。別にパフォーマンスとかに影響しないから、互換性のためにこのままいくけど(IME側でハックされてたりすると壊れる系)。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「日本でアプリ側のTSF対応に関わった人は何人居てるんだろうか。ふと、疑問に。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「絶対、三桁はいかない気がする。」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「GeckoのOSKのコードが最新のWindowsで全く意味のないコードになってたことをやっと理解した。OSK表示するかどうかはTSFで判断してるのか (無効にするフラグはドキュメントにないけど存在する)」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「従来のOSKをキックするコードは全く動かなくて、UWPのAPIを使わないといけないっぽい。実装してみないとわからないが」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「Windowsのinputmodeの実装、noneは後回しにして、ほかのを直そう」 / Twitter
- Text Services Framework - Wikipedia
- Text Services Framework - Wikipedia
- Project Zero: Down the Rabbit-Hole...
- 上原 哲太郎/Tetsu. UeharaさんはTwitterを使っています: 「これ要するにMSCTFのプロトコルが腐ってる問題っぽいので問題の影響範囲が大きすぎてすぐには解決しないんじゃないかな… / “XP以降、20年存在していたWindowsの脆弱性をGoogleが発見 - PC Watch” https://t.co/d46WZ3LzqH」 / Twitter
- XP以降、20年存在していたWindowsの脆弱性をGoogleが発見 - PC Watch
- TSF を使う (2) - tsfapp - NyaRuRuが地球にいたころ
- TSF を使う (3) - WPF での UILess Mode - NyaRuRuが地球にいたころ
- IMEを使う(Windows: TSF編) - Qiita
- TSFに挑戦 - イグトランスの頭の中
- TSFに挑戦 (2) 表示属性 - イグトランスの頭の中
- kaya: IME開発者向けリンク集
- ■とある言語の開発記録II / TSFで日本語変換
- TSF を使う (1) - Windows Input Method の歴史 -... : Windows 8とWindows 8.1 互換性情報 リンクまとめ - NAVER まとめ
- TSF を使う (1) - Windows Input Method の歴史 - NyaRuRuが地球にいたころ
- はてなブックマーク - imeとtsfに関するkaorunのブックマーク
- Q's Nicolatter 8 [BETA TESTING] | Netsphere Laboratories
- 藤枝和宏 - ぱんなこった@佐鎮(@kfujieda) - Twilog
- C++ - TSFを利用して候補文字一覧を取得する | DIGI-CON 技術部
- ui/base/ime/win/tsf_text_store.h - chromium/src - Git at Google
- chromium/ime_input.h at master · adobe/chromium
- Makoto Kato ︎︎さんのツイート: "MicrosoftがChromiumに移行したおかげで、まぁこのバグを直す方法が公開されたのは、いいこと (前だと上手く行かなかったけど、たぶんWindows側のコードの修正もいろいろ行われているんだろうなと) https://t.co/HbCWlWYSCH"
- 958054 - TSF1 on windows 10 should use private input scope if we are in "incognito" or "guest" mode - chromium - Monorail
- Makoto Kato ︎︎さんはTwitterを使っています: 「ChromeのTSF周りのバグはGoogleのせいじゃなくて、Microsoftせいだしな。ChromeにTSF関連のパッチを投げたのがMicrosoftという意味で」 / Twitter
ショートカット
- Windowsのショートカットキー: IMEのショートカット
- 言語バーのショートカットキー | IME2003 | 初心者のためのOffice講座
- Microsoft IMEのショートカットをカスタマイズ | ものものモノローグ★ - 楽天ブログ
- MS-IMEの入力モードをキーボードだけで操作したい - MS-IMEの入力モードをキー... - Yahoo!知恵袋
- IMEショートカットメニューを表示するショートカットキー−Ctrl+変換キー:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
- Microsoft IME スタンダートのキーボードショートカットキー設定 | WEBサービス創造記
- Windows で IME をキーボードショートカットキーで切り替えられないとき | すぐに忘れる脳みそのためのメモ
- 日本語入力変更のショートカットキー−Ctrl+Shift:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
- ショートカットキーの活用|情報システム課| 東京経済大学
- 日本語入力ソフトの切り替えをショートカット操作で行う - 日経トレンディネット
- キーボードから操作するショートカットキー
- [Windows 10] USキーボードで日本語IMの全角と半角を切り替えるショートカット一覧 - Qiita
- 日本語変換の効率アップ! ファンクションキーやショートカットキーの活用法 - いまさら聞けないWindows 10のTips - 窓の杜
- なかのん&マジックさんのツイート: "Winキー + / で再変換とかわしゃ知らんかったぞ!"
- なかのん&マジックさんのツイート: "Winキー + iで設定なのか。"
- なかのん&マジックさんのツイート: "PrintScreen系の一覧を確認したかったけど、思わず色々と覚えた(そして、PrintScreen系のショートカットキー一覧が見つからない)"
- Windows10で日本語入力の切り替えストレスが減る設定方法 | ライフハッカー[日本版]
窓の杜
- 次期Windows 10は日本語に関連する変更も盛りだくさん 〜「Insider Preview」Build 17063 - 窓の杜
- IMEで変換できない漢字は単語登録を! [Ctrl]+[F7]のショートカットでも登録可能 - いまさら聞けないWindows 10のTips - 窓の杜
- IMEで間違って登録された単語が毎回変換候補に表示される! どうやって修正すればいい? - いまさら聞けないWindows 10のTips - 窓の杜
- IMEで( ´艸`)こんな顔文字を入力したい - いまさら聞けないWindows 10のTips - 窓の杜
- IMEの変換モード切り替えで画面中央に“あ”とか“A”とか表示されるのが邪魔! - いまさら聞けないWindows 10のTips - 窓の杜
- 「Windows 10 Creators Update」では日本語入力も改善 ~Microsoftが強化点を案内 - 窓の杜
- 1文字目は早すぎる! IMEの予測候補は3文字目くらいからでOK - いまさら聞けないWindows 10のTips - 窓の杜
- 英語の会社名や製品名をIMEで自動的に半角英数へ変換したい! ~小文字から始まる英字をすばやく入力する方法 - いまさら聞けないWindows 10のTips - 窓の杜
- 文字入力のユーザー辞書をバックアップしておきたい! - いまさら聞けないWindows 10のTips - 窓の杜
- 辞書にない最新フレーズを入力したい! クラウド候補を活用する - いまさら聞けないWindows 10のTips - 窓の杜
- 日本語変換の効率アップ! ファンクションキーやショートカットキーの活用法 - 窓の杜
- なかのん&マジックさんのツイート: "FirefoxやThunderbird共に一時期のトップクラッシュはこの辺だったし、なかなかに設計に問題抱えてる感じなんかな。 https://t.co/pg0iAQRrts"
- Windows 10環境で日本語入力中に「Microsoft Office」がクラッシュする不具合 - 窓の杜
- 「Windows 10 RS5」に機械学習のタイピング支援、フォントのユーザーインストールも可能に - 窓の杜
- 「Windows 10 19H1」Build 18242がリリース ~日本語IMEに新しい要素を投入か - 窓の杜
- 「Windows 10 19H1」では日本語入力システムの改善も - 窓の杜
- “(╯°□°)╯(┻┻”も簡単に入力 ~「Windows 10 19H1」の絵文字パネルは日本の“Kaomoji”をサポート - 窓の杜
- 新しいIMEがフィードバックを反映させて復活 ~「Windows 10 19H1」Build 18305 - 窓の杜
- 新設計の日本語IMEが利用可能に ~「Windows 10 20H1」Build 18875が“Fast”リングに - 窓の杜
- 「Windows 10 20H1」Build 18941が“Fast”リングに ~日中に続き韓国語IMEも近代化 - 窓の杜
- 新設計の日本語IMEをさらに改善 ~「Windows 10 20H1」Build 18950が“Fast”リングに - 窓の杜
- Windows 10の日本語IMEに大きな改善が目白押し ~Macっぽい入力モードの切り替えも可能に - 窓の杜
PC Watch
- Windows 10プレビュー版IMEが改良。Backspaceの使い方で予測変換がより賢く ~変換状態からのキーワードWeb検索もサポート - PC Watch
- Windows 10プレビュー版は日本語フリック入力対応。さらにAIがネコを認識 - PC Watch
- 次期Windows 10に女子高生AI「りんな」がIMEとして実装 - PC Watch
- Windows 10 RS5、ソフトウェアキーボードがAIで賢く。スペル修正や予測入力可能に - PC Watch
- 次期Windows 10で日本語IMEが刷新へ - PC Watch
- Windows 10プレビュー版、タッチキーボードにキー幅の自動調整機能 ~次に押されるキーを推測して入力ミスを軽減 - PC Watch
- 【山田祥平のRe:config.sys】Ctrl+スペースで行こう - PC Watch
- Windows 10プレビュー版に新しい日本語IME。安定性やゲーム互換性などが向上 - PC Watch
- Windows 10プレビュー版のタスクマネージャーでドライブがSSD/HDDかがわかるように - PC Watch
- Windows 10プレビュー版、日本語IMEのキー割り当てが「設定」画面で可能に - PC Watch
- 変換/無変換キーが消えた「Surface Laptop Go」。Mac仕様のIMEオン/オフで便利に ~日本マイクロソフトが13日発売のSurface Pro Xとともに特色を紹介 - PC Watch
- Windows 10 October 2020 Updateでも日本語IME周りの不具合が継続? Microsoftが回避策を提示 - PC Watch
NyaRuRuが地球にいたころ
- Windows の IME を変換エンジンとして使う - NyaRuRuが地球にいたころ
- 辞書が壊れない仮名漢字変換エンジンの作者を雇うのは案外に難しいのかもしれない,という話 - NyaRuRuが地球にいたころ
- 信頼できる書き込み・読み込み - NyaRuRuが地球にいたころ
- HTML5 Forms の type 指定がデスクトップ IMEに影響するという話 - NyaRuRuが地球にいたころ
- Windows 10 Insider Preview Build 14332 実験ノート: ブラウザと IME のプライベートモード連携 - NyaRuRuが地球にいたころ
- Metro スタイルアプリケーションと IME - NyaRuRuが地球にいたころ
- 保護モードと IME - NyaRuRuが地球にいたころ
- あなたが漢字変換候補を覗き込むとき,Google もまた選択された候補を覗いている - NyaRuRuが地球にいたころ
- 数式入力パネルとアプリケーションを連携させる 2 つの方法 - NyaRuRuが地球にいたころ
- チューニングと過学習 - NyaRuRuが地球にいたころ
- 「開発の主体」って何だろう? - NyaRuRuが地球にいたころ
- 2012年やったこと - Chromium 編 - NyaRuRuが地球にいたころ
- 2013年やったこと - Chromium 編 - NyaRuRuが地球にいたころ
- Windows ゲーム環境と日本語入力 (0) - NyaRuRuが地球にいたころ
- Windows ゲーム環境と日本語入力 (1) - NyaRuRuが地球にいたころ
- Windows ゲーム環境と日本語入力 (2) - NyaRuRuが地球にいたころ
- Windows ゲーム環境と日本語入力 (3) - NyaRuRuが地球にいたころ
- Windows Vista における IMM32 API / Message の変更と互換性に関する影響 - NyaRuRuが地球にいたころ
- Windows Vista IMM32 関係まとめ - NyaRuRuが地球にいたころ
Twitter
- Yutaka Hirataさんのツイート: "日本語入力をオンにした状態でスペースキーを打つと、空白が全角で入りますが、SHIFTキーを押しながらスペースキーを打つと、空白が半角になります。いちいち、日本語入力をオフにしなくてもよいのでおすすめです。ATOKとMicrosoft IMEのいずれでも使える技です。 https://t.co/F89tt5gtOC"
- takimuraさんのツイート: "IMEが原因でVivaldi落ちたっぽい… "
- なかのん&マジックさんのツイート: "WindowsではIMEはアプリ内部にロードされて動くんで、IMEがクラッシュした場合も苦情がアプリに行くの、結構不条理。"
- なかのん&マジックさんのツイート: "昔、OS XでIMEの機能を呼び出して、そのリアクション中に同じ機能を呼び出すとIMEのプロセスがクラッシュするというバグを見つけたけど、そうするとOSを再起動するまでIMEがどのアプリでも使えなくなってた。そういう意味ではWindowsのやり方の方が正しいって気もする。"
- なかのん&マジックさんのツイート: "@inasoft_ayacy バグの内容的にも、タイミング的にも、 https://t.co/4Po30xSJhp っぽいです。Creators UpdateのMS-IMEにはちょっとヤバいクラッシュバグがあったので、その可能性を減らせないか試すために、MS-IMEがアクティブな間はIMCを無効化していました"
- なかのん&マジックさんのツイート: "むう。Win10 RS4に入る英語キーボードの単語のsuggest機能、Firefoxだと、候補の表示と操作まではうまくいくんだけど、最後の確定時にキャレット位置に挿入されるだけになっちゃうな。 #もずでぶ"
- なかのん&マジックさんのツイート: "Windowsをタブレットモードで初めて使ってるけど、日本語入力ひどいな。何でローマ字入力なの。ローマ字入力とかかな入力とか気にしなくて良いはずのデバイスなのに。"
- なかのん&マジックさんのツイート: "いやATOKじゃなくてMS-IMEなら多少ましか。でも、正直使えるレベルじゃないな。"
- ✨私がういにゃんだ✨さんのツイート: "DJやすんでる間にTraktorが日本語検索できるようになってた・・・・・・・・・・・・・! 2.6.7 -> 2.11.2をキメた… "
- なかのん&マジックさんのツイート: "macOS版とWindows版とあるみたいだから、macOS版の話なのかな。Windowsって、基本的にはIMEに「わざわざ」対応しなくても、IMEが「とりあえず」使えるアプリが作れてしまうっていうのが未だに他のOSにも真似できていなくて凄い。というか、あんな互換性の鬼、そうはいない。"
- なかのん&マジックさんのツイート: "Nightlyユーザでも結構、ATOK 2011とか、MS Office IME 2007とか相当古いサードパーティーのIMEを使ってるもんなんだなぁ。あと思ってたよりもMS-IMEユーザが多い。"
- なかのん&マジックさんのツイート: "Windows 10 October 2018 Updateで修正されたTS_E_NOLAYOUT周りの最終確認と、Nightlyの現状への最適化もやらないといけなんだけど時間が……"
- Masaru Iritaniさんのツイート: "これ、新しい #msimejp で一番お気に入りの機能です。これまでもキー設定を頑張れば実現可能ではありましたが、スイッチ一つで簡単に設定できるようになりました。 #WindowsInsiders… "
- Masatoさんのツイート: "あれ、以前のIMEこんな設定項目あったっけ 使い心地を試してみよう (build 18277)… "
- 渋川よしきさんのツイート: "うおーーーー!IME周りの実践的なコードが読み放題だ!WinFormsのOSS最高!MSDNでもVista時代に作られたサンプルとか削除されて古い形式のAPIしかネットに詳しい情報がなかったりしたのでこれは良い。 https://t.co/Y0ByT6KH4n"
- 藤枝和宏 - ぱんなこった@佐鎮さんのツイート: "WinFormsのソースなんてreference sourceで前から読み放題だったのだが… https://t.co/3xwjodWZLv"
- Reference Source
- 2018年12月5日 Microsoft,「Windows Forms」などのUIフレームワークをオープンソースに,「.NET Core 3.0」プレビュー版も:Linux Daily Topics|gihyo.jp … 技術評論社
- 米Microsoft、WPFおよびWinForms、WinUIをオープンソース化 | OSDN Magazine
- なかのん&マジックさんのツイート: "@msdmairitan お久しぶりです。検証のために今環境を整えている最中ですが、TSF and/or MS-IMEの動作が変わってしまっているようです (https://t.co/quWVy94EZa)。ITfKeystrokeMgr::KeyDown()がasync処理になったか、pfEatenがFALSEを返すようになったかのどちらかかなと睨んでます。とりいそぎ。"
- なかのん&マジックさんのツイート: "分かりました。値がおかしくなるの自体はGeckoのバグなのですが、動作が変わってしまった原因はImmGetVirtualKey()の挙動が変わっているようです。1809ではTSF/TIPがRequestLock()を呼び出している間はVK_PROCESSを返しますが、19H1では生のVKを返してくるようです。意図的な変更でなければご注意を。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "現在のForegroundAppのIME on/offを知るには、GlobalHook + IMM系API発行しかないのかしらん?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "UNIX系だとIM系のツールバーがカーソルそばにあるから、現在のIME status 把握のために、タスク通知領域を見る、みたいな視線移動が不要と。"
- なかのん&マジックさんのツイート: "あー、MS-IMEのInputScopeのアレか。"
- 江永島子さんのツイート: "やっぱchromeで新しいタブ開いて検索窓に入力しようとすると 勝手に半角になってしまう。 前はこうじゃなかったような。"
- yasu0796さんのツイート: "Chrome 75 において手元の環境でも再現することを確認しました。 私の方からも不具合を報告しました。 #gHelp… "
- マイクロソフトサポートさんはTwitterを使っています: 「#Windows10 の MicrosoftIMEで誤った変換をしてしまい、予測候補に毎回出てくるようになってしまった...。 そんな時は変換候補画面で消したい候補を選びCtrl+Deleteキーを押せば削除できます。 #MSHelpsJP https://t.co/zil7INxmsH」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「なんと!これは助かる! > できたこと > WM_IME_ 及びその他のウィンドウメッセージを収奪 これが出来るのか…後でソースを解析しよう。」 / Twitter
- (1) 精廬 幹人さんはTwitterを使っています: 「WindowsのEmacsにIME patchを当てるのが超面倒臭くてdynamic moduleで作った後、26.1のcc-modeが激遅で27.0.50に上げて10ヶ月masterに追従させたセルフテストでノーSEGVでした事をご報告します。 https://t.co/e1UjycJEAB」 / Twitter
- maildrop/w32-imeadv: IMM32 dynamic module for Emacs on Windows
- 精廬 幹人さんはTwitterを使っています: 「毎回パッチのコンフリクト解決するの嫌なの なお、dllの暗黙的依存関係の解決も超めんどくさかったのでスクリプトもございます。 https://t.co/j9YVaip1gH」 / Twitter
- maildrop/emacs_dependency_resolver: emacs dependency resolver
- Makoto Kato ︎︎さんはTwitterを使っています 「Windows 10 21H2のソフトウェアキーボード、Android 10以降と同じように画像ファイルを入力できる機能が付いてるんだけど、drag&dropぽい動きで挿入されるからEdgeだとページ推移になって笑った」 / Twitter
- 文字入力で「イラっ」とする6つの問題とその解消法(1/2) - FMVサポート : 富士通
- 「ローマ字入力」と「かな入力」を切り替える|パソコン|サポート・お問い合わせ:シャープ
- 日本語入力のOn/Off切り替えキーを変更する:Windows(ウィンドウズ)の使い方-IME 日本語入力システム
- Microsoft Windows 7 - 入力言語の切り替えを行うキーを変更する方法 | HP®カスタマーサポート
- 日本語入力の切り替えはトグルじゃダメ、の件 - DTP Transit
- ASCII.jp:Windows 10の日本語入力は使いにくい?|ズバッと解決! Windows 10探偵団
- IMEを無効にすることとスクリーンキーボード - イグトランスの頭の中
- MS-IMEとHTML5のinput[type=xxx] - Qiita
- Gecko1.8相当製品において修正したバグ - WebStudio
- IMEを制御する方法
- IMEがおばかと諦めてませんか? - Windows 2000 Blog
- Windows 10のIME、郵便番号辞書の更新はどうなっている?:山市良のうぃんどうず日記(142) - @IT
- [半角/全角]キー不要に? WindowsのIME切り替えがMac方式に - ITmedia NEWS
- なかのん&マジックさんのツイート: "トグル形式って頭の中で全ての状態を管理できていることが前提になるんで、ime-mode: active;とかで簡単に問題が出てくるんだよな。なので、どっちかのモードへの切り替えボタンが独立して存在するのがUI的にはすごく正しい。"
- なかのん&マジックさんのツイート: "半角/全角キーとか、カタカナ/ひらがなキーとか、Windowsネイティブイベントのカオスっぷりを知っていると、この辺どうにか綺麗になっていただきたい(たぶん互換性維持のためにしないとは思うけど)。"
- なかのん&マジックさんのツイート: "一応、各OSでのIME関連キーのKeyboardEvent.keyのマッピングはこんな感じ。ややこしいことこの上ない。 https://t.co/B3MWD5BBxx #もずでぶ"
- NativeKeyToDOMKeyName.h - mozsearch
- なかのん&マジックさんのツイート: "そもそも今のJISキーボードの日本語入力キーって、一体何にあわせて設計された結果なんだろう。どの現在のIMEもラベルの通りの機能をデフォルト設定にはしていないよね。"
- 1549394 - Potential privacy leak from Win10 keyboard autocomplete of data entered in Private Browsing
- Makoto Kato ︎︎さんはTwitterを使っています: 「GtkInputHintsとか見てもIMEで履歴を学習しないモードのための値がなさげなので、とりあえずリクエストした https://t.co/owjFCZmFzY」 / Twitter
- RFC: Add new enum value for privte mode (not learn personal information for input method) to GtkInputHints (#2261) · Issues · GNOME / gtk · GitLab
- Windows 10のアラビア語のキー配列 - 七誌の開発日記
- won't fix: IS_PRIVATE on Windows 10 20H1
- Windows 10 20H2にアップデートしたら、Microsoft IMEが消せなくなったので解決してみた | しょぼんブログ
増井俊之
- 略歴 / CV - 増井俊之
- masui (Toshiyuki Masui)
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「なんでみんなIMEを自作しないの?」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「MacのIMEだってChromeOSのIMEだって500行ぐらいで作れるのに。ソースも辞書も公開してるから真似してほしい...」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「キーボードは自作するのにIMEは自作しないというのはヘンだろう」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「私のGitHubにはソースがいろいろ置いてある。辞書はScrapboxで公開してる。 https://t.co/hiDUxbFd26」 / Twitter
- Gictionary
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「私が使ってるアルゴリズムはこういう感じ。何年もこれで生活してるし、このテキストもこれで書いている。 https://t.co/JVvFg37zx3」 / Twitter
- 接続辞書と日本語入力 - 増井俊之
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「何度も言うけど、普通のMacアプリケーションのinfo.plistを書き換えてMacのIMEにすることができる。ChromeOSの場合はChrome拡張機能でIMEを作ることができる。いずれにしてもとても簡単なので試してみて損は無い。」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「昔はMacのIMEを作るのは超大変だったと思うのだけど、IMKitというライブラリが出てから簡単になって、それをRubyで使えるようになって超簡単になった。それをずっと使ってたのだけど、サポートが無くなったので困ってるのであった... RubyでなくてもIMKitが使えるスクリプト言語があればいいんだけど。」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「Catalina時代のらくらくIME作成法、みたいなのがわかればそれで満足かも」 / Twitter
- 𝘮𝘢𝘴𝘶𝘪さんはTwitterを使っています 「もう一度言っておくと、MacでもChromeOSでも私は自作の500行IMEでずっと暮らしており、それで全然問題はありません。連文節変換なんて要らなかったんや!」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「変な挙動のIME増えると死ねる……特にCocoaとTSF。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「Android APIは知らないけど、CocoaとTSFでは、アプリとIMEが共に、同じアプリ内の別のコンポーネント同士かのように動くので、どちらかが他の製品と極端に違った動作をすると、ハックを入れないといけなくなり、その原因を修正すると、そのハックが今度は邪魔になってバグったり。」 / Twitter
- なかのん、ダンベル何キロ持てる?(Masayuki Nakano)さんはTwitterを使っています 「なのでAPIのドキュメントで非常に細かく「どうあるべきか」を定義しておいて欲しいんだけど、特にCocoaの方はその辺が全くドキュメント化されてないと良いレベルで。」 / Twitter
- 予測入力の弊害 - 増井俊之
- 曖昧検索asearch - 増井俊之
SKK
- まちカドおるみんさんはTwitterを使っています 「形態素解析しないし辞書から愚直に単語を自分で選ぶだけだから変換精度などというものは SKK にないのでは。仮に悪かったとしたら辞書から適切な変換を選べなかった/あるいは適切な送り仮名挿入ができなかった入力者に帰結する問題ではなかろうか」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「私は「mozc で z と他のキーを複合させて記号を短縮入力できるのは SKK などに先にある機能だと知ってしまった?じゃあ SKK も使うしかないよね」という謎理論を真に受けて爾来 SKK ユーザーです。@tadsan って人のせいです。」 / Twitter
- にゃんだーすわんさんはTwitterを使っています 「@atpons もともとはオムロンのWnnが由来でegg(tamago)経由でEmacsに入ってSKKに実装されてWindowsに持ち込まれたあとSKKIMEの作者がGoogle日本語入力に実装してmozcになったのではないかと臆測しています。」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@atpons @tadsan Canna とかで .canna に Lisp 書いて同等機能を実現する例なども当時あったようなので、わりと当時良く知られていた key combo っぽそう」 / Twitter
- スマートコンさんはTwitterを使っています 「z で記号変換できるのめっちゃ便利だし、変換しないひらがなはそのまんまダーっと入力できるので思考に近い速さで日本語が打てるので SKK 以外無理(漢字直接入力は帰って」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「あと再帰的かつ on-the-fly の辞書登録、/ 入力での abbrev 変換モードが楽すぎて好き。abbrev 変換で abbrev や英単語をカタカナ音写に変換する本来の用法より、アクセント記号やキリル文字、ギリシャ文字とかをラテン文字から変換するのに使うほうが多いけれど。」 / Twitter
- Kazuo MoriwakaさんはTwitterを使っています 「@kotatsu_mi 現状のSKKからUIをおおきく変えない範囲でできそうな工夫を考えてみると「訪問先からの"きしゃ"」みたいなときに手前の文脈から"きしゃ"の変換候補の並び順を変えるとかはできるかもしれない」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「@moriwaka 最近の SKK 実装だと豫測変換機能を入れ込んでたりもします」 / Twitter
- Kazuo MoriwakaさんはTwitterを使っています 「@kotatsu_mi おお、そうなんですね!」 / Twitter
- まちカドおるみんさんはTwitterを使っています 「original や DDSKK はほぼ使ったことがないのだけれど、skk.vim には何度か救われた」 / Twitter
- 高精度に漢字変換できるSKK辞書を作った(四角号碼、正假名) | κeenのHappy Hacκing Blog
- κeenさんはTwitterを使っています 「SKKでギリシャ文字打つときは/alphaでTeXでギリシャ文字打つときは\alphaなのけっこう混乱するな」 / Twitter
- k0kubunさんはTwitterを使っています 「@blackenedgold /alpha 初めて知った (ので混乱してなかった)」 / Twitter
- κeenさんはTwitterを使っています 「@k0kubun κeenを入力するときに毎回必要になる」 / Twitter
- yoh2さんはTwitterを使っています 「ところで SKK さえあればいい、ではなく数ある IME から SKK を選んだ、なんだよな。 ついでに言うと Linux デスクトップ環境では fcitx の SKK も ibus の SKK も手に馴染まず、uim の SKK がいい、となってる。」 / Twitter
- yoh2さんはTwitterを使っています 「fcitk の SKK や ibus の SKK が馴染まないというより fcitk や ibus が馴染まない (´・_・`)」 / Twitter
- κeenさんはTwitterを使っています 「ぎゃーぎゃー言ってないで読むか… https://t.co/RtmIJ0cXVy」 / Twitter
- uim/uim: A multilingual input method framework
GIGAZINE
- Googleの新たな自然言語処理モデル「ALBERT」はどのように進化したのか? - GIGAZINE
- 「AI関連ソフトウェアの輸出に制限をかける」とアメリカ政府が発表 - GIGAZINE
- 無料で機械学習やデータ処理の流れを簡単に可視化してくれるワークフローツール「Flyte」を触ってみた - GIGAZINE
- 実際のところ「AIが表情から感情を読み取る」ことは可能なのか? - GIGAZINE
- AIが人間の表情から感情を読み取る「感情検出技術」はなぜ危険視されているのか? - GIGAZINE
- Googleの新たな自然言語処理AI「T5」の特徴とは?実際にAIとクイズで対決も可能 - GIGAZINE
- ローマ教皇がMicrosoftやIBMと共同で発表した「AIの倫理に関する呼びかけ」とは? - GIGAZINE
- 「差別をAIに植え付ける」としてMIT研究者らが大規模なデータセットをネットから完全削除 - GIGAZINE
- Googleが「知らない言語」も翻訳処理ができてしまう言語モデル「LaBSE」を発表 - GIGAZINE
- ゲームパッドからのテキスト入力を最適化する手順をエンジニアが公開 - GIGAZINE
- Microsoftの量子コンピューター構築のカギだった「マヨラナ粒子」を観測したという論文が撤回される - GIGAZINE
- 量子コンピューターに関する論文が続々と撤回されている理由を「マヨラナ粒子」の研究者が解説 - GIGAZINE
- 2000種類以上ものアフリカの諸言語を機械翻訳可能にするオープンソースプロジェクト「Masakhane」 - GIGAZINE
- AIがリスクとコストを事前に考慮して強化学習を行うためのツール群「Safety Gym」をOpenAIが発表 - GIGAZINE
infoQ
- Agile Igniteを使用した継続的ディープラーニング - Denis Magda氏の講演より
- 説明可能なAIに関する調査結果を研究者チームが発表
GitHub
- hiroshi-manabe/ngram-converter-cpp: Kana-Kanji (and vice versa) converter using N-gram data (C++ version, dictionary data included)
- tmu-nlp/simple-jppdb: A paraphrase database for Japanese text simplification
- 日本声優統計学会
- libhangulに韓国の人名用漢字をほぼ全面追加 | yasuokaの日記 | スラド
- choehwanjin/libhangul: libhangul
- WorksApplications/Sudachi
- zhezhaoa/ngram2vec
- deton/tsf-tutcode: Kanji Direct IME for Windows
- uim-tutcodeで後置型かな漢字変換(連続するひらがなを対象に最長一致)
- Shiki Okasakaさんのツイート: "tsf-tutcodeをローマ字入力やかな入力用につかってみると、 ・ひらがなを直接入力できるというは能率がよい、 ・後置型変換で最長一致のときは、まぜがきではなくて、直前のひらがなの部分に限定したい、 ・従来のIMEから後置型変換への移行は別にむずかしくない、 といった感想。"
- Shiki Okasakaさんのツイート: "tsf-tutcodeがおもしろいのは、 『しろうとむけワープロの登場を期待したいですね。』 と、梅棹さんのようにかきたいときに、ふつうのIMEだと、 『素人向けワープロの登場を期待したいですね。』 になりがち。それが、 https://t.co/nqprBgjY22"
- 不一致シーケンスが後置型変換開始キーで確定された時に変換対象外になるバグ修正 · deton/tsf-tutcode@32301e8
- esrille/ibus-replace-with-kanji: Replace with Kanji Japanese input method for IBus
- Shiki Okasakaさんのツイート: "EDICT2ファイルからibus-replace-with-kanji用のカタカナ辞書を生成して、ひらがなからカタカナ語に置換変換できるようにしました。 https://t.co/TB0Y23oQ5U"
- Shiki Okasakaさんのツイート: "ibus-replace-with-kanjiでは、辞書ツールもSKK辞書からrestrained.dicを生成するように書きなおしました。 https://t.co/PBA3Y1etnq"
- Shiki Okasakaさんのツイート: "ibus-replace-with-kanjiで和語の用言も必要であれば漢字で入力できるようにしました。※ 和語は「かな書き」を好む傾向とのことで、常用漢字表内でも弄ぶ・遡る等は「ひらがな優先」いうのが『NHK漢字表記辞典』流。 https://t.co/rmpclFO57r"
- yoriyukiさんのツイート: "Pythonで書かれたオープンソースかな漢字変換エンジン「中山道」をリリースしました。普通に統計的言語モデルを使っています。ソースは辞書がついてこないので、バイナリをダウンロードしてください。 https://t.co/lAP330vJe2"
- Release Version 0.1.0 (鴻巣) · yoriyuki/nksnd
- Shiki OkasakaさんはTwitterを使っています: 「「ひらがなIME」のウェブページをつくりました。総ルビ。原稿は、「ひらがなIME」と「ふりがなパッド」をつかって、総ルビのマークダウンでかいています。それをPythonでHTMLにかきかえています。リポジトリには、原稿やスクリプトごとおいてあります。 https://t.co/Wbq8IlwloO」 / Twitter
- はじめに ― ひらがなIME
- Shiki OkasakaさんはTwitterを使っています: 「「ふりがなパッド」v0.1.0 をリリースしました。 Fedora、Ubuntu、Raspbian用のソフトウェア パッケージを用意しました。「日本語 漢字置換インプット メソッド for IBus」v0.6.0とくみあわせて利用してください。 https://t.co/NmPoD1HSY6 https://t.co/zeJFxBpbiA」 / Twitter
- Release furiganapad-0.1.0 · esrille/furiganapad
- Shiki OkasakaさんはTwitterを使っています: 「ふりがなをふった漢字のおわりまでカーソルを移動して、CTRL-Tをおすと、ひらがなにもどせます。そこで変換キーをおせば、またいつでも漢字に変換できます。」 / Twitter
Wikipedia
- 形態素解析 - Wikipedia
- POBox - Wikipedia
- 日本語入力システム - Wikipedia
- 修飾キー - Wikipedia
- フリック入力 - Wikipedia
- トライ木 - Wikipedia
- オンライン整数列大辞典 - Wikipedia
- ロジバン - Wikipedia
- Lojban - Wikipedia
- 湯桶読み - Wikipedia
- 重箱読み - Wikipedia
- Control key - Wikipedia
- コントロールキー - Wikipedia
Qiita
- glfwマルチプラットフォームでのIME対応の困りごとまとめ - Qiita
- マルチプラットフォームでIME対応させたいメモ - Qiita
- ニューラルかな漢字変換 - Qiita
- 未踏の応募資料を公開します 【統計的かな漢字変換】 - Qiita
- 理工系俗語辞典 - Qiita
- Windowsのvimで挿入モードのIMEをデフォルトオフにする - Qiita
Twitter
@d_toybox
闇
- 金具 as a 産廃さんのツイート: "IME周りはどうやら闇が深すぎて、普通に対応するだけでアプリ側が細工しまくりなイメージがすっかり刷り込まれてしまったので、ユーザが別の細工を入れたらうまく動作する方がおかしいくらいかもしれないな。"
- 道化師さんのツイート: "Chrome だけ、 IME 絡みの細工がうまく動作しないからその対策してたら Chrome 本体の挙動がおかしくなった。 Chrome さん、 IME 周りのハンドリングがアホっぽい。"
- 一ノ瀬 いろはさんのツイート: "IME 周りってかなりの闇という印象。 IME 側もアプリ側も。"
- なかのん&マジックさんのツイート: "だって、GeckoのIME周りの実装の面倒見て、10年以上給料貰えるぐらいですから。"
- なかのん&マジックさんのツイート: "いぐざくとりぃ…… https://t.co/kkghv2DgrK"
- 金具 as a 産廃さんのツイート: "なんとなくTL眺めてる限りでは、それぞれの"失敗"に対してIME側がそれぞれ異なるアプローチで修正をしかけていて、それらに対して更に対応を強いられるようなことがあるらしいようなイメージがある。"
- 道化師さんのツイート: "IME周りって別にそんな闇々してないと思うんだけどなぁ。単に IME ?なにそれ?極東の連中はそんな面倒臭いモノ使ってテキスト入力してんの?って感じのIMEに対する理解が薄い連中が絡んで失敗やらかしてるだけなんじゃないの?"
- なかのん&マジックさんのツイート: "それ、日本人がメンテしてても日本以外のIMEユーザにそう思われてると思うよ。"
- ⚓そうだな㌠⚓さんのツイート: "MS-IMEとATOK、GoogleIMEの各バージョン毎の動きの違いとか全然違ったりするからIMEは大変だと思う。(古いIMEだとTSFではなくIMMで実装されててWindows8.1以降Firefoxでクラッシュするとか)"
- なかのん&マジックさんのツイート: "TSFになってから、一回、エラーを返すとヘソを曲げてTIP (IME)が動かなくなるとか多々あってですね。色々とやってるんですわ、色々と。"
- なかのん&マジックさんのツイート: "読むとタノシイヨ? / TSFTextStore.cpp - mozsearch https://t.co/EEGhlUyv29"
- なかのん&マジックさんのツイート: "この上にまだ、e10sでcontent process側での非同期更新をTSFTextStoreから隠蔽してるクラスが居たりするからね?"
- なかのん&マジックさんのツイート: "ちなみに、こんだけ実装が大きくなってても、WinXPでは全然まともに動かなかったからね……"
- なかのん&マジックさんのツイート: "特に、Natural Input、てめぇだ。"
- なかのん&マジックさんのツイート: "@cobodo あ、そういえばここの、"However, this is fixed on Win 10."っての、当時のプレリリース版では修正されていたっぽいものの、現存しているはず。"
histric-1
- なかのん DAYS''さんはTwitterを使っています: "ちなみに、GeckoはIMEからたとえ意図的にASCIIのコントロール文字が未確定文字列に混入してても、これを無視して(無いものとして)処理するようになっています。"
- なかのん DAYS''さんはTwitterを使っています: "そもそもWindowsだとCtrl+AltはAltGrなのでショートカットキーとして使っちゃいけないんだけど……"
- なかのん DAYS''さんはTwitterを使っています: "ハングルのキーボードだけは、さらにBackspaceの隣のキーを押させないと分からないけど、OS Xがハングルのキーボードをサポートしてるかは怪しい。Mac用のハングルキーボード探したけど、少なくとも当時は存在していないっぽかった。"
- なかのん DAYS''さんはTwitterを使っています: "Mac OS XのApple純正キーボード以外を接続した時にShiftキーの横のキーを押せっていうダイアログ、上手いよね。KeyboardEvent.codeの仕様書見ると分かる。 https://t.co/kqtd8O8M4w"
- なかのん DAYS''さんのツイート: "入力した文字数でしかサジェストしてこない予測変換はその価値を見いだせない……"
- なかのん DAYS''さんのツイート: "OS Xの欧米のキーボードレイアウトでキー長押しにした時に出るアクセント記号付き文字の候補の入力、内部のイベントの生成が実にひどくて涙出る……こういうデザインがAppleは相変わらず下手だよなぁ……"
- なかのん DAYS''さんのツイート: "他のOSならIME非対応アプリならIMEをそもそもオンにできなかったり、未確定文字が表示されなかったり、確定しても何も入力されなかったりするのが当たり前だけど、WindowsはIME側で未確定文字列表示したり、確定文字列をキーによる入力にまでフォールバックしてくれる。"
- なかのん DAYS''さんのツイート: "Windowsのキー入力とIMMのイベントモデル考えた人、本当に凄いと思う。後からIMEに対応したんだと思うけど、キー入力イベントとの整合性や、それへのフォールバック、さらにIMEイベントの処理のしやすさと、これらのバランスが最高。"
- なかのん DAYS''さんのツイート: "積極的に使ってなくても恩恵受けてる可能性はあるよ。ブラウザとか未確定文字列を自前描画するアプリはフォーカス移動で確定が普通だけど、これはIMEでテストでちゃんとテストされていないアプリで意図しない確定の原因担ってる。 https://t.co/oSbDYx3ZyK"
- なかのん DAYS''さんのツイート: "ちなみに、3の時点でBackspaceキー使ってもOKで、コツをつかむと、かなり効率よく辞書登録できて、同じ単語の入力で何度も面倒な入力しなくて済む。"
- なかのん DAYS''さんのツイート: "ATOKに、変換しようとしたけど辞書に無かったって事実を分からせる、最後の文字の確定をうまく知らせる、ここがポイント。難しそうに聞こえるけど、慣れると簡単にできたりする。よく使う当て字の登録とかに便利。"
- なかのん DAYS''さんのツイート: "くそっ。右Altキーが無いからハングルのTIPでオン・オフ切り替えできないことに今頃気付いた。本当に右Altを削除するという判断した日本人は他言語の入力に対して無知すぎないか? キーボードという言語入力のためのハードの設計者なのに。"
- なかのん DAYS''さんのツイート: "ちなみにTSF実装で、Korean TIPはMS謹製のものでも、かなり変な挙動してくれるので鬱陶しい。サードパーティー製のものはやはり、互換性のためにこれに合わせてるっぽくで地獄絵図。"
- なかのん DAYS''さんのツイート: "ATOKさんには有名なヨーロッパ、南米のサッカー選手の名前ぐらいは辞書に入れてもらいたく……あまりにカタカナで書く外国人名に弱いのが難点。"
- なかのん DAYS''さんはTwitterを使っています: "ちなみに、Geckoはかなり前から、キー操作にしろホイール操作にしろ、ページ単位でスクロールする場合には1ページ分より少しだけ少ない量しかスクロールしない。そうしないと特にリストボックスのようなUIでは分かり難いから。"
- なかのん DAYS''さんのツイート: "未確定文字列を見られる可能性をどうしようってのがやっぱあって……あと、自動学習しちゃわないといけないんだけど、その辺も色々と…… https://t.co/NuACAoEAR5"
- なかのん DAYS''さんのツイート: "テキスト入力の抽象化にはこの方が良いのは分かるんだけど、キーイベントの後に文字入力イベントが保証されてる訳じゃないんでこの辺がバグの温床になってるなぁ、昔から。"
- なかのん DAYS''さんのツイート: "ChromeのKeyboardEvent.key、printableキーはそこそこ正しいんだけど、non-printableキーに関しては、ただのKeyboardEvent.codeと値が違うだけの挙動なんだよな。仮想キーコードからじゃなくて、scancodeからマッピングしてる"
histric-2
- Rockridgeさんのツイート: "Fx52:Android版のIME処理をJava側と非同期化し、パフォーマンスを向上させつつマルチプロセス機能(e10s)との互換性も確保した。 / “1307816 – Make IME asynchronous on the…” https://t.co/Cua1Zwgp4b"
- なかのんクエストさんのツイート: "Firefoxは2.0まで、IMEやキーボードレイアウトの状態制御が出来なかったんで、3.0から各プラットフォームのネイティブのパスワードフィールドの挙動に合わせる際に、入力不能なパスワード使ってたユーザへの配慮として、CSSのime-modeで挙動を戻せるようにしておいた。"
- なかのんクエストさんのツイート: "macOSはASCII-Capableなキーボードレイアウトに絞るように開発者向けの資料で指示があるけど、逆に言うなら、ASCII-Capableなレイアウトで入力できる非ASCII文字は使える。ユーロ記号とか。"
- なかのんクエストさんのツイート: "Windowsは確か、デッドキーは利用不能だけど、非IMEなキーボードレイアウトは利用可能。LinuxはテーブルベースのIMEは利用可能なので、デッドキーは利用可能。非IMEなレイアウトは何でもOKだけど、そもそも、アプリがそれを判断出来ない、指定出来ないぐらいのAPIだったり。"
- Rockridgeさんのツイート: "Windows版Firefoxにおける、保護モードで動作するFlash PlayerのプロセスとIMEとの関係について。2013年7月の記事だが、その後Firefoxに加えられた修正を理解するための基礎知識を提供してくれる。 https://t.co/DEx4sWJG8a"
- Flash PlayerのIME問題のおさらい - WebStudio
- なかのんクエストさんのツイート: "最近、IMEにいい加減にどうにかしてって思うのは、(特に単漢変換の時に)候補を追加入力で絞り込めないことだな。例えば部首とかで絞り込めたら膨大な候補の大半を捨てられるのに。"
- なかのんクエストさんのツイート: "自動学習がおかしな事にならないように、できるだけ本来の読みから文節区切って確定していきたい。"
- なかのんクエストさんのツイート: "基本的にはどのIMEフレームワークもマルチプロセスなりマルチスレッドなりで、エディタに遅延書き込みが発生することが想定されていなかったりとかしたりするぐらいです(Androidは、 @NyaRuRu さんががんばって非同期なアプリでも大丈夫な形とか聞いたけどまだ見ていない)。"
- なかのんクエストさんのツイート: "そろそろ標準仕様側で決着ついてる、IME利用時のKeybordEventの発火処理の標準仕様準拠化作業もやりたいな。あれは結局、Firefoxの挙動にメリットも多いけど、他のブラウザ間が互換あるんで影響のでかさからFirefox側の動作を変えてという話にorz"
- なかのんクエストさんのツイート: "Firefoxの動作が、というより、Netscape時代からの動作なんだけどね。"
- なかのんクエストさんのツイート: "内部処理は一年以上前から設計変更時に、あわせて準備してたんだけど、TSFモードが完全に非対応なんでその辺をガッツリ書かないといけない。"
- なかのんクエストさんのツイート: "IMEの未確定文字列がある時にkeydownイベントやkeyupイベントを発火する最大のデメリットって、これらのイベントの本当の意味を理解していない開発者にアクセシブルじゃないサイトを作ることを許してしまうってところなんだよね。"
- なかのんクエストさんのツイート: "keydownとkeyupイベントは仕様でも定義してるけど、物理的にキーが押された、もしくはそれがエミュレートされたというイベント。つまり、文字が入力されたというイベントじゃ*無い*。"
- なかのんクエストさんのツイート: "なので、inputイベントの代わりにkeydownやkeyupイベントをハンドリングされていると、音声入力や手書き入力のようにキー入力と関係ない文字入力時に正しくハンドリングできず、マイナーな環境が切り捨てられる可能性が高くなる。こういうのを仕様レベルで回避したかったんだけどね。"
- なかのんクエストさんのツイート: "もうひとつ、Firefoxだけ、文字入力しないキーでもkeypressが発火するという動作があるんだけど、こっちは発火しない方がmakes senseだと思うんで変更に賛成なんだけど、内部処理を先に書き換えないといけないところが多過ぎて踏み出せずにいる。"
- なかのんクエストさんのツイート: "まあ、なんにしろ、互換問題がこの辺は昔から報告多いし、仕様も決着ついてるんでそのうちにどうにかする。"
histric-3
- なかのん&マジックさんのツイート: "無事、57へのupliftが承認された。Google日本語入力とMS-IMEでURLバーにフォーカスあてるとIMEがオフになる(IMEが自動的にやってる)余計な機能、無効化されます。 https://t.co/Pi9ZGb3G89 #もずでぶ"
- なかのん&マジックさんのツイート: "ただし、副作用として、これらのIMEが選択されている間、URLバーにフォーカスを与えても、タッチキーボードはURL用ではなく、通常用になります。他のIMEやキーボードレイアウトならURL用になります。 #もずでぶ"
- なかのん&マジックさんのツイート: "MS-IMEの公式のフォーラムでもこの機能に不満持ってる人居たし、なんでGoogle日本語入力もそれを真似たのかまったくもって謎。ATOKは自動で余計なことをしてくれないので助かってる。 #もずでぶ"
- なかのん&マジックさんのツイート: "ちなみに、前々からの問題だったなのに、なんでこのタイミングで強引に修正したのかというと、デフォルトのレイアウトでは、検索バーが消えて、URLバーから検索するようになったから。流石にこれでIMEをいちいちオフにされるのは迷惑なので説得しやすくなった。 #もずでぶ"
- なかのん&マジックさんのツイート: "本当はIS_URLだけじゃなくIS_SEARCHもInputScopeに指定すればTSFのデザイン的には正しい。でもそうすると期待通りに動かないし、タッチキーボードも同様だったので、IS_DEFAULTを渡すようにした。なのでIMEからは特殊なものには見えなくなってる #もずでぶ"
- なかのん&マジックさんのツイート: "@robert_KIMATA 全ブラウザ、検索兼URL入力の欄になってるので、そういうのをTSFが用意するか、MS-IMEとGoogle日本語入力が独自にやってることなんで、IS_URLとIS_SEARCHの同時指定でよろしくやるかのどっちかであるべきなんですよね。こちらとしては不本意な変更。 #もずでぶ"
- なかのん&マジックさんのツイート: "IME内部でのクラッシュ(もっといえば、DLL内部でのクラッシュ)が、アプリのクラッシュに見えてしまうの、Windows上でアプリで商売やってる側としては迷惑なのでどうにかしてほしい……"
- なかのん&マジックさんのツイート: "AltGr使うヨーロッパ言語ではAltGrキー押したときに発生するGDKのイベントがUnityの時だけバグってるんではよ消えて…… / Unityデスクトップの存続に向けて開発者やメンテナ募集が行われる | スラド Linux https://t.co/bex7I4R0Ce"
- なかのん&マジックさんのツイート: "UWP関連の色々で、ここ最近のWindowsはIME周りのコードを書き換えている様なので、できるだけ最新のバージョンを使い続ける方が良いという、今までには無かったような状況に思えます。"
- なかのん&マジックさんのツイート: "@inasoft_ayacy Firefoxは、UWPではありませんが、TSF-awareアプリです。about:configでintl.tsf.enableをfalseにして再起動すると、通常のアプリと同様のIMM APIを利用したハンドリングを強制できますが、その場合はどうなるでしょうか?"
- なかのん&マジックさんのツイート: "そーいや、たまにパスワードに日本語も、みたいな話を見かけるんだけど、あれもいろいろと有るから、未だにASCII文字だけなんだと思うよ。まず、第一に、マルチデバイスな昨今、全ての環境でパスワード入力欄の仕様を同時に変更するのは難しい。"
- なかのん&マジックさんのツイート: "第二に、未確定文字列等をショルダーハック(だっけ?)される心配をどうするのか。第三に、コンピュータに詳しくないユーザがうまく入力できるのかという、サポートのコストに対する懸念がある。最後に、IMEがパスワードを学習してしまう問題がある。"
- なかのん&マジックさんのツイート: "実際に、最後の問題は深刻で、Androidでたまに、パスワード入力欄を独自実装してるのか、IMEが使えるアプリがある。この時、パスワードがIMEに学習されてしまい、変換候補に表示されるという糞な体験をしてる。"
- なかのん&マジックさんのツイート: "USB HIDで定義されてる全キー入りのキーボード欲しい。"
- なかのん&マジックさんのツイート: "世界のキーボードを知ってから、MacにApple純正じゃないキーボードを刺したときに、左右のShiftキーの横のキーを押さされる意味が分かった。あそこにある特殊キーだけでレイアウトが分かっちゃうのね。"
- なかのん&マジックさんのツイート: "まあでも、物理レイアウトを意識するmacOSはクソだと思いますけどね。"
- なかのん&マジックさんのツイート: "OSは論理レイアウトだけ意識すれば良いと思うんだけど、macOSは物理キーボードタイプを文字とのマッピングに使うせいで、JISキーボードでUSレイアウト(Dvorak含む)を使えない。そのくせ、APIというか、ネイティブイベントでは仮想キーコードしか取得出来ないというのが意味不明… https://t.co/A2bfORKmc3"
- なかのん&マジックさんのツイート: "TSFについてググると、自分の出した情報か、NyaRuRuさんの情報に行き着くだけというオチ……"
histric-4
- なかのん&マジックさんのツイート: "MSのIME、軒並み、TS_E_NOLAYOUT問題を一杯抱えてるみたいなので、本当にTIP側でどうにかして欲しいんですが……"
- なかのん&マジックさんのツイート: "Firefoxでkeydown/keyupが発火されないのは現在のUI Events上はバグなんだけど、"input"イベントを捕まえずにどうにかしようとしている時点で入力イベントを理解できていない(UI Eventsの仕様案を読んでいない)な、この人。 https://t.co/F41MKDw4X2"
- inputの入力値の制御でIME入力とかいろいろ辛かった話 - Qiita
- なかのん&マジックさんのツイート: "修正を後回しにしてるのは、本来"input"イベントを使うべきだからなんだよなぁ。音声入力とかにどうやって対応するつもりだ?"
- なかのん&マジックさんのツイート: "TSFのTS_E_NOLAYOUT問題、個人的に知ってるMSの人に直接コンタクトとるべきかなぁ、もはや。"
- 紙魚丸(しみまるさんのツイート: "ウィンドウズ 登録されてない文字を辞書登録して今後は変換できるぜ ってのあるけど 逆に そんな変換はもうしなくていい って登録はできんのかな ゲームって入力して変換押したらGAMEって出て いいからそういうの やめて"
- なかのん&マジックさんのツイート: "ブラウザのオートコンプリートだと、矢印キーで選択してDeleteで消せるけど、IMEでは考えたこともなかったな。"
- なかのん&マジックさんのツイート: "アプリ開発者としては、macOSのCocoaみたいな、「アプリの実装がIMEやフレームワークと一体となって動かなければいけない」という設計は本当にキツい。TSFも基本的にはそれに近いけど、アプリからもAPIを使ってIMEにリクエストできるのは大きい。"
- なかのん&マジックさんのツイート: "NSTextInputContext.invalidateCharacterCoordinates()を呼び出してもアプリから当然のごとく期待される動き、つまり、候補ウインドウの位置の再計算とか無いからね。何のためにあるのか本当に謎。"
- なかのん&マジックさんのツイート: "access keyとshortcut keyがコンフリクトしてたらどっちが優先順位高いの問題……(Geckoはaccess key)"
- てるろーさんのツイート: "IMEほど闇は深くないんだけど、海外製テキスト入力コンポーネント(典型例がDataGrid)でIMEを想定してないキーイベント実装になってるやつ、よくありますね / 🐟日本語入力の落とし穴 #burikaigi - みずぴー日記 https://t.co/EZbyWlBdYu"
- なかのん&マジックさんのツイート: "そういうのがあって、音声入力や手書き入力に非対応なWebアプリが増えちゃうから、未確定文字列がある時にkeydownとkeyupは発火すべきじゃないって、UI EventsのWGで昔、抵抗したんだけど、Gecko以外は発火してるからっていう理由で負けた。"
- なかのん&マジックさんのツイート: "これは本当に今でも悔しくて、Webアプリはテキストの入力を検出する場合、beforeinput (Geckoはまだ未実装)、input、composition(start|update|end)イベントのみで実装しないと全然アクセシブルじゃない。"
- なかのん&マジックさんのツイート: "beforeinputはどうすればスマートな実装になるのか、未だに分からないんだよなぁ。keypressイベントの発火方法自体を見直さないと、EventStateManagerからフォーカスのあるEditorに問い合わせて、みたいな汚いやり方しか思いつかない。 #もずでぶ"
- なかのん&マジックさんのツイート: "長年の修正で、keydownイベントがkeypressイベントのほぼ全ての情報を持つようになったのでなんとかなるのかもしれないけど、一部のプラットフォームはIMEが処理する前にkeydownイベントを発火してから、keypressにするか、compositionイベントにするかを判断してるんでキツい。 #もずでぶ"
- なかのん&マジックさんのツイート: "keydownの発火をIMEが処理したかどうかを判定できるようになるまで遅らせるべきなんだけど、そうすると、今度は、keydownイベントのpreventDefault()でcompositionstartを抑制するということがプラットフォームによっては不可能になるので、なんというか、仕様が悪い気する。 #もずでぶ"
- 小野塚裕也 (よP)さんのツイート: "ところで Windows 版 LINE は IME のキーバインドより前に出てくるから単語区切り指定中にウィンドウが開かれたりして使いにくいのなんとかして。ライン社内には Microsoft IME でキーボードショートカット使う人いないのかね。"
- 小野塚裕也 (よP)さんのツイート: "IME の文字入力・変換作業中にホストのアプリケーションがキーボード入力受け付けちゃダメでしょ。"
- 小野塚裕也 (よP)さんのツイート: "極端なこと言うとスマートフォン中心に使っている人なら LINE のキーボードショートカットなんか使わない (というかあっても実用的でない) んだからなくてもいいのに。"
- なかのん&マジックさんのツイート: "IME全く使わない人たちが開発するとこの手のバグを入れがちなのに、LINEがやらかしてるのか。"
- なかのん&マジックさんのツイート: "あー、でも、ハングルのIMEだと、何かショートカットキーを押したくなる時には、もう、ユーザの中では入力が終わってる状態だから、か。"
histric-5
- なかのん&マジックさんのツイート: "ぼんやりとソース見てるけど、devtoolsは全部、keypressからkeydownにそのまま移行させた方が良いのかな。"
- なかのん&マジックさんのツイート: "e-Taxはime-modeを多用してくれてて、かなり入力しやすかった。あれを実装するなとまで書いたW3Cは本当にアレ(抵抗はした)。"
- なかのん&マジックさんのツイート: "とりあえず、確定申告ページで今でも使われてるってのは書いておいた。ime-mode: active;とime-mode: inactive;は設定で無効化できた方が良さそうではある。ただ、無効化をデフォルトとするかどうかは悩ましい / https://t.co/ASPFx4ZeN8 - Remove ime-mode propery https://t.co/CmHiTpqk5s #もずでぶ"
- なかのん&マジックさんのツイート: "Android、タッチ入力の仮想キーボードからIME使うのと、ハードウェアキーボードから使うのとでは動作が違うのかよ……"
- なかのん&マジックさんのツイート: "実装後回しになったとしても、ハードウェアキーボードのパスを作っておいて、そこに仮想キーボードから疑似イベントを流す、みたいな形になってないのかな?"
- なかのん&マジックさんのツイート: "今日もパッチ書いてて戸惑ったんだけど、この例、本当に正しいんだろうか。WM_SYSKEYDOWN(UP)は無視して良いの? TIP/TSFがAlt+somethingを処理できないけど。 / ITfKeystrokeMgr::TestKeyDown method (Windows) https://t.co/RX6nWMiJ9B"
- ITfKeystrokeMgr::TestKeyDown method (Windows)
- なかのん&マジックさんのツイート: "@msdmairitan さん、ご意見あれば。"
- Masaru Iritaniさんのツイート: "ありがとうございます。ちょっとこの辺り詳しい人に聞いてみます。… "
- なかのん&マジックさんのツイート: "はい、お願いします。最初の実装時にもうーん、と思いながらも、例に従って、WM_KEYDOWNとWM_KEYUPのみTSFに渡すようにしました。もしアレならWM_SYSKEYDOWNとWM_SYSKEYUPも渡すようにします。… "
- なかのん&マジックさんのツイート: "macOSでIMEから飛んでくる未確定文字列をそのままテキスト内で使うの、もういい加減にダメって広まってないの?"
- なかのん&マジックさんのツイート: "Firefoxは現存する有名なIMEの全機能を子プロセス上でもサポートするために、かなり色々と値をキャッシュしたりしてて、シンプルに文字入力してるだけのときからすると「無駄な」処理をいっぱいやってる。入力から発生する処理の別プロセス・別スレッドへの追い出しは本当にキツい。"
- なかのん&マジックさんのツイート: "OSからの入力に対するイベントと、それへの応答が非同期処理をサポートする形になってくれて、さらに、各IME等のミドルウェアがそれをバグ無く処理できるようになれば、メニーコア時代のデスクトップアプリはもーちょい進化するのかもしれない。書いてて無理に思えるけど。"
- なかのん&マジックさんのツイート: "シングルプロセス、シングルスレッドなアプリはどんどん相対的にパフォーマンスの悪いアプリとなっていくわけだけど、ユーザからの入力に対するリアクションってほんどスレッドの分けようが無いアプリも多いので、やはりスレッドあたりの性能向上も大切だなぁと。"
- なかのん&マジックさんのツイート: "Firefox/Chromeのような、メインプロセスが重要なタイプのマルチプロセスアプリの設計は今後どう変化していくんだろう。今でもメインプロセスにかかる負担ってそれなりにあるけど、統括すべき子プロセスが増えていくと……"
- なかのん&マジックさんのツイート: "今頃気付いたけど、macOSの日本語入力、今でも内部的にはKotoeriって名乗ってるんだ。"
- なかのん&マジックさんのツイート: "Win10に古いIME入れてるとこんな感じで警告が毎度毎度、大きめのアップデートで出る。… "
- なかのん&マジックさんのツイート: "Win10の大型アップデートのときに出なくても良いんではって思ったけど、いつまでも古いサードパーティーのIME使いながら、すぐにその自覚無く文句言う人出てきそうだから出すしかないか。"
- なかのん&マジックさんのツイート: "「ぽんよう」はATOKでもMS-IMEでも変換できないか。"
- なかのん&マジックさんのツイート: "ATOKは訂正候補出してきて、MS-IMEは単純にカタカナに変換できないように文節切ってくるのか。ガチで間違ってる人にはATOKの方が良さげ。"
- なかのん&マジックさんのツイート: "ものっすごいlong standingなテストAPIのバグを見つけてしまった。よく動いてたな、IME周りのテスト。"
- なかのん&マジックさんのツイート: "Linux版Nightlyで、一部のデスクトップテーマのバグのせいでfcitxの未確定文字列が正しい色で表示できないバグを修正したけど、その方法がfcitxの参照してる選択色を上書きするというちょっとリスキーな方法なので、regression出てたらできるだけお早めに報告を(bugzillaでも私に直でも) #もずでぶ"
- なかのん&マジックさんのツイート: "このバグが起きてる環境だと、未確定文字列が背景も文字もおおむね同じ色なのでほとんど読むことができないので可能な限りupliftを行いたい(betaとESR60)。"
- なかのん&マジックさんのツイート: "Debianでこんな感じに表示されてしまってる。… "
- なかのん&マジックさんのツイート: "IMEの未確定文字列の表示自体は、把握している限りはfcitxユーザにしか影響無い上に、かなり新しいバージョン使ってる場合は、このバグ回避のためにfcitxが別の色をFirefoxの場合に使ってるので問題は起きてないです。ただ、IME以外の部分でのregressionが無いのかというのが怖いところ。"
- なかのん&マジックさんのツイート: "先月、Nightlyで一番使われたIMEがハングルのIMEというのは予想外だった。日本語・中国語と違って選択肢無いとそうなるか……"
- なかのん&マジックさんのツイート: "MS Office IMEを使ってる人が、ちょっと無視するには忍びない数で居てるな。安全方向にふった修正にしておくか……"
- なかのん&マジックさんのツイート: "んー、先週末に突っ込んだTS_E_NOLAYOUTの修正に従ってTIPを信頼するパッチ、Nightly + 色々なTIPで試してみると、いくつか状況限定でバグるな……やはり、実装が無かったらTIP側にもバグがあるか。"
- なかのん&マジックさんのツイート: "Site Isolation、IMEの観点からするとどうなんだろってのは無くも無い。今どきのIMEは周囲のテキストを読んでるし。IEの形式なら安全だろうけど。Edgeはどういう設計になってるのか未だに知らない。"
- Taku Kudoさんのツイート: "ネットワークのflow、initializer、shape をまとめて同じところに書けるのが地味に静的グラフの利点だと思っているのですが (kerasなんてまさしくそう)、どうなんだろう。逐次実行の解釈がどうしても優先されるので慣れが必要ですが、これは定義なんだというスタンスに立てば可読性が良い。"
- kyo agoさんのツイート: "reactでtextareaちゃんと管理するの、辛い。。。"
- kyo agoさんのツイート: "react + textarea、真面目にやろうとすると「現在の入力値」、「現在のカーソル位置」、「現在のIMEの状態(変換状態)」の管理が必要な感じがする。 (宣言的にUI構築するんだからUIの状態に関わるものを管理するのは当然なんだけど。。。)"
- なかのん&マジックさんのツイート: "ネイティブアプリレベルでもIMEのバグや挙動の違いの吸収はかなりキツいのでAPIのほとんどないWebは相当につらくないかなぁ。ある程度はブラウザが吸収してるけど。"
- なかのん&マジックさんのツイート: "IMEのAPIって2種類のデザイン方法があって、IMM/GTK vs. TSF/Cocoa/Androidみたいな感じなので、WebへのAPIの公開とか出来る気しない(Qtってどうだったか忘れた)。"
- なかのん&マジックさんのツイート: "Firefox for AndroidのパスワードフィールドでIMEで入力したら文字がダブる件、IMEのSelectionがマスク文字の上に復元されてないのをとりあえず修正してみたら、もっと動作が意味不明になった……"
- なかのん&マジックさんのツイート: "最近、Firefox 64にセキュリティのテスト用のアドオンからキーボード入力をエミュレーションするAPIを新規に設計して投入したんだけど、その内部の処理はFirefoxOSのIMEをまともに作れるように設計したクラス群なので、XULアドオンの頃よりも真っ当なテストが可能になったという皮肉。"
- なかのん&マジックさんのツイート: "ちなみにそのAPIは普通のアドオンからはセキュリティ的に危険すぎるので相変わらず使えません。専用のビルドオプション付けてビルドしないと存在すらしないので。"
- なかのん&マジックさんのツイート: "今どき、KeyboardEvent.keyCodeだけを無条件に参照してkeypressイベントリスナを実装するWeb開発者、引退してくれない?"
- なかのん&マジックさんのツイート: "よくあるのが入力のフィルタリング目的でそういうコードを書いてるんだけど、"input"で見てないから、IMEからの入力、貼り付け、D&Dあたりは素通りで入力できてるし。知識が雑すぎる、というか自分で特定のブラウザでだけ実験した結果を知ってるだけなんだろうな。"
- なかのん&マジックさんのツイート: "未確定文字列が空のIMEって今どきあるんかな。Win7ではなさげなので、あるとしたらLinuxか?"
- なかのん&マジックさんのツイート: "Input Events Level 2にIMEのイベント定義が入ってるけど、今までの定義とコンフリクトしてたり、TSFでそれたぶん無理、みたいな内容で、「お、おぅ」ってなってる。"
- なかのん&マジックさんのツイート: "とりあえずこれだけで数ヶ月かかりそうだから、最初はInput Events Level 1の実装で決まりだな。"
- なかのん&マジックさんのツイート: "おお、Ubuntu 18.04からUbuntu 18.10にアップグレードすると、デッドキーがmacOSと同様に未確定文字列を出すIMEとして実装し直されてる。"
- なかのん&マジックさんのツイート: "実装面で一番苦しめられたのはLinuxのIME事情のクソッぷりだったな、結局(というか今でも環境限定バグがちょいちょい来てる)。"
- なかのん&マジックさんのツイート: "(特に)プラットフォーム側がやっつけな実装すると、こうやってエコシステムがボロボロになってってダメになるんだってのを実感させられた。"
- なかのん&マジックさんのツイート: "IMEの変換処理を非同期で他のプロセスで処理するために、APIの拡張を全く行わずに、イベントモデルを汚くハックしてて、アプリ側から見ると、来るかどうか分からない複製されたイベントを待たなくてはいけないという、実装した人本当にどうかしてる状況が今のLinuxのIMEのデファクトスタンダード。"
- なかのん&マジックさんのツイート: "せめて必ず複製したイベントを再送してくるんだったら単純だったものを……"
- なかのん&マジックさんのツイート: "今後、compositionstartをcancelableにしようとしたときに、また、Linuxでの実装が物事を複雑にしてくれるな……"
- なかのん&マジックさんのツイート: "ちなみに、どのIMが非同期で処理しようとするのかっていうのを取得するAPIも当然無いので、アクティブなIMがiBusかFcitxじゃないかを確認し、それらだったら、さらにそれらが非同期処理を行うかどうか決定してる環境変数も確認して、というクッソ汚いコードをアプリが書かないといけない。"
- なかのん&マジックさんのツイート: "ちなみに、Waylandになると、iBusかFcitxかっていうのを見分けるためのAPIが"wayland"と返してくるらしく……"
- Makoto Kato ︎︎さんのツイート: "その経緯もChrなんとかOSが最初ibusを使ってた関係で非同期APIがあるらしいんだけど、その後そのOSがibus使うの止めちゃったんで、まぁ中途半端になりがちですよね… "
- なかのん&マジックさんのツイート: "IMEも既に独自拡張のフラグをmodifiersに突っ込んできてるんで、あそこに見分けが付くフラグを入れて欲しかったです(これから非同期で処理するよ、っていうのを)。… "
- なかのん&マジックさんのツイート: "愚痴ってたら、またLinuxのIMEが変な事してくれてるのが原因のバグ来てる……"
- なかのん&マジックさんのツイート: "今のmozilla-centralで動いてるIME周りの自動テストは、JS製のIMEから複雑な未確定文字列を送信でき、コンテンツ上でのイベントも受け取れるという本格的なものなんだけど、Firefox OS向けに作ってたAPIなんだよね。なので、テスト用にはかなりのオーバースペック。本当に真面目に作り込んである(w"
- なかのん&マジックさんのツイート: "しかもこのリッチなAPIが完成したの、確かFirefox OS終了に間に合わなかったというオチだった気がする……"
- なかのん&マジックさんのツイート: "Windowsキー + : (コロン)で絵文字を入力できるとか初めて知ったんですけど……ただこれ、アクティブなキーボードレイアウトを英語にしておくと英単語の入力で絞り込めるけど、日本語だとIME問わず絞り込みができない?"
- なかのん&マジックさんのツイート: "しかもTSF-awareアプリケーションとIMMのエミュレーションにちょっと齟齬があるんだよな、どうしよう。"
- なかのん&マジックさんのツイート: "macOSのIME周りを知ってる開発者とのパイプが欲しい今日この頃。アプリによって動作を変えられるの、本当に意味が分からない。"
- なかのん&マジックさんのツイート: "IMEからアプリに任意のタイミングで問い合わせを出せる、TSFやCocoaの設計は、IMEの開発者から見て便利なんでしょうか? アプリ側が用意できてなくてエラーが返ってきたりするんで、数多くあるアプリとの連携部分がかえって大変そうなイメージなんですが……"
- なかのん&マジックさんのツイート: "ちなみにアプリ側から見ると結構しんどい形になる上に、意図通りにIME側が動いてくれなかった時に、何が気に入らなかったのか分かり難くて対応しづらいってのがあります。まさにmacOS上のシンプルな変換だけが必要な言語のIMEみたいに。"
- なかのん&マジックさんのツイート: "とりあえず、MS-IMEも含めて、TSFは非同期レンダリングサポートしてるのにIME側が対応してくれてないのはキッツいですな……IMMみたいにアプリ側から通知出す方がこういうあたり、確実。"
- なかのん&マジックさんのツイート: "ハングルのIMEの挙動が特殊過ぎるんで、ハングルの勉強したら?と言われるものの、そもそも日本語のIMEも全部は面倒見れていないという……"
- なかのん&マジックさんのツイート: "日本語のIME、特に人名を変換してる時に思うんだけど、一文字目での候補リスト内の絞り込みがマウスを使ってでのUIでも良いんで、存在すべき。"
- なかのん&マジックさんのツイート: "FirefoxユーザのLinux版のIMEのシェアを久しぶりに確認してみたらibus強いなぁ。"
- なかのん&マジックさんのツイート: "IME経由で文字を実際に入力したユーザだけでの統計なので、欧米でキーボードからの直接入力だけのユーザはカウントされてませんので、たぶんibusの実際のユーザはもっと多い。"
- なかのん&マジックさんのツイート: "IMのコンテキストの名前に"WAYLAND"が増えてるな……"
- Makoto Kato ︎︎さんのツイート: "https://t.co/iiLfFYZkND このlandedをみて、reviewerでちょっと笑った。未だにreviewerになってる。。。"
- 657623 - Using TSF instead of IMM32 in the IMF on Windows - chromium - Monorail
- Makoto Kato ︎︎さんのツイート: "幣社も4プラットフォームをほぼ2人のみでやってるから、人のこと言えないんだが、IMEとか入力周り。"
- なかのん&マジックさんのツイート: "自動テストの方法をいい加減に作らないと、ですね……… "
- Makoto Kato ︎︎さんのツイート: "確かにgtestでmock作れるようにしないとね… "
- なかのん&マジックさんのツイート: "うーん。複雑なHTMLのケースでのテストが書きやすいようにmochitestで考えてたんですが……どちらにしろ、OSとTSFTextStore間に一枚かませて抽象化しないといけないですね。… "
- ともい(Tomoi,S.)さんのツイート: "テキストフィールドにIMEModeみたいなプロパティがある以上、それに開発者マター以外のアプローチが存在しないのはなぜだ…と思い続けているけど、まあ日本人の使い勝手なんて理解できないだろうなあ…(・ω・"
- ともい(Tomoi,S.)さんのツイート: "おそらく一生実装されないかもですが、Winの日本語入力可能フィールドはIMEの最後の変換モードを常時永続的に記憶しててほしいし、中途半端に覚えて継承されるかと思うと逆側になっててイラッとくるものもあるので、ユーザー側で英数・日本語の初期モード固定を指示できるようになっていてほしかった。"
- Makoto Kato ︎︎さんのツイート: "IME依存のhack、GeckoのTSFの実装もGTKの実装もいろいろ多いけど、Androidも大概多いんだけど、OSの抽象化とは。。。 https://t.co/E3fwfzby8Y"
- InputMethods.java - mozsearch
- こたさんのツイート: "なんか気になったのでアンケート「ぁ」や「っ」など小書きを入力するとき、Xを使うか、Lを使うか、変換を使うか教えてください。"
- 京橋 ひよわ@労進さんのツイート: "んなもん、左Shift+「や」、右Shift+「つ」に決まってるやん?"
- 島鉄雄さんはTwitterを使っています: 「やっぱり、どんな IME パッチをあてても確率の問題でいつかは必ず落ちる事が分かったんで…これを試してみようかな。(多分明日から) これがちゃんと動けば、もう Emacs 本体から IMM32 のコードはバッサリ消し去りたい… https://t.co/bDP9dhOITK」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「お!予想外に(失礼w)すんなり動いた! https://t.co/XcigCEpcRN ↑ここの 27 pretest 版を使って(つうかインストーラがある!) load-path に w32-imeadv.dll と lisp-w32-imeadv.el を置いて、(load "lisp-w32-imeadv.el") をした。 w32-imeadv.dll は自前でビルドしたけど、これも一発だった。続く https://t.co/CAKyv5QReI」 / Twitter
- Index of /gnu/emacs/pretest/windows/emacs-27
- 島鉄雄さんはTwitterを使っています: 「lisp の方は色々カスタマイズ(や修正)が必要そうだ。 あと、起動直後に IME 効かない問題を対処するのに別のモジュールが必要みたいだけど、出来れば統合してもらえるとうれしいです!> @m_toguro さん これで長年の IME 問題は解決するんじゃないかと期待したい。」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo w32-imm32-on-start-enablerの方は、メッセージフックの中から直接DispatchMessage() を呼び出すという非常にaggressiveな事をしていて、本当に動くかどうか?動いたとして副作用は無いか等の確信が持てなかったんです。」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo .dllをload-pathからのければすぐ外せるのもダイナミックモジュールの利点なので、不具合ぽい時やだめそーだったらはずそーと思いまして。 僕チキン(´・ω・`)」 / Twitter
- 島鉄雄さんはTwitterを使っています: 「@m_toguro 今までの IME パッチだと w32fns.c の w32_createwindow() 内で、画像のようなアドホックなコードで回避してるようです。 多分安全だとは思いますが、若干気持ち悪いと言うかw 参考までに。 https://t.co/nPfLNOVTOq」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo 最小化すると動き出すのは、MS-IMEがWM_TIMERを送ってきてて、最小化・最大化の時に、ShowWindow()の向こう側で、システムのメッセージポンプがちゃんとDispatchMessage()してるからなのですが、同じ問題に起因するのがATOKの確定アンドゥでこっちはフリーズしちゃいまして…。」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「@shima_tetsuo 本体にパッチを当てれば治るのも確認してて、多分これが正攻法であるとは思います。 自分でつくっておいてなんですが、w32-imm32-on-start-enablerは、穴の開いた燃料タンクをぐるぐるまくガムテなのです… https://t.co/uED5j89odN」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「なんで、 w32fns.c のw32_msg_pump のお尻のあたりを ちょっと弄るといいと思うんだ。 https://t.co/w44eo2Y58B」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「ちな、ATOK の Ctrl-Backspace の確定アンドゥがプチフリーズするのも同じ原因の模様」 / Twitter
- 精廬 幹人さんはTwitterを使っています: 「MS-IME は起動時に 0x0113 = WM_TIMER を送信 ATOK は、 確定アンドゥ時にうちの環境では0xC046 これはRegisterWindowMessage() で登録されたメッセージ hwnd が NULL の状態で GetMessage() が返す。 ところまで確認したんだけど、どうしよっか。」 / Twitter
- 品川@学生募集中さんはTwitterを使っています 「ディープラーニングを使ったシンプル・ロバスト・高精度な日本語IMEが欲しい。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ウォール街を、ウォーター街と書くミス。 スマートフォン入力は、妙な自動補完に気づかないこと多い。 入力の達人は、視線は文章を見ながらのタッチタイプなのかな?」 / Twitter
- ほうめい マイコンで遊んでばっかりでさんはTwitterを使っています 「プロジェクトX、東芝のワープロ回やってる。辞書にない単語は後ろから検索し、助詞で切って推定するっていう論文読んだことある。」 / Twitter
- だよもんフレンズは在宅BSD仕事したいさんはTwitterを使っています 「@houmei カシオFP1100でかな漢変換を作ったけど、「後ろから検索」ってEUCコードなら簡単だが、SJISとかUnicodeだと難しい。viを自作するにも編集フラグと折り合いつけるのは大変。」 / Twitter
- Choosing the right estimator — scikit-learn 0.23.1 documentation
- 機械学習アルゴリズム チート シート - デザイナー - Azure Machine Learning | Microsoft Docs
- 専門用語和訳プロジェクト「みんなのわやく」(機械学習・メディア処理) - Google スプレッドシート
- 機械学習*と公平性に関する声明 | 人工知能学会 倫理委員会
- 研究開発成果 - サイバーフィジカルセキュリティ研究センター - 産総研
- 2-2_データを説明する - 2-2_literacy_level_note.pdf
- Shiki’s weblog
- 仲原文也@籠城中(筋トレ3年)さんはTwitterを使っています 「新しいMicrosoft IMEで送りがなの基準はどこで設定するのだろう。本則にしたいのだけど、、」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「WSLg、IMEもwaylandプロトコル実装すればいけると思うんだけど、まぁ大変そう」 / Twitter
- Taku KudoさんはTwitterを使っています 「ホストIMFの動作をブリッジする疑似IMEをfcitx上に作ればいけるかな。Mozc限定なら、fcitx-mozc のプロセス間通信の接続先をホストOS上のソレにつなげれば動きそう。いずれにせよ UIは fcitx になるので、見た目的には現状と変わらない。 https://t.co/DWVs1rio7x」 / Twitter
- Taku KudoさんはTwitterを使っています 「windows の商用 xserver は ximp とか kinput2 経由でブリッジしてた記憶がある。それでいけるのかな。あまりにも古い知識なのでよくわからん。」 / Twitter
- 機械学習品質マネジメントガイドライン 第2版 | デジタルアーキテクチャ推進センター | 産総研
形態素解析→依存文法解析→直接構成鎖解析→談話構造解析
コーパス
国立国語研究所
nwc-toolkit
Web クローラー
- Heritrix - Heritrix - IA Webteam Confluence
- Heritrix - Home Page
- internetarchive/heritrix3: Heritrix is the Internet Archive's open-source, extensible, web-scale, archival-quality web crawler project.
- Heritrix - Wikipedia
- Webクローラ「Heritrix」を使ってみる - Qiita
- 国立国会図書館-デジタルアーカイブシステム
- Heritrix - masayua
- HTML テキスト抽出(CETR)
- HTML テキスト抽出(簡易)
- Google Code Archive - Long-term storage for Google Code Project Hosting.
- xen/nwc-toolkit: Automatically exported from code.google.com/p/nwc-toolkit
- ウェブサービス - s-yata.jp
- コーパス - s-yata.jp
- 日本語ウェブコーパス 2010
- N-gram コーパス - 日本語ウェブコーパス 2010
UniDic
MeCab
- MeCab: オリジナル辞書/コーパスからのパラメータ推定
- MeCab: Yet Another Part-of-Speech and Morphological Analyzer
- taku910/mecab: Yet another Japanese morphological analyzer
- mecab-ipadic-neologdがすごいという話 - kivantium活動日記
- Pythonからmecab-ipadic-neologdを使う - Qiita
- MaCabのユーザー辞書にmecab-ipadic-NEologdを手動で追加する - Qiita
- 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
- [O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました
- MeCab - 日本語形態素解析システム
- MeCab - Wikipedia
- NMeCab でも mecab-ipadic-neologd を使ってみた - しばやん雑記
- MeCabのライセンス変更事例 | オープンソース・ライセンスの談話室
- きまぐれ日記: MeCabがiPhone,OSXに載っていると言うのは止めようと思う
- 新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた « LINE Engineers' Blog
- NEologdさんのツイート: "mecab-ipadic-NEologd に"色々な不具合の修正をしたIPA辞書のみ"をインストールする機能をつけました📕 長い間、個人的に便利に使っていた機能です🔧 インストール時に-cオプションを付けるだけで利用可能です😄 #neologd"
- neologd (NEologd)
- ねこ先輩さんのツイート: "Mecabの動作確認するとき、私はいつも「吾輩は猫である」という文を入力するんですが、neologd入れたら文まるごと固有名詞になってしまって無事に動作確認できたようです。"
- 【Python】MeCabと極性辞書を使ったツイートの感情分析入門 - StatsBeginner: 初学者の統計学習ノート
- Mecabに人名辞書を追加 - Qiita
- mecab-skkserv MeCab を使ってかな漢字変換
- 日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ
- MeCab: 単語の追加方法
- Odashiさんのツイート: "みんな一度は作って最終的に実用的な理由でMeCabに回帰する形態素解析器"
- Taku Kudoさんのツイート: "MeCabはたいてい爆速ですねというフィードバックをいただくのだが、某所の某グループから遅すぎじゃボケと言われて、草。 世界は広い。"
- 【Python】テキストマイニングしてみた〜形態素解析〜 | 開発アプリブログ
Twitter
全角
- UniDic広報担当さんのツイート: "web茶まめの、「解析前処理」の項目の「半角文字を全角に変換」のチェックボックスをONにして実行してみてください。 UniDicには、全角文字しか入ってないので、 半角文字はすべて未知語処理されてしまいます。 https://t.co/7eFH8AgK4K"
- UniDic広報担当さんのツイート: "解析用UniDicに登録されている短単位はすべて全角です。 また、文字コードはUTF-8です。"
- Taku Kudoさんのツイート: "@unidic NFKCにしませんか?"
- UniDic広報担当さんのツイート: "@taku910 web茶まめを作っているのは私ではないのですが、今、開発者に依頼しておきました。"
- UniDic広報担当さんのツイート: "あとは、解析用UniDicの表層形が全部NFKC化した文字列でも登録してあるかDBちゃんと見とかないと。"
- UniDic広報担当さんのツイート: "こっちは、デフォルトでチェック入れて外せないようにしてあります。 https://t.co/6Hy2A40gui また、UniDicが全角を採用しているのは、BCCWJの文字列がすべて全角に統一されているからです。 https://t.co/ZZrCpMye4M"
- UniDic広報担当さんのツイート: "そうか、国語研のコーパス、基本全角だからDBに半角エントリは作ってないのか。 これは、解析用の辞書のほうでの対応案件か。 半角カンマのcsvへの表層形登録は","でいいのかな。きっと。 #unidic3への課題 https://t.co/glgmg2ZBb3"
histric-1
- UniDic広報担当さんのツイート: "OSDNのリポジトリはunidic2系の公式配布サイトでしたが、 内部の人から見ても怪しかったので、これまでの解析用UniDic配布サイトを統合した新サイトを作りました。 https://t.co/DZKztyaX7j https://t.co/tbd7D7ArUL"
- 高岡一馬さんのツイート: "「短単位は、漏れの少ない 用例検索を重視した設計(単位の長さ、可能性に基づく品詞体系、細かい語義までは考慮しない字面主義) となっているため、自然言語処理分野の統語解析や意味解析に向いていません。」 https://t.co/vw96DTbO3N"
- UniDic広報担当さんのツイート: "皆さんご存知でしょうが、UniDicはすでにChaSenへの対応をやめています。 MeCabの解析用辞書のみ配布を行なっています。"
- UniDic広報担当さんのツイート: "今からでも組み込もうかしらん。 https://t.co/w1w1Nvmb6q"
- UniDic広報担当さんのツイート: "個人的に、UniDicは 「あ、UniDicって、いいな」 と思ってもらえる方がいて、 そういう人に使ってもらえたら、それだけでうれしいです。 https://t.co/lS1WYOaJLs"
- UniDic広報担当さんのツイート: "※表3.2に掲げた語を選定した際の観点は、以下のとおりである。 (1)元の語形が一般にあまり使われることがない 【例】 テレビ(テレビジョン) ジム(ジムナジウム) https://t.co/GjpSEz7dhf"
- UniDic広報担当さんのツイート: "BCCWJ短単位情報規定集第4版 p.34より。 これに従うなら、たしかに、デフレも表に載せていい気がする。 https://t.co/6hgYH507rJ"
- UniDic広報担当さんのツイート: "ちょっと今度のUniDic会議で議題にしてみます。 https://t.co/7DdwcQUnUh"
- 藻(入院中:第6日)さんのツイート: "「コン」,「コミ」でコンディショナーやコミュニケーションということにはならないけど、「デフレ」,「スパイラル」は独立して通じるからなあ。"
- UniDic広報担当さんのツイート: "単に、規定が古いだけの気がするんですけど。 https://t.co/MGVVffSMG8"
- UniDic広報担当さんのツイート: "もともと、計算機のための規定ではなく、人間のための規定で、 国語研は、ほっとくと皆さん、マンパワーですべて解決する驚異の集団です。 https://t.co/n1ijXquTBR"
- UniDic広報担当さんのツイート: "基本的に、コアデータを人手で作ってるときにDBに載っていない短単位を随時追加するという方針です。 コーパス作るのが、一番のお仕事なので。 そこらへんは、UniDicの公式ページの「UniDicとは」という項目を参照してください。 https://t.co/L2IpvspaSl"
- Taku Kudoさんのツイート: "UniDic短単位の目的や意図は分かっているつもりだが、新しいという理由だけで盲目的に採用し、その目的におおよそ合致しない構文解析に使おうとしているところに違和感がある。UniDicの中の人もずっと言い続けていることだが。"
- UniDic広報担当さんのツイート: "WEB+DB PRESSの100号読んでたら「国立国語研究所が公開している表記統合辞書」という文言があって、ナニソレ? と思って調べたら、ほんとにあった。 https://t.co/JTjNB1OpSg 国語研のトップページからこのページにはどうやってたどり着いたらいいのだろう?"
- UniDic広報担当さんのツイート: "あれ? BCCWJ作るときに使ってたNum Trans と ChaOne 、いま何処? マニュアルしか見つからない……"
- UniDic広報担当さんのツイート: "「ユニディック」です。 小さい「ッ」入ります。 https://t.co/8EHeitda0A"
- UniDic広報担当さんのツイート: "UniDicの音韻論情報、あの謎記号の説明、どっかのマニュアルに書いてあったなあと思ったら、まさかこんなところに…… https://t.co/9s99tIFBF5 UniDic2のマニュアルにはもう載ってない…… しかし、なぜこの場所に?"
- UNIDIC_manual.pdf
histric-2
- UniDic広報担当さんのツイート: "UniDicあるある 解析用UniDic使ったMeCabの出力1行を、 まずタブでspliって、 次にタブの右側を半角カンマでsplit。 時々行数がおかしい。 タブの右側はちゃんとしたCSVなので。 ただのカンマ区切りではないことに注意。 アクセントとか。そこらへん。 https://t.co/BwAFivi4qE"
- UniDic広報担当さんのツイート: "「行数」じゃない。「列数」だ。 (さすがに、あたまがぼーっとしてきたなあ) https://t.co/ReWrFg1mVb"
- Toshinori Satoさんのツイート: "mecab-unidic-NEologd、ユーザーさん居たのか。。IPADIC版と比べて相対的に滅多にcloneされない状態なんですよね。実用的なサービスで使われててるなら今より改善できるけど、使用事例が伝わって来ないので現状維持以上はなかなかできない状態です😅"
- UniDic広報担当さんのツイート: "UniDic2の論文で出てくるXMLから作るSQLiteのDB、 https://t.co/TyJ27uQk3P 立ち消えになってたかと思ったら、 Comainuのとこにそれっぽいものがあった。 https://t.co/0nXr2GCmjz"
- UniDic広報担当さんのツイート: "「コーパスは、」がコーパスですらないとは…… 学生の皆さんへ どちらも「検索用のインターフェース」です。 少納言はBCCWJの文字列検索しかできませんが(ほとんどお試し用) 中納言(要アカウント申請)には、BCCWJ以外のコーパスも含まれており、形態論情報レベルでの検索が行えます https://t.co/rXo7fY3Zcl"
- UniDic広報担当さんのツイート: "形態素解析(Chasenレベル)の説明で「東京都」の例あげて、「東/京都」と切るよりも「東京都」のほうが頻度高いから~ というのを見かけると、 「それ、内部では名詞-名詞の連接VS名詞になってて、表層の連接は見てないから、名詞単発のほうが強いだけ」と思って、読むのをやめる。 https://t.co/S9hTevggYe"
- UniDic広報担当さんのツイート: "まさに、コンテキストの話なのに、そこにまったく触れずに、品詞連接のラティスで解決できるんです。みたいに書いてあるから。 「東/京都」が実在したら、どうするんだよって、前から思っていたので。 ほんとにあったの、すごくうれしい。 https://t.co/LrQlrn0Skw"
- UniDic広報担当さんのツイート: "ちがった。「頻度高いから~」は問題ない。Unigramの頻度だから。 ただ、これを「連接を見てラティス作れば解決できます」というのが、許せないんだ。 https://t.co/LrQlrn0Skw"
- UniDic広報担当さんのツイート: "あたかも表層形の連接まで考慮してあるように説明されているので。 https://t.co/NbLORCjwGD"
- UniDic広報担当さんのツイート: "時間があれば、フルアノテーションして、学習に使いたい。 https://t.co/IMoHqPGCMS 時間が、あれば…… #unidic3への課題"
- FairyMaCorpus/corpus/wikipedia/confusing-unidic at master · FairyDevicesRD/FairyMaCorpus
- UniDic広報担当さんのツイート: "ちなみに、短単位は、「語」という主観的なものではありません。 コーパス内の単語ライクなものの数を測るための、ものさしの目盛りです。ものさしには主観が入ってはいけないので、誰が認定しても揺れないルールで設計されています。"
- UniDic広報担当さんのツイート: "主観といい方は確かに言いすぎですね。 作業者1人1人の恣意性がなるべく入り込む余地を入れないように統制する というのが適切でしょうか。 まあ、何かしら、統制をとるルールと基準がないと、何を1個にするかが作業者間で揺れて、その個数を数えるための資源ができないので。 https://t.co/Eymb3jkw1K"
- UniDic広報担当さんのツイート: "ちなみに、国語研はいまはコーパス作ってますが、もともとは数を数える方が主なお仕事でした。"
- Taku Kudoさんのツイート: "UniDic が最小単位の結合規則を漢語と和語で変えているのは、何かの理由があってからなのだろうか。本当は最小単位にしたいけど、漢語の多くが1文字=1単語になるを嫌ったのだと推測できる。辞書に漢語か和語か書いてあって、それを素性に使うからそりゃ精度高くなるだろう。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "現代書き言葉解析用UniDic:unidic-cwj-2.3.0と 現代話し言葉解析用UniDic:unidic-csj-2.3.0 を公開しました。 https://t.co/be456fHjQO"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "2.3.0では、 入力として、従来の全角正規化ONLYから、全角正規化とNFKC正規化両方に対応しています。 また、Windows用GUIツールChaMameをパッケージングしています。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "ChaMameを使えば、黒い画面を使わずにMeCabの解析が行えます。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "また、解析用UniDicの解析結果末尾に付与されている語彙素IDと分類語彙表番号との対応表が公開されています。 https://t.co/EWkOHTN5xN"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "この対応表はChaMameにもパッケージングされているので、ChaMameを使うと、解析結果に分類語彙表番号を自動付与することも可能です。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "ChaMame単体はここからでもダウンロード可能です。 https://t.co/dzeCpdRfpr"
- パッケージ ChaMame - ChaKi - OSDN
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "unidic-xxx-2.3.0は、日常会話コーパス開発促進に向け、発音形の精度を上げるために、新たにアクセントを素性に追加しています。 そのため、matrix.defが2.2.0よりも巨大になっていますので、ダウンロードの際はご注意ください。2Gほどあります。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "不要ならば、ダウンロード→解凍の後、matrix.defを消していただくことで、サイズを小さくできます。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "2.3.0、matrixは大きくなりましたが、mecab-dict-genする前のmodelファイルはさらに小さくなりました。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "1603系の解析用UniDicの学習時に使用された設定ファイルが発掘されたので、1603系のzipに追加でパッケージングしました。"
- UniDic広報担当(ほかにだれもやりたがる人がいなかったから自発的に)さんのツイート: "UniDic-分類語彙表番号対応表の最新版はこちらからもダウンロード可能です。 https://t.co/Ls2QxZQZi1"
- masayu-a/wlsp2unidic: Alignment table between `Word List by Semantic Principles (WLSP)' and UniDic Lemma ID.
- akirakuboさんのツイート: "unidic-cwj-2.3.0をげっとしてfeature.defの変更点を確認 書字形出現形(orth)と読み(pron)の両方が登場するテンプレートは軒並み削除されてるっぽい アクセント関係のテンプレートが追加されているのは既報通り どの程度精度に変化があったのか気になる所"
- 「UniDic」国語研短単位自動解析用辞書
- 「UniDic」国語研短単位自動解析用辞書|UniDicとは
- 「UniDic」国語研短単位自動解析用辞書|用語集
- 「UniDic」国語研短単位自動解析用辞書|最新版ダウンロード
- 「UniDic」国語研短単位自動解析用辞書|商用利用について
- UniDic プロジェクト日本語トップページ - OSDN
- コーパス検索アプリケーション『中納言』
- Web茶まめ
- UniDic広報担当さんのツイート: "ちなみに、UniDicの短単位規定集を含め、BCCWJに関連する詳細な報告書はここにそろってます。 BCCWJを使う上で意外と重要な情報も意外とさらっと載っています。 https://t.co/yEkicS7UcD"
- 関連ドキュメント 現代日本語書き言葉均衡コーパス(BCCWJ)
- 概要 現代日本語書き言葉均衡コーパス(BCCWJ)
- UniDic広報担当さんのツイート: "ここ1年くらい前から解析用UniDicの評価は、mecab-system-evalではなく、こっち↓を使ってます。 https://t.co/RGw73I02Ky"
- 形態素解析器性能評価システムMevAL
- teru-oka-1933/meval: 形態素解析器性能評価システム MevAL
- corpus.indd
- MeCab で UniDic 辞書を使ってみる / 桃缶食べたい。
- 「UniDic」国語研短単位自動解析用辞書|FAQ
- Microsoft Word - 2017031X_NLP2017_予稿集原稿_kondo.docx
- A6-3.pdf
CaboCha
- CaoboCha: Yet Another Japanese Dependency Structure Analyzer
- taku910/cabocha: Yet Another Japanese Dependency Structure Analyzer
- CaboChaで始める係り受け解析 - Qiita
- CaboChaで係り受け解析をやってみる - Aqutras Members' Blog
- MeCabとCaboChaとRMeCabでテキストマイニングの準備をする - DISTRICT 37
- Python CaboChaを用いて係り受け構造を抽出する方法 | トライフィールズ
- CaboCha(python)で辞書指定 - studylog/北の雲
- UniDic広報担当さんのツイート: "ちなみに、CaboChaのUniDicモデルで付けられる「文節」は短単位ベースなので、国語研の規定する「文節」とはまた違ったものです。 (精度が低いのもそこが関係しています) 詳しくは、BCCWJ形態論規定集(上)を参照ください。 https://t.co/Ehqb2DvdES https://t.co/bDytdEgrGR"
- corpus.indd
- UniDic広報担当さんのツイート: "本当なら、短単位でなく、長単位を出発点として、係り受けのモデルを作ってもらいたいので。 https://t.co/Rxhm1LSC9R"
- コーパス開発センター -Center for corpus development-
- KOTONOHA: 国語研究所のコーパス開発計画 コーパス開発センター -Center for corpus development-
- KOTONOHA: プロジェクト コーパス開発センター -Center for corpus development-
- 258億語の日本語コーパスをウェブで公開~国立国語研究所 -INTERNET Watch
- 国語研日本語ウェブコーパス (NWJC)
- 概要 国語研日本語ウェブコーパス(NWJC)
NEologd
- neologd/mecab-ipadic-neologd: Neologism dictionary based on the language resources on the Web for mecab-ipadic
- neologd (NEologd)
- 新語・固有表現に強い「mecab-ipadic-NEologd」の効果を調べてみた : LINE Engineering Blog
- MeCabとNEologdのインストール方法(CentOS6) - Qiita
- neologd使って形態素解析したい。できれば依存関係とかは丸投げで。 - Qiita
- CentOS 7にmecab-ipadic-NEologdを入れて動かすまで - Qiita
- B6-1.pdf
- kagomeでNeologdを無理矢理つかう - 押してダメならふて寝しろ
- [O] MeCab 用の新語辞書 mecab-ipadic-neologd を公開しました
- 形態素解析器 MeCab の新語・固有表現辞書 mecab-ipadic-NEologd のご紹介
- 「mecab-ipadic-NEologd」なら「ピコ」「太郎」もバッチリ「ピコ太郎」 - 一馬力のメモ帳
- kuromoji.jsで形態素解析した結果とテキストの関係をビジュアライズする | Web Scratch
形態素解析
KyTea
- KyTea (京都テキスト解析ツールキット)
- Graham Neubig - ソフトウェア
- KyTea - the Kyoto Text Analysis Toolkit
- neubig/kytea: The Kyoto Text Analysis Toolkit for word segmentation and pronunciation estimation, etc.
- Zelchさんのツイート: "「辞書」のメンテナンスという意味で言うと、 KyTea デフォルトモデルは最もメンテナンスされているものの1つでしょう。 共同研究などを通じて、「辞書」ではなく文脈ありの「コーパス」が増え続けてる。 医科学、特許、Twitter、レシピ、将棋解説、ガーデニングと多岐にわたる。"
- OdashiさんはTwitterを使っています 「ちなみに多分分かち書きはMeCabより速いです。」 / Twitter
- legalforce-research/vaporetto: Vaporetto: Pointwise prediction based tokenizer
- OdashiさんはTwitterを使っています 「ペロッ、これはKyTeaの3倍速いKyTea! https://t.co/xYJM10r7Qx」 / Twitter
bigram
- bigramとは バイグラム: - IT用語辞典バイナリ
- 統計的テキスト解析(4)~統計モデルとツール~
- 第5回 N-gramのしくみ:検索エンジンを作る|gihyo.jp … 技術評論社
- 束 (束論) - Wikipedia
- 日本語形態素解析エンジン・言語郎 | 形態素解析とは?
Darts-clone
- プロジェクト - s-yata.jp
- darts-clone/Introduction.md at master · s-yata/darts-clone
Twitter
- Yuya UnnoさんはTwitterを使っています: 「これみて思ったが、効率的なFSTの実装ってどうするんだろう。double arrayの拡張で出来るんだろか。今時、辞書引き速度なんて気にしないのかな https://t.co/dJrBXdRhCs」 / Twitter
- たけっぱさんはTwitterを使っています: 「形態素解析機では、入力テキストに対して最初にラティスを生成するのですが、そのために効率的に辞書データの持つ必要があります。 その実装としてFST, ダブル配列などがあるって感じですね。 janomeはpyconjp2015で発表があり資料がありました。 https://t.co/kUJSZxO5XY #rettypy」 / Twitter
- Pyconjp2015 - Python で作って学ぶ形態素解析
- たけっぱさんはTwitterを使っています: 「違うな、辞書に該当するエントリを見つける操作は有限オートマトンがありますが、その実装方法としていくつかバリエーションがあり Minimal Acyclic Finite-State Automata, trie木、ダブル配列などがある感じですね。」 / Twitter
- たけっぱさんはTwitterを使っています: 「指摘がありましたので修正です: MeCabやjanome、kuromojiの形態素解析器では、入力テキストに対して最初にラティスを生成するのですが、そのためにいかに効率的に辞書データを保持するかが課題になります。 その実装として代表的な構造にFSTやTrie木があります。」 / Twitter
- たけっぱさんはTwitterを使っています: 「指摘がありましたので修正です: (MeCabやjanome、kuromojiの)形態素解析器では、入力テキストに対して最初にラティスを生成するのですが、そのためにいかに効率的に辞書データを保持するかが課題になります。 その実装として代表的な構造にFSTやTrie木があります。 #rettypy」 / Twitter
- ODA, YusukeさんはTwitterを使っています: 「@takegue KyTeaのような境界が確定するまで辞書を使わない方式もあるので「形態素解析器では」は主語が大きすぎ」 / Twitter
- たけっぱさんはTwitterを使っています: 「@odashi_t 主語大きすぎました...」 / Twitter
- takuya-aさんはTwitterを使っています: 「FSTによる辞書引きの実装のなかで、僕が知る限り最先端を行ってるのはLucene FST https://t.co/w4OItebepj だと思うけど、他にもいい実装があるかもしれない」 / Twitter
- lucene-solr/lucene/core/src/java/org/apache/lucene/util/fst at master · apache/lucene-solr
- takuya-aさんはTwitterを使っています: 「Lucene FSTについてはこの会で @moco_beta さんからいろいろ教えてもらえそう https://t.co/xYF898b6jp」 / Twitter
- Lucene 版 #Kuromoji のコードを読む会(辞書ビルダー編) - connpass
@taku910
FAQ
- Taku KudoさんはTwitterを使っています 「sentencepieceを超巨大なデータで学習した時にOOMになるのをなんとかせえ というのがFAQになりつつある。そもそもサブワードは高頻度の部分文字列の上位数十k個を使うだけなので、サンプリングで十分だと思うのだが、なしてそこまでデータ量に拘りたいのか。」 / Twitter
- OdashiさんはTwitterを使っています 「@taku910 コーパスを均等にシャッフルできる(適当な標本を取っても偏りがない)ことを暗に要求していませんかね」 / Twitter
- Taku KudoさんはTwitterを使っています 「@odashi_t 要求していますよ。あくまで OOMが出るときの workaround を提示してるのであって、同一ドメインのテキストであればサンプリングで十分だと思います。偏りが気になるのであればメモリ買ってくださいとしか言えません。」 / Twitter
- Katsuhito Sudoh (ja)さんはTwitterを使っています 「@taku910 @odashi_t つうかそんだけエイヤと集めて全部たらそれはそれで大層偏ったコーパスになってそうなもんですよね…」 / Twitter
- Katsuhito Sudoh (ja)さんはTwitterを使っています 「@taku910 @odashi_t s/全部たら/全部使ったら/」 / Twitter
- OdashiさんはTwitterを使っています 「@katsuhitosudoh @taku910 経験じゃ納得させられないだろうし、何か統計を出して「サンプリングで十分」としといた方がよさそう」 / Twitter
- Taku KudoさんはTwitterを使っています 「すでに実装していますが、全データを使いたい目的でこサンプリングサイズを極端に大きく設定してくるのです... https://t.co/uUSbDZptgU」 / Twitter
- sentencepiece/util.h at master · google/sentencepiece
#nlp2018
- Taku Kudoさんのツイート: "#nlp2018 形態素解析WSお疲れ様でした。解析器・辞書開発者の指針や想定ユーザを明らかにし、ユーザとのマッチングを取るという当初の目的は十分果たせたと思います。"
- Taku Kudoさんのツイート: "#nlp2018 E2Eの出口が形態素解析になるというUniDic/BCCWJの見解が明らかになっただけでも収穫が大きい。人文系の研究を目的としているため。工学的な応用であれば、長単位を使ってほしいとのこと。"
- Taku Kudoさんのツイート: "#nlp2018 ニューラルE2Eと基礎解析の関係について言いそびれたけど、結果を人が直接見たり、簡単なルールで出力を加工して結果とするのであれば、その解析は必要であろう。解析結果が別の機械学習手法の入力になってれば、jointすればいいので、「要らない」という方向性になってもおかしくない。"
- Taku Kudoさんのツイート: "#nlp2018 全体的に、短単位→長単位の方向性が感じ取れた。招待講演にもあったけど、短単位は辞書構築が楽な反面リッチな情報を付与できない。例えば、読みが「吉田山(やま)」「筑波山(さん)」になるかは長単位として記述するしかなく、アノテーション→学習→まとめあげは無駄が多い。"
- Taku Kudoさんのツイート: "#nlp2018 国語研長単位は、文節から内容語と機能語を取り出したものだが、定義的にはトップダウンに決まり短単位のまとめあげではないとのこと。実際、短単位品詞列から決定的に文節が決められないので(要機械学習)、本来別物と思ったほうがいい。"
- Taku Kudoさんのツイート: "#nlp2018 招待講演にもあったが適切な長単位の定義は応用によって変わり、その応用での曖昧性が解消ができる最小単位が語の単位となる。NEologd は、読みを取ることが主目的であるため、有名人の名と姓はつなげて1語となる。この原則で作られていれば、解析結果が直接ゴールとなりえる。"
- Taku Kudoさんのツイート: "#nlp2018 形態素解析で論文が書けるのは、精度や速度に関することで、こういう機能が付いたとか、新しい情報が出力できるといった内容では難しい。0.95が0.96になるのは評価されて 0が1になるのは評価されにくい現状はなんとかしたいが、WSでは後者にスポットライトが当たったのは良かった。"
- Taku Kudoさんのツイート: "#nlp2018 「サブワード正則化: 複数のサブワード分割候補を用いたニューラル機械翻訳」という発表で優秀賞をいただきました。ありがとうございます。アイデアは驚異的に単純で、適用範囲が広いです。"
- Taku Kudoさんのツイート: "#nlp2018 今回の話はニューラル言語処理のテキスト前処理+ID化を学習時にon-the-flyで行っています。静的処理に比べ、サンプリング、ノイズ付与、データ拡張等の柔軟性が上がります。今回の話は一般化できて、前処理がある確率分布としてモデル化できていれば、そこからサンプリングするだけです。"
- Taku Kudoさんのツイート: "形態素解析ワークショップの発表資料へのリンクを掲載しました (公開承諾が得られたもののみ) 。よろしくお願いします。 https://t.co/WThWaNJDDt"
- Taku Kudoさんのツイート: "形態素解析WSの UniDic の資料を掲載しました。UniDicを応用として使おうとしたときの疑問点がまとめられています。UniDic は、形態素解析をゴールとする人文系研究のための辞書ということが明確になったのは良かったです。https://t.co/WThWaNJDDt"
- 形態素解析の今とこれから
Wikipedia
- Taku Kudoさんのツイート: "形態素解析のLatticeは、よくグラフとかDAGとして紹介されるけど、ある位置で開始する・終了するノード集合は完全二部グラフになるという便利な性質があるので、エッジをわざわざ管理する必要なく、ノードの出現位置だけ管理すれば大丈夫。グラフだからといって汎用データ構造使う必要ない。"
- 完全2部グラフ - Wikipedia
- 2部グラフ - Wikipedia
- 独立集合 - Wikipedia
- グラフ彩色 - Wikipedia
- マッチング (グラフ理論) - Wikipedia
histric
histric-1
- Taku Kudoさんのツイート: "#nlp2017nmt subwordで出てきたBPEとwordpieceは基本的に同じです。sentencepieceはBPEに加え、言語モデルによる学習も実装しているのと、単語リストからではなく生文から学習することで単語分割がいりません。多言語処理がやりやすいです。"
- Taku Kudoさんのツイート: "多言語処理をするときは、言語ごとに異なる前処理が必要だったのですが、多言語の生コーパスを混ぜて単一のSentencePieceモデルを学習するのが手っ取り早いです。言語ごとに処理を切り替える必要がなくなります。"
- Taku Kudoさんのツイート: "自然言語処理の要素技術(単語分割・構文・意味解析)の応用先として機械翻訳があったけど、いまや立場が逆になっているような気がしている。すなわち、大量のパラレルデータとE2E学習が可能なNMTを使えば(例えば転移学習)、要素技術の精度が上がるのではないかと。"
- Taku Kudoさんのツイート: "もともと生成(decode)向けにつくったSentencePieceですが、意外と Encode側でも高性能になるので、いよいよ解析タスク全般で通常の単語分割はいらないのではないかと思う。サブワードじゃなくても文字CNNでもよい。neologdは壊滅的にNNと相性良くない。"
- Taku Kudoさんのツイート: "KyTeaをTrgで使った結果を見たらやたら「1508年〜15 18年」のような出力がやたらあって、よく調べたら、数値の分割の一貫性がないことに起因している(年がつくかで分割変わる)。"15 18" をdetokenizeするのは厄介で、現実的には空白入れるしかない。"
- Taku Kudoさんのツイート: "NLPでの緻密な単語分割を人間がやっているとは思えないし、その道の専門家しか学習データ作れない実情を考えると、もっと大雑把で直感的な(教師なし)分割で良くて、緻密な分割はそこからの差分を「無理やり鍛えて適応する」と考えたほうが、実情を反映できそうな気がする。"
- Taku Kudoさんのツイート: "BPEは分割手法が全く異なるので、kuromoji/mecabのモデルに変換できません。unigram だと、語彙テーブルの対数尤度に -1 かけて整数コストにし、未知語処理を切れば原理的には一緒になります。 https://t.co/lG0ZwGX8XY"
- SentencePieceを形態素解析のように使えるAPIを公開した - Qiita
- Taku Kudoさんのツイート: "DiscoGAN と CycleGAN アイデアは同じだと思うのだが、けっこうそう思っている人が多くて安心した。言語処理で使えるかは謎。可変長なので、元に戻したときの類似度の定義が難しい。"
- Taku Kudoさんのツイート: "さもすべての自然言語処理に使えるような記述になってて注意が必要。特定言語の特定処理にしか使えない。言語・タスク非依存なのはNFKCぐらい… https://t.co/uNcIvduprw"
- 自然言語処理における前処理の種類とその威力 - Qiita
- Taku Kudoさんのツイート: "実応用を考えるとすべての前処理は可逆変換であってほしい。情報を落としたり正規化するのは構わないが、元のテキストとの対応が復元できれば複数のNLPシステム間で結果統合がやりやすくなる。"
- Taku Kudoさんのツイート: "SentencePiece の実験結果を足しました。(Src/Trg どちらかだけ等) KyTeaとSPが似た傾向を示していますが、SPは語彙サイズが 1/10で済みます。neologdとの組みあせが強いというのも面白いです。 https://t.co/v3glMTTOul"
- google/sentencepiece
histric-2
- Taku Kudoさんのツイート: "neologdと組み合わせると良いことは、長い単位で確実に分割できるところは分割しておいて、あとはデータ駆動でサブワード化するというお互いの長所が補完できるからだと思います。"
- Taku Kudoさんのツイート: "sentencepieceは NFKC のサブセット(CCC並び替え以外)を実装しています。ICUを使って静的な正規化規則を作ります。実行時にはICUは必要ないです。 https://t.co/Q5EA1Uqweo"
- Taku Kudoさんのツイート: "ICU経由で作ったNFKCルールはここにあります。独自正規化をしたいときは適当にいじって学習時に --normalization_rule_tsv で指定すると、モデルに正規化規則が埋め込まれます。 https://t.co/EnhDBkgbft"
- Taku Kudoさんのツイート: "数年前に議論になったけど、短単位係り受けは形態論と統語論をごちゃまぜにしてて気持ち悪い。さらにUDは意味も扱おうとしてるので混乱。表層的な単語が文節相当になる言語は結構あるし、文節は特異な単位ではない。好きな形態素解析使えばいいし。 https://t.co/Lvk35I0lE9"
- 「語」とはなにか・再考 - murawaki の雑記 - rekkenグループ
- Taku Kudoさんのツイート: "分散表現とは、単語がN次元で表現されるのではなく、N次元の実数ベクトル意味空間のランダムウォークから「単語相当」のシンボルがサンプリングされていると解釈するのが議論のとっかかり"
- Taku Kudoさんのツイート: "実践的な内容という話なので、mmap の話とか入れてるけど、細かすぎてほんとうにいいのか謎。辞書等の大きいリソースをOS上でどう管理するかは、10年前は結構重要だったけど、今どきはどうなんだろう..."
- Taku Kudoさんのツイート: "SentencePieceの語彙数が16384なのが気になる。 被覆率が99.95%になるよう語彙数を決めて(これが16000)、残りは unk になる。分割結果には<unk>シンボルが出てこないのが誤解の元か... https://t.co/Sh08fXSeze"
- Small-NMT Task
- Taku Kudoさんのツイート: "ちなみに、--character_coverage=1.0 とすれば、学習データの全ての文字が1語彙になります。ただし、CJKはゴミみたいな低頻度語が使われるのであまり現実的ではありません。99.95%の被覆率は、単語ベースにくらべれば圧倒的に高いですし。"
- Taku Kudoさんのツイート: "重複あり(通常のカバレッジ)で98.59%は大きいです。spmの学習に使ったデータでのカバレッジですか? そうであれば、99.9%以上になるように最小語彙セットを作るので、何かがおかしいです。再現できるようなデータをいただければ調査します。 https://t.co/qw1Vk7QKzz"
- Taku Kudoさんのツイート: "長男君の塾の国語の宿題に、品詞毎に単語を分類する問題があって、MeCabを使って解いたったら驚かれ、さらにこれを作ったのワシじゃといったら更に驚いてた。正確には辞書は作っていないけど…"
- Taku Kudoさんのツイート: "sentencepiece の Python wrapper を足しました。pkg-config に依存しているので、sentencepiece の再インストールが必要です。あとは pip install でいけるはず。 https://t.co/muImH9AZhk"
- sentencepiece/README.md at master · google/sentencepiece
- Taku Kudoさんのツイート: "最大単語長さが極端に短い(4とか)設定の単語分割は、問題が極端に単純になるので軽くチートだと思う。完全に単語ラティス作れるし。"
- 帰国した情報系センター教員さんのツイート: "NLTKのword_tokenizeを使っていた箇所を、sentencepieceに置き換えたら2%精度が上がった(エラー率が50%下がった)。単語区切りって何なのかなあ‥‥"
histric-3
- Taku Kudoさんのツイート: "JESC字幕コーパスでモデル作ってみたが、文脈を無視した文単位の評価なので、リファレンスより良い結果になっている。つまり、問題設定として成立していない。文脈にはみなさん興味ないのかな?"
- Taku Kudoさんのツイート: "字幕みたいにノイズが多いコーパスは、学習がノロノロとしか進まず、イテレーション回せばまだ上がるかもしれない… みたいな事案が続いてる。 いまさらの気づきかもしれないが、綺麗なデータはすぐに収束する。"
- Taku Kudoさんのツイート: "WMTの評価は、人手評価があるのでdetokenizeした結果を提出して、NIST tokenizerで分割・評価するのが通常だけど、最近は評価データを moses tokenizerで分割した結果をオラクルとして評価している事例が多い気がする。分割結果がオラクルだとするのは、C… https://t.co/vNMKlPltop"
- Taku Kudoさんのツイート: "「コーパスと自然言語処理」のA氏担当(形態素解析)章を見たが、ザ・アカデミアという感じで私の本と方向性が違うし凄みを感じる。読者が違うからしょうがないにしても、私のは論文に書かれない実応用上役立つ知識集みたいな色合い。"
- Taku Kudoさんのツイート: "例えば、形態素解析のラベル・長さバイアス問題は、それ以前の逐次実行手法が抱える問題であって、OSS含め利用可能な逐次実行形態素解析器がないことから普通の技術者が感じることはない。という判断で、私の本には書いていない。"
- Taku Kudoさんのツイート: "MeCabの右文脈IDと左文脈IDがあって、実質同じIDなのに分ける必要があるのか? というのは、日本語の振る舞いとそれにどう工学的にアプローチしてきたか歴史的背景を説明する必要がある。"
- Taku Kudoさんのツイート: "end-to-end のNLPやれるほどの十分な学習データがあるのは翻訳ぐらいしかないので,翻訳も少量のコーパスでうまくいくような方法論のほうが他分野へ応用がしやすいかも (単に少量のほうが実験が楽だという言いわけ)"
- Taku Kudoさんのツイート: "未探索のハイパーパラメータがすごくいい結果を出すことが判明。 慌てて再実験。話の整合性もよくなるからいいとは思うが、結構センシティブな設定になるのが難。"
- Taku Kudoさんのツイート: "本日発表したサブワード正則化のためのサンプリングAPIは、sentencepiece に組み込まれています。C++: https://t.co/Sjkn5Mf9id Pythonのサンプル: https://t.co/wvVkUVS2uE"
- Taku Kudoさんのツイート: "形態素解析WSで、工学的アカデミアと産業界の温度差を見た。工学は良くも悪くも精度が上がればいい立場。が、〇〇という語句が取り出せたとしても、後段処理が認識できなければ無意味。後段の知識と単語分割の知識と統一的に扱うようなやり方に産業界は向かっている (例 NeLogd)"
- Taku Kudoさんのツイート: "後段の処理が機械学習ベースになってるのであれば、前にも言ったように分割を周辺化したりジョイントすればいいので、形態素解析はいらなくなる。"
- Taku Kudoさんのツイート: "Adversarial Logit Pairing どうしてこんなんでうまくいくのか感が拭えない。"
- Taku Kudoさんのツイート: "使う人少ないと思いますが、SentencePiece の unk/bos/eos/pad の ID を変更できるようになりました。https://t.co/qkIFgSqdgQ"
- Taku Kudoさんのツイート: "mecab.h が酷い言われ方w Cインターフェイスと完全に対応とれる作りなんでそこんとこ忖度してほしい。 STLすら外に出ていないし、そもそも C++03 がターゲットなので unique_ptrない。どこでも動く最大公約数のライブラリだったら、Cだけでいいと思う。C++はおまけ。 https://t.co/MTZR4Ptu3w"
- C++ラッパーを書く ~ C++の複雑怪奇な言語仕様を理解することによるメリット - Qiita
- Taku Kudoさんのツイート: "RAII は分かるけど、イテレーターは糖衣でしかないので使う側がラップしてくれとしか言えない。むしろ ABI互換性が保証されない C++ で、複数のコンパイラ、DLLやシェアドライブラリまで考慮したヘッダを書くことにどれだけ神経をすり減らされることやら。で、結局Cに落ち着く。"
- Taku Kudoさんのツイート: "SentencePiece 更新しました。ライブラリ内でのエラーは外に放出されるようになりました。Python は例外が飛んできます。 https://t.co/iMQl3eZLwJ"
- Taku Kudoさんのツイート: "BLEUの評価時に 本体の前処理(単語分割)を使うなという話。以前は守られていたけど、NMTになってめちゃくちゃになった。 私も言い続けてきたけど、こうやってリファレンスがあるとありがたい。 https://t.co/KjQFbqr8vQ"
- [1804.08771] A Call for Clarity in Reporting BLEU Scores
histric-4
- Taku Kudoさんのツイート: "SentencePiece の Travis-CI ルールを更新。Linux は docker化、Macのテスト追加、python wrapperのテスト、wheel パッケージの作成 (アップロードはしない) などなど。https://t.co/6b25gqz57t"
- Taku Kudoさんのツイート: "形態素解析の本を書いて、形態素と語をいっしょくたんに解析している現状をやめて、語の下位構造として形態素がある本来の形に、日本語もすべきだと強く思うようになった。"
- Taku Kudoさんのツイート: "なんのリテラシーもないまま macOSをUnix代わりに使うのはプチ勘弁。 そもそも Linux 向けに作ってるものを、さも macOS で動いて当然みたいな態度を取られるとやる気なくす。Macサポートには、それなりの時間と金がかかるし、個人的に関わりたくない。我慢してるんです。"
- Taku Kudoさんのツイート: "https://t.co/sX6nMqPzgv Universal Sentence Encode Lite で SentencePiece が使われています。SentencePiece のモデルファイルは、分割だけでなく、コンパイル済みのテキスト正規化ルールも内包する完全自己完結パッケージなので、再配布しても再現性が保証されます。"
- Module google/universal-sentence-encoder-lite/1 | TensorFlow
- Taku Kudoさんのツイート: "spmのメモリアロケーション問題、伝家の宝刀 thread_local で誤魔化すか。負けた気分。tcmalloc にするだけで、最大40%ぐらい速くなる。"
- Taku Kudoさんのツイート: "リソースの爆発を防ぐために、ある程度の上限を決めとくことはよくあるけど、そこを平気で超えるエクストリームユーザが少なからずいる。SentencePiece の語彙サイズを単語異なり数より大きくしたいとか。--split_by_whitespace=false で単語nグラムまで考慮できるけど、やりすぎな気が"
- Taku Kudoさんのツイート: "subword-nmtのBPE分割がPythonでも比較的高速なのは、事前単語分割結果を前提として、単語単位で結果をキャッシュしているからのようだ。その前提が効かない日本語だとSentencePieceに比べて400倍ぐらい遅くなる。にしても、キャッシュの寿命を考えてないのはいかにも実験コードっぽい。"
- Taku Kudoさんのツイート: "周りでもMBP離れが加速している。"
- Taku Kudoさんのツイート: "サブワード=BPEという認識を無くしたい。要望があったので、語彙を制限する機能(subword-nmtにはある)を実装したけど、貪欲アルゴリズムであるがゆえ、ちょっとした拡張でも実装がめんどい。 https://t.co/HMTVCLPvRG"
- Taku Kudoさんのツイート: "言語モデルで語彙を制限したければ、結局全探索するので該当するノードをラティスから取るだけでよい。BPEの場合は、将来どうなるかわからないので、処理の途中で止めるわけには行かず、いったん完全解を作って、マージした逆順に再分割する。"
- Taku Kudoさんのツイート: "というか、この逆順の方法が正しいかどうかも謎。考えるのも無駄なので、深追いしない。"
- Taku Kudoさんのツイート: "ちなみに、CJKの(教師なし)単語分割で、学習時にはがんばって語彙獲得をするけど、分割は最長一致という話をちらほら見る。これがうまくいくのは、アルファベット数が多くて解空間がスパースであるからだけど議論されることはあまりない。英語やDNAシーケンスでやると終わる。"
- Taku Kudoさんのツイート: "さらに、BPEがうまくいくのは目的関数が劣モジュラだからで、劣モジュラではない尤度を目的関数にすると動かなくなる。が、CJKだと解空間がスパースなので尤度+貪欲法でもなんとなく動く。オリジナルのwordpiceモデルがCJKのみで尤度+貪欲法を使ってたのはこういう背景がある。"
- Taku Kudoさんのツイート: "アルファベットの異なり数とか平均単語数の事前情報を無意識に仮定していることがあるので、言語非依存というときには注意が必要。"
- Taku Kudoさんのツイート: "競プロ、Kaggle、トップカンファレンス、人材を評価する基準としては素晴らしいと思うけど、採用で本当に重要なのはどれかに偏らないように多様性を確保することだと思う。様々なバックグラウンドを持ったその道のプロが集まったチームのほうが経験的に楽しいし強い。NLPは性質上多様性は高いと思う。"
- Taku Kudoさんのツイート: "社内で同様のリクエストがきたから想定内とは言え、エクストリームユーザが増えてきている。 https://t.co/hkFhjRZ8jH"
- Does not recognize \n · Issue #101 · google/sentencepiece
- Taku Kudoさんのツイート: "SPMは、デフォルトで<s>, </s> を特別視せず通常の文字列として扱います。内部トークンをリクエストに入れることで動作が変えられたり、これらがデコード時に外に漏れるというのは、(S|N)MTあるあるのバグです。SPMは、実験にも使えるようworkaroundがあります。詳細は以下。 https://t.co/WzQZ4mcSTC"
- Understanding BOS/EOS symbols · Issue #102 · google/sentencepiece
- Taku Kudoさんのツイート: "ユーザが入力できるコンテキストはXSSといった危険があるので、あらゆる状況で神経使わないといけないというのは普通のエンジニアの発想だが、どうも研究者にはピンとこないらしく、 <s> の話も適当なワークアラウンドで回避されることしばしば。住む世界が違うのか。"
histric-5
- Taku Kudoさんのツイート: "TFとChainerのコードを並べると、たしかに前者の辛みは理解できるけど、機械学習プラットフォームとして目指す世界観を俯瞰すると、よくできてると思う。機会あったらどっかにまとめたい。"
- Taku Kudoさんのツイート: "string_view (absl) にして入力はゼロコピーに (といっても、今までも独自StringPieceなのでパフォーマンスは変わらず)。 最上位のAPIに関しては極小 string_view もどきを作り、ここでもコピー発生しない。 https://t.co/87ifD4cs4Q"
- Taku Kudoさんのツイート: "こっそり公開していたのですが、見つかったので... sentencepiece の tf ops を実装しています。生文を placeholder 経由で feed できるようになりますspm のモデルがグラフに埋め込まれるので、デプロイが楽になるかもです。https://t.co/2Ss9yIr7gV"
- how to use sentecepiece tensorflow Op · Issue #125 · google/sentencepiece
- Taku Kudoさんのツイート: "例の op を tf.contrib にもってくには、まず Windows 対応しないといけないし、そうなると cmake のほうが楽だし.. めんどい"
- Taku Kudoさんのツイート: "発表あるのに現実逃避に cmake に移行中"
- Taku Kudoさんのツイート: "メルボルン中にちまちまやっていた cmake 移行をマージしました。ついでに tcmalloc が利用可能のときはリンクするようにしました。言語やコーパスに依存しますが、10-40%ぐらい速くなります。 https://t.co/iMQl3eZLwJ"
- Taku Kudoさんのツイート: "ACL終わったので…しばらく前に機械翻訳チームを離れ、別チームに移りました。ここ最近研究をやることになって運良くACL通ったのですが、やはり製品コードを触ってたいかなと。あと、研究として機械翻訳をやることは自分の興味とズレる。ACLもニッチな話で翻訳に応用したが正しいですし。"
- Taku Kudoさんのツイート: "夜な夜な spm の windows 対応してたが、 dll の作成はほぼ諦め。手抜きして全 export を試みたが、protobuf 周りで未解決シンボル出まくり。やはり export するclass/関数を陽に定義せねば。そうなると設計も含めて結構変更が必要。改めて C++とdllは鬼門すぎる。"
- Taku Kudoさんのツイート: "そもそも protobuf もデフォルトで静的リンクで、dll は「やりたきゃやれば」という立場。あと、dll 経由で protobuf をexposeするなと書いてある。つまり、dll 中にある protobuf message を main から使えない。 https://t.co/Flc7EBfaSt"
- Taku Kudoさんのツイート: "ACL short paper は単に long の短い版じゃないよとちゃんと書いています。negative result もOKというのがわりと重要。ある意味多様性を担保してるのだと思っています。 https://t.co/Huxrk0QVGM"
- Taku Kudoさんのツイート: "データの入手が容易だからしょうがないにしても、全体的に英語を前提としたNLPが増えている印象。怖いのは、英語の言語的特徴を陰にかつ無意識に仮定したモデルが増えると、なかなか辛いものがある。"
- Taku Kudoさんのツイート: "TF hub 経由で elmo が使えるもよう。https://t.co/ZKeSVOxKhT"
- Module google/elmo/2 | TensorFlow Hub | TensorFlow
- Taku Kudoさんのツイート: "多様性がないがしろにされる環境にいるとストレスで、さらにそれが無意識に起こっていることが残念だ、ってなことを某先生に言ったら、ことさら日本は多様性に対してコストがかかるから、意識しないと自然とそうなるよってことを言われ、妙に納得した。"
- Taku Kudoさんのツイート: "現環境への破壊的操作満載のスクリプトでmac版 wheel を作っているのですが、手元で簡単に仮想環境が動かせない macOS でみなさんどうやってやりくりしているのでしょうか。実機なしで travis だけで開発している私は変かもしれないけど、それが普通であってほしい。 https://t.co/qdm1QWIhdi"
- Taku Kudoさんのツイート: "自戒を込めて日本は、何かライブラリを書いた時に、コードの書きやすさ、気持ちよさ、見通しの良さといった主観的なことを前に出しすぎな気がする。さっさと仕事がしたい人にはどうでもよくて、何ができるか、何が違うのかという具体例を示さないと評価されにくい。"
- Taku Kudoさんのツイート: "git tag 一発で、 travis/appveyor 上での linux, win, osx pip パッケージのビルド、テスト、デプロイが完結できるようになりました。組み合わせでもかなりある。数ヶ月前は、pip って何?って状態でしたが、一通り経験すると次が楽になりそうです。 https://t.co/jCxTkIUHvG"
histric-6
- Taku Kudoさんのツイート: "文字が持つ密度が異なるので、漢字を入れて評価しないと言語ユニバーサルとは言いづらいかも。サブワードだと漢字圏の言語と英語の対訳をまぜて学習した場合、1文あたりのトークン数がだいたい同じになって、情報量的には同じなんだなということが実感できる。 https://t.co/7s6VrKUTdN"
- [1808.09943] Revisiting Character-Based Neural Machine Translation with Capacity and Compression
- Taku Kudoさんのツイート: "件の本の目次があります。その道のプロにはアタリマエのことしか書いていません。事前計算等の高速化の話は少し役に立つかも。 https://t.co/Y0UFcypcco"
- Taku Kudoさんのツイート: "sentencepiece 遅すぎじゃという指摘を受けて、いろいろ修正中。LSTMに比べればダンチで速いのでそんなに頑張っていなかったけど、改めて世の中は広い。virtual call を止めたり、断片化が起きにくいようにまとめてメモリアロケーションするなど、普通の最適化で速くなりそげ。"
- Taku Kudoさんのツイート: "本や論文の執筆のために Linux laptop を持ち歩いていたのですが、それから開放され、chromebook に戻ってきた。楽でよい。普段の仕事はこれだけでできるし。"
- Taku Kudoさんのツイート: "conda 対応しろというリクエストが… むむむ"
- Taku Kudoさんのツイート: "sentencepiece の normalizer に moses の再実装を追加したほうがよいのだろうか? 個人的/思想的には不本意ですが、ほぼほぼでファクトになってるのと、今の前世紀設計・実装は扱いにくいのではないかと。"
- Taku Kudoさんのツイート: "長男くんに Python の fractions モジュールで有理数・分数計算を見せたら感動してた。次は sympy か"
- Taku Kudoさんのツイート: "SentencePiece(unigram) が中国語評判分析でうまくいった話。事前分割が不必要等の意図通りの内容で嬉しい。これに限らず中国語でうまくいく話はよく聞く。中国語教師あり単語分割の進展をよそに、単純教師なしが良いというのは複雑。分割を目的にしてはいけないことの戒め https://t.co/S72B2grmlG"
- Taku Kudoさんのツイート: "拙著の発売日です。これで夢の?印税生活"
- Taku Kudoさんのツイート: "IBMモデル1的な教師なしで対応を取る手法は、汎用すぎてどこにいっても役に立っている。"
- Taku Kudoさんのツイート: "件の本にも書きましたが、memory mapped file がサポートされてる言語だと、辞書中の様々な文字列情報をゼロコピーで扱えるので高速になります。JavaやPythonだとそのへんの苦労が想像できます。 https://t.co/5qPmSaLiAi"
- Javaでつくる本格形態素解析器
- Taku Kudoさんのツイート: "sentencepiece のissue がたまり気味。チーム離れてから完全副業状態なのでどうにもこうにも。"
- Taku Kudoさんのツイート: "そもそも入力が単語列という話は、単語とは何かを考える人にとっては興味が薄いのです。これも英語至上主義の弊害かな..."
- Taku Kudoさんのツイート: "単語とは何かを言うなら、文とは何かを考えずに文埋め込みを計算するのもよく分からない。話し言葉や古語には文がなく、書き言葉に導入された概念。主語省略は文を前提にした議論であって、英語と日本語の文相当のチャンクの定義のズレに注目したほうが面白いと思うが、私だけだろうな。"
- Taku Kudoさんのツイート: "std::string 使えばC++で文字列処理楽だぜーといってたのはもはや過去の話に。NLPは内部で大量の文字列を扱うので、std::string_view にするかしないかでパフォーマンスに影響が。古き良きポインタ演算の世界へようこそ。コードの見た目も結構変わってきた。"
- Taku Kudoさんのツイート: "mecab-unidic の中の人は、私以上に mecab を使いこなしているのは間違いないですが、開発当時の想定を遥かに超えて、現状では無駄が多いので、作り直したい気分ではある。"
- Taku Kudoさんのツイート: "連接表が 715MByte というのはなんといいますか..."
histric-7
- Taku Kudoさんのツイート: "absl::flat_hash_map が使えるようになってる。結構高速なのでおすすめ。https://t.co/d7EZPD0Hff"
- abseil-cpp/flat_hash_map.h at master · abseil/abseil-cpp
- Taku Kudoさんのツイート: "今書いてるコード flat_hash_map のルックアップが全体の70%ぐらいで、どこをどうやって高速化するか頭をかかえる。最適化を意識せずに書いたコードが普通に速かったのは嬉しい反面。"
- Taku Kudoさんのツイート: "放置気味だったので、出発前に更新。tf 本体のバージョンをパッケージのバージョンに埋め込むようにした。ビルドもオフィシャル docker image 上で作るようにしたので、同じバージョンのオフィシャル tf pip パッケージであれば、ABI互換性は保たれるはず。 https://t.co/kEXgX05HCP"
- tf-sentencepiece · PyPI
- Taku Kudoさんのツイート: "ポスターデモ終了。BPEとどう違うのというのがFAQ。そうだよね。システム vs アルゴリズムの名前の違いなので紛らわしい。"
- Taku Kudoさんのツイート: "ベンチマークに一喜一憂する弊害。SQuAD に限れば、機械は賢いパターンマッチャー/人間は範囲選択ミスばかりという分析もある。研究者はより純粋に「理解する」ことの本質をベンチマークを通じて知りたいのであって、人間を超える・超えないといった話ではない。 https://t.co/c65JvSZ2nr"
- on-squad.key
- Taku Kudoさんのツイート: "自然言語の encoder は、BERT 関連で急激に発展したけど、本丸は、decoder つまり、言語生成だと思っている。評価が難しいのが難点ですが。"
- Taku Kudoさんのツイート: "#misreading sentencepieceについて補足。BPEは最長一致ではなく、学習時の文字結合ルールを同順番で再生することで行います。言語モデルの分割は、分割そのもののNLPっぽさや直接的な翻訳精度の向上が目的ではなく、スコアがある→複数分割/サンプリングできる→データ拡張して精度向上という流れです"
- Taku Kudoさんのツイート: "#misreading BPEや言語モデルはデータ圧縮と関連があって、前者はテキスト全体のトークン数の最小化、後者はエントロピーの最小化をしています。LZとハフマン符号の違い。BPEは貪欲法ですが、目的関数が劣モジュラなので、あの方法でも理論的に厳密解との差が保証できます。"
- Taku Kudoさんのツイート: "某MNLPで marian NMT の方に sentencepiece と sacreblue オシなので頑張ってねと告げられた。ただ protobuf の依存は嫌だから何とかせいとも言われた。いよいよ nanopb に移行か?"
- Taku Kudoさんのツイート: "N→G に移った経験から言うと、Nのほうが研究テーマの裁量を含め圧倒的に自由だった。MeCabやれたし。純に自分の研究・開発したのなら、アカデミアだと助言された(そう思う)。つまり報酬低いからダメといった単純な話ではなく、仕事内容、裁量、自由度を含めて考える必要あり。"
- Taku Kudoさんのツイート: "もちろん究極の自由は起業なんでしょうね。私はその能力がないので無理です。"
- Taku Kudoさんのツイート: "メモリ4Gがバズってるみたいですが、手元の自宅普段使いマシンは、メモリ4G ARMv8 の chromebook 。特に困っていない。"
- Taku Kudoさんのツイート: "marian nmt がサポートするようになって、実践的で有益なフィードバックをいただけるようになったのは幸いだが、それなりの作業量が必要だと思われる。"
- Taku Kudoさんのツイート: "https://t.co/ik4PyD4Ay1 仕事増えた"
- Information about protobuf · Issue #254 · google/sentencepiece
- Taku Kudoさんのツイート: "BCCWJ/Unidic のこの手の話題は枚挙に暇がない。「仕事部屋」や「空き部屋」「山仕事」が1短単位というのは、原則を知っていればちゃんと理解できる。"
- Taku Kudoさんのツイート: "BCCWJ/Unidic で、「かけそば」は1語、「かけうどん」は2語というもの、短単位認定基準を適用するとそうであるとしか言えない。「うどん」の語源は諸説あるみたいだが、Unidicでは漢語にしてる。"
- Taku Kudoさんのツイート: "メジャーNMTに取り入れられてお星様増えたし、周辺がなんだか騒がしい。家も本業もいろいろ忙しく何もできてない。"
- Taku Kudoさんのツイート: "PyPI のダウンロード統計が見れる。git clone (C++) よりも圧倒的に多い。https://t.co/o6AjvKfyk1"
- PyPI Download Stats
- Taku Kudoさんのツイート: "mecabのCRF学習は、2000年前半のメモリー4Gぐらいの環境でなんとか動くようキャッシュ等の工夫をめちゃくちゃしてたけど、今日日数十〜百Gのメモリーが使えるので、そもそも必要ないかもしれない。"
- Taku Kudoさんのツイート: "https://t.co/ik4PyD4Ay1 protobuf への依存を無理やり解決した。当初のやり方とは違いますが。"
- 中川裕志さんのツイート: "@taku910 @mamoruk ダブル配列日本発は存じております。NLP解析系アルゴリズムに興味を持っている学生は見たことないですが、言語あるいは言語学そのものに興味を持っている学生は少しはいて、そういう人がアルゴリズムに入っていくという感じでしょう。"
histric-8
- Taku Kudoさんのツイート: "NLPが他のML応用と少し異質なのは、データでなんとか学習可能な問題とは別に、知識がないとどうにも解けない問題がいっぱいあること。固有名詞の翻訳・読み推定が例。知識を学習データとして与えても学習される保証ないし、直接知識から出力させたいジレンマに陥る。"
- Taku Kudoさんのツイート: "今やってること、あるNLPタスクの疑似学習データ作成に使えるのではないかと思えてきた。多分誰もやっていないはず。"
- Taku Kudoさんのツイート: "sentencepiece (python) の使い方の網羅的な colab page を書いた。今回の出張の半分ぐらいはこれ関係。どうなるか謎なプロジェクトだったし、メインの仕事でもないけど、ここに来てユーザが増えている印象。 https://t.co/kYpTSAJkuR"
- sentencepiece/sentencepiece_python_module_example.ipynb at master · google/sentencepiece
- Taku Kudoさんのツイート: "mecab(単語分割)をsentencepieceの語彙獲得の制約のみに使うというやり方があります (OSS版では未実装だが検証済み) サブワードが形態素をそれなりに尊重するようになり、かつ実際の分割時にはmecabが必要ないメリットがあります。"
- Taku Kudoさんのツイート: "sentencepieceはモデルの再現性と自己完結性にかなり気を使っていて、 --self_test_sample_size=1000とすると、学習データの一部とその時の分割結果をモデルファイルに埋め込み、モデルの読み込み時に整合性を自己診断する。学習データのリークを防ぐためにデフォルトはオフ。 https://t.co/LY9vxRi81m"
- sentencepiece/sentencepiece_model.proto at master · google/sentencepiece
- Taku Kudoさんのツイート: "tf ファミリーとの親和性強化のため、sentencepiece のビルド周りが不安定になっています。同僚さんが頑張ってくれていますが、そのうち落ち着くはずです。pip でダウンロードできるものは今のところ影響なしです。"
- Taku Kudoさんのツイート: "SentencePieceに関する2つの論文も、BPEより良いという結論は出していないし、それが意図通り。… "
- Yusuke Odaさんのツイート: "Wordpiece (BPE) と SentencePieceに性能上の差異はほとんどないという認識"
- Taku Kudoさんのツイート: "未知語対策に、漢字をそれっぽい英語に1:1で可逆変換する方法ってないかな。意味と頻度を適度に保持すれば、そのままサブワードが動かしやすくなる。… "
- Kosuke Tsujinoさんのツイート: "多言語sentencepieceモデルを学習したいとして、言語間で量を揃えて混合コーパスを作るだけでは十分でないということだ"
- Taku Kudoさんのツイート: "またIBMモデルみたいなものを書いてしまった"
- Taku Kudoさんのツイート: "少し認識が違います。CJKと英語を混ぜてサブワードを作っても、データ圧縮が基礎なってるので一文あたりのトークン数はあまり変わりません。つまり1サブワードあたりの情報量は均質です。問題は漢字の種類数の多さで、未知語完全になくすには全文字を入れることになり文字分割と変わらなくなります… https://t.co/jkrBuy8gyt"
- Kosuke Tsujinoさんのツイート: "言語ごと等量にコーパスを混ぜるとロマンス系言語(実質的に英語含む)に共有されているラテン語系の語幹が勝ちがち、プラス、文字数の差を考えると西欧言語とCJKでものすごくサブワード粒度が不均等になるのだ…"
- Taku KudoさんはTwitterを使っています: 「デフォルトを全角スペースにして半角スペースをopt-in するのが定石。逆にするから混乱する。こういうしょーもないところは頑張るところではない。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「BPE で subword regularization する話。自分の仕事が再現・継続されていることが何よりうれしい。」 / Twitter
- Lena VoitaさんはTwitterを使っています: 「[1/3] BPE-dropout: our new paper by Ivan Provilkov and Dmitrii Emelianenko! https://t.co/9pnuK8qlss In training, we corrupt segmentation procedure of BPE to produce different segmentations of the same word. In inference, we use standard BPE and outperform BPE and sentencepiece. https://t.co/fA3pfHODzL」 / Twitter
- [1910.13267] BPE-Dropout: Simple and Effective Subword Regularization
- Taku KudoさんはTwitterを使っています: 「できません。任意の連結を認めると、語彙数がコントール不能になり、語彙数を固定するというサブワードの考え方に反します。強制的に分割することは可能です。」 / Twitter
- vochicongさんはTwitterを使っています: 「@taku910 MeCabで分かち書きしてから、SentencePieceを適用しています。SPでトークンを更に分割することなく、連結だけ行うような動きをさせることはできますか。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「不自然と言われても、サブワードはそういうものとしか言えません。語彙数が固定されているので、限られたパイを取り合ってるだけです。」 / Twitter
- vochicongさんはTwitterを使っています: 「現状、SPで「ソニー」が「ソ/ニー」に分割されてしまうのは不自然です。」 / Twitter
- Taku KudoさんはTwitterを使っています: 「Subword regularization の追試論文その2? うまくいかないという声を時々聞きますが、元論文にもこの論文にもあるように、十分データがある+同一ドメインで評価しているとほとんど変わりません。小規模データor 別ドメインで有効です。 https://t.co/ZZ7lxz9QGY」 / Twitter
- [1911.03109] Domain Robustness in Neural Machine Translation
- Taku KudoさんはTwitterを使っています: 「「外国人参政権」を形態素解析の問題の難しさの例として使うのはいいけど、システム間の優劣に使うのはミスリード。学習データが足りないだけで、既存モデルでも扱える。形態素解析に限らず、モデルがだめなのかデータ不足なのか区別して議論してほしい。」 / Twitter
- Taku KudoさんはTwitterを使っています 「mecabが速いと言われてますが、初期の形態素解析はどれもそれほど遅くなく、chasen も juman もせいぜい2-5倍遅い程度だったんです。突如として速い実装が出たんではなく、周りがどんどん遅くなっていった。」 / Twitter
- Taku KudoさんはTwitterを使っています 「高速な形態素解析解析といえば「すもも」がありました。なんかのパッチ書いて送った気が... この時代は学部生だったので中身もよく分かってなく単なるユーザでした。ちなみに juman2.0 時代はTRIE使っていないので、フェアな比較にはならないです。 https://t.co/GYQ2n76ILR」 / Twitter
- 情報学広場:情報処理学会電子図書館
- Taku KudoさんはTwitterを使っています 「性能には直接影響はないが、実際それが起きるとユーザが嫌がる事例ってのがIMEにはあって、評価を難しくしている。そういうのを潰すと性能が低下することもありジレンマ。」 / Twitter
- Taku KudoさんはTwitterを使っています 「たとえばIMEで次の単語を予測する場合、予測が全部外れても無視すればいい話。でも予測した単語が完全に的外れだと印象がすこぶる悪い。正解データとの比較だけではこの悪さ具合が評価できない。」 / Twitter
- Taku KudoさんはTwitterを使っています 「旧長尾研卒の私ですが、研究室で寝ていると「黒はし君いる〜」とふら〜っと長尾先生が入ってこられ、若かりし自分は不躾な対応しかできなかっとこは苦い思い出です。データで殴るNLPの先駆けで、ツールやリソースの整備に尽力され、実世界で動くNLPに多大なる影響を与えたことは疑いの余地がありません」 / Twitter
- Taku KudoさんはTwitterを使っています 「日本語TTSをやってたがこの辺はまだ未解決。結局、エラーがあったら機動的に再学習できるモデル化がまず重要。さらに、単語分割、読み→文字のアライメント、読み表記の多様性は気にせず、レイジーに記述できるようにすることで、日本語話者ならだれでも修正できるようになると良いサイクルが生まれる」 / Twitter
- 山本 和英(言語商会)さんはTwitterを使っています 「今自然言語処理を勉強されている方は、例題として「表」を「ひょう/おもて」に正しく読み分ける手法を考えてみてください。機械学習でやるなら、そのための学習データを如何に低コストで(=楽をして)集めるかが課題です。結構難しいですよ。ちなみに答えはありません。」 / Twitter
- Taku KudoさんはTwitterを使っています 「レイジーの中には、部分アノテーションも当然含まれます。」 / Twitter
- Taku KudoさんはTwitterを使っています 「日本語読み推定 kytea でええやんという話もありますが、アノテーションに単語境界の意識がいるので不十分です。文中の任意の部分文字列に読み・発音をルーズに書けるのが理想です。単位の異なる読み情報等を柔軟に取り入れることができます。ただ、ノイズに弱いので、工夫は必要です。」 / Twitter
- Taku KudoさんはTwitterを使っています 「neologd は長い複合語を一語にするアプローチを採っています。副作用がない利点がありますが、その情報が別の文脈に再利用されないもったいなさがあります。」 / Twitter
- Taku KudoさんはTwitterを使っています 「様々な単位・粒度で読みが部分的に・ルーズに付与された辞書やコーパスがあって、そこから読みモデルを作る。私は結構泥臭くやったけど、今どきの方法で綺麗に作れたら素晴らしい成果になると思います。」 / Twitter
- Taku KudoさんはTwitterを使っています 「日本語のトークン化、教師ありでやるなら単位が*安定*している文節や長単位でやって、その細分割はタスク依存で Don't care (~教師なし)と以前から思っていたが、経験的に長単位+サブワード化が強いらしく、その通りになってるみたい。文節内の分割なんて人間は気にしてないと思うし。」 / Twitter
- Taku KudoさんはTwitterを使っています 「ということで、いきなり長単位/文節分割が可能な高速な解析器が欲しい。内部の分割は必要ないので、形態素まとめ上げという旧来のやり方を踏襲しなくてよい(というかしない方が良い)」 / Twitter
- Taku KudoさんはTwitterを使っています 「短単位の機械分割はほぼ完璧なのに対し、人はマニュアルを熟読しない限り一貫してできません。つまり本質的ではない見かけの精度が上がってるだけなのかも。逆に文節は、助詞欠落状態でも人はアクセント句を無意識に簡単に挿入できます。そのギャップが違和感になっています。「安定」とは対「人」です」 / Twitter
- 山本 和英(言語商会)さんはTwitterを使っています 「私は単位が最も安定している短単位が最善だとずっと思っていましたが、確かに安定という意味では長単位(をこれ以上人間が分割しないこと)のほうがいい気もしてきました。これは大きな知見かもしれません。」 / Twitter
- Sentencepiece : ニューラル言語処理向けトークナイザ - Qiita
- google/sentencepiece
- Taku Kudo
- タスクに合わせたトークナイザ、単語分割に関連したポエム - yasuhisa's blog
- 形態素解析をして単語を取り出せているつもり・・・か? - Qiita
- Elasticsearchのための新しい形態素解析器 「Sudachi」 - Qiita
- Sentencepiece : ニューラル言語処理向けトークナイザ - Qiita
- 形態素解析
- 形態素解析器 Sudachi の辞書が手に入ったので Go で遊んでみた - 押してダメならふて寝しろ
- Subword segmentaion と SentencePiece について - Qiita
- 高岡一馬さんのツイート: "SudachiとNWJCをつかった日本語単語分散表現を公開しました。Apacheライセンスなので商用利用も可能です。 https://t.co/lRkJvRt79V"
- 大規模コーパスと複数粒度分割による日本語単語分散表現
- 32ビットCygwin向けmecab-cygwin32 | yasuokaの日記 | スラド
- 日本語形態素解析エンジンnagisaは古典中国語(漢文)を学習できるのか | yasuokaの日記 | スラド
- kagome v1.11.1 をリリースしました。あるいは sync.Pool にまつわるバグの修正 - 押してダメならふて寝しろ
- ゼロから作った形態素解析器Taiyakiで学ぶ形態素解析 - The jonki
- 形態素解析器Sudachiの「辞書」はどのように作られているか: 複数の分割単位を例として
スクレイピング
匿名加工情報
- 高木浩光@自宅の日記 - 匿名加工情報は何でないか・前編(保護法改正はどうなった その2)
- 高木浩光@自宅の日記 - 匿名加工情報は何でないか・前編の2(保護法改正はどうなった その4)
- 高木浩光@自宅の日記 - 匿名加工情報は何でないか・中編(保護法改正はどうなった その3)
- 高木浩光@自宅の日記 - 匿名加工情報は何でないか・後編(保護法改正はどうなった その7)
クローリング除外
- まとめのまとめ - Google 検索
- NAVER まとめ[情報をデザインする。キュレーションプラットフォーム]
- Twitter
ZMap
- The ZMap Project
- zmap/zmap: ZMap Internet Scanner
- 【論文メモ】ZMap: Fast Internet-Wide Scanning and its Security Applications (2013)
Anaconda
Python
Python
- python/cpython: The Python programming language
- Welcome to Python.org
- 概要 — Python 3.5.1 ドキュメント
- 12.6. sqlite3 — SQLite データベースに対する DB-API 2.0 インタフェース — Python 3.5.1 ドキュメント
- 10. 完全な文法仕様 — Python 3.5.1 ドキュメント
- Python 言語リファレンス — Python 3.5.1 ドキュメント
- 3.6.2 Documentation
- pip 9.0.1 : Python Package Index
- wheel 0.30.0a0 : Python Package Index
- PyCharm
- Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
- パッケージのインストール — Python Packaging User Guide ドキュメント
- Installation — virtualenv 15.2.0.dev0 documentation
- Pythonパッケージのドキュメントホスティングサービス「pydoc.io」が公開される | OSDN Magazine
- Pydoc
- 「The Next Platform」で読むグローバルITトレンド(11):PythonはFPGAアクセラレーションの裾野を広げるか (1/3) - @IT
- pipenv: 人間のためのPython開発ワークフロー — pipenv 8.1.9 ドキュメント
- DebuggingWithGdb - Python Wiki
- Python debugging configurations in Visual Studio Code
IDLE
- 25.5. IDLE — Python 3.6.1 ドキュメント
- 25.5. IDLE — Python 3.6.2 documentation
- IDLE (Python) - Wikipedia
- IDLE - Wikipedia
- Python入門(1) IDLEを使う
- Python入門(1) Python世界に入る
- Pythonで学ぶ 基礎からのプログラミング入門 (2) プログラミングの環境を整えよう | マイナビニュース
- 【初心者向け】IDLEを使ってPythonプログラムを作成して実行する一連の流れ
- 【初心者向け】IDLEを使ってはじめてのPythonプログラムを対話モードで実行する
- PythonのIDLEでデバッグを行う方法 | ガンマソフト株式会社
- Python入門 - IDLEとPythonの基本的な使い方 - Python Works
pdb
- 27.3. pdb — Python デバッガ — Python 3.6.1 ドキュメント
- 27.3. pdb — The Python Debugger — Python 3.6.2 documentation
- PythonデバッグTips - Qiita
- 【Python】いつまでprintデバッグで消耗してるの? - らっちゃいブログ
- Pythonで学ぶ 基礎からのプログラミング入門 (35) デバッグの手法について知ろう | マイナビニュース
- Pythonにおける効率的なデバック方法入門 - MyEnigma
- Pythonデバッガ(pdb)とテスト(pytest)についてのメモ - c-bata web
Lint
flake8
- Python の Lint (文法チェッカ) まとめ - flake8 + hacking を使う - - Qiita
- dreadatour/Flake8Lint: Sublime Text plugin for lint Python files
- flake8 3.3.0 : Python Package Index
- Flake8: Your Tool For Style Guide Enforcement — flake8 3.3.0 documentation
- Sublime Text3でPython開発環境を整えるためにインストールしたパッケージと設定 | まめりうむ
- よみさんのツイート: "flake8はmapとかfilter使っても怒られないからすき"
- Vimメモ : flake8でPythonのコードをチェックする - もた日記
- VimからFlake8を使うプラグイン - Qiita
- Vim - Pythonのflake8やsyntasticで特定のエラーを無視する - ぼっち勉強会
pep8
- はじめに — pep8-ja 1.0 ドキュメント
- Python のコーディング規約 PEP8 に準拠する - Qiita
- PEP 8 -- Style Guide for Python Code | Python.org
- [Python] コーディング規約(PEP8)を学んで、Pythonらしいコードを書く - YoheiM .NET
- mumumu/pep8-ja: PEP8 日本語版
- pep8 - Python入門
- Python で pep-8 の「E501 line too long」にしないためのコーディングテクニック | 技術的生存報告記
- Pythonで学ぶ 基礎からのプログラミング入門 (36) Pythonのコーディング規約「PEP8」 | マイナビニュース
- PEP8を読んでみよう
- Vimメモ : vim-python-pep8-indentでインデントをPEP8に準拠させる - もた日記
- vimでpythonのコーディングスタイルを自動でチェック&自動修正する - ton-tech-ton
pylint
- Pylint - code analysis for Python | www.pylint.org
- Pylintの使い方メモ - Qiita
- Pythonの主要なLint(pep8, pylint, flake8)の設定方法まとめ - Qiita
- Pythonのスタイルガイドとそれを守るための各種Lint・解析ツール5種まとめ! - SideCI Blog
- PyLint で Python コードの質をチェックする | CUBE SUGAR STORAGE
- Python: pylint でバージョン 3.x 非互換のシンタックスを見つけ出す - CUBE SUGAR CONTAINER
- [Python]pep8とpylintの設定ファイルを作成して一部の警告を非表示にする - dackdive's blog
- pylint 1.6.5 : Python Package Index
- 【python】コードの品質管理について その2 pylint - simudaru's blog
- [vim]Syntasticでpython用の設定をする - dackdive's blog
コード補完
- Python用のvimの設定 - memorandum
ライブラリ
csvkit
- csvkit 1.0.1 — csvkit 1.0.1 documentation
- wireservice/csvkit: A suite of utilities for converting to and working with CSV, the king of tabular file formats.
Grumpy
- 本の虫: GoogleがGoによるPython実装、Grumpyを発表
- Google Open Source Blog: Grumpy: Go running Python!
- 渋川よしきさんのツイート: "1スレッドだと性能で負けちゃうのか。ウェブサービスぐらいしか美味しい用途なさそう。 : Google Open Source Blog:Grumpy: Go running Python! https://t.co/2N5V88QLWb via @google"
Numba
- Numba — Numba
- Python高速化 Numba入門 その1 - ゆとりデータサイエンティストの諸々所感
ByteWeight
- るくすさんのツイート: "byteweightとかいう謎のpythonモジュール出てきたので調べたら、David Brumley先生が作ったバイナリから関数を抽出するモジュールらしい。 https://t.co/1mnWNjoGTF"
- るくすさんのツイート: "ああ USENIX Sec'14にちゃんと論文があるんだ BYTEWEIGHT: Learning to Recognize Functions in Binary Code https://t.co/oMD3wcuvW8"
- るくすさんのツイート: "実際に作ったのはDavid Brumley先生じゃないかもしれない CMUの誰かだ"
- ByteWeight
- BYTEWEIGHT: Learning to Recognize Functions in Binary Code | USENIX
pandas
- Python Data Analysis Library — pandas: Python Data Analysis Library
- pandas.DataFrame — pandas 0.20.1 documentation
- pandas-dev/pandas: Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more
- Pandas - Wikipedia
- pandas (software) - Wikipedia
- Python Pandasでのデータ操作の初歩まとめ − 前半:データ作成&操作編 - Qiita
- 10分でPandasを学ぶ - Qiita
- Python pandas データ選択処理をちょっと詳しく <前編> - StatsFragments
- Python pandas データのイテレーションと関数適用、pipe - StatsFragments
- 3.2. Sympy : Python での代数計算 — Scipy lecture notes
- christiangoltz/shaape: Shaape is an ascii art to image converter designed to be used with asciidoc.
- PyPIに悪意のあるパッケージがアップロードされていた | スラド
- Pythonの非同期通信(asyncioモジュール)入門を書きました - ゆくゆくは有へと
WSGI
- Web Server Gateway Interface - Wikipedia
- meinheld 0.6.1 : Python Package Index
- Meinheld
- mopemope/meinheld: meinheld is a high performance asynchronous WSGI Web Server (based on picoev)
- meinheld + WebSocket + mongodb しようとした時エラーが出る - Qiita
Selenium
- Pythonでスクレイピング(Selenium) - 自分基準
- Pythonでスクレイピング2(Selenium):UFJの残高取得 - 自分基準
- Selenium でサポートされているプラットフォーム
MicroPython
- MicroPython - Python for microcontrollers
- micropython/micropython: MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
- Micro Python で組み込み Python
- micropythonを始めよう(ESP8266編) - かいしゃぐらし!
- Overview — MicroPython 1.8.7 documentation
- micropython/micropython-unicorn: MicroPython on Unicorn
Python AST
- 32.2. ast — 抽象構文木 — Python 3.5.2 ドキュメント
- Python の ast モジュール入門 (抽象構文木を辿る) - Qiita
- Python: ast (Abstract Syntax Tree: 抽象構文木) モジュールについて - CUBE SUGAR CONTAINER
- Python とマクロ、インポートフックと抽象構文木 - forest book
- Python の ast モジュール入門 (NodeVisitor を使う) - Qiita
- Python: ast (Abstract Syntax Tree: 抽象構文木)... | CUBE SUGAR STORAGE
- 31.3 Python 抽象構文
- Python/AST作成を読む - Code Reading Wiki
- [Python] ast.literal_evalを使って文字列を評価する | aoshiman.org
最近の Python-dev
- DSAS開発者の部屋:最近の Python-dev (2017-01)
- DSAS開発者の部屋:最近の Python-dev (2017-02)
- DSAS開発者の部屋:最近のPython-dev (2017-05)
- DSAS開発者の部屋:最近のPython-dev(2017-06)
- DSAS開発者の部屋:最近のPython-dev(2017-09)
- DSAS開発者の部屋:最近のPython-dev(2018-01)
YAMAGUCHI::weblog
- Pythonの環境設定でむかついてる人はとりあえずこれをコピペで実行してください 2017.01 - YAMAGUCHI::weblog
- Pythonの仮想環境構築 2017.01版 - YAMAGUCHI::weblog
- wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog
methaneのブログ
- Python を速くする取り組み - methaneのブログ
- Python と Ruby と typing - methaneのブログ
- Python 3.6 の(個人的に)注目の変更点 - methaneのブログ
- Windows では2020年を待たずに Python 2.7 が使い物にならなくなっていく - methaneのブログ
blog
- 本の虫: Pythonのpymothoaが興味深い
- python3.3からparseまわりでなんか変わったのかな - Gentoo metalog
- pip 9.1 から msgpack が使われるようです - methaneのブログ
- Python の正規表現で IGNORECASE するときは気をつけよう - methaneのブログ
- Pythonのマルチスレッドで気を付けるべきこと | 凡人のブログ
- pandas DataFrameを省メモリにpickleする - ABEJA Tech Blog
- The History of Python.jp
- AWS LambdaがPython3.6に対応したのでpyenvとpyenv-virtualenvで環境構築してみた | Developers.IO
- PythonでWebスクレイピングする時の知見をまとめておく - Stimulator
- Pythonの環境構築を自分なりに整理してみる – Aki Ariga – Medium
- Virtualenv vs. Pyenv - Sho Shimauchi | Tableau Public
- Flask を使ったプロジェクトひな形
- DSAS開発者の部屋:Pythonアプリの起動を高速化する
- リスト内包のひみつ - atsuoishimoto's diary
- PythonのコードをPython ASTベースでRubyに変換を行う py2rb.py 0.1.0 をリリースしました。 - @naitohの日記
- Python 3でpopcountを計算する - にせねこメモ
- はじめてのにき(2017-11-08)
- はじめてのにき(2018-06-26)
- 【Google Colab】Python環境の使い方(無料でGPU付き) | アルゴリズム雑記
- Pythonの順序付き辞書OrderedDictの使い方 | note.nkmk.me
- JVM上で動くPython 3処理系「cafebabepy」の仕組みと実装 Pythonの深くて美しい言語仕様 - ログミーTech(テック)
- cafebabepy PyCon JP 2018 - Speaker Deck
- Pythonを経由してC++のオブジェクトを扱う方法 - FPGA開発日記
OSDN
- 「Python 3.6」がリリース | OSDN Magazine
- 「Python 3.5」リリース、非同期プログラミング機能の強化や型ヒントの記述機能を導入 | OSDN Magazine
- Python向けのグラフィカルなシェル「IPython 5.3」リリース | OSDN Magazine
- Google、Pythonコードからコマンドラインインターフェイスを自動生成するツール「Python Fire」を発表 | OSDN Magazine
- 「PyPy 5.9」リリース、NumPyとPandasをPython 2.7向けでサポート | OSDN Magazine
- Pythonパッケージ管理ツール「Pip 10」リリース | OSDN Magazine
- QtのPythonバインディング「Qt for Python」、初の公式リリース | OSDN Magazine
- 「Python 3.7」リリース、型アノーテーションの強化などさまざまな機能が追加される | OSDN Magazine
- Python考案者のGuido van Rossum氏がPythonに関する意思決定から引退することを表明 | OSDN Magazine
- 「Python 3.8」リリース、新たに代入式を導入 | OSDN Magazine
- Pythonがリリーススケジュールを変更、「Python 3.9」より毎年10月にメジャーリリース公開 | OSDN Magazine
GitHub
SigThief
- SigThief: PE signature tool | Firmware Security
- secretsquirrel/SigThief: Stealing Signatures and Making One Invalid Signature at a Time
- NumPy — NumPy
- numpy/numpy: Numpy main repository
- riolet/pol: Python one-liners: Awk-like one-liners for python
- Taku Kudoさんのツイート: "長いことpypy上に名前だけが予約されていた CLIFが公開されていた。 https://t.co/FmVt0fGYwq C++のPythonラッパをお気楽に作るやつです。SWIGとちがって公開したい関数をoptinするところが良い。 #ifdef SWIG しなくてよい。"
- google/clif: Wrapper generator foundation to wrap C++ for Python and other languages using LLVM.
- google/skylark: Skylark in Go: the Skylark configuration language, implemented in Go
- Overview — skylark 0.9.0 documentation
- hit9/skylark: No longer maintained. A micro python orm for mysql and sqlite3.
- mjpost/sacreBLEU: Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons
Wikipedia
- IDLE (Python) - Wikipedia
- オフサイドルール - Wikipedia
Qiita
- Rubyist が pyenv を使うときに知っておいてほしいこと - Qiita
- Anaconda は Environment Isolation Tool (環境分離ツール) ではない - Qiita
- 闇Pythonista入門(Pythonワンライナーのテクニック集) - Qiita
- Pythonの可視化ツールはHoloViewsが標準になるかもしれない - Qiita
- Anaconda で Python 環境をインストールする - Qiita
- リスト内包表記の活用と悪用 - Qiita
- Pythonのリスト内包表記はチューリング完全だから純LISPだって実装できる - Qiita
- pythonでローカルwebサーバを立ち上げる - Qiita
- Pipenvでnpm-scriptsみたいにPipfileへコマンドを書く - Qiita
Twitter
その他
- Hajime Moritaさんのツイート: "コンパイラやIDEががんばってくれない言語はライブラリ作る人が苦労するしかない気がする。しかしPythonはtype hintingいれてPyCharmをつかうとあら不思議、すっかりJavaみたいになります。JetBrainsやばい。彼らのIDEはぜんぶJava界の陰謀。"
- Tsuyoshi Mishinaさんのツイート: "C++で実装したライブラリからCリンケージ関数をエクスポート→ctypesでラップに初挑戦。ネイティブコードの高速さとPythonの豊富なデータ解析機能の良いとこ取り。os.getpid()でカーネルのプロセスIDを取得すれば、VSのデバッガにアタッチも可能。これは強力です。 https://t.co/UW3AZyQlRn"
- Manabu Terada@CMScomさんのツイート: "Pyenvはやめよう。Python標準の venv を使ったほうが良いよ。 #PyNyumon 参考はこちら https://t.co/Z9kKadEPNE"
- INADA Naokiさんのツイート: "念のため言っておくと、pipenvはpipfileとvenvを組み合わせて便利にするツールで、pipfile(requirementsやlockの新フォーマット)はpypaが開発してます。 https://t.co/0w0yTr4tkm"
- Kengo Sawatsuさんのツイート: "@shirouzu 僕も最初「えー結局win32をctypesシなくちゃいけないの?学習メンドクサ!」ってなりましたが、pywin32で殆ど呼び出せるので、そちらを検討したらどうでしょうか? https://t.co/m0rQg1v2rH win32file.GetDriveType("e:\")… https://t.co/W0p2WMX7jd"
- win32com - PyWin32(Python for Windows extensions) - 愚鈍人
- tomo🐧さんのツイート: "__matmul__ が Python 3.5 で導入されたのってあんまり有名じゃないのな https://t.co/I2qm7MlGcX"
- What’s New In Python 3.5 — Python 3.6.4 ドキュメント
- Atsuo Ishimotoさんのツイート: "よく勘違いしてる人がいるが、range()が返すのはイテレータでもジェネレータでもないから注意するんだ。… "
- Kazuho Okuさんのツイート: "AST変わらなくても変数名変えたら動作変わる「可能性」はあるでしょ。例外のメッセージだって変わるわけだし。テストがめんどくさい場合の線引きとしては妥当だと思う / “20 万行超のコードベースをテストせずにリファクタリングリリー…” https://t.co/G6YswLHPFv"
- Takeshi ITOHさんのツイート: "式を組み立ててevalするのも影響ありますね。… "
@fadis_
- Fadisさんのツイート: "Python-3.7.0からdata classes(PEP 557)がサポートされる。dataclass指定付きで作成されたクラスは含まれているメンバとその初期値を列挙するだけで__init__と__repr__と各種比較演算と__hash__が暗黙に定義される。https://t.co/PNNYmOv8bd"
- Fadisさんのツイート: "A-Zで分けて分散しない案件といえばこれを思い出すんだけど、今のpypiは、パッケージ名じゃなくて何かのハッシュでディレクトリ分けるようになってる https://t.co/4gv6Uu54z9"
- Fadisさんのツイート: "Pythonに、式の中で右辺値に名前をつける文法が提案されていて、でも「その名前を=の左辺にもって来たら何が起こるんだ!!」ってなってPythonガチ勢達が溢れ出るカオスを抑え込むのに奔走してるっぽい"
- Fadisさんのツイート: "PEP 572 -- Syntax for Statement-Local Name Bindings https://t.co/3ADdHHX4pT"
- Fadisさんのツイート: "Python 3.7がリリースされた。Python 3.7ではpdbのimport無しでデバッガに落とせる組み込み関数breakpoint()、Cの構造体のように使われるクラスをより簡単に作れるようにするdataclass、コルーチンローカルな変数を作るContextVar等の機能が追加される https://t.co/eLOQq9dSRb"
- Python Insider
@shirouzu
- SHIROUZU(白水啓章)さんのツイート: "Python3でsymlinkかどうかの判定関数(is_symlink)は存在するが、Junctionかどうかの判定関数はない様子。 (さらにリパースポイント全般の種別を知る方法が知りたいところ) ctypes等でAPI呼び出しするしかないのかな?"
- SHIROUZU(白水啓章)さんのツイート: "Windowsのstat_resultにはst_file_attributesメンバがあり、os.stat().st_file_attributes & stat.FILE_ATTRIBUTE_REPARSE_POINT などとすれば、リパースポイントかどうかの判定が可能。 https://t.co/JeE4pE4N0k"
- SHIROUZU(白水啓章)さんのツイート: "この方法だとJunction判定は可能だが、symlinkファイルは解決後のstat値となるため(Junctionではそうならない不思議)、そちらも判定したい場合、is_symlinkは別途使うか、os.lstat()を別途発行する必要あり。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、Python1.5xは共通鍵周りが無いのも困ったが、それ以上にunicodeどころかSJIS/EUCですら変換ライブラリが無かった。 で、kconvライブラリの利用が殆ど唯一の選択肢だったが、GPL縛りありという状態と。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "こんなPython1.xの歴史を経ていると、Python2.2-2.4辺りで入った、unicodeおよびcjkcodecs周りは非常な福音だった…が、Python3.xの文字列=UCS-4統一はそれやりすぎだろ感(笑) 寄せるなら、utf-8統一の方がうれしかったな…どうせIVSとかあって1つの器に1文字情報が入り切るわけでもないし。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "CythonとPyPy比較をしているページをいくつか見てみたが、素のPythonのままだとPyPy優勢が多く、cdefや引数型指定を多用するとCythonが圧勝する例が多い印象。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "くだんのブログでは、「取り下げた修正(AST が変化する修正)」に「変数名の typo 修正」を入れているような。 Pythonだと、ローカル変数も変数名がバイトコードに残るわけで。… "
- 鯉江さんのツイート: "lexical scopeならローカル変数名の変更はほかの名前を隠してしまわないならテスト不要になるべきところASTダンプ単純比較だと擬陽性になるが、そもそもpythonはバイトコードが違ってしまうから影響がないとは言えないということでしょうか? ところでローカル変数名って例外に影響あるんでしょうか?… https://t.co/2QrdIjgX8I"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "Pythonの場合、変数は変数名をキーとして、関数辞書→モジュール辞書→グローバル辞書、と実行時にフォールバックして探索しますよね。 従い名前が変わると挙動が変わるのは普通にありうる話で、ASTも(トポロジは変化せずとも)変数名を記述したリーフ内容が変わって当然かなと。… https://t.co/lNoUIwocwd"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "んなこたない。 ---- 「入出力のみを行うスレッド(ネットワークI/OやディスクI/Oなど)であれば、GILの競合を招く」 https://t.co/El8xAy3Xir"
- なぜPythonはこんなにも遅いのか? | POSTD
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ネットワーク等の入出力がないなら、GILの競合を招く、が正解。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "syscall中はGILは外れていたはず。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "コード署名付きexeが SmartScreen にブロックされなくなったことを確認。 次回のリリースから、exeリリースに変更する予定。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「任意の整数列をn次方程式に変換する、というお題をnumpyで解いて、numpyの使い方を少し訓練…というか、ほぼ polyfit を呼ぶだけだった。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「内部でフーリエ級数使って解いているのかな?(ぜんぜん知らない)」 / Twitter
- 404 Blog Not Found:宴会ネタ - 揚げ足取り数列
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「普通に最小二乗法だった。 https://t.co/8JDhKYNc4k」 / Twitter
- 非線形最小二乗法 - Wikipedia
@shibu_jp
- 渋川よしきさんのツイート: "macユーザーがpyenvを使いたがるの、どうもHomebrewが複数バージョンのPythonをインストールできなくなって、それの回避でpyenvを使う流れっぽい。ダメなパッケージマネージャのしわ寄せをこっちに投げてくるな、という話っぽい。MacPorts使ってたから知らんかった"
- 渋川よしきさんのツイート: "Pythonは動的型付け言語だって言われるけど、引数の数とかのチェックとか厳しいし、JavaScriptと比べると硬い言語だなって思う。プログラミング言語の動的、静的ってデジタルじゃなくて、アナログ値だよね。"
- 渋川よしきさんのツイート: "例えば、Pythonでウェブサービス作っているとして、Djangoの使い方だけじゃなくて、HTTPの仕組みを知る(1つ下のレイヤー)と、メンテしやすいソフトウェア構造(1つ上のレイヤー)を知るのは大事だと思う。そうやって1つずつ広げるのは大事。"
- 渋川よしきさんのツイート: "Pythonの特殊メソッドの方式。ライブラリからすると、後方互換性が崩れないというのはすごい。… "
- 渋川よしきさんのツイート: "mypyで型をばっちりつけるPythonプログラミングをやってみているけど、pep8の文字数制限が3倍ぐらい厳しく感じる。"
- 渋川よしきさんのツイート: "Goのテスト哲学は「うん、なるほど」と思うのだけど、PythonやるとassertEqual便利って思ってしまう。"
@taku910
- Taku Kudoさんのツイート: "python の sdist と wheel のパッケージングの挙動が違ってて死ねる。"
- Taku Kudoさんのツイート: "Pythonの闇を見た。C++11/Windows/Python2.7という組み合わせは無理っぽい。 https://t.co/hZRXGXqmVX"
- Taku Kudoさんのツイート: "manylinux にはホント苦労させられたけど (cmake のインストール、腐った pthread_once の自作など)、目的のためなら多少汚くてもゴリ押しするスタンスは評価しないと。互換性が壊れまくる物をリリースしたり、そもそもバイナリパッケージがない状況にくらべれば、ユーザに対するメリットは大きい。"
- pypa/manylinux: Python wheels that work on any linux (almost)
- Taku Kudoさんのツイート: "FYIですが、manylinux は docker 上で作るのが正解です。実際に使っているスクリプトがあるので参考になれば。travis 上でも動きます。 https://t.co/K7cCtyUtAT"
- Taku Kudoさんのツイート: "CIしてんのというツッコミは置いといて、「ソースコードを変更する」にC拡張が含まれるとNGなような。普通にASTがいっしょで出力が異なるコード作れる。 https://t.co/HEASwoZf1C"
- 20 万行超のコードベースをテストせずにリファクタリングリリースした話 - MonotaRO Tech Blog
@ncaq
- エヌユルさんのツイート: "リフレクションがあるから動作変わる可能性はあるのでは / “「変数名変えたらテスト必要では」とか言ってるブコメはASTが何か理解してないだろ。変数名が何であろうが最終的なASTが一致すれば動作は変わらん。そういう思考停止駄目だよ…” https://t.co/Z57ERS2o6b"
- 「変数名変えたらテスト必要では」とか言ってるブコメはASTが何か理解してないだろ。変数名が何であろうが最終的なASTが一致すれば動作は変わらん。そういう思考停止駄目だよねって記事なのに伝わってなくて笑った - bkiosのコメント / はてなブックマーク
- エヌユルさんのツイート: "ASTのdiffがGitHubのpull requestにCI的に出てきたら有用っぽい / “20 万行超のコードベースをテストせずにリファクタリングリリースした話 - MonotaRO Tech Blog” https://t.co/8Cc76FS8uF"
- The Python Graph Gallery – Visualizing data – with Python
- Python で波動方程式の数値計算と動画 gif の書き出しをやらせてみよう - わかばめにっき
- Python.jp SlackからDiscordへ - atsuoishimoto's diary
- Python.jp Discordサーバ - python.jp
- Python 言語リファレンス — Python 3.6.5 ドキュメント
- Python - pythonのvar++とvar=var+1で挙動が異なるのはなぜ(151179)|teratail
- セイウチ演算子を導入した「Python 3.8.0」がリリース ~“Microsoft Store”からも入手可能 - 窓の杜
Jupyter
- Project Jupyter | Home
- Project Jupyter | Install
- Installing Jupyter Notebook — Jupyter Documentation 4.1.1 alpha documentation
Qiita
- データサイエンティストに向けたコーディング環境Jupyter Notebookの勧め - Qiita
- Jupyterインストール - Qiita
- Jupyter Notebookでブログ書きたい - Qiita
- Jupyter事始め - Qiita
Twitter
- 七誌さんのツイート: "プラットフォーム依存GUIを書きたくない→Web化?→ローカルだけで動かしたい→Electron?→配布物が大きくなるのでブラウザは既存のものを流用したい→Webサーバーとして動くローカルアプリ と考えて、Jupyter Notebookがこの形態だと気付いた。現実味はある。"
- 酔漢@ニャー将棋さんのツイート: "昼休みの間、Jupyterで遊んでいた。理系世界の勉強方法は確実に変わるぞ。 https://t.co/7psy5eAQ5s"
- 七誌さんのツイート: "以前、電卓アプリではなくPythonを電卓代わりにすれば、ログも記録できるというような説明をしていた。しかしIDLEだとちょっと説得力がなくて、ほとんど定着しなかった。Jupyter Notebookだったらもっと説得力があったのだろうけど、当時は存在を知らなかった…"
- S.Asa♥さんのツイート: "データ可視化できるploty使うとJupyter上でオシャレグラフがすぐできる。チュートリアルを一通りやったけど、すごく直感的でわかりやすい。ラベルにLaTexも使えるようなので、物理計算の可視化とかにすごくよさげ! https://t.co/56vdUsgPRw https://t.co/R0RJ9wBgVx"
- Plotly
- CodeXP/新・どう書く.org管理人さんのツイート: "Jupyterの内部実装を追うのって結構勉強になるのでお勧め。traitletsを用いることによる柔軟性の高い起動方法や、1プロセスで同時に高負荷なセッションを捌けるTornadoのnon blocking I/Oの有難み、Zero MQによる軽量なキュー処理など。自前アプリへの組み込み方法も含めて、いつか発表したいなー。"
- piqcyさんのツイート: "Jupyter Notebookからスクリプトを抽出してPython/R/Juliaファイルにする、さらにファイルを修正してJupyterに戻す、ということを可能にするツール。これで、Jupyter上のスクリプトを好きなエディタで編集して反映させることができる。 https://t.co/wWdtDkAkx6"
- mwouts/jupytext: Jupyter notebooks as Markdown documents, Julia, Python or R scripts
- 私たちはいかにして環状線で”悪さをする列車”を捕まえたか | プログラミング | POSTD
- Anaconda の Jupyter Notebook で ModuleNotFoundError が発生した場合のトラブルシュート | WEB ARCH LABO
- ゼロからはじめるPython(2) Jupyterノートブックで気軽にPythonをこね回そう | マイナビニュース
- AnacondaとJupyter NotebookでPythonの練習が捗った話 | フクロウのブログ|株式会社フクロウ|株式会社フクロウ
- Windowsに「Jupyter Notebook」をインストールして手軽にPythonを使い始める方法
- データ分析の必需品「Jupyter Notebook」の魅力とは - DeepAge
- Jupyter Notebook を使ってみよう – Python でデータサイエンス
- Jupyter Notebookを利用してお手軽分析環境構築 | DATUM STUDIO 株式会社
- Jupyter (iPython) Notebookを使って技術ノート環境を構築する方法 - MyEnigma
- 現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ
- Jupyter Notebook(IPython)のインストールと始め方 - TASK NOTES
- Jupyter Notebookの拡張機能を使ってみる - はしくれエンジニアもどきのメモ
- danielfrg/pelican-ipynb: Pelican plugin for blogging with Jupyter/IPython Notebooks
- Jupyter (IPython Notebook) で書いたものをブログで共有したくて - ニートに片足突っ込んでいるブログ
- オレオレJupyter運用法 ~常にJupyter Notebookを開きつつ任意のディレクトリをターミナルから開く · Wolftail Bounds
- Colaboratory - Google 検索
- Downloads | Anaconda
- Windwos10 バージョン1703 Creators Update にPythonとSphinxをインストール (Anaconda編)
- wheelのありがたさとAnacondaへの要望 - YAMAGUCHI::weblog
- Anaconda は Environment Isolation Tool (環境分離ツール) ではない - Qiita
- 「Python」ディストリビューション「Anaconda」に「Visual Studio Code」が追加 - 窓の杜
- データ分析や機械学習にバリバリ使える上にブラウザで使用できて環境構築不要のPython実行環境「Google Colaboratory」 - GIGAZINE
- Hello, Colaboratory - Colaboratory
- pythonとseleniumを使ってウェブスクレイピングをしてみた - Qiita
- Pythonでかんたんスクレイピング (JavaScript・Proxy・Cookie対応版) - Qiita
- Pythonでsqlite - Qiita
- Pythonスクレイピングメモ - Qiita
- PythonとBeautiful Soupでスクレイピング - Qiita
- PythonでWebスクレイピングする時の知見をまとめておく - Stimulator
- Pythonでスクレイピング(Selenium) - 自分基準
- Pythonでスクレイピング2(Selenium):UFJの残高取得 - 自分基準
- Selenium でサポートされているプラットフォーム
- スクレイピングは違法?3つの法律問題と対応策を弁護士が5分で解説 | トップコート国際法律事務所
- takuya-aさんのツイート: "なるほどー、アルゴリズム的にも面白いし、Wikipedia使ったデータ処理するときに役立ちそう / 1件のコメント https://t.co/H0NqHvoMBY “トポロジカルソートと強連結成分分解でWikipediaの特定カテゴリー配下のページをすべて取得する - 終末 A.I.” https://t.co/tAasAbblqA"
- トポロジカルソートと強連結成分分解でWikipediaの特定カテゴリー配下のページをすべて取得する - 終末 A.I.
- katsugeneration/ja-wiki-category: Japanese Wikipedia Category Data Mining Repository
- Python統合開発環境「PyCharm 2019.2.1」リリース | OSDN Magazine
Wikipedia
- コーパス - Wikipedia
- コーパス言語学 - Wikipedia
- 言語資源 - Wikipedia
- 計算言語学 - Wikipedia
- ツリーバンク - Wikipedia
- 自然言語処理 - Wikipedia
- 国立国語研究所 - Wikipedia
Qiita
- さだまさしを kuromoji を用いて簡単に品詞分解してみる - Qiita
- さだまさし N-gram コーパスを用いてサジェスト機能を作ってみる - Qiita
Twitter
SentencePiece
- takuya-aさんはTwitterを使っています: 「いまさらだけどSentencePieceの論文読んだ。ユニグラム言語モデルでエントロピー的に最適なサブワード集合を獲得するアルゴリズムがおもしろい。」 / Twitter
- takuya-aさんはTwitterを使っています: 「1. 十分に大きい語彙集合を用意し、サブワードの最初の候補とする。コーパスに現れるすべての文字集合に加え、頻度の高い部分文字列をコーパスから計算する。後者はコーパスからSuffix Arrayを構築することで線形時間で計算できる。 2. EMアルゴリズムでサブワード分割を最適化(続く)」 / Twitter
- takuya-aさんはTwitterを使っています: 「3. 各サブワードに対して、それを抜いたときに下がる尤度の量を計算 4. それらをソートして、下位n%の語彙をサブワードから削除(ただし1字のものは残す) 5. 2-4を与えられた語彙数になるまで繰り返す」 / Twitter
- takuya-aさんはTwitterを使っています: 「論文へのリンクはこちら https://t.co/C0fTDqGcXa」 / Twitter
- [1804.10959] Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates
- Taku KudoさんはTwitterを使っています 「tensorflow-text が sentencepiece を公式にとりこんでくれたので、tensorflow 2.2.0を最後に tf_sentencepiece を廃止できそう😀 https://t.co/s5fvnUbwWs」 / Twitter
- Taku KudoさんはTwitterを使っています 「tf.text sentencepiece のAPIは eager 動作に特化して、こういっちゃ見も蓋もないが sentencepiece の Python wrapper だけで再実装できる? TF1時代の計算グラフのノードの一部としてのAPIであれば TF ops の意味があったけど、そもそもTF1古いからいらないのだろう。」 / Twitter
- Taku KudoさんはTwitterを使っています 「結局一日仕事。tf.2.2.0 対応させて、新しいリリース出してて、issue数を半減。https://t.co/YoKd2xwFh0」 / Twitter
- Issues · google/sentencepiece
- Taku KudoさんはTwitterを使っています 「sentencepiece の byte_fallback は、未知文字を UTF-8 byte sequence にバラす大技で、未知語が完全になくなります。意外とうまくいくようで、NMTで使うとレアな文字(絵文字など)はコピーするといった動作が学習されるようです。」 / Twitter
- Taku KudoさんはTwitterを使っています 「sentencepiece が iterable object から直接学習できるようになったので、https://t.co/NQ2XO5LQ7v との親和性が格段に上がったはず。適当なサンプルコードをそのうち書きます」 / Twitter
- Taku KudoさんはTwitterを使っています 「sentencepieceに機能追加要求がぼちぼちくるけど、その機能がなぜ必要なのかを書いてほしいし、聞くことにしている。大抵の場合、既存機能+αで workaround できるし、ディスカッションを通じて万人に有益かどうか判断してからでも遅くない。mecabもそんな感じであまり機能過多にはなってない。」 / Twitter
- Taku KudoさんはTwitterを使っています 「sentencepieceの引用数がmecabのそれを抜いたようです😀 https://t.co/1JnAvtWbRH」 / Twitter
- Taku Kudo - Google Scholar
- Taku Kudoさんのツイート: "https://t.co/C38UPC5Kz1 大規模な字幕翻訳コーパス (おそらく OpenSubttile?) せっかくなので、文脈情報がほしい。対話と翻訳をからめた研究が進むかも。"
- JESC
- asciianさんのツイート: "青空文庫全体のデータがGitHubからダウンロード可能になっている!これはテキストマイニングとかで最高なのではないだろうか。https://t.co/mtXrY4WKwL"
- aozorabunko/aozorabunko
- UniDic広報担当さんのツイート: "実は、この世には、https://t.co/v7HHtrgm3A というツールがございまして…… https://t.co/09Jl2PZvsK https://t.co/XjJBLaEgpU"
- ChaKi プロジェクト日本語トップページ - OSDN
- Taku Kudoさんのツイート: "日本語日常会話コーパス届いた (個人契約) ちょろっと見たがこれは凄い。ボキャ貧ですまぬ。"
- hiroshiさんはTwitterを使っています: 「Sudachi辞書に同期した同義語辞書がリリースされています。17,051グループ・46,000語が収められています。 https://t.co/RWOApQHKFp https://t.co/sx5WJk7ziC」 / Twitter
- SudachiDict/synonyms.md at develop · WorksApplications/SudachiDict
- SudachiDict/synonyms.txt at develop · WorksApplications/SudachiDict
- hiroshiさんはTwitterを使っています: 「リリースおめでとうございます㊗️ 自然言語処理はもちろん検索用同義語辞書としても利用価値の高い、商用利用可能な貴重な言語資源ですね。形態素辞書と同期して同義語辞書が今後も拡張整備されていくならば、SudachiはElasticsearchをはじめ多くの検索エンジンの標準日本語NLPになっていくでしょう🎊🇯🇵」 / Twitter
- Sorami HisamotoさんはTwitterを使っています: 「ワークス徳島NLPから、 同義語辞書をリリースしました 🎉 https://t.co/RS1Mt7WPWe 専門家による高品質な言語資源です。Sudachi辞書と同様にApache 2.0。 現在1.7万グループ、4.6万語収録。語彙辞書と同様、継続的に拡充していく予定です!Elasticsearchへの接続も開発中。 https://t.co/btG8mmgyuZ」 / Twitter
- hiroshiさんはTwitterを使っています: 「まずは文化庁公式見解を読んでおくのが良いと思います。 https://t.co/IrlSgDp64P 文化庁「著作権法の一部を改正する法律(平成30年改正)について(解説)」 著作物に表現された思想又は感情の享受を目的としない利用(新法第30条の4関係) https://t.co/0tzkN96zER」 / Twitter
- r1406693_11.pdf
- Yuta Nakamura 🌧️🐠🐠🐠さんはTwitterを使っています: 「著作物からのコーパスや訓練済み△△の作成・公開をするにあたって,NLPerの皆さんは法的な問題をどこで相談しているんだろう」 / Twitter
- hiroshiさんはTwitterを使っています: 「著作物に表現された思想又は感情を自ら享受し又は他人に享受させることを目的としない場合(以下「非享受目的」という。)には,その必要と認められる限度において,利用することができることとした。」 / Twitter
- hiroshiさんはTwitterを使っています: 「同条は,上に述べたように実質的に通常権利者の対価回収機会を損なわないものの,形式的には権利侵害となってしまう一定の行為を広く権利制限の対象とする趣旨で新たに規定を整備するものである。」 / Twitter
- hiroshiさんはTwitterを使っています: 「こちらの法律事務所の記事に具体的な解説があります。 https://t.co/zSTAx7ckn5 「著作物の本来的利用には該当せず、権利者の利益を通常害さないと評価できる行為類型」「モデル生成を行う他人のために学習用データセットを作成して不特定多数の第三者に販売したりWEB上で公開する行為」等々記載あり〼」 / Twitter
- 進化する機械学習パラダイス ~改正著作権法が日本のAI開発をさらに加速する~ | STORIA法律事務所
- じょじょんきさんはTwitterを使っています: 「Webクロールベースの870万の日英ペア文のコーパスを公開|[1911.10668] JParaCrawl: A Large Scale Web-Based English-Japanese Parallel Corpus https://t.co/7icfPmN0YV」 / Twitter
- [1911.10668] JParaCrawl: A Large Scale Web-Based English-Japanese Parallel Corpus
- hiroshiさんはTwitterを使っています 「日本語の学習済みWord Embeddingの比較評価をしている記事があるけど、複合辞と文節の区別がないのもしかり、評価方法も客観的でなくて残念。ワークス徳島研の論文に学ぶことは多くあるはず。」 / Twitter
- テキスト解析:ルビ振り - Yahoo!デベロッパーネットワーク
- 新辞林 - 言語と知能
- Googleが自然言語処理の弱点「言い換え」を克服するデータセットを公開 - GIGAZINE
Universal Dependencies
Universal Dependencies
- Universal Dependencies
- 日本語係り受け解析エンジンとしてのGiNZA・StanfordNLP・UDPipe | yasuokaの日記 | スラド
- Universal Dependenciesにおける「二重主語」の問題 | yasuokaの日記 | スラド
- Universal Dependencies 2.4がリリース | yasuokaの日記 | スラド
- Universal Dependencies と類型論 - murawaki の雑記
- 「語」とはなにか・再考 - murawaki の雑記
- 研究紹介
- 松田寛 - 短単位品詞の用法曖昧性解決と依存関係ラベリングの同時学習
- CiNii 論文 - 日本語Universal Dependenciesに基づく構文解析の検証 (言語理解とコミュニケーション)
- CiNii 論文 - 日本語Universal Dependenciesに基づく構文解析の検証 (思考と言語)
- Universal Dependencies 日本語コーパス
- P5-8.pdf
- E3-4.pdf
- im2017.pdf
- 「毎日、友だちといっしょに校庭を走る。」の「毎日、」は、どこに係っているのか | yasuokaの日記 | スラド
- 「象は鼻が長い」の「象は」は、どこに係っているのか | yasuokaの日記 | スラド
- UDPipe Visualizer with ICTree by Koichi Yasuoka, June 22, 2019.
- Universal Dependencies 2.5がリリース | yasuokaの日記 | スラド
- Universal DependenciesとStanford Typed Dependenciesと矢印の向き | yasuokaの日記 | スラド
- 日本語Universal Dependenciesにおける名詞句の並列はconjの夢を見るか | yasuokaの日記 | スラド
- Universal Dependencies 日本語コーパス
- 形態素解析モジュールfugashiが「軽量版UniDic」を伴ってリリース | yasuokaの日記 | スラド
- 『言語処理100本ノック 2020』「48. 名詞から根へのパスの抽出」をCamphr-KNPで解いてみる | yasuokaの日記 | スラド
- 日本語Universal Dependenciesで二文節間の「係り受け」をエミュレートするには | yasuokaの日記 | スラド
- UD_Japanese-GSD (v2.6向けdev)プレリリースに関して | yasuokaの日記 | スラド
- Universal Dependencies 2.6がリリース | yasuokaの日記 | スラド
- 「申し訳ないが私は興味ない」の「ない」は同じなのか違うのか | yasuokaの日記 | スラド
- 「近いとしても」と「親としても」では単語間の係り受け構造は異なるのか | yasuokaの日記 | スラド
spaCy と GiNZA
- hiroshiさんはTwitterを使っています: 「本日のUniversal Dependencies Symposium@国立国語研究所での発表資料です。 「GiNZAで始める日本語依存構造解析〜CaboCha, UDPipe, Stanford NLPとの比較」 https://t.co/T3mwQN6Lep」 / Twitter
- GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
- リクルートのAI研究機関、国立国語研究所との共同研究成果を用いた日本語の自然言語処理ライブラリ「GiNZA」を公開 | Recruit - リクルートグループ
- NLP2019 松田寛 - GiNZA
- [“GiNZA - Japanese NLP Library”] | [“Universal Dependenciesに基づくオープンソース日本語NLPライブラリ”]
- megagonlabs/ginza: A Japanese NLP Library using spaCy as framework based on Universal Dependencies
- hiroshiさんはTwitterを使っています: 「日本語NLPライブラリGiNZAとそのベースとなるspaCyについての秀逸な解説です。Text Classificationまで詳細に説明されています。spaCyの内部構造を知る上でとても貴重な情報源だと思います。 オージス総研 はじめての自然言語処理 - 第4回 spaCy/GiNZA を用いた自然言語処理 https://t.co/uY4Yq9bnib」 / Twitter
- はじめての自然言語処理 spaCy/GiNZA を用いた自然言語処理 | オブジェクトの広場
- spaCyと現代書き言葉UniDicで読む『吾輩は猫である』 | yasuokaの日記 | スラド
- GiNZAで読む『吾輩は猫である』 | yasuokaの日記 | スラド
- GiNZA v2.0.0で読む『吾輩は猫である』 | yasuokaの日記 | スラド
- GiNZA v2.2.0で読む『吾輩は猫である』 | yasuokaの日記 | スラド
- hiroshiさんはTwitterを使っています: 「今後ginzaコマンドに並列実行オプションを追加するときには、形態素解析レイヤだけの高速動作モードも追加しようかと。使う側はとにかくシンプルな記述で最大速度が得られれば満足だと思うので。」 / Twitter
- hiroshiさんはTwitterを使っています: 「GiNZAは依存構造(or係り受け)解析器ですが、形態素解析器と勘違いされがちなので、GiNZAと同時にインストールされる高速な形態素解析器を、 $ sudachipy で実行するようREADMEで案内しようと思います。」 / Twitter
- 多言語解析ツールspaCy 2.2.2がリリース | yasuokaの日記 | スラド
- GiNZA+Elasticsearchで係り受け検索の第一歩 - Taste of Tech Topics
- hiroshiさんはTwitterを使っています: 「日本語NLPライブラリGiNZA v3.0.0 (Benitoite)をリリースしました。https://t.co/CDumSLJb6o pip install ginza でインストールが完了。 形態素解析専用のginzameコマンドを追加。 UD_Japanese-BCCWJ+GSK2014-Aでparser+nerをマルチタスク学習することで精度もかなり改善しています。 ぜひお試しを!」 / Twitter
- hiroshiさんはTwitterを使っています: 「pipenvを含む一部の環境で形態素辞書が読み込めない問題に対処したGiNZA v3.1.0をリリースしました。 pip install -U ginza で最新版に更新し、ginzaコマンドを実行した際に ValueError: cannot mmap an empty file のエラー表示で異常終了する場合は、 ginza -i で形態素辞書を初期化してください。 https://t.co/lDzSoEASgb」 / Twitter
- GiNZA v3.1.0で読む「ライトの兄弟オスカーはコミックブック作家だ。」 | yasuokaの日記 | スラド
- ginzaとnetworkxを使って係り受けパスで文をインデクシング - ナード戦隊データマン
- 係り受けパスによるインデクシングを日英に一般化 - ナード戦隊データマン
- 何もない所から一瞬で、自然言語処理と係り受け解析をライブコーディングする手品を、LTでやってみた話 - Qiita
- hiroshiさんはTwitterを使っています 「GiNZA v3で強化された固有表現抽出をマスキングに応用した記事です。独自コーパスでしっかり定性評価されています。spaCyのCNNモデルは追加学習も可能です。一度コーパスをGiNZAで解析してENEタグを付与し、それらと競合しない新たな抽出対象をタグ付けしたコーパスでNERを追加学習するのがよいかと。 https://t.co/S5UQs3FDAQ」 / Twitter
- 株式会社AI ShiftさんはTwitterを使っています 「*TECH BLOG更新* 固有表現抽出を用いて個人情報のマスキングができるかを検証した記事の続編です。今回はGiNZAを用いた検証を行いました。 https://t.co/nqvMDXeOnx」 / Twitter
- GiNZAによるテキストデータからの個人情報の抽出 | 株式会社AI Shift
- hiroshiさんはTwitterを使っています 「GiNZA v3の固有表現抽出はENE(関根の拡張固有表現階層)体系で学習しています。 https://t.co/H9HuzZHCBH https://t.co/Fk1DhaWAOa そしてpipelineの後段でENEからspaCy標準のOntoNoted5固有表現ラベルを独自に拡張した体系に変換しています。 追加学習時はENE体系を考慮したタグ付けを行ってください。」 / Twitter
- 関根の拡張固有表現階層 -7.1.1-
- liat-aip.sakura.ne.jp/ene/ene8/definition_jp/html/enetree.html
- spaCy上の係り受け可視化ツールdeplacy | yasuokaの日記 | スラド
- CamphrがKNPの係り受け解析をサポート | yasuokaの日記 | スラド
- 「吾輩はここで始めて人間というものを見た」の文節係り受けはどうなっているか | yasuokaの日記 | スラド
- 『言語処理100本ノック 2020』「48. 名詞から根へのパスの抽出」をGiNZAで解いてみる | yasuokaの日記 | スラド
Stanza(StanfordNLP)
- Masato Hagiwara (萩原正人)さんのツイート: "スタンフォード大のNLPグループから、ニューラルで分かち書き、品詞タグ付け、係り受け解析ができる Python ネイティブのライブラリが登場。Universal Dependencies 準拠、53言語に対応。前処理の新たなスタンダードになりそう。https://t.co/Qu9fzztkNH"
- StanfordNLP | StanfordNLP
- 「令和」の係り受け解析エンジン(仮)としてのStanfordNLP | yasuokaの日記 | スラド
- StanfordNLPで読む『吾輩は猫である』 | yasuokaの日記 | スラド
- CoNLL-U Format
- 64ビットCygwinにStanfordNLPをインストール | yasuokaの日記 | スラド
- piqcyさんはTwitterを使っています 「stanfordnlpが進化したStanzaが公開。spaCyのように自然言語の各種処理(単語分割・依存構造解析・固有表現認識etc)をパイプラインで実行可能。PyTorchで構築されたニューラルベースのモデルで解析を行う。多言語対応がうれしい(日本語含む66言語)。ライセンスはApache2だが内包するCoreNLPはGPLで注意 https://t.co/OAawRDkhpE」 / Twitter
- piqcyさんはTwitterを使っています 「なおspaCyからStanzaを利用することも可能 https://t.co/3OHYIIJKym」 / Twitter
- 多言語文法解析ツールStanzaリリース | yasuokaの日記 | スラド
- Google ColaboratoryでStanzaの結果を可視化するには | yasuokaの日記 | スラド
- Re: Google ColaboratoryでStanzaの結果を可視化するには | yasuokaの日記 | スラド
- UD-Kanbun・spacy-stanza・spacy-udpipeの自動文切り機能をOFFにするには | yasuokaの日記 | スラド
- 「New York」と「Hà Nội」と「新大阪」は1語なのか2語なのか | yasuokaの日記 | スラド
UDPipe
- 「令和」の係り受け解析エンジン(仮)としてのUDPipe | yasuokaの日記 | スラド
- UDPipe APIのpython3ラッパー | yasuokaの日記 | スラド
- Web茶まめとUDPipe APIの両方にアクセスできるpythonラッパー | yasuokaの日記 | スラド
- Web茶まめとUDPipeの組み合わせによる旧字旧かな係り受け解析 | yasuokaの日記 | スラド
- Web茶まめとUDPipeの組み合わせによる旧字旧かな係り受け解析の改良 | yasuokaの日記 | スラド
- 多言語文法解析ツールとしてのspacy-udpipe | yasuokaの日記 | スラド
unidic2ud
- 現代・古典日本語の形態素解析・係り受け解析のためのunidic2ud | yasuokaの日記 | スラド
- unidic2udと現代書き言葉UniDicで読む『吾輩は猫である』 | yasuokaの日記 | スラド
- UniDic2UDによるCaboChaエミュレータ | yasuokaの日記 | スラド
- UniDic2UDによるCaboChaエミュレータと本物のCaboChaとの違い | yasuokaの日記 | スラド
- UniDic2UDによるCaboChaエミュレータをWindowsで動かすには | yasuokaの日記 | スラド
- UniDic2UDによる単語間の係り受けと二文節間の係り受け | yasuokaの日記 | スラド
- 日本語における単語間の係り受け解析 | yasuokaの日記 | スラド
- 多言語係り受け解析ツールとしてのUniDic2UD | yasuokaの日記 | スラド
- UniDic2UDにおける品詞間の対応 | yasuokaの日記 | スラド
- UniDic2UDとGiNZAで読む「難儀な難儀は難儀する」 | yasuokaの日記 | スラド
- 「港の見える丘」の「港」は「見える」の主語なのか | yasuokaの日記 | スラド
- 日本語の言語処理における「単語」長の問題 | yasuokaの日記 | スラド
- 動詞の連用形による体言修飾は名詞として扱うべきか否か | yasuokaの日記 | スラド
- 接続助詞による体言修飾は名詞として扱うべきか否か | yasuokaの日記 | スラド
NLP-Cube
- 「令和」の係り受け解析エンジン(仮)としてのNLP-Cube | yasuokaの日記 | スラド
- 日本語係り受け解析エンジンとしてのNLP-Cube | yasuokaの日記 | スラド
- NLP-Cubeで読む『吾輩は猫である』 | yasuokaの日記 | スラド
- 64ビットCygwinにNLP-Cubeをインストール | yasuokaの日記 | スラド
COTOHA API
- COTOHA APIのUniversal Dependencies向けpythonラッパー | yasuokaの日記 | スラド
- COTOHA APIのUniversal Dependencies向けpython3ラッパー | yasuokaの日記 | スラド
- 「望遠鏡で泳ぐ彼女を見た」の係り受けをCOTOHA APIで解析する | yasuokaの日記 | スラド
- COTOHA API
- Google ColaboratoryでCamphr-Udifyを使うには | yasuokaの日記 | スラド
- Google ColaboratoryでCamphr-Udifyの結果を可視化するには | yasuokaの日記 | スラド
- CygwinにSciPyをインストール | yasuokaの日記 | スラド
Graphviz
- 望遠鏡は「望遠」「鏡」なのか「望」「遠鏡」なのか | yasuokaの日記 | スラド
- 「望遠鏡で泳いでいる彼女を見た」の係り受け関係 | yasuokaの日記 | スラド
- 「望遠鏡で泳ぐ彼女を見た」の係り受け構造をGraphvizで可視化する | yasuokaの日記 | スラド
- 「望遠鏡で泳ぐ彼女を見た」の係り受け構造をGraphviz 2.38で可視化する | yasuokaの日記 | スラド
- 「望遠鏡で泳ぐ彼女を見た」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
- Re: 「望遠鏡で泳ぐ彼女を見た」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
- 「これが僕は正しいと思う」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
- Re:「これが僕は正しいと思う」の直接構成鎖解析木をGraphvizで可視化する | yasuokaの日記 | スラド
照応解析
- リーディングスキルテストは、何の「係り受け」をテストしているのか | yasuokaの日記 | スラド
- D5-2.pdf
- 照応解析 - Wikipedia
- _pdf
- ono_bthesis.pdf
- 照応・照応解析まとめ|直接照応・間接照応・外界照応・ゼロ照応 - アズメディア|広告とメディアを考える(@_danboooo_ )
- 照応解析
- 省略・照応解析
- ゼロ照応解析について - あしたからがんばる ―椀屋本舗
- CiNii 論文 - 外界照応および著者・読者表現を考慮した日本語ゼロ照応解析
- https://ipsj.ixsq.nii.ac.jp
談話構造解析
- 談話構造解析 DIA
- 奥村研究室ホームページ
- P3-15.pdf
- F6-2.pdf
- 談話構造 | Nishida Lab
- 自然言語処理18_31
- _pdf
- 談話構造理解(だんわこうぞうりかい)とは - コトバンク
- #3211. 統語と談話構造
- Open Resources - 東北大学 乾・鈴木研究室 / Communication Science Lab, Tohoku University
- コロナ社「文脈解析」本のレビュー - Qiita
- 公開ツール - NAIST Computational Linguistics
- 太田 博三 - 「コロナ社」「文脈解析- 述語項構造・照応・談話構造の解析 - (自然言語処理シリーズ 10)... | Facebook
述語項構造解析
- 英語形態論
- 述語項構造シソーラス (岡山大学竹内研)
- 自然言語処理21_333
- B4-5.pdf
- E1-1.pdf
- 日本語文章に対する述語項構造アノテーション仕様の考察
- 述語項構造解析 | Yuta Hayashibe
- nlp13.pdf
- 10-6-B3-4.pdf
- 述語項構造シソーラス | Takeuchi Lab
- 述語項構造のシソーラス分類と意味役割の設計について
- D4-3.pdf
- JCLWorkshop_No.7_18.pdf
- JCLWorkshop_No6_06.pdf
- 述語項構造解析のための格フレーム辞書構築の検討 - 長岡技術科学大学 自然言語処理研究室
- 研究会 - BCCWJへの述語項構造シソーラスの付与による意味役割の検討
- CiNii 論文 - 述語項構造シソーラスによる述語と名詞の構造化
- takeuchivthai.dvi
スラド
- Montague形式意味論とМельчук依存文法は、どちらが漢文の自動解析に向いているか | yasuokaの日記 | スラド
- Kyoto University Research Information Repository: 漢文の依存文法解析と返り点の関係について
- AIを用いた漢文の文法解析 | yasuokaの日記 | スラド
- Kyoto University Research Information Repository: 古典中国語(漢文)の形態素解析とその応用
- Kyoto University Research Information Repository: 四書を学んだMeCab+UDPipeはセンター試験の漢文を読めるのか
- Kyoto University Research Information Repository: Universal Dependenciesの拡張にもとづく古典中国語(漢文)の直接構成鎖解析の試み
- udkanbun · PyPI
- UDPipe Visualizer with ICTree by Koichi Yasuoka, June 22, 2019.
- 直接構成素解析と直接構成鎖解析 | yasuokaの日記 | スラド
- 「駆け抜ける」と「走り切る」は複合動詞なのか動詞連続なのか | yasuokaの日記 | スラド
- 「着たくない服は着ない」の「ない」はcliticかaffixか | yasuokaの日記 | スラド
- 「知を致すは物に格るに在り」の「に」はcliticかaffixか | yasuokaの日記 | スラド
- 「うなぎを浜松に食べに行く」は係り受け解析できるのか | yasuokaの日記 | スラド
- 東ロボは何を係り受け解析していたのか | yasuokaの日記 | スラド
- 多言語係り受け解析ツールとしてのCamphr-Udify | yasuokaの日記 | スラド
- 64ビットCygwin向けAllenNLPインストーラ仮公開 | yasuokaの日記 | スラド
- WSL上のLinuxにKNPをインストールする | yasuokaの日記 | スラド
Wikipedia
- 構成素 - Wikipedia
- カテナ (言語学) - Wikipedia
- 依存文法 - Wikipedia
- ルシアン・テニエール - Wikipedia
- 統語論 - Wikipedia
- 補語 - Wikipedia
Twitter
- Sorami HisamotoさんはTwitterを使っています 「ワークス徳島NLPでは日本語単語ベクトル「chiVe(チャイブ)」も公開しています! 本日 v1.1 をリリース。 国立国語研との共同研究、100億語規模コーパス「NWJC」、形態素解析器「Sudachi」の複数分割単位を併用、word2vec (Skip-gram) で学習。 https://t.co/Uf1Y0OgIZW #NLP2020sponsor #NLP2020」 / Twitter
- WorksApplications/chiVe: Japanese word embedding with Sudachi and NWJC
- Taishi IkedaさんはTwitterを使っています 「形態素解析器を比較するためのライブラリを公開しました! https://t.co/rvpebKewMw 日本語コーパスのダウンローダーと前処理機能を搭載しており、数行のコードで処理速度の比較、単語分割の比較、後段タスクでの精度比較が行えます。 またDockerでは、環境構築なしに9種類の解析器を比較できます! https://t.co/DhmbflEVqe」 / Twitter
- taishi-i/toiro: A comparison tool of Japanese tokenizers
- takuya-aさんはTwitterを使っています 「PMI を正規化する Normalized PMI (NPMI) を使ったフレーズ認識。そこそこうまくいくみたい / 他4件のコメント https://t.co/kA1iGpIdJU “mots quotidiens.” https://t.co/PBGw4wQIm6」 / Twitter
- [B! nlp] mots quotidiens.
- mots quotidiens.
- 形態素解析を行うだけのバッチをつくる - クックパッド開発者ブログ
- Haruhiko OkumuraさんはTwitterを使っています 「ということでオープンデータの定義についてまとめておいた→ https://t.co/NL8AkyLETy」 / Twitter
- オープンデータとは
- shirayuさんはTwitterを使っています 「日本語T5モデルを公開しました. トークナイザをByte-fallbackありで学習しているので,「未知語」が基本的に発生しません. 学習データにもよりはしますが,「鯯」(さっぱ)のような珍しい漢字が入力にあっても,上手く扱ってくれることが期待できます. https://t.co/lWPn0qFSzx」 / Twitter
- megagonlabs/t5-base-japanese-web · Hugging Face
- 速度の高みを目指す:高速な単語分割器 Vaporetto の技術解説 - LegalForce Engineering Blog
- 水先案内人@江戸川さんはTwitterを使っています 「VaporettoのリポジトリにBenchmark用のコードを追加しました。各種Tokenizerの実行速度を計測比較できます。 https://t.co/EvNYZtSLI2」 / Twitter
- vaporetto/bench at main · legalforce-research/vaporetto
情報幾何学
最小二乗法
- 1916-07.pdf
Twitter
- 解答略さんはTwitterを使っています 「情報幾何におけるAffine座標系は、関数の空間における良い座標系を上手く定義してるなぁと思ってる。例えば正規分布の場合 「なんでパラメタをμとσに取るの?2^μ+σ^3とμ/σではダメなの?」 という疑問に対し 「正規分布全体の空間における、確率構造に由来する接続と整合しないからダメ」 と論破できる」 / Twitter
- てらモス♋️さんはTwitterを使っています 「ここで確率測度の空間の構造と整合する正規分布のパラメータの組のとり方が実は二つ存在することが分かり...」 / Twitter
- てらモス♋️さんはTwitterを使っています 「それぞれ二つの積 p(x)q(x)/\int p(x)q(x) dx, \int p(x-y) q(y) dy に対応する事が分かる...」 / Twitter
- てらモス♋️さんはTwitterを使っています 「そしてカルマンフィルターはこの二つの積を交互にとる操作そのものだという導入を...」 / Twitter
- てらモス♋️さんはTwitterを使っています 「確率測度の空間、アフィンにしかならなくてしかも積が二つ入るので環にならないし結構不思議な形してるよね」 / Twitter
- てらモス♋️さんはTwitterを使っています 「一次元正規分布を指数型関数族として見ようと思うと、パラメータ二つあるので x -> (x, x^2) で無理やり二次元に持ち上げるけど、これのせいで二次元空間上で δ(y=x^2) 的な特異な測度になるので、測度論を軽く触っておかないと厳しい(ルベーグ測度とボレル測度の違いとか難しいやつは勿論要らない)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「と言う話を云々してるから chaos-da が全く進まないんだよ!」 / Twitter
- てらモス♋️さんはTwitterを使っています 「カルマンフィルターが遠い...」 / Twitter
- てらモス♋️さんはTwitterを使っています 「確か LETKF の誤差解析をやろうと思ってたはずなのになんでこんなところからやっているのか...」 / Twitter
- 2020年抱負 | κeenのHappy Hacκing Blog
- 幾何を使った統計のはなし
- 情報幾何学1: 確率分布とリーマン多様体 - 初級Mathマニアの寝言
- 情報幾何入門
- _pdf
- DVIOUT
- matsuzoe_201710hokudai-handout.pdf
- takano.pdf
- toukei12.dvi
- 情報幾何の勉強。機械学習の数理的研究。 - 日記マン
- infogeo.dvi - infogeo-sice.pdf
- 11_KJ00005768851.pdf
- book_0403.pdf
- 「情報幾何」に入門するための資料PDF。解説論文と機械学習への応用の紹介 - 主に言語とシステム開発に関して
- 「情報幾何」で深層学習の謎を解く新しい機械学習手法を創り出す - NII SEEDs / 国立情報学研究所
- 情報幾何への入門と応用
- FEM と幾何学の機械学習 – 株式会社科学計算総合研究所
- 情報幾何勉強会(第一回 情報量) – 株式会社科学計算総合研究所
ニューラルネットワーク
その他
- 世界初!教師データなしで高次元データの特徴を正確に獲得できるAI技術を開発 : 富士通
- 20190529_xSiG_public
- リザーバコンピューティング - Google 検索
- masa-su/pixyz: A library for developing deep generative models in a more concise, intuitive and extendable way
- Machine Learning Systems are Stuck in a Rut | Proceedings of the Workshop on Hot Topics in Operating Systems
- C4ML
- 富岳CPU A64FX用ディープラーニングライブラリの深層 -研究者が語る開発の軌跡- - fltech - 富士通研究所の技術ブログ
- MIT Tech Review: グーグルが発見した、機械学習が現実世界で使い物にならない理由
- ReLU - Google 検索
- 数学セミナー2018年12月号|日本評論社
- 2020年度講義情報ページ
- AI研究の第一人者・松尾豊氏が語る「日本でDXやAIの活用が進まない理由」|@DIME アットダイム
- AIりんな、コンシェルジュなどの顧客対応へ - 阿久津良和のWindows Weekly Report | マイナビニュース
- [2009.05673] Applications of Deep Neural Networks
- AI in Software Engineering at Facebook
- 「悪いやつをAIで予測する」のがなぜいけないか - yhara.jp
- 「この人、家賃を滞納しそう?」AIが予測 入居審査を45分→16分に - ITmedia NEWS
- mediapipe - Google 検索
- AlphaFold2 - Google 検索
- 「6年解けなかった構造があっさり」──タンパク質の“形”を予測する「AlphaFold2」の衝撃 GitHubで公開、誰でも利用可能に - ITmedia NEWS
- AlphaFold2PredictStructure.ipynb - Colaboratory
- deepmind/alphafold: Open source code for AlphaFold.
- 東京大学、強化学習と統計的自然言語処理の講義資料が無料公開 サイバーエージェントの講師ら担当
画像や3Dボリュームを小さいデータで近似
- FadisさんはTwitterを使っています 「画像や3Dボリュームを小さいデータで近似するNNを素早く学習させる論文。全体を1つのNNで学習するのではなく、データを複雑な部分ほど小さくなる階層的なブロックで区切り、ブロックに対応するfeature gridを選ぶNNと選ばれたfeature gridから値を求めるNNを繋いで学習させる https://t.co/E8mYkrdZbY」 / Twitter
- Computational Imaging ACORN: Adaptive Coordinate Networks for Neural Representation | SIGGRAPH 2021
- FadisさんはTwitterを使っています 「feature gridを選ぶNNの入力はグローバル座標xyzとブロックのサイズsで、個々のブロックのサイズは学習中に上がってくる誤差を元に「有限のブロック数を現在の分割数で誤差が減らない所により多く割り当てる」ような整数計画問題を解く事で決定する」 / Twitter
- FadisさんはTwitterを使っています 「ブロックサイズが変わるとNNの入力が変わるので、NNは聞かれなくなった「古いサイズの場合の出力」を緩やかに忘れながら「新しいサイズの場合の出力」を学習し直すことになる。ブロック数は固定で、どこかを細かくするとどこかが荒くなる為、学習が進むと分割が必要な所ほど細かく分割された状態になる」 / Twitter
- reroさんはTwitterを使っています 「@fadis_ 忘れるとかもできるんやな。入力が少なくなって相対的に全体への影響が減るだけじゃなくてちゃんと記憶データサイズも減ってるのかな?」 / Twitter
パーセプトロン
その他
- 第17回 パーセプトロンを実装してみよう:機械学習 はじめよう|gihyo.jp … 技術評論社
- 第15回 分類問題ことはじめ:機械学習 はじめよう|gihyo.jp … 技術評論社
- ニューラルネットワークとパーセプトロン - Sideswipe
- ニューラルネットワークの動物園 : ニューラルネットワーク・アーキテクチャのチートシート(前編) | コンピュータサイエンス | POSTD
- ニューラルネットワークの動物園 : ニューラルネットワーク・アーキテクチャのチートシート(後編) | コンピュータサイエンス | POSTD
- はてな社内の勉強会で構造学習について発表しました - yasuhisa's blog
- 七誌さんのツイート: "パーセプトロンでXORが実装できない理由を、真理値表を2次元にマッピングして一次関数の直線で区切れないためと説明された。区切るためには曲線が必要で、その曲線がフェルマー曲線や楕円曲線に似ていると思っていた。あ、だからフェルマー予想の証明に楕円関数論が絡むのか!と今頃気付いた…"
- 七誌さんのツイート: "楕円関数論の重要性がじわじわ来ている。改めて竹内先生の緒言が身に染みる! https://t.co/99YRij5404"
- パーセプトロンの概観とディープラーニングへ - HELLO CYBERNETICS
- パーセプトロン - Pythonと機械学習
- コベクトルで考えるパーセプトロン - Qiita
- 実は難しい自然言語処理。画像認識の活用も始まる
コンパイル
- 入門 Keras (2) パーセプトロンとロジスティック回帰 | 株式会社インフィニットループ技術ブログ
- Kerasでディープラーニングに入門する(MNISTの手書き数字問題を単層パーセプトロンで解く) - Qiita
- OCamlとSLAPで作る型安全ニューラルネット(と深層学習) - Qiita
- パーセプトロンってなんだろう? - きしだのはてな
- パーセプトロンとサポートベクターマシン - きしだのはてな
- ニューラルネットワーク - プログラムに組込み可能なライブラリ
- 第16回 最適化のための勾配法:機械学習 はじめよう|gihyo.jp … 技術評論社
- keras_tutorial
- MXNet チュートリアル : 手書き数字認識 – MNIST – PyTorch
- Caffe2によるディープラーニングの基礎と実践 rev 1.1
- 多層パーセプトロン (Multilayer perceptron, MLP)をExcelで理解する - Qiita
ネットワーク
- パーセプトロンとニューラルネットワークの違い - kakts-log
- パーセプトロンとは? - Qiita
- ニューラルネットワークと深層学習
- 多層パーセプトロン - Wikipedia
- パーセプトロン - Wikipedia
- 機械学習 - パーセプトロンはニューラルネットワークなのか?|teratail
- パーセプトロン ニューラル ネットワーク - MATLAB & Simulink - MathWorks 日本
- パーセプトロンとニューラルネットワーク(1) - 人工知能・ロボティクス・and so on 工学系ブログ
- ニューラルネットワークとは?人工知能の基本を初心…|Udemy メディア
- ニューラルネットワークが持つ欠陥「破滅的忘却」を回避するアルゴリズムをDeepMindが開発した論文を読んだ - Qiita
- Deep Forest :Deep Neural Networkの代替へ向けて - Qiita
- C++ヘッダだけでDeep Learning、tiny-dnnの紹介 - Qiita
- Fadisさんのツイート: "最近、ディープラーニングを扱う記事のニューラルネットワークのイメージ図が謎の3層全結合だったら、記事が古いのではないかと疑う事を覚えた"
可視化
- 多層パーセプトロンの動きを可視化する - StatsFragments
- Python: 単純パーセプトロンを実装してみる | CUBE SUGAR STORAGE
- D3.jsでパーセプトロンを可視化した - くじらにっき++
- 多層パーセプトロンの動きを可視化する - StatsFragments : GoogleやFacebookが注目するディープラーニング(深層学習)についてまとめてみた - NAVER まとめ
- perceptronの可視化 - Qiita
- プログラマーが効果的な可視化を作成する (前編) - Qiita
- プログラマーが効果的な可視化を作成する (中編) - Qiita
- プログラマーが効果的な可視化を作成する(後編 Part 1): 基本原則 - Qiita
- プログラマーが効果的な可視化を作成する(後編 Part 2): 学習ガイド - Qiita
- 高次元データの次元削減および2次元プロット手法 - Qiita
- 探索的データ解析における正しい可視化手法の選び方と描き方 - Qiita
- 情報理論を視覚的に理解する (1/4) : | コンピュータサイエンス | POSTD
- 情報理論を視覚的に理解する (2/4) | コンピュータサイエンス | POSTD
- 情報理論を視覚的に理解する (3/4) | コンピュータサイエンス | POSTD
- 情報理論を視覚的に理解する (4/4) | コンピュータサイエンス | POSTD
時系列
- パーセプトロン
- Journal of Chemical Software Vol.4 No.2, p.57 (1997)
- 階層型のネットワーク
- ニューラルネットワークの考え方 | Logics of Blue
- 18-1-10.dvi
- 売買判定システム修正版2
ボルツマンマシン
- ボルツマンマシン - Wikipedia
- ボルツマン分布 - Wikipedia
- daem0nc0reさんはTwitterを使っています 「物理学から離れてかなり経つので知らなかったけど、2019年にBoltzman定数の定義が見直されたんですね。 https://t.co/nUhwkfD4bc」 / Twitter
- SI-Brochure-9.pdf
- ボルツマン定数 - Wikipedia
ONNX
- AWS、Facebook、Microsoftの3社、AIモデルのオープンフォーマット「ONNX」を正式リリース:異なるディープラーニングフレームワーク間でAIモデルを移行できる - @IT
- ディープラーニングフレームワーク間で共通のモデル表現が可能に:MicrosoftとFacebook、AIモデルの相互運用性を実現する共同プロジェクト「ONNX」を発表 - @IT
- AWS、MicrosoftやFacebookなどが推すAIフォーマット「ONNX」をサポート:ディープラーニングモデルのオープンフォーマットのエコシステムが拡大 - @IT
- AIモデルの相互運用性プロジェクト「ONNX 1.0」 | OSDN Magazine
- ONNX のモデル出力と、ONNX を使った推論をやってみた - Fixstars Tech Blog /proc/cpuinfo
- ONNX
- Open Neural Network Exchange
- shinichiro hamajiさんのツイート: "ONNX、ループとかないと思ってたけどいつのまにか生えてるやん https://t.co/LTSE4GsztY"
- Yuta Kashinoさんのツイート: "How Facebook scales AI https://t.co/pJJIRPqRYC FaceBook社内の機械学習インフラ.PyTorchで学習した後にONNX経由でCaffe2によるプロダクション環境での推論実行が実現できているそうです.… https://t.co/zAz0yUkmh3"
- PreferredNetworksJPさんのツイート: "【発表】学習済みDNNモデルを #ONNX 形式から読み込んで動作させる推論専用ライブラリMenoh(メノウ)を公開! #Chainer で学習したモデルを #Python 以外の言語で実装したアプリケーションに瞬時にデプロイすることができます。 https://t.co/xXjPh0JViE"
- pfnet-research/menoh
- Taku Kudoさんのツイート: "ONNX ということは、Define-by-Run が標榜する真の動的モデルの実行は難しいのではないのかな... TFのようにインファレンスを Python から切り離してヘテロ環境で実行したいのなら、どのみち静的なグラフが必要で、そのへんのトレードオフはなかなか解けないですね。"
- Taku Kudoさんのツイート: "Define-by-Run, Define-and-Run より、Model as code, Model as data といったほうが、インファレンスの立場からの違いがはっきりすると思う。"
- はじめてのにき(2018-07-01)
- 米Microsoft、機械学習向け推論エンジン「ONNX Runtime」をオープンソースで公開 | OSDN Magazine
- ONNX はチューリング完全だよ、という話 - 兼雑記
- Noriyuki OHKAWAさんのツイート: "onnx関係者 "All names MUST adhere to C identifier syntax rules." て文を誰も読めないんじゃないかと疑ってる."
- Microsoft/onnxjs: ONNX.js: run ONNX models using JavaScript
- shinichiro hamajiさんのツイート: "OpenVINO サポート、実装やり直して今の2つ目で、何がうざいって ONNX => dldtモデル部分が Python で書かれてることで、僕は system(3) でやるのが結局一番と判断したけど https://t.co/lEsjvPu4r0 onnxruntime は Python.h 使って頑張ったぽい https://t.co/AtHXMwHQN1"
- shinichiro hamajiさんのツイート: "Intel みずから onnxruntime に関わってくれたおかげで、それなりに ONNX サポートキープしてくれそう……?という期待ができるのかな。。まあ TF/Caffe 優先ではあるのだろうけど"
- shinichiro hamajiさんのツイート: "また三日坊主になってる。GSoCのやたら優秀な方に、 continue/break/return を実装していただいた https://t.co/TaBIzzVK5l ONNXに落とす(キツい)、グラフに変換する時に頑張る(キツい)、などを検討した後に、AST-to-ASTで消しさればいいんじゃない?という話になって、綺麗にまとまって良かった"
- Canonicalizer Unittests, and Break Canonicalization. by Rishav1 · Pull Request #352 · pfnet-research/chainer-compiler
- shinichiro hamajiさんのツイート: "つまり任意の Python AST を continue/break/return の無い Python AST に等価変換する感じ"
- shinichiro hamajiさんはTwitterを使っています: 「Practical developers 読んでて、むしろ value_info が必須でないことが ONNX で良いと判断した理由の一つだったなあと。 shape 必須な時は static shape なグラフなので、単に onnx.shape_inference.infer_shapes すれば(バグってなければ) value_info は全て判明するはずだし」 / Twitter
- Noriyuki OHKAWAさんはTwitterを使っています: 「@shinh exchange formatなのに利用側に(shape inferのための)runtimeを要求するのが嫌だと思ったんですよね.python同士でしかやりとりしないなら別にいいんですけど」 / Twitter
- shinichiro hamajiさんはTwitterを使っています: 「@notogawa たしかに、C++/Python以外から使いにくくなってprotoの利点ちょっと殺しちゃってると言われればそうかもですね」 / Twitter
- shinichiro hamajiさんはTwitterを使っています: 「また三日坊主になってる。最近だとONNX workshop行って、Python listをSequenceで扱うopを足して、というのが進んでたので、それは一年前通った道……と偉そうにこういうの多分いるよ、て共有したり https://t.co/IY5s5qLISa PR にコメント書いたり、提案通り実装したりした https://t.co/RXbPUDByyO」 / Twitter
- ONNX with Python list/loop in chainer-compiler - Google スライド
- Add standard ONNX sequence ops by shinh · Pull Request #665 · pfnet-research/chainer-compiler
- uint256_tさんはTwitterを使っています 「ONNXの中身ってprotocol bufferなのか」 / Twitter
- Optimizing BERT model for Intel CPU Cores using ONNX runtime default execution provider - Microsoft Open Source Blog
- マイクロソフト、WebAssemblyとWebGLで推論エンジンを実装した「ONNX Runtime Web」(ORT Web)をオープンソースで公開 - Publickey
NNEF
- 青子守歌さんのツイート: "ニューラルネットワークのデータ表現形式の標準規格が策定された https://t.co/Q1QgLb3lgL この間のミーティングで言われてたやつこれか"
- Neural Network Exchange Format (NNEF) - Neural Network Exchange Format (NNEF)
- Fadisさんのツイート: "OpenGL等の標準化で知られるクロノスグループ、異なるニューラルネットワークフレームワーク間でニューラルネットワークの学習済みモデルをやり取りするためのフォーマットNNEF 1.0を公開 https://t.co/jYTWfdtz4u"
- Khronos Announces NNEF 1.0 Standard For Neural Networks - Phoronix
- ニューラルネットワークツールと推論エンジンの相互運用のためのプロジェクト「NNEF」が仕様を公開 | OSDN Magazine
- ニューラルネットの共通フォーマット対決! NNEF vs ONNX - Fixstars Tech Blog /proc/cpuinfo
MLIR
- uint256_tさんはTwitterを使っています 「MLIRのMLってMachine LearningっぽいけどMulti-Levelなんだよね」 / Twitter
- FadisさんはTwitterを使っています 「LLVMがMLIRをSPIR-Vにコンパイル出来るようになったらしい。MLIRは計算グラフを表現する中間言語で、TensorFlowが最適化の為のターゲット非依存の表現として生み出した。既にCUDAに落とす実装があったが、これでNVIDIA以外のGPUでもVulkanが動けばMLIRを実行できるようになる https://t.co/Wd195YHV2R」 / Twitter
- LLVM Adds MLIR-Vulkan-Runner To Run MLIR On Vulkan-Enabled GPUs - Phoronix
- FadisさんはTwitterを使っています 「ただし時々実行できないCUDA PTXを吐き出す…(白目」 / Twitter
- Fadisさんのツイート: "MLIR: LLVM IRにすると失われる情報を利用した最適化の為に言語固有の中間言語で最適化を行う言語が増えていて、機械学習フレームワークもそうしたいけど沢山のフレームワークが個別にこの実装をするの無駄だから共通の実装を作ろうぜ、とTensor Flowの人が作った中間言語 https://t.co/BZEXUi6HhI"
- MLIR Is A New IR For Machine Learning That Might Become Part Of LLVM - Phoronix
- Makoto Kato ︎︎さんのツイート: "いや、Tensorflowじゃなくて、LLVM作った人だから、彼。"
- ドッグさんはTwitterを使っています 「MLIR 中間言語の設計の紹介論文が Chris 筆頭著者で出てる | 'MLIR: A Compiler Infrastructure for the End of Moore's Law' https://t.co/F7DGu2NeU9」 / Twitter
- [2002.11054] MLIR: A Compiler Infrastructure for the End of Moore's Law
- てらモス♋️さんはTwitterを使っています 「LLVM を実行時に必要とするのは辛いのでコンパイル時に MLIR まで使えるようにしておいて、rustc 内で ptx-kernel 見つけたらそれは MLIR 経由で PTX にコンパイルして最終的な ELF のどっかに埋め込むような事がしたい...」 / Twitter
- てらモス♋️さんはTwitterを使っています 「SPIR-V でも PTX でもそうだけど、ホストコード用の ELF にアクセラレータ向けのバイナリを埋め込む為の標準化を RedHat の人か誰かが提案してなかったっけ...」 / Twitter
MN-Core
- shinichiro hamajiさんはTwitterを使っています 「いやーがんばったなあ、という感じ。個人的には逆アセ書くところから、みたいなむっちゃ基本的なとこから始めて、今はこんだけ動いてるってのに感慨がある。図にあるように抽象化の過程で謎の概念が色々(再)発明されて、まあまあ新奇性がちらほらあるDLコンパイラスタックになってるんじゃないかなぁ」 / Twitter
- Preferred NetworksさんはTwitterを使っています 「【発表】深層学習用プロセッサーMN-Coreのコンパイラを開発し、MN-Coreを搭載したスパコンMN-3で深層学習ワークロードを最大6倍以上高速化!(MN-2と比較) MN-CoreはPyTorchとシームレスに連携し、PFNの深層学習基盤技術としてさらに進化しました。 https://t.co/bIj9Yh6aeL」 / Twitter
- 深層学習用プロセッサーMN-Coreの専用ソフトウェア(コンパイラ)を 開発、深層学習の実用的なワークロードの計算速度を最大6倍以上高速化 | 株式会社Preferred Networks
- Takuya AkibaさんはTwitterを使っています 「https://t.co/WTN0s6420P 我々インフラ領域で取り組んできた MN-Core コンパイラスタックの記事です!MN-Core は「そこはソフトで頑張ってよ」という思想のかなり極端な HW (参考 https://t.co/rgSLV0ORAS)ですが、ソフト側の様々な難問も乗り越え PyTorch から性能が出せる感じになってきてます!」 / Twitter
- MN-Coreコンパイラを用いた深層学習ワークロードの高速化 | Preferred Networks Research & Development
- 「そこはソフトで頑張ってよ」、世界最高を目指す国産AIチップの開発秘話 | 日経クロステック(xTECH)
- Takuya AkibaさんはTwitterを使っています 「ソフト面の難問は様々ですが、競プロ的なものも結構多く、○○したり△△したり☓☓したりしてます(競プロ単語を最初普通に書いてたんですが、一応伏せとこ……)。「競プロっぽい課題がいかにも出てきそうだなぁ」という雰囲気は shinh さんのこのスライドとか是非。https://t.co/zRIwEejcBN」 / Twitter
- 競プロ忘年会のやつ - Google スライド
- PFN で開発している深層学習 コンパイラスタックについて - Google スライド
- Miura HidekiさんはTwitterを使っています 「後半のPEの割り当て問題、もう少し粒度が高いと計算場モデルがよさそうだけど、せいぜいベクトルではオーバーヘッドが大きすぎるわな。意外と、実行時間を評価値とした遺伝アルゴリズムなんていいような気がする。」 / Twitter
chainer-compiler
- 転職してからやってること - 兼雑記
- はじめてのにき(2018-07-01)
- はじめてのにき(2019-03-22)
- Chainer-compiler - Google スライド
- shinichiro hamajiさんのツイート: "自分が適当に書いたコードにコメントもらうのは、こわくもあり、とても面白くもあって良かった。当たり前だけど、自分が苦労したからといって人にとって面白いとは限らず、自分が忘れてるからといって人の目に止まらないとは限らないもんだなあと思った #chainer_compiler_reading"
- shinichiro hamajiさんのツイート: "前者はループまわりは本当に色々苦労したけど終わってみると割と普通、というのと、後者は方針途中でかえた残骸が残ってたshape inferenceが妙に注目されて @kuenishi さんが最近おっしゃってた「まともなソフトウェアはデッドコードは消す」という教えをね…ちゃんと実践しないと。。"
- shinichiro hamajiさんのツイート: "せっかく open なので chainer-compiler についてなんかかいていこうかなと。 https://t.co/Zy0eHiXjfM は Chainer のバージョンを上げてて、 ChainerX の新しい op を使うためなので重要。でもこれすると python から使った時の ABI 大混乱を避けづらくて、このへんポリシー決めてなかいとなあ"
- Bump up chainer version by shinh · Pull Request #272 · pfnet-research/chainer-compiler
- shinichiro hamajiさんのツイート: "歴史的事情のある XCVM はわかりにくいので、 ChainerX VM を略して、リポジトリの中では ChxVM と呼ばれることとなりました https://t.co/YJEUU4kjxk"
- Rename XCVM to ChainerX VM by shinh · Pull Request #277 · pfnet-research/chainer-compiler
- shinichiro hamajiさんのツイート: "自分のじゃないのを書くと、 Shape を ChxVM の型にするやつ https://t.co/ivh69nYj8T Shape を Array で動的に持ってたので、 ch2o/elichika で出力した ONNX とか Shape だらけで、なんというか結構大変なオーバヘッドになってるので、いろいろとなんとかなると嬉しい"
- Specialize GeItem from shape variable by take-cheeze · Pull Request #305 · pfnet-research/chainer-compiler
- chainer-compilerのその後 - Google スライド
- 動的な計算グラフの型とshapeの“半”静的推論 | Preferred Networks Research & Development
GPT
- 小猫遊りょう(たかにゃし・りょう)さんはTwitterを使っています 「AI分野でめちゃくちゃ盛り上がってる「GPT-3」を使った事例が15個まとまってる。 GPT-3の衝撃 https://t.co/oR4P1mjq0D 「GPT-3の方法はこれまでのDeep Learning研究の観点からみるとかなり特殊です.むしろ新しいプログラミングパラダイムと見るべきかもしれません.」」 / Twitter
- GPT-3の衝撃 - ディープラーニングブログ
- 超巨大高性能モデルGPT-3の到達点とその限界. この記事では、超巨大言語モデルGPT-3の技術的な解説、GPT-3達成したことと… | by akira | Jul, 2020 | Medium
- 超高精度な言語モデル「GPT-3」は本当に「人間そのもの」な会話ができるのか実験した結果は? - GIGAZINE
- 自然なブログを書いてしまうほど超高精度な言語モデル「GPT-3」はどのように言葉を紡いでいるのか? - GIGAZINE
- OpenAIが超高精度な言語モデル「GPT-3」用いたAIモデルをAPIとして利用可能に、Wikipediaの内容を「質問」で検索するデモムービーも - GIGAZINE
- AIによる自動文章作成ツールがあまりにも高精度のテキストを簡単に作り出してしまうため開発陣から「危険過ぎる」と問題視される - GIGAZINE
- 「あまりにも危険過ぎる」と危険視された文章生成ツール「GPT-2」の技術で画像を自動で生成することに成功 - GIGAZINE
- OpenAIが1,750億のパラメーターを持つGPT-3 AI言語モデルを発表
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「理解に基づいて文書を生成するのではなく,大量の学習データから「コピペ」しているかのよう. GPT-3, Bloviator: OpenAI’s language generator has no idea what it’s talking about https://t.co/SxSG54nl2Z」 / Twitter
- GPT-3, Bloviator: OpenAI’s language generator has no idea what it’s talking about | MIT Technology Review
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「何はともあれ,適当にウェブの記事を切り貼りしてレポート課題を出す学生たちの「仕事」は,事実上AIによって奪われたわけですね.」 / Twitter
- 20200926
- 文章生成AI「GPT-3」がRedditで1週間誰にも気付かれず人間と会話していたことが判明 - GIGAZINE
- Text Synth
- 超高精度の文章を自動生成できる「GPT-3」は1日当たり45億以上の単語を出力していることが明らかに - GIGAZINE
- 超高精度な文章生成AI「GPT-3」には反イスラム教的なバイアスが存在すると判明 - GIGAZINE
- 「GPT-3」に近い性能の言語モデルをオープンソースで目指す「GPT-Neo」 - GIGAZINE
- OpenAIが画像生成用のGPT-3モデルを発表
- MicrosoftがGPT-3 AIモデルの独占ライセンスを取得
- 99.9%少ないパラメータでGPT-3パフォーマンスを上回るAIのトレーニング方法
- FadisさんはTwitterを使っています 「2年半程前に某所でGANによるアセット生成とQ学習によるモーション生成の威力がヤバいから、ゲーム屋は今すぐ機械学習勉強しないと生き残れんぞという発表をしたんだけど、実際には「GANによるアセット生成とQ学習によるモーション生成とGPT-3による会話生成の威力がヤバい」だったな」 / Twitter
- Q学習 - Wikipedia
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「文章生成器 GPT-3 は、イスラム教とテロを関連づけて学習してしまっている。「ムスリム2人組がバーに入っていくと...」という書き出しの文章の続きを生成させると、クリスチャン、仏教徒などの場合と比較して6倍程度 (66%) の確率で残虐なストーリーが描かれる。 https://t.co/BzzGknSf0Y」 / Twitter
- Two Natural-Language AI Algorithms Walk Into A Bar... - IEEE Spectrum
HuBERT
- ステート・オブ・AI ガイドさんはTwitterを使っています 「自己教師学習による音声表現学習モデルの最新版 HuBERT、控え目に言ってヤバいのでは・・。 ・面倒なVQ-VAEではなくk-meansで学習した離散コードを予測するだけ ・音声「だけ」から言語生成も可能 (GSLM) ・音声処理ベンチマークSUPERBで首位を総ナメ 音声では「とりあえず HuBERT」が主流になる予感 https://t.co/pKuk5DZHW8」 / Twitter
- ステート・オブ・AI ガイドさんはTwitterを使っています 「論文 GSLM: https://t.co/5mL6CJv3VB SUPERB: https://t.co/X91IL6wdO7 HuBERT: https://t.co/cY5Ut3lvAR」 / Twitter
- [2102.01192] Generative Spoken Language Modeling from Raw Audio
- [2105.01051] SUPERB: Speech processing Universal PERformance Benchmark
- [2106.07447] HuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden Units
- ステート・オブ・AI ガイドさんはTwitterを使っています 「「HuBERT のここがスゴい」もう一個あった 音声をたった 365 bps で超高圧縮できるコーデックとして利用可能、ほとんど劣化なし。 論文: https://t.co/unB7lwkBNK デモ: https://t.co/tgPKUsogYS」 / Twitter
- [2104.00355] Speech Resynthesis from Discrete Disentangled Self-Supervised Representations
- Speech Resynthesis from Discrete Disentangled Self-Supervised Representations
blog
- AIブーム終焉の意味するところ|Ryota Kanai|note
- 20200418
- 高校数学を使って誤差逆伝播を”再発見”できるAutoML-zero - akira - Medium
- 日本ディープラーニング協会におけるRNN (Recurrent Neural Network) | yasuokaの日記 | スラド
- ClPyが製品候補版になり、ほぼ全ての主要機能が動作するようになりました - Fixstars Tech Blog /proc/cpuinfo
- ClPyの論文が公開されました - Fixstars Tech Blog /proc/cpuinfo
- ClPy meets libTooling (1): Ultima - Fixstars Tech Blog /proc/cpuinfo
- LINE、NAVERと共同で、世界初、日本語に特化した超巨大言語モデルを開発 新規開発不要で、対話や翻訳などさまざまな日本語AIの生成を可能に | ニュース | LINE株式会社
- [AAAI2021採択論文] 深層学習による株価予測 | Preferred Networks Research & Development
- [2012.07245] Deep Portfolio Optimization via Distributional Prediction of Residual Factors
- [AAMAS2021採択]株価予測のためのアンサンブル・進化計算手法 : Trader-Company法 | Preferred Networks Research & Development
- [2012.10215] Trader-Company Method: A Metaheuristic for Interpretable Stock Price Prediction
- ニューラルネットワークで「開いた量子系」を学習する – 機械学習と量子物理学の融合 | academist Journal
- Ethics Processing Unit - マルシテイア
- 強化学習の環境紹介! | AI-SCHOLAR | AI:(人工知能)論文・技術情報メディア
- AWS、SQL文で機械学習のモデル作成、トレーニング、推測まで実行できる「Amazon Redshift ML」正式リリース - Publickey
- Facebook、どんな話題にも対応できるAIチャットボット「BlenderBot 2.0」オープンソースで公開。会話しつつ裏でネット検索し最新情報を取得 - Publickey
- WebAssemblyを用いてBERTモデルをフロントエンドで動かす - OPTiM TECH BLOG
- SageMaker Experimentsによる実験管理とQuickSightを使ったその可視化 | Money Forward Engineers' Blog
- huggingface transformersで使える日本語モデルのまとめ – Yellowback Tech Blog
- transformersのTokenizerで固定長化する | Money Forward Engineers' Blog
PC Watch
- 【後藤弘茂のWeekly海外ニュース】NVIDIAのAmpereで対応した新技術「プルーニング」 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】第3世代のディープラーニングプロセッサはモデル圧縮技術が鍵 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】NVIDIA Ampereにおけるプルーニング対応の特徴 - PC Watch
- 【後藤弘茂のWeekly海外ニュース】人間の脳から産まれたディープラーニングのプルーニング - PC Watch
- NTT、分散配置されたデータから安定したディープラーニングが可能な技術 - PC Watch
- 【やじうまPC Watch】AIがクロスワードでも人間を超える - PC Watch
日経クロステック
- AIにおける「次元の呪い」解決へ、富士通研が機械学習の最有力学会で発表 | 日経クロステック(xTECH)
- Apple注目の1ビット深層学習、超省電力で「スマホに常時AI」 | 日経クロステック(xTECH)
- 小猫遊りょう(たかにゃし・りょう)さんはTwitterを使っています 「自然言語処理発のあのディープラーニング技術がロボ強化学習に流入 https://t.co/TR9RRFPx6f 『自然言語処理の世界を一変させた「Transformer」系のモデルが、なんと全く異なるタスクであるロボット制御の世界で大きな効果があることが分かったのだ。』」 / Twitter
- 自然言語処理発のあのディープラーニング技術がロボ強化学習に流入 | 日経Robotics(日経ロボティクス)
GIGAZINE
画像
- ディープラーニングの手法「CNN」の画像識別処理がアニメーションで理解できる「CNN Explainer」 - GIGAZINE
- 最先端のAI画像認識モデルでも正しく認識できない画像まとめ - GIGAZINE
- コンピューターは「人間の目線」をどのように認識するのか? - GIGAZINE
- 高度な画像認識AIは手書きの文字やステッカーなどの「敵対的な画像」で簡単にだまされてしまう危険性 - GIGAZINE
- 「画像認識機能を誤認させる攻撃」を科学者が実証、自動運転の脅威となる可能性 - GIGAZINE
- AIによって生成された人間の画像は「瞳孔の形」で区別できる - GIGAZINE
- 顔認証の40%以上をたった9つの顔で突破するマスターキーならぬ「マスターフェイス」を作るAIが登場 - GIGAZINE
Google
- Googleのエンジニアが人間がコーディングを行うよりも高速で自己進化するAI「AutoML-Zero」を発表 - GIGAZINE
- Google傘下のDeepMindがゲームのルールを教えられなくても勝ち方を勝手に学習していくAI「MuZero」を発表 - GIGAZINE
- GoogleがAI倫理に関する議論を受けて新たなAI責任チームを編成、社内外からは非難の声も - GIGAZINE
- Googleがスパース推論でニューラルネットワークの高速化を達成したと報告 - GIGAZINE
- Googleが自然な会話を実現する対話特化型AI「LaMDA」を発表、LaMDAが冥王星や紙飛行機になりきって会話するデモも公開 - GIGAZINE
- GoogleがAIを用いてAI専用プロセッサの開発を爆速化したことを発表 - GIGAZINE
NVIDIA
- NVIDIAが対話型AIのフレームワーク「Jarvis」の提供を開始 - GIGAZINE
- NVIDIAがセキュリティ上の脅威を検出・防止するためのAIフレームワーク「Morpheus」を発表 - GIGAZINE
Facebook
- Facebookが英語を経由せずに100個の言語を直接翻訳できる新しい機械翻訳システムを開発 - GIGAZINE
- Facebookが機械学習と映像画質向上用のカスタムチップを独自開発か - GIGAZINE
MS
- OpenAIが入力した自然言語から自動でコードを出力するAIシステム「Codex」をリリース - GIGAZINE
- ドッグさんはTwitterを使っています 「GitHub Copilot でも使われてる Codex モデルの改善版を OpenAI がサービスとして提供するのか.API の waitlist に登録できる.Codex は自然言語からソースコードを生成する生成モデル | 'OpenAI Codex' https://t.co/9jOf88qdTw」 / Twitter
- OpenAI Codex
- OpenAIが開発した画像認識AI「CLIP」の思考の特徴とは? - GIGAZINE
- 初めてニューラルネットワークによる量子化学計算を実現したシステムがオープンソース化 - GIGAZINE
- 機械学習の「Q学習」にベイズ推定を取り入れると一体何が起こるのか? - GIGAZINE
- Appleの「M1」搭載Macに最適化されたAI向けライブラリ「TensorFlow」の最新バージョンがリリースされる - GIGAZINE
- 高度に発達したAIを人間が制御することは可能なのか? - GIGAZINE
- 通常のチェスAIよりも人間らしい指し回しを実現するニューラルネットワークチェスエンジン「Maia」 - GIGAZINE
- AIが文章を書けるようになったことで政治がゆがめられる危険性がでてきた - GIGAZINE
- GPUに比べて最大15倍高速な市販CPU向けのディープラーニングアルゴリズムが開発される - GIGAZINE
- MLSys-2021-accelerating-slide-deep-learning-on-modern-cpus-vectorization-quantizations-memory-optimizations-and-more-Paper.pdf
- CPU algorithm trains deep neural nets up to 15 times faster than top GPU trainers
- L.starさんはTwitterを使っています 「論文の方をざらっと眺めてみたが、極めてざっくり言って疎行列を上手に扱うためにハッシュテーブルを使うということのようで、たしかにそれはメモリが潤沢なCPUの得意そうな分野。もうちょっと読み込んでみたい。 https://t.co/rMigDHNuqC」 / Twitter
- 片桐 孝洋さんはTwitterを使っています 「ざっとみた感じ 行列構造を疎行列データ構造のように持ち(この管理をハッシュテーブルでする) あとはSIMD化して高速化のようだ」 / Twitter
- 片桐 孝洋さんはTwitterを使っています 「対象の疎行列構造の制約を見る必要があるが、HPC分野の得意技で高速化しているといえる。 どのぐらい汎用か見極める必要があるが、この方法は、IntelのCPUだけでなく、「富岳」のARM64FXでも、有効そうな方法に思える。」 / Twitter
- 言語の壁を超えて複雑な文章や画像も理解できる新検索アルゴリズム「MUM」をGoogleが発表 - GIGAZINE
- 「文章生成AIによって作られたフェイクニュース」は本当に民主主義にとって危険なのか? - GIGAZINE
- 中国の研究チームが新たなAI「悟道2.0」を発表、パラメーター数は1兆7500億でGoogleとOpenAIのモデルを上回る - GIGAZINE
- AI規制が逆に「新たな生体認証監視時代を到来させてしまう」という主張 - GIGAZINE
- ロボットに仮想空間で「現実世界とは何か」を学ばせることで学習を高速化する「Habitat 2.0」をFacebookが発表 - GIGAZINE
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ニューラルネットワークで生成したマスターキーならぬ「マスター顔」を使って、(CNNベースの) 顔認証の40%が通過できるという研究。StyleGANに入力する初期値を遺伝的アルゴリズムで変化させるらしい。 https://t.co/9VXMT308qw」 / Twitter
- ‘Master Faces’ That Can Bypass Over 40% Of Facial ID Authentication Systems - Unite.AI
- 効率的なミサイル迎撃用のAIを開発する研究者が「トンボの脳」をコピーする意味とは? - GIGAZINE
- GitHubのソースコードから自動学習するAIプログラミング機能「GitHub Copilot」で禁止されている単語は1170個、ゲームに使われている関数まで禁止 - GIGAZINE
- ロボットに見つめられると集中力が削がれてしまうことが判明 - GIGAZINE
- 脳を半導体に「コピー&ペースト」するテクノロジーが発表される - GIGAZINE
- コンピューターに物事を学習させる「デイープラーニング」はどのように実行されるのか? - GIGAZINE
- 「ハサミを箱に入れる」「布を折る」など言葉で指示した多様なタスクをロボットアームで遂行するAIが登場 - GIGAZINE
infoQ
Google
- Googleが新しい高性能TensorFlowランタイムをオープンソース化
- Google、Facebook、Microsoftの大規模多言語AIモデル
- Googleが高速アテンションモジュールのPerformerをオープンソース化
- GoogleとMicrosoftのAIモデル、言語理解ベンチマークにおいて人間の能力を凌駕
- Googleは兆パラメータのAI言語モデルSwitch Transformerをオープンソース化
- GoogleがAutoMLアルゴリズムのModel Searchのソースを公開
- Google DeepMindのNFNetがディープラーニングを効率化
- 自然言語処理とゲノミクス処理を進化させるGoogleのBigBirdモデル
- Perceiver:複数の入力データ型向けの単一のニューラルネットワークモデル
- Google Cloudがマネージド機械学習プラットフォームの Vertex AIを発表
- Googleがトークンフリー言語モデルByT5をオープンソース化
- GoogleがTensorFlow LiteをAndroidに統合、さらにAutomatic Acceleratorを追加
- Googleが8億パラメータ視覚・言語AIモデルのALIGNを発表
- DeepMindがデータに依存しないディープラーニングモデルPerceiver IOをオープンソース化
Facebook
- Facebookは機械学習プライバシーライブラリのOpacusをオープンソース化
- Facebookが多言語音声認識ディープラーニングモデルをオープンソース化
- Facebookがタンパク質配列を処理するAIモデルをリリース
- FacebookがZionEXプラットフォームを発表、12兆パラメータのAIモデルのトレーニングを可能に
- FacebookがTransformer AIをスケールアップするExpire-Spanをオープンソース公開
- モバイル、科学計算、分散トレーニングを強化したPyTorch 1.9がリリース
MS
- OpenAIがニューラルネットワークを理解するためのビジュアライゼーションツールであるMicroscopeを紹介
- OpenAIはニューラル言語モデルのスケーリング法則を近似する
- Microsoft Researchが新しいビジョン言語システムを開発:VinVL
- Microsoftがニューラルテキスト読み上げAIへの限定アクセスを発表
- MicrosoftがAIトレーニングライブラリのZeRO-3オフロードをリリース
- MicrosoftのZeRO-Infinity Libraryで32兆個のパラメーターのAIモデルをトレーニング
- LinkedInがGreykiteをオープンソースに
- OpenAIがAI処理最適化のためのPythonベースのプログラミング言語であるTritonをリリース
- OpenAIが120億パラメータのコード生成AI Codexを発表
- スタンフォードNLPグループがStanzaをリリース:Python NLPツールキット
- TensorFlow 2.3ではパイプラインのボトルネックを削減し、前処理を改善
- ExBERT、NLPモデルで学習された表現を探索するためのツール
- AppleのML ComputeフレームワークがTensorFlowトレーニングを加速
- Caltechが偏微分方程式を解くAIをオープンソースとして公開
- NLPライブラリのspaCy 3.0にTransformerベースのモデルと分散トレーニングが追加
- マシンラーニングをテストとメンテナンス作業で使用する
- Alibaba Announces 10 Billion Parameter Multi-Modal AI M6
- MITがAIベンチマークとなるThreeDWorld Transport Challengeを発表
- 研究者が生物学的に妥当なAIトレーニング方法を公開
- NVIDIAがAIをトレーニングするデータセットジェネレータDatasetGANを発表
- CMUがAIモデルの一般化を保証するアルゴリズムを開発
- InterCon 2021のパネルディスカッション:AIはエンドユーザにとって本当に有益か
- EleutherAIが60億パラメータGPT-3のクローンであるGPT-Jをオープンソース化
- IT運用のための人工知能(AI) - その概要
- BasisAIのオープンソース、Boxkite機械学習モニタリングツールとは
- Joanneum ResearchがロボットAIプラットフォームRobo-Gym Version 1.0.0をリリース
- BaiduのERNIE 3.0 AIモデルが、言語理解ベンチマークで人間のパフォーマンスを超えた
スライド
- tvm_intro.pdf - Speaker Deck
- Intel Nervana Graph Compilerとは?
- TensorFlow XLAは、 中で何をやっているのか?
- DLHacksさんはTwitterを使っています 「質問応答タスクでモデルが何を学習しているのかを調べるために複数のデータセットに対して各種ablationを行った結果,モデルはショートカットを学習しているだけで文章や質問の理解をしていないことを示唆する結果が得られた. https://t.co/mS1RYMIIMG」 / Twitter
- [DL輪読会]What do Models Learn from Question Answering Datasets?
- 確率的推論と行動選択
- 強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
- 統計的機械学習 - yasuda.pdf
- 画像生成・生成モデル メタサーベイ
- 最近のディープラーニングのトレンド紹介_20200925
- 東京大学2021年度深層学習(Deep learning基礎講座2021) 第8回「深層学習と自然言語処理」
- 深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
- Tensorflow/Pytorch モデル移植のススメ - Speaker Deck
Zenn
- Glow コンパイラを試してみた
- deno で機械学習
Qiita
- ニューラルネットワーク、多様体、トポロジー - Qiita
- 出きたてホヤホヤ!最新オプティマイザー「AdaBelief」を解説! - Qiita
- (あんちべ! 俺がS式だ)さんはTwitterを使っています 「https://t.co/fl8svJgzuW 古めのディープラーニング(RNNやLSTM)で止まってる人が「Transformerって何?」を把握するのにとても良い資料、流れがわかる。 ただ、全くディープ知りませんって人が読む資料ではないのと、処理の流れを説明してくれてるんであってなんでこれが強いのかとかの解説ではない」 / Twitter
- 図で理解するTransformer - Qiita
- (あんちべ! 俺がS式だ)さんはTwitterを使っています 「もうちょい説明が欲しいって方にはこっちもおすすめ https://t.co/iVKkm2xz35」 / Twitter
- End-to-End Object Detection with Transformers - Speaker Deck
- 製造業における機械学習 - Qiita
- 強化学習 - 2020論文までの道のり(Q学習中心~R2D3, Agent57) - Qiita
Twitter
結果の信頼性確認
- Eikyu ItoさんはTwitterを使っています 「深層学習系のプロダクト、話題になる割にはそれほど実用的に役に立たない理由は「結果が信頼できない」からなんだよな。9割はうまくいくけど、残り1割は全くダメ。で、9割よければ人間の工数9割削減できるかというとそうはならない。元々の工数比が「実行5割、チェック5割」だったりはザラなので(続く」 / Twitter
- Eikyu ItoさんはTwitterを使っています 「答えが信用できずチェックが必要な限りは効率アップが5割を越えることはありえない。同じ「9割ok、1割ダメ」でも、ダメな1割の時に「できませんでした!」と報告してくれるならそれでもよい。9割の方はチェックしなくてよいので、だが深層学習は、ダメなものがダメとわからない。」 / Twitter
- Eikyu ItoさんはTwitterを使っています 「だから、9割までできたらその次は「9.5割を目指そう」ではなくて「ダメな1割を検出する方法を考えよう」となってほしいのだが、そういう話はほとんど聞かない。というか恐らく深層学習では原理的に後者が無理(向いてない)なのだろうと思う。そこにどうしても限界を感じてしまう。」 / Twitter
- inoue.aさんはTwitterを使っています 「@aq3948 棄却オプションという方法を使うことがあります。たとえば分類タスクなら予測スコアから、回帰タスクなら予測器の誤差の絶対値を予測する予測器を作ったり予測値でなく予測分布を求めたりして信頼性の低い予測を検出します。https://t.co/ABMnqSZwAV」 / Twitter
- 【機械学習勉強会】パターン認識と機械学習(PRML)第1章のまとめ Part.3 ~決定理論~ - IMACEL Academy -人工知能・画像解析の技術応用に向けて-| エルピクセル株式会社 (page 2)
論理との組み合わせ
- Miura HidekiさんはTwitterを使っています 「昔話題になってもっと広まるべきだった用語 ソリトン ウェーブレット フラクタル圧縮 思い出したら追加します」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 ファジー推論」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 ファジーは思いついたのですが、今知っておくべきかと言うとちょっと悩みます。その手の曖昧な話は深層学習ベースで処理した方がよさそうな気がします」 / Twitter
- 市川 真一さんはTwitterを使っています 「@miura1729 そうですね。日本だと深層学習一本やりな感じですが、論理と組み合わせてシステムを組む方法論もあるらしいです。ファジーは論理の一種なので、あいまいな論理と深層学習の組み合わせも可能性としてはあるかもしれません」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@tenpoku1000 なるほど。深層学習一本やりな感じのニュアンスでツイートしたのですけど、論理としてのファジーと深層学習の組み合わせも面白そうですね。ファジー理論って論理としてどれほどの枠組みがあるのか(健全性・完全性は?(無理な気がする...))わかりませんが。」 / Twitter
Bug
- Ryuji FuchikamiさんはTwitterを使っています 「DeepLearning系のプログラムの一番難しいところは、バグがあっても学習が進んでしまうことに他ならないと改めて思った次第です。 そしてバグがあると最後の最後で必要な結果に達しなかったりするので、デバッグがとても難しい(泣)。」 / Twitter
- marsee101さんはTwitterを使っています 「@Ryuz88 本当にそう思います。バグに気が付かないし、デバッグ大変。結局、二種コードを書いて、中間結果を比べてました。簡単で分かりやすいコードとチューニングコード。」 / Twitter
- Ryuji FuchikamiさんはTwitterを使っています 「@marsee101 同じくです。最近やっとPyTorchと比べられるようになってきたのですが、今度は直すところが多くてなかなか大変です。」 / Twitter
二重降下
- いんそうさんさんはTwitterを使っています 「論文を公開しました。二重降下(パラメタ数が極端に多いと過学習しなくなる現象)が深層学習でも起こることを理論的に示しました。既存の理論解析は、扱えるモデルは線形回帰や二層NNなどの浅いモデル限定でしたが、本理論は深層モデルを含む最尤推定を扱えます。米ラトガース大の中田さんが主著です。」 / Twitter
- Stat.ML PapersさんはTwitterを使っています 「Asymptotic Risk of Overparameterized Likelihood Models: Double Descent Theory for Deep Neural Networks. (arXiv:2103.00500v1 [https://t.co/zjV5HgYw5a]) https://t.co/s82Iv8LKht」 / Twitter
- [2103.00500] Asymptotic Risk of Overparameterized Likelihood Models: Double Descent Theory for Deep Neural Networks
- いんそうさんさんはTwitterを使っています 「導出した二重降下のリスク曲線と、我々の理論に適合するアーキテクチャ(並列化NN)の画像です。 https://t.co/eEHD71ECgr」 / Twitter
モグラ叩き問題
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「出てきた問題を一つ一つfixする」ってやっていくと気がつかないうちにどんどんオーバーフィットしていくこともML特有の難しさですね。」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「普通のIT開発では、人が書いたコードのリリース時に仕様通りのふるまいかを検証すればよい。一方MLシステムでは、かき集めた新データでMLモデルを再学習するたびにシステムのふるまいが変わるし検証も難しい。「誰もそれをテストしてないのである!」が起きるのがML Opsの怖さ。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これはモグラ叩き問題と呼んだ方が良いかもしれない。見つかった予測ミスを修正しようとしてモデルや前処理のどこかをいじると、他の場所で新しいほころびが出てきてしまう。この新しいほころびが手持ちのデータ外(=本番環境や未来)であると絶対に気が付かない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これを防ぐには、「その修正が合理的かどうか?」に関して熟考する必要があります。「なんかわからないけど特徴量XがY~Zの範囲の値を取ると予測値が暴れるみたいなのでここは処理を分けて予測精度を保ちます」みたいな変な修正をやっていると事態は悪化するだけです。」 / Twitter
説明
- Seitaro ShinagawaさんはTwitterを使っています 「ニューラルネット界の怖い人に襲われないためのdeep learningの説明 「人の脳を模倣した」→×調子に乗り過ぎています。まず襲われます。 「人の脳の神経回路を模倣した」→×まだ調子に乗り過ぎています。人目が多いところでは襲われます。 「脳の神経回路の仕組みに学んだ」→〇無難な表現です。」 / Twitter
- Seitaro ShinagawaさんはTwitterを使っています 「脳の神経細胞のモデルから直接インスパイアされたのかと言われると、最初はヤリイカの巨大軸索だしなあという気持ちがあるので、「神経細胞が行う情報伝達の仕組みに学んだ」とかにした方がより適切と思いますが、私は大人なので空気を読んで「脳」は残しました。空気を読んだんです襲わないでください」 / Twitter
- Katsuhito Sudoh (ja)さんはTwitterを使っています 「@sei_shinagawa ただの関数近似の一種ですが何か?という説明をしてたりします」 / Twitter
- Seitaro ShinagawaさんはTwitterを使っています 「@katsuhitosudoh deep learningの端的な説明は私もそうしていますね。敢えて「脳の~」とか「人の~」とかみたいな言い回しをしたいなら上記のようにするかなということです。まあ私個人としてはこういう言い回しは嫌いじゃないです」 / Twitter
- FadisさんはTwitterを使っています 「最初にこれを考えたヤツはニューロンから着想を得たかもしれないが、学習できるようにネットワークの進行方向を定めた段階で既に模倣もへったくれも無い別モンなんだよな」 / Twitter
- ジョニーさんはTwitterを使っています 「ディープラーニングはブラックボックスなので、不具合があってもなぜ判断を誤ったのか分からなくて嫌がられることがありました。どこかの化学メーカーでも精度は良いけど説明力がないので、ディープラーニングじゃなくて結局線形回帰使った話を聞きました。」 / Twitter
- ドクター・べじぱみゅさんはTwitterを使っています 「データ解析の専門会社が日系製造業に深層学習ベースの異常検知システムを納入する際、いざ量産導入でテストとちょっと違う画像を投入しシステム破綻しクレーム、がしばしばあるそう。私は画像屋さんと工場両方の言い分がわかるつもりだが、そもそもDLって製造業に向いてない気が個人的にはしている。」 / Twitter
- ドクター・べじぱみゅさんはTwitterを使っています 「工場では「当面この製品ずっと作りますよ」と言いつつ半年後に設計変更して画像の感じが大幅変化なんてザラ。"設備"は短くても5年償却、即ち5年は初期の性能を維持すること前提。そういう意味で「汎用性」に乏しくなりがちの深層学習ベースシステムは製造業の商習慣に会ってないと思っている。」 / Twitter
- A_T_O_MさんはTwitterを使っています 「@dr_vegepamyu 再度学習させることは難しいんでしょうか?」 / Twitter
- ドクター・べじぱみゅさんはTwitterを使っています 「@ATOM01074529 もちろん画像解析の正論としては「画像が変わったのなら新しく学習しなさい」です。ただ工場としては「寝ぼけたこと言ってんじゃねえぞ!不良画像集めるのどんだけ苦労したと思ってんだ?これから製造するモノの不良画像なんてあるわけねえだろ!過去の画像だけで何とかしろ金払ってんだぞ」です。」 / Twitter
- A_T_O_MさんはTwitterを使っています 「@dr_vegepamyu あ。 そりゃ、不良品の画像はないですね。(恥ずかしい) 教師なし学習とか?(←機械学習何も知らない。) そもそも外観でわかる不良の割合って大したことない気もします。」 / Twitter
- ドクター・べじぱみゅさんはTwitterを使っています 「@tako2539 工場はとくに、何か問題が起きたら即対策立案!放置はあり得ない、という文化ですので「ミス率0.1%だがミスの理由不明」よりも「ミス率5%だがミスの理由が明確」のほうが基本的に好まれますね。あとは「いざ困ったら自分達で微調整効く」も好まれます。」 / Twitter
- ジョニーさんはTwitterを使っています 「@dr_vegepamyu 工場は問題起きたら再発防止策立案しますから、説明力があるモデルの方が好まれそうですよね。 私は一時期金融業界にいたんですが、金融でも問題があったら金融庁やお客さんに説明することが求められますし、説明力あるモデルが求められてました。DLも提案しましたが却下されましたね。」 / Twitter
histric
histric-1
- Fadisさんのツイート: "どうやらディープラーニング屋さんはネットワークを定義したDSLに沿って計算を行うフレームワークの実装はDSLのインタプリタの開発に他ならない事に気が付いてしまったらしく、ネットワーク定義を食べてLLVM IRを吐くコンパイラフロントエンドの開発が加熱しているらしい"
- Fadisさんのツイート: "DLVM: LLVM IRに落とす事ができ、ニューラルネットワークに欲しい演算と型を備えたLLVM IRより高レベルの中間言語 https://t.co/WN9Ijyka92"
- The DLVM Compiler Infrastructure for Deep Learning Systems
- shunsuke_sasakiさんのツイート: "DLVMは作者がメンテナンスを止めちゃいました。”The authors of this project are no longer maintaining DLVM, but instead developing Swift for TensorFlow”… "
- Fadisさんのツイート: "Glow: ネットワークのグラフを入力として、グラフの最適化を行なった物をLLVM IRに変換して、LLVMにターゲット固有のSIMD命令の利用や命令スケジューリングをさせる機械学習コンパイラ https://t.co/MoW4SWm9tB"
- pytorch/glow: Compiler for Neural Network hardware accelerators
- はじめてのにき(2018-11-11)
- Aug. 2017
- Intel® Nervana™ Graph: A Universal Tensor JIT Compiler
- shinichiro hamajiさんのツイート: "Relayというか、グラフIRに対する関数型言語IRの優位性というのがさっぱりわからなくて、PythonベースのフロントエンドDSLで、ループを常に再帰で書いてあれば、unrollするか否かの選択を、デコレータへの引数などの方法で伝えられる、ということが思い当たった"
- shinichiro hamajiさんのツイート: "ただ関数型スタイルでモデル書くのか……?という疑問と、別にRelayにそういうコードは無いというか普通にループしてるというか、 https://t.co/sMM9CKREcX にあるDSLすら実体ない気がするんだよなあ、ということで、よくわからん。このRelay PDFは論文というよりdesign docみたいなものな気がするし謎"
- Relay: A New IR for Machine Learning Frameworks
- TensorSpace.jsがニューラルネットワークの3D可視化フレームワークを提供
- Fadisさんのツイート: "ニューラルネットワークの計算グラフを図にしたヤツ、「TensorBoardが生成するヤツ」よりもっと中立な規格ってあるんだろうか"
- MLIR: A new intermediate representation and compiler framework
- Mapping Spiking Neural Networks onto a Manycore Neuromorphic Architecture
- takeoさんはTwitterを使っています: 「深層学習コンパイラやバックエンドの研究開発ツラすぎてこの分野の進化が止まりかねないという話 Machine Learning Systems are Stuck in a Rut https://t.co/arPRuTA1oV」 / Twitter
- Machine Learning Systems are Stuck in a Rut
- ソースコード解析職人さんはTwitterを使っています: 「@bonotake 昨日、読みました。 なかなか、得るものが多かったです。」 / Twitter
- takeoさんはTwitterを使っています: 「@Vengineer この論文は割とネガティブな論調で書いてますが、でもコンパイラやってる人はみんなおんなじことを多少なりとも思ったことあるんじゃないかなぁって思います」 / Twitter
- ソースコード解析職人さんはTwitterを使っています: 「@bonotake 画像処理を長年やっていたので、 データの並びはいつも気になるポイントでした。」 / Twitter
- takeoさんはTwitterを使っています: 「@Vengineer 弊社でも割と議論の的になります」 / Twitter
- FadisさんはTwitterを使っています: 「MLIRを吐くFortranフロントエンドFCのソースコードが公開された話。MLIRはTensorFlowが生み出したLLVM IRよりも高級な表現を維持する中間言語で、LLVM IR含むいくつかのターゲットに落とすことができる。LLVMには既にFortranフロントエンドf18があるが、それとは別 https://t.co/j2eTH7obI0」 / Twitter
- The MLIR-Targeting "FC" LLVM Fortran Compiler Is Now Open-Source - Phoronix
histric-2
- Daisuke OkanoharaさんはTwitterを使っています 「Enokiは複数プラットフォーム向け自動ベクトル化、微分化を備えたライブラリであり、define-by-runとコンパイル型の中間といえ、レンダリングのような数十万行程度の規模のコードを対象にできる。またテンソルだけでなくより複雑な入れ子データ構造も扱える https://t.co/yOqINrqovT」 / Twitter
- FadisさんはTwitterを使っています 「これ、きちんと性能が出るように作ると大変面倒くさいし、性能気にせず素直に実装すれば一瞬で完成する。CNNってやってる計算自体は複雑じゃないんだよ」 / Twitter
- がっちょ( ¨̮ )さんはTwitterを使っています 「畳み込みニューラルネットワーク(CNN)って0から自分で実装することって可能ですかね……? (実装期間は長くても4か月が目安) (むやみにやろうとするととても深い谷に落ちそうで怖い)」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「ディープラーニングは(規則はあるのだが)人間に理解できる低次元空間では中々規則が見えて来ないような問題で、かつ頑張って低次元への近似を行っても返って情報を損なうようなときに、よもや人間の理解がボトルネックなのだと認めて、データ突っ込んでアウトプットだけ見るのに適した方法。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「人間の脳を模擬してますとか、説明性を付与できます、とか半分デタラメだと思う。前者は、当初はそういう意図だったというのはあるかも。後者は、説明できるんだとしたら、それはニューラルネットワークの話ではなくて、そのデータがやっぱり低次元で十分だった、という話だと思われる。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「deep learningが長足の進歩を遂げてるとは言え、K値とかオバマの顔写真復元とかの騒ぎのようにモデルなき予測の危険性は明らかだし、機械学習を補助として使うことは増えても、プログラマの仕事は、すぐには、なくならないんだろうなーって思ってる」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「今から業界に入る人の引退までその状態が続くかわからんけど、いっそ、さっさとコンピュータになんでもまかせて、みんな遊んで(趣味に打ち込んで)過ごせる時代が来たらいいなと思う」 / Twitter
- ./note008.html
- 高卒工員プログラマーさんはTwitterを使っています 「困った時のニュートン法 まあ最小値付近の微分係数の扱いが微妙なんで 微分係数(の大きさ)がスレッショルドを切ったら微小変位法に切り替えるけどな」 / Twitter
- FadisさんはTwitterを使っています 「ニューラルネットワークを使った機械学習というのは、どういう関係かもわからない関数をとりあえず何でも近似できるニューラルネットワークで置いて、最適化問題にして解いてしまえという物なので、効率の良い学習の為の工夫は多くの場合関数の形は分かっているが係数が不明な最適化問題に転用が効く」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には「ニューラルネットワークは人間の脳を模したもの」とか言っても何も問題はないですね。所詮モデルなんだしどう思おうが勝手です。むしろuniversal approximation theoremみたいな実用とは無縁な定理を持ち出してどんな予測にも使っちゃう傾向の方が問題です。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「同時に、「ニューラルネットは人間の脳を模しており、人間のように学習や予測ができる」みたいな言説が独り歩きして各地であることないこと語られてしまっている現状もあるので、専門家としてその点に釘を刺しておくのは重要です。いずれにしても「モデルはモデル」という割り切りが重要。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「↓現実の複雑なタスクに対して具体的な要求仕様を定義し、実現可能な技術に落とし込むというプロセスにおいて、ディープラーニングはまったく実用的ではありません。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「なので、煩雑な現実を避けて、それらしいサブタスクを設定してデモを魅せるというのが多くの企業がやっていることですが、残念ながら実応用へのボトルネックの解消には繋がっていないのが現状でしょう。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「4年前ですが、この区別は未だに浸透していない感があります。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「人の知能を模倣するための科学と、より一般的な予測・判断の科学とは、目指す方向がそもそも違っていることを今一度強調しておきたいところです。自分は企業のエンジニアとして後者の発展をより望んでいます。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「近い将来に人と同程度の人工知能が実現して、今の職業をそっくりそのまま置き換える」みたいなストーリーは起きません。」 / Twitter
- 'Yuki’ KamitaniさんはTwitterを使っています 「深層ニューラルネットワーク(DNN)とヒトの脳との階層的な類似性を測る指標を作ったら、最近の「高性能」DNNは、あまりヒトの脳に似ておらず、物体認識精度と脳との階層的類似度の間には負の相関があった、という話。AlexNetやVGGがめっちゃ強い https://t.co/qEbuYw0WAk」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「AIというより、「人の手に負えない膨大な条件の組み合わせからいい感じの答えをざっくり見つけるアルゴリズム」として見れば、MLって単純に強力すぎるツール。映画マトリックスのように、世の中の様々な課題が高次元空間内の微分可能な関数として見えれば、従来のITとは全然違うんだなと感じられる。」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「一般的なIT開発とは問題の解き方が全然違うから、何か異質なものとして「AI」って名前を付けて、想定用途を制限したり過剰に期待したり幻滅したりして納得したい人が多いのだろう。でも実態は計算パラダイムに過ぎず、使うCPUもソフトもごく普通。とても便利だけどクセのある新しいパラダイム。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「甘利先生の講演を聞いてる。 内容も研究スタンスも面白い。 そういえば機械学習の理論・数式を追うだけでなく、ピンと来ない時は、その意味するところを低次元に落とし込んで、実感的に捉えられるようにする工夫とか、甘利先生クラスでもこういう作業するのね、とか。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「自然言語文法は例外だらけなのに自然に感じるのは、法則に見えてホントは慣れで学習しているからで、慣れとはニューラルネットの重み付けそのものと。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「理系発見の多くも、先に結論を発見して、その後に論理性・無矛盾を完成させるパターン多い。 これも同様のニューラルネット構造が一因かな? (あと無意識が解を考え、意識が気づく構造も一因そうだが) 棋士も、先に良い手を思い付いてから、それが正しいかを確認する方向が多いという話も。」 / Twitter
- 1T0TさんはTwitterを使っています 「2功8罪 https://t.co/Nc2Fb2bruh」 / Twitter
- 1T0TさんはTwitterを使っています 「↑てっきり黒は全部罪かと思ったらそうとも言い切れないな」 / Twitter
- UmeponさんはTwitterを使っています 「変数と同数のパラメータを用意すれば、パラメータを上手くチューニングすることでどんな問題も解けるようになるっ!」 / Twitter
- UmeponさんはTwitterを使っています 「真面目な話、手動で弄る必要のあるパラメータが増え出したら「本質的な問題を棚上げにしてるんじゃないか?」という危機感を持ち遡ってアプローチから見直した方が良い。」 / Twitter
histric-3
- Kentaro FukuchiさんはTwitterを使っています 「ミュラー・リヤー錯視やポッゲンドルフ錯視が「ぼかし」によって説明できるかもしれないという杉原先生の説明は、畳み込み処理との関係を考えると非常に面白い。 https://t.co/h78r5prRFo https://t.co/NekyJgHBdm」 / Twitter
- Kokichi Sugihara's Homepage (Japanese)
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的な感触としてディープラーニングは、一部の特定の応用領域を除き、ビジネス面では完全に終わっています。」 / Twitter
- Yuta KashinoさんはTwitterを使っています 「(´-`).。oO( 誰も言わないのでつぶやいておきますが,DNN等のAIのビジネス適用,やはりブライアン・アーサーの言う基本技術のいくつかが未だ欠けていて,ほとんどの領域で人が期待する性能が全然達成できず,適用範囲があまりに狭すぎますよね….世の中も気づいてきたので,しばらくすると… )」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「とりあえず「大量にデータを食わせてハイパラチューニングすれば何とかなる」というパラダイムは応用領域では捨てた方が良さそう。その代わり、計算効率化やモデリングに関する知見などは、分解すれば良い部品はたくさんあります。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「DNNを使って自動化したい」っていう話、一定のリテラシがある界隈では本当に聞かなくなった(かわりにAIが良く用語として使われてますが)。このあたりは研究よりビジネスの方が判断が冷たいというか飽きが早いというか。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「もちろん人手を介さず自動的に精度の高い予測ができる技術だとか、そういうものは未来永劫重要なテーマではありますが、現状でそれは到底実現されていないですしされる見込みもないので、この辺を売り文句にしてビジネス提案するのは虚構に近いです。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「要は、issueとsolutionの対応付けが、研究とビジネスとでぐちゃぐちゃになってしまっている。研究領域のissueから生じたsolutionを、そのままビジネスのsolutionとして使ってはいけない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「曲線フィッティングな深層学習が活躍できそうな領域に関しては、Andrew Ng先生の短い説明がありますね。 >If a typical person can do a mental task with less than one second of thought, we can probably automate it using AI either now or in the near future. https://t.co/25bng87NuU」 / Twitter
- Andrew Ng: What AI Can and Can’t Do
- Ken McAlinnさんはTwitterを使っています 「深層学習が廃れることはなく、どんどんなにが得手不得手なのかがわかっていくんだと思うんですよね。個人的には人間が得意なこと(画像認識、運転、言語)は得手で人間が不得意なこと(経済予測、ビジネス意思決定)が不得手っていう区別になんとなく納得しています。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「データが豊富に存在するある特定の課題を、深層学習なり強化学習なり最適化なりベイズなりドメイン知識なりを徹底的に組み合わせて解きにいく、はまだまだありそう。逆に、汎用お手軽予測ツールとしての深層学習の使い道はなくなりました。」 / Twitter
- Yusuke Hayashi(林祐輔)さんはTwitterを使っています 「「深層学習を使う必要がない」ツイートで例に挙げられていた2つの分布が重なる場合の識別問題. こちらの図表(b)ではカーネル法を使ってそんな問題でも解ける場合があることを紹介している. 深層学習はカーネル法では固定されているカーネル関数がデータに応じて適応的に変化するモデルの1つ. https://t.co/9vhN9F3bZ9」 / Twitter
- akiraさんはTwitterを使っています 「https://t.co/BjliikbCYZ 深層学習を使って、物理学で人間が解釈可能な現象を発見させる研究。物理現象ではグリーン関数が頻出するが、未知の偏微分方程式に関連グリーン関数をモデルに学習させることで、より理論に即した物理的特性発見手法になっている https://t.co/c3tMBGixud」 / Twitter
- [2105.00266] Data-driven discovery of physical laws with human-understandable deep learning
- lotzさんはTwitterを使っています 「Haskellで深層学習、Haskellでは型を活用した抽象的なネットワークの記述に徹して、実行はより低レイヤーの言語に変換して行うみたいな連携は現実的なんじゃないかと思ってる。HaskTorchとか」 / Twitter
- mod_poppoさんはTwitterを使っています 「Pythonでは多次元配列のshapeを型で表現できないけどHaskellなら型レベル自然数とかで型の表現力高いのでHaskellで深層学習(のガワ)は普通にありだと思うし実際にHasktorchみたいなプロジェクトがある」 / Twitter
- mod_poppoさんはTwitterを使っています 「Hasktorchだったかは忘れたけど前にHaskellでディープななにかを触った時にIsList (Maybe (Tensor …))みたいなインスタンスを持ってて行儀悪いなーと思った記憶がある」 / Twitter
- mod_poppoさんはTwitterを使っています 「真面目に色々型をつけようとすると型制約のオンパレードになって初心者お断りな雰囲気を醸しがち」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「物理シミュレーションのためのディープラーニング。ここではCSでよく使われている教師つき学習でなく「微分可能な物理 (differentiable physics)」という手法を提案している。これは物理シミュレーション自体をモデルとして組み込むことで予測精度を向上できる。 https://t.co/oUc39GPqgx」 / Twitter
- Welcome … — Physics-based Deep Learning
- Seitaro ShinagawaさんはTwitterを使っています 「去年の対話システムライブコンペで大いなる力を見せつけて優勝した、NTTさんの16億パラメータ日本語対話モデルがついに公開。待ってました・・・!🎉🎉🎉 日本語対話システム研究がこれからどんどん活発化しそうですね。 https://t.co/tVXGE7H56H https://t.co/gVA5JkKcSE」 / Twitter
- [2109.05217] Empirical Analysis of Training Strategies of Transformer-based Japanese Chit-chat Systems
- nttcslab/japanese-dialog-transformers: Code for evaluating Japanese pretrained models provided by NTT Ltd.
- Kazuho OkuさんはTwitterを使っています 「モデルが複雑になった時、考えるべきことは、そのモデルが本当に必要なのか、ということなんですよね」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「ディープラーニングにおける収穫逓減。深層学習は高い精度を達成したが、そのモデルはムーアの法則によるハードウェア進化を上回るペースで巨大化を続けており、経済的・環境的コストも増大している。今後、精度の向上にしたがって、CO2排出も増大する。正当化できるのか? https://t.co/NAML7Ce9ZZ」 / Twitter
- Deep Learning’s Diminishing Returns - IEEE Spectrum
エキスパートシステム
- エキスパートシステム - Wikipedia
- 人工知能「エキスパートシステム」とは?実用例で簡…|Udemy メディア
- 【図解】コレ1枚でわかる人工知能の3つのアプローチ:ITソリューション塾:オルタナティブ・ブログ
- ディープラーニングと機械学習は何が違う?それぞれの特徴を解説|発注成功のための知識が身に付く【発注ラウンジ】
- 機械学習モジュール群を組み合わせて、最適なソリューションを提供するPKSHA Technology |AI/人工知能のビジネス活用発信メディア【NISSENデジタルハブ】
- ディープラーニングとエキスパートシステム(ルールベースAI)の使い分け方 |AI/人工知能のビジネス活用発信メディア【NISSENデジタルハブ】
- AIとシミュレーションを組み合わせ、データに乏しい状況でも意思決定を可能に
- 「<オージス総研をとりまく>人工知能技術の過去と現在(1)」 | 株式会社オージス総研
- AIブームを支える「機械学習」~AIの現実的な始め方とは?~ | アシスト
- n4200000.pdf
- 知識表現(ちしきひょうげん) - ITmedia エンタープライズ
- 知識表現
数値計算
その他
LDU分解
- 4レッスンrev070711 - lesson_4.pdf
- chap07.pdf
- 朝焼けのつぶやき |LU分解/LDU分解・・・
- 行列の分解 - Wikiwand
- cholesky.pdf
- 柏木先生原稿(2012年度).pdf
- 「LDU分解」に関するQ&A - Yahoo!知恵袋
- 行列を分解して上下三角行列が欲しい - Thoth Children
- p04.dvi - p04.pdf
- 20200314
- spitbol/spitbol: SPITBOL x64 provides raw power and speed for non-numeric computation on the x86_64 architecture
- SoftFP Library
- LibBF Library
- ferreiradaselva/mathc: C math library for 2D and 3D programming
- OSQP solver documentation — OSQP 0.2.1 documentation
- oxfordcontrol/osqp: The Operator Splitting QP Solver
- log_(0.99)(0.01 / x)をx=0から200でプロット - Wolfram|Alpha
- Wolfram|Alpha 日本語版:計算知能
- インテル MKL | 数値演算・統計関数ライブラリー | XLsoft Intel
- Mathematics for programmers (early draft)
- Google、社内で利用するプライバシーに配慮した統計ツールをオープンソースで公開 | OSDN Magazine
- 金融市場トレーダーの行動法則をボルツマン方程式で解明 | 東工大ニュース | 東京工業大学
- 状態空間モデルの推定方法の分類 | Logics of Blue
- UTokyo OCWx
- 微分方程式と差分方程式(漸化式)
- イジング模型の定義 - MathWills
- Jones on modulus without division
- 入門テキスト「測度と積分」 - Mathpedia
- Point Cloud Library | The Point Cloud Library (PCL) is a standalone, large scale, open project for 2D/3D image and point cloud processing.
- Point Cloud Library (PCL)
- bin coordinates - Google 検索
- 3-FPAI101-20160807-B504_15-20.pdf
- Juliaで精度保証付き数値計算 | TakLAB日誌
- 天才数学者ラマヌジャンのように数式を予測して生み出してくれるAI「ラマヌジャン・マシン」が誕生 - GIGAZINE
- 移動平均とFIRフィルタ – GitHub 出張所 – プログラム関係のブログはここに
- 超指数増加 - Google 検索
数理最適化
Fixstars Tech Blog /proc/cpuinfo
- 整数型 と Newton法 - Fixstars Tech Blog /proc/cpuinfo
- 収束加速法の紹介 - Fixstars Tech Blog /proc/cpuinfo
- 東芝シミュレーテッド分岐マシン (SBM) による最大カット問題のベンチマーク - Fixstars Tech Blog /proc/cpuinfo
- 「DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化」を発表してきました - Fixstars Tech Blog /proc/cpuinfo
- 「CuthillMckee法によるOpenFOAMのDIC前処理に関するスレッド並列化」を発表してきました - Fixstars Tech Blog /proc/cpuinfo
- シミュレーテッド分岐マシン(SBM)で巡回セールスマン問題を解く - Fixstars Tech Blog /proc/cpuinfo
- データをアクションにつなげる技術「数理最適化」とは? | DOORS
- 数理最適化による問題解決の実践的なアプローチ
- 【連載】ブレインパッドの数理最適化ブログ(目次) - Platinum Data Blog by BrainPad
- 第1回:最近学んだ数理最適化の定式化のチップスたち 【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
- 第2回:ナップサック問題を色々な方法で解いてみた【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
- 第3回:はじめての配送計画の列生成法【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
- 第4回:在庫問題と配送問題をドッキング!大規模最適化時代で何が変わる!?【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
- 第5回:なぜデータサイエンティストが数理最適化を行うのか【ブレインパッドの数理最適化ブログ】 - Platinum Data Blog by BrainPad
- 井山梃子歴史館さんはTwitterを使っています 「「実社会におけるあらゆる問題は、守らなければならない制約条件のもとで、何らかの評価指標を最小化あるいは最大化する制約付き最適化問題として定式化することができます。」 すき」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「https://t.co/v5L3opFuTw」 / Twitter
- 【プレスリリース】制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- | 日本の研究.com
- ТагсановさんはTwitterを使っています 「異分野横断しててカッコいいなと思う一方で、論文ざっと読んでみるとグレブナー基底の計算が途中で必要みたいで、現実的な問題設定に対してどれだけまともに使えるのかは気になるところではある https://t.co/GmKGFMeEzB」 / Twitter
- 京都大学さんはTwitterを使っています 「制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- https://t.co/RH6Fb8BHRf」 / Twitter
- 制約想定を必要としない新しい最適性必要条件の導出 -すべての最適解が満たす方程式の新しい導出方法を提案- — 京都大学
- Susumu Yamazaki (ZACKY)さんはTwitterを使っています 「問題は,計算機を増やすことで高速化される効果は最善でも線形であるのに対し,組み合わせは指数関数で増えることですね。」 / Twitter
- UmeponさんはTwitterを使っています 「バイバインを使えば、どんな組合せ最適化問題も線形時間で解ける計算機って作れるのかな?同じ物がコピーされるだけだから難しいか。」 / Twitter
- Python言語による実務で使える100の最適化問題 | opt100
Eigen
- Eigen
- Eigen3 survey
- C++行列計算ライブラリEigen入門 - Qiita
- ベクトル/行列演算の定番ライブラリEigen - Qiita
- C++の行列ライブラリ Eigenの紹介 | Preferred Networks Research & Development
- C++線形代数ライブラリEigenの注意点 - Regen Techlog
- pdf-eigennote.pdf
- でらうま倶楽部 : Eigen - C++で使える線形代数ライブラリ
- 081791add.pdf
- Code_Tips/Eigen.md at master · Shusei-E/Code_Tips
Karatsuba
- κeenさんのツイート: "karatsuba、アルゴリズムオーダー的には速いけど実測はかなり桁数上がんないと意味ないみたいなこと聞いた"
- Keiさんのツイート: "真面目にKaratsubaが筆算より速くなるビット数を探ってみたら、(32ビットで)1600より上、1800-1900以上で確実くらいだった。Wikipediaの320-640より大分上である。"
- Masaki⊣Haraさんのツイート: "あまり把握してないけど、Karatsuba除算とかもあるらしいんだよな https://t.co/XKunRC5Yvw"
- 2 Karatsuba系列のアルゴリズム
- κeenさんのツイート: "karatsubaのkaratsubaってなんなんですか?唐鍔?"
- κeenさんのツイート: "人名なの…"
- 高梨陣平さんはTwitterを使っています: 「任意の桁数の数値の乗算を求める高速なアルゴリズム、Karatsuba Algorithm。最近、改善されたとか。HNで発見に至る歴史が紹介されている。またPythonのlong integerでも採用されている。 https://t.co/l8ApGtfj3j」 / Twitter
- Hacker News 100さんはTwitterを使っています: 「Karatsuba Algorithm https://t.co/7V5hdwVZVv (https://t.co/6lwcKHQDzL)」 / Twitter
- Karatsuba algorithm - Wikipedia
- Karatsuba Algorithm | Hacker News
小清水さんとコンピューター数学
- FMA (Fused Multiply-Add) について色んな観点でまとめてみた - 小清水さんとコンピューター数学
- 逆数の近似命令と精度補正について (その1) - 小清水さんとコンピューター数学
- 丸め誤差界の Hello World 的定理 -- Sterbenz の定理 - 小清水さんとコンピューター数学
- 計算環境の精度を当てる ― 解説編 ― - 小清水さんとコンピューター数学
- 計算環境の精度を当てる ― Intel CPU と Excel への応用 ― - 小清水さんとコンピューター数学
- expm1 や pow などの 指数・対数函数 への考察 - 小清水さんとコンピューター数学
- 素数大富豪だけじゃなく HEX もやろう! ― 紹介編― - 小清水さんとコンピューター数学
- Newton法でつながるコンピューターと数学の隙間 - 小清水さんとコンピューター数学
- Excelでおかしな計算結果になった問題の正解値を求める - 小清水さんとコンピューター数学
- コンピュータでおかしなことになる計算例 (3) ―たった1度の型変換― - 小清水さんとコンピューター数学
- コンピュータでおかしなことになる計算例 (2) ― 三角函数を定義通りに ― - 小清水さんとコンピューター数学
- コンピュータでおかしなことになる計算例 (1) - 小清水さんとコンピューター数学
- 浮動小数点の丸めの方向と性質 (1) - 小清水さんとコンピューター数学
- 下書き - 小清水さんとコンピューター数学
行列
- linear2017.pdf
自動微分・微分可能プログラミング・逆問題
自動微分
- Masahiro SakaiさんはTwitterを使っています 「以前に、KLEEがLLVM IRを記号実行するように、LLVM IRを自動微分できないかと考えたことがあったけど、NeurIPS 2020で発表されてた! Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients https://t.co/zjJKPuTdlF 実装: https://t.co/vajNgEfEzq」 / Twitter
- Paper
- Enzyme AD
- Masahiro SakaiさんはTwitterを使っています 「新分野にMLを適用する際に、その分野の既存コードをMLフレームワークのDSLに書き直すなりしなくてはいけないのを何とかするという動機。 言語非依存の自動微分を実現し、また低水準言語を対象とした自動微分は非効率という常識を覆し、最適化後のIRを自動微分することでより高効率なコードを生成!」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「この手のことをやるのに型解析が必要なのは普通なんだけど、memcpyはforwardは型によらないけど、backwardは型によって処理を変える必要があるというのは、自分は気づいてなかったので面白かった。」 / Twitter
Julia
- Shuhei KadowakiさんはTwitterを使っています 「ここ数日自動微分技術の基本的なアイディアについて勉強したので、メモも兼ねて自分の言葉でまとめてみます。基本的には、僕が勝手に尊敬しているMike J Innesさん(https://t.co/nrAKrct5I6)の"Differentiation for Hackers"(https://t.co/8RmsqDQfq6)と彼の論文(https://t.co/Pmkf5pCHKk)のまとめ 1/n」 / Twitter
- MikeInnes (Mike J Innes)
- MikeInnes/diff-zoo: Differentiation for Hackers
- [1810.07951] Don't Unroll Adjoint: Differentiating SSA-Form Programs
- Shuhei KadowakiさんはTwitterを使っています 「"Differentiation for Hackers"はシンボリックな表現に対する直感的な微分器の実装から始めて、色々な自動化の方向性を紹介するっていう内容。微分自体はチェインルールさえ理解すれば実装は難しくなく、ホスト言語の元プログラムからいかにして微分可能な表現を得るかという点が自動化の核となる 2/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「順方向に連鎖律を適用する場合、ホスト言語のプログラム実行の流れに沿って伝播できるので、operator overloadingさえ利用できれば実装が簡単で最適化もしやすい。一方で一入力に対してしか微分を伝播させられないため、MLなどの応用場面でよくある高次元入力に対しては効率が悪くなってしまう。 3/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「ただクロージャにキャプチャされた変数の扱いが面倒(多分ここでも伝播を繰り返す必要がある?)。よく出てくるデュアル数は一見ただの実装上のテクニックに見えるけど、微分の定義との関係性は深淵で面白い。 逆方向に伝播させる場合計算量が出力次元に対して比例するためMLなどではこちらが一般的 4/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「ただホスト言語のプログラム実行をそのまま使うことができないので、元プログラム中の計算を大幅に簡略化した表現を部分評価によって得てそれを微分するのが基本的な方針らしい。その表現は自動微分の文脈だと一般に"Wengert list"と呼ばれるが、ML界隈では"graph"と呼ぶらしい 5/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「部分評価の仕方によって、静的に計算グラフを得る("Static Declaration")と動的にWengert listを構築する("Eager Evaluation")という大きく2つのアプローチに分かれる。それぞれの代表例としては、TensorFlowは前者で、PyTorchとかChainerは後者に属する。 6/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「この2つの間のトレードオフは、効率的に動作させたい(static declaration) vs. 動的なcontrol flowなども含めてホスト言語の機能を自動で計算グラフに変換したい(eager evaluation)というもの。とはいえさっき挙げた代表的なライブラリだといずれもハイブリッドっぽくなっているらしく、 7/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「最近だとTFもeager evaluationをサポートしてるらしい(https://t.co/8BMv2Qqtzd)。 とはいえ、これらのアプローチはいずれにせよ独自の表現から逆伝播を行うため、既存のコンパイラ資産のスムースな利用とか、ホスト言語の意味論から得られる情報を用いた最適化とかがやりにくいっていう欠点がある 8/n」 / Twitter
- PyTorch vs TensorFlow — spotting the difference | by Kirill Dubovikov | Towards Data Science
- Shuhei KadowakiさんはTwitterを使っています 「であれば、元プログラムを簡略化した表現ではなく、元プログラムを*そのまま*変換した表現に対して微分すれば、それらの欠点が解決できるじゃん、っていうのが"Don't Unroll Adjoint: Differentiating SSA-Form Programs"のアイディア。つまりSSA表現に対して微分を行えれば、素直に最適化ができる 9/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「SSA表現を微分する上で考慮すべきものは、いかにしてcontrol flowを扱うか、autodiffの視点で言うといかにして複数回代入/参照される変数を扱うかという点。結論としては、スタックにiterationごとの変数の状態を記憶しておくという解決方法を提示している 10/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「あとはプリミティブな要素に対して言語それぞれの意味論に沿って微分を定義してあげるだけで実装できる... というアイディアの実装がhttps://t.co/tWLIy5rabYであり、Zygote.jlは理論的にはJuliaの最適化の恩恵をそのまま利用することができる! 11/n」 / Twitter
- FluxML/Zygote.jl: Intimate Affection Auditor
- Shuhei KadowakiさんはTwitterを使っています 「ちなみに、JuliaのSSAではなく、LLVMのSSAを微分したらLLVMを利用しているいろんな言語で自動微分できるし最適化もしやすいよ、っていうのが僕の上司のValentin氏が書かれたEnzyme(https://t.co/sJLfflH8kb)のアイディア(理解が正しければ) 12/n」 / Twitter
- [2010.01709] Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients
- Shuhei KadowakiさんはTwitterを使っています 「Zygoteの話に戻ると、Zygoteは既存のJuliaプログラムに対してそのまま微分することができ、実際に #Julia言語 のコミュニティで広く使われている一方で、Juliaコンパイラの技術的な問題点(at-generated関数)から、まだまだ理想的なcompile-time/runtimeのパフォーマンスを得ることができていない 13/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「Keno氏が今度のJuliaConで発表しようとしているDiffractorは、Juliaの型推論で得られる型情報をうまく利用しながら自動微分のコンストラクト(adjoint code)を作ることで、そうした問題を解決しようとしているもの(Zygote.jlが利用しているat-generated関数は型推論後の型情報を利用できない) 14/n」 / Twitter
- Shuhei KadowakiさんはTwitterを使っています 「...で前置きが長くなりましたがなぜ自動微分をちょっと勉強したかの背景を説明しますと、僕が最近取り組んでいるJulia compiler-pluginプロジェクト(https://t.co/Kb2qNM5TMt)は、そうした型推論後のコードに対する変換をしやすくするためのコンパイラインフラの整備を目標としているためなのです 15/n」 / Twitter
- Julia Compiler-Plugin Project - HackMD
- Shuhei KadowakiさんはTwitterを使っています 「すでにDiffractorは動いてるので、今の状態でもKenoには十分使えるんだろうけど、まだみんなが簡単に使える状態ではないので、まずはあんまJuliaのコンパイルパイプラインのことをよくわかってない僕が勉強しながら簡単に使えるくらいの状態に整備しようとしています 16/n」 / Twitter
- 『微分可能プログラミング』はどこから来たのか - bonotakeの日記
- 自動微分 - Wikipedia
- 自動微分を実装して理解する(前編) - Qiita
- ボトムアップ型自動微分の実験 - kivantium活動日記
- FadisさんはTwitterを使っています: 「なんとなくだけど、この4年程で「とりあえずニューラルネットワークにぶち込んでみた」系論文が減って、入れ替わりで「微分可能にすればこの式だって出力から未知の入力がわかるよね」系論文が増えた。optimizerが使える対象は何もニューラルネットワークだけじゃないもんな」 / Twitter
- FadisさんはTwitterを使っています: 「コンピュータグラフィックスのレンダリングの過程を全て微分可能にすると、出力から入力を求めるのは最適化問題になり、結果の画像からマテリアルやメッシュを推定できるようになる。つまりイメージからレンダリング素材が作れるようになるから、今既存のレンダリング手法の微分が試みられている」 / Twitter
- FadisさんはTwitterを使っています: 「逆レンダリングによって描かれている物の形状を求めたい場合、メッシュでは事前にトポロジが分かっている必要があるためうまくいかない。そこでポイントクラウドをレンダリングした事にして、そのレンダリング過程を微分して逆レンダリングした、という論文 https://t.co/ePByceofWt」 / Twitter
- igl | Interactive Geometry Lab | ETH Zurich | Differentiable Surface Splatting for Point-based Geometry Processing
- FadisさんはTwitterを使っています: 「ポイントは、全てのレンダリング方向から見えない(多様体の内側にある)点はどれだけ反復しても最適化の対象にならないため、そのような点は最寄りの表面まで押し出す点と、点群が偏るのを防ぐために1サイクル毎にポイントクラウドの密度を平滑化する点」 / Twitter
- FadisさんはTwitterを使っています 「@Linda_pp そいつの最高にクールな所は、自動微分でレンダリングを逆回し出来るところ(レンダリング結果に近くなる入力を探索できる)」 / Twitter
- piqcyさんはTwitterを使っています 「ピクセル(RGB)レベルの密なMap構築を行うDense SLAMについて、SLAMの構築プロセスをすべて微分可能にし勾配法による最適化を可能にした研究。フレーム間のマッチング・Map推定・グローバル最適化をそれぞれ微分可能な計算に置き換えている。」 / Twitter
- Krishna MurthyさんはTwitterを使っています 「Today we release gradslam - automagically differentiable SLAM. Run dense 3D reconstruction in @PyTorch! And, it's fully differentiable :) Co-led w/ @S_Saryazdi, ably supported by @mautkiungli @duckietown_coo Webage: https://t.co/vxVDedldRY Paper: https://t.co/cN3tjc9e11 https://t.co/oV5np9CCjm」 / Twitter
- About | gradslam
- [1910.10672] gradSLAM: Automagically differentiable SLAM
- だめぽラボ@技術書典9さんはTwitterを使っています 「自動微分を組み込んだ言語を作りたいという気持ちはあるけど、自動微分みたいなメカニズムを直接言語に組み込むべきなのか、それとも自動微分を実装できる程度にメタプロなりその他強力な言語機能を備えた言語を作る方が筋が良いのかはよくわからない」 / Twitter
- てらモス♋️さんはTwitterを使っています 「フォーワード・バックワード組み合わせる高速自動微分でも、二重数を使うような自動微分でも、数式のまま処理する数式微分でも、いずれにせよ数学的に扱うべき関数を計算機上で(C言語の意味の)関数ではなく計算グラフなりのデータとして扱う為の環境はだいぶ整って来てるですよね(´・ω・`)」 / Twitter
線形連立微分方程式の行列形の解法
- Shinji KonoさんはTwitterを使っています 「極線の証明は二次の等式を微分するだけなので難しくない。接線なんだから微分するのは当然だし。直接計算するのもたいしたことはないが、知ってると楽。 https://t.co/6it6mrwqNM」 / Twitter
- 美しい図形の性質(極線、二次曲線) まさかそこを通るなんて・・・ | 東大に文理両方で合格した男が綴る、受験の戦略
- Shinji KonoさんはTwitterを使っています 「この手の「わけもわからず微分」系は便利。偏微分とかラグランジュの未定係数法とか知らないのは残念だよな。それ抜きで物理を理解できるとかあり得ない。エネルギー抜きで物理を理解するようなものでしょ。高校生でそれをやらないなんて。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ファインマン先生も「微分方程式はexp xをかけて積分」すれば良いとか言ってたし。それがなんなのかがわかるのは、線形連立微分方程式の行列形の解法を見てからだな。 y = d/dt x + a y = exp a x のd/dt が行列になるだけ。行列乗とかが出てきてしまうが。」 / Twitter
超離散化
- 1216-23.pdf
- �������������� (�������������) - B41_006.pdf
- 03-Surikagaku-478-35-preprint.pdf
- sample.dvi - 57_1015.pdf
- 超離散化について - Qiita
- 144446913.pdf
- Article_No_03.pdf
- abst.dvi - 8-003.pdf
統計モデル
- 正規分布と冪分布 - 増井俊之
- 冪乗則 - Wikipedia
- スティーヴンスのべき法則 - Wikipedia
- 確率分布 - Wikipedia
- パレート分布 - Wikipedia
- Zeta distribution - Wikipedia
- ジップの法則 - Wikipedia
- mr-csceさんはTwitterを使っています 「進化計算など評価関数を何回も呼ぶ必要がありその評価関数が重いとき,その評価関数をの出力を予測するモデルを作り,そのモデルの出力を評価として使用するようなのをsurrogate modelingというらしい.前に某氏が評価関数重いしモデル作ろうと言ったときはマ?と思ったが一般的なテクニックだったのか」 / Twitter
レヴィ–プロホロフ計量
- Ryoma Sin'yaさんはTwitterを使っています 「Lévy–Prokhorov metric 知らんかった. https://t.co/OB9rnr1fx5」 / Twitter
- Lévy–Prokhorov metric - Wikipedia
- レヴィ–プロホロフ計量 - Wikipedia
KL 情報量
- カルバック・ライブラー情報量 - Wikipedia
- 相互情報量 - Wikipedia
- KL情報量を概念的に理解する - PlayGround
- 正規分布間のKLダイバージェンス - Qiita
- 生成モデルで語られる Kullback-Leibler を理解する - Qiita
- Kullback-Leibler
- Kullback-Leibler
- 自己情報量、エントロピー、KL情報量、交差エントロピーと尤度関数 - sambaiz-net
- research_mle
- 41.pdf
- エントロピーからKLダイバージェンスまでの話 - HELLO CYBERNETICS
- 7c_12.dvi
- www.cfme.chiba-u.jp
- KL情報量
- カルバック・ライブラ擬距離
- InfoTheory05_4.dvi
- 情報理論の基礎~情報量の定義から相対エントロピー、相互情報量まで~ | Logics of Blue
- エントロピーからKLダイバージェンスを理解する | マサムネの部屋
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#数楽 KL情報量で確率分布間の違いを測ることについて普通の理解の仕方が普及していない感じがする。Kullback-Leibler情報量を「距離」の概念で理解しようとするのは的を外している。 Sanovの定理より、KL情報量は確率分布pの独立試行で確率分布qをシミュレートしたときの予測誤差とみなせます。続く」 / Twitter
- エントロピー、カルバック・ライブラー情報量、最尤推定法 - 初級Mathマニアの寝言
Scalable Probabilistic Approximation
- 20200222
- New Algorithm Allows PCs to Challenge HPC in Weather Forecasting
- Low-cost scalable discretization, prediction, and feature selection for complex systems | Science Advances
ディオファントス方程式
- 宇宙物理たんbot@VTuber活動1周年!!さんのツイート: "(「62円切手または82円切手を買え」という指示だとして、)62円切手整数枚と82円切手整数枚で1000円分の組み合わせを作れという問題はみんな大好きディオファントス方程式 62x + 82y = 1000 ですわ。この方程式はマイナスの枚数を認めない限り「解なし」ですのよ。 https://t.co/4ekzM3KGUm"
- 大木 一真|モジカクしごとさんのツイート: "(伝え方が完全に悪かったのだけど、)インターンの大学生に1,000円分の切手を買ってきてとお願いしたら、1,000円切手1枚を渡された……。 聞いたら、そもそも切手を買ったことなんて今までなかったそう。これが令和……。… "
- Hideyuki Tanakaさんのツイート: "ディオファントス方程式ってよく知らなかったけど、拡張gcdのことだったのか(´・_・`)"
- Hideyuki Tanakaさんのツイート: "ディオファントス方程式調べてみたけど、任意の整数係数の方程式を指すらしいからこの形の方程式をそういうのは一般的過ぎると思いました(小並感)"
- Hideyuki Tanakaさんのツイート: ">2変数2次方程式a x2 + b y + c = 0 の整数解の存在判定問題はNP完全問題であることが証明されている。(→計算複雑性理論 はぇぇこの時点でそうなのか(´・_・`)"
計算量
PDF
- ad09-01.pdf
- ad11-02.pdf
- 2.ho
- アルゴリズムと データ構造
- Microsoft PowerPoint - alg1.ppt [互換モード]
- Microsoft Word - keisankigairon.ch4a.110420.doc
- 第2回 アルゴリズムと計算量
- 最大充足化問題に対する近似アルゴリズム
- uchanさんはTwitterを使っています 「P=NPという結論を導く証明が書いてあるらしいPDFをチラ見しただけで,僕はその内容を理解できる自信がないです。最大独立集合問題に詳しい人に判断をゆだねます… https://t.co/HHXz3Chx15」 / Twitter
- (PDF) Extract maximum independent set using eigenvalue relation
- SDB-ex1_sample.pdf
Qiita
- [初心者向け] プログラムの計算量を求める方法 - Qiita
- 計算量オーダーについて - Qiita
- 計算量オーダーの求め方を総整理! 〜 どこから log が出て来るか 〜 - Qiita
Wikipedia
- ランダウの記号 - Wikipedia
- 計算複雑性理論 - Wikipedia
- 組合せ最適化 - Wikipedia
- 近似アルゴリズム - Wikipedia
- 線型計画法 - Wikipedia
- 線型計画問題 - Wikipedia
- 整数計画問題 - Wikipedia
- グレブナー基底 - Wikipedia
- 代数方程式 - Wikipedia
Twitter
malloc
- Masaki HaraさんはTwitterを使っています 「↓std::vectorのpush_backの計算量です」 / Twitter
- Masaki HaraさんはTwitterを使っています 「再アロケートとコピーのコストだけ解析すればよくて、再アロケート時の倍率をm>1、長さをn, 容量をcとしたとき、max{(mn-c)/(m-1), 0}とすると、 ・通常のpushではm/(m-1)貯蓄 ・再アロケート時 (n = c) はn消費 で計算できる感じか」 / Twitter
- Masaki HaraさんはTwitterを使っています 「growable array のポテンシャル解析ってどんな感じでやるんだっけ」 / Twitter
- Masaki HaraさんはTwitterを使っています 「ちなみにmalloc/freeにかかる時間は O(size) とみなすのが一般的だと思うけど、メモリ使用量が増えたときの実際の効率低下はどれくらいの感じなんだろう」 / Twitter
- KojimaさんはTwitterを使っています 「push_back と pop_back と shrink_to_fit をこの順でやるのを繰り返しても O(1) が保証されるかな」 / Twitter
- Masaki HaraさんはTwitterを使っています 「shrink_to_fitがどうせ線形時間なので、上乗せでpotentialを貯金していると考えればいける」 / Twitter
- Masaki HaraさんはTwitterを使っています 「Webアプリケーションプログラミングやってると漸近計算量改善の60%がインデックス張るで30%が配列をsetに事前変換するなので感覚が鈍る (数字は適当)」 / Twitter
- hasimotoさんはTwitterを使っています 「@s_isshiki1969 あ、見ました。ありがとうございます。 K&Rのmallocとかって malloc( 1024 )でも、リストどこまでたどるかはヒープ次第で 1024 がオーダー計算になってないから、あれっていう感じでした。」 / Twitter
- monochromeさんはTwitterを使っています 「@k1ha410 そうですね。K&Rも一般的にはO(1)という理解だと思いますが、でかい領域を取りに行くとfitする場所を探すのに時間がかかるという意味かと思いました。」 / Twitter
- hasimotoさんはTwitterを使っています 「@s_isshiki1969 でかさ(絶対的指標じゃない)次第ですが最近のmallocは考えられてる感じしますよね。」 / Twitter
- monochromeさんはTwitterを使っています 「@k1ha410 sizeにはほぼ影響を受けないはずですね。」 / Twitter
- chokudai(高橋 直大)さんのツイート: "競技プログラミングの弱点は、「最悪計算量しか意識しない習慣がつく」ことで、これしかやってないのは割と危険。最悪計算量を意識するのは当然大切なんだけど、平均計算量、というか平均計算時間も結構大切。マラソンマッチ出るとむしろそっちを意識するのよね。"
- chokudai(高橋 直大)さんのツイート: "ソートだったり二分探索だったりしてると「logなんて所詮定数倍みたいなもんだよねー!」って気分になるけど、平衡二分木とかだと「logはおもい・・・logはおもい・・・」って感じになる"
- chokudai(高橋 直大)さんのツイート: "二分探索は中に処理そこそこ書くからlog感普通にある気がしてきた。"
- Fadisさんのツイート: "計算量で有利なアルゴリズムを選択する時、そこには「データがキャッシュに乗り切らないくらい多い」という前提がある。数十、数百程度のデータを操作する場合「計算量を抑える為に複雑なデータ構造を採用する」より「線形時間を要するけどキャッシュに全部乗る」方法の方が速いという事がしばしばある"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "最悪計算量と平均計算量をグラフにして、挟まれた部分を塗った時、最悪計算量が上界(=領域の上限)、平均計算量が下界、という言い方をするらしい。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "dict(hashmap)検索が O(n) になる確率、qsortが O(n^2) になる確率。 これらの確率は0と考えてプログラミングすることが多い。 事実上0と見做す確率の閾値はどのあたりだろう…ハードウェア由来の問題を起こす確率に比べて充分小さい、あたりは最低条件な気はする。"
- John Carlos Baezさんのツイート: "WOW! A new paper claims to have found a more efficient algorithm for multiplying large numbers. It supposedly runs in O(n log n) time - this had never been achieved before. One catch: it only works on numbers with at least this many digits: (cont)… https://t.co/jknld8INnm"
- 7594591200220899443さんのツイート: "nlognの掛け算ついに発見されたのか"
- 7594591200220899443さんのツイート: "(但2^(2^4096))よりでかい必要があり)"
- 7594591200220899443さんのツイート: "計算量の議論をする時にインフォーマルには「nが小さい時のいくらかの例外を除いて」みたいな言い方をするわけだけど、そのnが既知宇宙の全原子数よりもでかいというのは「いくらかの例外」っていうニュアンスで語るのは結構すごい(厳密にやるときは極限をとるからまあ、あまり問題にならないが)"
- 著者近影さんはTwitterを使っています 「計算量とかを気にするのって、明らかにプロファイル取って遅いとわかる場合か、可読性を失わない範囲である程度素朴に読める形のときとかだけど、時々計算量が〜みたいな不適当に最適化したがる会社とか人見るたびに適当にみんな計算量って言いたいんだな…みたいな気持ちになる」 / Twitter
- 水無麻那さんはTwitterを使っています 「@moba1b 計算量で最適化するのは愚だが、プロファイルとって遅いときに計算量を気にするかは時と場合による(多くの場合原因は計算量ではなく、I/O かオーバーヘッドの場合が多いのが経験則で、計算量改善すると遅くなる場合が多い)」 / Twitter
- 水無麻那さんはTwitterを使っています 「@moba1b 計算量は日頃から気にした方がいいというのは正解だと思うが、計算量だけを気にするのは良くない(計算量は結構指標にならない)というのが個人的な意見」 / Twitter
- 著者近影さんはTwitterを使っています 「@Mizunashi_Mana まぁそうなんだよな 結局、見方が偏った人種がプログラム書いてる中にそこそこの割合、規模感でいるんだなぁとか色々見て考えてて」 / Twitter
- 水無麻那さんはTwitterを使っています 「@moba1b いや単にこれは経験の問題だと思ってる。普通大学では計算量という指標しか習わないし、カバレッジやプロファイルの取り方とか習わないので」 / Twitter
- 著者近影さんはTwitterを使っています 「@Mizunashi_Mana む、言われれば確かに」 / Twitter
- κeenさんはTwitterを使っています 「NP完全な問題、今のところ計算量がO(2^n)な解法しかないから基本は避けるんだけど、それはそれとして計算量がO(2^n)なコード書いたことないから一回くらいは書いとかなきゃって思ってる」 / Twitter
- ™お嬢様さんはTwitterを使っています 「O notation, 個人的には "f(n) in O(n)" とか "O(n) \subset O(n^2)" とかにしたいんだけど,分野の慣習が "f(n) = O(n)" とか "O(n) = O(n^2)" なので,できるだけ数式にしない方向の "f(n) is O(n)" や "O(n) is O(n^2)" で回避しようとしてます…….」 / Twitter
- 画力・博士号さんはTwitterを使っています 「( f∈O(n ↦ n) あたりになってほしいなあという気持ちがある)」 / Twitter
- Yasunori OhtoさんはTwitterを使っています 「P=NP論文の証明と擬似コードを改稿しました。日本語版です。読んでコメント頂ければ幸いです。 https://t.co/c09I6ayOYk」 / Twitter
- (PDF) Polynomial-time Extraction of the Maximum Clique Using Eigenvalue Relation
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「計算量の講義資料で「オーダー計算には係数や定数は無視」と書きつつも、実開発だと(指数や多項式オーダー計算を避けるのは当然としても)「定数や係数」も結構大事なこと多いよね、とも思いつつ。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「P vs NP問題に関するこれまでの発見まとめ。 https://t.co/Khi7pSTDfA」 / Twitter
- P-versus-NP page
- 空間計算量とは|領域計算量|space complexity : 意味/定義 - IT用語辞典
- 時間計算量とは|time complexity : 意味/定義 - IT用語辞典
- 一週間で身につくアルゴリズムとデータ構造|応用編第1日目:アルゴリズムと計算量
- Programming Place Plus アルゴリズムとデータ構造編【導入】 第1章 計算量
- 計算量とBig-O記法 - 素人がプログラミングを勉強していたブログ
- 計算量のはなし - 赤い黒歴史を蓄積する
- 計算量
- 第74回 計算量の数学 計算量とは :はじめMath! Javaでコンピュータ数学|gihyo.jp … 技術評論社
- オーダー記法の定義と大雑把な意味 | 高校数学の美しい物語
- アルゴリズムで天地の差: 計算の手間
- 計算量 | Programming Place Plus アルゴリズムとデータ構造編【導入】 第1章
- アルゴリズムを評価する計算量について - bambinya's blog
- » 開発新卒に捧ぐ、基本のアルゴリズムと計算量 TECHSCORE BLOG
- 組合せ最適化入門:線形計画から整数計画まで
- 20190511
- 「量子理論の副産物に過ぎなかった」──東芝の「量子コンピュータより速いアルゴリズム」誕生秘話 (1/5) - ITmedia NEWS
- 「世界最速・最大規模」──東芝、量子コンピュータより高速に組み合わせ最適化問題を計算するアルゴリズムを開発 - ITmedia NEWS
- 東芝 研究開発センター:研究開発ライブラリ 世界最速・最大規模の組合せ最適化を可能にする画期的なアルゴリズムの開発について-物流・創薬など社会課題を短時間で解決するサービスプラットフォームの構築に向けて-
- Combinatorial optimization by simulating adiabatic bifurcations in nonlinear Hamiltonian systems | Science Advances
- 計算複雑性を勉強するときに参照する本のメモ - 誰にも見えないブログ
- PとNPについて - Yabu.log
- NP問題における決定問題とはなにか - Yabu.log
- NPクラスのNondeterministic polynominal algorithmについて - Yabu.log
- Microsoft PowerPoint - ComputationTheory2
- How to tackle hard combinatorial optimization problems arising in real applications? - Speaker Deck
- 時間計算量 - Google 検索
- 空間計算量 - Google 検索
- chokudai(高橋 直大)🍆さんはTwitterを使っています 「QiitaのPython計算量記事から引用だけど、この表はやっぱり頭に入ってて欲しいかなあ。どちらかというと「表を覚える」というよりは「こういう仕組みだからこれはこの計算量になりそう」って言うのが推測出来てほしい。 (推測値と外れた所だけ覚えれば表全体は覚えなくて良いかららくちん) https://t.co/NdSkZ0GQ2P」 / Twitter
固定小数点数
- 固定小数点数 - Wikipedia
- Fixed-point arithmetic - Wikipedia
- hdLab : 第10回「固定小数点の演算」(201302) ~ 21世紀のシステムLSI設計を支援する プロダクト&サービス
- 固定小数点演算について
- 固定小数
- 固定小数点とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- 固定小数点型【変数の型】とは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
- 固定小数点数とは - IT用語辞典 Weblio辞書
- 固定小数点数
- 固定小数点と浮動小数点 - DSP入門(ディジタル信号処理入門)
- 固定小数点演算(こていしょうすうてんえんざん)とは - コトバンク
- 固定小数点数(コテイショウスウテンスウ)とは - コトバンク
- 固定小数点形式(こていしょうすうてんけいしき)とは - コトバンク
グレイコード
- グレイコード - Wikipedia
- Gray code - Wikipedia
- グレイコードと実数
- グレイコードを生成するだけの小話 - Qiita
- グレイコードの特長は、何ですか? - 製品に関するFAQ | オムロン制御機器
- グレイコード | ITと社会用語辞典 | IT用語辞典 | 日立ソリューションズ
- グレイコード ‐ 通信用語の基礎知識
- グレイコード バイナリ変換CGI
- グレイコード
- グレイコードとは (グレイコードとは) [単語記事] - ニコニコ大百科
- グレイコードカウンタ
正規分布乱数生成
- (「・ω・)「ガオーさんはTwitterを使っています 「Juliaの正規分布乱数生成が気になって見てみたけど驚くほど短いな。Ziggurat法というらしい。 https://t.co/uXcoqZpEXN」 / Twitter
- julia/normal.jl at e5884e74a5fb15b11d5e116efa05d186ebe2a74a · JuliaLang/julia
- 加藤公一(はむかず)さんはTwitterを使っています 「@bicycle1885 多項式関数のつなぎ合わせで近似するんでしたっけ。多量に呼ばれるところだからシンプルで高速でないといけない。」 / Twitter
- (「・ω・)「ガオーさんはTwitterを使っています 「@hamukazu どうですかね。論文を斜め読みですが、基本的なアイデアは密度関数を同じ面積の矩形で覆って、そこからサンプリングする(矩形なので単純で高速)みたいな感じです。たまに失敗するので、それは特別処理が必要みたいです。 https://t.co/kST3jwyq2B https://t.co/ubhkyAoxDd」 / Twitter
- The Ziggurat Method for Generating Random Variables | Marsaglia | Journal of Statistical Software
- (「・ω・)「ガオーさんはTwitterを使っています 「@hamukazu 失敗というのは、矩形が密度関数からはみ出している部分とか、一番下の裾部分に当たるケースみたいです。うまくやれば99%程度は成功するみたいです。」 / Twitter
PC Watch
- Windowsの標準電卓で4の平方根が2でなかった仕様がようやく修正 - PC Watch
- NTTデータと広島大、組合せ最適化問題をGPUで高速解決する技術 ~GeForce RTX 2080 Ti×4で秒間1兆の探索が可能に - PC Watch
infoQ
- AlphaFoldアルゴリズムがCOVID-19タンパク質構造を予測
- 確率論的データサイエンスモデルのテストから学んだこと
- NumPy 1.20が実行時SIMDサポートと型アノテーションを加えリリースされた
POSTD
- 数値最適化のインタラクティブ・チュートリアル | プログラミング | POSTD
- ハミング符号 : データの誤り検知/訂正をインタラクティブに学ぶ | コンピュータサイエンス | POSTD
スライド
- NumPy闇入門
- マルコフ連鎖モンテカルロ法入門-1
- 関数データ解析の概要とその方法
blog
- 二重振り子の精度保証付き数値計算 - kashiの日記
- x + 0.25 - 0.25 = xが成り立たないxとは何か|Rui Ueyama|note
- 整数の平方根(切り捨て) | g200kg Music & Software
- 対数関数の超越性 - 記号の世界ゟ
- 解ける線形微分方程式の話 - 記号の世界ゟ
- 多元数について8枚のスライドでまとめてみたら | ポップラーン
- 確率分布をさわれるShinyアプリ「確率分布Viewer」に新機能を追加しました! - Dimension Planet Adventure 最終章 最終話『栄光なる未来』
- 整数の割り算を掛け算に変換 (3) - 七誌の開発日記
- 行列式という名前の由来ってどこからなのよ? - 備忘録
- 5次方程式の解の公式をガチで求めよう|きいねく|note
- 【TV出演】NHK(Eテレ)「テストの花道」~もどりま表の活用例他(数学って面白い!) - 永野裕之のBlog
- 「群」って何なの?「同一視」から始める群論 - アジマティクス
- 50年来の信号処理に関する謎が解かれる、逆高速フーリエ変換がついに一般化 | fabcross
- なぜ相関係数rの範囲が-1≦r≦1か | おいしい数学
- 三角関数はなぜ重要か - 増井俊之
- 高速フーリエ変換の実装を難しそうかなと思っている方が、なんだ簡単じゃないですか!! となるための実装講座です - CADDi Tech Blog
- chirp z-transform | Kyopro Encyclopedia of Algorithms
GitHub
- 科学計算総合研究所 (RICOS Co.Ltd.)さんはTwitterを使っています 「すべてのハードウェア、型、行列構造への依存を吸収することを目的として開発された、数値計算ライブラリ"monolish"を公開しました。 https://t.co/g5ZLJGAlGy PythonやJuliaのような簡単なインタフェースで、MKL、 cuBLAS、cuSPARSE、cuSOLVER、BLAS、LAPACKのAPIを統一した関数が利用できます。」 / Twitter
- ricosjp/monolish: monolish: MONOlithic Liner equation Solvers for Highly-parallel architecture
- 科学計算総合研究所 (RICOS Co.Ltd.)さんはTwitterを使っています 「debパッケージ、またはDocker環境での導入をサポートしています。 対応ライブラリ、データ型、行列フォーマット、ソルバは今後増やしていく予定です。 詳しくはドキュメントをご覧ください。 https://t.co/p5EYyHpbS8」 / Twitter
- 科学計算総合研究所 (RICOS Co.Ltd.)さんはTwitterを使っています 「debパッケージは以下の環境での動作をサポートしています。 ・Intel CPU ・AMD CPU ・NVIDIA GPU 付属のビルドスクリプトを用いれば以下の環境でも動作します。 ・IBM Power ・NEC SX-Aurora TSUBASA ・ARMv8 ・Fujitsu A64fx 今後、Intel Xe、AMD RADEONへの対応を行う予定です。」 / Twitter
Wikipedia
- 擬似逆行列 - Wikipedia
- Moore–Penrose inverse - Wikipedia
- Roger Penrose - Wikipedia
- 組合せ数学 - Wikipedia
- 二項係数 - Wikipedia
- カハンの加算アルゴリズム - Wikipedia
Zenn
- CGのための数学
- JavaScriptの数値計算はどれくらい正確なのか
- 線形代数と確率過程の話
- 三角関数の話
- 疎行列とベクトルを掛けたい貴方に
Qiita
- 線形代数を学ぶ理由 - Qiita
- モンテカルロ法における境界条件の扱いについて - Qiita
- 数値計算の研究をしている学生が"数値計算に潜むとんでもないリスク"について話してみる - Qiita
- Potts模型のモンテカルロシミュレーションコード - Qiita
- 高速フーリエ変換の実装を難しそうかなと思っている方が、なんだ簡単じゃないですか!! となるための実装講座です - Qiita
- 離散フーリエ変換(DFT)の仕組みを完全に理解する - Qiita
- numpy そっくりなヘッダオンリー C++ ライブラリ NumCpp - Qiita
- ロボ太さんはTwitterを使っています 「見たら「ん?」となるエラーバーのグラフの話の記事を書きました。こんなグラフを見かけたら「ん?」と思いましょう。ちなみに振動を含む緩和過程でエラーバーを過剰推定するのは僕が実際に経験したことです。 https://t.co/xsqKusgERN https://t.co/oz7FAW0q62」 / Twitter
- 見たら「ん?」となるエラーバーのグラフ - Qiita
- hrk先生さんはTwitterを使っています 「@kaityo256 @k_nitadori 悲しいことに、このようなグラフは論文査読や、査読を通ったはずの論文誌でも良く見かけます。さらには、エラーバーはSDと書いてあるのに上下非対称のものもあります。」 / Twitter
- ロボ太さんはTwitterを使っています 「先のQiita記事、「指数関数に振動が乗っているとノイズと区別がつきにくい」というのがわかりにくかったみたいですね。このグラフ、Data Aが指数関数+正弦波で、Data Bが指数関数+ノイズです。観測間隔が周波数より長いと両者の区別がつきづらいのがわかります。 https://t.co/8WfkNuTacP」 / Twitter
- ロボ太さんはTwitterを使っています 「これ、フーリエ変換すれば変なピークが立つので振動に気付くわけですが、そもそも「振動が乗っている」可能性に思い至らないとフーリエ変換しようとはしないでしょう。その場合でも、ちゃんとエラーバーをつければData Aではエラーバーが大きすぎるので「何かおかしい」と気づくことができるわけです。」 / Twitter
- ロボ太さんはTwitterを使っています 「うーん、振動が乗ったデータのエラーバーの話、「データ間の相関」が本質で、「サンプリング周波数が大事だよね(標本化定理)」という話が本質ではないんですよ。例えばこの二つのデータ、片方はランダムで、片方はパイこね変換ですが、似たような感じに見えますよね(続く) https://t.co/7IxA2w9mNb」 / Twitter
- ロボ太さんはTwitterを使っています 「で、それぞれ100個ずつ平均して分散もとめてエラーバーつけると、Data Aはまぁ普通かな、という感じだけど、Data Bは「ん?」と思うじゃないですか。実際、Data Aは100個中69個が平均にエラーバーがかかっててるのに対して、Data Bは48個で、「ん?」と思うわけです。 https://t.co/JtvCt6NCAb」 / Twitter
- ロボ太さんはTwitterを使っています 「「見たら「ん?」となるエラーバーのグラフ」の記事に、パイこね変換の例を追加しました。この記事のテーマは「エラーバーからデータ間の相関に気づく」ことであり、「サンプリング周波数が大事だ(標本化定理)」ということではありません。 https://t.co/fd39kqmSv8」 / Twitter
- 超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita
- 目的関数、コスト関数、誤差関数、損失関数いろいろあるけど、なにが違うのかを検討 - Qiita
- FDTDで電磁界解析 - Qiita
Twitter
数式処理
- 三谷 純 Jun MITANIさんはTwitterを使っています 「コンピュータによる数式処理は基本的にルールベースですね。 Mathematica の開発者の一人による、積分計算の裏側についての話。 350のルールで教科書に載っている積分の式の99%に対応できたとか。その後、6700以上のルールの実装もなされたとか。 https://t.co/htkcSE9XzP」 / Twitter
- Wolfram JapanさんはTwitterを使っています 「Wolfram Alphaで積分計算の「ステップごとの解説」をご覧になったことはありますか. ものすごく複雑な代数的関数の不定積分を見事にやってのけてしまうあのアルゴリズム.裏で何をやっているか気になりませんか. 新しい手法を考案した開発者がその一端をこちらで解説しています https://t.co/3mnyN3w5Ok」 / Twitter
- New Methods for Computing Algebraic Integrals—Wolfram Blog
連立一次方程式・誤差
- 電子計算機の沼さんはTwitterを使っています 「でもコンテナに行列ファイル突っ込むだけで連立一次方程式とか固有値が解けると答え合わせが楽になるんだ 自分でソルバを書いたときにコンテナに突っ込むだけでEigenなりLisなりが呼ばれて,簡単に答えを出してくれるとパッと比較しやすい」 / Twitter
- ひもになりたいにゃんにゃんさんはTwitterを使っています 「@Hishinuma_t 連立一次方程式の答え合わせは元の方程式に代入して確かめるんじゃダメなんですか?」 / Twitter
- kashiさんはTwitterを使っています 「@Oo_nyannyan_oO @Hishinuma_t 元の方程式に代入したらぴったり0になるけど、実はめっちゃ誤差が入ってる、なんてこともないわけではないです。 https://t.co/Viy4qApkoB」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「@mkashi @Oo_nyannyan_oO すごい例ですねw まぁそれにアルゴリズム間違っててうっかり収束してるけど他の問題では解けないとかもあるあるかなあと」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「@Hishinuma_t @mkashi @Oo_nyannyan_oO #Julia言語 なるほど A = [ 64919121 -159018721 41869520.5 -102558961 ] のとき inv(A) * A = [ 1.0 2.0 0.0 1.0 ] となって、第1列だけ偶然うまく行っているんですね。ちなみに A * inv(A) = [ 0.0 2.0 -1.0 2.0 ] こちらは全然ダメ。 https://t.co/dQnvwBmT82 https://t.co/hyqSuah3VQ」 / Twitter
- kashiさんはTwitterを使っています 「@genkuroki @Hishinuma_t @Oo_nyannyan_oO この例題に関してはいろいろな見方があると思いますが、当然真の残差は0でなくて、残差の計算にも誤差が入って0になってしまうところが面白いです。あと、行列aの全成分を有理数にするにはRational.(a)と書けばいいんですね。勉強になります。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「ゲーデル数があるので前半は正しいけど、後半は帰着の方法を見つけることは決定不能なのでね。 QT必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」 / Twitter
- 成田 悠輔さんはTwitterを使っています 「線形代数はなぜ重要な基礎なのか?一つの答えは「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というもの。データと向き合う統計学や機械学習で線形代数が活躍する理由もデータが映し出す世界の解けなさ故だろう」 / Twitter
- Shinji KonoさんはTwitterを使っています 「線形代数/連立方程式は確かに強力なのだが、それは定式化の一つで、数学に必要なlong shotに向いてるかというとそうでもない。ガロア理論もアルティンは線形代数使うのだが、五次対称群が可解群でないのを示すのには使ってない。線形代数でできるってのが主張なはずだが…」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「線形代数の重要性は否定しないけど、連立一次方程式に関係しない決定可能問題なんて幾らでもありそうで、「必ず体系的に解ける数学の問題は連立一次方程式だけであって、その他のあらゆる数学は解けない問題を線形代数に帰着しているから」というのは、過度の一般化と感じる。 https://t.co/zRwZHGK325」 / Twitter
- GengaQ SurvivoR@11/16返却さんはTwitterを使っています 「行列に変数入れたら途端に難しくなるのはそう 対角化は本質的には非線形の問題なので」 / Twitter
ルベーグ積分
- Shinji KonoさんはTwitterを使っています 「ルベーグ積分っていうけど、ある意味普通の面積の計算で、測度論が入るとわけわかに。そこでは集合論は必須。そこで一階述語論理を出したのは歴史的な悪手で、高階直観論理が正解だった。で、それは圏論と同じだから…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「岩波の現代数学概論は、それを中途半端にやった感じだな。」 / Twitter
対数の略記
- ふぁぼん(Фабон Ильич Фаворский)さんはTwitterを使っています 「自然対数をlnに揃える、一方で常用対数もlcか何かに揃えるのが一番マシかもしれん 双方に配慮するってのは感情論だけど、表記の問題なんて所詮「慣れ」とか感情論なんだから」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「@syobon_hinata 常用対数には既に「lg」という略記がありますよ」 / Twitter
- ふぁぼん(Фабон Ильич Фаворский)さんはTwitterを使っています 「@mod_poppo 知りませんでした……(lnに比べてどれだけ浸透してないのか……)」 / Twitter
- さろげーとさんはTwitterを使っています 「@syobon_hinata @mod_poppo ISO 80000-2だとlgが常用対数なんですけど、計算機分野ではlgで二進対数を表すんですよね……(ISO 80000-2で二進対数はlb) やっぱり曖昧さ回避のためにはlcが一番いいかと」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「えぇ……」 / Twitter
histric
histric-1
- FFFumihiro MMMatsuiさんのツイート: "三角関数の件、単純に角度を突っ込んだら円の上での縦or横を返す関数っていう、それだけで色々な場面で便利な事は伝わりそうな気がするけど、不要論が出まくるのは、なんか加法定理とか倍角公式とかあたりが「あの謎の呪文の空欄を埋める科目が三角関数ってジャンル」的なイメージが根付いちゃうのかな"
- FFFumihiro MMMatsuiさんのツイート: "それはまあ原因は不要論自体よりも、三角関数のテストで高得点をとろうと思うと三角関数とは何かを掴むのに時間をかけるより「三角関数=加法定理や倍角公式のコンボ技の構成要素」として暗記する方が有利になってしまうっていう、なんかそういうレギュレーションの抜け穴みたいなのに起因する気がする"
- FFFumihiro MMMatsuiさんのツイート: "それでまああのコンボは「三角関数とは何か」みたいな基礎とは関係なくて、教科書で基礎的な扱いで習うけど本来はたぶん結構応用的なものな気がするし、確かに進路によってはその後一生使わないだろうし、「三角関数ってなんかあの謎コンボ覚えさせられるけど一生使わないやつでしょ」ってなるのかもな"
- FFFumihiro MMMatsuiさんのツイート: "高校課程までの数学はわりと全般的に暗記ゲーの方が強くなっちゃう面あるよなあ。かといってテストを全部証明問題にするわけにもいかないだろうし現実的には中々どうしようもないんだろうな"
- FFFumihiro MMMatsuiさんのツイート: "僕は定期テストとか存在しなかったから実際の感覚はよく知らんけど(なので偉そうに思ってる事言うとちょっと後ろめたさある) それでも数学は結構暗記してた部分(実際に三角関数関連とか)あるし高校課程までの数学で暗記というチート技が割と効いてしまうのはまあ本来はあれなんだろうなって気する"
- FFFumihiro MMMatsuiさんのツイート: "たぶん僕は平均よりは高校数学の範囲の内容を実際に使う場面が色々あって利益を享受したほうかなあと感じるけど、それでもなんか心の中で数学の一部に対して漠然と苦手意識みたいなのが残ってる箇所はちらほらあって、それはたぶん当時に暗記に頼って押し切った事がある箇所なのかなという感じはしてる"
- FFFumihiro MMMatsuiさんのツイート: "一方で数学って好きな人はとことん好きだよね。初対面で「〇〇論はお好きですか?では〇〇論は?」みたいな質問から始まって数十分くらい〇〇論についてマシンガントークが始まる事とかたまにあって、たぶん数学が超好きな人達の間ではそれで会話が始まるパターンもそんな珍しくないのかなと思ってる。"
- FFFumihiro MMMatsuiさんのツイート: "しかし今書いてて気づいたけど僕もなんか会話の切り出し方がそういう系って指摘された事が昔あったしぜんぜん他人の事言えないかもしれない。コミュ力ェ…だし"
- FFFumihiro MMMatsuiさんのツイート: "もちろん〇〇論とかから切り出すって意味ではなくて"
- Fadisさんのツイート: "三角関数の必要性云々は、悩んでいるなら「コンピュータグラフィクスでもやって3秒で燃え尽きてきてください」ってだけの話なんだけど、同時に非線形関数である三角関数をいかに計算から排除するかはコンピュータグラフィクス屋が全力で知恵を絞る部分でもある"
- Sheileさんのツイート: "sin/cosが無いと円を描く弾が撃てないし、atanが無いと自機狙い弾が撃てない。それに対数ができないとスコアシステムに困るし、行列ができないと3Dゲーム作るのに困る。英語ができないと新しい技術の取り込みや、DirectXのエラーを調べるのに困る。ゲーム作りたい人は、数学と英語やっときましょう。"
- 島鉄雄さんのツイート: "三角関数どころかガンマ関数もゲームで間接的に使われてる。 クォータニオンの Slerp の実装には acos が必要だけど、これのテイラー展開をウルフラムさんに聞くと、ポッホハンマー記号なるものが出て来て、それの計算にガンマ関数が使われてた。 面白そうな関数だけど、これ以外の使い道を知らないw… https://t.co/k6HmmOWMQC"
- mはげさんのツイート: "30年前の名著「数値計算の常識」を読んでたらBASICで0.01を10000回足したら100.003になるとか書いてあった。まあ昔のPCなんてそんなものかなと思いながら、Visual Studio 2017で試してみたら同じ結果だったw… https://t.co/f1ZQXlojRv"
- 渋川よしきさんのツイート: "昔のの数値計算と同じ浮動小数点数の計算をやって、同じように計算誤差が出るぞってやつ、ある意味コンピューターサイエンスの教育の敗北では・・・という気がしないでもない(そういえば、GoならわかるシステムプログラミングでIEEE754は扱おうか考えてやめたんだった)。"
- c1815(内閣調査室 技官)さんはTwitterを使っています: 「工学的に虚数の存在意義はオイラーの公式により三角関数を指数関数で表記できる事で、電気工学で広く使われる有用な道具です。「虚数の実現が厳しい」とか訳がわかりません。貴方もその存在の恩恵を受けています。 https://t.co/4PKz0q2HEj」 / Twitter
- 部品(本田翼)さんはTwitterを使っています: 「1960年代に発表されたフーリエ変換アルゴリズムの一般化であるCZ変換に対して、逆フーリエ変換の一般化アルゴリズムは未解決だった。それが50年かけてついに発見された|・ω・`)フムフム https://t.co/QzDtngRKFh」 / Twitter
- Engineers solve 50-year-old puzzle in signal processing
- 応用数学たん(旧ファイナンスたん)さんはTwitterを使っています: 「ブラックショールズ方程式は解析解が出ているので、超高次元の偏微分方程式を数値計算するアルゴリズムの実験にも使われているのです。 確率解析学、数理ファイナンス、機械学習、数値解析 ☆3」 / Twitter
- 三崎律日@「奇書の世界史」発売中さんはTwitterを使っています: 「「ループを使わずに1から100を順に出力するコードは書けますか」という質問に、凄腕たちがプログラム的な技巧を凝らした答えをする中、MSのデータサイエンティストが「1000/(999^2)を300桁まで計算すると答えが0.01002003…099100になるよ」とサラッと答えてて、どんな脳の使い方したら思い付くのそれ https://t.co/Ng3dv4ZS4K」 / Twitter
- 三崎律日@「奇書の世界史」発売中さんはTwitterを使っています: 「元スレッド https://t.co/donuG6acMg その他の回答も含めて和訳してくれてる人 https://t.co/s0cMrfhD0s どんな頭の使い方したか類推してる人 https://t.co/xaR4sXBe5L」 / Twitter
- How to print 1 to 100 in C++ without a loop, goto or recursion - Quora
- ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?に対するIchi Kanayaさんの回答 - Quora
- 「ループ・再帰・gotoを使わず1から100までの数値を印字する」Conner Davis 氏の回答の考察 - Qiita
histric-2
- 社会人でもOSを作りたいさんはTwitterを使っています: 「学生「マクローリン展開なんて,何の役に立つんですか?計算機で一瞬でsinを計算できるじゃないですか」 ???「sinの計算を実装できるようになる。計算速度と精度のバランスを自分で設計したりできるぞ」 (Newlibのsinの実装を読んだ感想)」 / Twitter
- とみながたけひろさんはTwitterを使っています: 「@uchan_nos 近似計算するなら別に定義域全体で収束する必要ないから収束遅いマクローリン展開なんて役に立たないじゃないですかー(煽り返し」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「Newlibのsinの実装を読むと,sin(x)のxが非常に小さいときはsin(x)~xという近似を使って,それ以外はマクローリン展開で計算してるぽい。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「数学詳しい人に教えて欲しいのですが,Newlibに出てくるこの近似って妥当なんですか? sin(x+y) = sin(x) + sin'(x')*y ~ sin(x) + (1-x*x/2)*y sin(x+y) = sin(x) + sin'(x')*y までは分かる。(これも厳密には近似なんだけど,まあ納得) ~ sin(x) + (1-x*x/2)*yが分からない。」 / Twitter
- ねっけつさんはTwitterを使っています: 「@uchan_nos こんにちは。TLで今見かけただけですが、sin'(x) = cos(x) のマクローリン展開を1次の項で打ち切ったものではないでしょうか。」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「@nekketsuuu なるほど。1/2がどこから来るかなと思ったんですが計算してみたら確かにそうなりました。yが十分小さければいい近似になりそうです。」 / Twitter
- ねっけつさんはTwitterを使っています: 「@uchan_nos (すいません1次じゃなくて2次でした)」 / Twitter
- Nakatani ShuyoさんはTwitterを使っています: 「@uchan_nos sin の微分 cos を同様に展開してます」 / Twitter
- 社会人でもOSを作りたいさんはTwitterを使っています: 「マクローリン展開じゃなくてテイラー展開だった」 / Twitter
- kashiさんはTwitterを使っています: 「この本に、Newton法が解に収束せずに無限ループに陥る例を扱った章があって、「不安定周期解ではあるが丸め誤差のせいで安定的にその周期解に留まる」という事例が紹介されてた。 https://t.co/QlSD1JeVAd」 / Twitter
- 米津 アンさんはTwitterを使っています: 「矢崎成俊 著『実験数学読本』 色んな数学モデルを寄せ集めた本です。本書を読めば、わたしたちの身の回りからよりたくさんの数学を見出せるようになれるでしょう。扱っている数学は大学1年レベルですが、高校生が読んでも「数学の力ってすげー!」を堪能できる内容だと思います😆 #今日の一冊 https://t.co/huYujiZNNw」 / Twitter
- kashiさんはTwitterを使っています: 「で、そもそもNewton法で解に収束せずに周期解に陥るとき、ほんとに不安定なのか、という興味を持ってあれこれいじってたら、こんな例を見つけた。方程式x^3-x+1.5=0に対するNewton法で初期値を1.5018719167693075...とすると、安定な3周期解になる模様。 https://t.co/bItfhPISsu」 / Twitter
- kashiさんはTwitterを使っています: 「Newton法の反復が周期的になる例は教科書によく載っているけどたいてい不安定で、実際には解に収束するか無限に発散するかどちらかだ、みたいなのをどこかで見た気がしてて(妄想かも)、そうでもなくて周期解に陥ってしまう場合も普通にあるんだなあと思った、という話。」 / Twitter
- kashiさんはTwitterを使っています: 「Newton法の反復の安定周期解って面白い発見じゃね?と思って調べてみたら先行研究があって、方程式が多項式で全ての解が実なら安定周期解は存在しない、複素解を持つ場合は普通に存在する、とのこと。 https://t.co/BaDetPVw2T」 / Twitter
- S0002-9947-1986-0849472-6.pdf
- FadisさんはTwitterを使っています: 「確かに微分可能な関数しか使っていない 確かに自動微分の結果で最急降下法にかけると解に収束する この微分を手で求めろという問題が試験に出たら単位を取れる自信がない みたいなのがゴリゴリまわってるのを眺めてる。計算機ばんざい」 / Twitter
- だよもんフレンズは転職したいさんはTwitterを使っています: 「@math153arclight Python以前に、そもそもintel PCで計算してたら意味無い。カハン教授のparanoiaテストでバグるのがまだ直ってない、と言うか直す気無くてitanium使え、って言ってる。MIPSやSPARC, HP Precisionアーキを使おう!」 / Twitter
- ロボ太さんはTwitterを使っています: 「数値計算をするときには、まず解析解がわかる系を計算して、答えが一致するか確認するといいですよ(数値解と解析解が微妙にずれてるグラフを見ながら)」 / Twitter
- FadisさんはTwitterを使っています: 「第1種ベッセル関数を誤差逆伝播するのに何とかしてこれを微分できないかな、と思ったんだけど台形公式でバラして微分すると動くけど死ぬほど遅いヤツが出来て、テイラー展開で近似して微分すると次数上げても誤差が大きくて困ってた所に神のような論文を見つけてしまった https://t.co/dookUeJZp6」 / Twitter
- The Faster Methods for Computing Bessel Functions of the First Kind of an Integer Order with Application to Graphic Processors | SpringerLink
- FadisさんはTwitterを使っています: 「次数を上げて行くとx=0近傍の吹っ飛んでる部分がだんだん広がって行くんだけど、10次でもこれだけ食いついてくる https://t.co/5Z6xpSHAzj」 / Twitter
- FadisさんはTwitterを使っています: 「というかベッセル関数ってn-2次とn-1次の計算済みの値を使ってn次の値を高速に計算できるんだな…。このため0次と1次の場合だけ気合いで近似すれば任意のnについてn次の場合の近似が出来たことになる」 / Twitter
- いぐにすさんさんはTwitterを使っています: 「@fadis_ n-1とn+1とかもあったようなと思ってググった https://t.co/HRgJXUNipD」 / Twitter
- ベッセル関数(円柱関数)の公式あれこれ - 倭算数理研究所
- FadisさんはTwitterを使っています: 「@ignis_fatuus 微分公式あるやん… (圧倒的数学ちから不足)」 / Twitter
- いぐにすさんさんはTwitterを使っています: 「@fadis_ まあこれ数学ちからというより知ってるかどうかだから..」 / Twitter
- FadisさんはTwitterを使っています: 「お前解析的に微分求まるのかよぅ…。めっちゃ頑張ってまともな速度で数値微分する方法探してたのに https://t.co/KKL1Raw2TH」 / Twitter
- s.komataさんはTwitterを使っています: 「ハレー法は、ニュートン法の精密化(の一つ)である。それにしても、ここにもひょっこり顔を出すシュヴァルツ微分 https://t.co/K4HufevbIi」 / Twitter
- Halley's Method -- from Wolfram MathWorld
histric-3
- FadisさんはTwitterを使っています 「物理ベースな3Dグラフィクスでは全てのマイクロファセットについての積分が式について来て、反射ならマイクロファセットは完全鏡面反射する事にして出来るディラックのデルタ関数をぶつけて積分を潰せるけど、拡散はこの手が使えないからリアルタイムレンダリングで使うにはうまい近似が必要になる」 / Twitter
- ゆうなさんはTwitterを使っています 「今日ほど内積の偉大さを知った日はない。 内積は基底変換、内積はフーリエ展開、内積はカーネル、… #数学デーinN高」 / Twitter
- てぴ✨数学が大好きさんはTwitterを使っています 「@kawauSOgood リーマン幾何学をやるといいかもです(*´∀`)」 / Twitter
- FadisさんはTwitterを使っています 「幾何においては、内積が「cos求めたのと等価な計算を時間がかかる三角関数の計算を陽に行わずにできる」という性質があまりにも便利なのであった」 / Twitter
- 小清水さんさんのツイート: "いつか紹介しようと思っている、定数との掛け算方法についての論文。三角函数の周期性で x - n * pi/4 みたいな計算で誤差がたまらないようにするために、いろんなところで使われている手法: https://t.co/QSHxyXWpYB"
- MultFmacArith.pdf
- FadisさんはTwitterを使っています: 「解析的に解けない理由は思い当たらないけど解くのが辛そうな方程式をとりあえずMathematica Onlineに突っ込んで、ノートが沈黙するのを眺めて、やっぱり解くのはやめよう、となる作業」 / Twitter
- Teppei KuritaさんはTwitterを使っています 「Mitsuba2の微分可能レンダリングの簡単な例。目的となるレンダリング画像への誤差を最小化するようにシーンパラメータ(反射率等)を勾配法(SGD)等で最適化できる。左の壁は赤色が真値なのだが、適当な値で反射率を初期化しても最終的に真値に収束する。PyTorchとの統合可能。 https://t.co/xRCyO7hawW https://t.co/rniWlyVuol」 / Twitter
- Differentiable rendering — mitsuba2 0.1.dev0 documentation
- Kazuho OkuさんはTwitterを使っています 「@shirouzu 指数関数なので、新規を積分した累積の低は同じになるので、それを片対数グラフにプロットすると、同じ傾きになるかと」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho 確かにその通りですね…指数は微分しても同じでした(笑) (ただこの調子だと、 (重症+死亡者) / 感染者、の比率は低下していくということで良いのですかね)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho いや1.1倍で同じなら、1.1^n day倍になるだけなので、比率は変わらないですね。」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「直接の知人を1ホップって言おうと主張するの、確立された技術用語に別の定義を持ち込もうとしているという点で、爆発的な指数関数的増加を「指数関数的増加」に言い換えるの同等に非科学的な主張じゃないのかな cf. https://t.co/vZqfEWqV89」 / Twitter
- ホップ (ネットワーク) - Wikipedia
- monochromeさんはTwitterを使っています 「@miura1729 @uint256_t modって被非除数と除数の符号によって4パターンぐらいあって、しかも言語によってバラバラですよね。RubyとRust (LLVM) も違っていてハマった覚えが」 / Twitter
- Miura HidekiさんはTwitterを使っています 「@s_isshiki1969 @uint256_t modも割り算もバラバラですよね。その点、Common Lispは全部用意する(3パターン)という男らしさ」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「@miura1729 @s_isshiki1969 @uint256_t Schemeは6パターン網羅 (やりすぎ?) https://t.co/Ai69oiwjR6」 / Twitter
- SRFI 141: Integer division
- Masaki HaraさんはTwitterを使っています 「・割って掛けたらきっかり元に戻ってほしい→有理数ライブラリでいけます ・ルートして2乗したらきっかり元に戻ってほしい→代数的数ライブラリでいけます ・logしてexpしたらきっかり元に戻ってほしい→ちゃんとやるのは無理です」 / Twitter
- Miura HidekiさんはTwitterを使っています 「ReduceやMathmaticaみたいな処理にすれば多分できる」 / Twitter
- FUTATSUKI YasuhitoさんはTwitterを使っています 「@miura1729 記号処理というか項書換え系というか... 近似値が欲しいと言われるまで数値にしない :)」 / Twitter
- tkrさんはTwitterを使っています 「行列積、転置行列作ってメモリアクセス局所的にするだけで計算時間半分になった メモリキャッシュ意識したらそんな変わるんか…」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「numpyだのscipyだのJuliaだのMatlabだのにBLASのラッパーみたいなI/Fの微妙に違うものが量産されたのは完璧にHPCの敗北で,もっと下のレイヤでHPCが主体となって早くBLASを作り直せば多種多様な異母兄弟みたいなのが生まれずに済んだんじゃないかと最近強く思う」 / Twitter
- 電子計算機の沼さんはTwitterを使っています 「あんなFortranで書かれた型縛りが強すぎるものを2020年にもなって後生大事にいろんな言語で使うためにみんなでラッパー書いて使おうっていうのが間違っている」 / Twitter
histric-4
- Shinji KonoさんはTwitterを使っています 「まあ、色々意見はあるが 微分方程式はexp xをかけて積分 だけで院試はだいぶ違う。未定係数の問題を出したところは知らん。畳み込み積はみた。あれは知らんと解けん。知らないのはダメだとは思うけど。」 / Twitter
- FadisさんはTwitterを使っています 「積分を「解析的に解けるラッキーな関数の解析的な積分の方法を覚える」ところから学び始めるの自体が、あまり筋の良いシナリオではないんだよな」 / Twitter
- horiemさんはTwitterを使っています 「格子法って有限要素法とかも含まれるのか (グリッドの差分法だけを指す言葉かと思ってた)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「差分法もデルタ関数でガラーキン近似してるだけなので実質スペクトル法(?)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「分野にも計算機にも寄らない共通の数値計算の基礎なんて微積と関数解析くらいしか無いよな(´・ω・`)」 / Twitter
- ど ね ( 。 •̀ _ •́ 。 ) ( 群 )さんはTwitterを使っています 「これを利用して多項式の積をFFT使って高速に計算する方法があった気がしますね(畳み込みの Fourier 変換はそれぞれの Fourier 変換結果の積になるので)」 / Twitter
- tsujimotter ロマ数本好評発売中!!さんはTwitterを使っています 「そうか。多項式の積って畳込みそのものだったんですね。 https://t.co/Im0SY5RIFZ」 / Twitter
- κeenさんはTwitterを使っています 「昨日rust-jpのslackで整数の平方根がとりたいけどメソッドがないって話題が上がってたので(非負)整数の開平計算実装してみた https://t.co/jsFSgjZLNg アルゴリズムはWikipediaでも参考にしてみて。 開平法 - Wikipedia https://t.co/L2mNx0H1re」 / Twitter
- extract_sqrt.rs
- 開平法 - Wikipedia
- Shinji KonoさんはTwitterを使っています 「学部の授業で連続だが至る所で微分不可能な関数で、三角波を細かくしていく、するとゼロになる。失敗。そこで諦めないで、それを全部足すとできるってなのが印象に残ってる。フラクタルみたいなので理解してたので解析的書けるんだ的な面白さがあった。」 / Twitter
- Iwao ShumpeiさんはTwitterを使っています 「自称文系という中には、微分といわれると冷や汗をかき、積分なんていわれたら一日中ブルーみたいな人がいるけれど、「いま時速○○だから××時間後には△△あたりに着くな」などいうとき、普通に物体の位置を速度の積分で導出しているのだから、実はほとんどの人は日常生活で初歩的な積分は使えている。」 / Twitter
- Iwao ShumpeiさんはTwitterを使っています 「物体の位置を微分したら速度、速度を微分したら加速度になる。当然ながら反対方向の加速度→速度→位置は積分。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「そういえばいたるところで微分できない連続関数のグラフってあったな。どんなに拡大してもカクカクしているという。」 / Twitter
- Genki TakiuchiさんはTwitterを使っています 「@shinji_kono フラクタルな曲線全般的にそんな感じですけど、多分ワイエルシュトラス関数かな」 / Twitter
- Shinji KonoさんはTwitterを使っています 「いたるところ不連続な関数を積分して発散しなければ、いたるところで微分不可能な関数ができるじゃん。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「関数解析は自分的に必要性がよくわからなくて… でも、機械学習系に入ってきてるのか。収束とか問題になるしな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「部分積分はけっこうパターンマッチ的にめんどくさい技術で、名前がついていて「ここで使うぞ」と身構える感じ。プログラミングだとメソッドを抜き出すrefactoringに近い。」 / Twitter
- Yusuke Hayashi 林 祐輔さんはTwitterを使っています 「渡辺澄夫先生の講義ノートと講演スライド.「統計的推測の問題が物理学と似ている構造を持つのは,単なる偶然なのでしょうか.それとも, 観測から真の分布を推測する,ということは物理学の一部なのでしょうか.」 1. https://t.co/64whBKegAn 2. https://t.co/GIULKJlnp0 https://t.co/qiaf6Uj3kh」 / Twitter
- KJ00007905533.pdf
- Mathematical Foundation of Statistical Learning - statphys20180312.pdf
- だめぽラボ@技術書典9さんはTwitterを使っています 「ベクトルの要素ごとの積といえばzipWith (*) v1 v2 ……え、長い?」 / Twitter
- だめぽラボ@技術書典9さんはTwitterを使っています 「ベクトルの要素ごとの積が利用されるのって「愚直にループを回すと遅い」問題か「愚直にループを書くと字面的にうるさい」問題の結果だと思ってる」 / Twitter
- yuyabu🎄🎁さんはTwitterを使っています 「実践コンピュータービジョン前書き >主成分分析により次元を削減するという応用から入って、主要な固有値と基底ベクトルで近似するために行列を変換していくんだな、と理解してからは目の前が開けた経験があります この境地になりたい」 / Twitter
- てらモス♋️さんはTwitterを使っています 「メモリからデータを取ってくるのがCPUから見てとても遅い現代において、読み込み→計算→書き込みを単位としてモジュール化するのは悪手で、eDSL作って計算部分だけまとめる機構に流れるのは自然で、そうなるとC++だとuBLASみたいな事になっちゃうんだよね(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「そもそもスペクトル法にしておけば、微分ってのはikかけるだけの操作なんですよ…(´・ω・`)」 / Twitter
- てらモス♋️さんはTwitterを使っています 「スペクトル法使えるの、普通には長方形か円柱か球面しか無いんだよね」 / Twitter
- ゆうだい.jlさんはTwitterを使っています 「なんかそういえば,「ベクトル演算の画期的な新記法が発明された!ファインマンダイアグラムに匹敵する新発明!」みたいな論文,あれ読んでないけどどうなったの?」 / Twitter
- ゆうだい.jlさんはTwitterを使っています 「これだ. https://t.co/QLHuauuuZ7」 / Twitter
- 1911.00892.pdf
- だめぽラボ@技術書典9さんはTwitterを使っています 「多項式、いっそ係数のリストとして表記したほうが関数との紛れがなくなる」 / Twitter
- dif_engineさんはTwitterを使っています 「@mod_poppo 不定元も「形式和」も使わないと結局そう定義することになりますね.」 / Twitter
- uint256_tさんはTwitterを使っています 「リザバーコンピューティング よくわからない」 / Twitter
- てらモス♋️さんはTwitterを使っています 「リザバー、先に適当な非線形発展を行う物理系とその系への入力と計測を用意して、その性質を調べて可能な計算のクラスを見て、自分のやりたい計算をその上に翻訳する操作的な認識(´・ω・`)」 / Twitter
- じ〜ま⊿🦀さんはTwitterを使っています 「微分方程式の理論に線形代数が出てくるとか初見殺しじゃね? 関数の集合をベクトル空間と見るっぽい雰囲気は感じとった」 / Twitter
- Hideyuki TanakaさんはTwitterを使っています 「数学全然知らんけど、積分って解析的に解けない式が多すぎて、高校までは数少ない単純なルールで計算できるパターンを覚えてパターンマッチする問題しかなかった記憶だし、それ以降は情報に進んだから数値的にやりゃあええやろみたいになってもうたな。」 / Twitter
- 👻 道化師 🃏さんはTwitterを使っています 「ホント、やっぱり数学はプログラミングとセットでやってくれないと困るよなぁ。ある計算をするのに複数の求め方がある時に計算量的にはこっちの式がいいだとか、計算誤差を最小化する為にこっちの式が望ましいだとか、そういうところまでセットでやって欲しい。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「個人的にわかりやすかった行列の積の直感的な説明: 行列 Aと行列Bを掛ける (AB) とき、Aの各行は「関数」と考えることができ、Bの各列は呼び出しの「引数」と考えることができる。引数がいくつあるかはA(の幅)によって決まるが、データの個数はB(の幅)によって決定する。 https://t.co/i9jEgihbPO」 / Twitter
- A Programmer’s Intuition for Matrix Multiplication – BetterExplained
- 解答略さんはTwitterを使っています 「微分コンサルは、いらんねん。合成関数の微分公式とかいう神器を使えば何でも微分できるし むしろ欲しいのは積分コンサルやねん。 * t=tanx/2に置換するやつ * t=x+√(x^2+1)に置換するやつ * 楕円関数snを使うやつ * Γ関数で書けるやつ * 超幾何級数にするやつ みたいにコンサルが言ってくれると便利」 / Twitter
- ゆうがたさくはなさんはTwitterを使っています 「@kaitou_ryaku まず積分が可能かどうかを教えてくれるコンサル…」 / Twitter
- QDくん🇺🇸米国株/機械学習/Python/シストレ/金融工学/FIRE/副業さんはTwitterを使っています 「Numpyのチートシートです。ご査収ください。 https://t.co/Id38FTbpyX https://t.co/WXlfeiyCOH」 / Twitter
- NumPy Cheat Sheet: Data Analysis in Python - DataCamp
- ゆとりーなさんはTwitterを使っています 「やる夫で学ぶディジタル信号処理 https://t.co/rJOQ6NRtje 必要に迫られて趣味でデジタル信号処理を学んでたら行き着いたんだけど、そこらへんの教科書の5000兆倍わかりやすいと思ってよく見たら、やる夫スレ魚拓じゃなくて東北大学工学部の講義補助資料だった。」 / Twitter
- やる夫で学ぶディジタル信号処理
SVM
- SVMの理論的な話 - genkami.github.io
- 機械学習アルゴリズムのしくみを解説 「サポートベクトルマシン」と「k-means法」とは:CodeZine(コードジン)
- langstatさんはTwitterを使っています 「機械学習のパラメータチューニングを「これでもか!」というくらい丁寧に解説 - Qiita https://t.co/4huHGnSLUz 分かりやすくて、いい感じ。正則化に関する可視化はわりとよくあるけど、、、SVMのハイパーパラメータ(gamma, C)の可視化はそんなに見たことがない気がする(忘れている可能性ありw)」 / Twitter
- 機械学習のパラメータチューニングを「これでもか!」というくらい丁寧に解説 - Qiita
ビタビアルゴリズム
その他
- ビタビアルゴリズム - Wikipedia
- 畳み込み符号 - Wikipedia
- HMM viterbi
- Forward filtering-Backward samplingによる単語分割でアンダーフローを防ぐ – ご注文は機械学習ですか?
- マルコフ連鎖とビタビアルゴリズム(HMM)を F# で。 - Bug Catharsis
- ビタビアルゴリズムをpythonで実装してみた - Screaming Loud
- ビタビアルゴリズム
- Viterbi アルゴリズム
- 無線通信における畳み込み符号化について
- 無線通信における畳み込み符号化について
- ボクにもわかる地上デジタル - 地デジ方式編 - 符号化
- 畳み込み符号のプログラムについて(C言語) - 畳み込み符号とビタビ復号のプログ... - Yahoo!知恵袋
- Viterbiアルゴリズムについて - プログラマ専用SNS ミクプラ
- ビタビアルゴリズム【入門】具体例で分かりやすく解説!(Viterbi)
- ページ 1
- あやしいサイコロと『隠れマルコフモデル』 | 株式会社フォワードネットワーク
- Viterbiアルゴリズム - 機械学習の「朱鷺の杜Wiki」
動的計画法
blog
- 動的計画法でフィボナッチ数列の計算を速くする。 - from scratch
- Matrix-chain multiplication problem - Lilliput Steps
- なぜdp「やるだけ」なのか ~動的計画法について考える その1~ - kuuso1のブログ
- 競技プログラミングにおける動的計画法更新最適化まとめ(CHT, MongeDP, AlianDP, インラインDP, きたまさ法) - はまやんはまやんはまやん
- DPとは何か フィボナッチで - 簡潔なQ
- 連鎖行列積問題 : がぶ飲みミルク珈琲
- Tech Tips: 連鎖行列積を動的計画法で解く
- 第13回 NVIDIAが提供する数学ライブラリ | G-DEP
- DPはDAG上の最短経路ではない - うさぎ小屋
PDF
- PowerPoint Presentation
- バイオインフォマティクスⅠ
- shiryou-20160906-4.pdf
- untitled
スライド
- 動的計画法を極める!
- 動的計画法
- 動的計画法 / Python 11 - Speaker Deck
GEMM
- Nehalemアーキテクチャ向けDGEMMの高速化: 事例 | NEC
- dgemm を使用した行列の乗算
- dgemm によるスレッド化の効果の測定
- インテル® MKL の BLAS と DGEMM ルーチンを使用したインテル® AVX の最適化 | iSUS
- dgemm によるスレッド化の効果の測定
- gemm-一般行列・行列積 VI - LabVIEW 2017ヘルプ - National Instruments
- shinichiro hamajiさんのツイート: "すべてのアクセラレータ作るベンダーに一番自信ある設定でGEMMやった時の数字を公表する義務を課してほしい"
BLAS
Wikipedia
- Basic Linear Algebra Subprograms - Wikipedia
- OpenBLAS - Wikipedia
- LAPACK - Wikipedia
- LINPACK - Wikipedia
- ロボ太さんのツイート: "「ソフトウェアテスト」というべきか微妙ですが、HPLがちゃんとできるということは、ハードウェアベンダーがちゃんとしたBLAS職人を抱えている証左になります。昔は知りませんが、現在の石で行列行列積を書くのは非自明な技術です。自分でDGEMMを書いてみれば、その性能の低さに驚くと思い… https://t.co/PQ4jZPQTWD"
- ロボ太さんのツイート: "科学技術計算の多くはBLASに依存しており、その基本はDGEMMです。DGEMMはアーキやSIMD幅に応じて書き直す必要があります。HPLをちゃんとやるというのは「そのアーキでちゃんとしたBLASを用意します」という、ベンダーの意思表示になります(もちろんこちらはBLASはBLA… https://t.co/rYHdoO34wP"
- Hideyuki Tanakaさんのツイート: "BLAS専用ハードとかないのは、BLASってめちゃくちゃ関数がおおいから専用ハードなんて作っても意味があんまないからじゃないのですかね…。DGEMM専用回路ですら汎用プロセッサと比べてたいしてメリットないんじゃないかと言われているのに。"
- Hideyuki Tanakaさんのツイート: "すでに現在のアクセラレーターってDP演算回路が全体の数割を閉めているらしいから、全部埋め尽くしても数倍にしかならないし、そもそもそれらにきちんと途切れることなくデータを物故見続けるためにはそれなりの量のバスと、キャッシュがどうやっても必要になるから、DGEMM専用回路でも2倍も行… https://t.co/w2fBpD3je0"
- Hideyuki Tanakaさんのツイート: "というのをDGEMM専用回路つくりゃいいじゃんという指摘を僕自身でしてみたときに思った。そんなこともないよっていうハード設計者の人がいらっしゃったらおしえてちょー(´・_・`)"
- Hideyuki Tanakaさんのツイート: "あとBLASで負荷が高いのはLevel3だから、それ以外はソフトで書いたほうがいいでしょっていう。Level2はどう考えても帯域ネックになるしな。"
- shinichiro hamajiさんのツイート: "PEZYのおかげでLINPACKというやつがDNNと違って単にGEMMやってるだけでなくてもうちょい大変なことをやってるという認識が持てたということがありました。以前はスパコンてGEMMお化けなんでしょくらいの認識だったというか、なんでスパコンで多体問題とか解けるのと今でもわかっ… https://t.co/KytNh0mxQb"
- BLASの簡単な使い方
- IBM Knowledge Center - BLAS 関数構文
Qiita
- 制御理論としての動的計画法 - Qiita
- 意外と解説がない!動的計画法で得た最適解を「復元」する一般的な方法 - Qiita
- 動的計画法(ナップサック問題) - アルゴリズム講習会
- Spaghetti Source - 連鎖行列積
- ダイナミックプログラミング
- できる動的計画法:ロッド切り出し問題 | プログラミング | POSTD
- chokudai(高橋 直大)さんのツイート: "多分DPを狭義に解釈してる人は「メモ化再帰はDPではない」みたいに言いそうだし、これは完全に競プロ方言だと思ってる。(メモ化再帰はDPです)"
- chokudai(高橋 直大)🌸🍆🍡さんはTwitterを使っています 「全探索→貪欲→動的計画法の順序で書いたのは初めてだけど、これはこれで良いのよね。 全探索→動的計画法がアルゴリズム的には繋がりが良いのだけど、貪欲を挟む事で、「自明な改善が出来ないケースでDPが有効」ってストーリー性を持たせやすくなる。」 / Twitter
- omuomuginさんはTwitterを使っています 「大学ではなぜか動的計画法で解きたい問題のダメな方法として紹介されたので、しばらく末尾再帰以外の再帰は悪手なんだと思ってた。」 / Twitter
- Kota Mizushima (on a diet)さんはTwitterを使っています 「@omuomugin 動的計画法で解きたい場合は、それは確かにナイーヴな再帰関数だとあんまり良い手じゃない気がします(メモ化再帰は使い所ありますが)。」 / Twitter
- Kenji OtsukaさんはTwitterを使っています 「@uint256_t 動的とか計画とか言うとわかりにくくなりますが、過去の結果を使って次の結果を求めるようにしたのが動的計画法だと理解しています。」 / Twitter
PDF
- coding_06.pdf
- ohp12.dvi
- nlp-programming-ja-04-ws.pdf
- アラインメントはグラフで表現できる
- <4D6963726F736F667420506F776572506F696E74202D2091E630338FCD8CEB82E892F990B395848D86979D985F2E70707478>
GitHub
- Yuji-Kosugi/sysele
- yk-tanigawa/201410HMM: HMM
- ビタビ複号を行うプログラム
探索
その他
- antirez/rax: A radix tree implementation in ANSI C
- 興味深いデータ構造:BK木 | プログラミング | POSTD
- 米Microsoft、最近傍探索ライブラリ「Space Partition Tree And Graph(SPTAG)」をオープンソースで公開 | OSDN Magazine
- Sonic - 軽量でスキーマレスな検索システム
- Googleが概念ベクトルを使用した画像検索を研究
- 最小二乗法 機械学習 - Google 検索
- 行列 微分 - Google 検索
- ユークリッド距離 - Google 検索
- κeenさんはTwitterを使っています 「赤黒木を定義するときに赤と黒の2値を表現するためにパディング含めて32bitを消費するの無駄だなーと思ってたけどRustならenumのdescriminant mergingがあるからメモリが無駄になる訳ではないな。C/C++でも手動で同様のことできるはず。 https://t.co/ki4f9iITtV」 / Twitter
- Rust Playground
- リバーシプログラムの作り方 サンプル
- 近似最近傍探索ライブラリFaissの4bit PQアルゴリズムについて、ARM CPU上での動作を60倍程度高速化しました - Fixstars Tech Blog /proc/cpuinfo
- KampersandaさんはTwitterを使っています 「作りました。シンプルで強いFrontCoding文字列辞書のRust実装です。 https://t.co/EEVPA0LCuA」 / Twitter
- kampersanda/fcsd: Front-coding string dictionary in Rust
- KampersandaさんはTwitterを使っています 「FrontCoding辞書は単純に先頭から読み込むだけのデータが多いので、文字列圧縮が簡単に適用できたりして素敵です」 / Twitter
法則発見
- 1_270.pdf
- 機械学習 - Wikipedia
- Microsoft Word - pantel_web_v2.docx - P2-30.pdf
- 058.pdf
- 15群(○○○)-8編 - S3gun_03hen_03.pdf
- 機械学習とは?教師あり・教師なし・ 強化学習・半教師あり学習のアプローチ法も説明 | データサイエンスコラム|アガルートアカデミー
- 機械学習に欠かせない、特徴量とその選択手法とは | AI専門ニュースメディア AINOW
- Microsoft PowerPoint - 01Intro.ppt - 01Intro.pdf
文字列
e2rtre2
- T.Mieno@無職さんはTwitterを使っています 「"Palindromic trees for a sliding window and its applications" というタイトルの論文が IPL で公開されました: https://t.co/lfVJ5INfnB」 / Twitter
- Palindromic trees for a sliding window and its applications - ScienceDirect
- KampersandaさんはTwitterを使っています 「e2rtre2なんて素敵な名前のデータ構造があるのね」 / Twitter
- python 文字列 flatten - Google 検索
- v8 rope 文字列 - Google 検索
- v8 rope 文字列 flatten - Google 検索
- Kazuho Okuさんのツイート: "wwww これメンテし続けてる情熱がすごい! これでうまく行くのは、数値に変換する前にflattenしてるってことですかねぇ… "
- Takuo Kihiraさんのツイート: "@kazuho さん、さっき @yosuke_furukawa さんに教えてもらったんですが、V8 で rope で切り貼りされた文字列を flatten するためにはこうすればいいらしいですよ! https://t.co/Nt1LGTRwt0"
- flatstr/index.js at master · davidmarkclements/flatstr
- Takuo Kihiraさんのツイート: "そうだと思います。最適化で殺されそうですが、今度 disasm のコード覗いてみて、Rope を flatten する処理にどんなのがあるのか見てみますw… "
- お手軽に使える高速なSSE4.2専用文字検索ライブラリ - Cybozu Inside Out | サイボウズエンジニアのブログ
- 文字列アルゴリズムの学びかた - Hatena Developer Blog
- qrintfの最適化 - RuJIT開発日記
- h2o/qrintf: sprintf accelerator for GCC and Clang
- 最も割高なアンチパターン : 構造化されたデータを文字列関数で操作する「printfアンチパターン」について | プログラミング | POSTD
- 最近のruby-core (2016年7月) | Money Forward Engineers' Blog
- どれだけ速く文字列からスペースを削除できるのか | プログラミング | POSTD
- kmem_cacheさんはTwitterを使っています: "strncpy()・strlcpy()よりも使いやすくてセキュアなstrscpy()が追加されたと。 / “Linux 4.3-rc4 Kernel Released: Adds A New & Better String Cop…” http://t.co/ztQJvCSuRl"
- Hirochika Asaiさんのツイート: "strtok()にobsoleted by strsep()って書いてあるけど、strtok()とstrsep()の挙動が違う。macOSのstrtok()は連続するセパレータは省略してstrsep()は空文字を返す。POSIX的にはどっちが正しいんだろう…?"
- 文字列アルゴリズム Advent Calendar 2016 - Qiita
- 文字列検索アルゴリズムいろいろ - Qiita
- SymSpell対BK木:100倍速い文字列のあいまい検索とスペルチェック | プログラミング | POSTD
- rapidstring: rapidstring
- boyerjohn/rapidstring: Maybe the fastest string library ever.
- シンプルで強いFrontCoding文字列辞書を紹介したい - Kampersanda's Blog
ビットベクトル
- Kozonoyuki's Blog: ビットベクトルによる集合
- C言語 ビットベクトル 集合 要素数の調べ方について - ビットベクトルを用い、集... - Yahoo!知恵袋
- 学生ゼミ 10/25 - JP@IKN
- 4.2.pdf
- 汎用kumAGIさんのツイート: "簡潔ビットベクトル、高速なのはいいんだけど構築のコストが大きいので検索が支配的なコストの場合に使うしか無くてDWHとかIMEとか使いどころが難しいのでは…。"
- 「ビット演算・ビットベクトルとは」を理解する - Qiita
- 簡潔ビットベクトル(完備辞書) - Mister雑記
- 簡潔ビットベクトルでRubyをlog N倍速くした - クックパッド開発者ブログ
- 完備辞書(簡潔ビットベクトル)の解説 - アスペ日記
- 簡潔データ構造 - Wikipedia
- 簡潔データ構造超入門 ~つくって学ぶ簡潔ビットベクトル~ - EchizenBlog-Zwei
- 簡潔データ構造超入門III ~簡潔ビットベクトルで転置インデックスを効率的に実装する~ - EchizenBlog-Zwei
- 整数ベクトルからビット ベクトルへのマップ - Simulink
intrusive container
侵襲・非侵襲
- 関数呼び出しのトレース - yohhoyの日記
- python - How do I print functions as they are called - Stack Overflow
- Shirouzu Hiroaki(白水啓章)さんのツイート: "C++は侵襲型のリストやマップなども用意して欲しいところ。 (できれば複数リスト対応できるもの) 非侵襲型=insertだけでアロケータ必須とか、要素内部を漁ってもイテレータが取れない、という制約になっている。"
- SODA Noriyukiさんのツイート: "Boostにはあるし、言語標準の方でも議論はしてるっぽいですよね https://t.co/EtGBKKzf3o… "
- Intrusive Containers
- OSC2019東京・春出展さんのツイート: "Linuxカーネルのリンクリストは余計なアロケーションがなくて効率はいいんだけど、要素となるデータ構造と、それを入れるコンテナの種類が密に対応しちゃうのが気持ち悪い。"
- SODA Noriyukiさんのツイート: "intrusive containerって奴ですね # これに対しSTLやglibみたいな奴は non-intrusive container Linuxに限らず他の OS でも似たような構造はあるし(*BSDだと <queue.h> や <tree.h> など)、ゲームとか組み込みの世界でもよく欲しくなるのでC++にも入れようって話が出てたり https://t.co/EtGBKKzf3o… https://t.co/EK4OaKn9jr"
- SODA Noriyukiさんのツイート: "元となるデータ型を変更しないといけない(intrusive)という欠点は当然あるので、適材適所で使うものですが…… "
- _さんのツイート: "Boost.Intrusive とかありましたね https://t.co/9dd13XN7Dx"
- Chapter 19. Boost.Intrusive - 1.64.0
- OSC2019東京・春出展さんのツイート: ""intrusive container"っていう呼び方は初めて知りました.ありがとうございます!とあるデータ構造を,ここではリンクリストで,こっちではarrayリストで,こっちではsetで,みたいにしたかったらintrusive containerは不向きですね.… https://t.co/QfDH6bELcN"
- SODA Noriyukiさんのツイート: "arrayは無理なので向かないけど、(mapあたりで実装した)setとlistなら可能だし、わりとしょっちゅうやります。設計時にそのデータ型が属するcontainerの種類や数が不定だったりすると不可能ですが。… "
- OSC2019東京・春出展さんのツイート: "ああ,そうか.ポインタで繋げるタイプのコンテナなら実現できそうですね.… "
疎行列
sparse
- hsjoihsさんはTwitterを使っています 「https://t.co/oOfSt36h8R「未初期化のメモリなんてどうなっててもいいよね、如何なる演算をも許さなくてもいいように思える」 私「わかる」 人「なんと https://t.co/p93MaxwPau という天才的アルゴリズムが反例として存在します」 私「なるほど?」 私「なるほど~~」」 / Twitter
- "What The Hardware Does" is not What Your Program Does: Uninitialized Memory
- research!rsc: Using Uninitialized Memory for Fun and Profit
- 疎行列格納形式の話 - krustf の雑記
- CRS形式 - JICFuS Wiki
- 疎行列のデータ構造入門再び - nursの日記
- 大規模疎行列のデータ構造とアルゴリズムその3 - nursの日記
ハッシュ
merkle DAG
- ブロックチェーン処理に特化した中国製ファイルシステム「TCFS」 - PC Watch
- IPFS入門 : 新たなP2Pハイパーメディア分散プロトコル | POSTD
- トランザクションデータを要約する技術「マークルツリー」
- [Japanese] Patricia Tree · ethereum/wiki Wiki
- 暗号学的ハッシュ関数 - Wikipedia
- データのバージョン管理が可能な分散データベースNomsのイントロダクション - Qiita
- ipfs.key
- 【次世代のインターネット】IPFS(Inter Planetary File System)で遊んでみた。 : 暗号通貨って何? es's website
マークル木
Go
- Kentaro Haraさんのツイート: "なかなか表舞台の話題に出てこない技術に Trillian(https://t.co/E5vOG1cgwA)というのがあって、個人的にはブロックチェーンとほぼ同等のことができて、かつブロックチェーンよりよほど将来性がある技術だと思う。オープンソースになってて、SSL認証などですでに実用化されている。"
- google/trillian: Trillian implements a Merkle tree whose contents are served from a data storage layer, to allow scalability to extremely large trees.
- Kazuho Okuさんのツイート: "公文書の記録にgitとかブロックチェインとかみたいな話を目にするけど、普通はMerkle Hash Treeを使って部分検証を可能にするんじゃないの?"
- Kazuho Okuさんのツイート: "ええ。Certificate Transparencyみたいなお金にならないものでさえmerkle treeで実現できてるわけで、公文書ならハッシュチェインで良いと僕も思います… "
- ハッシュ木 - Wikipedia
- Merkle tree - Wikipedia
- データ検証などで利用するMerkle Treeのメモ | Siguniang's Blog
- トランザクションデータを要約する技術「マークルツリー」
- ビットコインの技術 Merkle tree(Hash tree) プログラミングJava
- ビットコインとマークルツリーとマークルパスと - とってもやさしいビットコイン
- 【連載】暗号通貨ってなんだろう?⑦「第五部『その他』」 – びりあるの研究ノート
- ビットコインとは何か? 第2回:ビットコインの仕組み(ブロックチェーンの構造) - ビットコインの解説 | Bitcoin日本語情報サイト
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ファイル破壊検出用の並列ハッシュ値計算を考える。 ファイルデータを例えば256KBブロックで分割し、インターリーブ的にn本のストリームに見立てる。 ストリーム毎にハッシュ値を取り、最後にハッシュ値*nを並べてハッシュ値を取った場合、上記目的用としての品質はどの程度担保されるかな…?"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ただ、md5やsha1記録用としては使えないので、イマイチではある。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "良く似たものに、merkle-treeがあり、70年代の終わりからすでに分散ハッシュ計算方法として、実績がある様子。 https://t.co/B1IiFBGWAI"
- Dan Kogaiさんのツイート: "ZFSはすでにブロック破壊検出と可能ならば修復も標準でやってくれるのだけどそれとは違う?… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ZFSやbtrfsでは、こちらに書いたmerkle-treeが使われているみたいですね。 https://t.co/10YzrZNOlD 元々の動機はこちらに。 https://t.co/OWW9VhcYYT… "
- 鯉江さんのツイート: "AES-NIつかってGCMでチェックするのが早いと言ってる人がいたのを思い出しました。 https://t.co/XC2UX2GCzW https://t.co/MdzlQ0pMOb… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "なるほど、いいですね。… "
- IPFSについて勉強した - mizchi's blog
khash
- libgit2の内部データ構造: strmap - Qiita
- attractivechaos.awardspace.com
- SW-1202-2282-2063さんのツイート: "@yukihiro_matz @mirichi 参考にされたオリジナルのkhashはこれですかね? https://t.co/4X9lsJlD0c"
- mrubyでkhashの使い方がまずいせいで起きる現象(putするまえにgetしてない)
- klib/khash.h at master · attractivechaos/klib
- Klib — a generic library in C
- attractivechaos/klib: A standalone and lightweight C library
SipHash
- SipHashについてのメモ - Qiita
- SipHash - Wikipedia
- SipHash: a fast short-input PRF
- siphash.pdf
- jedisct1/siphash-js: A Javascript implementation of SipHash-2-4
- veorq/SipHash: High-speed pseudorandom function (reference code)
- Change Siphash to use one of the faster variants of the algorithm (Siphash13, Highwayhash) · Issue #29754 · rust-lang/rust
- SipHashとAdvanced Hash Flooding - 不意になにかを残すブログ
- SipHash — Idea of the day
- siphash 0.0.1 : Python Package Index
- Yusuke Endohさんのツイート: "rust が案外速いと知って、じゃあなんでこのコードは遅いんだろうと今更 perf report 見てみたらハッシュ関数が半分以上占めていた。siphash は遅いんだなあしみじみ"
- DSAS開発者の部屋:最近の Python-dev (2017-02)
MurmurHash3
- MurmurHash3 · aappleby/smhasher Wiki
xxHash
- xxhashの紹介 - KengoSawa2の技術的ななにか
- Cyan4973/xxHash: Extremely fast non-cryptographic hash algorithm
- xxHash - Extremely fast non-cryptographic hash algorithm
- Synergy KK - 02-08Silverstack - オフロードとバックアップ -xxHash、MD5 / SHA-1チェックサム方式とMHL
- 使った node.js ライブラリ – xxhashjs / xxhash « Ooharabucyou
- xxHash - a hash algorithm as fast as memcpy
- xxhash 1.0.1 : Python Package Index
- XxHash - Wikipedia
- xxhash
- ハッシュ関数 xxHash の入力を32bitに限定した場合に重複した値が出ないことを確認したい - Qiita
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ベリファイ用ハッシュ計算のデフォルトは、xxHashにしようかな…"
- Kengo Sawatsuさんのツイート: "server2012<-80gbps->server2012 で、検証してみたところ ベリファイなし:3000MB/Sec(たぶんハード上限) xxhash:1500MB/Sec MD5:300MB/Sec SHA1:340MB/Sec ハッシュ計算がネックになっているので、記録用には使えないが壊れてないことは保証されるハッシュがあってもいいのかもしれませんね。(有料?)… https://t.co/ACQZ2QpC36"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "並列版xxhashを考えてみます(笑) 何並列に分割するか、考えてどころですが。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "xxHashをストライピング的に並列処理した場合の速度実験。 (i5-8600K(6コア)、チャンクサイズ16KB、ストライプ数16) ワーカースレッド数(6)で 15.2GB/s、(4)で 12.5GB/s、(2)で 6.8GB/s、(1)で 3.5GB/s に。 待ち合わせオーバーヘッドはあるものの、使う価値はありそうだな。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "上記実験では、1MB毎に待ち合わせした場合の値。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "xxHash64 の速度の件、ビルドオプションを /Ob1 → /Ob2 (inline指定のinline化 → 可能な全てのinline化)で、3.7GB/s → 13.3GB/s に向上、100Gb環境でもマルチスレッド版必要なさそう。 (逆に利用側での #define XXH_INLINE_ALL は効果なし)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "ということで、v3.52をリリースするかな、xxHashデフォルトに変更して。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "付記。ビルドオプションは xxHashライブラリのビルドオプションのみ変更。"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "MT化xxHash / オリジナルxxHashで比較実験。(i5-8600K) ハッシュ対象が6MBの場合、60GB/s / 14.3GB/s となり、1GBの場合、27GB/s / 13.4GB/s となった。 そしてMT化版は 3スレッド指定で性能上限に達する。 だいたい理由は判るが面白い。… https://t.co/9FtZC0lvuz"
- xxHashメモ(VC++用Tips、MT実験)
- SHIROUZU Personal Log(2018-07-08)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「知らないうちに xxHash で 128bit が定義されていたようだ。 https://t.co/NowpG61eeH ちなみに xxhashの作者はハッシュ品質テストにSMHasherを使っている様子…これが業界的にはデファクトなのかしらん? https://t.co/n6GXjFkMVK」 / Twitter
- xxHash/xxh3.h at dev · Cyan4973/xxHash
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「SMHasherは「ハッシュテストの DieHarder を目指している」とのこと。 https://t.co/0nOsBumaP3」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash3(128bit)は、従来版より性能が高いらしいが、まだ実験版。 (10月の最新リリースでハッシュ値が変更されたが今後もありえる) https://t.co/9TkMrdl8iR」 / Twitter
- Releases · Cyan4973/xxHash
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「従来の xxHash(64bit) に比べて、xxHash3 はSSE/AVX利用で性能向上が著しい(2-3倍)。 正式リリース(v0.8)になり次第、こちらをFastCopyのデフォルトにするかな。 (今もさらなる性能向上のPRが取り込まれている最中っぽい) https://t.co/n6GXjFkMVK https://t.co/DBC6a6Lx5x」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash(64bit)の並列化実験(=通常版と値が変わる)で 13GB → 60GB/sまで改善した時のメモ。(2年前) https://t.co/SCuw1ulL8S」 / Twitter
- xxHashメモ(VC++用Tips、MT実験)
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ようやくxxHash3 v0.80 リリースと。 (このリリース以降、128bit xxHash 値が将来リリースでも維持が保証される) https://t.co/sWDmn0hsnh」 / Twitter
- Release xxHash v0.8.0 - Stable XXH3 · Cyan4973/xxHash
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash3を含む、xxHash v0.80 がリリースされた、の方が正確だった。 xxHash3 は 128bit が使えるのに加えて、従来のxxHashに比べて処理性能も約1.5倍に向上。 https://t.co/K3DWI1qRVp」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ちなみに、xxHashのYann Colletさんは zstd や lz4 の作者でもある。」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHashは x86系だけで 通常 / SSE2 / AVX2 / AVX512版 と4実装が含まれているのだが、CPU毎の最適実装への動的な切替は VC++ ではビルドできない。 (ので、自動切替を自前で用意したり) https://t.co/XBfW3qcKvj」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「i5-8600K で 1MB * 60000 = 60GB分の xxh3(128bit) を計算するとこんな結果に。 通常: 6.0s SSE2: 3.1s AVX2: 2.4s (なお、もっと上位CPUでないとAVX512は使えないが、世評を見る限り、大して性能向上しないのではとも)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「それにしても xxh3、CoffeeLake i5 で 25GB/s 出るのは大したもの。 参考までにxxHash時代の記録。 https://t.co/SCuw1ulL8S」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「最近は SSD RAID などで、I/O が高速化しているので、ハッシュ値計算がボトルネックになることがあるため、高速ハッシュ計算はとても大事。 (md5だと専用スレッドで計算しても間に合わない) https://t.co/A9kiB1nHKc」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu コピー時の同一性検証ならGCMみたいなMAC使った方が速かったりしません?」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「@kazuho xxh3は非暗号学的ハッシュなので非常に軽く、手元のi5-8600Kで25GB/s、公式サイトだと 30GB/s くらい出ているのですが、GCMでもこのくらい行くのでしたっけ…? https://t.co/GaHddSLjZL」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「@shirouzu あーすみませんmd5しか見てませんでした。gcmだとその条件で6GB/s程度は出ると思いますが10GB/sは行かないと思います」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「xxHash作者のYann Colletさんに確認したところ、VC++では SSE2/AVX2/AVX512の動的切り替えは、下記のようなソース分割コードしか実現不可能という結論に。 https://t.co/qr9RCzQ5B7」 / Twitter
- shirouzu/xxh3_sw
hash
- kbcl0_0004 - essen-wiki
- ドッグさんのツイート: "Facebook が開発した高速でメモリ効率の良いハッシュテーブル実装 F14 が Folly C++ ライブラリの一部として公開したのか.記事内では具体的な最適化の内容について解説されてる | 'Open-sourcing F14 for memory-efficient hash tables - Facebook Code' https://t.co/smzRYWwWks"
- Open-sourcing F14 for memory-efficient hash tables - Facebook Code
- ドッグさんのツイート: "ただし std::unordered_map とかが提供している reference stability は F14 では保証されないのか"
- ドッグさんのツイート: "ハッシュ値が衝突すると衝突の解決のために普段とは違うパスを通らないといけないから CPU が分岐予測を外す → 衝突を減らすのが大事.とはいえナイーブにテーブルの初期サイズをデカくすると当然メモリ効率が悪くなる"
- ドッグさんのツイート: "そこでスロットごとではなくチャンク (複数のスロットの塊) ごとにハッシュ管理して,検索時はそれぞれのチャンクをベクタ命令で並列に検索.二段構えになる分普通のハッシュテーブルより処理は多くなるけど,トータルとしては速くなる"
- ドッグさんのツイート: "要素をポインタで間接的に持つ F14Node,要素を直接値で持つ F14Value,要素を配列に置いて配列で持つ F14Vector の複数のメモリレイアウトを検討して F14Value と F14Vecror のハイブリッドにしたらしい (F14Fast)"
- ドッグさんのツイート: "C++ 的に頑張った点として, std::string をキーに持つテーブルは std::string_view で no copy に検索できるようになってる ,noexcept でムーブ出来ない型の要素を入れた時は [[deprecated]] で警告を出しまくる (ウケる) これは経験的に大抵 noexcept 付け忘れてるケースがほとんどのため"
- 汎用kumAGIさんのツイート: "大昔に作ったスライド、「あなたの知らないハッシュテーブルの世界」これslideboomってサービスに上げてたけどサービス終了したしアニメーションが入ってるせいかslideshareに上がらなかったのでとりあえずdropboxに置いて欲しい人に届くように公開。内容は古いです。 https://t.co/I1pxAshYt0"
- あなたの知らないハッシュテーブルの世界.pptx
- Shirouzu Hiroaki(白水啓章)さんのツイート: "完璧なハッシュ関数だと、fa fb の衝突はそれ以上改善できなさそう。 ただ、fa fb に加えて、ダミー文字列mを付与して、f(a+m) f(b+m) も行って、fa+f(a+m) と fb+f(b+m) で512bit比較が許容されるなら衝突改善できそう。… https://t.co/tD9Q5F6geC"
- とつげき東北⛅さんのツイート: "問題: 1/(2^256)の確率で衝突してしまう暗号学的ハッシュ関数fがある。入力に対する出力は256bitで、衝突以外は「安全」だとする。 原文としてaとbがあるとする。xをハッシュにかけたハッシュ値をfxのように書く。 f以外のハッシュ関数がない場合に、faとfbの衝突を少しでも回避する方法を考察せよ。"
- とつげき東北⛅さんのツイート: "そういう意図でした。 文字列を連結した場合……と書くとヒントになりすぎるし、240文字で制限あるしで困りました。 ちなみに「完全な」ではない場合の定義も曖昧で、aと何かを連結したものと、bと同じ何かを連結したものもまた衝突するなら、解なしぽいですね。 ご回答ありがとうございます!… https://t.co/HyQpVZWfdC"
QHash
- 島鉄雄さんはTwitterを使っています 「古い記事だけど辞書のベンチマーク比較サイトがあった。 これ見るとQHashがやたら速いし省メモリ。 早速ソースコード見てみたら、struct Span と言うデータ構造が肝のようだ。 要するに仮想記憶の様に所々しかメモリが確保されてない巨大配列を作ってるようだ。 これは良い。 https://t.co/RM9rjQZQje」 / Twitter
- Benchmark of Dictionary Structures
- 島鉄雄さんはTwitterを使っています 「Boost のハッシュ(unordered_map)も十分速いし省メモリだから、今は std::unordered_map を使っておけば間違いないのかもしれないけど、ソースコードを見ても何やってるか全然分からん… その点 QHash はかなり読み易い。」 / Twitter
Go
- 意図的にプログラムの動きをランダムにしてバグを早期発見するテクニックについて|Rui Ueyama|note
- Kazuho Okuさんのツイート: "@rui314 ネットワーク界隈だとossificationを防ぐためのgreasingという言い方をするので、そういう単語を紹介してもいいのかなと思いました cf. https://t.co/ZNyY1AadfS"
- Rui Ueyamaさんのツイート: "@kazuho そう、TCPとかだとossificationがひどいので新しいプロトコルではなるべくgreasingするようにしていて、みたいなこと書いたんですが短くするために削除してしまいました。"
- Kazuho Okuさんのツイート: "@rui314 なるほどです。「グリス(を塗る)」と言ったほうがランダム化よりも良いかと思ったのですが、意図的に落とされたんですね"
- Rui Ueyamaさんのツイート: "@kazuho Goのマップとかだとgreasingっていう言い方を聞いたことがないんですよねぇ。そっちから書き始めたので話の流れ的にまあこれでいっか、と。"
POSTD
- 私が書いた最速のハッシュテーブル – PART 1 | プログラミング | POSTD
- 私が書いた最速のハッシュテーブル – PART 2 | プログラミング | POSTD
- 私が書いた最速のハッシュテーブル – PART 3 | コンピュータサイエンス | POSTD
- 私が書いた最速のハッシュテーブル – PART 4 | コンピュータサイエンス | POSTD
最近のruby-core
- 最近のruby-core (2016年3月) | Money Forward Engineers' Blog
- 最近のruby-core (2016年11月) | Money Forward Engineers' Blog
- 最近のruby-core (2017年1月) | Money Forward Engineers' Blog
局所性鋭敏型ハッシュ
- Miura HidekiさんはTwitterを使っています 「https://t.co/sHNKVNTbdU 面白いのだがよくわからない。隠れ層の重みを1bitとか2bitにしてハッシュテーブルで検索するって話なのかなー?」 / Twitter
- ライス大学研究チーム、GPUを使わずにディープラーニングを高速化するアルゴリズムを開発:行列の乗算ではなく、ハッシュテーブルで解決可能な探索問題に - @IT
- zakkiさんはTwitterを使っています 「@miura1729 理解しきれてませんが、重みの精度落とすんじゃなくて、局所性鋭敏型ハッシュでのハッシュテーブルで最近傍近似するとかなんとか https://t.co/TYiZIirw1E」 / Twitter
- keroro824/HashingDeepLearning: Codebase for "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems"
- miyoxさんはTwitterを使っています 「行列計算じゃなくてハッシュテーブルを使う? https://t.co/ta2Ak7J33V 論文はこれかな https://t.co/aRlUj0b1U7」 / Twitter
- ライス大学研究チーム、GPUを使わずにディープラーニングを高速化するアルゴリズムを開発:行列の乗算ではなく、ハッシュテーブルで解決可能な探索問題に - @IT
- [1903.03129] SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems
- OGAWA, TadashiさんはTwitterを使っています 「.@miyox MLSys 2020でのペーパーとスライドです "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems", Rice & Intel https://t.co/hoaRaKHv3Z Anshumali Shrivastava https://t.co/3sRRl219kU」 / Twitter
- OGAWA, TadashiさんはTwitterを使っています 「=> "SLIDE : In Defense of Smart Algorithms over Hardware Acceleration for Large-Scale Deep Learning Systems", Rice & Intel, MLSys 2020 https://t.co/25sEoYoKb1 https://t.co/u2OPpgLzPY Amazon-670K 2x (22 core Xeon E5-2699A v4, 2.4 GHz): 1 H TF on V100: 3.5 H https://t.co/b7f4Rnapj2 https://t.co/1kYVn7PfWz」 / Twitter
- Anshumali Shrivastava
Twitter
- chokudai(高橋 直大)さんのツイート: "(x,y)を((long)x<<32)+yでエンコードするとハッシュ衝突して死ぬ、普通に知らなかった。(C#のDictionaryの内部実装の問題っぽい)"
- Kazuho Okuさんのツイート: "rubyのハッシュテーブルって何か昭和な実装使ってたと思うんだけどkhashとかにしないのかな #RubyKaigi"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "FastCopyベリファイでは、I/O中にハッシュを並列計算することで、ハッシュ計算をI/O時間に隠蔽していた。 だが、速度向上につれて1GB/sを越えてくると、ハッシュ計算時間がI/O時間を上回るようになり、ハッシュ時間が律速要素になって来たのは、とても面白い。… https://t.co/UfkmUTUyYm"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "最近のPythonのhash()は、起動毎に異なる値を返すらしい。 (hash値が予測可能だと、dictでDOS攻撃が可能なため) https://t.co/CSmQXCYs7B… "
- security - hash function in Python 3.3 returns different results between sessions - Stack Overflow
- Taku KudoさんはTwitterを使っています: 「unordered系のcontainerの実装を変えると、違う結果をはきだした。hash関数が変わると再現性がなくなるというのは本来あってはならないことだよな.. 速度的に強い制約ないのであれば、ordered なコンテナを使うほうが無難。」 / Twitter
- SmoothieMap 2: the lowest memory hash table - Roman Leventov - Medium
- KOMIYA AtsushiさんはTwitterを使っています: 「メモリフットプリントが小さく(1エントリあたりのヒープ使用量が小さく)て、rehash によるレイテンシの劣化がない java.util. Map の実装らしい。 “SmoothieMap 2: the lowest memory hash table ever” by Roman Leventov https://t.co/W6NJWQmVsH」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「AIの偉い人から「LSH(Locality-sensitive Hashing)」という単語を聞いて調べ中。 (そもそも多次元=球面集中も知らなかった) ---- 「(昔は近似検索にはハッシュは使えなかったが)Locality-sensitive Hashingという類似検索向けのハッシュ法を開発して状況は一変し…」 https://t.co/RNXGZZf6BL」 / Twitter
- 7_256.pdf
- HKDF, HMACなどのハッシュ関数を使う場合に知っておくべきFS/PFS – yohgaki's blog
- A Hash Function for Hash Table Lookup
- 高速ハッシュアルゴリズム | YOSBITS
- 八角研究所 : RHG 片手に Ruby 1.9 を読む集い(The RHG Strikes Back)に参加した(1) - 第2回 RHG の逆襲
- あなたの知らないハッシュテーブルの世界
- テンプレート: Hopscotch Hashingとその他
- aappleby/smhasher: Automatically exported from code.google.com/p/smhasher
- luispedro/diskhash: Diskbased (persistent) hashtable
- Positive Technologies - vulnerability assessment, compliance management and threat analysis solutions
- leo-yuriev/t1ha: Fast Positive Hash, aka "Позитивный Хэш" - just the fastest portable hash function.
- HashDoS脆弱性との戦い! Rubyコミッター・卜部昌平が明かすプログラム堅牢化のノウハウ - エンジニアHub|若手Webエンジニアのキャリアを考える!
- Re-implementation of Lock Free Cuckoo Hashing – ScienceOpen
二分探索
- DSWアルゴリズム - Wikipedia
- Day–Stout–Warren algorithm - Wikipedia
- 高速な圧縮辞書ライブラリXcdatをリリースしました - Kampersanda's Blog
- KampersandaさんはTwitterを使っています 「Lemire氏のブログを眺めてて面白かった記事。複数の二分探索を実行するとき、各ステップをインターリーブして実行すると、どうせ外れる二分探索の分岐予測よりも効率的に命令が使えて定数倍高速化するというもの。 https://t.co/H4mqcr7NOC」 / Twitter
- Speeding up independent binary searches by interleaving them – Daniel Lemire's blog
- Binary search with modern processors - Speaker Deck
グラフ
NyaRuRuが地球にいたころ
- graph (1) - NyaRuRuが地球にいたころ
- graph (2) - NyaRuRuが地球にいたころ
- graph (3) - NyaRuRuが地球にいたころ
- graph (4) : 身近な例 - NyaRuRuが地球にいたころ
- graph (5) : クエリ式 - NyaRuRuが地球にいたころ
- graph (6) : 再帰クエリ - NyaRuRuが地球にいたころ
- 大規模グラフアルゴリズムの最先端
- ページランクのアルゴリズムをC++で試してみる (1/3):CodeZine(コードジン)
- BDDとZDDを下から読んで再帰アルゴリズムを作る - Qiita
- 01-BFSのちょっと丁寧な解説 - ARMERIA
- ワーシャル–フロイド法 - Wikipedia
- 疎行列の計算を実装してグラフ理論をかじってみる (1/3):CodeZine(コードジン)
- 江崎貴裕@数理モデル本発売中!さんはTwitterを使っています 「巡回セールスマン問題の最短経路長は、もしノードの位置が一様ランダムに決まると仮定すると、その領域の面積とノード数の平方根に比例する式で近似できるということが知られているらしいのだが、試しに計算してみたら思ったよりいい近似で驚いた。 https://t.co/fWc7VrJhmw」 / Twitter
- 数学の難問「巡回セールスマン問題」の近似解を求める最良のアルゴリズムが数十年ぶりに更新される - GIGAZINE
- Shinji KonoさんはTwitterを使っています 「この種のアルゴリズムの計算量や解の質の問題は極めて難しくて手法そのものが良くわかってない。アルゴリズム自体よりも、そっちだな。 https://t.co/J2MSPl1pDE」 / Twitter
- Shinji KonoさんはTwitterを使っています 「巡回セールスマンはNPハードだがNP完全ではないけど、NPの理解に計算幾何学が使えるなら面白い。きっとやっている人たくさんいるんだろうな。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「確かに、可能な計算全てに計量を入れるような話だし」 / Twitter
- 閉半環を使ってグラフ上の最短距離を計算する!
- κeenさんはTwitterを使っています 「Idrisだと(依存型のついた)Matrixあるし簡単じゃんと思ったらSemiRingじゃなくてRingが要求されていた…」 / Twitter
- グラフからコミュニティ構造を抽出する 〜リッチフローによるグラフの時間発展〜
- kinabaさんはTwitterを使っています 「全ノードが次数k以上な最大部分グラフを探すアルゴリズム https://t.co/Dqf8bj2ImP (次数k未満のノードをまず捨てると、残ったノードの次数が減るので繰り返すと捨てられる物が増える)を思い出したけど、実際近い理屈かもしれないな。残す候補の物の集合からある程度のリンクがないと捨てられやすい」 / Twitter
- Find k-cores of an undirected graph - GeeksforGeeks
- Masaki HaraさんはTwitterを使っています 「整理整頓の仕方。「これは要らないな」と思ったものを捨てるとものが半分以下になるので、これをn回繰り返すと最初の(1/2)^nになる。というのは嘘にしても、何回か繰り返すとなぜか捨てられるものが増える。」 / Twitter
- バネ埋め込み法を使って隣接行列からグラフを描画する
- Navigable Small Worldによる近似最近傍探索 - suzuzusu日記
隣接行列
- 有向グラフ 隣接行列 圧縮 - Google 検索
- 有向グラフ 隣接行列 圧縮 意味ネットワーク - Google 検索
- 有向グラフ 隣接行列 意味ネットワーク - Google 検索
- 隣接行列 意味ネットワーク - Google 検索
map
- 各種マップ実装の性能比較 - mixi engineer blog
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「Pythonは、逆に3.7(実装では3.6)から挿入順でのイテレーションが保証されるように。 ただしハッシュ値は起動毎にランダム(コリジョン対策)」 / Twitter
- mattnさんはTwitterを使っています 「そうするとユーザがそれに依存したコードを書いてしまい以降アルゴリズムを変更できなくなります。そこで Go では意図的にイテレーションの順をランダムにするようになっています。」 / Twitter
Elias-Fano encoding
- Taku KudoさんはTwitterを使っています 「ソートされた整数列(転置インデックスのポジションリストとか)の圧縮に elias-fano-encoding という手法があることを知った。Quasi-succinct で、試したところ、ありがちな手製圧縮をはるかに凌駕する。 https://t.co/f32s48zQHn」 / Twitter
- Sorted integers compression with Elias-Fano encoding | Antonio Mallia
- Taku KudoさんはTwitterを使っています 「sentencepieceを本来の意味でのデータ圧縮につかってみた。当たり前だがうまくいく。」 / Twitter
DyFT
- KampersandaさんはTwitterを使っています 「Our new paper "DyFT: a dynamic similarity search method on integer sketches" has been published in Knowledge and Information Systems Journal (as an invited paper from ICDM20) https://t.co/gaJhCiYTe2」 / Twitter
- KampersandaさんはTwitterを使っています 「The SharedIt link is https://t.co/JtppgsZmx8」 / Twitter
- DyFT: a dynamic similarity search method on integer sketches
トライ
- 404 Blog Not Found:Algorithm - 連想配列の実装としてのハッシュはオワコン?
- Gauche:Trie
- Parallel Collections - 並行トライ - Scala Documentation
- Groonga - grn_dat - 参照ロックフリーなダブル配列
- ダブル配列の豆知識
- ダブル配列の実装方法
- 人生で何度目かのダブル配列TRIEを書いた - Qiita
- すごいTrie - Qiita
- Rui UeyamaさんはTwitterを使っています 「TrieというとGoの標準ライブラリのここらへんでTrieを使っているけど、実はこれかなり非効率的で、DFAを使って入力に対してリニアにしか時間がかからないようにしたほうがいいはず。パッチ書くの面倒だけど。 https://t.co/kBoyU1sKyj」 / Twitter
- src/strings/replace.go - The Go Programming Language
Splay木
- かつっぱ@競プロYouTuberさんはTwitterを使っています 「Splay木って最近示されたDynamicOptimalityの下界を達成していたっけ(ギリしていなかったような)」 / Twitter
- かつっぱ@競プロYouTuberさんはTwitterを使っています 「根拠のない直感なんだけど、クエリ列のエントロピーの大小とOptimalDynamicBinarySearchTreeの計算量の大小も連動するイメージがあって それとSplayTreeのおそらくほぼOptimalなところを見ると、「Splay木は偏ったケースだと早い」がなんとなくそうかもしれんなという気になる」 / Twitter
- Masaki HaraさんはTwitterを使っています 「へー動的最適性って示されたんだ (名前しか知らない)」 / Twitter
- かつっぱ@競プロYouTuberさんはTwitterを使っています 「まどろっこしい話をしたのでスーパー火消しタイム - Tarjanの動的最適性の予想はまだ示されていないはず - 最近Wilberの下界が最適っぽいかもしれない予想にProgressがあった(https://t.co/9mPFBQBoVZ) だけなのでSplay木が全然下界じゃな可能性は残っています 最近の私のツイートはイメージです」 / Twitter
- Settling the relationship between Wilber's bounds for dynamic optimality
Crit-Bit Tree
- 404 Blog Not Found:algorithm - PATRICIA に一番似合う姓は Crit-Bit かも
- 高速な文字列検索 Crit-Bit Tree コンテナ(C++) - Qiita
- prog_0003 - kiwi-log
- Crit-bit trees
- crit-bit 木 (その3) - Tociyuki::Diary
機械学習インデックス
- Kazunori Satoさんのツイート: "Jeff Dean他、Learned Index Structureを発表。B-Tree比で70%の性能向上と桁違いの省メモリを実現。GPU/TPUにも載りそう。 https://t.co/Bs2WmD2io9 https://t.co/eQGGRuAB2D"
- Fadisさんのツイート: "「B-Treeのインデックスは機械学習で言う回帰木であり、この部分をディープラーニングを含む他の機械学習の手法で置き換える事ができる」 その発想はなかった"
- Kazuho Okuさんのツイート: "多次元への拡張やばいな。任意のクエリに対応したインデックスを自動生成できれば、もうセカンダリインデックスどうしようとか考える必要なくなる / “The Case for Learned Index Structures – Ar…” https://t.co/y2PJqeq11F"
- The Case for Learned Index Structures – Arxiv Vanity
- Kazuho Okuさんのツイート: "機械学習インデックスのやつ、一次元なら古典的な方法でもできそう(例えばJPEGのように頻度を階層的にDCT)な気がするけど、どうなんだろうなー"
- Kazuho Okuさんのツイート: "なんというか、次元低いなら機械学習いらない気がするんだよね。あるいは、次元が低くても機械学習に優位性があるなら、同じ手法を使うことで画像の圧縮率を大幅に上げることが可能だってことになるよね"
- Kazuho Okuさんのツイート: "あーインデックスだと参照速度重要だからDCTよりもNNになるのかな"
- Daisuke Okanoharaさんのツイート: "@kazuho 画像の圧縮にNNを使う研究はいくつか出ててすでにJPEG は超えてて特に低レートだとかなり勝ってます。スタートアップもでてきてます。ただ、NNによる圧縮の本命は容量も大きく圧縮がすごく効くであろう動画だと思います。 https://t.co/HwddgBaZcU"
- IR Reading 2019秋 論文紹介 / IR Reading 2019Fall - Speaker Deck
進化的アルゴリズム
- 進化的アルゴリズム - Wikipedia
- 進化戦略 - Wikipedia
- CMA-ES - Wikipedia
- 乱択アルゴリズム - Wikipedia
- 分散共分散行列 - Wikipedia
オートマトン
- Ichiro HasuoさんはTwitterを使っています 「これ,実はオートマトン理論の成果です.「Bellman operator を使うと確率的オートマトンの解析が局所的にできるよ!(動的計画法)」という基本の話に,あえて大域的な解析を上手に組み合わせることで,解析が爆速になりました.[Phalakarn・滝坂・Haas・蓮尾 CAV'20]」 / Twitter
- 国立情報学研究所(NII)さんはTwitterを使っています 「[ニュースリリース] 意思決定支援システムが示す選択肢の正しさと計算スピードを両立する手法を開発 ~工業製品の品質確認、自動運転、マーケット投資などの戦略の高速計算への道を拓く~ https://t.co/XIfTJW9bR6」 / Twitter
- 意思決定支援システムが示す選択肢の正しさと計算スピードを両立する手法を開発~工業製品の品質確認、自動運転、マーケット投資などの戦略の高速計算への道を拓く~ - 国立情報学研究所 / National Institute of Informatics
- 国立情報学研究所(NII)さんはTwitterを使っています 「本研究ではゴールの達成確率を最大化する戦略を精度保証しながら高速に計算する手法を開発しました。工業製品の品質確認や自動運転の制御、マーケット投資戦略の策定等、幅広い分野の意思決定を支援するシステムに応用可能で、システムが示す選択肢の正しさを保証しつつ高速に計算結果を提示できます。 https://t.co/4AZ9QHLXfB」 / Twitter
blog
- Segment Tree を少し速くする - Fixstars Tech Blog /proc/cpuinfo
- Segment tree - Wikipedia
- DSAS開発者の部屋:最近のPython-dev(2017-09)
- はてなブックマークWeb版のエントリー検索のアルゴリズムを改善しました - はてなブックマーク開発ブログ
- 論文メモ: Accelerated Query Processing Via Similarity Score Prediction (SIGIR 2019) - stop-the-world
- 論文メモ: Fast Approximate Filtering of Search Results Sorted by Attribute (SIGIR 2019) - stop-the-world
- Bing検索の裏側―BitFunnelのアルゴリズム - Hatena Developer Blog
- 文字列アルゴリズムの学びかた - Hatena Developer Blog
- 赤黒木による順序付き集合 - Tociyuki::Diary
- 赤黒木同士の非破壊 JOIN 関数 - Tociyuki::Diary
- お勉強メモ:混合ベルヌーイ分布とEMアルゴリズム - Kampersanda's Blog
スライド
- 実践・最強最速のアルゴリズム勉強会 第二回講義資料(ワークスアプリケーションズ & AtCoder)
- 実践・最強最速のアルゴリズム勉強会 第三回講義資料(ワークスアプリケーションズ & AtCoder)
- The first step self made full text search - Speaker Deck
- Mercari Item Search: Behind The Scenes (20min) - Speaker Deck
Qiita
- TDS: Transposition Table-driven Work Scheduling - Qiita
- HDA*: Hash Distributed A* - Qiita
- bit全探索について簡単にまとめる - Qiita
Twitter
- 島鉄雄さんのツイート: "プログラミング言語には split や split-if 等豊富に用意されているけど、split の対としての slice が無いものが多い気がする。(elisp とか…) slice は使用頻度が低いかもしれないけど、無いと一から作らないといけないから、用意しておいてほしいもんだ。… https://t.co/tBJ7fp4rSK"
- takuya-aさんはTwitterを使っています: 「パフォーマンスのためにmutableなデータ構造を書く(一度確保した配列などのオブジェクトを何度も使い回して速度とメモリを稼ぐ)必要がたまにあり、そういうときは事前条件と事後条件のアサーションを思いつく限り書く。コードは冗長になるけど、逆に不変条件が明確になるのでわかりやすくなると思う」 / Twitter
- kgotoさんはTwitterを使っています: 「素晴らしい。 ちなみに3進数だけでなく、任意のk進数配列を最適な領域で保存するデータ構造[Dodis+, STOC 2010]というのもあります(実装はたぶんまだない)。 https://t.co/ujr4BuSi0d」 / Twitter
- かんぱさんださんはTwitterを使っています: 「{0,1,2}上の値から成る配列(Trit Array)に対する簡潔データ構造の実装を公開しました。 https://t.co/lhTsgATSH9」 / Twitter
- kampersanda/succinctrits: Succinct Rank/Select Data Structures on Trits
- takuya-aさんはTwitterを使っています: 「データ構造の本のなかで突然EM algorithmって出てきて???ってなったけど、データがメインメモリに載らない前提でディスクとかを使って計算するアルゴリズムはExternal memory algorithmっていうらしい。計算モデルもちゃんと定義されてる https://t.co/Ibs0p5GUkv」 / Twitter
- External memory algorithm - Wikipedia
- ( null)さんのツイート: "Mapなどの連想配列の挿入順が保持されない、というのは昔は常識だったが、最近は多くの言語・処理系で保持されるようになってきており、逆に保持される方が常識であるように変化しつつあるのは面白い"
- おーいわくんさんはTwitterを使っています: 「BERTを使って検索をより良くする話です | Understanding searches better than ever before https://t.co/P7QkslUvD9」 / Twitter
- Understanding searches better than ever before
- マスタケさんはTwitterを使っています: 「近傍探索の問題、実サービスで出会う問題は大抵部分集合内(,例えば同一タグで絞るとか日付で絞るとか)の近傍探索の問題に落とせるずで,実際そのほうが圧倒的に計算量が落とせるのに, 今までそういう提案はなかったという意味でこの論文は本当に好き https://t.co/y5fFf6Z3IS」 / Twitter
- [1808.03969] Reconfigurable Inverted Index
- takuya-aさんはTwitterを使っています: 「新着順や価格順などの属性によるソート順を維持しながらDCGなどの指標を最大化するランキングを近似誤差・時間計算量の理論保証つきで計算するアルゴリズムの論文です(オタク特有の早口)」 / Twitter
- relevanceの意味・使い方・読み方 | Weblio英和辞書
- takuya-aさんはTwitterを使っています: 「そもそも検索の精度というか、relevanceに対して真剣に向き合ってるサービス・会社が日本にほとんどないという」 / Twitter
- takuya-aさんはTwitterを使っています: 「もちろんrelevanceだけを見ればいいわけではなく、レイテンシとかUIとかの全ての要素を含めたUXが大事なんだけど、そもそもrelevanceの問題にちゃんと取り組める、取り組んだ経験のある人が少ない」 / Twitter
- takuya-aさんはTwitterを使っています: 「メモリに載らない(データの大部分はディスクにある)前提だとBkd-TreeとPH-Treeどっちが速いんだろう」 / Twitter
- takuya-aさんはTwitterを使っています: 「PH-TreeはB+Treeのうえにデータを載せる実装があるので比較はできるはず https://t.co/7fgPeAKASx」 / Twitter
- tzaeschke/phtree: PH-Tree
- Tomoko UchidaさんはTwitterを使っています: 「2, 3 週間睡眠を削った結果,近似最近傍探索 (HNSW) のパッチができつつあります https://t.co/hRjZicENcG が,インデクシングはやっぱり遅いのと,大改造がすぎるので入るのかどうか。。。」 / Twitter
- Add HNSW graph builder · mocobeta/lucene-solr-mirror@5fb9328
- スマートコンさんはTwitterを使っています 「別に難しいことを知ってる必要はなく、「log n は n に比べて余程小さい」「幾つかに分割してたら log n っぽくなる」「n log n という表記があったらだいたいよさそう」「n^2 はでかい」くらいの肌感覚で良い」 / Twitter
- KampersandaさんはTwitterを使っています 「弊圧縮ダブル配列辞書ライブラリxcdatを再実装して整備しました。改めて実験するとそこそこ良い性能でしたのでよければお使いください(結果の詳細はREADMEにあります) https://t.co/Tobkj5RSku https://t.co/Tu5xWcoFdx」 / Twitter
- kampersanda/xcdat: Fast compressed trie dictionary library
- KampersandaさんはTwitterを使っています 「弊近傍探索ライブラリあってめっちゃ嬉C https://t.co/6GpYpfb9wi」 / Twitter
- kampersanda/mih-rs: Rust implementation of multi-index hashing for neighbor searches on binary codes in the Hamming space
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「N分木の探索効率について。比較回数だけをみれば、N=2のときが平均して一番効率がよいように見える。では二分木が最強か? というとそうではない。メモリアクセスのコストを無視しているからだ。実際にはこれは結構大きい。 https://t.co/WXUMeTVMp8」 / Twitter
- Binary Trees are optimal… except when they’re not. | Harder, Better, Faster, Stronger
blog
その他
- 測度論 / ルベーグ積分 - 星の本棚
- 覚えるために学べ。GANを用いて過去に覚えたことを忘れないようにするクラス分類器 | AI-SCHOLAR
- Permutation Importanceを使ってモデルがどの特徴量から学習したかを定量化する
- DeepなFactorization Machinesの最新動向 (2018) - Gunosyデータ分析ブログ
- 20191109
- 距離学習(Metric Learning)入門から実践まで|はやぶさの技術ノート
- 人間が深層学習のAIを理解できないのには、理由がある:朝日新聞GLOBE+
- なぜ「事実」と「意見」を区別して話せない人がいるのか。 | Books&Apps
- 東大情報学環大澤昇平氏の差別発言について - researchmap
- JR西日本「ベンダーの提案すら理解できない素人だった」新幹線の“着雪量予測”データサイエンスコンペ開催までの「奮闘」
- <8D758DC081698250816A2E626F6F6B>
- motomura.dvi
- Kazunori SatoさんはTwitterを使っています: 「TJOさんのすばらしい説明可能性まとめ。 "ヒトが理解できるのはいわゆる「弾力性」とか「ルールベース」が関の山であり、これを機械学習モデルに置き換えると所詮は(一般化)線形モデルもしくは決定木(回帰木)止まりになる" https://t.co/ffC8SrfKf2」 / Twitter
- 機械学習の説明可能性(解釈性)という迷宮 - 渋谷駅前で働くデータサイエンティストのブログ
- SentencePieceについて書いてみる。 - どん底から這い上がるまでの記録
- 物理法則を”発見”できる機械学習モデルAI Feynman - akira - Medium
- ベイズ統計・ベイズ機械学習を始めよう | AIdrops
- 【第一回】ねこでも分かる!いかさまグラフにはもうダマされない!! - ed-ict|授業でもっとICT活用
- ポケモンを題材に因果推論を実践してみる - tepppeiのブログ
- 20200505
- AIっていったい誰なのよ | RAD-IT21
- VAEに基づくグラフの表現学習 - Sansan Builders Box
- 銀行での不正検知の精度向上へ 暗号のままデータ連携・機械学習ができるわけ | DG Lab Haus
- 2020年総まとめ 興味深い論文/記事85選|akiraTOSEI|note
- 2021年05月時点で自分が実践しているMLOpsの情報収集方法 | Shunya Ueta
- 「量子」と組合せ最適化に関する怪しい言説 ―とある研究者の小言― - むしゃくしゃしてやった,今は反省している日記
- だらだらとKotlinで色々データサイエンスの業務をやって思ったこと | by nardtree | Medium
はてなブログ
- JavaScript エンジニア向け: 知識ゼロから tensorflow.js で機械学習入門 - mizchi's blog
- WebサービスのA/Bテストや機械学習でよく使う「確率分布」18種を解説 - paiza開発日誌
- Factorization Machinesを今更読みました - EchizenBlog-Drei
- 識別/生成モデルの観点から見たRubin/Pearlの統計的因果推論(*既に一定の予備知識のある方向け) - Take a Risk:林岳彦の研究メモ
- ワードエンベディングベクトルを使った検索アプリを作った話 - 科学と非科学の迷宮
- 層の定義 - tsujimotterのノートブック
- 確率モデリングのための確率分布の式変形基本【ベイズの定理/グラフィカルモデル】 - HELLO CYBERNETICS
- 確率を解釈する - hidekatsu-izuno 日々の記録
- 検定や信頼区間の前提が満たされない状況に対して,テキストはどう助言してきたか? - Tarotanのブログ
- なぜ統計学では釣り鐘型の分布が使われ、物理現象では右肩下がりの分布が使われるのか - 小人さんの妄想
- 全てプログラミングで解決しなければならないという思い込みを捨てる - 武蔵野日記
データ
- 生データ使い放題?! 「日本は機械学習パラダイス」になった ― DEEP LEARNING LAB 勉強会 - Deep Insider
- 効率的な教師データ作成(アノテーション)のための研究サーベイ - ABEJA Arts Blog
- (翻訳) データエンジニアリングの未来 - satoshihirose
- 実践!固有表現認識 ~Flairを使って最先端の固有表現認識を体験しよう~ - Ahogrammer
- AIデータ活用コンソーシアム設立 | yasuokaの日記 | スラド
ガウス過程
- ガウス過程の補助変数法をJuliaで実装、回帰結果を比較 • matsueushi
- ガウス過程の補助変数法 (Inducing variable method) を理解する • matsueushi
マルコフ
- マルコフ連鎖キーボード – 入力結果でキー配列が動的に変わる | 秋元@サイボウズラボ・プログラマー・ブログ
- 強化学習の基本:マルコフ決定過程ってなんぞ? - HELLO CYBERNETICS
モデリング
- ブラックホール撮影にも使える「スパースモデリング」とは?【機械学習】 - zalgo3の逆張りブログ
推論・推定
- Pythonとカーネル密度推定(KDE)について調べたまとめ - Stimulator
- なぜCatboostの推論は速いの? - 簡単なレポート
- ベイズ統計学に関する議論を整理する - hidekatsu-izuno 日々の記録
- なぜ統計学には主義が必要なのか - hidekatsu-izuno 日々の記録
- 「数理科学を使えば統計の”主義”を争う必要ない」という主張について検討する | 人はやがて死ぬ
- それはベイズ統計学ではなくて、言わば情報量基準主義ですよ
- 統計学に主義はあってもいいけど,人を説得するときに使うものじゃないという気がする - チラシの裏の落書き日記
- 特異学習理論 - Google 検索
- 情報量基準 - Google 検索
- 事後分布 - Google 検索
- 統計的仮説検定 - Google 検索
- 信頼区間 - Google 検索
補足
- Ken McAlinnさんはTwitterを使っています 「うっすらと感じてた誤解が言語化されてたのでちょっと補足。まぁ誤解は自分の言葉足らずが原因ということで。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「1. 一番勘違いされてる点であると思うけど、だれも特異学習理論を批判していない(というか情報量基準を広中の定理で拡張してるので批判する意味がない)。批判は「情報量基準によって様々な主義の統計学が統一されはじめて学問になった」という主張である。別にこう主張するのは構わないのだが」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「これはメジャーな意見ではないのと同時に情報量基準が適応できない分野(時系列、因果推論、確定的データ)はいくらでもあるので「統一」と言われると困る。「はじめて学問になった」という主張も根拠がわからない(ベイズもSavageの公理系によって学問になったと主張できるし)。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「肝心なのは「情報量基準ベースに統計学を一貫して見る」というのが(定義より)主義であるという点である。これを便宜的にWベイズと呼んでいたが情報量基準主義のほうが的確に思える。 2. 何度も書いてるがデータが真の分布からiidに発生されている、というのはかなり強い仮定である。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「完璧な実験ができるなら話は別だが、ほとんどの場合この仮定は満たされていない(というか確認できない)ので「理論の保証」はあくまで利用者がどこまでリスクを許容するかの話になる。データがiidだと思うのなら理論的に保証されてるし、iidでないなら(eg時系列)保証されないので良くないモデルを選ぶ」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「可能性が増え、利用者としてはリスクとなる。ほとんどの場合はこれが度合いの問題なので利用者としてはリスク・リターンを考えながら評価基準を複合的に考えないといけない。ちなみに特異学習理論によって拡張されたのは扱えるモデルであってデータの種類ではないが、今後その方向に拡張できればいいと」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「思う(情報量基準ではないけど時系列でのモデル評価の理論は自分も書いてる)。ただ「安心して使える」ものではない。 3. 自分は予測主義なのだが、予測の良さ≠因果性なので科学とは良い予測をすることなのか因果関係をみつけることなのかはまだ議論があるので一意に「科学とはこれだ」とは言えない。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「4. ベイズの論理構成の最小限は意思決定である(というのが主観ベイズの立場)。そこから事前分布がでてきてベイズの定理がでてくるという話なのでモデル/データがなくてもベイズはできる。 5. その後のベイズ/頻度の部分は指摘すると長くなるのでパス。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「最後に言うとだれも主義を強要してない。(みんな「見方」をもってるんだから)主義を考えるとこういう解釈ができたりこういう研究ができるよって話なのであって、自分が正しいともみんな同じ意見になれとも思ってない。」 / Twitter
- 複素 数太郎さんはTwitterを使っています 「データはデータであって確率変数とも定数とも一切関係ないのだから「確率変数/定数を扱うこれこれの理論の計算結果がこうだから現在の設定におけるデータをここに当てはめると所望の結果と考えられるものが出る」と言えばいいのに、なぜか「データは確率変数」というIQ3みたいな言い方で表現される」 / Twitter
- 統計学の「主義」批判に渡辺ベイズは一切必要なく、そこには一般的な記号操作におけるリテラシーの問題しかないのではないか|複素 数太郎|note
- 因果推論 x 機械学習についてできることを整理してみました - Adwaysエンジニアブログ
アンチウィルス
- 機械学習を使っているアンチウイルスを機械学習を使ってバイパスする「gym-malware」の紹介 - 脱力系日記
言語処理
- チュートリアル「Janome ではじめるテキストマイニング」を GitHub & Google Colab で公開しました
- 文章埋め込みを用いた教師なしキーフレーズ抽出EmbedRankの実装とその評価 - Sansan Builders Box
- 言語処理学会の論文がぜんぶ公開されたからみんなで見ようぜ!! - 5日と20日は歌詞と遊ぼう。
- 言語処理学会第25回年次大会(NLP2019) 発表論文集
- やぐさんのツイート: "Blog書きました。fasttextが公式で言語判定のモデルを配布しているので、それを使ってみたという話。サブワード単語埋め込みを使っていながらもモデルサイズが小さいところに、fasttextの気合いを感じます。 / fasttextを用いた言語判定 - Out-of-the-box https://t.co/p1PXd2jUIn"
- fasttextを用いた言語判定 - Out-of-the-box
- Elastic Common Schemaについて | Elastic
- 横断検索で社内情報共有を加速させる - Hatena Developer Blog
- Googleの自然言語処理モデル「BERT」はインターネット上から偏見を吸収してしまうという指摘 - GIGAZINE
R の prop.test
- R-Source
- データ解析・マイニングとR言語
- 2変量の関連(2) - R on Windows
- 統計的分析手法あれこれ(2群間の比の差の検定)
- 割合の差の検定のサンプルサイズ計算 - 統計ER
- カイ二乗検定と等比率検定の関係は何ですか?
- [R]{stats} prop.test() : 比率の差の検定を行う関数 | Dr.Clover's Computer Clinic
- 比率の信頼区間
- 標本サイズの決め方
- python - PythonRのprop.testと同様の比例検定
- R の prop.test() からの信頼区間は、手の計算と SAS の結果とは異なります。
スライド
slideshare
- 機械学習モデルの判断根拠の説明
- 機械学習で泣かないためのコード設計
- プログラミング言語として考えたTensor flow
- Control as Inference (強化学習とベイズ統計)
- サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
- [DL輪読会]Pay Attention to MLPs (gMLP)
- 深層学習による非滑らかな関数の推定
- 文章を読み、理解する機能の獲得に向けて-Machine Comprehensionの研究動向-
- 数式を綺麗にプログラミングするコツ #spro2013
- EMアルゴリズム
- 坂本寛さんのツイート: "この教科書はわかりずらいところがあることが世に知られているので、教科書をより分かり易く理解するための工夫があり資料としてもすぐれている。発表ももちろん上手なので聴けなかった人は残念ですね。 #nlpaperchallenge… "
- ᴉɥsᴉuɐʞɐu oɹɐʇuǝʞさんのツイート: "NLP の方の最初の発表資料公開しました。 https://t.co/lOkagdoSGf あとで修正するかもしれません〜 #nlpaperchallenge"
- Deep nlp 4.2-4.3_0309
- takuya-aさんのツイート: "昨日のMLM KANSAIの @nyanp さんの資料が公開されたぞ!特徴量の作り方めちゃめちゃ参考になるのでぜひ / 1件のコメント https://t.co/vRvm1AWXlx “最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング” https://t.co/AUtVR9gtaY"
- 最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
- 「安心な移動」のためのPOI検索
- cvpaper.challengeさんはTwitterを使っています 「「Vision and Language」のメタサーベイ資料を公開しました!画像と言語の融合問題について、タスク別のサーベイ(EQA, Navigation, Retrieval, Pre-trained Model)や最新動向について説明しています。 https://t.co/ADTLX9j693」 / Twitter
- Vision and Language(メタサーベイ )
- cvpaper.challengeさんはTwitterを使っています 「「自己教師学習(Self-Supervised Learning)」のメタサーベイ資料を公開しました!教師がないデータに対して自ら教師を作成し学習する枠組みで、教師あり学習の代替を担うかもしれないとして最近注目を集めている技術です。トレンド、注目研究者/研究機関も含めています。 https://t.co/wgvVakgydA」 / Twitter
- 自己教師学習(Self-Supervised Learning)
- パターン認識と機械学習入門
- Argo Workflow によるMLジョブ管理 - Speaker Deck
- What’s new in Elastic Stack 7.1?
- 検索結果の品質向上 Elasticsearch入門 - Speaker Deck
- chikoskiさんのツイート: "「経済学のための実践的データ分析 9.1 Linked Open Data や RESAS や RISIS を使ってみよう」 https://t.co/GRxqVoJP8P 最近、オリジナルとは違う形でSemantic Webが実現されつつあるのではないか、という気持ちになっている。"
- #経済学のための実践的データ分析 9.1 Linked Open Data や RESAS や RISIS を使ってみよう - Speaker Deck
- Cloud Composer & Dataflow によるバッチETLの再構築 #data_ml_engineering / 20190719 - Speaker Deck
- 近似最近傍探索の最前線 - Speaker Deck
- Fast Succinct Trie - Speaker Deck
- takuya-aさんはTwitterを使っています: 「FSTのDAGの構築は一度Javaで書いたことあるので理解してるつもりだけど、シリアライズまわりはいいアイデアあったら盗みたい https://t.co/GDIybhEtuP」 / Twitter
- takuya-aさんはTwitterを使っています: 「FSTについてはこちらもどうぞ #Kuromoji https://t.co/6xdEyBNIZt」 / Twitter
- 犬でもわかる Minimal Acyclic Subsequential Transducer / Introduction to Minimal Acyclic Subsequential Transducer - Speaker Deck
- takuya-aさんはTwitterを使っています: 「Lucene FSTのシリアライズのやりかた、 @moco_beta さんのおかげで完全に理解できたし、自分で作ってるFSTのライブラリで同じ方式のシリアライズを実装してみようかな」 / Twitter
- #JJUG Java における乱数生成器とのつき合い方 - Speaker Deck
- sigam23sp01.pdf
- Target Encoding はなぜ有効なのか - Speaker Deck
- ヤフーにおける機械学習検索ランキングの取り組み - Speaker Deck
- niconicoの検索システム(2019年版) - Speaker Deck
- hiroshiさんはTwitterを使っています: 「機械学習で用いるデータセットや学習済みモデルの著作権についてまとめられたIBIS2019での講演資料が公開されています。 STORIA法律事務所 柿沼太一 氏 「機械学習と知財・契約」 https://t.co/knum7n5yMY https://t.co/3A6nn2QQ1m」 / Twitter
- 機械学習と知財・契約
- 逆FM音源 - Speaker Deck
- TFHEのための多項式乗算入門 - Speaker Deck
- The Web Conference 2020 Report -多目的最適化における確率的ラベル集約- - Speaker Deck
- Mathematical Optimization in 60 minutes - Speaker Deck
- Trends in Deep Generative model and Self-supervised Learning at NeurIPS2019 - Speaker Deck
- Trends in Deep Learning Theory at NeurIPS 2019 - Speaker Deck
- Trends in Natural Language Processing at NeurIPS 2019. - Speaker Deck
- CyberAgent AI Labを支えるCloud実験環境 - Speaker Deck
- Hydra, MLflow, Optunaの組み合わせで手軽に始めるハイパーパラメータ管理 - Speaker Deck
- メルカリにおけるA/Bテスト標準化への取り組み - Speaker Deck
- Increasing number of attempts ver. 2021 - Speaker Deck
- しゅんけーさんはTwitterを使っています 「個人的にはコーディング面で black / flake8 / isort / mypy あたりの導入があると、完璧感ありますね(みんなが同じように綺麗なコードが書けるようになる)(はず)」 / Twitter
Qiita
- 最適化アルゴリズムを評価するベンチマーク関数まとめ - Qiita
- EMアルゴリズム徹底解説 - Qiita
- 自然言語処理における、Attentionの耐えられない短さ - Qiita
- seq2seqで利用可能な日本語対話データセットをダウンロードするツール - Qiita
- 【機械学習】Google翻訳(みたいなもの)を自作してみた。 - Qiita
- 不均衡データを損失関数で攻略してみる - Qiita
- パワポエンジニアの憂鬱を軽減する誤字/表記揺れ検出ツールを作った物語 - Qiita
- Shiro Kawaiさんのツイート: "「AIは意味を理解しない」ことのすごくわかりやすい例だ https://t.co/y8OVswgGcN より正確に言うなら、「AIは与えられたデータの範囲内で通用する『意味』を見つけ出すが、その『意味』が人間の常識と一致する保証は何もない」かな。"
- AIのバイアスのほんとうの問題は人間が気づかないバイアスだ - Qiita
- AngluinのL*アルゴリズムと機械学習(特にRNN)への応用 - Qiita
- 【2020決定版】スーパーわかりやすい最適化アルゴリズム -損失関数からAdamとニュートン法- - Qiita
- __init__.py を省略してはいけない - Qiita
- クックパッドを支える検索技術 「鰹」と検索して「鰹節」を表示されないようにする工夫 - ログミーTech
- Taku KudoさんはTwitterを使っています 「公開ありがとうございます。1. なぜNFKDなんでしょう。2. neologd のバージョンがあったほうが再現させやすい。3.「語彙のカバー範囲」の意図が不明ですが、長いトークンが欲しいのであれば形態素解析しないほうがよい。 https://t.co/CZcuXcmRgn」 / Twitter
- 有馬幸介/StockmarkさんはTwitterを使っています 「BERTの軽量版とも言えるAIモデルであるALBERTについて日本語モデルを弊社エンジニアが公開しました!精度をほぼ落とさずモデルサイズが1/10ぐらいになっているので、やはり実務上は本当に使いやすい。 https://t.co/2sQ6LZ9uGu」 / Twitter
- 大規模日本語ビジネスニュースコーパスを学習したALBERT(MeCab+Sentencepiece利用)モデルの紹介 - Qiita
- 半順序でソートするためのアルゴリズムとは? - Qiita
- ざっくり理解する分散表現, Attention, Self Attention, Transformer - Qiita
- 初 LAPACK!で DGELS (QR 分解もしくは LQ 分解)による最小二乗法を実装してみた - Qiita
- Linuxのかな漢字変換の興亡 - Qiita
- 線分の交差判定と交点特定 - Qiita
- pandasで1000万件のデータの前処理を高速にするTips集 - Qiita
- 深層学習のセキュリティ課題と論文まとめ - Qiita
- AIと公平性(入門編) - Qiita
- Taku KudoさんはTwitterを使っています 「マジレスすると v0.1.94 から manylinux2014 になっていて、pip >= 19.3 が必須です。pipが古いとソースパッケージにフォールバックされローカルでビルドされます。 https://t.co/wgPoBTRvPC」 / Twitter
- ubuntu にsentencepiece をインストールするときつまづいた - Qiita
- FDTDで電磁界解析 - Qiita
- 線形代数学の基本定理 - 4つの部分空間 - Qiita
- ロバストなベイズ的回帰分析のための新しい誤差分布 (理論編) - Qiita
Wikipedia
- 尤度関数 - Wikipedia
- Likelihood function - Wikipedia
Twitter
その他
Formulaic Expression
- retrageさんはTwitterを使っています 「こういう決まりきった表現、Formulaic ExpressionというのでNLPで研究されてた覚えがある」 / Twitter
- livaさんはTwitterを使っています 「英語で文章書くのが辛すぎて何時も泣きながらやってるマンなんだけど、今回試した既読論文のコーパス化は結構良かった気がする。 特定の状況を記述する際、アカデミア固有の(更に言えば分野固有の)慣用表現があるわけで、その単語の用法(主語、目的語、前置詞は何か)含めて調べるのに役立った。」 / Twitter
- livaさんはTwitterを使っています 「具体的なやり方は以下の通り 読んだ論文をローカルに保存する際に、pdftotextでtext化した物をtreetaggerで形態素解析しておいて、検索時はレンマや品詞でパターンマッチさせる。 https://t.co/Cob0NckUKA」 / Twitter
- livaさんはTwitterを使っています 「自然言語処理の基礎を知らないままに作ったので、今回は形態素解析までしかやってないけど、やっぱ構文解析くらい欲しいなと思ったので、その辺は落ち着いたら。」 / Twitter
- livaさんはTwitterを使っています 「補足すると、別にこういうツールは世界に無限にあるだろうけど、自分用にパーソナライズされたコーパスがあるってのが大事だった、っていう話」 / Twitter
熱平衡化がチューリング完全
- ytakanoさんはTwitterを使っています 「熱平衡化がチューリング完全なんだろうけど、どう言う計算モデルなんだろ。て言うか、熱平衡しない物体とは一体… https://t.co/d0bi0BCodM」 / Twitter
- 【研究成果・プレスリリース】熱平衡化の問題は、一般的な形では解決不可能な問題であることを証明 | 学習院大学
- ytakanoさんはTwitterを使っています 「これか。 https://t.co/2OLw3MmoHt」 / Twitter
- Undecidability in quantum thermalization | Nature Communications
- ytakanoさんはTwitterを使っています 「Universal Reversible Turing Machine. 知らない計算モデルだ。」 / Twitter
- ytakanoさんはTwitterを使っています 「Reversible Computationや、Reversible Turing Machineてのがあるっぽい。 https://t.co/aSJUJKHxwL」 / Twitter
- co.combinatorics - reversible Turing machines - MathOverflow
- ytakanoさんはTwitterを使っています 「reversible computationはある時点の状態から、入力が計算できる感じか。」 / Twitter
連続性の仮定
- ™さんはTwitterを使っています 「とあるML手法を理論解析した論文に「推定したい関数が連続かどうかわからないんだから,連続性を仮定した評価は使えないのでは」みたいなコメントがついていて,どうしたものか……?」 / Twitter
- ™さんはTwitterを使っています 「任意のML手法って推定したい関数に適当な仮定(aka. inductive bias)を置くものじゃないんです? なんか自信なくなってきた.」 / Twitter
- しましまさんはTwitterを使っています 「@tmaehara ノーフリーランチ定理があるので,学習する世界に何らかの仮定を入れないと無理かと 何を仮定したか明示するよう論旨を修正していくしかなさそうな」 / Twitter
- ™さんはTwitterを使っています 「@shima__shima かなりはっきりと明示してる(定理の形で書いていて,冒頭が Suppose f is continuous.)&コメントもそれは認識してるんですよねえ.それはそういうものだ,みたいなコメントを返せばいいのかしら…….」 / Twitter
- しましまさんはTwitterを使っています 「@tmaehara Unrealistic という考えかもしれないので,妥当だという支持材料を足してみるとか」 / Twitter
- ™さんはTwitterを使っています 「@shima__shima なるほど,ありがとうございます(連続性を unrealistic と思うのは想定してなかったです……).」 / Twitter
- しましまさんはTwitterを使っています 「@tmaehara しきい値で不連続はあり得るのでは?」 / Twitter
- ™さんはTwitterを使っています 「@shima__shima いくらでも不連続な関数は考えられるんですけど,ごく一般的な教師付き学習の設定で置く仮定としては連続性はかなり弱いものだと思っていたので(&稠密だから期待値が取れることの仮定とそんなに変わらないので),それを unrealistic とわざわざ指摘されるのはよくわからないですね…….」 / Twitter
- しましまさんはTwitterを使っています 「@tmaehara それなら,それなりに誠実に答えておけば,SPCはスルーしてくれるのでは?」 / Twitter
主成分分析と因子分析の違い
- Tetsuo IshikawaさんはTwitterを使っています 「主成分分析(PCA)と因子分析(FA)の違いについて、概念的な操作の方向(観測量から分散を最大化するような合成変数を作るのか、それとも観測量の背後にあると想定される潜在的な構成概念を浮かび上がらせるか)が大きい認識だったが、誤差のモデル化の差異をこんなイメージで説明するのは初めて見た」 / Twitter
- Fernando RosasさんはTwitterを使っています 「The difference between PCA and factor analysis in a single picture! Key difference: how noice is modelled. (Source: https://t.co/FrOHmqOfZc) https://t.co/swLdqpRnfB」 / Twitter
- pca - What are the differences between Factor Analysis and Principal Component Analysis? - Cross Validated
- Tetsuo IshikawaさんはTwitterを使っています 「誤差に相関を許すかどうかをピクト化するとこんな風になるイメージ図で、分かりやすくなったような、よくよく考えるとやっぱり煙に巻かれたような。式で見て比較した方がストレートフォワードだという意見もあるかもしれない。 ともあれ、このstats.stackexchangeの解説は示唆に飛んでおり大変秀逸だ。」 / Twitter
自然の斉一性
確率
- 伊津野 英克さんはTwitterを使っています 「客観ベイズの立場に立つなら、頻度確率が主観確率に内包されるのは自明だろうなぁ、ていうかその方が自然に思えるけど。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@hidekatsu_izuno 客観ベイズは(定義によるんですが)事前分布を無情報にすることですね。ここで言う客観的ベイズって主観ベイズにおける事後分布な気がします。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「@kenmcalinn 本の説明に従うなら主観確率に補正(観測済みの頻度に基づく合理性)と曖昧化(無差別の原理)の制限を加えたものだと書かれていました。過去のデータを元に事前分布を設定(≠経験ベイズ)したようなものかなぁ、と思っていました。用語の使い方は気をつけないとまずそうですね。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@hidekatsu_izuno 前者と後者って相反してませんか?笑。前者は普通の主観ベイズ(合理性の定義によりそうですが)、後者は客観ベイズですね。ただ長い議論の結果、無差別の原理は無知(ignorance)を表してないし無知を事前分布で表すことはたぶん不可能って結論になりました。このへんの議論は哲学のほうが遅れてるかと。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「@kenmcalinn 「合理的解釈を必ずしも選択しないことも可」ということを表現するための仕掛けだそうです。無理やりくっつけました感は否定できないですかねw 2010年くらいの文献が挙げられているので、たしかに統計学サイドの方が議論が進んでいるのかも。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「もはや量子論が情報に基づくものという理解がスタンダードとなった現在、確率の定義と物理世界においてなぜ再現性があるのかという話は分けたほうがいいんじゃないかなぁ。傾向性解釈は後者に引きずられてる感じ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「確率=主観確率だけど、(相対論や量子論に対するニュートン力学がそうであるように)たまたま身近な物理空間では斉一性があるが故に、特殊形としての頻度確率が便利なタイミングが多い、と理解することにしよう。」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「自然の斉一性の否定だ」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「こういうのを「発見」するための推論はアブダクションであって、以降諸事象は演繹的に見られるわけだが、「先にルールがあるからルールに沿ったものしか見つけられない」とか「多くの人がそう信じるからそうなってしまった(それ以前は違った)」という可能性は本当に無いのだろうか?」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「多分、昔からリンゴは木から落ちていただろうが、それが地球に引かれて落ちるようになった(あるいはそう見えるようになった)のは、ニュートン以降だったとしても多分誰もそうだとは気づけまい。 自然数の乗法が交換するとみんな信じたから交換するようになった、あるいは交換しない自然数が」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「「見えなくなった」のだとしても、誰もそうだとは気づけまい。」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「@__pandaman64__ 前半の解釈ではあくまで反例の発見に心理的な困難があるだけで、客観的には自然の斉一性を否定しませんね(ただ主観的なものと客観的なもので支配しているルールが違うだけで)。 後半の解釈は一旦は自然の斉一性を否定していますが、それでも「多くの人が信じたように振る舞う」という法則が追加された」 / Twitter
- 井山梃子歴史館さんはTwitterを使っています 「@sanjutsu_yu 「先にルールがあるから...」は一種の実在論者で大元の人(「我々が...」)と同じ意見であるように見えますね. 『「多くの人が信じたように振る舞う」という法則』自体は斉一的であることが可能かもしれませんが,よく言われる斉一性(実験や宇宙観測による過去の推測の正当化)自体は破ってそうですね」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「@__pandaman64__ ですね 特にそのへんの仮定は「便利(というかないと何もいえない)から置いた」という意味が強いものなので、(一般に受け入れられるかはさておき)一度くらいはちゃんと懐疑してみても罰当たらないでしょうという感じがあります。」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「強い自然の斉一性 「自然はある程度の規則性を持っており、誤差や時々明白な誤りはあれども現在の自然科学はそれをある程度近似している。」 弱い自然の斉一性 「自然はある程度の規則性を持っているが、それを自然科学が記述できているかはわからない。あたかもサイコロで数回同じ目が出たからグラ賽」 / Twitter
- Aaron先生はゆるゆる就活さんはTwitterを使っています 「だとイチャモンをつける博徒のようなものかもしれない。」」 / Twitter
永劫回帰の思想(決定論)
- yamaguchishoさんはTwitterを使っています 「この方の問いはとても自然です。 答えは「イエス」でありえます。 私自身、永劫回帰の思想を知った瞬間に《これは決定論だ》と直感しました。ただし――ここからが重要だが――《なぜ永劫回帰は何かしらの決定論を含意しうるのか》を説明するのは難しい。私は十年以上説明できませんでした。(つづく)」 / Twitter
- kandekさんはTwitterを使っています 「「永遠回帰(永劫回帰)」って決定論のうちのひとつなのかな?」 / Twitter
- yamaguchishoさんはTwitterを使っています 「永劫回帰が何かしらの決定論を含意する理路は以下。 永劫回帰では、t1からt2の期間、t2からt3の期間、t3からt4の期、(以下同様)で完全にそっくりなこと(いわゆる質的なコピー)が生じる、と仮定します。 この場合、t1~t2期間のある時点で、t2~t3期間の任意の時点の出来事が決まっている。(続く)」 / Twitter
- yamaguchishoさんはTwitterを使っています 「同じことはそれ以後の期間についても妥当する。かくして永劫回帰は何かしらの決定論を含意する。(Q. E. D.) 押さえるべきは、これは因果的決定論ではない、という点。むしろ、t1~t2の時点ですでに、t2~t3の時点の出来事が或る意味で「在る」、というタイプの決定論です。(続く)」 / Twitter
- yamaguchishoさんはTwitterを使っています 「これは、永遠主義が或る意味の決定論を含意する、というのと似た理路です(永遠主義においては、未来の出来事はいまの時点で或る意味で「在る」)。そして、「決定論」という語で因果的決定論のみを理解するひとは、この理路を退けるでしょう(これは言葉づかいの問題です)。(了)」 / Twitter
- yamaguchishoさんはTwitterを使っています 「先ほどの問題をさらにニーチェの設定に近づけて考察したくなった。 ニーチェ的永劫回帰の世界では、 ..., T_-2, T_-1, T_0, T_1, T_2, T_3 ... という具合に過去向きと未来向きに永遠の時間が横たわっている(T_iたちは同じ長さの時間インターバル)。 (つづく)」 / Twitter
- yamaguchishoさんはTwitterを使っています 「ここで、各T_iに完全にそっくりなこと(質的なコピー)が生じている、と前提する。この場合に何かしらの決定論が導出されるか。 第一に、..., T_-2, T_-1, T_0, T_1, T_2, T_3 ...がいわば「現実的無限」として全体として存在するとき、あらゆる時点の出来事は無差別的に「在る」。(つづく)」 / Twitter
- yamaguchishoさんはTwitterを使っています 「この場合、永遠主義が一切を既在化し或る種の決定論を導き出すのと同じ仕方で、決定論が導出される。 第二に、先の永劫回帰の世界に真の意味の「生成」があるとする。この場合《現時点の生成へ至るために無限の時間が「経過」した》というお馴染みの目眩のする仮定を受け入れることになる。(つづく)」 / Twitter
- yamaguchishoさんはTwitterを使っています 「この仮定を受け入れれば、後は単純である。この場合、任意の時間インターバルの出来事は、先立つインターバルのコピーである――それゆえ、任意の時間インターバルの任意の出来事は、前もってそのような仕方で決定されていたことになる。かくして決定論が導出される。(Q. E. D)(了)」 / Twitter
主体性
- Shiro KawaiさんはTwitterを使っています 「へええ。フランスの劇場では本番前にMerde!と声を掛け合うそうな。Merde = 糞 https://t.co/1QKRUeYwfb」 / Twitter
- 翻訳が絶滅するとき――翻訳がすべて機械によって行われる日など永遠にやって来ない - ENGLISH JOURNAL ONLINE
- Shiro KawaiさんはTwitterを使っています 「ところで文中の、機械翻訳の限界についてだけど、情報という意味では肉体の存在や社会との関わりなども(コストを度外視すれば)情報にエンコーディング可能だと思う。線が引けるとすれば、正解のない問いに答える主体として責任を取れるかどうか、という点じゃなかろうか。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「ある言葉の訳としていくつも候補の中から一つを選択するとき、訳者は自分の存在を懸けている。あらゆる表現行為に言えるんだけども。もちろん理論的なバックアップはあるけど、どこまで支えを求めるかの選択まで含めて、究極は「俺がここまで調べてこう解釈するからこうするのだ」という主体的判断。」 / Twitter
- Shiro KawaiさんはTwitterを使っています 「時にはそれが、過去の事例からみて外れ値になることもあり、そうなったらその正当性を担保するのは訳者の覚悟しかない。辞書にこうあるとか、学習データのせいだとか、人のせいにできないのだ。 機械翻訳にそういう主体性を持たせられるだろうか。」 / Twitter
統計学と科学哲学・再現性
- Ken McAlinnさんはTwitterを使っています 「物理って結果がでやすい(実験とかでの再現性が高い)分野なのでその分結果のハードルが高い(eg 5σ)し、不確実性が低いので求められる統計水準も低く、同様に求められる哲学的な要求水準も低い(compatibilismで十分みたいな)。なのである見方では簡単な分野と言えると思う(数学的な難しさとかの話は別)。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「統計学って科学哲学とは切っても切り離せないんですが、物理学では統計学は使わないんでしょうか。」 / Twitter
- Minaka Nobuhiro 新刊『読む・打つ・書く』発売中!さんはTwitterを使っています 「科学哲学に関する須藤靖さんの主張は,彼のホームグラウンドである “物理学” では正しい認識かもしれませんが,ワタクシのように “生物体系学” の現代史を知っている者にとってはただの偏狭な間違った認識ですね.個別科学ごとに「科学と科学哲学との関係」はそれぞれ異なるということです.」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「物理ではJaynesがベイズを使って物理学をやってましたね。個人的にあまり好きなスタイルではないですが。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「でも他の分野って再現性が低かったり実験ができなかったり不確実性が高いので、その分結果のハードルは低くならざる負えないし、求められる統計水準も哲学水準も必然的に高くなる。なので難しい。 物理学者が他分野に進出して失敗するのは分野特有の結果のハードルの高さと頑健性から自分たちの」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「やりかたの正当性を信じてるけど、それってあくまで「簡単」なケースにしか適応できなくて「難しい」問題に当たると(当たり前だけど)うまくいかない。でうまくいかないとその分野(というか物理以外を)科学じゃないとか統計学はいらないとか科学哲学は無駄とか言う。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「でもそれって「我々はそんな難しい問題を考えなくていい分野にいるんですよ」って言ってるにすぎないと思う。それに対しては「それはよかったっすね、うちは難しいんで(統計とか哲学とか)必要なんですよ」としか言えないんで、「科学では〜」とか「科学者は〜」とか一般化しないでもらいたい笑。」 / Twitter
- Toshiaki KOUNOさんはTwitterを使っています 「@kenmcalinn むしろ物理や化学の方が例外的に再現性が高いんですよね。でも、そちらの方が普通だと勘違いしている人が多い。物理現象でも地震みたいに再現性があるのか疑わしい現象もありますよね。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@tkounoeconomist そのとおりですね。ある種のセレクションバイアスだと思います。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「まぁ実験とか観測とかで統計学は使うと思うんですが(加速器とか天体物理とか)、そもそも複数の仮説がある状況が物理では何回もあったと思うんですが、それが取捨選択されてくプロセスはベイズなんですよね。結果が明らかな(不確実性が少ない)場合はそのプロセスが単純化されるってだけだと思います。」 / Twitter
- 科学哲学たん/敷衍 真理さんはTwitterを使っています 「統計力学というものは物理科では必修レベルですが、科学哲学に出てくるような統計学観とはほど遠い扱いをされている実感です。(真に統計学と呼べる手法を使っているのは物理でもごく一部?)」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「伊勢田先生の書評読んで「えっ、確率の哲学における頻度論と統計学の頻度論って別物なの?」という驚き。科学哲学わけわからなすぎw」 / Twitter
- Daily Life:大塚淳『統計学を哲学する』を読む
- Jun OtsukaさんはTwitterを使っています 「「信頼区間は確率か否か」問題、やはり確率の定義(意味論)の問題だと思うのですよね。「区間が真値を含む」ということの確からしさという主観解釈的な意味での確率ではないけど、「推定を繰り返したときに含む割合」という頻度主義的な意味では確率と言える、というか言うべきなはず。」 / Twitter
哲学的思慮
- Ken McAlinnさんはTwitterを使っています 「特に昨今の再現性問題などを考えるにそういう哲学的思慮は大事だと思いますよ。つい最近もこういうディベートがありましたし、それを「宗教戦争」だって矮小化すると本質を捉えられずインパクト0の研究をすることになるのでは。いやもうそうだけど。 https://t.co/sD9fnKmF74」 / Twitter
- Statisticians Debate Issues Central to Inference and Estimation | National Institute of Statistical Sciences
- Ken McAlinnさんはTwitterを使っています 「インパクト0はクロムウェルの法に反してましたね。エプシロンに訂正します。」 / Twitter
DAG
- Ken McAlinnさんはTwitterを使っています 「正直DAGが次のp値になりそうな感じがして危ういかなって思った。」 / Twitter
- oosugi naoyaさんはTwitterを使っています 「今起きている革命、「因果革命」とは [statistics] on #Qiita https://t.co/erwQLLyA9t」 / Twitter
- 今起きている革命、「因果革命」とは - Qiita
- Ken McAlinnさんはTwitterを使っています 「ざっと読んだ感じ「ベイジアンネットワークや統計的因果推論の考案者であるJudea Pearl」は事実誤認だし、「因果ダイアグラムと名付けた有向非循環グラフを導入することで調整すべきか否かを決定できるわかりやすい方法を提案しました」も結構ニュアンス違う。あとDAGで観測データと意思決定は無理。」 / Twitter
- oosugi naoyaさんはTwitterを使っています 「@kenmcalinn ご指摘ありがとうございます!事実誤認とニュアンス違いの件は自分の方で再度勉強・調査できるので行いますが、「DAGで観測データと意思決定は無理」の意味を捉えきれなかったのでお手数ですが補足・解説いただけると助かります」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya DAGがうまくいくのはシステムが完全に特定できてる状況なんですが、一般的な観測データ、意思決定の場面ではできないですよね(もちろんどのくらいクローズドな状況かつ操作できるかにもよるんですが)。DAGは「便利な机上の空論」だと思ってるんですが、これは「仮定の可視化」に対して有用であっても」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya ごちゃごちゃした現実上の観測データとかビジネスにおける意思決定には向いてないです。簡単な例だとxyzと変数がある状況でDAGを指定しても現実ではabcと無限に変数があるしその指定したDAGが正しいとは限らないのでうまくいかない可能性があります。特に経済データだとそうですね。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya これとか参考になるかもしれません:https://t.co/YEwOuNYc5P」 / Twitter
- 1907.07271.pdf
- arXiv abstractさんはTwitterを使っています 「@kenmcalinn @oosugi_naoya Check out the abstract! https://t.co/1PgWiToUKQ」 / Twitter
- [1907.07271] Potential Outcome and Directed Acyclic Graph Approaches to Causality: Relevance for Empirical Practice in Economics
- oosugi naoyaさんはTwitterを使っています 「@kenmcalinn なるほど!ギャップの正体がわかった気がします。私が暗黙的に自社のWebサービスの分析(自分の実務)にかなり引っ張られ、まさに「クローズドで操作しやすい状況」に認識が引きずられていました。共有された文献は目を通しきれていませんが(4章あたりですよね?)確かに経済データでは難しそう」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya ちなみにA/Bテストでも実は対象にネットワーク構造があるとうまくいかない時があって、同僚が研究してます(https://t.co/YCByyOgq3v)。もちろんこれもネットワーク構造がわかる強い仮定があるのですが笑。」 / Twitter
- 1705.05752.pdf
- arXiv abstractさんはTwitterを使っています 「@kenmcalinn @oosugi_naoya Check out the abstract! https://t.co/v1JegxcxGu」 / Twitter
- [1705.05752] Limitations of design-based causal inference and A/B testing under arbitrary and network interference
- Ken McAlinnさんはTwitterを使っています 「@oosugi_naoya DAGがうまくいくのはシステムが完全に特定できてる状況なんですが、一般的な観測データ、意思決定の場面ではできないですよね(もちろんどのくらいクローズドな状況かつ操作できるかにもよるんですが)。DAGは「便利な机上の空論」だと思ってるんですが、これは「仮定の可視化」に対して有用であっても」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「Pearlの書いたことの受け売りだと思うんだけど、統計/経済だとRubin流が主流で、それなのはやっぱりそれなりの理由があるんですよ。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「前もやりとりあったけど、DAGをあくまで「仮定の可視化」と捉えるべきところを「因果関係が分かる方法」まで解釈すると今後DAGを指定さえすれば因果関係がわかるのでこれが因果ですっていう人が大量にでてきてものすごくめんどいことになりそう。」 / Twitter
因果関係
- くまだ総研(久萬田巌)さんはTwitterを使っています 「因果推論の話が話題ですが、個人的には語感の問題か因果推論=統計的因果推論みたいな使われかたをちょくちょくしているのがあまりよろしくない気がしますね(日本語だけ?)例えばDAGなどで定義されてる因果関係は、日常的な用法や科学哲学で議論される因果関係よりかなり狭い定義という理解なので。」 / Twitter
- くまだ総研(久萬田巌)さんはTwitterを使っています 「この辺りの因果概念に関しては松王先生の「科学哲学からのメッセージ」が非常に詳しいです」 / Twitter
- くまだ総研(久萬田巌)さんはTwitterを使っています 「あとはいつものことながら、因果関係なるものにおいても、発見の文脈と正当化の文脈は違いますよ、ということかなと思います。」 / Twitter
- くまだ総研(久萬田巌)さんはTwitterを使っています 「そもそもわれわれ人間は因果関係なるもののこれや!という明確かつ包括的な定義をまだ持っていないという点は知っておいて損はない気がします。」 / Twitter
- くまだ総研(久萬田巌)さんはTwitterを使っています 「(メチャ良い本なので売れてほしい) 科学哲学からのメッセージ:因果・実在・価値をめぐる科学との接点 https://t.co/VPtjqMch3Z」 / Twitter
- 科学哲学からのメッセージ:因果・実在・価値をめぐる科学との接点 | 政浩, 松王 |本 | 通販 | Amazon
- くまだ総研(久萬田巌)さんはTwitterを使っています 「あ、こちら誤解を招きかねない表現になってしまっていますが、恐らく話題の出所と思われるoosugiさんが書かれている元記事がそうという話ではなく、あくまで界隈での一般的な用法の話です。(記事の内容は知らないことばかりなので、大変ありがたいです。しっかり読んで勉強したいです)」 / Twitter
- くまだ総研(久萬田巌)さんはTwitterを使っています 「(誤)ちょくちょくしているのが (正)ちょくちょく(界隈で)されているのが」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「ランダムに生成した系列がたまたま因果関係があるように見えてしまうことが否定できない以上、プロセスを無視して機械的手続きだけで因果関係を確定することが無理なのは自明な気が。」 / Twitter
統計的因果推論
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「非常に参考になります。因果推論も仮定の明確化が超重要ですね。 https://t.co/nBwE2etUvL https://t.co/71buObKlVM」 / Twitter
- 統計的因果推論入門の講義資料を公開しました - Unboundedly
- 統計学における因果推論(ルービンの因果モデル) – 医療政策学×医療経済学
- 心理学における因果推論(キャンベル) – 医療政策学×医療経済学
- 伊津野 英克さんはTwitterを使っています 「結局、因果推論って、よくわかんないや。「重回帰分析で因果関係がわかる」と「ベイズ推定 or ベイズネットで因果関係がわかる」と「統計的因果推論で因果関係がわかる」の違いが何なのかよくわからん。グレンジャー因果が因果のサブセットしか扱っていないのはわかるけど。」 / Twitter
- uncorrelatedさんはTwitterを使っています 「重回帰分析で因果効果が測定できる条件を考えて、統計的因果推論をその条件を満たした推定だと整理するとよいと思います。大久保 (2019)「因果推論の道具箱」が分かりやすかったです:https://t.co/cJkljIfa6E 矢印の向きを考える因果探索は、追いかけていないので分かりません('-' )\(--;)BAKI」 / Twitter
- 因果推論の道具箱
- 伊津野 英克さんはTwitterを使っています 「@uncorrelated まさにその資料を読みながらわからんなぁ、と思ってたのでw 因果推論が因果のサブセットを扱ってるとして、じゃあ従来の手法は何を扱ってるのかな、と。時間的前後関係が足りない?」 / Twitter
- uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno 因果の向きをどれぐらい客観的(≒他人に説得的)に仮定できるかでしょう。RCTや自然実験だとx→yの因果は明確に仮定できますよね。PSMなどマッチングだと、マッチングによってy→xへの因果が無くなっていると考える事ができるので、x→yの因果しかないと仮定できます。TSL/IVであれば、」 / Twitter
- uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno y→zにならないzを探すことで、y→xに邪魔されないように、z→x'→yと因果の向きを揃えます。他にもありますが、まぁ、それぞれ仮定があるので、説得できるかはケースバイケースですが、因果の向きを定めて考えて問題の無い推定モデルぐらいに捉えてよいと思います。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「@uncorrelated 因果関係の三原則というものがあるそうです。これが科哲的にどこまで正しいものかはわからないですが、2の共変性はどの方法も考慮してそうです。3の交絡と1の時間的前後関係をどう担保するかという違いなのかもですね。 https://t.co/gL4NHCjHeN」 / Twitter
- 因果関係を支える三つの基本的原則 - アイデアの散策
- uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno xₜ₋₁→yₜの仮定を、予測を考える経済学だと許してもらえないときがありますが、それはさておき、重回帰分析一般だとy→xがあると数理的に推定量がおかしくなりますし、z→x; z→yでzが観測できない場合は単なる相関と言う事になります。」 / Twitter
- uncorrelatedさんはTwitterを使っています 「@hidekatsu_izuno 因果の向きx→yを仮定できないときに、何とかx→yを仮定する方法/y→xの影響を制御する方法(e.g. SCM, DID)と言った方が良いかもです。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「因果推論、ようは今まで記述でしか表現できなかった因果性に関する仮定をシステマティックに表現し検証できるようにするするためのフレームワーク郡って感じ?」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「どちらかと言うと実験計画のための手法なのかなぁ、と。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「現代哲学のキーポイント 因果性などを読んだ結論としては、科哲として因果性が何か結論は出ていないが因果推論は因果性のサブセットを扱っているから、その範囲では大丈夫、ということのように感じる。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「Pearl 流、Rubin 流因果推論のベースとなる介入主義は因果性とは何かという科哲的な興味の解明には全く役に立たないが、実用上問題のないレベルで因果性を表現できるようなので安心して利用できる。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「Pearl 流因果推論(DAG)が一番包括的だが、原因が出揃ろう必要がある。Rubin 流因果推論は適用できるパターンが限られるものの、これで因果性があることがわかれば、因果性があるとみなして良いようだ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「ベイジアンネットワークは、Pearl流、Rubin流とは異なる確率上昇説に基づく理論だが、必ずしも因果関係を明らかにできず疑似相関の問題を解決できていないようだ。DAGと組み合わせて使うのがよさそうではある。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「DAG と書くと誤解を招くか。バックドア基準と書く方がよさそう。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「もしかして、ベイジアンネットワークと Pearl 流因果推論って同じものを指してる?」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「科学哲学と統計学で概念が入れ子になってるからややこしい。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「結局、因果性を保証しているのはベイジアンネットワークじゃなくてバックドア基準なんだな。」 / Twitter
- ミルの3条件(因果関係の存在を主張する根拠) | Dr.Clover’s Computer Clinic
- 因果推論とは何なのか - hidekatsu-izuno 日々の記録
- グラフィカルモデルに基づく因果探索手法の調査 - Fire Engine
- 機械学習モデルの局所的な解釈に着目したシステムにおける異常の原因診断手法の構想 - Fire Engine
- 協力ゲーム理論のシャープレイ値に基づき機械学習モデルの予測を解釈するKernel SHAPの理論と実装のまとめ - Fire Engine
- 機械学習の予測を解釈するKernel SHAPの高速性と拡張性の向上を目指したライブラリを開発した - Fire Engine
- 時系列性を考慮した因果探索手法VAR-LiNGAMの紹介|Dentsu Digital Tech Blog|note
- 伊津野 英克さんはTwitterを使っています 「因果探索手法で経済モデルが出来上がると思いはもちろんしないんだけど、理論モデルと現実のデータから作られたモデルでどこが同じでどこが違うのかは見てみたい。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「説明、予測、因果効果、という区分けはよくわからないなぁ。説明と因果効果は目的は同じで適用できる範囲の差しかないように思える。記述に至ってはさっぱりわからん。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「これ読む限り、対比するような話じゃなく見えるけどなぁ。 https://t.co/lWzvbrmdOw」 / Twitter
- 「記述」と「説明」との差 : 最前線に立ち続ける覚悟はあるか
- 因果推論における未観測の共変量の影響を考える感度分析 - 名前はまだない
茂木 健一郎
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「たしかにダメダメな印象(笑) ニューラルネット基礎の「逆誤差伝播」の回路すら脳に見つからない状態だったはず。 (また最強の碁や将棋は、棋士の棋譜を使わず、自己対戦のみで最強に) https://t.co/jNzNTwRNAl」 / Twitter
- タクラミックスさんはTwitterを使っています: 「茂木健一郎氏が人工知能や深層学習を十分に理解しているとは疑わしい記事。確かにある程度まで人工知能による英語翻訳は飛躍的に進んだが、それでも明らかに人間未満だ。決定的に欠けている部分を軽視して英語学習に安易に応用するのは疑問> 人工知能から学ぶ「英語学習法」https://t.co/EXvv2b6NqW」 / Twitter
- 人工知能から学ぶ「英語学習法」 | PRESIDENT Online(プレジデントオンライン)
- タクラミックスさんはTwitterを使っています: 「…最も重大な疑問点はこの部分。 「人工知能が実行している学習法は、すべて、人間の脳がやっていることである。」 と茂木氏は断じているが、私が知る限り、人工知能は人間の脳がやっているであろうことを真似てはいるが、脳の仕組みを確実に解明した上での事ではない状態だった筈。私の認識不足か?」 / Twitter
- タクラミックスさんはTwitterを使っています: 「…私の懸念は、深層学習が機械翻訳の精度を向上させたと言っても、必要な学習量や学習に必要な演算量は人間の能力を超える膨大なもので、同じ事を人間に適用するのは無理があるという事。人間にとって効率の良い学習法をこそ採用すべきなのに人工知能ブームに乗って世間を惑わせるだけにならないか?」 / Twitter
- タクラミックスさんはTwitterを使っています: 「…「人工知能は人間の脳では出来ない事をやっている」というのが私の認識だ。人間の脳がやっている通りの事をしなくても、結果は出せるというのが、今流行っている人工知能界隈のやっている事だと理解している。よって、人間が学習する際に、深層学習と同じ手法を用いるのは無理があると私は思う。」 / Twitter
- タクラミックスさんはTwitterを使っています: 「…反復学習の効果については人工知能以前から人間の学習成果として確認されている。茂木氏が人工知能分野の深層学習に中途半端に言及した上で 「人間が人工知能に学ぶ日が来るとは思わなかったが、時代は変わった。」 とお書きになるというのは、脳科学分野の著名人の一人として、いかがなものかと思う」 / Twitter
histric
histric-1
- Kazuho OkuさんはTwitterを使っています 「コロナ関係の計算してて思うのは、統計使ったソフトウェアのチューニングはPDCAサイクルをさくさく回せるので、統計の扱い方の訓練に向いてるんじゃないかなぁってこと。感染症の予測と対策とか練習も失敗もできないし」 / Twitter
- ゆきさんはTwitterを使っています: 「Network-Based Website Fingerprinting https://t.co/r1vAw2seKs 機械学習を用いて、暗号化されたトラフィックから閲覧ページを推測する系の話し流行ってるよね。(あまり論文は読まないが、draftになると読む系男子orz) #yuki_id」 / Twitter
- draft-wood-pearg-website-fingerprinting-00 - Network-Based Website Fingerprinting
- Daisuke OkanoharaさんはTwitterを使っています: 「NNは斉次函数(ReLUを使った時など)であり指数損失(クロスエントロピー損失など)を使って学習する場合、勾配降下法による学習は正規化マージン最大化に対応し、その収束レートも示せる。はじめて現実的な条件で非線形多層NNで最大マージン化がされていることが証明された https://t.co/GDSd1fc3uW」 / Twitter
- Gradient Descent Maximizes the Margin of Homogeneous Neural Networks | OpenReview
- FadisさんはTwitterを使っています: 「ニューラルネットワークの誤差逆伝播で重みに対して上がってくる勾配が小さいと半精度浮動小数で計算した時に勾配が消える問題に対して、誤差をn倍して逆伝播して、重みを修正する前に1/nすれば良い(ReLUとか使ってるとこれでいけてしまう)とかやりだすNVIDIAさんあたまいい」 / Twitter
- FadisさんはTwitterを使っています: 「半精度だとTensorCoreで爆速で計算できるからNVIDIAはディープラーニングに半精度を使って欲しいけど、ユーザは溢れを恐れて半精度に慎重になるから、スケールすれば半精度でも大丈夫そうな所を自動で見つけて半精度に置き換え、スケールを動的に求めながら学習するような最適化 AMP が作られたらしい」 / Twitter
- Mitsuo Yoshida; AI botさんはTwitterを使っています: 「深層学習を使った推薦手法が増えてきてるけど、ちゃんと比較すると古典的な手法に負けてるという話。再現性の問題や不適切な比較実験が多いことを指摘。 / Recsys 2019 ベストペーパーを読んだメモ https://t.co/B5e8FgENof #Qiita」 / Twitter
- RecSys 2019 ベストペーパーを読んだメモ - Qiita
- Agata NaomichiさんはTwitterを使っています: 「text-to-text transfer transformer めっちゃ良い。夢が広がるしアイディアも広がる。BART も似たような話だけど T5 は論文自体がめちゃくちゃ長い分、比較とか考察に富んでてかなり読み応えある。 https://t.co/9qCkluBHyG」 / Twitter
- [1910.10683] Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer
- みぽさんはTwitterを使っています 「中央値と平均値の説明、「村にビルゲイツが引っ越してきたときの、その村の世帯年収の中央値と平均値」という感じの説明が好き」 / Twitter
- Miura HidekiさんはTwitterを使っています 「イメージしやすい」 / Twitter
- FadisさんはTwitterを使っています: 「ニューラルネットワークの学習は「なんでも関数」と「非線形最適化」の組み合わせなわけで、ニューラルネットワークの学習を効率よく行う工夫の何割かは非線形最適化問題を効率よく解く手法と見做す事ができて、今ニューラルネットワークと関係ない所で「AdaBoundすげぇ!」ってなってる」 / Twitter
- AdaBound - Google 検索
- えるエルさんはTwitterを使っています 「お馴染みパターン認識と機械学習(PRML)のアルゴリズムをPythonで実装したリポジトリ 作者は日本の方だと思われ,実装も結構前からあったようですが,今になって海外の研究者に発見されて絶賛されている模様 実際かなりキレイな実装で,PRMLを読むときはかなり参考になりそう https://t.co/Ul9QklyYKk」 / Twitter
- ctgk/PRML: PRML algorithms implemented in Python
- Yasunori OhtoさんはTwitterを使っています 「証明に穴があったので、全面リライトしました。広く拡散、読んで頂けると嬉しいです。 https://t.co/wMxkMZQoJv」 / Twitter
- (PDF) Extract maximum clique using eigenvalue relation
- piqcyさんはTwitterを使っています 「研究発表された検索アルゴリズムを実際使える&検証できるようにするプロジェクト。Luceneで実装されている。検証のため様々なデータセットによるテストができるようになっており、新型コロナ関係論文もサポートされている。 https://t.co/jIgeRioC6o」 / Twitter
- castorini/anserini: A Lucene toolkit for replicable information retrieval research
- Kazuho OkuさんはTwitterを使っています 「3/23のデータ入れた。(7日移動平均を使っていることもあり)大きな変化は見えない。 東京は、なんらかの対策強化が近いうちにあると思う(参考 https://t.co/YF1BCrHRw4) https://t.co/T2tT3sSSRV」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「そういえば株価チャートの移動平均、25日や75日の理論的根拠はなんなんだろう。件のグラフで7日移動平均使ってるのは、累計の対数グラフよりも感度が良く、かつ、平日休日の差に起因するもの含めノイズを消せるからなんだけど」 / Twitter
- Kazuho OkuさんはTwitterを使っています 「移動平均とかを使うアルゴリズムの標準化をみていると、指標の理論的根拠にうるさくなってしまう問題」 / Twitter
histric-2
- 山本 和英(自然言語処理)さんはTwitterを使っています 「「自然言語が本来持ち合わせる量子的特性を利用して、文法例文を量子回路に変換しました。その上で得られたプログラムを量子コンピュータに実装し、質問応答をさせることに成功しました」「長年の夢であった「意味を理解」し「文法に基づいた」自然言語処理が実現しました」 https://t.co/kmeyXg1ILi」 / Twitter
- 英国ケンブリッジ・クオンタム・コンピューティング、世界で初めて量子自然言語処理における実証実験を実施 - CNET Japan
- Quantum Natural Language Processing - Cambridge Quantum Computing - Medium
- An introduction to t|ket> - YouTube
- ミライ小町【公式】さんはTwitterを使っています 「本日バンダイナムコ研究所が公開したDistilBERTの日本語事前学習モデルは、、、 BERTモデルと比べてサイズが約40%小さいし! 推論が約50%も速くって! 精度は分類タスクで約90%なんですよ! すごーい!✨ https://t.co/hsa6Z16CFI」 / Twitter
- BandaiNamcoResearchInc/DistilBERT-base-jp
- Yuta.HさんはTwitterを使っています 「BigQuery MLで作成したモデルのTensorflow Saved Model 形式での取り出しが可能になりました!これによりBigQuery MLでPredictさせる機械学習モデルの生成だけではなくBigQuery ML自体がかんたんなモデルのフルマネージド分散学習環境として使えるようになりました。 https://t.co/zAnPTaumK0 #gcpja」 / Twitter
- Exporting models | BigQuery ML | Google Cloud
- Tomoyuki MorimaeさんはTwitterを使っています 「量子計算理論:オンライン教材 自宅学習をしている学生の方用に作ってみました。今後付け足していく予定です。 https://t.co/mrYXcvlTyc」 / Twitter
- lectures.pdf
- HELLO CYBERNETICSさんはTwitterを使っています 「統計的だが規則的な振る舞いがあるから学習できるのであって、本当にランダムなノイズを帳消しにできるわけではないのだが……。バラつきを機械学習で何とかしたい、みたいなの根本的におかしい。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「もちろん、(例えば囲碁など)素人目にはランダムに見えているものが、実際には何らかの規則に基づいているはずだ!しかし、それを解き明かすのは困難だ。という話は全然OK。 ここで言っているのはS/N比が極端に悪いものを機械学習に突っ込んでも何も生まれませんということ。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「データ収集におけるS/N比を良くする、特徴量を掴む、ということをしてみると、そこには意外とシンプルな規則があり、線形モデルないしルールベースでうまく行くということがあったりする。 予測できればOKはそうなんだけど、そういう土俵になってるかを調べるのはとても大切。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「囲碁でいうと、石の色を間違えてましたとか、石の置かれてる場所が違いましたとか、石を間違えて違うところに置いちゃます とかいうのが不規則に生ずる環境で、強化学習して絶対に見間違いせず、打ち手を誤らないようにします。 なんて無茶なんです。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「そもそもベイズの「信用区間」なるものを全く使わないのでよく知らなかったのですが、下記を見る限りでは明らかに信頼区間の考え方に寄せられてわけわかんない説明になっちゃってますね。 信頼区間(confidence interval)と信用区間(credible interval)の違い https://t.co/C0KTtsPhmR」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「まともに勉強していないので理解が怪しいですが、統計はもともとデータをある仮定の元で要約することによって人間が判断を行いやすくするというのが1つの目的だと思います。AIの時代では、計算機が高次元のデータを整然と処理し判断を行うので、要約をする必要がないケースが出てくる。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「件のベイズの「信用区間」が最たる例で、確かに人間にとっては区間を表示するのが直感的に解釈しやすいかもしれない。機械だと話は違う。むしろ、奇妙に要約された「区間」ではなく、大量のMCMCのサンプルなどを使った期待値計算やそれによる行動選択において人間を凌駕できる可能性の広がりがある。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「まとめると次のように予想します。 ・モデリング→しばらくは人がやるし、やりやすくなるようにツールも進化する ・推論計算→MCMC以外でも数理的に特性の良いアルゴリズムが今後も登場する(はず) ・事後分布の活用→人間だけではなく計算機が利用するケースが増える」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「やっぱpredictionって言い方が期待値上げすぎと思う。inferenceくらいでいい。既知の事象からわかる範囲のことしか出てこない。汎化って、未来を予測できる性能ではなくて、既知の事象からいかに本質的なパターンを抽出できるか、という性能に過ぎない(本質ってなんじゃいって話になるけど)」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「MLは高次元から低次元のパターン(多様体?)を抽出するのは得意だけど、ドメイン知識や常識はない。人間はその逆。この両者をいかに合成するかがカギ。CNN(2D畳み込み)の成功やベイズ等の統計の強みも人の知恵の外挿と思うし、DNNのデータ拡張は非効率な外挿。どれも未来予測ではなくITの開発手法。」 / Twitter
- ともい(Tomoi,S.)さんはTwitterを使っています 「今の時代であれば、文章を構成する言葉を数語入れればドロップダウンできる文章候補ができてて、ショートカットキーで選択すれば終わりとか、エージェントの域に来ててもいい気がしますが、作文ソフトを除き、そういう指向性のものってIMには全く降りてきてないような…。 (あればそれを扱ってみたい)」 / Twitter
- ともい(Tomoi,S.)さんはTwitterを使っています 「特に、入力した情報より多いものを返す系が発達していないなと、自分の見た限りでは感じています。 タイプの正確性以前に、個人的にはキータイプの速度を超えることがブレイクスルーの一歩ではないかと感じてまして…。」 / Twitter
- Isao TakaesuさんはTwitterを使っています 「NISTが策定中の「機械学習セキュリティ」に関するベストプラクティスのドラフト版。攻撃手法・防御手法の分類や用語を整理している段階。現バージョンの全文はPDFで確認することができる。 #aisec #jpsecai https://t.co/OXyKyin81x」 / Twitter
- Artificial Intelligence: Adversarial Machine Learning | NCCoE
- Agata NaomichiさんはTwitterを使っています 「強化学習やってると、gradient必要な計算とそうでない計算が混ざってよくわからなくなってくるんだけど、spinningup の実装読むと gradient いらない時はそもそも nd.array を返すような interface 設計になっていてとてもわかりやすい」 / Twitter
- 清 史弘さんはTwitterを使っています 「【清史弘からの提案 7 の説明案】 私が用意しておいたものをここにおきます。これを参考に(100%使ってもよいです)、この置換にたどり着くための話の動画を教育系のYouTuber のどなたかが作ってくれると嬉しいです。2枚になります。 #清史弘からの提案 https://t.co/VzILwv12gG」 / Twitter
histric-3
- Shinji KonoさんはTwitterを使っています 「統計に必要な数学はいろいろあるが、可視化できないなら、その結果に意味はない」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「多田明功さん「実務における数理最適化技術と実践」。2019年度後半より数理システム主催のワークショップと同タイトル。実行不可能な場合にも何かしらの答えを返して欲しいが、単純に緩和問題の解を返すだけではどこに違反が出るか分からず対処しにくいので、後調整しやすい特定の制約に違反をしわ寄せ」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「小熊祐司さん「工場ピーク電力抑制を目的とした生産設備運転計画最適化 ―最大値最小化とメタヒューリスティクス」。ピーク電力に応じて基本料金が決まるのでピーク電力最小化。最大値最小化の形で目的関数値に寄与しない箇所の自由度から同じ目的関数値をとる多数の解が存在し分枝限定法には不向き。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「一方で実行解は多数存在するのでメタヒューリスティクス向き。近傍定義および目的関数設計を工夫。ピーク電力をそのまま目的関数とすると、ピーク発生時間帯のジョブの移動のみが目的関数への感度を持ち、全体的にジョブを調整して平準化するという自然な改善がされづらいので、平準化の誘導項を追加。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「奥田裕之さん「自動運転における実時間最適化とモデル予測制御」。衝突回避制約は非凸になるのか(確かに言われてみれば)。相手の”迷い”を低減する合流制御の話、モード切替を伴う予測モデルを用いるMPCの話、制約充足型自動運転の話など面白かった。」 / Twitter
- さっじーさんはTwitterを使っています 「富士通研究所のAI応用例だけど、災害避難経路最適化とか待機児童最適割当とか色々あって面白いなー ビックデータで学習させてブラックボックス化するんじゃなくて、数理モデルを基盤とした学習をすることで、なんでこの答えを出したのかを説明ができるAIができたりするってのはすごい」 / Twitter
- 全卓樹さんはTwitterを使っています 「物理学者から見た、ひとつの「世界の4分表」をどうぞ。ストロガッツ大先生のnonlinear dynamics and chaos 2014から。 通常は物理っていうと左上だけ、せいぜい右上まで含んだものをイメージするじゃないですか。でも実際はずっと広がってるし、最前線は他分野に浸食してるよって。 https://t.co/JdAeXiljS7」 / Twitter
- UmeponさんはTwitterを使っています 「もう少し手が空いたら,capacitated vehicle routing problem(CVRP)や,vehicle routing problem with time-window(VRPTW)などの典型的な配送計画問題が整数計画ソルバーでどれぐらい解けるかを色々と試したい.」 / Twitter
- Shinji KonoさんはTwitterを使っています 「統計って、少し勉強したけど散布図以上のことがわかる数学マジックは存在しないってのが自分の理解。因子分析は面白いが話題には登らないね。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「統計の勉強であれだったのは分母のnとn+1の差が重要とか言われたこと。いや、それ統計の分母だろ? もちろん、理論の整合性に必要なのはわかるけどさ。」 / Twitter
- Masataka EguchiさんはTwitterを使っています 「PRMLの序論をよく見たら、頻度主義とベイズ主義は確率解釈が異なり、ベイズの確率解釈は信念と密接な関わりがあり、さらに意思決定理論と組み合わせることで、パターン認識で直面する不確実性を伴う状況下での最適な意思決定を可能にするといったことが書いてありますね。」 / Twitter
- 田中統🇬🇧公認データサイエンティストさんはTwitterを使っています 「推定値の大切な性質 1) 一致性: データが増えた時、推定値は真の値に近くか 2) 不偏性: 推定値の期待値は真の値と同じか 3) 頑健性: ぶれにくい推定値か • 一致性は出来れば満たして欲しい性質です。 • 例えば、「平均値」は外れ値に弱いため「中央値」と比べて頑健性が低い指標です。」 / Twitter
- 田中統🇬🇧公認データサイエンティストさんはTwitterを使っています 「機械学習の Bias - Variance トレードオフは、不偏性と頑健性の天秤です。 例えばRidge回帰は、チューニングパラメータλが高くなるほど不偏性が下がり、代わりに 頑健性 が上がります。頑健性が低いモデルは訓練データに左右されやすく、つまり過学習しやすいのです。」 / Twitter
- Tsumoto🦧さんはTwitterを使っています 「今年読んだ論文の中で最も衝撃だったのが 「皮膚のニューロンが信号伝達だけでなく大脳皮質同様の計算処理を行っている」 というこの論文 https://t.co/XNnzihVQY0 信号伝達しかしないと思われていた指先の末梢ニューロンが, 実は接触したものの幾何学的情報を処理していたことが明らかになったらしい https://t.co/s72SgODTrM」 / Twitter
- Edge-orientation processing in first-order tactile neurons | Nature Neuroscience
- ノーン@レポ7さんはTwitterを使っています 「群の定義、これを数式として覚えようとすると頭のメモリを超えてしまうので、「結合的な二項演算で単位元と逆元」とコンパクトに覚えたら忘れなくなった。」 / Twitter
- Kohta IshikawaさんはTwitterを使っています 「特異学習理論が統計力学そのものかどうか判断できるほどに統計力学の方を知らないんだけど、統計力学の方で確率密度関数としての特異性が効いてくるケースってどんなのなんだろう。自発的対称性の破れとか?」 / Twitter
- 片桐 孝洋さんはTwitterを使っています 「で何度も書いていますが、個人的な見解は、今回の人工知能ブームも数年で終了する、です。 その後は、情報学基礎(ハードウェア、プログラミング)、数学(線形代数、統計・確率など)の能力がある人材に人気が集中するのでは、というのが個人的見解です。」 / Twitter
- 片桐 孝洋さんはTwitterを使っています 「機械学習ツール使えても、使っているアルゴリズムの収束性とか、パラメタ寄与率解析とか、できないと、製品の品質保証ができないので、製品が作れない。ということが、今までも繰り返してきている歴史です。」 / Twitter
- TarotanさんはTwitterを使っています 「(再告知) 信頼区間に対するFisher-Neymanの議論で,信頼係数を「係数」と呼ぶか「確率」と呼ぶかという議論もありましたが,以前の私の呟きでは誤読かつ見落としていました. 以下のブログでその呟きを訂正し,Neyman(1934)の該当部分を抜き出しました. https://t.co/lBDYbB60dG」 / Twitter
- TwitterでのNeyman(1934)に対する事実誤認の訂正 - Tarotanのブログ
- goto yutaさんはTwitterを使っています 「Googleの実用的すぎる神論文。 言語モデルの学習を効率化する為に、学習データから似たものを排除する手法を提案し、少ない学習ステップで同等以上の精度のモデルを学習できることを示した論文。 https://t.co/Cxho2TrBsa ソースコードも公開されている: https://t.co/j2lI33vEjA」 / Twitter
- google-research/deduplicate-text-datasets
- Fumihiro MatsuiさんはTwitterを使っています 「統計の取り方は慣れてるテーマでもほんと要注意なのにその比較はあかんやつやろってのがメディアとかではよくあって普段はまあそういうもんって思ってたけどコロナ禍とかではさすがにどっか監督する仕組み要るのではって思ったりする」 / Twitter
- Fumihiro MatsuiさんはTwitterを使っています 「そもそも関係を見るという事は本来散らばれる次元数より自由度数ががたんと減るほど強く縛り付ける機構が支配的と見なすわけで、さらに雑多混合な集団が一つの線に乗るというのはその雑多さによららず機構の各係数がみんな同じになっちゃうという相当強い事を要請するわけで気を付けないと危ないよなあ」 / Twitter
- Kunihiko Imai 🍱さんはTwitterを使っています 「ルールベースのものは「エキスパートシテスム」という名前で,90年代のブームでは AI に分類されていたな」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「ルールベース」って偽物AIの代名詞みたいに言われてますが、本来理想とすべきは明確なルールや法則を抜き出すことなんであり、それができないから機械学習やら確率やら使って何とかその場をしのいでいる、という見方もできます。」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「インタラクティブな Gaussian Belief Propagation (GBP) 入門。これは bayesian network上でメッセージ送受信を行うことで、推論結果を反復的 (iterative) に求める一般的なアルゴリズムである。GPUなどの上でスケールさせやすいため、今後普及していくと思われる。 https://t.co/1hmxYxvIc4」 / Twitter
- Gaussian Belief Propagation
- uint256_tさんはTwitterを使っています 「{expected==inferred}/{num of samples} が 98.9% らしい (確かに動いていそう)」 / Twitter
- uint256_tさんはTwitterを使っています 「手作業でMNISTモデルを書いてみました... (重みは別ファイル) 動いてしまいました... https://t.co/C9UrOnnfcZ https://t.co/SzkW2ZcHce」 / Twitter
- maekawatoshiki/mymnist
users
@sammy_suyama
2020
2020-11-24
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ほぼすべてのMLソリューションにおいて、限定された実験環境・データセット・テストベッドにおけるごまかしの「成果」から、いかに実運用に持っていけるかが最大の壁となる場合が多いので、このあたりの問題意識はしっかりとシェアしていきたい。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「このような限定的な成果を元の目標のサブゴールであると誤認してしまっているケースが多い。これはサブゴールではなく、単にオーバーフィット。MLに関わる人の多くが交差検証を理解しているにも関わらず、より広いマイルストンでのオーバーフィットに無頓着になってしまいがちなのが驚くべきところ。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「その実証実験で得られたやり方・モデルは、コスト面で横展開可能か?」 その質問にちょっと真摯に向き合うだけでこの問題はかなり回避される。(と同時に、無計画なPoCで短期に稼ぐだけのビジネスモデルは駆逐される)」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「たいてい言い訳として登場しがちなのが「もっとデータが集まれば将来的には解決する」と言って逃げるパターン。これは99%嘘なので注意です。本運用時のデータ収集に実証実験時と同じくらいコストがかかるようでは全くお話になりません。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「以前TFUGで「MLのモデリングは自動化できるか?」という話をしたのを思い出した。結論としては「自動化できるくらい予測の目標が明確であり、妥当な評価を行うためのデータ量が豊富であること」でした。正しいと思いますが、この前提条件、正直モデリング作業自体よりもはるかに満たすのが難しいです。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ブラックボックスな手法は使うのは容易ですが、それだけでは実用に耐える評価を下すまでの道のりが果てしなく遠くなる場合が多い気がします。」 / Twitter
2020-12-02
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習が予測する理屈は人間が理解できなくてもOK」っていうのは分からんでもない気がしますが、「理解」という事柄についてもう少し掘り下げる必要があると思います。続く」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「例えばAlpha Goの提案する手は一見人間には理解不能かもしれませんが、読み筋を示して行けば(途方もない苦労を要するものの)一応理解はできるはず。要は、要素を分解すれば最終的に人間が納得できる可能性があるのであれば、それは「理解できる」に入るんじゃないかと思います。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「人間が処理できないほど、1.考慮すべき項目が多数、2.探索すべき組み合わせが多数、といった場合には機械学習(というか」計算機)のアドバンテージが出るというだけの話です。これだけのことで、単なる技術をわざわざ「超人間的な知性の神秘」みたいな議論には進めない方が良いですね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「深層学習はパラメータ数が多く暗記できるキャパが大きいので、「深層学習が一番うまくいった」という実験結果は、まず課題設定の失敗(leakageなど)を疑った方が良いです(経験上、9割以上はこれ)。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「統計的予測に素養のない方達が、すぐに深層学習なり機械学習に飛びついてしまう昨今ですので、この辺りは十分にケアすべきです。解決は簡単です。あなたの作った手法が、本運用と同じようにデータが入ってくる状況で要求性能を発揮しますか?という問いに答えられるような実験設定をすることです。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「面倒臭がっているケースが多いと思われます。元データの散布図を見れば済む話を、わざわざ「機械学習の解釈性」なる技術でモデルの入出力の挙動を確認するなどは典型例ですね。」 / Twitter
- Masa YamamotoさんはTwitterを使っています 「本当のところで、どうしてこうなるのかわからない、と言うケースは少ない気がしますね。 検証が面倒だからやらないのか、そもそも適当に問題を扱っているか。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には「人工知能が人間の能力を越えた」みたいな文言は、くだらない週刊紙の表紙レベルに留めておくべきと思います。データが大量に保存でき、人間より早く計算できると言う時点で、計算機は人間を十分に上回っているし、現代の人工知能もその延長線上に過ぎません。」 / Twitter
2020-12-10
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ですね。マルチタスクや深層学習に限らず、複雑なlossの設計は人間には無理です。」 / Twitter
- Yuki Arase (荒瀬 由紀)さんはTwitterを使っています 「深層学習にマルチタスクさせると的確にタスクやロス関数設計の穴をついてくる(簡単なタスクのロスを下げ続けるマシーンと化す)のを見ると、「常識に囚われるな!問題は単純なのさ!」とか言って迷路の外側通ってゴールする方法をドヤってくる人みたいで味わい深い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「僕もさんざん(深層学習に限らず)lossの設計によって課題を解こうと四苦八苦した経験が過去にありますが、結論としては、やろうとしていることがちょっとでも複雑になってくると簡単に限界を迎えて黒魔術の世界に入ります。 確率モデルの設計の方がずーっと楽。」 / Twitter
2020-12-24
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「確かにLASSO(L1正則化)は使いにくいですね。データ表現としてのスパース性と、どの次元が説明しやすいか?という推定は分けて考えるべきなんじゃないかと思いますね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計だと、うまくモデルを設計すれば「データを表現するために少数の次元を使用すること」と「どの次元がよく説明できるか」というのを両立できます。言ってみれば前者はsparseで後者はdense。複数の次元間で表現力に変わり映えがないのであれば、説明のしやすさも同じくらいに推定されます。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「LASSOは結果の見た目もスッキリしていて、特に予測精度だけ気になっている場合は検討候補に入れても良いんですけど、もう1歩踏み込んで結果を説明したり手法を改善したりしたいときに「あれれ」となってしまいますね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ですね、説明には絶対使っちゃダメです。昨日と言ってることが違うじゃねーか、ってブチ切れられます。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズモデリングは、モデル設計の柔軟性や少量データ・低品質データの対処に強い分、技術的課題点をすべて計算量の課題にしわ寄せさせる傾向があります(はるか昔からそう)。逆に言えば、ハードや計算アルゴリズムの進化が、そのままベイズの応用領域の拡大に直結するという見通しが立てられます。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「MCMCの登場によって取り扱えるモデルの幅がどかっと増えた。最近は並列計算によってまたちょこっと増えた。量子コンピュータが活用できることになったら次はえらいことになりそう。」 / Twitter
2020-12-28
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「コインやサイコロの例から確率の概念を学ぼうとすると、「コインは1/2!」「サイコロは1/6!」のように“絶対的に正しい”確率が存在するかのように錯覚するんですよね。すべては数理的に簡略化するための仮定でしかないのに。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「こういう仮定を置くときは、もっと申し訳なさそうに述べるべきですね。「本当は物理シミュレーションとかいろんな人類の叡智を駆使すれば、もっと正確にコインの出目を予測できる可能性もあるのですが、そこまでの知識・技術を持ち合わせていないので、ここは仮に1/2とし話を進めさせていただきます」」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「前にも言いましたけど、こういう「サボり」を入れても「とりあえず議論を前に進められる」点が確率の良いところ。ほかに複雑な要因が絡む統計解析をするときは、コインの出目1つにとらわれ過ぎない柔軟さが大事な場合もあります。1/2なのか49/100なのかは重要でない場合が多い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習の解釈性に関して、僕個人としてはかなりネガティブな意見を持っています。「この手法を被せれば結果が解釈できるようになります」みたいなブラックボックス&お墨付き系の手法は、簡単で広まりやすい上に誤解ばかり招くので、新たなcrisisを起こす可能性が高い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「振り返ると、僕の「目的さえ達成すればどんな方法を使ってもOK」という今までのスタンスもちょっと反省しなきゃいけない気がしています。なぜなら、多くの人は自身の目的すら正しく認識していないから。「目的を達成するためのrequirementをしっかり整理せよ、手法はなんでも良い」の方が近い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「もちろん機械学習の解釈性が低いというのは、(これ自体非常に曖昧ではあるものの)課題意識としては正しいと思う。しかし、それを解決するためのアプローチや結果として起こりうる社会へのoutcomeに関しても気を配るべきなのでは。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「データサイエンスの仕事を続けていくのはそんなに複雑な話じゃなくて、①自らの解析スタイルに疑いを持ち常に崩していくこと、②自らの仕事の自動化を検討すること、の2点を頭に入れていれば大丈夫だと思います。難しくない、とは言っていません。」 / Twitter
2020-12-29
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「自分の「ベイズ深層学習」ですが、別に深層学習をベイズモデルとして構築し直してパワーアップうぇーいする話じゃなくて、深層学習の経験的にうまくいってるとされている謎テクニックを条件付き確率の考え方でスッキリ整理するよ、の方が近いです。 https://t.co/eReM4hHMJZ」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ただ、これで深層学習の応用上&研究上の諸々の問題が解決するわけでもないです。まあ、新しく登場する色んなテクニックに惑わされたりする機会は減るだろうし、既存手法を合理的にカスタマイズするヒントとかは得られるかもしれない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「問題設定が誤っているためドツボにハマるという話、AI界隈本当に多い。 心を知るための人工知能: 認知科学としての記号創発ロボティクス https://t.co/k2qwwpcklq https://t.co/wSMglertwr」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「生成モデルあるいは潜在変数モデルに慣れ親しんでいる人にとっては自然な考え方だし、現にそういった創発現象が意図して起こせることも、それを使って工学的な問題解決ができることも良く知っている。ただ、人間と同じ挙動を再現するモデル設計は極端に難しい。」 / Twitter
histric-1
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「カグルなどもほとんどは教師ありを使うような課題だと思うのですが、要となる前処理・特徴量抽出はほとんどが教師なし。利用頻度は教師あり/なしで8対2くらいかもしれないですが、重要度はそのまま逆転しますね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「教師なしモデルを使いこなすor設計できる人が機械学習を制する。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「もう1歩進むと、 実践的な統計モデリングに限定して言えば、教師なし/教師ありといった区別はしない方が応用の幅が広いことは自著でも簡単に説明しています。 https://t.co/5W7PVnk9qU」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「うーむ、なぜでしょう。「xとyのペアを与えれば機械が勝手に学習して予測できるようになる」という噂が流布されているからでしょうか?」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「機械学習は教師ありと教師なしに分類される」という入門書籍の定番の1行目の文句を信じ切って進んでしまうと、多くの人が機械学習の膨大な応用範囲と一貫した手法の理解を見過ごしてしまうことになる。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「Juliaを使うとガウス過程回帰が実質10行程度で実験できる。 https://t.co/wXVwwL9KwB」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ハイパーパラメータを調整したければForwardDiff.jlなどを使えば追加数行でできると思います。 https://t.co/68N1y40M1g」 / Twitter
- JuliaDiff/ForwardDiff.jl: Forward Mode Automatic Differentiation for Julia
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「結果の可視化以外では特別なライブラリは一切使用していません。基本的に線形代数の計算式を並べるだけで実装できる。ブロードキャストをうまく使うことがポイントですね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「実装したい人へのオススメは、適当に「Gaussian process kernel」とでも検索して、9行目・10行目を別のカーネルに置き換えて試してみることです。予測結果が色々変わります。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「高度な統計解析をするためには確率モデルによってデータシミュレータを作る必要があります。ただしシミュレータはたいてい複雑なので事後分布を計算するのが困難。さらに事後分布を近似するヒントとなる尤度関数(モデルの一部)も計算できないケースもあります。一方で、」 / Twitter
- Daisuke OkanoharaさんはTwitterを使っています 「多くの科学領域でシミュレーションが作られてきたが、尤度が計算できず、観測からの推論が困難で非効率なABCしか使えなかった。近年のML/DLの発展で高次元でも尤度や事後確率分布の代理関数を推定でき、微分可能なシミュレータを使って高度な推論ができるようになったhttps://t.co/BGvvBV7rjE」 / Twitter
- The frontier of simulation-based inference | PNAS
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ABC(近似ベイズ計算)と呼ばれる技術も古くからあり、尤度が全く計算できないような場合でも(モデルが比較的小さければ)事後分布が推定できます。ただし高次元のディープなモデルなどには適用が難しい。もう少し近年では、」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ディープなモデル含む複雑なシミュレータに関しても密度比推定を利用することによって尤度計算ができなくても計算を進めるやり方があります。ほぼ同様のアイデアはみんな大好きGANにも使われています。変分推論法との関係性などはlikelihood-free VIとして整理されています。 https://t.co/Gq52TxqrHf」 / Twitter
- [1702.08896] Hierarchical Implicit Models and Likelihood-Free Variational Inference
- Daisuke OkanoharaさんはTwitterを使っています 「問題を解くために使ってはいけない別の情報を使って”ずる”をするショートカット学習は動物でもみられ、現在のML/DLでも広くみられる。これによりMLは違う方向に汎化し、学習分布外(o.o.d)に外挿できない。実験結果の詳細な分析、o.o.d汎化のテスト実験が必要である。https://t.co/OIKtfOY61G」 / Twitter
- [2004.07780] Shortcut Learning in Deep Neural Networks
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習や深層学習が「ズル」して学習データセットで良い成績を出すという話は結構根深いです。例えば画像中の猫・犬を分類するタスクで、DNNで誤って犬と判定された猫は芝生の上にいたり。学習データ中では屋外の芝生にいるのは犬の方が圧倒的に多かったということなんでしょう。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「同じことは実は人間でも起こっています。人種差別なんかがそう。対象となる人自体の本質を見ずに、表面的な特性だけで判断をする。こうすることによって人類は予測の「省力化」を行っています。表面的な相関や過去の事例だけで物事を判断すると未来(=学習に使っていないデータ)で大間違いを起こす。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「面接などで候補者の技術力を知りたければXGBoostの使い方などどーーーでもいい話はせずに,教師なしの手法についてどれだけ語れるかにフォーカスするとよいです.」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「データを格子状に並べた瞬間に「画像だッ!」ってなるのはいかがなものか」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「取るべき解析プロセスは、見かけ上のデータフォーマットや計測手段(センサー種類とか)などではほぼ決まりません。対象データの背後にある構造やデータ量、解析目的に応じて決まります。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「個人的には 実問題 = 現状と理想にギャップがあり頑張っているんだけどどうにもならなくマジで困っている人たちがいる問題」 / Twitter
histric-2
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ガチで機械学習の研究をやっている人であれば、多重共線性みたいな概念にいちいち名前がついていることに驚くのではないかと思いますね。」 / Twitter
- 干物男!かとう茶んさんはTwitterを使っています 「ML系だとOLS(最小二乗法にパラメータ識別の仮定が入っているやつ)をちゃんと習わずに来る人が大量にいて(というかほとんど),そういう人たちは最初からカーネル入れて正則化かけてたりするので,やや理論っぽいことをやろうとしている人でも多重共線性とか知らずに生きてたりします.」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「あー、確かにこれはありますね。計算アルゴリズムが幾何的な情報をうまく扱えていない。」 / Twitter
- 📊🛠📝 (𝚖𝚊𝚕𝚕𝚊𝚛ĝ𝚎 𝚊𝚙𝚕𝚒𝚔𝚎𝚋𝚕𝚊)さんはTwitterを使っています 「回帰なんかをStanで実際に推定しようとすると、分散揃える謎処理した方がかなり速くなるんですよね。 NUTSのパラメータ調整が入るので、スケールが違いすぎると限られたwarmup期間では上手くいかない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「データ間で数値のスケールが著しく異なるのが原因で計算上変な挙動が起きる場合、単純にデータの表現方法を変えれば解釈性を保ちつつ改善できる可能性がありますね。ミリメートルをメートルに直して、それにモデルの事前分布も合わせるとか。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これはかなりあるあるで、多くの教師ありのシチュエーションだと前処理(スケーリングとか)とk近傍法で他の手法と大差ない。どころか説明しやすい。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これで問題が解決できればそれでOKですが、もう少し追求していくと「近いとは何か?」という設計上の問いが出てきます。ここで出てくるのがカーネル法やガウス過程などのデータ間の類似度を設計することによって回帰モデルを設計するやり方です。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ガウス過程などのカーネル(共分散関数)を設計するアプローチは非常に直感的で強力なのに、実際はRBFカーネル(デフォルトではこれが多い)を使った「なめらかノンパラ曲線フィッティング」くらいしか利用されていないのが惜しいところ。これだと動作的にはほぼk近傍法に近い。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ということで、カーネル関数の機能を直感的に理解したい場合は下記のサイトの下の方にあるデモをぽちぽちしてみるのをお勧めしています。(あと、よく聞かれますが、多次元入力版の拡張ももちろん簡単にできます。) https://t.co/87goFc6gGC」 / Twitter
- A Visual Exploration of Gaussian Processes
- 高梨陣平さんはTwitterを使っています 「GoogleのAIが集中砲火を受けている。具体的な証拠無しには有効性の検討はできない。」 / Twitter
- The RegisterさんはTwitterを使っています 「ICYMI: Google is under-fire for bragging about making a super-human cancer detection AI – and then not supporting those claims with tangible evidence "Without the computer code and fitted model, it will be very difficult to build on their work..." https://t.co/8aUiQo0Cbo」 / Twitter
- Top doctors slam Google for not backing up incredible claims of super-human cancer-spotting AI • The Register
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「↓収集した実験用データに対してはうまい具合に良い予測精度が出せて、多様な個別環境に適応できるようなモデル&学習のやり方はまったく考慮されていない。ML失敗のあるあるですね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これの解決のために転移学習や能動学習がカギになるという人もいますし、あるいは差異の要因がある程度仮定できるなら階層ベイズで解決するのが手っ取り早いでしょう。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「例えば10の病院からそれぞれ1万枚の画像データを集めたとしたら、データ量は10万ではなく、10です。この辺の見かけの数値にとらわれない課題難易度の認識が大事。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「ビッグデータ」や「大量データで学習」などの流行文句がありつつも、少量データに対する効率的な学習が超大事なのはこういった理由があるためです。この辺りは下記の杉山先生の研究課題を見るとよいです。 https://t.co/JHUfekL0tS」 / Twitter
- 理研AIP-NEC連携センター | 革新知能統合研究センター
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「現実問題を直接数理最適化問題としてデザインすることも重要ですが、個人的には機械学習と組み合わせる際にも有用だと思います。僕も以前、構築した機械学習アルゴリズムの部分問題を解くためにQP Solverなどを併用したことがある。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「自分もまだまだ知識が足りていないですが、例えばベイズ統計の近似手法を改善するためには数理最適化の考え方を深く理解する必要がある。例えば隠れマルコフモデルなどを効率よく推論計算するためには動的計画法が定番。モデルの構造に合わせて適切な手法選択するためにはこの辺りの知識は必須ですね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「最適化問題のオーバーフィットの話にも関連しますが、現実的にはアルゴリズムで計算された出力結果が実際にビジネスオペレーションに落とし込めるかが重要になってきます。簡単にいうと、出口論が大事。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「架空の話ですが、自動販売機1台1台の精緻な売上予測が出来たとしましょう。最適化アルゴリズムによって提案された在庫管理のスケジューリングが、現実のオペレーションではあまりにもダイナミックすぎて管理しにくくなる可能性がある。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「数字の上では高いROIが期待できても、現実のオペレーションに対するフィージビリティが保てないケースは非常に多い。この辺りは現実課題を数理的な問題に落とし込むとかそういう以前の段階で事前に業務を深く理解したメンバーと議論する必要がある。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「これは制御の問題にも通じます。あるカメラの予測を通じて物体を追いかけるような制御をしたいとして、その予測に従って追いかける動作を現実的な制御入力で達成できないことがあります。 すると何をいつまでに予測できなければ制御が間に合わないのか、逆算する必要があるわけです。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「予測はしばしば、次のアクションのための情報として扱われますが、本当にアクションに繋がるのか、あるいはアクションに繋がるような情報とは何なのかを常に考えて予測問題を作らねばならないわけです。」 / Twitter
- 広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「これめちゃくちゃ重要だよなー。 特に経営者からやってくるテーマそのままだと出口が作れないケースが結構ある。本当にやりたいことをより広いスコープで捉えて「単純な方法でも成果がでそう」なテーマに変えて提案して「あとから精度上げに行く」くらいの気持ちでやるのがいいと思う。」 / Twitter
- 広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「たとえば、在庫予測したい!とか30回くらい聞いたけど、庫内滞留のリスク最小化したいとかは聞いたことないもん。なぜなら、ロジとマーケの組織が縦割りになってるから。」 / Twitter
- 広木 大地/ エンジニアリング組織論への招待さんはTwitterを使っています 「そもそものKPI分割が問題を局所化している可能性を考えないといけない。」 / Twitter
- micchanさんはTwitterを使っています 「このスレッド全部に頷きすぎて頭くらくら。前に某大手食品メーカーの熟成予測をやった際、エンジンの成果は出せたけど、サイクルが現場にフィットせず仕入れのSCM側の改革も必要だったり、かなり広範囲で見ないと結局インパクトが出せない問題を思い出しました。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「根本には、サプライチェーン全体から見たボトルネックを認識せずに、部分問題を過度に最適化することに問題があります。特にロジスティクスでの物理的制約や顧客の認知限界などは多くの場合無視できない。過度な部分最適化は全体としての柔軟性を欠く。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「正解ラベルがないとまったく何も進みません」という案件は、たいてい正解ラベルが集まった後でもまったくうまくいかない」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「この認識が間違いであることは実務者全員が認識した方がよいですね。 >入力と出力の関係性が未知でもデータがあれば予測モデルを立てられる」 / Twitter
- MassSさんはTwitterを使っています 「入力と出力の関係性が未知でもデータがあれば予測モデルを立てられるというメリットがあったはずが、実用では結局対象の理解がある程度欲しいとなると、、ジレンマ」 / Twitter
- MassSさんはTwitterを使っています 「結局実務では対象の現象を仮説立てて挙動をモデルに入れ込んで作り込んでいくことが多くて、あり得る現実的な入力全てに対して万能に返してくれるものはないとなると、、個別問題になりやすく、、悩ましい」 / Twitter
- MassSさんはTwitterを使っています 「ただし、ディープラーニング含め何ちゃら学習器を使って(過学習をしている状態を除いては)なんらか入力に対して予測可否がなんとなく分かるというベンチマーク的な使い方はありだと思っていて、対象の理解はそこから逆算してすることもある」 / Twitter
- MassSさんはTwitterを使っています 「結局機械学習は愚直に覚えるアルゴリズムなだけなので、現象が分かっているものに強いて使う必要はないのだけども、現象をアルゴリズムに入れ込める人間はそう多くはないので、愚直でもいいから効用のある課題に取り組むってのも忘れてはいけないと思う。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「Turing.jlで欠損値付きデータに対して線形回帰を行う - my blog https://t.co/ppwO7tTzBD」 / Twitter
- Turing.jlで欠損値付きデータに対して線形回帰を行う - my blog
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「lightGBなんちゃらが欠損値を扱えるとかわりとどうでもいい話をよく聞きますが、基本的にあらゆる回帰モデルは容易に欠損値補間ができるように拡張できます。もちろん、欠損の捉え方により無数にバリエーションはありますが。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ここ数年の機械学習の産業応用のドライバーは、機械学習の技術自体ではなくgit cloneな気がする」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「機械学習周りの考え方そのものは20~30年そんなに変わっていません。ただ、圧倒的に外部からのアクセシビリティが良くなった。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計はtraditionalではなくfundamental。データ解析や機械学習をツールの集合体であると捉えていると、このあたりの本質は理解できないですね。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「特に「予測精度が上がりました」で突然説明が終わっているのはダメな典型。「予測精度が上がりました」はそれ自体では何か問題を解いたことにならない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ある分野で統計や機械学習を適用する際は、成果報告としてちゃんとその分野での言葉&貢献で説明できないといけないですね。機械学習の世界に課題を投げたまま戻ってこないケースが多いように感じます。」 / Twitter
@hidekatsu_izuno
- 伊津野 英克さんはTwitterを使っています 「数学の枠内だけでどうやって「正しい」とか「因果関係」とか「未知の推定」とか「意思決定」を扱うつもりなんだろ。物理現象があっての物理学であるのと同様、各種概念があっての統計学なのに、各種概念を無視して何が言えると思ってるんだろ、というのが個人的な見解。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「「有意である」とは何かという概念があって、その実装として p 値があるわけで、概念がなければ p 値なんてただの数値に過ぎないわけでしょ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「皆「僕は主義なんていらない」ってところから話が始まるからわけのわからないことになっているんじゃないかなぁ。「主義はあるけど、意識する必要はあまりない」と考えを変えるだけの話なのに。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「統計学が物理学と違うのは、扱っている対象が物理学に比べて一段メタな分、哲学側に近いところにあるからではないかと思ってる。因果なんてまさにそうだけど統計の各種概念は哲学が扱ってきた領域だしね。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「という話をブログに書くつもりなんだけど、本当は本職の科学哲学の人に書いてほしいんだよなぁ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「DAGだと同時決定するような因果関係扱えないということのようなので、たしかにそれはイマイチかも。双方向の因果関係の定常状態はわりと一般的に思えるし。」 / Twitter
@masahiro_sakai
2020-10-31
- Masahiro SakaiさんはTwitterを使っています 「SAT-Based Encodings for Optimal Decision Trees with Explicit Paths https://t.co/Yuw61N4WCP SATソルバを使って最適な決定木を求める話。具体的には、二値分類で特徴量も2値のケースで、完全な分類を行う決定木のなかで、深さやノード数が特定の数の木をSATで求めるのを小さい方から繰り返す。」 / Twitter
- SAT-Based Encodings for Optimal Decision Trees with Explicit Paths | SpringerLink
- Masahiro SakaiさんはTwitterを使っています 「木を扱おうと思うとノードとエッジに基づいた符号化が思いつくけど、提案手法はパスに基づいた符号化で面白く、また自然に symmetry breaking 出来ていて良い。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「多値分類や特徴量が多値の場合への一般化は簡単だけど、特徴量が連続値の場合と誤分類を許す場合の扱いが自明でないので、手法は技術的に面白いものの、現状では実用するのは難しそう?」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「先日Optimal Trees の話 https://t.co/GRoUwV3uju を聞いて、そういえばSAT 2020でそんなタイトルの論文があったなぁ、と思って読んでみたのだった。」 / Twitter
- Masahiro SakaiさんはTwitterを使っています 「一つめは、決定木学習のCARTは局所的に最適なブランチを繰り返すことで決定木を構築するが、それに対して(木の深さの制約のもと)大域最適な解を求める Optimal Trees という手法で、100万サンプル1万特徴量とかまでスケールし、 CART や XGBoost よりも高い汎化性能。」 / Twitter
@shirouzu
- Shirouzu Hiroaki(白水啓章)さんのツイート: "興味深いテーマが多い。 ---- 「βアミロイド・ワクチン法」(βアミロイド投与で抗体生成) 「脳の消費エネルギーは 20W」 「ヒルの逃走法選択(≒自由意志)は膜電位の揺らぎ」(これは知っていた) https://t.co/3unQrNDbRq"
- 進化しすぎた脳 | PHILOSOPHY OF SCIENCE
- Shirouzu Hiroaki(白水啓章)さんのツイート: "人間の「自由意志」も、根本はヒルの膜電位と大差ない原理(ランダム性)だろうなぁ。 (そして「飽きる」という現象と同じく、選択の固定化を避けて生存確率を高めてきたと)"
- Shirouzu Hiroaki(白水啓章)さんのツイート: "そういえば、意識を「量子揺らぎ」に求める著名科学者も居た気がするが、例えばMRIでスピンの向きを揃えても意識を失わないし、PETにも耐えるし、もっと巨視的な話ではという気も。… "
- Shirouzu Hiroaki(白水啓章)さんのツイート: "私も昔から「関数次第で何とでもなるよね」という違和感があったなぁ。 (フーリエ級数で解く人とかもいるのだろうか?) ちなみに現実的には「最もエントロピーの低い関数に基づく解のみを正解とする」的な補足があればよいのかな?… "
- 西内啓 Hiromu Nishiuchiさんのツイート: "IQテストとかでいくつか数字並べて次の数字何でしょうみたいな問題、やろうと思えば変な式でもフィッティング出来るはずで、結局のところ何が「正解」かってただの納得感の問題である。むしろ今の世の中に必要なのは1,2,3,x…という並びを見て4以外の斬新な答えとその理由を思いつける人間なのかも。"
- 西内啓 Hiromu Nishiuchiさんのツイート: "なお、全く数学的な意味はないんですけど、8,13,22,24,25,32,33,○,42,44,52という数の並びを見て○に入る数字即答できる人がいたらめっちゃ友達になりたい。今だと「この並びにいずれは0,3,6,23のどれかが入るんですかね!」みたいな話で盛り上がりたい。"
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「ふーむ。 サンプルを使って法則発見より、全パターン網羅辞書を作れば法則化自体が不要、みたいなノリに見える(笑) https://t.co/bnceFj08Jl」 / Twitter
- Hiroo YamagataさんはTwitterを使っています: 「いまやっている訳書で、自然言語解析で百万語くらいで学習させるとアルゴリズムにより成果に大きな差が出るが、一億語学習させると、もうアルゴリズムの差なんかどうでもよくなるそうな! だから、革新的アルゴリズムをひっさげた新たなグーグルによる下剋上なんてのは、もうあり得ないとのこと。」 / Twitter
@sinya8282
- Ryoma Sin'yaさんはTwitterを使っています 「今日はデータサイエンスの講義を見学させてもらったんだけど、lasso の意味というかスパース感がめっちゃわかりやすくて腑に落ちた(普通に勉強になった).」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「チコノフの正則化とかリッジ回帰とか調整項の意味とか事前情報の正当化とか、この辺の話は数学者と工学者でだいぶ伝え方が変わるのかな、とか思ったり(見学した講義は数学者の方が話していた)。」 / Twitter
- Ryoma Sin'yaさんはTwitterを使っています 「「確率論の大家にフェラーという人がいる」 と講師の方が言った直後ニヤニヤしてる学生さんが何人かいたことは先生黙っておきます.」 / Twitter
@fffumihiro
- くいなちゃんさんのツイート: "「数式」が苦手なプログラマさんの気持ちは分かります。 数式がプログラムだとすると、変数名や関数名が大抵1文字で、定義に "コメント" がほとんどなく、その定義こそが仕様書で、ステップ実行もデバッガもないとは、プログラマさんにとって 保守不可能と判断されると思われます。"
- FFFumihiro MMMatsuiさんのツイート: "確かに言われてみれば、数式たくさん使って説明するあれこれにソフトウェア工学のあれこれを取り入れたら伝わりやすくなる可能性ある気がする。似たような式変形を何度もやる内に慣れてくのは、コメントが無いコードに対して、似たようなコードを書いた事あるからすぐ読めるって感覚に割と近い気がする"
- FFFumihiro MMMatsuiさんのツイート: "なので、そういう式変形を扱った事がなくてもちゃんと分かりやすく伝えるっていう方向で良くできる余地はありそう。現状だとなんか、分かるまで読む側が鍛えろ的な感じで、あまりそういうの追求されてない気がするし"
- FFFumihiro MMMatsuiさんのツイート: "素直に扱うと手に負えないくらい複雑になってしまうものを、なんとか万人にとって扱いやすくしたいという点では、ソフトウェア工学ってずっとそういうの研究してるわけだし、もっと他の分野に応用されてもよさそうだな"
- きいねくさんのツイート: "確率問題は極端に考えると直感的にわかりやすくなる傾向があると思う. ■モンティホール→ドアの数が1億2個で1億個開ける(確率上昇が直感的にわかる) ■感染確率→感染確率 0 %の病気で,90%正しい検査キットで陽性だったときの本当に感染している確率(90%じゃないことが直感的にわかる)"
- FFFumihiro MMMatsuiさんのツイート: "モンティホール問題は最初知ったとき不思議で不思議で、結局やっぱりこういう極端な場合を考えてやっとなるほどってなった"
- FFFumihiro MMMatsuiさんのツイート: "確かに確率と直感のすり合わせって、モデルそのものは数個くらいの少ない N でイメージした方がわかりやすい気がするけど、直感的にあれ?ってなる挙動が隠れてたりとかは、一応 N を相当大きくした場合もイメージしてみないとなかなか気づけなそうな感じあるなあ"
- Shiro KawaiさんはTwitterを使っています 「対象のボキャブラリ (シンボル、イメージ、感覚記憶など)をノードとする有向グラフで考えてるような気がする。自分は。」 / Twitter
- Hideki Kawahara: WAH (Work@Home)さんはTwitterを使っています 「少し前にRTしたこれ。巻き込むと申し訳ないので。。 「人間が思考を全て自然言語で行っている(ような気がする)から、気付きにくいのでは。」 思考を自然言語で行なっている気が全くしないので???となった。自然言語は、(主に)考えている(考えた)ことを他の人に伝えたい時に使う。」 / Twitter
答えを知っている人は滅多にいない
- 伊津野 英克さんはTwitterを使っています 「古市さんが「GoTo批判にはエビデンスがない」と批判してたけど、ベイズ会計のエントリ書いてて気づいたのは、十分なデータがないなら、より妥当な事前分布が置かれてるかが重要ということ。エビデンス無くても西浦さんの見解を支持するのが科学的な態度だよ。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「統計はマウント取る人はいっぱいいるが、答えを知ってる人は滅多にいないので、生半可な知識でもいいので公開してフィードバックを得たほうがいいと思う。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「結局、プロジェクト管理手法も統計も銀の弾丸はないので、用法用量に従って正しく使う必要があるのだが、支持者は得てして万能薬のように語るので間違いが起こる、とw」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「データがあるときにどんな順番で手法を適用すればいいのかというフローチャートがほしい。」 / Twitter
文法
- kinabaさんはTwitterを使っています 「そもそも完全なる門外漢的アレですが個人的に自然言語が文脈自由以上とは思えない(正規言語のstate complexityの差として複雑さを捉えた方がいいと思う)派なのでlinearizationされた形で扱うのとても自然に思える」 / Twitter
- kinabaさんはTwitterを使っています 「これについて考えていることをdumpしておくと、自然言語を文法で表すとして、どう表現すると(1)人間にわかりやすいか(2)様々な機械的処理が実装しやすいか(3)人体による実装を巧く説明しているか、等々色々な見方があって多角的に見るべきもので一つの正解があるものではないと思う」 / Twitter
- kinabaさんはTwitterを使っています 「とした上で、Joshiの弱文脈依存文法 https://t.co/mddnuZIwZH 的な話にめっちゃ違和感があって、まったく自分の身体的な直感としてでしかないが、人体は線形オーダを超える構文解析はしてないので、どうせ近似的にしか実装されていない強い文法機能を考える際に多項式時間という制約に意味あるのかとか」 / Twitter
- Mildly context-sensitive grammar formalism - Wikipedia
- kinabaさんはTwitterを使っています 「一方それでは任意深さのネストは非文だから正規言語と主張するなら、任意に長い文もないから全て有限言語って話になる、という反論については、やはりこちらも人体そうなっていない気がする(巨大な有限集合を全部記憶するのでなく小数のルールを回している気がするしI'm(very)*happyとか相当に文だろ」 / Twitter
- kinabaさんはTwitterを使っています 「それで自分に違和感がない範囲としての正規言語なんですが、あんまり無茶苦茶な文法構造が無いというのは、オートマトンの状態数が増えすぎない構造が自然に現れやすいという話に言い換えられないかというのが元の発言で、https://t.co/a42nzprvl5 とか、あー状態数減るなーみたいな。」 / Twitter
- Adjectives: order - English Grammar Today - Cambridge Dictionary
- kinabaさんはTwitterを使っています 「ただstate complexityを持ち出したのはそれくらいしか正規言語内の階層構造思いつかなかったからで、現象のあまり良い定式化ではない気もする。文脈自由文法+α で表すというのは人類が"文法構造"を"理解"しようとするにはあまりに妥当な道具立てなので、理論的支柱はそうあるべきだとも思う。」 / Twitter
- kinabaさんはTwitterを使っています 「というわけで、文脈自由文法+αの文法達をその間の階層構造を保ったまま正規言語の中に埋め込むような操作を考えて、上位の文法で成り立つ現象を正規言語の内部階層へとtransferできるような埋め込みとかで説明できたりしないものかなあみたいなことを考えていた。」 / Twitter
cognicull.com
- kakiraちゃんさんはTwitterを使っています 「え すごい数学解説サイト見つけてしまった。 数学の勉強時によく起こる下の現象をなんとかすることができてしまいそう https://t.co/jlpxmG018F https://t.co/NrVhkAdboI」 / Twitter
- コグニカル
- kakiraちゃんさんはTwitterを使っています 「数学、原理的には、わからない概念の定義元を見る、その定義にわからない概念があればその定義元を見る、って感じに再帰的に探索していけばいつか分かる、というのは分かるんだけど、人なので探索木の深さが3以上になると途端にしんどくなって理解を諦めてしまう」 / Twitter
- kakiraちゃんさんはTwitterを使っています 「1記事には1つのキーワードについて解説されていて、そのキーワードを説明するのに必要なキーワードを子とするような「木」がビジュアライズされて表示されている。 すべての記事について、依存関係が明示されているから、分からなかったらその元をたどれば良い。 https://t.co/TOeamMq1u9」 / Twitter
- kakiraちゃんさんはTwitterを使っています 「子ノードをクリックすることで、別の記事に飛ぶことができるが、最初にアクセスした親ノードはそのままで、子のノードだけが展開されて、ページの内容だけすり替わるようになっている。「深く掘って調べてきたのは良いけど、どこまで調べたんだっけ・・・???」という現象を起こりにくくできる。 https://t.co/G8xHAN4UqV」 / Twitter
- kakiraちゃんさんはTwitterを使っています 「分かっているノードは画面左上ハサミで切り取ることができて、木の表示をシンプルにすることができる。単純に見やすくなるし、基本的に木が複雑になると理解を諦めてしまいがちなので、モチベ向上に繋がりそう。 https://t.co/s2dz4HcIkf」 / Twitter
- kakiraちゃんさんはTwitterを使っています 「この木を逆に見ると、ある概念が支えている概念が分かるから、「これ何の役に立つの???」という問いかけへの解にもなってるのか。。。強すぎる。。。」 / Twitter
物理と機械学習の相性
- ogiwaraさんはTwitterを使っています 「ところでF=maが成り立つ、って証明はどこにもないよね」 / Twitter
- ogiwaraさんはTwitterを使っています 「やっぱ物理における実験と定式化のプロセス学んでから、機械学習の研究した方がいいんじゃないの?という気がしてならない」 / Twitter
- ゆうだい.jlさんはTwitterを使っています 「@designpatterngf 多くの自然現象がニュートンの運動の三法則で説明できることが立派な証明と思います(が、演繹的な証明はないよね、という意図ですよね?) なんか、そーゆの、物理と機械学習の相性はとても良いと思うんです。」 / Twitter
数理最適化
- UmeponさんはTwitterを使っています 「先日の白金鉱業.FMで「数理最適化では機械学習のような過学習のような問題はないんですか?」と質問されて、今まで強く意識していなかったなあと気付かされました。」 / Twitter
- UmeponさんはTwitterを使っています 「もともと数理最適化では、任意の入力データに対して解の最適性と最悪計算時間を理論的に保証するようにアルゴリズムを設計・開発するので、そういう問題を議論する文化がなかったんだろうなあと。」 / Twitter
- UmeponさんはTwitterを使っています 「ところが、現実問題の多くがNP困難な組合せ最適化問題で、アルゴリズムの出力する解の最適性や最悪計算時間が理論的に保証できなくなり、そういうことと向き合う必要が生じてる。」 / Twitter
- UmeponさんはTwitterを使っています 「代表的な組合せ最適化問題では、ベンチマーク問題集というべきデータセットが公開されて、それらの問題例に対するパフォーマンスで開発したアルゴリズムが評価されてるけど、それって機械学習における過学習と同じ問題が生じてるのは本当にそう。」 / Twitter
- UmeponさんはTwitterを使っています 「最近の組合せ最適化のコンペティションでは、出題時に配布するデータと評価時に使うデータを分けて、後者をシークレットにしてるし、数理最適化の論文に数値実験の結果を掲載する際にも、そういう手続きは必要かなと思う。」 / Twitter
- UmeponさんはTwitterを使っています 「トークでは、入力データの不確実性という観点からロバスト最適化の話題に触れましたが、こういう観点もあったなあと思い出した次第です。」 / Twitter
組合せ最適化
- がぶさんはTwitterを使っています 「社内で話題 https://t.co/iOowCTeeQk 組み合わせ最適化→組合せ最適化がいいよって話 https://t.co/tAVUBTy7g6」 / Twitter
- 電通、エー・スター・クォンタムと業務提携 - ニュースリリース一覧 - ニュース - 電通
- 「組合せ最適化」と「組み合わせ最適化」のどちらが正しい? - Togetter
- がぶさんはTwitterを使っています 「「組み合わせ最適化」って検索するとことごとく「組合せ最適化」ってでるの面白い https://t.co/564fD161lQ」 / Twitter
- 組み合わせ最適化 - Google 検索
関数解析的資料
- 逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「まだ出版会社とか決まってませんがgithubあたりで順次公開したら見に来てくれる人よかったらふぁぼください ふぁぼ多ければ公開します」 / Twitter
- 逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「私が機械学習の入門書出せたら 初手でヒルベルト空間を仮説空間として導入して、汎関数で損失関数を定義し、フレシェ微分で勾配法を定義する。 実アルゴリズムはこれの特別な場合です。 数学科学部レベルの解析学を履修した人にはさいっこうにわかりやすい機械学習の入門資料」 / Twitter
- 逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「ニューラルネットもSVMもResNetも、ぜーーんぶ積分表現理論とかの無限次元の連続理論を先に持ってきて、実際のアルゴリズムはすべてその離散化として定義する」 / Twitter
- 逢空れい@研究できなくてまぢ病みさんはTwitterを使っています 「機械学習始めた頃、多くの書籍の数学的な雑さに戦いた。 今はもちろんだいぶ機械学習のことがわかってるから、雑な資料でも忖度して読めるけど、今後機械学習始める数学徒があんな無駄な努力する必要はないです。 初手から関数解析的な資料でやった方がいいに決まってる」 / Twitter
- 逢空れい@ちょっと研究の時間確保できてきたさんはTwitterを使っています 「「一般的な機械学習入門書」はこのレポジトリで公開となります。今(2020/10/11現在)は序文しか書いてませんが、これを更新する形でどんどん作り上げていく所存。 https://t.co/yNkutk6PwL リンクミスったので再掲」 / Twitter
- Runnrairu/Machine-Learning-text: 一般的な機械学習入門
- takuya kuboさんはTwitterを使っています 「@ranoiaru 解析学の方なのですね。情報幾何は(本当はちょっと違うけど)統計モデル上の微分幾何で、双対アファイン接続(接続のなかで計量によって結ばれる対のアファイン接続)がわかってしまえば、かなり素直な話だと思います。 輸送解析も楽しみです。頑張ってください。」 / Twitter
- 逢空れい@ちょっと研究の時間確保できてきたさんはTwitterを使っています 「@bocchi_talks 専門はSDEです」 / Twitter
次元
- 七誌さんはTwitterを使っています 「高次元では3次元のような回転軸の概念は使えないので、どうしようか考えていた。 擬ベクトルとして表された部分空間を取り出せば次元を1つ落とせるので、n次元は入れ子になったn-2本の擬ベクトルが回転軸になるような気がする。(マトリョーシカというか、ジンバルのようなイメージ)」 / Twitter
- 七誌さんはTwitterを使っています 「イメージを式で表すことを試みる。 n次元の擬ベクトルはn-1本のベクトルの外積で構成される。 例えば5次元では v₁∧v₂∧v₃∧v₄=⋆v₅ となり、左辺が張る部分空間に次元を落とすことを繰り返して、2次元まで落とす。 v₁∧v₂∧v₃=⋆v₄ v₁∧v₂=⋆v₃ そもそもv₁∧v₂だけで表せるけど…」 / Twitter
テンソル
- Shinji KonoさんはTwitterを使っています 「ベクトルとテンソルの「変換」は、実態は一つ。変換されてるのは座標系に対する表現。それが理解できれば変換は自然に見えてくるのだが…」 / Twitter
- Shinji KonoさんはTwitterを使っています 「では実態は何かというと位置と線形変換。なので、座標変換自体もテンソルなので、なれないと混乱する。計量テンソル。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「行列とテンソルの違いは、行列は表現のことだが、テンソルは線形変換という意味を持ってるってこと。テンソルの行列表現とかそんな感じ。」 / Twitter
機械可読自然言語
- ロボ太さんはTwitterを使っています 「日本語みたいな自然言語を、プログラミング言語と同じレベルで機械可読になるように言語仕様を定めることができたらうれしいかなぁ。日本語っぽいプログラミング言語ではなく、プログラミング言語っぽい日本語って意味で。例えば複数の意味に取れる文章は文法エラーになる、みたいな。」 / Twitter
- ロボ太さんはTwitterを使っています 「昔、AIに協力しながら何かをさせるタスクを与え、自由に通信させてたら、そのうち「共通言語」を作り出していった、みたいな研究みた気がするけど、そうしてできた「人工自然言語」は、機械可読性が良くなるのかなぁ。それとも曖昧性が残るのかしら。」 / Twitter
- uint256_tさんはTwitterを使っています 「@kaityo256 https://t.co/CIMggdv9oD これでしょうか」 / Twitter
- 1706.05125.pdf
- ロボ太さんはTwitterを使っています 「@uint256_t 僕が見たのは10年以上前、教師なし学習で人工言語を作る試みだった気がします。でもこの論文も面白そうですね。」 / Twitter
テスト
- Shuhei FujiwaraさんはTwitterを使っています: 「機械学習、「大量にテストケースを用意すると、それなりにそのテストを通過する関数を自動生成できるやつ」で大体のエンジニアに伝わると思うんだけどどうなんだろ」 / Twitter
- そすうぽよさんはTwitterを使っています: 「@shuhei_fujiwara 未知の入力に対してもそれっぽい答えを返す(返してほしい)という性質も重要だと思います」 / Twitter
- Shuhei FujiwaraさんはTwitterを使っています: 「@_primenumber もちろん大事は大事なんですが、そのあたりは大雑把な仕組みがわかった後に伝える方が楽かなという気持ちです」 / Twitter
- 生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 関数って言葉は正確でない気がします。本当に関数を生成できたら、すごい技術ですが。多分究極のAIですね。」 / Twitter
- 生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 多分優秀なエンジニアほど、言葉の正確性に対するこだわりは強いので、「それができたらプログラマも機械学習に駆逐されるじゃん!と感じてしまうと思います。生き残るのは… 多分テストケース職人??(か、仕様書書きエンジニアのみ)」 / Twitter
- Shuhei FujiwaraさんはTwitterを使っています: 「@hiroki39ikuta 関数の形に強い制約があるとか省略している部分はあるけど、一応一部の教師あり学習に対しては嘘ではないと言って良い程度の説明かなあと思っています。 相手が本当に厳密な説明を求める場合はみっちり数時間付き合ってもらうしかないですね(実際に本気で興味を持ってくれたらする気はあります)。」 / Twitter
- 生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara 関数ではなく、ロジックという言葉を使うのはどうでしょうか?ロジックのほうが、意味合いが広いので、関数より良い気がします。関数というと、プログラミング言語で言うところの関数を連想するので、誤解を与えるかと。」 / Twitter
- Shuhei FujiwaraさんはTwitterを使っています: 「@hiroki39ikuta 普段はもうちょっと慎重に言葉を選ぶので、僕も実際にロジックという言葉を使っていますね。 「データから欲しい入出力のロジックを逆算で生成するのが目標」という説明をすることが多いです。」 / Twitter
- 生田弘樹さんはTwitterを使っています: 「@shuhei_fujiwara あと、これも優秀なエンジニアならではですが、テストケースが通ればいいだけだったら、もろ過学習しまくってしまえばいいんでない?AIってそんなもんなの?なんて誤解もあるかもですね。学習データにない入力にもそれなりな出力を返せるようにできることも捕捉が必要だと。」 / Twitter
無限小での線形代数
- ふみさんはTwitterを使っています 「大学入ってすぐの微積の授業で教授が「微積は無限小で線形代数をする分野」って言ってて、そのとき微積と線形代数が全く別物だと思ってた私は意味わからなかったけど、今はめっちゃわかるし的確に言い表した言葉だったんだなって感動している」 / Twitter
- 無限小と微分 | 関数の微分 | 微積分 | 数学 | ワイズ
- 授業実践記録
- 無限小 - Wikipedia
- 小話Vol.3:関数の「無限小バトル」と「微分可能性」 - 新米数学博士の数学談話室
- Lecture9.pdf
- 第1章 微積分入門
- TRonso33_Ikeda.pdf
確率分布
@7shi
- 七誌さんはTwitterを使っています 「二項分布→ポアソン分布→指数分布→ガンマ分布 の流れを勉強した。導出まで追っていないけど、それはまた別の機会に。ポアソン分布は素朴な算数で出せそうな気がしたけど、ネイピア数が出て来る時点で素朴な算数ではない・・・ #bayes_hmc」 / Twitter
- 七誌さんはTwitterを使っています 「@gm3d2 Wikipediaを見て気付きましたが、半減期もポアソン分布なんですね。」 / Twitter
- gm3dさんはTwitterを使っています 「@7shi 量子力学でそのうちある状態から別の状態への「単位時間あたりの遷移確率」を計算すると思うので、そうすると系が始状態のままでいる時間(=寿命)はポアソン分布になります。」 / Twitter
- 七誌さんはTwitterを使っています 「@gm3d2 ポアソン分布は単純な仮定から導かれるので、適用範囲が広いのですね。」 / Twitter
- 七誌さんはTwitterを使っています 「ポアソン分布と指数分布を知っている現象に適用するなら原子核の半減期かなと思うけど、分布の理解が曖昧で自力では適用できなかった。 「一つ一つの崩壊する時間間隔の確率は指数分布に従い、単位時間あたりの崩壊はポアソン分布になる。」 https://t.co/nx9Krkvpas」 / Twitter
- 半減期 - Wikipedia
- 七誌さんはTwitterを使っています 「ずっとシュレーディンガー方程式は何を扱っているのかちんぷんかんぷんだったけど(計算すると確率分布が得られることしか分からない)、量子力学の難解さと関係なく、単に周辺知識(ハミルトンヤコビ、微分方程式、波動、フーリエ、連続の式、拡散など)が不足していた面が大きかったと感じている。」 / Twitter
- 七誌さんはTwitterを使っています 「確率分布の時間発展をアニメーション化するとうねうねしているのはピンと来なかったけど、正規化されていれば面積が保存される(常に1)ので、非圧縮性の流体みたいな感じがして来た。そういう手がかりもなく漫然と見ていても、何もイメージが湧かない…」 / Twitter
- 七誌さんはTwitterを使っています 「一周回って、改めてリウヴィルの定理を眺めていた。深い・・・ 「確率分布がどのように時間発展するかを予言する定理」 「時間発展に対して相空間中の体積が保存」 「運動は非圧縮性流体中の浮かぶ微小な粒子の運動に類似」 https://t.co/rjeopv34Yj」 / Twitter
- リウヴィルの定理 (物理学) - Wikipedia
- 七誌さんはTwitterを使っています 「ざっくりした書き方に好感を持った。 「情報幾何学に現れる空間はコンパクトではない(略)。なので、安心して積分を行えない可能性がある。それを安易に回避するには積分値が有限となるものを積分すれば良い。」 シンプレクティック・ベクトル空間上の確率分布の発展について https://t.co/rp4ydtZKfR」 / Twitter
- Kyoto University Research Information Repository: シンプレクティック・ベクトル空間上の確率分布の発展について : ラクダを飼ってみませんか? (統計多様体の幾何学の新展開)
- 七誌さんはTwitterを使っています 「言い回しが面白い。 「シンプレクティック幾何学とは、非退化で可積分な構造(微分2形式)を備えた多様体の幾何学であり、古典力学を無駄と思える程に抽象化した解析力学を更に抽象化したものである。」」 / Twitter
- 七誌さんはTwitterを使っています 「話題に出ている島谷先生の『ポアソン分布・ポアソン回帰・ポアソン過程』は面白そうだったので入手していたけど、いつものように積んでいたので少し読んでみた。 確かに、パソコンを使って乱数でシミュレーションをして納得感を得ることが強調されている。私が先日書いた非局所性の記事と同じ方針だ!」 / Twitter
- τ-σさんはTwitterを使っています 「与えられた確率 分布がどの程度にべき分布に近いのかということを定量化し,妥当な閾値によって判別 できる方法が,Clauset らによって最近開発された https://t.co/2gshuffR5p」 / Twitter
- ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 似てるな〜と思ってちょっと考えたのですが、wavenetの正解データはone-hot vectorなのに対して、生成データは確率分布なので、GANの判別器が判別しやすすぎて上手く学習されない気がします。正解データの方も確率分布にするいい方法があれば、かなり上手くいきそうに思えます!」 / Twitter
- dhgrsさんはTwitterを使っています 「@hiho_karuta parallel WaveNetの場合、連続な確率分布が出力です。しかも平均値が分かります。その平均値をgeneratorの出力としてGANに取り入れられそうだなと思っています。元論文でもparallel WaveNetの出力をSTFTして誤差に用いているのは、同じ仕組みだと思っています。」 / Twitter
- ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 平均値を判別器に入力するの、とてもいいと思います!! その場合、wavenetが出力する確率分布の山が1つであることが前提になりそうですが、実際山は1つなんでしょうか??(wavenetやったことなくて知らなくて・・・画像の方のPixelRNNの方は、論文で多峰になることを報告していました!)」 / Twitter
- dhgrsさんはTwitterを使っています 「@hiho_karuta 私もWaveNetの出力を観察したことはないので分かりませんが、多峰になることは多い気がします。VAEのようなトリックを使って、微分可能なサンプリングをすればいいのかも?(parallel WaveNetもlossの計算で何かしら工夫をしているはずです)」 / Twitter
- ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ 確かに! 正規分布の混合みたいな多峰の確率分布であることを仮定して、VAEを使ってサンプリングすればできるかも・・・うーん、なるほどです。parallel WaveNet、もうちょっと深く読まねば。良い議論でした!ありがとうございます!!」 / Twitter
- dhgrsさんはTwitterを使っています 「@hiho_karuta こちらこそありがとうございます。蛇足ですが、parallel WaveNetでは256クラス分類ではなく、波形の各サンプルがロジスティクス分布の混合から生成されると仮定して、その分布の母数をネットワークの出力としています。parallel WaveNetというか、PixelCNN++で提唱されたテクニックですが。」 / Twitter
- ヒホ(ヒロシバ)🗑️さんはTwitterを使っています 「@__dhgrs__ そうなんですね!! parallel WaveNetは難しそうで・・・ それを踏まえて詳細に読んでみたいと思います!!ありがとうございます!!」 / Twitter
- 出国失敗さんはTwitterを使っています 「@kazuokiriyama_ 確率分布も有名なものは知っているといいかもしれないです。 例えば、判別分析で、与えられたラベル付きデータをグループごとに分ける直線を引くのは、各グループのデータが、分散が同じ正規分布から生成されたと仮定して、確率が最も大きいグループから生成されたと推定することに対応しています。」 / Twitter
- いんぐらむさんはTwitterを使っています 「@brenazmsc その辺はPRMLの2章で泣きながらやってるので大丈夫かと……」 / Twitter
- 出国失敗さんはTwitterを使っています 「@kazuokiriyama_ それなら大丈夫そうですね。等分散の仮定を外すと判別関数が2次式になるのも面白いです。 パッケージを使っているだけで何をやっているか知らない状態だと、不適切な手法で分析を行ってしまうことがあるので、理論を学ぶのも必要と感じています。」 / Twitter
- s.t. 超兄貴ではないさんはTwitterを使っています 「最尤法による判別分析 メリットはサンプル数が多ければ、確率的に判別できる デメリットはデータの分布が既知である必要があることと、サンプル数が必要であること #kantomath #kantomath1」 / Twitter
- 俺人〜Oregin〜さんはTwitterを使っています 「#JDLA #G検定 復習のつぶやき。 生成モデルの復習 訓練データの特徴を学習し、類似したデータを生成するモデル。例として、自己符号化器の潜在変数に確率分布を導入したVAEや、訓練データと生成器が生成したデータを識別器で判別させることによって学習を進めるGANなどがある。」 / Twitter
- みっちゃん|研究者✖️ブロガー|毎日一歩ずつ成長中🥚→🐣さんはTwitterを使っています 「今日は、ベイズの定理を用いたデータ判別を紹介しました。 https://t.co/LWsVtKkPxk – ベイズの定理を用いて、学生さんを配属するクラスを判別する – ベイズ判別=確率分布を考慮したベイズの定理 #ブログ #ブログ初心者 #ブログ更新しました #17日目 #ベイズ判別 #データを判別する方法はいろいろ」 / Twitter
- ベイズの定理を用いたデータ判別【ベイズ判別法】 | mi-chan-nel | みっちゃんねる
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「個人的には、正規分布仮定が論外なのはマンデルブロ「禁断の市場」で知った。 (ノア効果やヨセフ効果という用語もこれで知った…後者はランダムな独立過程でなくて大変動が長期影響する話)」 / Twitter
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています 「ただマンデルブロの本にしても「グラフの相似形から世界にべき乗則多い」と気づいてマルチフラクタルやノア効果等その性質を深める研究をしたものの、その根源(なぜべき乗則が現れるか)については説明が無い気が…「だって潜水艦ノイズから綿花価格までべき乗則に溢れてるから」的な。」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#統計 #数楽 正規分布に関連している確率分布達について勉強すると、結果的にガンマ函数とベータ函数について学ぶことになるのですが、そのとき、ベータ函数の4種の表示を心に留めておくと計算の見通しが良くなる場合があります。そのとき②を忘れずに!詳しくは添付画像を参照。 https://t.co/g1gvMwHcvF」 / Twitter
- 黒木玄 Gen KurokiさんはTwitterを使っています 「#数楽 ガンマ函数とベータ函数で済ませることができない場合には超幾何函数達まで一般化する必要が生じる。一般化する前にガンマとベータの扱いに慣れておくことは損にならない。」 / Twitter
- Shinji KonoさんはTwitterを使っています 「楕円な分布に線を引いて、どれが近似とか議論してる統計は嫌い。楕円は楕円だろ。」 / Twitter
確率・統計・意味
- 純セメスさんのツイート: "児童虐待死事件に心理学者の先輩は「円環的因果律って知ってます?物事の要因は1つだけでなく沢山あって、中には無限ループになってるものもあるんです。それなのに知りもしない外野の人間が結果論で1つの原因を見つけて袋叩きにしている。そんな奴がいる限り虐待問題は解決しません」なるほどである… https://t.co/rVLbsQbjnc"
- Yusuke Odaさんのツイート: "NMTがポジネガ間違えるのは極めて典型的なエラーで,誰が翻訳モデル作っても発生しうる問題なんですが,世間的にはやっぱり今でもパターンマッチで翻訳しているものと思われているらしく,特定のリクエストから学習したんだろうという言説が飛んでいる."
- Yusuke Odaさんのツイート: "ポジネガの間違いは人間が見れば致命的だが,ニューラル翻訳モデルからしてみればたった1単語の差異でしかないので,人間が思っている以上に矯正は難しい(恐らく世界中の機械翻訳研究者が頭を抱えている)"
- Shiro Kawaiさんのツイート: "「意味が逆になる」ことの重大性への重み付けは、対訳だけを学習データとする限りは得られないって感じなのかな。その範囲では些細な違いだし >RT"
- 須山敦志 Suyama Atsushiさんのツイート: "ガウス過程のインタラクティブなデモ。 特に最後にあるカーネル関数の組み合わせ方と得られる予測分布の関係性はとてもわかりやすい。 https://t.co/87goFc6gGC"
- A Visual Exploration of Gaussian Processes
- Kohei Ichikawaさんのツイート: "非線形システムにおいて系全体の状態を決定する(observabilityを実現する)ために必要になる最小の直接観測すべきノードをグラフの静的な情報から調べる手法を提案。 双対する概念である可制御性は非線形だとお手上げだったのに可観測性は上手くいくのがとても面白いです。 https://t.co/7XHvwFuXdR… https://t.co/FQuvUnE24m"
- Observability of complex systems | PNAS
- Shirouzu Hiroaki(白水啓章)さんはTwitterを使っています: 「昔から、研究で「信頼性区間95%」が多くて、「どこから出た基準なのだろう?」という疑問があったが、今月の日経サイエンスで氷解。 統計学を作ったフィッシャーさん「とりあえずp=0.05くらいが妥当?」と書いただけだったという話。さらに後年、0.05を挙げた点を後悔していたとか(笑)」 / Twitter
- 三鷹ういさんはTwitterを使っています: 「@shirouzu @NikkeiScience フィッシャーさんが、農学者であった点は注目ですね。 農業なら、20年に1回は異常気象です。」 / Twitter
- dif_engineさんはTwitterを使っています 「測度論的確率論のすごさってのは,(考えても仕方ない)「なぜある試行でそれが選ばれたか」を全く問題にすることなく確率的な現象を記述してることなんだけど,平岡&堀『プログラミングのための確率統計』以外でそういうことを強調して書いたものを見たことがない気がする.」 / Twitter
- dif_engineさんはTwitterを使っています 「すごさの一つ,ですね.主語がでかすぎた.」 / Twitter
- dif_engineさんはTwitterを使っています 「自分は確率論の講義受けるまえにルベーグ積分のあらすじは理解していたので,確率空間の公理が難しいとは思わなかったけど具体的な現象との結びつきかたの理解にはその後長い時間がかかった.」 / Twitter
- dif_engineさんはTwitterを使っています 「コルモゴロフの『確率論の基礎概念』は,そのちょっと前のフレシェの仕事にヒントを得てラプラスやガウスあたりまでの話を整理したみたいなことなんじゃないかと思ってる(けどよくわからない).」 / Twitter
- dif_engineさんはTwitterを使っています 「『確率論の基礎概念』はこの分野が測度論で塗りつぶされるきっかけをつくった本だから「ランダムネスそのものを正面から取り扱わないよ宣言」ぐらいありそうだと思うかもしれないけどそういうことは書いてくれてない.」 / Twitter
- dif_engineさんはTwitterを使っています 「若干繰り返し気味になるが,フレシェの仕事に刺激されてラプラス,ガウスあたりの仕事を「現代風に」しようとしたという意味なら結局問題は「期待値の評価」であってランダムネスそのものは興味の関心からズレていくよね.」 / Twitter
- 統計たんさんはTwitterを使っています 「統計学を理解するには,データから推論をしているから客観的な推論になっている,というナイーブな価値観を投げ捨てることがまず必要だと思います。」 / Twitter
- てらモス♋️さんはTwitterを使っています 「確率測度の空間に有限個のパラメータ張って多様体として見なすけど、そもそも無限次元のまま多様体として扱えれば便利なのにな的な(´・ω・`)」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@yyii81076568 @M123Takahashi @MilkyResMys 1÷(場合の数)=確率 という式が成り立つのは、「数え上げたそれぞれの場合すべてが等しい確率で発生する場合のみ」という条件がついています。現実世界の事象でこの条件が成り立つのはかなり限られていて、先生は、そのことをはっきり教えないといけないんですが…」 / Twitter
- SODA NoriyukiさんはTwitterを使っています 「@yyii81076568 @M123Takahashi @MilkyResMys 話題になっている新型コロナウイルス対策のワクチンの場合、治験の段階で数万人に接種して、ワクチンが原因で死亡した人数はゼロでした。したがって接種した場合に死ぬ確率は大きめに見積もっても「1/数万」よりも小さいわけです。「1/2」ではありません。」 / Twitter
- Ohkubo YusakuさんはTwitterを使っています 「嫌味でもなんでも無いんだけど「統計学は数学の範疇であり、かつ数学で言える以上のことを統計学に持ち込むべきで無い」派のひとって物理についてどう思ってるんでしょう? 論点はある公理系で閉じたはずの命題で現実世界を説明することに(なぜ)成功しているか?という点で似てると思うのですが。」 / Twitter
ベイズ
ベイズ統計の教科書
- Ken McAlinnさんはTwitterを使っています 「元も子もないことを言うと一番大事なのは色んな教科書を読んで色んな考えに触れることだと思うんだけど、難しいのは欧米の主要なベイズの本がほとんど和訳されてないこと。これによる認識の差は大きいと思う。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「例えばBayesian Choice、BDA、Statistical Rethinkingだけをとっても別々のベイズの立場があるんだけど、どれも翻訳はされてない。古典で言えばSavageもJaynesも(知る限り)翻訳されてない。なので日本語で勉強しようとすると結構限定的なのかなってかんじする。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「実はある代より上はベイズの勉強をするのに英語の教科書しかなかったからこういう話は知ってて、欧米で教育を受けた人(自分とか)もこういう話は知ってる。逆に最近始めた、もしくは英語にハードルがある人は知る由もない、ということに歪さを感じる。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「そう考えると一番いいのはSNSでどうこうするより主要な教科書を翻訳したり、そういう考えを紹介するような教科書を書くことなんだけど、知ってる層がそれをするモチベーションがない(業績にならないとか)ので歪さを助長させてる側面はあると思う。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「立場的にはBayesian Choiceがde Finetti/Savage流の主観ベイズ、BDAがプラグマティックなベイズ(これは立場がちょっと曖昧)、Statistical RethinkingがCox/Jaynes流の主観ベイズを反映してる。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「ただ色んな立場があったとして意見交換や議論をすることがあってもそれが不毛という認識はないし、逆に研究が促進されたりするのでそういう状態が理想なのかなって思う。初学者も色んな考えに触れて自分に合うように勉強できるわけだし。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「ちなみに標準的なものはなにかっていうのは英語の教科書を読めばわかるけど、ベイズ理論の大御所のRobertの渡辺ベイズ(英訳版)の書評を読めば大体どう捉えられてるかわかると思う。 https://t.co/NdvjNNPJ3Y」 / Twitter
- mathematical theory of Bayesian statistics [book review] | Xi'an's Og
- 伊津野 英克さんはTwitterを使っています 「過去の自分の考えを振り帰って思うのは、多くの日本人は確率統計を数学の一部として習うので数学なんだと思ってるけどそうじゃない(概念を数学で定義しているという意味では物理学と同じ並び)、というところが掛け違いの原因なのかも。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「初学者の立場としては黒木さん達のベイズに関する活動は迷惑なので、そっとしておくべき、は個人的には思わないなぁ。今の状況だと標準的な理解へのアクセスを妨害しているわけで。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「物理学においてさえ実在とは情報に基づく付随概念となりつつあるのに、主観確率を拒否し続けるのはいかがなものか。」 / Twitter
- Masahiro HottaさんはTwitterを使っています 「量子力学を、知的生命体である観測者一人が天上天下唯我独尊となる「唯我論」だという批判を哲学系の人がすることがありますが、それは的外れとしか言いようがありません。」 / Twitter
- Masahiro HottaさんはTwitterを使っています 「量子力学では、実在は創発してくる二次的な近似概念でしかありません。「○○が実在している」ということも、結局は情報でしかないので、実在概念自体が情報に基づいている派生概念です。情報こそが量子力学の扱う対象であり、その意味でも量子力学は情報理論なのです。 #入門現代の量子力学」 / Twitter
- Masahiro HottaさんはTwitterを使っています 「量子力学分野で超有名な実験物理学者であるツァイリンガーは、「実在と情報を区別するのは不可能だ」と言ったそうですが、結局このスレッドで私が言っていることを、そう表現しただけなのだと思います。彼や量子力学をディスる哲学系の人は、それを単に理解し損ねているだけかなと、思っています。」 / Twitter
ベイズの事前分布
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「基本的に超パラメータというものはデータのなんとなくの「スケール観」を示しているものです。超パラメータの最適化というのはそのスケール観をデータから自動調整することを意味します。モデル選択の1つと考えるべきですが、やりすぎると当然過学習してしまいます。僕は最適化はしません。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「よくデータを正規化(平均ゼロ、分散1にそろえる)みたいな謎の前処理を見ることがあるのですが、ある意味ベイズ統計の事前分布のパラメータ(超パラメータ)はこのようなデータのスケール設定を妥当性・解釈性を持って実施するものだと見ることができます。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「XXXを最大化/最小化する」みたいな設計方針の統計手法は、このようなデータのスケール観や考慮するノイズ量の情報がわかりにくくなってしまっている場合が多い。だからスケーリングなどの前処理に闇雲な試行錯誤を要する。確率モデルで手法を解釈するとこの辺の仮定がわかりやすくなる。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これ、古いツイートでしたが、「超パラメータ」はベイズの事前分布のパラメータを指していることに注意です。最適化アルゴリズムの設定パラメータなどは指していません。」 / Twitter
ベイズ統計の回帰モデル
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ベイズ統計の回帰モデルの解説で「パラメータの事後分布p(θ|y)を求めてから予測分布p(y*|y)を求める」と書かれていることが多いが、この手順は必須ではないので本質的ではないと思う。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「現に、モデルとデータから予測分布を出すにはパラメータをまるまる周辺化して消してしまってもよい。その意味で、予測を行うためにはパラメータの存在自体とか「学習」といった考え方はそもそもなくてもOK」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「事後分布→予測分布の計算手順は典型的だし、直観的にもわかりやすいので支持されているのだと思うが、この手順が当たり前だと思い込んでしまうと潜在変数モデル、時系列モデル、ノンパラモデル、教師あり/教師なし/半教師ありといった手法を統一的に理解できなくなる。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「複数の手法やモデルを統一的な観点で理解しておくと、いろんなアイデアの間を自由に行き来して適宜活用できるのでとても便利だし、何よりストレスが少ない。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「とは言え、何でもかんでもひとつの枠組みに丸め込んでしまうと思考停止になることもあり得るので、「事後分布→予測分布」のような特定の典型例にあえてフォーカスして性質を調べたり計算を効率化したりするのは工学的な観点で重要」 / Twitter
- TensorFlow User Group ベイズ分科会の資料 PPLについて - HELLO CYBERNETICS
- バッチベイズ最適化を使ってロボットに完璧なオムレツの調理方法を学ばせる
- 江口允崇さんはTwitterを使っています 「ランカスターのベイジアン計量経済学のテキストにも頻度主義とベイジアンの違いについての補論があるのだけど、情報量基準がどうこうは一切書かれてないので、例のスライドの内容はあくまで一部の人の解釈の仕方ってことなのですねやっぱり。 https://t.co/32pu0QJKzw」 / Twitter
- レオ爺さんはTwitterを使っています 「ベイズって結局のところ事前確率に根拠がなかったり、 尤度の設定がヒトによってちがってたりするから、 科学では使いにくいんだ。 そこらへんを適当に変えちゃえばどんな結論でも導けるから。 じっさい、ベイズ使うひとの結論って、その人の数だけあるともいわれる。客観性が期待できない。」 / Twitter
- 伊津野 英克さんはTwitterを使っています 「それはサイエンスを狭く捉えすぎだし、量子論が情報理論だと言われている状況で主観的アプローチがサイエンスでは有用ではない、というのは相当駄目な発言では。例えばこれはサイエンスではないのだろうか https://t.co/cJkWyuakby」 / Twitter
- ベイズ推定を用いた新たな電子構造の解析法を開発 | 研究成果 | 九州大学(KYUSHU UNIVERSITY)
- MKTさんはTwitterを使っています 「@hidekatsu_izuno GelmanやMcElreachもベイズ統計が一般に主観的なものであることは認めているような気がします。単に分野によっては事前分布の主観性の程度が減ると。 BDA3 https://t.co/Y52jsJuLhz Stat Rethinking https://t.co/vkbjqZShze」 / Twitter
- MKTさんはTwitterを使っています 「Gelman先生の論説は分かり易い 「統計手法は主観的である。特にベイズは。ただ、尤度や事前分布は出来るだけ科学的に設定されるべきである。そして観測によって分析をより客観的にしていく。ただモデル設定や評価法から科学的判断を完全に排除することはできない」 BDA3, p13: https://t.co/akK1IDnHW9 https://t.co/Yt6xIKLwKC」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「主観ベイズの立場からするとある実験の結論はある想定するエージェント個人の合理的な結果にすぎないので、そもそも主語が小さいです(小さい世界)。これで複数のエージェント(再現実験)の結果が一つの結論に収束してくことが大きい世界に近づく科学的プロセスだと思ってます。」 / Twitter
- Hiroshi ShimizuさんはTwitterを使っています 「主観ベイズの立場で実験結果の再現性の問題はどのように考えられるのかが気になっている。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「端的に言えばすべての実験結果が同じ方向向いてるんだたら(様々なエージェント/事前分布に対してロバストなら)主観の結論から間主観の結論に昇華できる、みたいなかんじです。」 / Twitter
- Hiroshi ShimizuさんはTwitterを使っています 「@kenmcalinn ありがとうございます!なるほど、ある主体の信念の更新レベルを超えた話になっていくんですね。サヴェッジにいう小さな世界と大きな世界、まだ十分理解できてないですがイメージはできました。どのような統合が可能かという話の一つとして前のザッピングセミナーの内容につながるという感じですね。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@simizu706 なので(不正がなければ)再現性がないからといってその人を責められないし、逆に過度に一つの結果を一般化できないという至極穏当なことしか言えないです笑。ただメタ分析は難しいですね(小並感)。」 / Twitter
- Hiroshi ShimizuさんはTwitterを使っています 「@kenmcalinn なるほどなるほど。個別の実験の分析結果の統合とかをどうするかは頻度主義ではメタ分析がありますが、データが違う場合に、ベイズでもモデル平均化のような形で統合できるんでしょうか。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@simizu706 一応あると思いますが統合的な枠組みはないと思います(今検討してます)。」 / Twitter
- Ohkubo YusakuさんはTwitterを使っています 「@kenmcalinn @simizu706 少し違う話かもしれませんが「研究結果に異質性がある」を「条件づけるべきデータがまだ未確定」と看做して良いのであれば、確証理論の文脈で研究されてきたJefferyの条件付け規則(Jeffery"s"ではなく)が近いのではないかと思いました。」 / Twitter
- Ken McAlinnさんはTwitterを使っています 「@ohkubo_yusaku @simizu706 それは他人の研究結果を不確実なデータだと捉えればそうですね。でも正直Jeffrey Conditioningは使いづらい。。。」 / Twitter
- Hiroshi ShimizuさんはTwitterを使っています 「@kenmcalinn そうなんですね。ありがとうございます!(楽しみにしてます)」 / Twitter
特許
- Hacker Newsさんのツイート: "Google's PageRank patent has expired https://t.co/qozXMIut9A"
- US6285999B1 - Method for node ranking in a linked database - Google Patents
ツール・ライブラリ
- piqcyさんのツイート: "Microsoftが、高速なTokenizerをリリース。その速度は、なんとspaCyの10倍にのぼる。現在はアジア圏の言語がサポートされていないが、今後に期待。 https://t.co/VrbxrGOmUy"
- Microsoft/BlingFire: A lightning fast Finite State machine and REgular expression manipulation library.
- Wolfram Japanさんのツイート: "ソフトウェア開発者のためのWolfram Engineが無料で公開されました。どんなシステムにも配備でき、プログラム、言語、Webサーバから呼び出せるWolfram言語エンジンです。ご興味のある方はStephen Wolframのブログページからダウンロードしてお試しください。 https://t.co/1QKMY23eQq… https://t.co/suPRPmDUGY"
- Launching Today: Free Wolfram Engine for Developers—Stephen Wolfram Blog
- ikawahaさんのツイート: "かわいそうな形態素解析ライブラリとしておなじみの kagome が docker デビューしたよ 🎉 KEINOS さんありがとう! #デモサーバがすぐ立てられるのでラティス見たりするの楽になるかもね https://t.co/YMl9D5TBo0"
- ikawaha/kagome - Docker Hub
- kentoさんはTwitterを使っています: 「@sanjutsu_yu そんな感じを考えてます! 日本語を論理式に変換して、さらに文間の含意関係の判定を行うソフトウェア(https://t.co/ps4yK3nrgu)がもうあるので、今は簡単な対話型インターフェースと定理のデータベースを追加して、自分で使ってみようとしてます。 含意関係認識はCoqのtacticでやってるみたいです」 / Twitter
- mynlp/ccg2lambda: Provide Semantic Parsing solutions and Natural Language Inferences for multiple languages following the idea of the syntax-semantics interface.
- kentoさんはTwitterを使っています: 「@sanjutsu_yu もちろん変換は完全ではないので使ってみて問題があるかとは思いますが... 組合せ範疇文法という文法に基づいて日本語を論理式に変換するんですが、日本語で最初に定義されたのが2010年、このソフトウェアの論文が出たのが2016年なので現代に生まれてよかったです。」 / Twitter
- Shion HondaさんはTwitterを使っています 「Colab ProとGoogle Driveで安く快適なKaggle向け計算環境を作る方法について書きました。 気になるのはデータのダウンロード方法ですが、Google Driveに保存しておいたzipファイルをcontent以下に展開するのが速いケースが多い気がしています(インスタンスのリージョンなどに依存していそうです)。」 / Twitter
- Shion HondaさんはTwitterを使っています 「Google Driveに課金したので、Googleフォトの有料化問題も同時に解決。」 / Twitter
- Shion HondaさんはTwitterを使っています 「This post shows you how to set up a *cheap* and *comfortable* computing environment for Kaggle using Colab Pro and Google Drive. Happy Kaggling! Happy Kaggling on Colab Pro & Google Drive | Hippocampus's Garden https://t.co/8wMwbYRgk2」 / Twitter
- Happy Kaggling on Colab Pro & Google Drive | Hippocampus's Garden
異常検知
- Yasuhisa Yoshidaさんのツイート: "最近仕事で取り組んでいた異常検知の機能、やっと出せました。ロール内で普段と異なる動きをしているホストを教師なし機械学習で検知します。検知だけではなく、このメトリックの動きが変っぽいよというところも提示するのもポイントです(解釈可能な機械学習ってやつ)。 https://t.co/HW5t5sy5IA"
- 新機能・ロール内異常検知の使いかた - Mackerel ブログ #mackerelio
- Mamoru KomachiさんはTwitterを使っています: 「今日は吉田さん (@syou6162) に大学院の集中授業で異常検知を題材に演習をお願いしています。講義資料は以下だそうです〜 https://t.co/Mcv0tPZXFg」 / Twitter
- syou6162/tmu_cs2
手法の区別
- HELLO CYBERNETICSさんはTwitterを使っています 「モデルと推論or最適化手法、そしてアルゴリズム(具体的な実行手順)は明確に区別した方がいいです。おそらく、そこらへんがごちゃごちゃになるから膨大な種類の機械学習手法がバラバラにあるように見えるのだと思います。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「NNはモデルで勾配法は最適化手法で、後方自動微分が勾配を求める具体的なアルゴリズムです。 単層パーセプトロンに勾配法を利用する場合は上記と同じですが、勾配法ではなく凖ニュートン法を用いることもでき、ロジスティック回帰はそのケースが多い。 呼び名が変わるが変わってるのは最適化手法。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「別に勾配法を利用していてもロジスティック回帰と呼べて、なぜならこの呼び名がモデルに対してつけられているから。シグモイド関数が出力層に来てる単層パーセプトロンとロジスティック回帰はモデルとして同じ。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「あと状態空間モデルは無論モデルで、その中の隠れマルコフモデルや動的線形ガウスモデルがある。 これに対して、ベイズフィルタの一種であるカルマンフィルタやパーティクルフィルタは潜在変数の推論方法。HMMの潜在変数推論として動的計画法の一種のビタビアルゴリズムがあるようなもの。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「線形ガウスモデルやHMMに対してEMアルゴリズムを利用すると潜在変数に加えて状態空間空間モデルのパラメータを推定するということができる(EMアルゴリズムがパラメータと潜在変数を逐次最適化するアルゴリズムという考え方)。」 / Twitter
モデル
データ丸暗記
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「「A Iはデータが正しくないと動かない」は間違い。より正確には「モデルで想定されていないデータが入力されると正しく動作しない」です。なぜ前者のような間違いが起こるかというと、現状応用されているほとんどの機械学習や深層学習のモデルがデータ丸暗記なやり方に依存しているからです。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「データの汚さや不正確さを理由にして実用への失敗の理由にする考え方はよろしくない。丁寧な実験計画でも組まない限り、世の中に出回っているリアルデータは全て「汚い」と考えた方が良いし、それへの対処がまさにエンジニアリングで求められているものです。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「あるAIベンチャーの人がまさにこのような発言をしていたわけですが、これは「私はリアルなデータを扱ったことがありません」という白状に近い。この辺りも、A Iに関する企業や取り組みが実応用に根ざしたものかどうか判断するのに役に立ちます。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「ウェブデータで学習されたAIが差別的な発言をしてしまう件に関して、「AIは素直に学んだだけ、悪いのはデータ」みたいな妙な結論を出すのは良くある話。いや、AIが悪い。人が設計している以上、AIを何か別の知的主体かのように捉えて責任逃れするのは間違っている。」 / Twitter
- 須山敦志 Suyama AtsushiさんはTwitterを使っています 「これに限って言うと、AIはウェブデータから頻度に基づく類推を行っただけです(前述の通り、丸暗記するだけなので)。世の中どれくらい差別や偏見に満ちた発言が多いのか、という集計くらいにはなったかも。」 / Twitter
- piqcyさんのツイート: "文表現を得るためのUniversal Sentence Encoderの多言語版モデルが公開。学習に使っている言語には、日本語も含まれている。単語分割はSentencePieceベースのよう。… "
- takuya-aさんのツイート: "LightGBM のモデルのデバッグのために SHAP 使ってみたけど、簡単に始められてよかった。Jupyter の中から普通に可視化できる。 https://t.co/Vf2VGmnkEC"
- slundberg/shap: A unified approach to explain the output of any machine learning model.
- Daisuke OkanoharaさんはTwitterを使っています: 「微分、積分、微分方程式などのシンボリックな数学方程式はNNで驚くほどの精度で解ける。方程式を木表現経由のポーランド記法で表し、Transformerを使ったseq2seqで教師あり学習する。MathematicaやMatlabを超える求解率を達成できる他、有効な解を一つだけでなく多く列挙できるhttps://t.co/dQco5uihuE」 / Twitter
- Deep Learning For Symbolic Mathematics | OpenReview
- nikqさんはTwitterを使っています: 「https://t.co/LAGdNiwKVu うへーすごい、Network architecture searchの結果、まじでただランダムにつないだNNがResNet-50相当を達成…」 / Twitter
- Randomly Wired Neural Networks - Towards Data Science
- HELLO CYBERNETICSさんはTwitterを使っています 「ベイズモデリングは、予測にとにかく効きそうな中間表現(潜在変数)をモデルに持たせつつ、統計のことよくわからん人にも、なんだか納得してもらえるような事後分布や予測分布などのバラつき表現も兼ね備えており、 ツールとして予測重視の機械学習と説明重視の統計のいいとこ取りが形式的にできる。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「実際のところ潜在変数に実体としての対応物が無かったとしても、グラフィカルモデル見せながら、なんとなくの納得感が得られるのは、人間側のバグ的な要素も大きいのだが、事をすすめる上では重要だったり…」 / Twitter
- Kazunori SatoさんはTwitterを使っています 「出自不明・説明不能な謎MLモデルを乱造しないように、Googleが提唱するMLモデルのマニフェスト作法「Model Card」を作る方法を解説。この例ではscikit-learnとAI Platformを利用。 #gcpja」 / Twitter
- Google Cloud JapanさんはTwitterを使っています 「人気の高い scikit-learn フレームワークを使用して、独自のモデルカードを簡単に作成する方法をご紹介。あらゆる機械学習フレームワークに応用できます。https://t.co/nCaHsbZg3z #gcpja」 / Twitter
- Scikit-Learn でモデルカードを作成してクラウドにデプロイする方法 | Google Cloud Blog
- GengaQ SurvivoRさんはTwitterを使っています 「群は対称性を記述するが、対称性とは群である、という訳ではない 濃度は大きさを記述するが、大きさは濃度である訳ではない 位相は空間概念を記述するが、空間は位相がなければならないという訳ではない 数学をしてるとモデルを実体と誤解せる事がある 数学においても、モデルはモデルでしかないのだ」 / Twitter
- 新山祐介 (Yusuke Shinyama)さんはTwitterを使っています 「状況分析に役立つメンタルモデル一覧: オッカムの剃刀、ハンロンの剃刀、第一原理、根本原因、システム指向、シナリオ分析、べき乗則、正規分布、パレート分布、選択バイアス、生存者バイアス、偽陽性と偽陰性、信頼区間、組織的負債、シンプソンのパラドックス, etc. https://t.co/N3YGpk21Lg」 / Twitter
- Mental Models I Find Repeatedly Useful | by Gabriel Weinberg | Medium
単語ベクトル・単語選択・距離
- やぐさんのツイート: "指定した語彙だけに限定することで単語ベクトルのモデルサイズを小さくする変換コードを書きました。読み込み時間短くしたりdockerに載せたりするときに便利かもです。 https://t.co/3ZJwBx8VyB"
- Out-of-the-box - 語彙を限定して単語ベクトルのモデルサイズを小さくするminify_w2v
- やぐさんのツイート: "単語埋め込みのout-of-vocabularyのベクトルの初期化を自分でも実装して試してみました。Kaggleのコンペでは如何にOOVを無くすかが重要だったみたいですが、実タスクだとどうなんでしょう Out-of-the-box - 単語埋め込みにおけるout-of-vocabularyの対応 - magnitudeの初期化 https://t.co/54O9zJMwR5"
- Out-of-the-box - 単語埋め込みにおけるout-of-vocabularyの対応 - magnitudeの初期化
- piqcyさんのツイート: "単語分散表現において、Euclid距離で意味の近さ、加減算で意味の差し引きができる理由について調べた研究。共起シフトPMI(csPMI=PMI(x,y) + log p(x,y))という値が単語ペア間(王様/男性, 女王/女性)でそれぞれ等しければ、それらはベクトル空間上で同一平面に存在することを証明している。… https://t.co/6wFGeSvp67"
- ketsumedo_yarouさんのツイート: "faissがついに1T=10^12本のベクトルに対する探索の話を始めたので、いよいよ大学レベルで個人で何か出来る時代の終わりが近付いてきている(これまでこの界隈は1B=10^9本の話だった) https://t.co/6UoR0tx5vu"
- Indexing 1T vectors · facebookresearch/faiss Wiki
- しゅんけーさんのツイート: "精度を保ったまま最小限の語彙を選択する variational vocabulary dropout (VDD) を提案。多くのNLPタスクで用いる語彙数は昨今非常に大規模となるが、限られた計算リソース下での実行することは難しい。 そこでdropoutベースで精度低下に寄与しない単語を学習する枠組みを導入している。… https://t.co/qYAAV6k4Tw"
- しゅんけーさんのツイート: "How Large Vocabulary Does Text Classification Need? A Variational Approach to Vocabulary Selection - Paper Survey https://t.co/bKLMnUV1Z6 @shunk031さんから… https://t.co/281qr1I4w6"
- How Large Vocabulary Does Text Classification Need? A Variational Approach to Vocabulary Selection - Paper Survey
データ
- TJOさんのツイート: "機械学習を用いた自然科学研究の多くに既に「再現性の危機」や「データセットの選別による恣意的な知見」という問題が出ているらしく、かつて心理学や認知神経科学が踏んだ轍を高速かつ全力で後から踏みに行っているということで険しい顔をしてゐる https://t.co/y3A7KboQOD"
- AAAS: Machine learning 'causing science crisis' - BBC News
- elasticJPさんのツイート: "#Elasticsearch において、言語アナライザーが文章を単語に正しく分割するためには辞書の存在が重要です。最近良く聞かれる「辞書を更新する際の挙動」についてブログを書きました。是非お読みください。https://t.co/MpsrnNivqN"
- CJK アナライザーの辞書更新時の挙動について | Elastic Blog
- Taku Kudoさんのツイート: "最近この手の「機械学習に使えるxxx」という記事を散見するが、手段と目的が入れ替わってておっさんには理解しがたい。 https://t.co/IONds3Tdyq"
- 【20個掲載】機械学習に使えるスポーツ関連のデータセット | Gengo AI
- Shun Aoki🇺🇸青木俊介👑さんはTwitterを使っています: 「GitHubにあるオープンデータのまとめ。機械学習用の有名どころから交通系・社会科学・気象系などなど網羅されているので領域のオープンデータを俯瞰で見るにはとても良さそう。5年ほど運用されているっぽい。 https://t.co/75YxqhMNBh https://t.co/xfks0V6dPM」 / Twitter
- awesomedata/awesome-public-datasets: A topic-centric list of HQ open datasets. PR ☛☛☛
- Susumu YamazakiさんはTwitterを使っています: 「統計や機械学習において,諸事情で集められないデータをどのように扱うか,という議論は,とても大事だと思います。 というのは,例えば AI とヘイトが強く結びついてしまう事例が散見されますが,本質的な理由の1つは,人種や民族にわたってデータを集める条件が揃っておらず,公平でないからです。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「この問題については「MBA が会社を滅ぼす」という書籍でも論じられています。データ駆動による経営では,測られないデータによって,大きく誤差を生じてしまう,というストーリーです。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「さて,行動経済学における「ナッジ」という考え方は,人間の本能的な思考様式によって,認知が歪められてしまい,合理的に判断することができなくなるということに着眼しています。」 / Twitter
- Susumu YamazakiさんはTwitterを使っています: 「ナッジと同じ議論が,機械学習や統計学など,データ駆動の考え方についても言えるのかもしれません。すなわち,補正が必要です。」 / Twitter
- ゆうだいさんはTwitterを使っています 「機械学習のためのデータセットが大量に公開されている神サイト. https://t.co/U3rpWNCiOx」 / Twitter
- UCI Machine Learning Repository
- HELLO CYBERNETICSさんはTwitterを使っています 「データないけどオンライン強化学習で何とかしたい みたいなのカジュアルに言うのは構わんが、CartPoleを適当な手法で良いから一回動かしてみてほしい。このレベルのタスクですらエピソードは数百必要なわけですが、本当に覚悟あるのだろうか。」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「統計のプロを謳う人がこれを言っていて、私が "サンプルサイズが大きすぎるのは良くない"というのは、実験とデータ収集にはコストが掛かるのだから"意思決定に必要なサンプルサイズを見積もりましょう"という意味ですよね と確認したら、検定に応じて最適なサイズがあるのだと言われたので、黙った。」 / Twitter
- nekoumeiさんはTwitterを使っています 「ずっと気になってたので調べました 「サンプルサイズが大きすぎると良くない」ってどういうこと?|nekoumei #note https://t.co/KQQ7cRAojW」 / Twitter
- HELLO CYBERNETICSさんはTwitterを使っています 「それ以前に、サンプルサイズと標本数を混同していたり、統計計算では不偏分散を用いるものだと言っていたり、よく分からん変換をカマしてとりあえず単回帰していたり、正規分布してなかったり直線に乗らないデータは異常だと言ってたり、社会はそういうものかと現実に戻された感があってよかった。」 / Twitter
データ構造
- takuya-aさんのツイート: "ANNのインデックスの構築戦略おもしろい。1時間・1日・1ヶ月ごとに差分に対してインデックス構築してデプロイ、APIサーバからそれらを自動で組み合わせて返している。 / “メルカリの写真検索を支えるバックエンド - Mercari Engineering Blog” https://t.co/zqati0ay3W"
- メルカリの写真検索を支えるバックエンド - Mercari Engineering Blog
- takuya-aさんのツイート: "ダブル配列の構築時の空き領域の検索、簡潔ビットベクトル使ったらけっこう高速化できんじゃね?って思って調べてたら、すでにdarts-cloneに実装されてたときの顔してる"
- かんぱさんださんのツイート: "Goでダブル配列書きました。あまり最小接頭辞トライを採用してる実装がないように感じたので、最小接頭辞トライを採用してます。普通のトライと比べて、多くのケースでメモリ効率とキャッシュ効率が良くなるはずです。 https://t.co/NS5kN9J6oz"
- kampersanda/doublearray-go: Go implementation of double-array minimal-prefix trie
- かんぱさんださんのツイート: "簡単に実装するために、BASE/CHECKは単純なint配列です。"
ソート
- κeenさんはTwitterを使っています 「バイトニックソート、ネットワークソートの一種というのを知っていれば瞬殺できる」 / Twitter
- 画力・博士号・油田さんはTwitterを使っています 「ところで結構基本的なことがしばらく考えても解らず詰まっておる,具体的には “バイトニックソートがなぜソートになっているのかの正当性” が解らない(計算量を度外視した実装を見ても直観が湧かないどころか各補助函数の事前条件と事後条件が把握できない)」 / Twitter
経済や統計では重視される「識別」
- 成田 悠輔さんはTwitterを使っています 「機械学習モデルが実応用でうまく動いてくれないことが多いのは、評価データで同じ性能を達成する解が複数あることが原因だという主張。実はこれ、経済や統計では重視される「識別」が機械学習では無視されてることと同根なのはあまり知られていない https://t.co/mhOsLnwesQ」 / Twitter
- [2011.03395] Underspecification Presents Challenges for Credibility in Modern Machine Learning
シャープレー値
- 成田 悠輔さんはTwitterを使っています 「1950年代にゲーム理論や経済学で誕生、その後絶滅したと思われてた概念(シャープレー値)が、5年ほど前からAIや機械学習でルネッサンスしてる。いったい何が起きているのか、これを読むとわかる https://t.co/TS28m9oWTj」 / Twitter
- 5.9 Shapley Values | Interpretable Machine Learning
- Makoto Kato ︎︎さんはTwitterを使っています 「テキストや動画での嘘情報がインターネットに溢れて、正確さじゃなくて観覧数で収益が配分されているのだから、嘘情報を散蒔くのはプラットフォーマーのせいだけど、NLPのブレークスルーがないのが原因かな」 / Twitter
- Makoto Kato ︎︎さんはTwitterを使っています 「「今年レイヴが来る」とGoogleで検索すると小室哲哉話が1ページから出てくるけど、「今年ジャングルが来る」の場合は、ジャングルポケットとか関係ない話ばかりになるのか。これでウマ娘とかで馬名で使われたら、もうウマ娘だらけになりそうな予感」 / Twitter
Advent Calendar
- 自然言語処理 Advent Calendar 2016 - Qiita
- 自然言語処理 Advent Calendar 2017 - Qiita
- 漢直 Advent Calendar : ATND
- 漢直 advent calendar 2013 - connpass
- 漢直 Advent Calendar 2015 - Adventar
- Androidでも漢直がしたかった話 - にせねこメモ
- TUT-Code打鍵動画 - にせねこメモ
- 情報検索・検索エンジン Advent Calendar 2019 - Qiita
- 自然言語処理 Advent Calendar 2019 - Qiita
- 数理最適化 Advent Calendar 2020 - Qiita